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

Difference between version 32 and version 2:

At line 0 added 1 line.
+ !!Current Tasks
Line 2 was replaced by line 3
- __Current Development Tasks __
+ !Research
Line 4 was replaced by lines 5-140
- * bugzilla summary here ...
+ * Languages
+ ** Syntax and semantics of semantic annotations
+ ** Approach for actors
+ ** Query/Function annotations
+ * Algorithms
+ ** Semantic compatibility checking
+ ** Semantic propagation algorithms and framework
+ ** Merging and integration
+
+ !Development
+
+ * APIs
+ ** Published interface for semantic search and required back-end operations
+ * Languages
+ ** Serialization syntax for semantic annotations (for actors especially)
+ * Implementation
+ ** Implementation for semantic search API for Kepler Object Manager
+ ** Implement workflow semantic type check
+ ** Implement search for actor port and dataset annotations
+ ** Define the needed gui extensions
+
+
+
+ !!A Syntax for Semantic Annotations
+
+ Here is the current grammar for semantic annotation expressions. Note that parenthesis are special symbols used to define the grammar, e.g., {{( ... )*}} means zero or more, {{( ... )+}} means one or more, and {{( ... )?}} means zero or one.
+
+
+ {{{
+ [1] AnnotationGroup ::= ( Annotation )+
+
+ [2] Annotation ::= 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 )?
+ }}}
+
+ The terminal symbols consist of ConceptName, IndividualName, RoleName, and VarName denoting ontology concept identifiers, ontology individual identifiers, ontology role names, and variable names, respectively.
+
+
+
+ __The Semantics of Semantic Annotations__
+
+
+ ## Need to define the scope of of variables within an annotation group
+ ## Need to determine what having the same variable on the right and left sides means.
+
+
+ __A Simple XML Encoding/Wrapping for Semantic Annotations__
+
+ * 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>
+ }}}
Removed lines 7-29
- __A grammar for semantic annotations__
-
- Note that parenthesis ''( )''are part of the grammar language, e.g., ''('' ... '')*'' means zero or more, ''('' ... '')+'' means one or more, and ''('' ... '')?'' means zero or on.
-
-
- AnnotGroup ::= ( Annot )+
-
- Annot ::= ItemExp '==>' OntExp
-
- ItemExp ::= '/' ItemPath
-
- ItemPath ::= ElemName ( '[' ItemCntxtExp ']' )* ( Var )? | ItemPath '/' ItemPath | '*' | '.'
-
- Var ::= '{' '$' VarName '}'
-
- ItemCntxtExp ::= ItemPath | ItemPath Op ItemValue
-
- Op ::= '=' | '<' | '>' | ...
-
- OntExp ::= ConceptName ( Var )? ( OntPath )?
-
- OntPath ::= '.' RoleName ( '#' ConceptName )? ( Var )? ( OntPath )?
-

Back to SMS Hot Topics, or to the Page History.