Line 63 was replaced by line 63 |
- <individual type="ont:C" foreach="R.x"> |
+ <individual type="ont:C" foreach="DISTINCT R.x"> |
Lines 66-71 were replaced by lines 66-68 |
- This pattern can be read as "For each unique x value of R create |
- an instance of C." In this example, the term "R.x" is a __<a |
- href="#variable">resource variable</a>__. Executing this pattern |
- results in the following document, assuming there are __n__ |
- unique values of {{x}} in {{R}} <a |
- href="#3">[4]</a>. As above, identifiers are generated as a result of |
+ This pattern can be read as "For each unique x value of R create |
+ an instance of C." In this example, the term "R.x" is a __resource variable__. Executing this pattern results in the following document, assuming there are __n__ |
+ unique values of {{x}} in {{R}}[4]. As above, identifiers are generated as a result of |
Line 119 was replaced by line 116 |
- !!!!3.1 Individuals |
+ !!3.1 Individuals |
Line 128 was replaced by line 125 |
- <individual type="ont:C" foreach="R.x, R.y"/> |
+ <individual type="ont:C" foreach="DISTINCT R.x, R.y"/> |
Line 151 was replaced by line 148 |
- SELECT R1.x, R2.x |
+ SELECT DISTINCT R1.x, R2.x |
Line 165 was replaced by line 162 |
- <individual type="ont:C" foreach="R.x, R.y" if="R.x>0"/> |
+ <individual type="ont:C" foreach="DISTINCT R.x, R.y" if="R.x>0"/> |
Line 197 was replaced by line 194 |
- !!!!3.2 Object Properties |
+ !!3.2 Object Properties |
Line 205 was replaced by line 202 |
- <individual type="ont:C" foreach="R.x"> |
+ <individual type="ont:C" foreach="DISTINCT R.x"> |
Lines 213-214 were replaced by line 210 |
- __n__ unique values of {{x}} in {{R}} <a |
- href="#6">[6]</a>. |
+ __n__ unique values of {{x}} in {{R}}[6]. |
Line 257 was replaced by line 253 |
- <individual type="ont:C" foreach="R.x"> |
+ <individual type="ont:C" foreach="DISTINCT R.x"> |
Line 282 was replaced by line 278 |
- <individual type="ont:C" foreach="R.x"> |
+ <individual type="ont:C" foreach="DISTINCT R.x"> |
Line 318 was replaced by line 314 |
- !!!3.3 Datatype Properties |
+ !!3.3 Datatype Properties |
Line 345 was replaced by line 341 |
- <individual type="ont:C" foreach="R.x"> |
+ <individual type="ont:C" foreach="DISTINCT R.x"> |
Line 365 was replaced by line 361 |
- <individual type="ont:C" foreach="R.x"> |
+ <individual type="ont:C" foreach="DISTINCT R.x"> |
Line 370 was replaced by line 366 |
- This pattern can be read as "For each unique x value of R, create |
+ This pattern can be read as "For each unique x value of R, create |
Line 381 was replaced by line 377 |
- Resource variables can be used outside of the current iteration |
+ Resource variables can be used outside of the current iteration |
Line 392 was replaced by line 388 |
- <individual type="ont:C" foreach="R.x"> |
+ <individual type="ont:C" foreach="DISTINCT R.x"> |
Line 397 was replaced by line 393 |
- This pattern can be read as "For each unique x value of R, create |
+ This pattern can be read as "For each unique x value of R, create |
Line 416 was replaced by line 412 |
- <individual type="ont:C" foreach="R1.x"> |
+ <individual type="ont:C" foreach="DISTINCT R1.x"> |
Line 421 was replaced by line 417 |
- corresponds to the following first-order rule, assuming |
+ corresponds to the following first-order rule, assuming |
Lines 430-431 were replaced by line 426 |
- |
- In an instantiation pattern, {{value}} expressions must |
+ In an instantiation pattern, {{value}} expressions must |
Line 445 was replaced by line 440 |
- <individual type="ont:C" foreach="R.x"> |
+ <individual type="ont:C" foreach="DISTINCT R.x"> |
Line 458 was replaced by line 453 |
- Thus, the condition on the property does not affect whether the |
+ Thus, the condition on the property does not affect whether the |
Line 465 was replaced by line 460 |
- Like with conditions on {{individual}} statements, no |
+ Like with conditions on {{individual}} statements, no |
Line 475 was replaced by line 470 |
- !!!3.3 Complex Instantiation Patterns |
+ !!3.3 Complex Instantiation Patterns |
Line 486 was replaced by line 481 |
- __Pattern Labels.__ Each individual instantiation pattern can |
+ __Pattern Labels.__ Each individual instantiation pattern can |
Line 491 was replaced by line 486 |
- <individual label="o1" type="ont:C" foreach="R.x"/> |
+ <individual label="o1" type="ont:C" foreach="DISTINCT R.x"/> |
Line 494 was replaced by line 489 |
- The first-order rule for this pattern is: |
+ The first-order rule for this pattern is: |
Line 500 was replaced by line 495 |
- The use of labels in this way does not change the interpretation |
+ The use of labels in this way does not change the interpretation |
Lines 505-507 were replaced by lines 500-501 |
- __Referencing Patterns.__ Properties can reference patterns |
- using pattern labels in {{value}} expressions <a |
- href="#9">[9]</a>. To distinguish pattern references from constants |
+ __Referencing Patterns.__ Properties can reference patterns |
+ using pattern labels in {{value}} expressions[9]. To distinguish pattern references from constants |
Line 513 was replaced by line 507 |
- <individual label="o2" type="ont:D" foreach="R.x, R.y"> |
+ <individual label="o2" type="ont:D" foreach="DISTINCT R.x, R.y"> |
Line 518 was replaced by line 512 |
- This pattern can be read as "For each unique x, y (tuple) value |
+ This pattern can be read as "For each unique x, y (tuple) value |
Line 528 was replaced by line 522 |
- As with resource variables, pattern references are interpreted |
+ As with resource variables, pattern references are interpreted |
Line 537 was replaced by line 531 |
- The iteration context of a property is not required to be a |
+ The iteration context of a property is not required to be a |
Line 542 was replaced by line 536 |
- <individual label="o3" type="ont:D" foreach="R.y, R.z"> |
+ <individual label="o3" type="ont:D" foreach="DISTINCT R.y, R.z"> |
Line 547 was replaced by line 541 |
- each unique {{y}}, {{z}} pair for {{R}} |
+ each unique {{y}}, {{z}} pair for {{R}} |
Line 553 was replaced by line 547 |
- Also, the iteration context of a property only applies to the |
+ Also, the iteration context of a property only applies to the |
Line 558 was replaced by line 552 |
- <individual label="o5" type="ont:E" foreach="R.x, R.z"> |
+ <individual label="o5" type="ont:E" foreach="DISTINCT R.x, R.z"> |
Line 562 was replaced by line 556 |
- <individual label="o4" type="ont:D" foreach="R.y"> |
+ <individual label="o4" type="ont:D" foreach="DISTINCT R.y"> |
Line 568 was replaced by line 562 |
- The corresponding first-order rules for these patterns are: |
+ The corresponding first-order rules for these patterns are: |
Line 578 was replaced by line 572 |
- Thus, although property values containing pattern references are |
+ Thus, although property values containing pattern references are |
Line 591 was replaced by line 585 |
- The triples created from pattern {{o1}} are: |
+ The triples created from pattern {{o1}} are: |
Line 598 was replaced by line 592 |
- The triples created from pattern {{o4}} are: |
+ The triples created from pattern {{o4}} are: |
Line 606 was replaced by line 600 |
- And the triples created from pattern {{o5}} are: |
+ And the triples created from pattern {{o5}} are: |
Line 615 was replaced by line 609 |
- Notice that both individuals of pattern {{o5}} are |
+ Notice that both individuals of pattern {{o5}} are |
Line 623 was replaced by line 617 |
- To use the iteration context of {{o5}} for |
+ To use the iteration context of {{o5}} for |
Line 629 was replaced by line 623 |
- <individual label="o6" type="ont:E" foreach="R.x, R.z"> |
+ <individual label="o6" type="ont:E" foreach="DISTINCT R.x, R.z"> |
Line 636 was replaced by line 630 |
- The corresponding first-order rule for this pattern is: |
+ The corresponding first-order rule for this pattern is: |
Line 645 was replaced by line 639 |
- Note that in this case, however, we generate only one |
+ Note that in this case, however, we generate only one |
Line 651 was replaced by line 645 |
- __Property Iteration and Labels__. It is also possible to apply |
+ __Property Iteration and Labels__. It is also possible to apply |
Lines 658-659 were replaced by lines 652-653 |
- <individual label="o7" type="ont:E" foreach="R.x, R.z"> |
- <property type="ont:Q" valuetype="ont:D" foreach="R.y" label="o8"> |
+ <individual label="o7" type="ont:E" foreach="DISTINCT R.x, R.z"> |
+ <property type="ont:Q" valuetype="ont:D" foreach="DISTINCT R.y" label="o8"> |
Line 665 was replaced by line 659 |
- results in the first-order rule: |
+ results in the first-order rule: |
Line 675 was replaced by line 669 |
- As shown, labels may also be applied to intermediate individuals |
+ As shown, labels may also be applied to intermediate individuals |
Removed line 683 |
- |
Lines 686-697 were replaced by line 679 |
- __<a name="annotation">Semantic Annotation<a/>:__ A mapping |
- from a resource to an instance(s) of an ontology(ies). Semantic |
- annotations in our framework have identifiers as well as associated |
- metadata (who created the annotation, and so on). |
- |
- __<a name="resource">Resource</a>:__ A structured information |
- source with a defined schema. Can be a dataset or a service, such as |
- a workflow, actor, or web-service. |
- |
- __<a name="ontology">Ontology</a>:__ Here, by ontology we mean |
- an OWL-based representation of a set of concepts, properties, and |
- constraints (axioms). |
+ ;Semantic Annotation: A mapping from a resource to an instance(s) of an ontology(ies). Semantic annotations in our framework have identifiers as well as associated metadata (who created the annotation, and so on). |
Lines 699-725 were replaced by lines 681-706 |
- __<a name="template">Semantic Annotation Template</a>:__ A set |
- of instantiation patterns within a particular semantic annotation. |
- |
- __<a name="pattern">Instantiation Pattern</a>:__ An XML-based |
- specification of a mapping from portions of a resource to instances |
- of an ontology. |
- |
- __<a name="prefix">Prefix Label</a>:__ A label used to |
- represent an ontology location. |
- |
- __<a name="variable">Resource Variable</a>:__ An attribute of a |
- resource, which in an annotation template takes the form 'R.x' (or |
- more generally a path expression 'R.x1.x2...xn' for nested |
- relations). |
- |
- __<a name="context">Iteration Context</a>:__ The set of |
- resource variables, or current variable bindings (as the pattern is |
- being executed), for a property or condition in an instantiation |
- pattern. The iteration context is determined by the enclosing |
- {{foreach}} expression of the item in question. |
- |
- __<a name="label">Pattern Label</a>:__ A label assigned to a |
- template instantiation pattern. |
- |
- __<a name="reference">Pattern Reference</a>:__ A reference to a |
- template instantiation pattern (using a pattern label) from within |
- an object property in another (or possibly the same) pattern. |
+ ;Resource: A structured information source with a defined schema. Can be a dataset or a service, such as a workflow, actor, or web-service. |
+ |
+ ;Ontology: Here, by ontology we mean an OWL-based representation of a set of concepts, properties, and constraints (axioms). |
+ |
+ ;Semantic Annotation Template: A set of instantiation patterns within a particular semantic annotation. |
+ |
+ ;Instantiation Pattern: An XML-based specification of a mapping from portions of a resource to instances of an ontology. |
+ |
+ ;Prefix Label: A label used to represent an ontology location. |
+ |
+ ;Resource Variable: An attribute of a resource, which in an annotation template takes the form 'R.x' (or more generally a path expression 'R.x1.x2...xn' for nested relations). |
+ |
+ ;Iteration Context: The set of resource variables, or current variable bindings (as the pattern is being executed), for a property or condition in an instantiation pattern. The iteration context is determined by the enclosing {{foreach}} expression of the item in question. |
+ |
+ ;Pattern Label: A label assigned to a template instantiation pattern. |
+ |
+ ;Pattern Reference: A reference to a template instantiation pattern (using a pattern label) from within an object property in another (or possibly the same) pattern. |
+ |
+ |
+ !!!Footnotes |
+ |
+ [#1] In OWL, instances of classes are called 'individuals.' |
+ |
+ [#2] Alternatively, we could use anonymous identifiers for generated OWL individuals. However, using explicit as opposed to anonymous identifiers has a number of advantages, e.g., identifiers can be used for "provenance" (that is, using conventions for identifier names one could go from the created OWL individuals back to the resource item used to generte the resource), and also make it easier to formalize the interpretation of patterns in first-order logic. |
+ |
+ [#3] The examples of resources in this document are assumed to be relational data sets. However, the approach described here can be used with a variety of resource structures, including nested relational data (e.g., like in XML). |
At line 726 added 1 line. |
+ [#4] By default, variables in {{foreach}} expressions that are null in the resource do not generate corresponding ontology class instances. |
At line 727 added 1 line. |
+ [#5] We use the notation {{(Axy)}} for universal quantification over variables {{x}} and {{y}}; {{(Exy)}} for existential quantification over variables {{x}} and {{y}}; and {{->}} for implication. |
Lines 729-763 were replaced by line 712 |
- <a name="footnotes"></a> <h2>Footnotes</h2> |
- |
- <a name="1">[1]</a> In OWL, instances of classes are called |
- 'individuals.' |
- |
- <a name="2">[2]</a> Alternatively, we could use anonymous |
- identifiers for generated OWL individuals. However, using explicit |
- as opposed to anonymous identifiers has a number of advantages, |
- e.g., identifiers can be used for "provenance" (that is, using |
- conventions for identifier names one could go from the created OWL |
- individuals back to the resource item used to generte the resource), |
- and also make it easier to formalize the interpretation of patterns |
- in first-order logic. |
- |
- <a name="2">[3]</a> The examples of resources in this document are |
- assumed to be relational data sets. However, the approach described |
- here can be used with a variety of resource structures, including |
- nested relational data (e.g., like in XML). |
- |
- <a name="3">[4]</a> By default, variables in {{foreach}} |
- expressions that are null in the resource do not generate |
- corresponding ontology class instances. |
- |
- <a name="5">[5]</a> We use the notation {{(Axy)}} for |
- universal quantification over variables {{x}} and |
- {{y}}; {{(Exy)}} for existential quantification |
- over variables {{x}} and {{y}}; and |
- {{->}} for implication. |
- |
- <a name="6">[6]</a> Note that the use of {{property}} |
- expressions in this way is useful for cases in which the property is |
- either (i) not defined (or optional) in the ontology for the |
- associated class, or (ii) is a required property, but the |
- {{valuetype}} expression gives a subclass of the property's |
- defined range. |
+ [#6] Note that the use of {{property}} expressions in this way is useful for cases in which the property is either (i) not defined (or optional) in the ontology for the associated class, or (ii) is a required property, but the {{valuetype}} expression gives a subclass of the property's defined range. |