4.4.2. Le langage de définition d'ontologie RDF-Schema

RDF-Schéma (RDFS) est un langage de représentation de connaissances basé sur RDF. Il fournit des éléments de base pour la définition d'ontologies, destinés à structurer des ressources RDF. C'est-à-dire qu'il propose une standardisation des relations couramment utilisées dans les ontologies. Dans RDFS, les concepts définis dans l'ontologie sont désignés sous le terme de classes. Ils peuvent être organisés en hiérarchies de classe/sous classe. Deux des relations standardisées par RDFS nous seront particulièrement utiles : rdfs:subClassOf et rdf:type.

rdfs:subClassOf est la relation de hiérarchie de classes. Ainsi l'ontologie de l'exemple précédent s'écrira en réalité :

(Virage, rdfs:subClassOf, Observé)

(Virage A, rdfs:subClassOf, Virage)

(Virage B, rdfs:subClassOf, Virage)

(Vitesse, rdfs:subClassOf, Observé)

etc…

rdf:type est la relation qui permet de spécifier qu'une ressource doit être considérée comme un élément d'une classe. Ainsi dans notre exemple on exprimera finalement que les événements de la trace sont rattachés à un type défini dans l'ontologie par les triplets :

(Evénement A, rdf:type, Virage)

(Evénement 1, rdf:type, Vitesse)

etc…

Le fait que ces relations soient standardisées dans RDFS signifie qu'elles sont prises en charge, de manière adaptée, par les outils de manipulation de graphes RDF, en particulier les éditeurs d'ontologie et les moteurs de requête. Cette prise en charge implémente la relation de subsomption. Cette relation permet d'organiser les classes en une hiérarchie qui correspond à la théorie des ensembles : la classe A subsume la classe B si l'ensemble B est inclus dans l'ensemble A. Une classe peut donc être vue par l'utilisateur comme un ensemble de ressources, une sous-classe, comme un sous-ensemble, et une ressource comme un élément.

Il existe d'autres langages de représentation de connaissances basés sur RDF : DAML+OIL et OWL. Ces langages offrent globalement une expressivité plus grande que le langage RDFS, mais au prix d'une plus grande complexité. Pour nous, l'expressivité de RDFS est suffisante pour l'instant. En effet, nous réalisons des inférences simples sur les classes et les instances, en gardant toujours la distinction entre ces deux notions. Les instances correspondent aux occurrences d'observés dans les traces et les classes correspondent à leur type. Si nous voulions implémenter plus tard des mécanismes d'inférence plus complexes, rien n'empêcherait d'évoluer vers ces langages.