Building Ontologies with RDF and DAML+OIL

WWW10
May 2001, Hong Kong

Dan Connolly

Overview

RDF Basics: the graph model

Statements are represented as arcs in a (directed, labelled) graph.

e.g. Bill's father is Bob. fig1

RDF Syntax Basics: URIs for terms

<http://example/scenario#bill>
  <http://www.daml.org/2001/03/daml+oil-ex#hasFather>
    <http://example/scenario#bob>.

fig2

RDF Syntax: URI shortcuts

@prefix dex: <http://www.daml.org/2001/03/daml+oil-ex#>.
<#bill>
   dex:hasFather <#bob>.

RDF Syntax: XML for interchage

in http://example/scenario:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dex="http://www.daml.org/2001/03/daml+oil-ex#"> <rdf:Description rdf:about="#bill"> <dex:hasFather rdf:resource="#bob"> </rdf:Description> </rdf:RDF>

RDF Schema: Class and subClassOf

Bill is a Man: :bill rdf:type dex:Man.

Bob is a Man: :bob rdf:type dex:Man.

Men are Persons: dex:Man rdfs:subClassOf dex:Person.

fig3: W3C terms in blue; classes in bold.

RDF Schema: Implicit statements

RDF Schema: domain and range or properties

Things that have fathers are Animals: dex:father rdfs:domain dex:Animal.

Things that are fathers are Males: dex:father rdfs:range dex:Male.

fig4

RDF Schema: not for today

not discussed here:

DAML+OIL: Set Operations

No female is a male: dex:Female dpo:disjointWith dex:Male.

fig5

Pat can't be both.

fig5a

also: unionOf, intersectionOf, complementOf

DAML+OIL: List utilities

Lists are built using first, rest, and nil.

list figure

fig

DAML+OIL: Domain-dependent range

The father of a person is a person: dex:Person rdfs:subClassOf [ dpo:onProperty dex:father; dpo:toClass dex:Person].

fig