SpeciesTMPlugin

From Gcube Wiki
Revision as of 13:20, 9 April 2013 by Valentina.marioli (Talk | contribs) (Generic model)

Jump to: navigation, search

Species TM Plugin is a plugin of the Tree Manager service that defines and maintains tree views of biodiversity data sources exposed by the Species Manager services. Species TM Plugin provides an uniform model to access and storage data from SPD Service. Each Taxon generated via SPD Service is trasformed in a edge-labelled tree by Species TM Plugin.

Tree model

A tree generated by SpeciesTMPlugin has three subtrees:

  • DwC: each data from SPD Service is mapped to Darwin Core concepts. A detailed description of the Darwin Core fields is listed here;
  • Properties: additional data elements from SPD Service are stored in this subtree.
  • Provenance: information about provenance (wasDerivedFrom, wasGeneratedBy).

Generic model

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" >
          <!-- XML Schema Generated from XML Document on Tue Apr 09 2013 14:26:58 GMT+0200 (CEST) -->
          <!-- with XmlGrid.net Free Online Service http://xmlgrid.net -->
       <xs:element name="t:root" >
              <xs:complexType>
                     <xs:sequence>
                            <xs:element name="provenance" >
                                   <xs:complexType>
                                          <xs:sequence>
                                                 <xs:element name="wasGeneratedBy" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="wasDerivedFrom" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                             </xs:sequence>
                                          <xs:attribute name="t:id" type="xs:int" />
                                      </xs:complexType>
                               </xs:element>
                            <xs:element name="DwC" >
                                   <xs:complexType>
                                          <xs:sequence>
                                                 <xs:element name="taxonRemarks" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="scientificName" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="class" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="scientificNameAuthorship" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="nameAccordingTo" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="taxonomicStatus" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="genus" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="modified" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="acceptedNameUsageID" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="phylum" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="kingdom" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="vernacularNames" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="order" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="parentNameUsageID" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="family" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="bibliographicCitation" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="scientificNameID" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="taxonRank" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                                 <xs:element name="specificEpithet" type="xs:string" >
                                                        <xs:complexType>
                                                               <xs:attribute name="t:id" type="xs:int" />
                                                           </xs:complexType>
                                                    </xs:element>
                                             </xs:sequence>
                                          <xs:attribute name="t:id" type="xs:int" />
                                      </xs:complexType>
                               </xs:element>
                            <xs:element name="Properties" >
                                   <xs:complexType>
                                          <xs:attribute name="t:id" type="xs:int" />
                                      </xs:complexType>
                               </xs:element>
                        </xs:sequence>
                     <xs:attribute name="xmlns:t" type="xs:string" />
                     <xs:attribute name="SpeciesServiceId" type="xs:string" />
                     <xs:attribute name="storeId" type="xs:int" />
                     <xs:attribute name="t:id" type="xs:string" />
                     <xs:attribute name="t:source" type="xs:string" />
                 </xs:complexType>
          </xs:element>
   </xs:schema>

Example

A tree generated by Species TM Plugin looks like this:

<?xml version="1.0" ?>
<t:root xmlns:t="http://gcube-system.org/namespaces/data/trees" SpeciesServiceId="ITIS:710252" storeId="17416" t:id="ITIS:710252" t:source="68baa5c8-d19a-4cae-8abb-adde64a6d331">
 
    <Properties t:id="17417">
    </Properties>
 
    <DwC t:id="17418">
        <taxonRemarks t:id="17422">valid</taxonRemarks>
        <scientificName t:id="17427">Murrayon   </scientificName>
        <class t:id="17432">Eutardigrada</class>
        <scientificNameAuthorship t:id="17419">Bertolani and Pilato, 1989</scientificNameAuthorship>
        <nameAccordingTo t:id="17428">Accessed through: ITIS at http://www.itis.gov on 03-15-2013</nameAccordingTo>
        <genus t:id="17435">Murrayon   </genus>
        <taxonomicStatus t:id="17421">VALID</taxonomicStatus>
        <modified t:id="17425"></modified>
        <acceptedNameUsageID t:id="17420"></acceptedNameUsageID>
        <phylum t:id="17431">Tardigrada</phylum>
        <vernacularNames t:id="17436"></vernacularNames>
        <order t:id="17433">Parachela</order>
        <kingdom t:id="17430">Animalia</kingdom>
        <family t:id="17434">Macrobiotidae   </family>
        <parentNameUsageID t:id="17429">ITIS:710196</parentNameUsageID>
        <bibliographicCitation t:id="17423">This information object has been generated via the Species Product Discovery service on 03-15-2013 by interfacing with ITIS, the Integrated Taxonomic Information System (http://www.itis.gov/)
        </bibliographicCitation>
        <scientificNameID t:id="17424">urn:lsid:itis.gov:itis_tsn:710252</scientificNameID>
        <taxonRank t:id="17426">Genus</taxonRank>
    </DwC>
 
    <provenance t:id="17437">
        <wasDerivedFrom t:id="17438">Accessed through: the Integrated Taxonomic Information System (ITIS) at http://www.itis.gov on 03-15-2013</wasDerivedFrom>
        <wasGeneratedBy t:id="17439">This information object has been generated via the Species Product Discovery service on 03-15-2013 by interfacing with ITIS, the Integrated Taxonomic Information System (http://www.itis.gov/)</wasGeneratedBy>
    </provenance>
 
</t:root>

Bind request

An Activation Record allows the creation of collections. Using an Activation Record the user selects scientific names and data sources to create the collection.

A request has this form:

        List<ScientificName> as ScientificName in List<DataSource> return Taxon

If List<DataSource> is empty, Species TM Plugin will retrieve data from all Data Sources.


Examples:

        'Carcharodon carcharias' , 'Rosa' in ITIS, CatalogueOfLife return Taxon
        'Carcharodon carcharias' , 'Rosa' return Taxon
        'Carcharodon carcharias' return Taxon

Maven coordinates

The Maven coordinates of species-tree-plugin of its development versions are:

<groupId>org.gcube.data.access</groupId>
<artifactId>species-tree-plugin</artifactId>
<version>1.1.0</version>

The request classes are separated from the species-tree-plugin, in a component upon which plugin depends. This component is species-tree-requests.

The Maven coordinates of species-tree-requests of its development versions are:

<groupId>org.gcube.data.access</groupId>
<artifactId>species-tree-requests</artifactId>
<version>1.0.0-SNAPSHOT</version>