DAML Reference
This third installment of our series looking at the DARPA Agent Markup Language provides a quick reference for concepts from RDF, RDF Schema and DAML.
| 1. | RDF Syntax Elements |
| 2. | DAML+OIL Syntax Elements |
| 3. | RDF Classes and Properties |
| 4. | RDFS Classes and Properties |
| 5. | DAML Classes and Properties |
| Namespace URI: | http://www.w3.org/1999/02/22-rdf-syntax-ns# |
| Specification: | http://www.w3.org/TR/1999/REC-rdf-syntax-19990222 |
The syntax elements in the RDF XML syntax have been designed to allow grouping of multiple statements about a resource into an rdf:Description element. These elements are not part of the model and are therefore not deserialized into triples.
Attribute. rdf:about identifies the resource to which the following statements apply. The value of the attribute is a URI reference.
Element. The RDF XML syntax groups multiple statements for the same resource into this rdf:Description element. The rdf:Description element references, in the rdf:about attribute, the resource to which each of the statements apply. If the resource does not yet exist (i.e., does not yet have a resource identifier), then a rdf:Description element can supply the identifer for the resource using an rdf:ID attribute.
Attribute. rdf:ID also identifies the resource to which the following statements apply. The resource will be created in the default namespace of the declaring document. The resulting URI is made by concatenating the namespace with the value of the attribute.
Element. rdf:li is used by RDF/XML as a convenience element to avoid having to explicitly number each member of a rdf:Bag, rdf:Seq, or rdf:Alt. The rdf:li element assigns the properties _1, _2, and so on as necessary. The element name "li" was chosen as a mnemonic with the term "list item" from HTML.
Attribute. rdf:ParseType is an attribute whose values are either Resource or Literal. The value is case-sensitive. DAML+OIL introduced the daml:collection value, see daml:collection
Element. The RDF element is a simple wrapper that marks the boundaries in an XML document between which the content is explicitly intended to be mapped into an RDF data model instance, including RDF, RDFS, and DAML+OIL.
Attribute. rdf:resource is used in a property declaration to specify that some other resource, not a literal, is the value of the property.
Attribute value. Literal parsetype means that the content of the element is a literal and any markup will not be interpreted by RDF.
Attribute value. Resource parsetype specifies that the element content must be treated as if it were the content of an rdf:Description element.
| Namespace URI: | http://www.w3.org/2000/10/XML# |
| Specification: | http://www.w3.org/TR/2001/REC-xml-20001006 |
Attribute. The xml:lang attribute may be used as defined by XML to associate a language with the property value.
| Namespace URI: | http://www.daml.org/2001/03/daml+oil# |
| Specification: | http://www.daml.org/2001/03/daml+oil.daml |
Attribute value. DAML+OIL needs to represent unordered collections of items (also known as bags or multisets) in a number of constructions, such as daml:intersectionOf, daml:unionOf, daml:oneOf, daml:disjointUnionOf. DAML+OIL exploits the rdf:parseType attribute to extend the syntax of RDF with a convenient notation for such collections. Whenever an element has the rdf:parseType attribute with value "daml:collection", the enclosed elements must be interpreted as elements in a list structure, constructed using the elements daml:List, daml:first, daml:rest and daml:nil.
| Namespace URI: | http://www.w3.org/1999/02/22-rdf-syntax-ns# |
| Specification: | http://www.w3.org/TR/1999/REC-rdf-syntax-19990222 |
rdf:Alt represents an instance of an Alternative container resource type. It represents alternatives for the (single) value of a property. The members of the collection are denoted by rdf:li in the XML syntax and by _1, _2, _3 etc. in the model.
rdf:Bag represents an instance of a Bag container resource type. A Bag is an unordered list of resources or literals. The members of the collection are denoted by rdf:li in the XML syntax and by _1, _2, _3 etc. in the model.
rdf:Property represents the subset of RDF resources that are properties. A property is a specific aspect, characteristic, attribute, or relation used to describe a resource. For instance in the following statement "Mr. John Smith is a member of the Boulder Nordic Club", being a member would be a relation that Mr. Smith has with the Club, therefore member can be considered an rdf:Property of Mr. Smith. In XML that statement could be defined as shortly as this:
<rdf:Description rdf:about="#jsmith">
<member rdf:resource="#BoulderNordicClub"/>
</rdf:Description>
rdf:Seq represents an instance of a Sequence container resource type. A Sequence is an ordered list of resources or literals. The members of the collection are denoted by rdf:li in the XML syntax and by _1, _2, _3 etc. in the model.
When a resource represents a reified statement and has an rdf:type of rdf:Statement, then that resource must have a rdf:subject property, one rdf:object property, and one rdf:predicate property. A reified statement is a statement about another statement.
For instance the statement "The manager says that Mr. John Smith is a member of the Boulder Nordic Club" is a reified statement where the statement "Mr. John Smith is a member of the Boulder Nordic Club" is attributed to the manager. The syntax of that statement could look like this:
<rdf:Statement>
<rdf:subject rdf:resource="#jsmith" />
<rdf:predicate rdf:resource="#member" />
<rdf:object rdf:resource="#BoulderNordicClub">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
<attributedTo rdf:resource="#manager"/>
</rdf:Statement>
| rdf:type | rdf:Property |
rdf:object identifies the value of the property in the modeled statement. The value of the object property is the object in the original rdf:Statement. In our example the resource "#BoulderNordicClub" is the rdf:object.
| rdf:type | rdf:Property |
| rdf:type | rdf:Property |
| rdf:type | rdf:Property |
Take the following statements as an example:
<rdf:Description rdf:ID="TreZetta1010">
<rdf:type rdf:about="#Footwear"/>
<rdf:type rdf:about="#HikingGear"/>
</rdf:Description>
Not only are we saying that the resource "#TreZetta1010" is an instance of both "#Footwear" and "#HikingGear" but by inference it is also of rdf:type "#HikingShoes".
<daml:Class rdf:ID="HikingShoes">
<rdfs:label>Hiking Shoes</rdfs:label>
<rdfs:comment>An item worn on the feet while hiking</rdfs:comment>
<daml:intersectionOf rdf:parseType="daml:collection">
<daml:Class rdf:about="#HikingGear"/>
<daml:Class rdf:about="#Footwear"/>
</daml:intersectionOf>
</daml:Class>
| rdf:type | rdf:Property |
|
| Namespace URI: | http://www.w3.org/2000/01/rdf-schema## |
| Specification: | http://www.w3.org/TR/2000/CR-rdf-schema-20000327 |
rdfs:Class corresponds to the generic concept of a Type or Category, similar to the notion of a Class in object-oriented programming languages. When a schema defines a new class, the resource representing that class must have an rdf:type property whose value is the resource rdfs:Class.
Anything described by RDF expressions is called a resource and is considered to be an instance of the class rdfs:Resource. The RDF class rdfs:Resource represents the set called "Resources" in the formal model for RDF presented in section 5 of the RDF Model and Syntax specification.
rdf:type rdf:Property
rdfs:domain indicates the classes on whose member a property can be used. (each containing a class-expression). If there are multiple domains, then according to DAML+OIL semantics, the domain is the union of all domain specifications. Warning: this is different from the semantics in RDFS.| rdf:type | rdf:Property |
| rdf:type | rdf:Property |
| rdf:type | rdf:Property |
| rdf:type | rdf:Property |
| rdf:type | rdf:Property |
<daml:Class rdf:ID="Ball">
<rdfs:label>Ball</rdfs:label>
<rdfs:comment>A ball designed to be in sports</rdfs:comment>
<rdfs:subClassOf rdf:resource="#Product"/>
</daml:Class>
| rdf:type | rdf:Property |
<daml:ObjectProperty rdf:ID="inactiveMember">
<rdfs:label>Inactive Member</rdfs:label>
<rdfs:comment>A member that temporarily stopped its
activity within the Club.</rdfs:comment>
<rdfs:subPropertyOf rdf:resource="#member"/>
</daml:ObjectProperty>
| Namespace URI: | http://www.daml.org/2001/03/daml+oil# |
| Specification: | http://www.daml.org/2001/03/daml+oil.daml |
| rdfs:subClassOf | rdfs:Class |
A daml:Class contains part of the definition of an object class. A class refers to a class name using either rdf:about or rdf:ID attributes, and contains:
zero or more rdfs:subClassOf properties (each containing a class-expression ).
zero or more daml:disjointWith properties (each containing a class-expression ).
zero or more daml:disjointUnionOf properties (each containing a list of class-expressions ).
zero or more daml:sameClassAs properties (each containing a class-expression ).
zero or more daml:equivalentTo properties (each containing a class-expressions ).
zero or more boolean combinations of class-expressions, that is any combinations of daml:unionOf , daml:intersectionOf, daml:complementOf.
zero or more enumeration properties daml:oneOf.
A class-expression is the name used in this document for either:
a class name (a URI) identified using the rdf:resource attribute, or
an enumeration, enclosed in <daml:Class>...</daml:Class> tags, or
a property-restriction, defined with the daml:Restriction class or
a boolean combination of class- expressions, enclosed in <dfs:Class>...</rdfs:Class> tags.
| rdf:type | rdfs:Class |
| rdfs:subClassOf | rdfs:Class |
Instances of daml:Datatype are datatypes instead of object classes like instances of daml:Class. A datatype is a simple type such as those defined in the W3C XML Schema; it includes string, numbers, date, etc. The daml:Datatype class is disjoint from the daml:Class class, therefore no instance can be a datatype and an object class.
| rdf:type | daml:Class |
| rdfs:subClassOf | rdfs:Property |
| rdf:type | daml:Class |
| rdfs:subClassOf | rdf:Seq |
| rdf:type | daml:Class |
| rdfs:subClassOf | rdf:Property |
A property (daml:ObjectProperty and daml:DatatypeProperty) contains:
zero or more rdfs:subPropertyOf properties, each containing a property name.
zero or more rdfs:domain properties (each containing a class-expressions).
zero or more rdfs:range properties (each containing a class-expressions).
zero or more daml:equivalentTo properties (each containing a property name).
zero or more daml:inverseOf properties (each containing a property name), for properties only.
| rdf:type | rdfs:Class |
| rdfs:subClassOf | rdf:Property |
A daml:Ontology class contains zero or more daml:versionInfo and daml:imports properties.
|
| rdf:type | daml:Class |
| rdfs:subClassOf | daml:Class |
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.
| rdf:type | daml:Class |
| rdf:type | daml:Class |
| rdfs:subClassOf | daml:ObjectProperty |
| rdf:type | daml:Class |
| rdfs:subClassOf | daml:ObjectProperty |
| rdf:type | daml:Class |
| rdfs:subClassOf | rdf:Property |
| rdf:type | daml:Property |
| rdfs:domain | xsd:nonNegativeInteger |
| rdfs:range | daml:Restriction |
| rdf:type | daml:Property |
| rdfs:domain | xsd:nonNegativeInteger |
| rdfs:range | daml:Restriction |
| rdf:type | daml:Property |
| rdfs:domain | daml:Class |
| rdfs:range | daml:Class |
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.
| rdf:type | daml:Property |
| rdfs:domain | daml:Thing |
| rdfs:range | daml:Thing |
| rdf:type | daml:Property |
| rdfs:subClassOf | rdf:Property |
daml:disjointUnionOf contains a list of class-expressions.
| rdf:type | daml:Property |
| rdfs:domain | daml:Class |
| rdfs:range | daml:Class |
<rdf:Description rdf:about="#CurrentProduct">
<daml:disjointWith rdf:resource="#DiscontinuedProduct"
</rdf:Description>
daml:disjointWith contains a class-expression, it means that no instances of the class-expression are common to the subject.
| rdf:type | daml:Property |
| rdfs:subClassOf | rdf:Property |
daml:equivalentTo has the same semantics as the daml:sameClassAs property when it is applied to a class.
| rdf:type | daml:Property |
| rdfs:subClassOf | daml:List |
| rdf:type | daml:Property |
| rdfs:domain | daml:Restriction |
| rdfs:range | rdfs:Class |
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.
| rdf:type | daml:Property |
| rdfs:domain | daml:Restriction |
| rdfs:range | rdfs:Class |
|
| rdf:type | daml:Property |
| rdfs:domain | daml:Restriction |
daml:hasValue property contains a reference to an individual object or a datatype value and defines the class of all objects for whom the property has at least one value equal to the named object or datatype value.
| rdf:type | daml:Property |
Each daml:imports statement references another DAML+OIL ontology containing definitions that apply to the current DAML+OIL resource. Each reference consists of a URI specifying where the ontology is to be imported from. daml:imports are transitive.
| rdf:type | daml:Property |
| rdfs:domain | daml:Class |
| rdfs:range | daml:List |
daml:intersectionOf contains a list of class-expressions and defines the class that consists of exactly all the objects that are common to all class-expressions from the list. It is analogous to logical conjunction.
| rdf:type | daml:Property |
| rdfs:domain | daml:ObjectProperty |
| rdfs:range | daml:ObjectProperty |
| rdfs:domain | daml:ObjectProperty |
| rdf:type | daml:Property |
| rdfs:domain | daml:Restriction |
| rdfs:range | xsd:nonNegativeInteger |
| rdf:type | daml:Property |
| rdfs:domain | daml:Restriction |
| rdfs:range | xsd:nonNegativeInteger |
| rdf:type | daml:Property |
| rdfs:domain | daml:Restriction |
| rdfs:range | xsd:nonNegativeInteger |
| rdf:type | daml:Property |
| rdfs:domain | daml:Restriction |
| rdfs:range | xsd:nonNegativeInteger |
| rdf:type | daml:List |
| rdf:type | daml:Property |
| rdfs:domain | daml:Restriction |
| rdfs:range | rdf:Property |
daml:onProperty property refers to a property name (a URI) by the attribute rdf:resource.
| rdf:type | daml:Property |
| rdfs:domain | daml:Class |
| rdfs:range | daml:List |
daml:oneOf contains a list of the objects that are its instances. The class defined by the daml:oneOf property contains exactly the enumerated objects, declared using daml:Thing.
| rdf:type | daml:Property |
| rdfs:domain | daml:List |
| rdfs:range | daml:List |
| rdf:type | daml:Property |
| rdfs:domain | daml:Class |
| rdfs:range | daml:Class |
| rdfs:subPropertyOf | daml:equivalentTo |
| rdfs:subPropertyOf | rdfs:subClassOf |
daml:sameClassAs property asserts that the subject is equivalent to the class-expression(i.e. the subject and all the class-expression must have the same instances).
| rdf:type | daml:Property |
| rdfs:domain | daml:Thing |
| rdfs:range | daml:Thing |
| rdfs:subPropertyOf | daml:equivalentTo |
| rdf:type | daml:Property |
| rdfs:subPropertyOf | daml:equivalentTo |
| rdfs:subPropertyOf | rdfs:subPropertyOf |
daml:samePropertyAs asserts that the subject is equivalent to the named property (i.e. they must have the same instances).
| rdf:type | daml:Property |
| rdfs:domain | daml:Restriction |
| rdfs:range | rdfs:Class |
<daml:Class rdf:ID="ObsoleteActivity">
<rdfs:label>Obsolete activity</rdfs:label>
<rdfs:comment>Activities for which all related
products have been discontinued</rdfs:comment>
<daml:intersectionOf rdf:parseType="daml:collection">
<daml:Class rdf:resource="#Activity"/>
<daml:Restriction>
<daml:onProperty rdf:resource="#gear"/>
<daml:toClass rdf:resource="#DiscontinuedProduct"/>
</daml:Restriction>
</daml:intersectionOf>
</daml:Class>
The daml:toClass property contains a class-expressions and defines the class of all objects for whom the values of the property all belong to the class-expressions.
| rdf:type | daml:Property |
| rdfs:domain | daml:Class |
| rdfs:range | daml:List |
daml:unionOf contains a list of class-expressions and defines the class that consists of all the objects that belong to at least one of the class-expressions from the list. It is analogous to logical disjunction.
| rdf:type | daml:Property |
XML.com Copyright © 1998-2006 O'Reilly Media, Inc.