Lisez-moi S.V.P. 

La sémantique et la syntaxe abstraite du langage d'ontologie Web OWL

Annexe B. Exemples (informatif)

Rédacteur :
Peter F. Patel-Schneider, Bell Labs Research, Lucent Technologies
Ian Horrocks, Department of Computer Science, University of Manchester

Veuillez consulter l'errata de ce document, lequel peut contenir des corrections normatives.

Cf. également d'éventuelles traductions.


Table des matières


Annexe B. Exemples (informatif)

Cette annexe donne des exemples des concepts développés dans le reste du document.

B.1 Exemples d'applications de la syntaxe abstraite aux graphes RDF

Les règles de transformation du chapitre 4 peuvent transformer cette première ontologie :

  Ontology(ex:ontology
  DatatypeProperty(ex:name)
  ObjectProperty(ex:author)
  Class(ex:Book)
  Class(ex:Person)

  Individual(type(ex:Book) 
        value(ex:author Individual(type(ex:Person) value(ex:name "Fred"^^xsd:string)))))

En :

  ex:ontology RDF:type OWL:Ontology .
  ex:name RDF:type OWL:DatatypeProperty .
  ex:author RDF:type OWL:ObjectProperty .
  ex:Book RDF:type OWL:Class .
  ex:Person RDF:type OWL:Class .

  _:x RDF:type ex:Book .
  _:x ex:author _:x1 .
  _:x1 RDF:type ex:Person .
  _:x1 ex:name "Fred"^^xsd:string .

Cette deuxième ontologie :

  Ontology(ex:ontology2
  Class(ex:Person)
  Class(ex:Student)
  ObjectProperty(ex:enrolledIn)
  Class(ex:Student complete ex:Person
                   restriction(ex:enrolledIn allValuesFrom(ex:School) minCardinality(1))))

Peut se transformer en :

  ex:ontology2 RDF:type OWL:Ontology .
  ex:enrolledIn RDF:type OWL:ObjectProperty .
  ex:Person RDF:type OWL:Class .
  ex:School RDF:type OWL:Class .

  ex:Student RDF:type OWL:Class .
  ex:Student OWL:equivalentClass _:x .

  _:x OWL:intersectionOf _:l1 .
  _:l1 RDF:first  ex:Person .
  _:l1 RDF:rest _:l2 .
  _:l2 RDF:first  _:lr .
  _:l2 RDF:rest RDF:nil .

  _:lr OWL:intersectionOf _:lr1 .
  _:lr1 RDF:first _:r1 .
  _:lr1 RDF:rest _:lr2 .
  _:lr2 RDF:first _:r2 .
  _:lr2 RDF:rest RDF:nil .

  _:r1 RDF:type OWL:Restriction .
  _:r1 OWL:onProperty ex:enrolledIn .
  _:r1 OWL:allValuesFrom ex:School .

  _:r2 RDF:type OWL:Restriction .
  _:r2 OWL:onProperty ex:enrolledIn .
  _:r2 OWL:minCardinality "1"^^xsd:nonNegativeInteger .

B.2 Exemples d'inférences entre OWL DL et OWL Full

Le langage OWL DL gère les inférences que l'on peut attendre, tant que l'on peut démontrer que l'appartenance du vocabulaire à la partie appropriée du domaine de discours. Par exemple :

John friend Susan .

Cela n'infère pas dans OWL DL :

John RDF:type OWL:Thing .
Susan RDF:type OWL:Thing .
friend RDF:type OWL:ObjectProperty .

Il faudrait d'abord ajouter les trois triplets ci-dessus avant de pouvoir conclure à la restriction suivante :

John RDF:type _:x .
_:x OWL:onProperty friend .
_:x OWL:minCardinality  "1"^^xsd:nonNegativeInteger .

Par contre, une fois ces informations supplémentaires ajoutées, toutes les inférences naturelles suivent, sauf celles qui font intervenir des descriptions avec des boucles. Par exemple :

John RDF:type OWL:Thing .
friend RDF:type OWL:ObjectProperty .
John RDF:type _:x .
_:x OWL:onProperty friend .
_:x OWL:maxCardinality  "0"^^xsd:nonNegativeInteger .

Cela n'implique pas :

John RDF:type _:y .
_:y OWL:onProperty friend .
_:y OWL:allValuesFrom _:y .

Car il n'existe pas de principe de compréhension pour ces descriptions en boucle. C'est précisément l'absence de ces principes de compréhension qui évite la formation de paradoxes dans OWL DL tout en préservant les inférences naturelles.

Dans OWL DL, on peut réparer les localisations manquantes dans n'importe quelle base de connaissances à syntaxe séparée en ajoutant un ensemble d'assertions de localisation particulier, constitué de tous les triplets de la forme :

<individual> RDF:type OWL:Thing .
<class> RDF:type OWL:Class .
<oproperty> RDF:type OWL:ObjectProperty .
<dtproperty> RDF:type OWL:DatatypeProperty .

Le résultat de l'ajout de toutes ces assertions à une base de connaissances OWL DL s'appelle la localisation de la base de connaissances.

Le langage OWL Full gère les inférences que l'on peut attendre et il est inutile de fournir un typage au vocabulaire. Par exemple :

John friend Susan .

Cela infère bien dans OWL Full :

John RDF:type _:x .
_:x OWL:onProperty friend .
_:x OWL:minCardinality  "1"^^xsd:nonNegativeInteger .