Science Environment for Ecological Knowledge
Ecoinformatics site parent site of Partnership for Biodiversity Informatics site parent site of SEEK - Home
Science Environment for Ecological Knowledge









 

 

 



SMS Hot Topics

This is version 19. It is not the current version, and thus it cannot be edited.
[Back to current version]   [Restore this version]


Current Development Tasks

  • bugzilla summary here ...

A grammar for semantic annotations

  • Note that parenthesis ( ) are used to define the syntax, e.g., ( ... )* means zero or more, ( ... )+ means one or more, and ( ... )? means zero or one.

 [1]   AnnotationGroup  ::=   ( Annotation )+ 

 [2]   Annotation       ::=   ItemExp ( "," ItemExp )* "==>" OntExp

 [3]   ItemExp          ::=   "/" 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 )?

  • Some simple examples of an XML-ified version:

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



Go to top   More info...   Attach file...
This particular version was published on 22-Jan-2005 21:22:15 PST by SDSC.bowers.