Main Page
From Vxoware
Contents |
[edit] 1 Development
The VxOware codebase is in the process of being migrated to sourceforge. This is a draft documentation page. A complete release (documentation + .war file) is planned for August, 2008.
[edit] 1.1 Test installation
The latest default installation of VxOware is available at http://aurora.gmu.edu:8080/myVxO. This page is updated nightly based on the CVS repository.
[edit] 1.2 Source Code
Until source code is moved to sourceforge, you will need a password to access the repository.
login with
cvs -d :pserver:weigel@clust1.wdcb.ru:/mnt/disk/repository login
download with
cvs -d :pserver:weigel@clust1.wdcb.ru:/mnt/disk/repository co virtualObservatory
logout with
cvs -d :pserver:weigel@clust1.wdcb.ru:/mnt/disk/repository logout
Then read INSTALL
[edit] 1.3 Installation
See the file INSTALL in root of the source code directory tree.
Note that the default session time for VxOware is set according to the Tomcat session time. To change default session time in tomcat, you need to edit tomcat/conf/web.xml. The section "default session configuration", parameter session-config/session-timeout.
[edit] 1.4 Dependencies
[edit] 1.4.1 Apache Tomcat
Well-known, freely available java web application server.
[edit] 1.4.2 Exist database
Exist is a native XML database. It's a web application that runs within the Tomcat container.
- exist.war is dropped in the webapps directory of the tomcat container. Tomcat, if so configured, should discover it on startup and deploy the application. OR...
- the manager webapp, http://localhost:8080/manager/html/ is used to manually deploy the application. (The location of the web container depends on the tomcat installation.)
- verify exist by
- point a browser to http://localhost:8080/exist/, and an exist page should come up.
- click on the webstart link ( on left side) to launch a client. The username and password were set up in Boulder through some mysterious process.
- the client should display the virbo databases "system" "rss" and "vrbo"
[edit] 1.4.3 MySQL
- fresh install of mysql 5.0.27 onto windows workstation
- root password set based on virbo webapp configuration.
- I'll adapt this to any production mysql soon
- copied over binaries for the databases "virtobs" and "virboindex" from the working to the new database
- procedure should use mysqldump instead
- need to create a minimal initial database.
[edit] 1.4.4 Netbeans
Netbeans contains a tomcat instance, and this is what we used in Boulder. It looks like we installed the exist and virbo webapps on the \Program Files\netbeans-5.5\enterprise3\apache-tomcat-5.5.17\ instance. Note that when a user is debugging a webapp, the container used is \Documents and Settings\<USER>\.netbeans\5.5\apache-tomcat-5.5.17_base. This is what was tripping me up last night.
Setting up VxOWare for debugging in Netbeans
[edit] 1.4.5 Set up VxO Database
- run the exist client of a working setup.
- use the "backup" option to export the data locally. In the root of the selected folder the client will create the file "__contents__.xml"
- run the exist client on the new installation.
- import the backup with the "restore" option. Select the "__contents__.xml" file created in the backup process.
- I (jfaden) used spot3:/home/jbf/ct/virbo/webapps/db/vrbo/...
- I had to "Create Collection"->vrbo to get the jnlp client (and virbo) to see it.
[edit] 1.4.6 Set up VxO Webapp
- check out virbo project from :pserver:<user>@clust1.wdcb.ru:/mnt/disk/repository
- navigate down to conf directory, there are maybe 6 configuration files: init.conf ... vo_meta.conf
- /etc/virbo contains these configuration files as well, and these look like the ones used.
- /virboData is pointed to by vo_store.conf
- configure the Settings servlet.
- edit web/WEB-INF/web.xml
- look for the node:
<servlet-name>SettingsServlet</servlet-name> - set the parameter "configFile" to "/etc/virbo"
- Note errors are sometimes caught and any error messages are printed to stderr, so be sure to watch Tomcat's log files!!! My exist URL was wrong, and the error at the view level was just a null pointer exception. The runtime error had been caught and squashed, and null returned...
[edit] 1.4.7 Review of Directories
- let VOHOME be the root of the checked out files.
- it should contain BUILD.XML and web/WEB-INF
- VOHOME/web/WEB-INF/web.xml defines a "SettingsServlet" which has a parameter "configFile"
- mine points to c:/etc/virbo/init.conf
- it points to CONFIGFILE
- let CONFIGFILE be the configFile parameter described above.
- it points to CONFIGDIR
- let CONFIGDIR be the directory containing config files.
- this contains init.conf (confusing), users.conf, vo_meta.conf.
- vo_meta.conf points to the exist database
[edit] 2 Administration
[edit] 2.1 Forgotten Password
For VxOware password reset, you need to edit the MySQL user database stp. To determine the password for user with login LOGINNAME,
# mysql -u root -p -h localhost stp
mysql> select password from users where login='LOGINNAME';
[edit] 2.2 Admin privileges
update users set type='M' where login='LOGINNAME';
[edit] 3 Observatory Sections
The basic grouping of objects (metadata records) in the VxO is based on their section. A VxO using VxOware may contain any number of sections, each of them having different types of metadata records. For example, one section may contain metadata records that follow the RSS document model. In this case, the section may have a XSLT file that is associated with the section along with an editor page. Figure 2a shows a screenshot of a VxO in which a previously stored RSS metadata record that has been rendered in HTML using a XSLT file that is associated with that section. Figure 2b shows the rendering of the same metadata record in an editor that has been configured to allow for the editing RSS metadata. The configuration of sections by metadata format allows for the straightforward display of records, context search using the native metadata fields, and the exchange of records within the VxO network.
A section may be configured to contain many different metadata object types such as simple records (e.g., RSS records for a news section), library catalogs (e.g., World Data Center holdings), metadata describing different sources (e.g., files, databases, web-services) and providers (e.g., stations, observatories, satellites), and metadata in a domain-specific document model (e.g., SPASE or FGDC). The predefined VxOware sections include News, which is used for notifications and automatically generated messages and is also the source of the the VxOware RSS feed, Blogs, which contains records for user journals, Message boards, which contains discussions between the users, and Documentation, which has an editor that accepts wiki-formatted text.
VxOware sections have the following features:
- Import and export of metadata records via a web service
- External search via a web service
- Connection to an external indexing database to speed up full-text search
[edit] 3.1 Default Sections
As shown in the default installation of VxOware at http://aurora.gmu.edu:8080/myVxO, when you first install VxOWare, there are four sections
- News
- Documentation
- Message Board
- Blogs
There are also a number of predefined sections with sample metadata that are not visible in the section menu on the left.
- SPASE 1.2
- FGDC X.Y
- Get Data
- SPIDR Indices
- CDAWeb OPeNDAP
- timeseries.org
to activate these hidden sections, uncomment the appropriate lines in vo_description.xml, which is described below.
[edit] 3.2 Creating a Section
The following instructions show how to create a new section in the observatory. Based in part on Kokovin's VxOWareConfig.ppt
[edit] 3.2.1 Step 1 create conf/Help directory
Start the eXist webstart client by going starting the web start program http://vxoware.org/exist/exist.jnlp and create a directory named conf/Help
[edit] 3.2.2 Step 2 vo_description.xml
Edit vo_description.xml
<SECTION> <NAME>Help</NAME> <!– Id --> <LONG_NAME>Help docs</LONG_NAME> <!– Name --> <PATH>/</PATH><!-- auto --> <DESCRIPTION>.. For example ...</DESCRIPTION> <!– Description --> <TREE>Help/helpTree.xml</TREE> <!– path to doc --> <SCHEMA>Help/helpSchema.xml</SCHEMA><!– path to doc --> <TEMPLATE>Help/helpTemplate.xml</TEMPLATE><!– path to doc --> <DATAXSL>Help/helpView.xsl</DATAXSL><!– path to doc --> <ADDITION_RESTRICTION>true</ADDITION_RESTRICTION> <!-- settings --> <TOTAL_FILES>20</TOTAL_FILES> <!-- auto --> <LAST_ITEM></LAST_ITEM><!-- auto --> <IS_CAPABILITIES>true</IS_CAPABILITIES><!-- settings --> <IS_FAST_INDEX>false</IS_FAST_INDEX><!-- settings --> <DOC_NAME_TYPE>default</DOC_NAME_TYPE><!-- settings --> </SECTION>
Element notes:
- IS_DISPLAY_ELEMENTS: Content of the listed elements is used to make a meta-meta record for a cross-section search inside VO. All the flags listed below can be used in the XML schema document ONLY ONCE:
- IS_DISPLAY_TITLE (required)
- IS_DISPLAY_DESCRIPTION (required)
- IS_DISPLAY_LINK
- IS_DISPLAY_DATE_FROM
- IS_DISPLAY_DATE_TO
- IS_DISPLAY_N_COVERAGE
- IS_DISPLAY_S_COVERAGE
- IS_DISPLAY_W_COVERAGE
- IS_DISPLAY_E_COVERAGE
- IS_CAPABILITIES
- All elements marked by this flag are searchable from outside using the standard VO “outersearch” web service and their values can be returned in the resulting XML document
- Attributes of the IS_CAPABILITIES are used to build a search form to call the “outersearch” web service. In theory VO admin can add any attributes to the element. One standard attribute is:
- use=“identification” – this field should be present on the search web form (most likely this element will be used in the search criteria)
- IS_FAST_INDEX
- This flag indicates that the element will be indexed outside eXist (say, MySQL full text indexer)
- By default we do not installed external indexers, so default value of this flag is “false”
- This flag is optional (takes value “false” if omitted)
- <TYPE>***</TYPE>
- Usually takes one of the values: text, multipletext, select, multipleselect.
- If select or multipleselect are used, then their values should be listed in the OPTION elements list
- <FIELD>
- <KEY>keySelect</KEY>
- <LONGNAME>Select</LONGNAME>
- <DESCRIPTION>Select</DESCRIPTION>
- <TYPE>select</TYPE>
- <OPTION value="111"/>
- <OPTION value="222"/>
- <OPTION value="333"/>
- <OPTION value="444"/>
- </FIELD>
[edit] 3.2.3 Step 3 helpTree.xml
Create a document called helpTree.xml. This file generates the view that the user sees when they click on an Observatory Section hyperlink on the left-hand panel. The <ID/> tag indicates the name of the section that will appear on the left-hand Section menu of the VxO. The <NAME/> tag indicates what will appear as the description of all subsections. Each subsection has a node with an ID and a NAME. The <FILTER_DEFAULT> indicates ???.
<SECTION> <ID>Help</ID> <NAME>All Help Documents</NAME> <NODE> <ID>AddingMetadata</ID> <NAME>Adding Metadata</NAME> <FILTER_DEFAULT>false</FILTER_DEFAULT> </NODE> <NODE> <ID>General</ID> <NAME>General Help</NAME> <FILTER_DEFAULT>false</FILTER_DEFAULT> </NODE> </SECTION>
[edit] 3.2.4 Step 4 helpSchema.xml
Next, create a document called helpSchema.xml.
<SCHEMA> <SCHEMA_NAME>Help</SCHEMA_NAME> <!– section Id --> <SCHEMA_TITLE>Help-record addition form</SCHEMA_TITLE> <SCHEMA_DESCRIPTION>Please fill in the …<SCHEMA_DESCRIPTION> <!-- FIELD can have other FIELDs inside or --> <!-- describe an element from the template (real XML document)--> <FIELD> <KEY>keyTitle</KEY> <!-- keyTitle is a unique key to link web editor template --> <!-- and the XML document schema --> <LONGNAME>Title</LONGNAME> <DESCRIPTION>The name of the search result provider.</DESCRIPTION> <NOTE>Required</NOTE> <TYPE>text</TYPE> <DATATEMPLATE>value</DATATEMPLATE> <IS_DISPLAY_TITLE/><!--May appear in only one FIELD--> <IS_CAPABILITIES use="identification"/> <IS_FAST_INDEX/> </FIELD> <FIELD> <IS_DISPLAY_DESCRIPTION/><!--May appear in only one FIELD, and not in same field as IS_DISPLAY_TITLE --> <!-- * --> </FIELD> </SCHEMA>
.
[edit] 3.2.5 Step 5 helpTemplate.xml
Create helpTemplate.xml, which is the document template for the web XML editor. It is a real doc which can be filled in from web using the key-element mapping. Keys are unique inside the template. They are used to map web form fields to the element values by the web editor Elements form an XML schema configuration file
<Help> <Title>keyTitle</Title> <Annotation>keyAnnotation</Annotation> <Text>keyText</Text> </Help>
.
[edit] 3.2.6 Step 6 helpView.xsl
This configuration file describes re
[edit] 3.3 Virtual Sections
This section is based on Kokovin's V-catalog.ppt
Internally, the virtual observatory is organized by sections. The default behavior is to list all sections on the section navigation bar on the left. The sections that the user sees in this navigation bar can be modified by creating Virtual Sections. The VxO admin can edit the view, build a directory tree, name the directories and add their descriptions, add metadata objects to the directories (links to the objects from different VxO sections)
System tasks
- V-directory IDs are generated internally
Users can
- Move a directory up or down (one step) inside parent directory
- Add subdirectory
- Remove current directory (including its subdirectories)
- Add directory description
- Add an object to the directory (it will be a link to existing object inside one of VO sections)
- Select and edit a list of linked objects for any directory node
- Remove object (link) from the directory
[edit] 4 Exist DB Layout
- Forum directory: Contains metadata about xml files contained in the observatory section directories. Metadata includes subdirectory (in exist db) in which xml file is stored, number of views, bookmarks, edits, etc. This file is generated on data file creation.
- vo_log.xml: This file contains "events" such as the time an object was created or entered in the observatory. This file is the source for the user log. User log contains less events than those in the files iand can be tuned using user filter.
- Logs directory: What is this for? When are these files created
- autoequips When the user "autoequips" a file, for example using autoequip.do?pathTemp=SPASEInstrument/&objId=SRL_SAMPEX_LICA-Instrument" if there is not a forum file with objId of the file, then it is created. pathTemp shows what section the file belongs to. It goes to section config and checks what fields are title and description. These values of fields are being taken from data file and discussion file is being created, equipped with title, description and other needed fields. If there is such a file, the old fields of it are being updated. Other information (views, etc) remains the same.
[edit] 5 Ordering Extensions
Summary based on OEguide_4-1_eng.doc
XSLT file is dataSourceView.xsl in conf/DataServices of the eXist DB.
Ordering Extensions: a link from metadata to data
All of the existing scientific data formats do not provide instructions which allow to combine request for data gathering, they only describe data. At the same time data services providing similar instructions can deliver metadata in different formats, that is extremely inconvenient for cataloging sources.
VxOware provides standard section for describing data request variations which we call Ordering Extensions (OE). The record in OE can be used as a basis for request form generation to data service (interface to data resource). The result of the order is a data object, which is stored in VO user space and it can be accessed for further processing.
Usage of OE format allows to register data resources and send them user requests for data processing and visualization. Doing this, VxOware users approach to data through metadata. At the same time, description of the sources in a uniform format facilitates aggregation of data, coming from different sources (data fusion), and metadata independent sources search (data discovery). OE format allows to describe request to web map service (WMS), OGSA-DAI grid service or to OPeNDAP data streams.
Besides listed, OE provides data access restriction function. In OE format parameter lists and values requested from resource can be restricted aside the most interesting to the given subject domain. Some arguments can be made "hidden", thus establishing the filter on the data obtained through VxO (For example, to limit the list of possible formats of returned data to one for which VxO has visualization tools).
For more information, see OEguide_4-1_eng.doc
[edit] 5.1 Time Selection
<TimeWin> <UseTimeSelection>false</UseTimeSelection> <!--true means allow HMS time selection --> <From>1998-07-01T00:00:00UTC</From> <To>2006-08-31T23:59:59UTC</To> <!--DefaultTime{From,To} are optional, otherwise last allowed week--> <DefaultTimeFrom>2000-02-01T00:00:00UTC</DefaultTimeFrom> <DefaultTimeTo>2000-03-01T00:00:00UTC</DefaultTimeTo> <TimeStep> <Variant>5 minutes</Variant> <Variant>1 minute</Variant> </TimeStep> <AveragingWindow> <Variant label="1 hour">24</Variant> <Variant label="12 hours">2</Variant> </AveragingWindow> </TimeWin>
Will be displayed as
<select name="timestep"> <option name="5 minutes">5 minutes</option> <option name="1 minute">1 minute</option> </select> <select name="averagingwindow"> <option name="1 Hour">24</option> <option name="12 Hours">2</option> </select>
[edit] 6 Search: Exist DB
To search all documents in the Exist DB for the observatory, browse to http://localhost:8080/exist/index.xml, start the Exist via the Web Start link in the left column, select search, and enter the text
for $doc in /* where count(text:match-all($doc, 'SEARCHSTRING')) > 0 return util:document-name($doc)
[edit] 7 Search: Internal
[edit] 7.1 Attribute Search
An attribute search is used for full-text search in all VO sections based on their properties (for example, usage and view statistics). Thus time and space binding (which is possible) allows to search for VO objects with specific geographic coordinates and time properties. You can also search among objects belonging to a certain discussion topic or a certain user.
[edit] 7.2 Context Search
A context search is done taking into consideration the properties of each type of record and is aimed at the contents of the record. The search space can be limited with one or more meta-record elements. For example, in the section, which contains FGDC data, you can search for records containing certain values among keywords.
[edit] 8 Search: External
An external search may be made on VxO sections that are available using a framework of web-services. Thus, a p2p VxO federation may be created which allows for the interaction and data exchange across different application domains. To make a section available for external search, an administrator must specify a list of sections that are web-service accessible along with a list of metadata fields that are available for searching and displaying.
The external search web-service is available via REST protocol. The web-service returns a configuration-based self-description of VxO (information about the available capabilities) with a list of sections open for search. On requesting the information for a certain section, the web service returns a list of meta-record elements (and possibly a set of valid values), with values that may be used to find objects in this section. With this self-description, a context search query can be created which results in a list of objects. An important feature of the external search web-service is its dynamic result format. You may choose which of the available meta-record fields you need to see in the query result. These properties of the web-service make it suitable for case-based reasoning applications.
[edit] 8.1 Configuration
[edit] 8.1.1 With text editor
External search capabilities are set in the VxO configuration files.
Observatory sections can be opened for the external search by the settings of the file /conf/vo_description.xml
<?xml version="1.0" encoding="UTF-8"?> <OBSERVATORY> ... <DATA_SECTIONS> <SECTION> <NAME>Documents</NAME> <!-- sectionId --> <LONG_NAME>Documents</LONG_NAME> ... <IS_CAPABILITIES>true</IS_CAPABILITIES> </SECTION> ... </DATA_SECTIONS> </OBSERVATORY>
The list of sections available for the external search is reported in the VO capabilities document.
A list of elements exposed for the external search is set in the observatory section configuration file /conf/[sectionId]/[sectionId]Schema.xml
<?xml version="1.0" encoding="UTF-8"?> <SCHEMA> <SCHEMA_NAME>News</SCHEMA_NAME> ... <FIELD> <KEY>keyTitle</KEY> <!-- parameterId --> <LONGNAME>Title</LONGNAME> ... <IS_CAPABILITIES use="identification"/> </FIELD> .... </SCHEMA>
The list of searchable elements in a section is reported in the VO section capabilities document.
[edit] 8.1.2 With web interface
- External search is available only via link 1
- The list of known external sources is given in list 2
- You can add a new source in field 3
- The sources that should be available via the search pages (current VxO interface) are marked with checkboxes (4)
- The changes to the external sources list are committed by pressing button 5
- Press button 6 to automatically search for sources. When this button is clicked the system walks through all the known sources (present in the list) and makes a “shareExternalSources” request as shown below. All found sources are added to the common list.
- After clicking the “search source” button the known source are queried (group 1)
- The sources return the addresses of their known sources. The new addresses are added to the common list (group 2)
- VO administrator may set checkboxes for some of the new entries to make them available through the current VO interface
.
[edit] 8.2 Query and Result
Each parameter in self-description may be used for searching by element. Each parameter may be returned in search results
[edit] 8.2.1 Query
[edit] 8.2.1.1 Capabilities query
This document describes the observatory structure, its sections available for outer search
VO self-description format (http://vo_app/capabilities.do)
<?xml version="1.0" encoding="UTF-8"?> <CAPABILITIES> <NAME>VO name</NAME> <DESCRIPTION>VO description</DESCRIPTION> <SECTION> <NAME>section name</NAME> <DESCRIPTION>section description</DESCRIPTION> <PARAMKEY>sectionId</PARAMKEY> </SECTION> <SECTION>…</SECTION> </CAPABILITIES>
This document describes the records contained in sections. Each parameter describes the document’s XML element available for outer search
Section self-description format (http://vo_app/capabilities.do?section=[sectionId])
<?xml version="1.0" encoding="UTF-8"?> <CAPABILITIES> <ACTION>outersearch</ACTION> <SECTION>sectionId</SECTION> <PARAMETER> <NAME>search parameter name</NAME> <DESCRIPTION>parameter description</DESCRIPTION> <PARAMKEY>parameterId</PARAMKEY> <TYPE use=“[notes]">parameterType</TYPE> <VALUE>parameter values (optional)</VALUE> <VALUE>…</VALUE> </PARAMETER> <PARAMETER>...</PARAMETER> </CAPABILITIES>
[edit] 8.2.1.2 Basic Query
http://vo_app/outersearch?section=[sectionId]&[parameterId]=[searchString]&[parameterId(2)]=[searchString(2)]&output=[parameterId(3)]&output=[parameterId(4)]
[edit] 8.2.1.3 Query Option: noOutput
If «output» parameters are missing, the result will contain only the number of found records
<?xml version="1.0" encoding="UTF-8"?> <result found_items=“[int]”> <found_items>[int]</found_items> </result>
http://vo-app/outersearch?[searchRequest]&noOutput=true
This parameter can be used to obtain only the list of found documents, for example:
<?xml version="1.0" encoding="UTF-8"?> <result found_items="508"> <found_items>508</found_items> <item doc_name="GeomStationsNPL">noDetails</item> <item doc_name="GeomStationsEPN">noDetails</item> <item doc_name="GeomStationsWES">noDetails</item> ...... </result>
[edit] 8.2.1.4 Query Option: document
Returns a full XML document stored in VO by its ID (applies only to records stored in observatory sections)
http://vo-app/outersearch?specialRequest=document&docId=[documentId]
[edit] 8.2.1.5 Query Option: shareExternalSources
Request:
http://vo-app/outersearch?specialRequest=shareExternalSources
Result:
<?xml version="1.0" encoding="UTF-8"?> <EXTERNAL_SOURCES> <!-- the underscore before the S is only there to avoid a wiki rendering problem--> <_SOURCE capability="true">http://vo-app1/</_SOURCE> <_SOURCE capability="true">http://vo-app2/</_SOURCE> </EXTERNAL_SOURCES>
A list of external observatories (federation) is returned. These observatories are known by the requested one. The attribute “capability” indicates whether the external observatory can be searched by the outersearch web service at the requested one.
[edit] 8.2.1.6 Query Option: idsList
http://vo_app/outersearch?section=[sectionId]&idsList=[documentId-1],[documentId-2],…,[documentId-n]&output=[parameterId-1]&output=[parameterId-2]
The “idsList” value can specify directly a list of documents IDs to be exported, rather than the document search.
This document ID filter can be used in addition to the document search filter, to search only for the documents from the idsList.
[edit] 8.2.1.7 Query Option: pointSearch
http://vo_app/outersearch?section=[sectionId]&pointSearch=[latitude][longitude]&output=[parameterId-1]&output=[parameterId-2]
Search for the geographic location (latitude - longitude pair, space separated). The result will be all geolocated records, which include the point into the geolocation rectangle.
This geolocation filter can be used in addition to other document search filters.
[edit] 8.2.1.8 Query Option: dateStart and dateEnd
http://vo_app/outersearch?section=[sectionId]&dateStart=[yyyy.mm.ddThh.mm.ssUTC]&dateEnd=[yyyy.mm.ddThh.mm.ssUTC]&output=[parameterId-1]&output=[parameterId-2]
Is used to search for the date range. Only documents with time stamp within the date range will be returned.
- This date range filter can be used in addition to other document search filters.
[edit] 8.2.2 Result
Search results are returned as a file, where “item” corresponds to a found document and “element” corresponds to a parameter declared as “output”
Search result format
<?xml version="1.0" encoding="UTF-8"?> <result found_items=“[int]"> <found_items>[int]</found_items> <item doc_name=“recordId"> <element> <element_key>parameterId</element_key> <element_title>parameter name</element_title> <element_values> <value>parameter value</value> <value>…</value> </element_values> </element> <element>…</element> </item> <item>…</item> </result>
[edit] 8.2.3 Web interface
[edit] 8.2.3.1 Searchable Section List
[edit] 8.2.3.2 Query Page
[edit] 8.2.3.3 Result Page
For each document only requested elements are returned
[edit] 8.2.4 XSL Result Parser
[edit] 8.2.4.1 REST Request
http://vo_app/outersearch?section=[sectionId]&[parameterId]=[searchString]&output=[parameterId-2]&useTransformer=true&transformer=http://host/file.xsl&resType=HTML
“resType” – optional parameter, if it is absent – return XML
[edit] 8.2.4.2 Web interface
[edit] 8.2.4.3 Example: KML-XML-SPIDR
This document describes how to transform XML stream into KML with external search results from the VxOware by applying an XSL file (referred by URL).
Real world example of such XSL can be found at http://dimetra.wdcb.ru/kokovin/kml-spidr-geom.xsl
Example of the VxOware “outersearch” request modified with the above XSL: http://dimetra.wdcb.ru:8080/spidrObservatory2/outersearch?section=GeomStations&dateStart=1900-01-01&dateEnd=2100-01-01&output=keyCitationTitle&output=keySpdomWest&output=keySpdomNorth&useTransformer=true&transformer=http%3A%2F%2Fdimetra.wdcb.ru%2Fkokovin%2Fkml-spidr-geom.xsl&resType=XML
We have a special web form in the VxOware to experiment with the XSL transformations of the outersearch results; when the XSL transformation will give a satisfactory result, one can copy the search request URL from the search results address line (in web browser) and use it in another application:
[edit] 8.2.5 Java Result Parser
Java class to parse the search results document.
String searchRequestUrl = “[request]”; ResultStructure searchResult= new ResultStructure(searchRequestUrl);
Compare Java method call with the XML(xPath) query:
result/item[itemNum]/element[element_key=“parameterId”]/element_values/value[0]
searchResult.getItem(itemNum).getElement(“parameterId").getValue(0)
- For more details see VxOware sources
[edit] 9 Adding/Editing Metadata
[edit] 9.1 Web Browser
You may upload a single XML file or a zip file with XML metadata files. The metadata files will appear in the section that is selected in the upload form.
If you are logged in, you may edit metadata in a given section by selecting the "edit" button near the top of its page.
[edit] 9.2 Command-line
This downloads a record, modifies an entry and then uploads it.
- curl -o TESTSAT_INSTRUMENT1-Order.xml http://virbo.org:8080/exist/rest/virbo/DataSources/Satellites/TESTSAT_INSTRUMENT1-Order.xml
- perl -pi -e 's/Parameter 1/xParameter 1/;' TESTSAT_INSTRUMENT1-Order.xml
- curl -i --upload-file TESTSAT_INSTRUMENT1-Order.xml http://virbo.org:8080/exist/rest/virbo/DataSources/Satellites/TESTSAT_INSTRUMENT1-Order.xml --user 'admin:XXX'
- curl "http://virbo.org/virbo/autoequip.do?pathTemp=/DataSources/Satellites/&objId=TESTSAT_INSTRUMENT1-Order"
[edit] 10 Linking and Tagging
[edit] 10.1 General
Based on Kokovin's ViRBO Wiki Syntax
VxO oject ID (permalink) can be seen in the UR string of the web browser at the object view page:
http://spidrd.ngdc.noaa.gov/virbo/viewdata.do?docname=EA3D7943-3E85-2E7F-4A6F-D44919DB17C1
Relating objects
A VxO admin or author of the content item (object) can relate the object with other objects and groups of objects (tags). This can be done by adding the object ID into the text area at the object view page and pressing Add button.
[edit] 10.2 Wiki
Linking object in the Wiki document
Some VO metadata records (for example, the Documents section) support embedded links to other VO objects (data files or metadata records) inside the text of the record. When viewed, the embedded link is rendered as hyperlink directing to another VO view or data sotre.
In that case, when editing the metadata record, there will be a button “insert object” near a text area of the web form. The button will open a new window with a list of all VO objects owned by the user, which can be linked to the document:
Each object cab linked to the edited document in several ways (as a metadata record or as a data file), depending on the object type.
The button “Insert link to document” will add the link like
[*1D675969-078E-E335-81EF-806FD344806D|for test*]
When viewed, it will be rendered as a hyperlink to the object “1D675969-078E-E335-81EF-806FD344806D“ with the hyperlink text “for test“ (the oject title in our example).
Examples of all supported Wiki tags are shown at the metadata editor page:
- KEYWORDS or LABEL to reference other documents in this section, where KEYWORDS is the name of the referenced article (not necessarily an existing article), LABEL - visible label.
- [*DOCUMENT_ID#ANCHOR|LABEL*] to create a direct link to the document, where DOCUMENT_ID is a document identifier, ANCHOR is a link inside the document (optional).
- [^FILE_ID|LABEL^] to create a direct link to the file, where FILE_ID is a file identifier.
- [IMG-OBJ_ID|LABEL-IMG] to inset image to the file, where OBJ_ID is a image identifier.
- [#ANCHOR#] to create a link inside the document.
These tags can be inserted either from the list of all objects owned by user (see above) or by hand when the object ID is known (from the web browser URL string).
[edit] 11 Unfiled
[edit] 11.1 Working Paper
- Image:VxWare.doc
- Other papers: http://www.springerlink.com/content/120988/?p=96fd6d11134d4b5bba3b9805b3fc3e9e&pi=0
[edit] 11.2 Data Centers, VxOs, etc.
Augsburg | SAMPEX Data Center | Ultima | Astrogrid | VxO | LWS VxO Website | eGY | VSPO | VMO | VGMO.NET | GAIA | VSO | CSSDP | SPDF | GFZ | PAPCO | TSDS | timeseries.org | CCMC | Autoplot | DAS2 | ViRBO Data | virbo.org | spaceweather.eu | SEDAT | VSEO | MEXDATA | SWRI Cluster | spase-group.org | VMO List of Data repositories in VMO git metadata repository | HPDE list of Observatories | Augsburg space physics portal | SAMPEX Data Center | Space Environment Center | FTPBrowse | Global Auroral Imaging Access (GAIA) | European Grid of Solar Observations (EGSO) | Virtual Solar Observatory | VSEO | MCMAC | teamvxo | http://badc.nerc.ac.uk/home/index.html | RAMADDA
[edit] 11.3 Thredds/Hyrax
- Image:VrRBO with THREDDS data store.ppt
- Hyrax installation http://aurora.gmu.edu/svn/vm_vxoware

