| 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 |