Bell Labs logo

Options for a Semantic Web Ontology Language
(was: Two Proposals for a Semantic Web Ontology Language)


by Peter F. Patel-Schneider

Original Abstract

Recent investigations have uncovered some problems in the relationship between DAML+OIL and the new RDF model theory. There are several ways of remedying these problems, resulting in greater or lesser compatability with RDF. One possible remedy is to diverge from the RDF philosophy only on statements about descriptions, resulting in a complex web ontology language containing a description logic and that is compatible with RDF. Another possible remedy is to remain compatible with RDF only on statements about individuals, resulting in a semantic web ontology language that is very close to standard description logics, but that is not fully compatible with RDF.

New Abstract

To transform description logics into a Semantic Web Ontology Language requires careful consideration of the existing Web Language, including XML, XML Schema, RDF, and RDF Schema. Not only do the actual languages need to be considered, but also their desired places in the larger Semantic Web vision as these desires may have undesirable consequences. There are thus a large number of possible ways of producing a Semantic Web Ontology Language based on description logics, with differing characteristics.

Semantic Web Vision

  1. Bring structure to web pages
  2. Permit software agents to carry out sophisticated tasks for users
  3. Extension of the current web

(Tim Berners-Lee, James Hendler, and Ora Lassila. ``The Semantic Web''. Scientific American, May 2001.)

Semantic Web Tower

Semantic Web Tower

Semantic Web Tower (from Tim Berners-Lee)

Requirements for Semantic Web Languages

Form: The language(s) used in the semantic web need well-defined syntax.

Meaning: The language(s) used in the semantic web need well-defined semantics.

Elements of the Semantic Web Tower

The Current Vision of the Semantic Web Tower

Rationale for the Current Vision

Problems with the Semantic Web Vision

  1. Disconnects at the Foundation (not this talk)
    • The XML meaning is not used, so data written in XML cannot be used in the Semantic Web.
    • XML Schema is not used in the Semantic Web languages.
    • Ignore this problem, for now, and assume that RDF data is the foundation of the Web.
  2. An Inadequate Basis
    • RDF is inadequate for providing either syntax or semantics for the entire Semantic Web.

RDF as an Inadequate Basis

An Inadequate Basis (daml+oil-ex.daml extracts)

<rdf:RDF ... >

<daml:Ontology rdf:about="">
  <daml:versionInfo>$Id: ....>
  <daml:imports rdf:resource=".../daml+oil"/>
</daml:Ontology>

<daml:Class rdf:ID="Senior">
  <daml:intersectionOf rdf:parseType="daml:collection">
    <daml:Class rdf:about="#Person"/>
    <daml:Restriction>
      <daml:onProperty rdf:resource="#age"/>
      <daml:hasClass rdf:resource=".../daml+oil-ex-dt#over59"/>
    </daml:Restriction>
  </daml:intersectionOf>
</daml:Class>  

An Inadequate Basis (daml+oil-ex.daml extracts)

<daml:Class rdf:ID="Height">
  <daml:oneOf rdf:parseType="daml:collection">
    <Height rdf:ID="short"/>
    <Height rdf:ID="medium"/>
    <Height rdf:ID="tall"/>
  </daml:oneOf>
</daml:Class>
<daml:Class rdf:ID="TallThing">
  <daml:sameClassAs>
    <daml:Restriction>
      <daml:onProperty rdf:resource="#hasHeight"/>
      <daml:hasValue rdf:resource="#tall"/>
    </daml:Restriction>
  </daml:sameClassAs>
</daml:Class>
</rdf:RDF>  

Syntax Problems

Semantic Problems

Semantic Problems - A Theory of Classes

A Desirable Inference:

Premises:
John is an instance of Student.
John is an instance of Employee.
Conclusion:
John is an instance of the intersection of Student and Employee.

Semantic Problems - A Theory of Classes

A Unfortunate Inference:

Premise:
Conclusion 1:
rdf:type is an instance of the restriction whose instances do not have an rdf:type link to the restriction itself.
Conclusion 2:
rdf:type is not an instance of the restriction whose instances do not have an rdf:type link to the restriction itself.

Computational Problems - Contingent Properties of Properties

<rdf:Property rdf:about="bar">
  <rdfs:subPropertyOf rdf:resource="bbb" />
</rdf:Property>

<rdf:Property rdf:about="baz">
  <rdfs:subPropertyOf rdf:resource="bbb" />
</rdf:Property>

Computational Problems - Contingent Properties of Properties

<Person rdf:about="Jake">

  <rdf:type> 
     <Restriction property="foo" toClass="TransitiveProperty" /> 
  </rdf:type>

  <rdf:type>
     <Restriction property="foo">
       <hasClass> <oneOf> bar baz </oneOf> </hasClass>
     </Restriction>
  </rdf:type>

</Person>

Computational Problems - Contingent Properties of Properties

<Person rdf:about="John">
  <bar rdf:resource="Jill" />
  <bar rdf:resource="Mary" />
</Person>

<Person rdf:about="Jill">
  <bar rdf:resource="Susan" />
</Person>

<Person rdf:about="Mary">
  <bar rdf:resource="Susan" />
</Person>

Solving the Problems

A Better Basis

A Possible Ontology Language

An Ontology Language for the Semantic Web

A Possible Ontology Language - Example

<fowl:Ontology ...>

<DefinedClass ID="Woman">
   <superClasses>
     <class ID="Person" />
     <class ID="Female" />
   </superClasses>
</DefinedClass>

<DefinedClass ID="MarriedPerson">
   <superClasses>
     <class ID="Person" />
   </superClasses>
   <slot property="hasSpouse" required="true" singlevalued="true" />
</DefinedClass>

</fowl:Ontology> 

DAML+OIL Version

<rdf:RDF ... >

<daml:Class rdf:ID="Woman">
  <daml:sameClassAs>
    <daml:intersectionOf rdf:parseType="daml:collection">
      <daml:Class rdf:about="#Person"/>
      <daml:Class rdf:about="#Female"/>
    </daml:intersectionOf>
  </daml:sameClassAs>
</daml:Class>

...

</rdf:RDF>

DAML+OIL Version

<daml:Class rdf:ID="Woman">
  <daml:sameClassAs>
    <daml:intersectionOf rdf:parseType="daml:collection">
      <daml:Class rdf:about="#Person"/>
      <daml:Restriction>
	<daml:onProperty daml:minCardinality="1">
	  <rdf:Property rdf:about="#hasSpouse"/>
	</daml:onProperty>
      </daml:Restriction>
      <daml:Restriction>
	<daml:onProperty daml:maxCardinality="1">
	  <rdf:Property rdf:about="#hasSpouse"/>
	</daml:onProperty>
      </daml:Restriction>
    </daml:intersectionOf>
  </daml:sameClassAs>
</daml:Class> 

Where are We Now?

The WebOnt language