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