At line 0 added 90 lines. |
+ !! Brief Description |
+ The ''GetTaxa'' actor is a custom SEEK::Taxon actor will |
+ interact with the Taxonomic Object Service (TOS) via the |
+ API defined for the TOS ([See API Signatures | TOSAPISignatures]) for |
+ the retrival of name strings destined to be used to query |
+ DiGIR providers during the Ecological Niche Model workflow. |
+ An example question that this actor should be able to |
+ answer is: What are all names used for Mammal species |
+ concepts defined within ITIS, 2005? |
+ |
+ The returned name strings will include names from two |
+ different sources: |
+ |
+ * Those names associated with concepts that have been defined |
+ to have a synonymy relationship within the authority. |
+ * Those names that have been extracted from the Mammal |
+ Networked Information System ([MaNIS | http://manisnet.org]). |
+ |
+ During import of the names extracted from MaNIS, a simple |
+ N-Gram algorithm is used by the TOS to associate each name |
+ with the best concept within each authority known to the |
+ TOS. |
+ |
+ This actor will replace the workflow consisting of three |
+ ''WebService'' actors that was discussed during the |
+ Oct. 2005 All-Hands meeting in San Diego. |
+ |
+ !! Requirements |
+ * The TOS must be stable and publicly accessible |
+ * A user should be able to specify the authoritative list whose |
+ data they trust |
+ * A user should be able to limit the breadth of the results by |
+ selecting the root node within the authority's hierarchy |
+ * A user should be able to specify any level within the authority's |
+ hierarchy from which concepts will be extracted |
+ * A user should have the option of dealing with names that overlap |
+ (are associated with) multiple concepts in the result set |
+ * The actor should be able to distinguish overlaps in the result set |
+ |
+ !! Inputs |
+ * ''name'' |
+ ** Type: __string__ |
+ ** The scientific name used to determine the GUID of the concept |
+ acting as the root of the sub-tree of the hierarchy defined by |
+ the authority. |
+ ** Ex: "Mammalia" |
+ |
+ * ''auth'' |
+ ** Type: __string__ |
+ ** The authoritative list containing the hierarchy and synonymy |
+ information used to extract the names. |
+ ** Ex: "ITIS, 2005" |
+ |
+ * ''targetLevel (string)'' |
+ ** Type: __string__ |
+ ** The taxonomic rank of the concepts from which names should be |
+ extracted. |
+ ** Ex: "Species" |
+ |
+ * ''checkForOverlaps'' |
+ ** Type: __boolean__ |
+ ** True if the actor should check for overlaps in the names returned, |
+ false otherwise |
+ |
+ !! Output |
+ * A 2-dimensional array with the following properties: |
+ ** Each row is an association between a concept and a set of names |
+ ** Index 0 of each row is the GUID of the concept to which the names |
+ contained in the remaining elements is associated |
+ ** Ex: |
+ {{{[["urn:lsid:bioguid.org:concept:1", "Pan troglodytes", "chimpanzee"], |
+ ["urn:lsid:biobuid.org:concept:2", "Pan paniscus", "bonobo"]]}}} |
+ |
+ !! Basic Algorithm |
+ {{{ |
+ guids = TOS.getBestConcept(name, auth) |
+ if (guids.length > 1) then |
+ user interaction to pick best guid |
+ |
+ string[][] synNames = TOS.getSynsForAuthoritativeList(guid, auth, targetLevel) |
+ |
+ if (checkForOverlaps) then |
+ determine overlapsExist |
+ if (overlapsExist) then |
+ user interaction}}} |
+ |
+ !! Development Agenda |
+ * __Dec. 09 2005__: Stubbed prototype, no interaction with TOS |
+ * __Feb. 2006__: Stable implementation with no user interaction |
+ * __TBD__: Stable implementation with user interaction |