220 votes

Quelle est la différence entre RDF et OWL ?

J'essaie de comprendre le concept de Web sémantique. J'ai du mal à comprendre quelle est la différence exacte entre RDF et OWL. OWL est-il une extension de RDF ou s'agit-il de deux technologies totalement différentes ?

1 votes

J'ai personnellement trouvé ce diaporama très utile et compréhensible : slideshare.net/rlovinger/rdf-and-owl

0 votes

J'essaie d'y répondre en quelques mots : RDF fournit des normalisations pour le vocabulaire utilisé pour caractériser les ontologies, qui sont résumées sous le nom de Langage d'ontologie Web (OWL), par exemple lors de la construction d'ontologies de systèmes de connaissances.

1 votes

Pour information, j'ai trouvé cette question, même si elle n'est pas ciblée, extrêmement utile. C'était exactement la question que je me posais. Je l'ai trouvée sur Google, et les réponses fournies ici m'ont permis de comprendre exactement ce que j'essayais de comprendre.

297voto

Le web sémantique se présente sous forme de couches. Voici un résumé rapide de celles qui, je pense, vous intéressent.

Mise à jour : Veuillez noter que RDFS est utilisé pour définir la structure des données, no OWL. OWL décrit des relations sémantiques dont la programmation normale, telle qu'une structure C, ne s'occupe pas et est plus proche de la recherche en IA et de la théorie des ensembles.

Triples et URIs

Subject - Predicate - Object

Ceux-ci décrivent un seul fait. En général, des URI sont utilisés pour le sujet et le prédicat. L'objet est soit un autre URI, soit un littéral tel qu'un nombre ou une chaîne de caractères. Les littéraux peuvent avoir un type (qui est aussi un URI), et ils peuvent aussi avoir une langue. Oui, cela signifie que les triples peuvent avoir jusqu'à 5 bits de données !

Par exemple, un triple pourrait décrire le fait que Charles est le père de Harrys.

<http://example.com/person/harry> <http://familyontology.net/1.0#hasFather> <http://example.com/person/charles> .

Les triples sont la normalisation des bases de données poussée à l'extrême logique. Ils présentent l'avantage de pouvoir charger des triplets provenant de nombreuses sources dans une seule base de données, sans reconfiguration.

RDF et RDFS

La couche suivante est RDF (Resource Description Framework). RDF définit une structure supplémentaire pour les triplets. La chose la plus importante définie par RDF est un prédicat appelé "rdf:type". Il est utilisé pour indiquer que les choses sont de certains types. Tout le monde utilise rdf:type, ce qui le rend très utile.

RDFS (RDF Schema) définit certaines classes qui représentent le concept de sujets, d'objets, de prédicats, etc. Cela signifie que vous pouvez commencer à faire des déclarations sur les classes de choses et les types de relations. Au niveau le plus simple, vous pouvez déclarer des choses telles que http://familyontology.net/1.0#hasFather est une relation entre une personne et une autre. Il permet également de décrire dans un texte lisible par l'homme la signification d'une relation ou d'une classe. Il s'agit d'un schéma. Il vous indique les utilisations légales de diverses classes et relations. Il est également utilisé pour indiquer qu'une classe ou une propriété est un sous-type d'un type plus général. Par exemple, "HumanParent" est une sous-classe de "Person". "Loves" est une sous-classe de "Knows".

Sérialisations RDF

RDF peut être exporté dans un certain nombre de formats de fichiers. Le plus courant est RDF+XML, mais il présente quelques faiblesses.

N3 est un format non-XML plus facile à lire, et il existe des sous-ensembles (Turtle et N-Triples) plus stricts.

Il est important de savoir que RDF est une façon de travailler avec les triples, PAS les formats de fichiers.

XSD

XSD est un espace de nom principalement utilisé pour décrire les types de propriétés, comme les dates, les nombres entiers, etc. Il est généralement utilisé dans les données RDF pour identifier le type spécifique d'un littéral. Il est également utilisé dans les schémas XML, ce qui est une autre paire de manches.

