DAML: The DARPA Agent Markup Language Vera Zaychik GICL, Drexel University 02/28/01 DAML
Introduction Extension to RDF: Resource Description Framework and XML: eXtensible Markup Language, also uses ideas from SHOE, OIL, and others Provides constructs to create ontologies and markup information for machine readability Started in august 2000, latest version is called DAML+OIL, next version, DAML+OIL+DT in march DAML
Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible network of ontologies Current tools such as HTML, XML not sufficient to express semantics, relationships between classes DAML
DAML+OIL <-> RDF DAML+OIL ontology is a set of RDF statements Ontology can actually include arbitrary RDF statements RDF schema uses XML syntax, but could theoretically use any other syntax DAML
XML Makes use of tags just like HTML, but arbitrary <aTag>...</aTag> <anEmptyTag/> <anotherTag with="an attribute">...</anotherTag> <aTag>with <anemptyTag/> inside it</aTag> <tags>and<moreTags>and<yetmoreTags>and...</yetmoreTags></moreTags></tags> Tags can be defined semantically in a DTD DAML
RDF RDF document is a collection of assertions in subject verb object (SVO) form Actually both a data model (RDFMS) and a schema (RDFS) RDF data model is a syntax-neutral way of representing RDF expressions Does not specify a mechanism for reasoning DAML
Basic RDF object types Resources Properties All things being described by RDF expressions Identified by URI plus optional anchor id Properties A specific aspect, characteristic, attribute, or relation used to describe a resource has a specific meaning, defines its permitted values, the types of resources it can describe, and its relationship with other properties DAML
Basic RDF object types cont. Statements A specific resource together with a named property plus the value of that property for that resource is an RDF statement Called the subject, the predicate, and the object property value can be another resource or it can be a literal(string or other primitive data type) DAML
Simple Example Ora Lassila is the creator of the resource http://www.w3.org/Home/Lassila <rdf:RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:s="http://description.org/schema/"> <rdf:Description about="http://www.w3.org/Home/Lassila"> <s:Creator>Ora Lassila</s:Creator> </rdf:Description> </rdf:RDF> DAML
Abbreviated Syntax Form 1 Usable for properties that are not repeated within a description and where the values of those properties are literals the properties may be written as XML attributes <rdf:RDF> <rdf:Description about="http://www.w3.org/Home/Lassila" s:Creator="Ora Lassila" /> </rdf:RDF> Side effect: might be viewed differently in browser DAML
Abbreviated Syntax Form 2 Works for nested Description elements <rdf:RDF> <rdf:Description about="http://www.w3.org/Home/Lassila"> <s:Creator rdf:resource="http://www.w3.org/staffId/85740"/> </rdf:Description> <rdf:Description about="http://www.w3.org/staffId/85740"> <v:Name>Ora Lassila</v:Name> <v:Email>lassila@w3.org</v:Email> </rdf:RDF> equal to <s:Creator rdf:resource="http://www.w3.org/staffId/85740" v:Name="Ora Lassila" v:Email="lassila@w3.org" /> DAML
Abbreviated Syntax Form 3 description element containing a type property <rdf:Description about="http://www.w3.org/Home/Lassila"> <s:Creator> <rdf:Description about="http://www.w3.org/staffId/85740"> <rdf:type resource="http://description.org/schema/Person"/> <v:Name>Ora Lassila</v:Name> <v:Email>lassila@w3.org</v:Email> </rdf:Description> </s:Creator> equal to <s:Person about="http://www.w3.org/staffId/85740"> </s:Person> DAML
RDF schema Different from XML DTD: syntax vs. semantics Defines Class, Property, subClassOf, subPropertyOf, domain, range, and some others Use http://www.w3.org/2000/01/rdf-schema namespace DAML
More info on RDF http://www.w3.org/RDF/ http://www.w3.org/TR/rdf-schema/ http://www.w3.org/TR/REC-rdf-syntax/ DAML
Why RDF Is Not Enough Only range/domain constraints on properties (need others) No properties of properties (unique, transitive, inverse, etc.) No equivalence, disjointness, etc. No necessary and sufficient conditions (for class membership) No defined semantics DAML
DAML basics Setting up the namespaces <rdf:RDF xmlns:rdf =“http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:rdfs=“http://www.w3.org/2000/01/rdf-schema#” xmlns:daml=“http://www.daml.org/2000/12/daml+oil#” xmlns =“http://www.daml.org/2000/12/daml+oil-ex#” > DAML
DAML basics cont. Assert an ontology <daml:Ontology rdf:about=“”> <daml:versionInfo>$Id: daml+oil-ex.daml,v 1.4 2001/01/11 20:33:52 mdean Exp $</daml:versionInfo> <rdfs:comment>An example ontology</rdfs:comment> <daml:imports rdf:resource=“http://www.daml.org/2000/12/daml+oil”/> </daml:Ontology> DAML
DAML basics cont. Define classes <rdfs:Class rdf:ID="Animal"> <rdfs:label>Animal</rdfs:label> <rdfs:comment> This class of animals is illustrative of a number of ontological idioms. </rdfs:comment> </rdfs:Class> <rdfs:Class rdf:ID="Male"> <rdfs:subClassOf rdf:resource="#Animal"/> DAML
DAML basics cont. Define classes <rdfs:Class rdf:ID="Female"> <rdfs:subClassOf rdf:resource="#Animal"/> <daml:disjointWith rdf:resource="#Male"/> </rdfs:Class> <rdfs:Class rdf:ID="Man"> <rdfs:subClassOf rdf:resource="#Person"/> <rdfs:subClassOf rdf:resource="#Male"/> DAML
DAML basics cont. Define properties <rdf:Property rdf:ID="hasParent"> <rdfs:domain rdf:resource="#Animal"/> <rdfs:range rdf:resource="#Animal"/> </rdf:Property> <rdf:Property rdf:ID="hasFather"> <rdfs:subPropertyOf rdf:resource="#hasParent"/> <rdfs:range rdf:resource="#Male"/> DAML
DAML basics cont. Define restrictions <rdfs:Class rdf:ID="Person"> <rdfs:subClassOf rdf:resource="#Animal"/> <rdfs:subClassOf> <daml:Restriction> scope difference <daml:onProperty rdf:resource="#hasParent"/> <daml:toClass rdf:resource="#Person"/> </daml:Restriction> </rdfs:subClassOf> <daml:Restriction daml:cardinality="1"> <daml:onProperty rdf:resource="#hasFather"/> </rdfs:Class> DAML
DAML basics cont. About tag <rdfs:Class rdf:about="#Animal"> <rdfs:comment> Animals have exactly two parents, ie: If x is an animal, then it has exactly 2 parents (but it is NOT the case that anything that has 2 parents is an animal). </rdfs:comment> <rdfs:subClassOf> <daml:Restriction daml:cardinality="2"> <daml:onProperty rdf:resource="#hasParent"/> </daml:Restriction> </rdfs:subClassOf> </rdfs:Class> DAML
DAML basics cont. Max, min cardinality (min default=0) <rdfs:Class rdf:about="#Person"> <rdfs:subClassOf> <daml:Restriction daml:maxcardinality="1"> <daml:onProperty rdf:resource="#hasSpouse"/> </daml:Restriction> </rdfs:subClassOf> </rdfs:Class> DAML
DAML basics cont. UniqueProperty (cardinality=1), Transitive <daml:UniqueProperty rdf:ID="hasMother"> <rdfs:subPropertyOf rdf:resource="#hasParent"/> <rdfs:range rdf:resource="#Female"/> </daml:UniqueProperty> <daml:TransitiveProperty rdf:ID="hasAncestor"> <rdfs:label>hasAncestor</rdfs:label> </daml:TransitiveProperty> DAML
DAML basics cont. one of <rdf:Property rdf:ID="hasHeight"> <rdfs:range rdf:resource="#Height"/> </rdf:Property> <rdfs:Class rdf:ID="Height"> <daml:oneOf rdf:parseType="daml:collection"> <Height rdf:ID="short"/> <Height rdf:ID="medium"/> <Height rdf:ID="tall"/> </daml:oneOf> </rdfs:Class> DAML
DAML basics cont. hasValue, intersectionOf <rdfs:Class rdf:ID="TallThing"> <daml:sameClassAs> <daml:Restriction> <daml:onProperty rdf:resource="#hasHeight"/> <daml:hasValue rdf:resource="#tall"/> </daml:Restriction> </daml:sameClassAs> </rdfs:Class> <rdfs:Class rdf:ID="TallMan"> <daml:intersectionOf rdf:parseType="daml:collection"> <rdfs:Class rdf:about="#TallThing"/> <rdfs:Class rdf:about="#Man"/> </daml:intersectionOf> DAML
DAML basics cont. instances <Person rdf:ID="Adam"> <rdfs:label>Adam</rdfs:label> <rdfs:comment>Adam is a person.</rdfs:comment> <hasHeight rdf:resource=“#medium”/> </Person> DAML
Status Several ontologies already defined: http://www.daml.org/ontologies/ Crawler: http://www.daml.org/crawler/ Other tools: http://www.daml.org/tools/tools.html DAML
Where to Get More Information Main: http://www.daml.org Language Reference: http://www.daml.org/2000/12/reference.html A Model-Theoretic Semantics: http://www.daml.org/2000/12/model-theoretic-semantics.html An Axiomatic Semantics (KIF): http://www.daml.org/2000/12/axiomatic-semantics.html DAML