Line 110 was replaced by line 110 |
- remaining labels to corresponding ontology concepts (simplifying their identifiers using XML namespaces), (3) state with the first annotation that each {{crops}} tuple is a {{Measurement}} instance, (4) state with the second annotation that each {{bm}} attribute value is a {{Biomass}} instance, (5) state with the thrid annotation that each {{spp}} attribute value is a {{Species}} instance, and so on. |
+ remaining labels to corresponding ontology concepts (simplifying their identifiers using XML namespaces), (3) state with the first annotation that each {{crops}} tuple is a {{Measurement}} instance, (4) state with the second annotation that each {{bm}} attribute value is a {{Biomass}} instance, (5) state with the third annotation that each {{spp}} attribute value is a {{Species}} instance, and so on. |
Line 154 was replaced by line 154 |
- The full annotation-language syntax provides more access to various parts of a complex structure and the ability to assign those parts to more complex ontology expressions. To support a wide variety of structural models -- the primary ones including relational, XML, and the Ptolemy type system -- we consider a generic model consisting of nested-relational-style constructs. In addition, we permit multi-valued attributes in which an attribute can have an associated collection of values. |
+ The full annotation-language syntax provides more access to various parts of a complex structure and the ability to assign those parts to more complex ontology instances. To support a wide variety of structural models -- the primary ones including relational, XML, and the Ptolemy type system -- we consider a generic model consisting of nested-relational-style constructs. In addition, we permit multi-valued attributes in which an attribute can have an associated collection of values. |
Line 169 was replaced by line 169 |
- form the expression {{x:T[[A1=y]}}; expressions {{x[[A1=y]}} and {{x[[A2=z}} can be composed to form the expression {{x[[A1=y, A2=z]}}; expressions {{y:T1[[A2=z]}} and {{x:T[[A1=y]}} can be composed to form the expression {{x:T[[A1=y:T1[[A2=z]]}}; and so on. |
+ form the expression {{x:T[[A1=y]}}; expressions {{x[[A1=y]}} and {{x[[A2=z]}} can be composed to form the expression {{x[[A1=y, A2=z]}}; expressions {{y:T1[[A2=z]}} and {{x:T[[A1=y]}} can be composed to form the expression {{x:T[[A1=y:T1[[A2=z]]}}; and so on. |
Line 171 was replaced by line 171 |
- This same syntax is used to describe ontology expressions, where {{T}} can be replaced with a concept label {{C}} and {{A1}} represents a property label. For {{x}} and {{y}} constants, the atom {{x:C}} is true if {{x}} is an instance of concept {{C}}, and the atom {{x:[[A1=y]}} is true if {{x}} has {{y}} as one of its {{A1}} property values. |
+ This same syntax is used to describe ontology expressions, where {{T}} can be replaced with a concept label {{C}} and {{A1}} represents a property label. For {{x}} and {{y}} constants, the atom {{x:C}} is true if {{x}} is an instance of concept {{C}}, and the atom {{x[[A1=y]}} is true if {{x}} has {{y}} as one of its {{A1}} property values. |
Line 173 was replaced by line 173 |
- The meaning of an annotation using the full syntax can be interpreted as follows. Assume we have an annotation {{A}} such that {{R}} is the expression selecting resource objects (the expression in the {{object}} attribute) and {{O}} is the expression selecting ontology objects (the expression in the {{meaning}} attribute). The annotation is a constraint that says whenever the {{object}} attribute is true, the {{meaning}} attribute is true. Let {{Vo}} be the set of variables in the {{object}} expression and {{Vm}} be the set of variables in the {{meaning}} expression not in {{Vm}}. We interpret {{A}} as: {{(forall Vo) R => (exists Vm) O}}. That is, the annotation asserts that for each variable assignment making {{R}} true there are variable assignments for {{Vm}} that make {{O}} true. |
+ The meaning of an annotation can be interpreted as follows. Assume we have an annotation {{A}} such that {{R}} is the expression selecting resource objects (the expression in the {{object}} attribute) and {{O}} is the expression creating ontology instances (the expression in the {{meaning}} attribute). The annotation is a constraint that says whenever {{R}} is true, {{O}} is true. Let {{Rvar}} be the set of variables in {{R}} and {{Ovar}} be the set of variables in {{O}} that are not in {{R}}. The annotation {{A}} asserts {{(forall Rvar) R -> (exists Ovar) O}}. That is, for each variable assignment making {{R}} true there are variable assignments for {{Ovar}} that make {{O}} true. In this way, an annotation can also be viewed as a mapping from {{R}} to {{O}}. |
Line 175 was replaced by line 175 |
- For instance, consider the semantic type below, which is a more detailed version of the previous semantic type. |
+ Consider the {{crops}} data set again. The following semantic type provides a more detailed description of {{crops}} using the full annotation syntax. |
Lines 200-201 were replaced by line 200 |
- The advantage of using full syntax here is that we can properly connect the attributes of a given tuple to its proper semantic |
- components. |
+ The advantage of using the full syntax here is that we can properly relate attributes of a given tuple according to the ontology. For example, we are able to say that for a given tuple, the {{bm}} value represents the biomass of the species represented by the corresponding {{spp}} value. |
Line 203 was replaced by line 202 |
- Another advantage of using the full syntax is that it can provide support for data sets that have "promoted" data to schema. Consider the following semantic-type description for a data set with attributes {{station}}, {{MEDSA}}, and {{GLYMX}}, where {{MEDSA}} and {{GLYMX}} are species codes whose values are biomass measurements. |
+ Another advantage of using the full syntax is that it allows annotations of resources that mix schema and data. Consider the following semantic-type description for a data set with attributes {{station}}, {{MEDSA}}, and {{GLYMX}}, where {{MEDSA}} and {{GLYMX}} are species codes containing biomass values. |
Removed line 219 |
- |
Removed line 222 |
- |
Removed line 224 |
- |
Line 231 was replaced by line 227 |
- Here, each tuple of the dataset represents two distinct measurements of biomass: one for the MEDSA species and the other for the GLYMX species. The skolem terms {{f1($x)}} and {{f2($x)}} distinguish these two observations given a tuple {{$x}}, that is, the skolem terms can be seen as an creating new objects from the original object {{$x}}. |
+ Here, each tuple of the dataset represents two distinct measurements of biomass: one for the MEDSA species and the other for the GLYMX species. The skolem terms {{f1($x)}} and {{f2($x)}} distinguish these two observations given a tuple {{$x}}, that is, the skolem terms can be seen as an creating two objects from the original object {{$x}}. |
Line 234 was replaced by line 230 |
- The abbreviated syntax has a natural "translation" to the full syntax. In particular, the following two annotations are equivalent. |
+ The abbreviated syntax has a natural "translation" to the full syntax. For expressions {{T}} in the abbreviated syntax, the following two annotations are equivalent. |
Line 242 was replaced by line 238 |
- For atoms {{T.A1}}, the following two annotations are equivalent. |
+ For expressions {{T.A1}} in the abbreviated syntax, the following two annotations are equivalent. |
Line 250 was replaced by line 246 |
- For atoms {{T.A1.A2. ... .An}}, the following two annotations are equivalent. |
+ For expressions {{T.A1.A2. ... .An}} in the abbreviated syntax, the following two annotations are equivalent. |
Line 258 was replaced by line 254 |
- And finally, atoms of the form {{T.A1, T.A2, ..., T.Am}}, the following two annotations are equivalent, where {{f}} is a unique skolem symbol. |
+ And finally, for expressions {{T.A1, T.A2, ..., T.Am}} in the abbreviated syntax, the following two annotations are equivalent, where {{f}} is a unique skolem symbol. |
At line 265 added 24 lines. |
+ |
+ The original semantic type for the {{crops}} data set expressed in the abbreviated syntax, the following semantic type is an equivalent version but expressed in the full syntax. Compared with the semantic type below, the full {{crops}} semantic type given above (relating tuple values via the ontology) is semantically more "precise." |
+ |
+ {{{ |
+ <sms:SemanticType id="mySemType" xmlns:sms="http://seek.ecoinformatics.org/sms" xmlns:ont="http://seek.ecoinformatics.org/seek/ontos/DefaultOnto#"> |
+ |
+ <sms:Label name="crops" resource="KBS019-003"/> |
+ <sms:Label name="Measurement" resource="ont:Measurement"/> |
+ <sms:Label name="Biomass" resource="ont:Biomass"/> |
+ <sms:Label name="Species" resource="ont:Species"/> |
+ <sms:Label name="Year" resource="ont:Year"/> |
+ <sms:Label name="Location" resource="ont:Location"/> |
+ |
+ <sms:Annotation object="$x:crops" meaning="$x:Measurement"/> |
+ <sms:Annotation object="$x:crops[bm=$y]" meaning="$y:Biomass"/> |
+ <sms:Annotation object="$x:crops[spp=$y]" meaning="$y:Species"/> |
+ <sms:Annotation object="$x:crops[yr=$y]" meaning="$y:Year"/> |
+ <sms:Annotation object="$x:crops[station=$y]" meaning="$y:Location"/> |
+ |
+ </sms:SemanticType> |
+ }}} |
+ |
+ |
+ |