OWL

OWL ajoute la sémantique au schéma. Il permet de spécifier beaucoup plus de choses sur les propriétés et les classes. Il est également exprimé en triples. Par exemple, il peut indiquer que "Si A estMarriedTo B" alors cela implique "B estMarriedTo A". Ou que si " C est un ancêtre de D " et " D est un ancêtre de E " alors " C est un ancêtre de E ". Un autre élément utile ajouté par Owl est la possibilité de dire que deux choses sont identiques, ce qui est très utile pour joindre des données exprimées dans des schémas différents. Vous pouvez dire que la relation "sired" dans un schéma est owl:sameAs "fathered" dans un autre schéma. Vous pouvez également l'utiliser pour dire que deux choses sont identiques, comme le "Elvis Presley" sur wikipedia est le même sur la BBC. C'est très intéressant car cela signifie que vous pouvez commencer à réunir des données provenant de plusieurs sites (c'est ce qu'on appelle les "données liées").

Vous pouvez également utiliser le langage OWL pour déduire des faits implicites, tels que " C est un ancêtre de E ".

23 votes

Voici une image des couches du Web sémantique : w3.org/2001/12/semweb-fin/swlevels.png Pour mémoire.

11 votes

Une partie de tout cela qui n'est toujours pas claire pour moi est qu'il semble y avoir un certain chevauchement entre ce que RDFS et OWL peuvent exprimer. Par exemple, une owl:Class peut ressembler beaucoup à une rdfs:Class. (Par exemple, une entité de type owl:Class est souvent le sujet de plusieurs prédicats RDFS tels que rdfs:comment et rdfs:subclassOf). J'ai du mal à comprendre comment OWL est une couche au-dessus de RDFS, parce que lorsqu'il s'agit de définir des classes, cela ressemble plus à un moyen d'enrichir ce que vous pourriez faire avec RDFS.

0 votes

Selon le profil OWL/OWL-2 que vous utilisez, vous avez la possibilité "supplémentaire" d'enrichir votre base de connaissances avec des axiomes DL (par exemple, des restrictions de propriété, la disjonction, et bien d'autres).

94voto

alexkr Points 2846

En bref :

  • RDF définit comment écrire des choses
  • OWL définit ce que pour écrire

Comme l'a écrit le poster précédent, RDF est une spécification qui vous indique comment définir les triples.

Le problème est que RDF vous permet de tout définir, vous pourriez donc composer une déclaration comme celle-ci :

| subject | predicate | object |
|---------|-----------|--------|
| Alex    | Eats      | Apples |
| Apples  | Eats      | Apples |
| Apples  | Apples    | Apples |

Ces triplets forment des documents RDF valides.

Mais, sémantiquement, vous comprenez que ces déclarations sont incorrectes et que RDF ne peut pas vous aider à valider ce que vous avez écrit.

Ce n'est pas une ontologie valide.

La spécification OWL définit exactement ce que vous pouvez écrire avec RDF afin d'avoir une ontologie valide.

Les ontologies peuvent avoir plusieurs propriétés.

C'est pourquoi OWL (ver 1) définit plusieurs versions comme OWL DL, OWL Lite, OWL Full.

31 votes

Mais notez que OWL ne limitera pas ce que vous pouvez mettre dans votre magasin RDF - les informations du schéma OWL sont principalement utilisées pour l'inférence, et non pour appliquer des contraintes.

34voto

loopasam Points 1622

RDF, RDFS et OWL sont des moyens d'exprimer des informations ou des connaissances de plus en plus complexes. Ils peuvent tous être sérialisés en syntaxe RDF/XML (ou toute autre syntaxe de sérialisation RDF comme Turtle ou N3 par exemple).

Ces technologies sont liées et censées être interopérables, mais elles ont des origines différentes, ce qui explique peut-être pourquoi la relation entre elles est compliquée à saisir. Le choix de l'une ou l'autre dépend du degré de complexité de la situation que vous modélisez.

