At line 0 added 50 lines. |
+ Dave, |
+ |
+ I have an observation. One of the reasons we're working on this |
+ prototype is to have a better idea of how the SMS and Taxon interfaces |
+ should be designed so that the two can play together. |
+ |
+ I think we have found one place where SMS needs to call Taxon: in |
+ converting common names to concept GUIDs. In particular, in the |
+ registration mapping, we want to be able to say "use taxon to resolve |
+ this name to an authoritative instance". |
+ |
+ It would look something like this in the semantic registration: |
+ {{{ |
+ register { |
+ dataset: {antweb:040412}, |
+ semview: {...}, |
+ semvals: { |
+ map [genus] using taxonServerCommonNameGenus2GUID, |
+ map [species] using taxonServerCommonNameSpecies2GUID |
+ } |
+ } |
+ }}} |
+ |
+ Where the thing after the "using" is the service to call to do the |
+ mapping. For example, the first would take a string representing a |
+ common name for a genus and return a GUID for the corresponding concept. |
+ |
+ Of course, just by virtue of the semview, we can infer this function. |
+ In particular, this def in the semview: |
+ {{{ |
+ 'genus' = 'Genus' as $g object { |
+ 'rankName' = 'LocalString' object { |
+ 'dataValue' = $t/genus |
+ }, |
+ ... |
+ } |
+ }}} |
+ |
+ says that the genus object has a rank name represented as a string |
+ value. Therefore, since the rankName is not given as a GUID, and |
+ instead is given as a string value (we might want to state further in |
+ the onto that it isn't just a string, but a common name), that SMS |
+ should attempt to resolve the given name to the corresponding |
+ authoritative GUID. To do this, SMS would know to call the correct taxon |
+ service that handles the mapping, in this case, |
+ taxonServerCommonNameGenus2GUID. (I hope there is a better, shorter |
+ name for that service :) |
+ |
+ |
+ Shawn |