DAML Reference
Pages: 1, 2, 3, 4
5.8. daml:Restriction
| rdf:type | daml:Class |
| rdfs:subClassOf | daml:Class |
something is in the class R if it satisfies the attached restrictions, and vice versa.
5.8.1. Syntax
daml:Restriction is a property restriction which is a special kind of class-expressions. It implicitly defines an anonymous class, namely, the class of all objects that satisfy the restriction on their properties. daml:Restriction contains:
-
one daml:onProperty property, which refers to a property name (a URI) and one or more of the following:
-
Properties indicating the type of restriction:
-
A daml:toClassproperty (which contains a class-expression).
-
A daml:hasValue property (which contains a reference to an individual object or a datatype value).
-
A daml:hasClass property (which contains a class-expression or a datatype references).
-
-
Properties containing a non-negative integer (to which we will refer as N) indicating an unqualified cardinality restriction:
-
A daml:cardinality property.
-
A daml:maxCardinality property.
-
A daml:minCardinality property.
-
-
Properties containing a non-negative integer (to which we will refer as N) indicating a qualified cardinality restriction, and containing a daml:hasClassQ property, containing a class-expressions or a datatype references:
-
One daml:hasClassQ property.
-
A daml:cardinalityQ property.
-
A daml:maxCardinalityQ property.
-
A daml:minCardinalityQ property.
-
5.9. daml:Thing
| rdf:type | daml:Class |
The most general (object) class in DAML. This is equal to the union of any class and its complement.
5.10. daml:TransitiveProperty
| rdf:type | daml:Class |
| rdfs:subClassOf | daml:ObjectProperty |
daml:TransitiveProperty is a daml:ObjectProperty that is transitively applied. If Mr. John Smith is a member of the Boulder Nordic Club (BNC) and the BNC is a member of the American Cross Country Skiers (ACCS), then Mr. Smith is also a meber of the ACCS.
5.11. daml:UnambiguousProperty
| rdf:type | daml:Class |
| rdfs:subClassOf | daml:ObjectProperty |
a daml:UnambiguousProperty is a property that has only one possible subject per object; it is an injective property. For example, if Mr.Smith position in the race is first, and there was tie in the race, then the person who came in first place in the race is Mr. Smith and nobody else.
5.12. daml:UniqueProperty
| rdf:type | daml:Class |
| rdfs:subClassOf | rdf:Property |
daml:UniqueProperty is a property that has only one possible value, it is a short-cut for a property with a daml:maxCardinality of 1. Example: Mount Everest is the highest peak on Earth. No other mountain is the highest peak.
5.13. daml:cardinality
| rdf:type | daml:Property |
| rdfs:domain | xsd:nonNegativeInteger |
| rdfs:range | daml:Restriction |
daml:cardinality determine the exact number of possible values for a given property. For instance, a daml:UniqueProperty is like a property with a daml:cardinality equal to 1.
5.14. daml:cardinalityQ
| rdf:type | daml:Property |
| rdfs:domain | xsd:nonNegativeInteger |
| rdfs:range | daml:Restriction |
daml:cardinalityQ is like daml:cardinality except that it specifies the rdf:type of the possible values of the property. Example, not only is there a single highest peak on Earth, but that peak must be natural, i.e. of rdf:type Mountain. Something of another type would be considered the highest structure and not the highest peak.
5.15. daml:complementOf
| rdf:type | daml:Property |
| rdfs:domain | daml:Class |
| rdfs:range | daml:Class |
daml:complementOf is a property that specifies that if something is an instance of X, and Y is the daml:complement of X, then Y cannot be an instance of X.
5.15.1. Syntax
daml:complementOf contains a single class-expressions and defines the class that consists of exactly all objects that do not belong to the class-expressions. It is analogous to logical negation but restricted to objects only.
5.16. daml:differentIndividualFrom
| rdf:type | daml:Property |
| rdfs:domain | daml:Thing |
| rdfs:range | daml:Thing |
daml:differentIndividualFrom property means that an instance of a class is specifically not the same as some other instance.
5.17. daml:disjointUnionOf
| rdf:type | daml:Property |
| rdfs:subClassOf | rdf:Property |
daml:disjointUnionOf property means that a class contains all the disjoint instances of the specified classes. For instance our class #Product is made of all the instances of #CurrentProduct, #DiscontinuedProduct, and #UnreleasedProduct, but no product can be an instance of more than one of the three latter classes.
5.17.1. Syntax
daml:disjointUnionOf contains a list of class-expressions.
5.18. daml:disjointWith
| rdf:type | daml:Property |
| rdfs:domain | daml:Class |
| rdfs:range | daml:Class |
The daml:disjointWith property states that all the instances of the class will not be instances of the class it is disjoint with. In our previous example, we could have said that
<rdf:Description rdf:about="#CurrentProduct">
<daml:disjointWith rdf:resource="#DiscontinuedProduct"
</rdf:Description>
5.18.1. Syntax
daml:disjointWith contains a class-expression, it means that no instances of the class-expression are common to the subject.
5.19. daml:equivalentTo
| rdf:type | daml:Property |
| rdfs:subClassOf | rdf:Property |
daml:equivalentTo means that X is equivalent to Y, therefore it can be replaced by it.
5.19.1. Syntax
daml:equivalentTo has the same semantics as the daml:sameClassAs property when it is applied to a class.
5.20. daml:first
| rdf:type | daml:Property |
| rdfs:subClassOf | daml:List |
daml:first represents the first element of a daml:List.
5.21. daml:hasClass
| rdf:type | daml:Property |
| rdfs:domain | daml:Restriction |
| rdfs:range | rdfs:Class |
5.21.1. Syntax
daml:hasClass property contains a class-expression or a datatype reference and defines the class of all objects for which at least one value of the property is a member of the class-expressions or datatype.
5.22. daml:hasClassQ
| rdf:type | daml:Property |
| rdfs:domain | daml:Restriction |
| rdfs:range | rdfs:Class |
The daml:hasClassQ property is used for specifying class restriction with daml:cardinalityQ constraints. Which means that not only must there be at least one of the values of the property with the given class (as with daml:hasClass), but the number of such properties must also meet the given cardinality rules. So, for instance, if we wish to make a rule that a BasketballTeam has 5 StartingPlayers, we can do so using a daml:hasClassQ of StartingPlayer and a daml:cardinalityQ of 5.