Résumé de l'expressivité

RDF : Représentation simple, axée sur les instances et sur le mappage vers leurs types ( rdf:type ). Il est possible de définir des propriétés personnalisées pour lier les données et créer des triples. Les données RDF sont interrogées avec SPARQL. Exemple de RDF sérialisé en Turtle :

@prefix : <http://www.example.org/> .
:john    rdf:type           :Man .
:john    :livesIn  "New-York" .
:livesIn    rdf:type    rdf:Property .

RDFS : Certaines situations ne sont pas facilement modélisables par RDF seul, il est parfois intéressant de représenter des relations plus complexes comme les sous-classes ( le type d'un type ) par exemple. RDFS fournit des moyens spéciaux pour représenter ces cas, avec des constructions telles que rdfs:subClassOf , rdfs:range o rdfs:domain . Idéalement, un raisonneur peut comprendre la sémantique RDFS et étendre le nombre de triplets en fonction des relations : Par exemple, si vous avez les triples John a Man y Man rdfs:subClassOf Human alors vous devriez générer aussi le triple John a Human . Notez que cela n'est pas possible avec RDF seul. Les données RDFS sont interrogées à l'aide de SPARQL. Exemple de RDFS sérialisé en Turtle :

@prefix : <http://www.example.org/> .
:john    rdf:type           :Man .
:Man    rdfs:subClassOf    :Human .
:john    :livesIn  "New-York" .
:livesIn    rdf:type    rdf:Property .
# After reasoning
:john    rdf:type    :Human .

OWL : Le plus haut niveau d'expressivité. Les relations entre les classes peuvent être formellement modélisées sur la base des logiques de description (théorie mathématique). OWL s'appuie fortement sur le raisonneur, il est possible d'exprimer des constructions complexes telles que des propriétés enchaînées par exemple ou des restrictions entre classes. OWL permet de construire des ontologies ou des schémas à partir d'ensembles de données RDF. Comme OWL peut être sérialisé en RDF/XML, il est théoriquement possible de l'interroger via SPARQL, mais il est beaucoup plus intuitif d'interroger une ontologie OWL avec une requête DL (qui est généralement une expression de classe OWL standard). Exemple de constructions OWL sérialisées en Turtle.

@prefix : <http://www.example.org/> .
:livesIn    rdf:type    owl:DatatypeProperty .
:Human    rdf:type    owl:Class .
:Man   rdf:type    owl:Class .
:Man    rdfs:subClassOf    :Human .
:John    rdf:type    :Man . 
:John    rdf:type    owl:NamedIndividual .

3 votes

La sous-classe n'est pas "le type d'un type" : c'est une métaclasse. "X a Y. Y a Z." est différent de "X a Y. Y subClassOf Z".

15voto

Nico Adams Points 953

Tout d'abord, comme cela a déjà été souligné, Owl peut être sérialisé en RDF.

Deuxièmement, OWL ajoute une capacité ontologique à RDF (qui, à lui seul, ne fournit qu'une capacité extrêmement limitée pour la représentation formelle de la connaissance), en fournissant l'appareil pour définir les composants de votre triple en utilisant une logique de description du premier ordre formelle et calculable. C'est ce qu'entendent les internautes lorsqu'ils parlent de "richesse sémantique".

Troisièmement, il est important de réaliser que dans OWL-Full (pour OWL 1) rdfs:class et owl:class sont équivalents et que dans OWL-DL, owl:class est une sous-classe de rdfs:class. En fait, cela signifie que vous pouvez utiliser une ontologie OWL comme schéma pour RDF (qui ne requiert pas formellement de schémas).

J'espère que cela aidera à clarifier davantage.

0 votes

Très bon article... Je veux sauvegarder des triples RDF dans Oracle 11g, puis-je utiliser OWL comme schéma pour mon RDF ?

9voto

dgorissen Points 3063

J'ai personnellement trouvé ce diaporama très utile et compréhensible : http://www.slideshare.net/rlovinger/rdf-and-owl

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X