|
|||
|
This is version 22.
It is not the current version, and thus it cannot be edited. Current Development Tasks
A Syntax for Semantic Annotations
[1] AnnotationGroup ::= ( Annotation )+ [2] Annotation ::= ItemExp ( "," ItemExp )* "==>" OntExp [3] ItemExp ::= "/" ItemPath | name( ItemPath ) [4] ItemPath ::= ElemName ( "[" ItemCntxtExp "]" )* ( Var )? | ItemPath "/" ItemPath | "*" | "." [5] Var ::= "{" "$" VarName "}" [6] ItemCntxtExp ::= ItemPath | ItemPath ValueComp ItemValue [7] ValueComp ::= "eq" | "ne" | "lt" | "le" | "gt" | "ge" [8] OntExp ::= ConceptName ( Var )? ( OntPath )? | IndividualName ( OntPath )? [9] OntPath ::= "." RoleName ( "#" ConceptName )? ( Var )? ( OntPath )? | "." RoleName ( "#" IndividualName )? ( OntPath )?
NOTE: If there is a way to add a function to get node labels, we should add it!
The Semantics of Semantic Annotations
A Simple XML Encoding/Wrapping for Semantic Annotations
<!-- a very simple annotation --> <sms:AnnotationGroup object="urn:lsid:..."> <sms:Annotation> / ==> AConcept </sms:Annotation> </sms:AnnotationGroup>
<!-- a simple annotation where a new concept is defined --> <sms:AnnotationGroup object="urn:lsid:..."> <sms:Annotation> / ==> MyConcept </sms:Annotation> <sms:Where> <owl:Class rdf:ID="MyConcept"> ... </owl:Class> </sms:Where> </sms:AnnotationGroup>
<!-- a minimilistic port/dataset style annotation --> <sms:AnnotationGroup object="urn:lsid:..."> <sms:Annotation> /r/row/x1 ==> Transect.start.lat </sms:Annotation> <sms:Annotation> /r/row/x2 ==> Transect.end.lat </sms:Annotation> <sms:Annotation> /r/row/y1 ==> Transect.start.lon </sms:Annotation> <sms:Annotation> /r/row/y2 ==> Transect.end.lon </sms:Annotation> </sms:AnnotationGroup>
<!-- a slightly more detailed port/dataset style annotation --> <sms:AnnotationGroup object="urn:lsid:..."> <sms:Annotation> /r/row/x1 ==> Transect{$r}.start{$s}.lat </sms:Annotation> <sms:Annotation> /r/row/x2 ==> Transect{$r}.end{$t}.lat </sms:Annotation> <sms:Annotation> /r/row/y1 ==> Transect{$r}.start{$s}.lon </sms:Annotation> <sms:Annotation> /r/row/y2 ==> Transect{$r}.end{$t}.lon </sms:Annotation> </sms:AnnotationGroup>
<!-- an unambigious detailed port/dataset style annotation --> <sms:AnnotationGroup object="urn:lsid:..."> <sms:Annotation> /r/row{$q}/x1 ==> Transect{$r}.start{$s}.lat </sms:Annotation> <sms:Annotation> /r/row{$q}/x2 ==> Transect{$r}.end{$t}.lat </sms:Annotation> <sms:Annotation> /r/row{$q}/y1 ==> Transect{$r}.start{$s}.lon </sms:Annotation> <sms:Annotation> /r/row{$q}/y2 ==> Transect{$r}.end{$t}.lon </sms:Annotation> </sms:AnnotationGroup>
<!-- an unambigious detailed port/dataset style annotation with inlined concept defs --> <sms:AnnotationGroup object="urn:lsid:..."> <sms:Annotation> /r/row{$q}/x1 ==> Transect{$r}.start#MyPoint{$s}.lat </sms:Annotation> <sms:Annotation> /r/row{$q}/x2 ==> Transect{$r}.end#MyPoint{$t}.lat </sms:Annotation> <sms:Annotation> /r/row{$q}/y1 ==> Transect{$r}.start#MyPoint{$s}.lon </sms:Annotation> <sms:Annotation> /r/row{$q}/y2 ==> Transect{$r}.end#MyPoint{$t}.lon </sms:Annotation> <sms:Where> <owl:Class rdf:ID="MyPoint"> <rdfs:subClassOf rdf:resource="Point"/> ... </owl:Class> </sms:Where> </sms:AnnotationGroup>
|
This material is based upon work supported by the National Science Foundation under award 0225676. Any opinions, findings and conclusions or recomendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF). Copyright 2004 Partnership for Biodiversity Informatics, University of New Mexico, The Regents of the University of California, and University of Kansas |