31
RD F and D A M L Resource D escription Fram ew ork (RD F)is a know ledge representation language represented in X M L. Itisa W WW Consortium Recom m endation. The D A RPA A gentM arkup Language (DAM L)isan extension ofRD F to serve as the basisforontology-based com puting overthe W eb:the Sem antic W eb .

Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

Embed Size (px)

DESCRIPTION

DAML+OIL RDF DAML+OIL ontology is a set of RDF statements –http://www.daml.org/2001/03/daml+oil.daml Ontology can actually include arbitrary RDF statements RDF schema uses XML syntax, but could theoretically use any other syntax

Citation preview

Page 1: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

RDF and DAML

Resource Description Framework (RDF) is a knowledge representation language represented in XML. It is a WWW Consortium Recommendation.

The DARPA Agent Markup Language (DAML) is an extension of RDF to serve as the basis for ontology-based computing over the Web: the Semantic Web.

Page 2: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

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

Page 3: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

DAML+OIL <-> RDF

• DAML+OIL ontology is a set of RDF statements – http://www.daml.org/2001/03/daml+oil.daml

• Ontology can actually include arbitrary RDF statements

• RDF schema uses XML syntax, but could theoretically use any other syntax

Page 4: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

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

Page 5: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

RDF• RDF document is a collection of assertions

in subject verb object (SVO) form Within the obligatory RDF declaration (typically a tag that begins something like <rdf:RDF ...), each topmost element is the subject of a sentence. The next level of enclosed elements represent verb/object pairs for this sentence:<Class ID="Male"> <subClassOf resource="#Animal"/> </Class> Male is a subclass of Animal.

Page 6: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

<Class ID="Female"> <subClassOf resource="#Animal"/> <disjointWith resource="#Male"/> </Class> Female is a subclass of Animal AND Female is disjoint from Male. The single subject -- Female -- is used to begin each of the verb-object assertions<subClassOf resource="#Animal"/> and<disjointWith resource="#Male"/>

Page 7: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

Basic RDF object types

• Resources – All things being described by RDF expressions – Identified by URI plus optional anchor id– E.g., <disjointWith resource="#Male"/>

• 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

Page 8: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

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)

– http://www.w3.org/RDF/

Page 9: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

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>

Page 10: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

Simple Example cont.1• Now, consider the case that we want to say something

more about the characteristics of the creator of this resource. In prose, such a sentence would be:The individual whose name is Ora Lassila, email <[email protected]>, is the creator of http://www.w3.org/Home/Lassila.

The intention of this sentence is to make the value of the Creator property a structured entity. In RDF such an entity is represented as another resource. The sentence above does not give a name to that resource; it is anonymous, so in the diagram below we represent it with an empty oval:

Page 11: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

Simple Example cont.2The structured entity of the previous example can also be

assigned a unique identifier. To continue the example, imagine that an employee id is used as the unique identifier for a "person" resource. The URIs that serve as the unique keys for each employee (as defined by the organization) might then be something like http://www.w3.org/staffId/85740. Now we can write the two sentences:The individual referred to by employee id 85740 is named Ora Lassila and has the email address [email protected]. The resource http://www.w3.org/Home/Lassila was created by this individual.

Page 12: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

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

Page 13: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

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>[email protected]</v:Email> </rdf:Description> </rdf:RDF> equal to <rdf:RDF> <rdf:Description about="http://www.w3.org/Home/Lassila"> <s:Creator rdf:resource="http://www.w3.org/staffId/85740" v:Name="Ora

Lassila" v:Email="[email protected]" /> </rdf:Description> </rdf:RDF>

Page 14: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

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>[email protected]</v:Email> </rdf:Description> </s:Creator> </rdf:Description> equal to <rdf:Description about="http://www.w3.org/Home/Lassila"> <s:Creator>

<s:Person about="http://www.w3.org/staffId/85740"> <v:Name>Ora Lassila</v:Name> <v:Email>[email protected]</v:Email> </s:Person> </s:Creator> </rdf:Description>

Page 15: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

Basic Serialization SyntaxBasic RDF serialization syntax takes the form:[1] RDF ::= ['<rdf:RDF>'] description* ['</rdf:RDF>'] [2] description ::= '<rdf:Description' idAboutAttr? '>' propertyElt*

'</rdf:Description>' [3] idAboutAttr ::= idAttr | aboutAttr [4] aboutAttr ::= 'about="' URI-reference '"' [5] idAttr ::= 'ID="' IDsymbol '"' [6] propertyElt ::= '<' propName '>' value '</' propName '>' | '<'

propName resourceAttr '/>' [7] propName ::= Qname [8] value ::= description | string [9] resourceAttr ::= 'resource="' URI-reference '"' [10] Qname ::= [ NSprefix ':' ] name [11] URI-reference ::= string, interpreted per [URI] [12] IDsymbol ::= (any legal XML name symbol) [13] name ::= (any legal XML name symbol) [14] NSprefix ::= (any legal XML namespace prefix) [15] string ::= (any XML text, with "<", ">", and "&" escaped)

Page 16: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

RDF/XML

Ora Lassila is the creator of the resource http://www.w3.org/Home/Lassila. is represented in RDF/XML as:<rdf:RDF> <rdf:Description about="http://www.w3.org/Home/Lassila"> <s:Creator>Ora Lassila</s:Creator> </rdf:Description> </rdf:RDF>

Page 17: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

RDF schema• Different from XML DTD: syntax vs.

semantics • Defines Class, Property, subClassOf,

subPropertyOf, domain, range, and some others

• http://www.w3.org/TR/rdf-schema/ http://www.w3.org/TR/REC-rdf-syntax/

Page 18: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

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

Page 19: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

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#”

Page 20: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

DAML basics cont.1• 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>

Page 21: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

DAML basics cont.2• 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"/> </rdfs:Class>

Page 22: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

DAML basics cont.3• 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"/> </rdfs:Class>

Page 23: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

DAML basics cont.4

• 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"/> </rdf:Property>

Page 24: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

DAML basics cont.5• 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> <rdfs:subClassOf>

<daml:Restriction daml:cardinality="1"> <daml:onProperty rdf:resource="#hasFather"/> </daml:Restriction> </rdfs:subClassOf> </rdfs:Class>

Page 25: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

DAML basics cont.6About 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>

Page 26: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

DAML basics cont.7• 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>

Page 27: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

DAML basics cont.8• 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>

Page 28: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

DAML basics cont.9• 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>

Page 29: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

DAML basics cont.10• 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> </rdfs:Class>

Page 30: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible

DAML basics cont.11• instances <Person rdf:ID="Adam">

<rdfs:label>Adam</rdfs:label> <rdfs:comment>Adam is a person.

</rdfs:comment> <hasHeight

rdf:resource=“#medium”/> </Person>

Page 31: Motivation Dynamically identify and understand information sources Provide interoperability between agents in a semantic manner Enable distributed extensible