| 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-39 |
| - [1] AnnotGroup ::= ( Annot )+ |
| + [1] AnnotationGroup ::= ( Annotation )+ |
| + |
| + [2] Annotation ::= ItemExp "==>" OntExp |
| + |
| + [3] ItemExp ::= "/" ItemPath | |
| + "name(" ItemPath ")" |
| At line 13 added 4 lines. |
| + [4] ItemPath ::= ElemName ( "[" ItemCntxtExp "]" )* ( Var )? | |
| + ItemPath "/" ItemPath | |
| + "*" | |
| + "." |
| Line 15 was replaced by line 46 |
| - [2] Annot ::= ItemExp '==>' OntExp |
| + [5] Var ::= "{" "$" VarName "}" |
| At line 16 added 2 lines. |
| + [6] ItemCntxtExp ::= ItemPath | |
| + ItemPath ValueComp ItemValue |
| Line 18 was replaced by line 51 |
| - [3] ItemExp ::= '/' ItemPath |
| + [7] ValueComp ::= "eq" | "ne" | "lt" | "le" | "gt" | "ge" |
| Line 21 was replaced by lines 54-55 |
| - [4] ItemPath ::= ElemName ( '[' ItemCntxtExp ']' )* ( Var )? | |
| + [8] OntExp ::= ConceptName ( Var )? ( OntPath )? | |
| + "#" IndividualName ( OntPath )? |
| Removed line 23 |
| - ItemPath '/' ItemPath | |
| Line 25 was replaced by lines 58-63 |
| - '*' | |
| + [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. |
| + |
| Removed line 27 |
| - '.' |
| At line 28 added 1 line. |
| + __The Semantics of Semantic Annotations__ |
| Removed line 30 |
| - [5] Var ::= '{' '$' VarName '}' |
| At line 31 added 2 lines. |
| + ## 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 33 |
| - [6] ItemCntxtExp ::= ItemPath | |
| Line 35 was replaced by line 73 |
| - ItemPath Op ItemValue |
| + __A Simple XML Encoding/Wrapping for Semantic Annotations__ |
| At line 36 added 8 lines. |
| + * Some simple examples of an XML-ified version: |
| + |
| + {{{ |
| + <!-- a very simple annotation --> |
| + <sms:AnnotationGroup object="urn:lsid:..."> |
| + <sms:Annotation> / ==> AConcept </sms:Annotation> |
| + </sms:AnnotationGroup> |
| + }}} |
| Line 38 was replaced by lines 84-94 |
| - [7] Op ::= '=' | '<' | '>' | '<=' | '>=' | '!=' |
| + {{{ |
| + <!-- 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> |
| + }}} |
| At line 39 added 9 lines. |
| + {{{ |
| + <!-- 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> |
| + }}} |
| Line 41 was replaced by lines 106-114 |
| - [8] OntExp ::= ConceptName ( Var )? ( OntPath )? |
| + {{{ |
| + <!-- 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> |
| + }}} |
| At line 42 added 9 lines. |
| + {{{ |
| + <!-- 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 44 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 45 added 2 lines. |
| + |
| + |