Line 1 was replaced by line 1 |
- __Current Development Tasks __ |
+ !!Current Tasks |
Line 3 was replaced by line 3 |
- * bugzilla summary here ... |
+ !Research |
At line 4 added 8 lines. |
+ * 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 |
Line 6 was replaced by line 14 |
- __A grammar for semantic annotations__ |
+ !Development |
Line 8 was replaced by lines 16-24 |
- * Note that parenthesis {{( )}} are used to define the syntax, e.g., {{( ... )*}} means zero or more, {{( ... )+}} means one or more, and {{( ... )?}} means zero or one. |
+ * 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 |
At line 10 added 6 lines. |
+ |
+ !!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. |
+ |
+ |
Line 12 was replaced by lines 34-64 |
- [1] AnnotGroup ::= ( Annot )+ |
+ [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. |
+ |
+ |
Line 14 was replaced by line 66 |
- [2] Annot ::= ItemExp '==>' OntExp |
+ __The Semantics of Semantic Annotations__ |
Removed line 16 |
- [3] ItemExp ::= '/' ItemPath |
Line 18 was replaced by lines 69-70 |
- [4] ItemPath ::= ElemName ( '[' ItemCntxtExp ']' )* ( Var )? | ItemPath '/' ItemPath | '*' | '.' |
+ ## 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. |
Removed line 20 |
- [5] Var ::= '{' '$' VarName '}' |
Line 22 was replaced by line 73 |
- [6] ItemCntxtExp ::= ItemPath | ItemPath Op ItemValue |
+ __A Simple XML Encoding/Wrapping for Semantic Annotations__ |
Line 24 was replaced by line 75 |
- [7] Op ::= '=' | '<' | '>' | ... |
+ * Some simple examples of an XML-ified version: |
Line 26 was replaced by lines 77-124 |
- [8] OntExp ::= ConceptName ( Var )? ( OntPath )? |
+ {{{ |
+ <!-- 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> |
+ }}} |
Line 28 was replaced by lines 126-139 |
- [9] OntPath ::= '.' RoleName ( '#' ConceptName )? ( Var )? ( OntPath )? |
+ {{{ |
+ <!-- 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> |
At line 29 added 2 lines. |
+ |
+ |