# Web Ontology Language

Web Ontology Language (OWL) est un langage de représentation des connaissances construit sur le modèle de données de RDF. Il fournit les moyens pour définir des ontologies web structurées. Sa deuxième version est devenue une recommandation du W3C fin 2012$^,$.
Le langage OWL est basé sur les recherches effectuées dans le domaine de la logique de description. Il peut être vu en quelque sorte comme un standard informatique qui met en œuvre certaines logiques de description, et permet à des outils qui comprennent OWL de travailler avec ces données, de vérifier que les données sont cohérentes, de déduire des connaissances nouvelles ou d'extraire certaines informations de cette base de données. Il permet notamment de décrire des ontologies, c'est-à-dire qu'il permet de définir des terminologies pour décrire des domaines concrets. Une terminologie se constitue de concepts et de propriétés (aussi appelés « rôles » en logiques de description). Un domaine se compose d'instance de concepts.

## Une extension de RDFS

En pratique, il existe des extensions à l'ontologie RDF Schema (RDFS) comme le langage OWL; OWL est destiné à la description de classes au travers de caractéristiques des instances de cette classe et de types de propriétés. De ce fait, il est plus expressif que RDFS, auxquels certains reprochent une insuffisance d'expressivité due à la seule définition des relations entre objets par des assertions. OWL apporte aussi une meilleure intégration, une évolution, un partage et une inférence plus facile des ontologies.
RDFS permet par exemple de décrire que <Jean> est le père de <Paul>, au travers des individus <Jean>, <Paul>, et de la relation est le père de. Il contient également les concepts, qui permettent de regrouper les individus en groupe comme <humain>, <hommes>, <femmes>, de préciser des relations entre ces groupes (ou concepts), comme toute <femme> est un <humain>, qui se formalise en <femme> sous-classe de <humain> (SubclassOf dans la terminologie RDFS/OWL), et de préciser que Jeanne est une femme sous la forme d'une affirmation comme <Jeanne> est une instance de <femme> (InstanceOf en OWL, qu'on pourrait traduire par exemple par est un exemple de).
Aux concepts de classe, de ressource, de littéral et de propriétés des sous-classes, de sous-propriétés, de champs de valeurs et de domaines d'application déjà présents dans RDFS, OWL ajoute les concepts de classes équivalentes, de propriétés équivalentes, d'égalité de deux ressources, de leurs différences, du contraire, de symétrie et de cardinalité… OWL permet de préciser les concepts d'<humain>, d'<homme> et <femme> en exprimant formellement qu'un humain a certaines caractéristiques, comme un genre, et donc que si <Jean> est un <humain>, on doit pouvoir écrire une affirmation comme <Jean> a pour genre<masculin> en décrivant la classe des humains. Ce qui permet aussi par conséquent de préciser les concepts d'<homme> et de <femme> en décrivant en OWL que non seulement les <hommes> ont un genre comme tout humain, mais que les hommes ont la propriété supplémentaire d'être de genre masculin.
Malheureusement, bien que l'utilisation d'extensions de RDFS soit plus pertinente en théorie pour décrire le monde, il subsiste des problèmes pour les utiliser dans un contexte opérationnel. Par exemple, deux bases de données peuvent ne pas avoir le même comportement avec la même ontologie même si l'implémentation des bases de données sont correctes. Ces défauts sont inacceptables dans un système en production. Dès lors, les éditeurs de bases de données n'implémentent pas ou peu ces extensions et les inférences induites sont difficilement prévisibles sans avoir testé au préalable ces bases de données.
Les développeurs d'ontologies doivent s'intéresser à la compatibilité des extensions de RDFS sur les bases de données cibles durant l'implémentation de leur ontologie sans quoi ce travail de description risque d'être inutile et alourdira inutilement l'accès aux données via SPARQL à travers le système d'information qui hébergera cette ontologie.

## Les trois niveaux d'OWL

OWL permet, grâce à sa sémantique formelle basée sur une fondation logique largement étudiée, de définir des associations plus complexes des ressources ainsi que les propriétés de leurs classes respectives. OWL définit trois sous-langages, du moins expressif au plus expressif : OWL-Lite, OWL-DL et OWL-Full. Des algorithmes décidables existent pour la totalité de OWL-Lite. Quoique les problèmes d'inférence d'OWL-DL puissent être résolus en temps exponentiel de façon générale, le comportement est souvent satisfaisant. Il n'existe aucun algorithme d'inférence décidable pour OWL-Full. La deuxième version d'OWL étend notamment OWL-DL pour permettre certaines formes simples de métamodélisation, en l’occurrence de créer des concepts de concepts.

### OWL-Lite

OWL-Lite est la version la plus simple du langage OWL. Il correspond à la logique de descriptions ${\mathcal {SHIF}}$. Sa simplicité lui permet d’avoir une théorie de complexité faible, et de garantir que les questions qu'on peut poser à un moteur d'inférence sur une base de données travaillant avec ce standard ont toujours une réponse et que cette réponse est calculable en temps raisonnable.

### OWL-DL

OWL-DL (sigle pour Ontology Web Language Description Logics) est une version décidable du langage informatique OWL.
Ce langage correspond à la logique de descriptions ${\mathcal {SHOIN(D)}}$.

### OWL-Full

OWL-Full est une version indécidable du langage informatique OWL.

### OWL 2

Un nouveau groupe de travail du W3C a été créé en 2007, pour étendre les fonctionnalités de la version 1.1 de OWL. La version 2.0 sort alors en 2009, légèrement modifiée en 2012. La version 2.0 devient proposée sur l'éditeur d'ontologies Protégé et sur les raisonneurs sémantiques comme Pellet, RacerPro, FaCT++ et Hermit. Pour des références générales, il est fait référence à la famille des langages OWL, déclinée en OWL 1 et OWL 2 respectivement.
Les profils OWL 2 sont des sous-langages de OWL 2 qui présentent des avantages importants lors de scénarios d'application particuliers. La recommandation OWL 2 du W3C distingue trois profils : OWL 2 EL (Existential Languages - pour la quantification existentielle et les raisonnements faisant intervenir des ontologies comportant un grand nombre de classes et de données), OWL 2 QL (Query Language - pour les ontologies simples avec un grand nombre d'individus, comme un thésaurus par exemple) et OWL 2 RL (Rule Language - pour les raisonnements à l'aide de langages de règles).

## Applications pour le Web sémantique

Le Web sémantique a pour objectif le partage de connaissances contenues dans des silos d'informations, appelés aussi bases de données. Les données contenues dans une base de données classique sont dites non structurées vis-à-vis d'autres bases de données s'il n'existe aucune grammaire commune entre elles. Comme c'est le cas pour le langage humain, la structuration syntaxique et grammaticale permet la création de phrases, éléments complexes d'où peut émerger un sens compréhensible par d'autres personnes. Sans grammaire, il ne peut y avoir de dialogues entre les différentes bases de données, et sans dialogues, aucune connaissance pérenne due à des synergies cognitives ou des partages ne peut émerger. L'existence d'une grammaire commune entre bases de données est la condition de structuration des données, donc du dialogue et de la confrontation productive des données. La recommandation OWL, en tant que grammaire commune, permet d'une part la vérification des données par la confrontation, leur fiabilité, et d'autre part une augmentation du volume de l'information. Cela signifie que la confrontation des données, rendue possible par le langage OWL, permet la création de nouvelles données (par exemple, lorsque deux informations lacunaires appartenant chacune à deux bases de données séparées sont mises en relation et se révèlent être complémentaires, la donnée qui en résulte est à la fois plus sûre et ouvre la porte à des avancées ultérieures).
En pratique, une sémantique définie strictement permettra aux machines d'effectuer des raisonnements automatisés sur les inférences et conclusions sur ses nouveaux silos de connaissance.
Les langages sur lesquels il est construit sont largement interprétables, beaucoup d'applications savent déjà manipuler le XML, le RDF qui est un standard bien répandu ainsi que le SPARQL. Le partage et l'échange de connaissances dans ces formats est d'autant plus facile pour les machines et en théorie pour les humains aussi (voir le débat sur les Microformats).
Le Web sémantique peut donc profiter de ce format pour structurer, partager et échanger les différentes connaissances qui s'y trouvent. Il y a déjà plusieurs ontologies modélisées à l'aide d'OWL.

### Outils pour appliquer OWL au Web sémantique

| Nom de l'outil | Description |
| Protégé | éditeur/framework gratuit et open source pour les ontologies. L'extension Protégé-OWL permet d'enregistrer le travail en format OWL. |
| SMW+ | Participe avec Semantic Mediawiki à la création d'outils pour constituer des outils pour manipuler des ontologies OWL. |

## Moteurs d'inférences

Plusieurs moteurs d'inférences gratuits ou commerciaux tels que Racer, Pellet, Fact, Fact++, Surnia, F-OWL et Howlet existent. La plupart de ces moteurs sont conçus pour raisonner sur les logiques de description, mais acceptent en entrée des fichiers OWL. Certains moteurs d'inférence ne peuvent raisonner qu'au niveau terminologique (c'est-à-dire au niveau des concepts et des propriétés) alors que des moteurs comme Pellet et Racer permettent de raisonner aussi sur les instances de concepts.

## Logiciels d'édition

Il est possible de créer et d'éditer une ontologie au format OWL avec le logiciel Protégé. Il propose plusieurs formats de fichiers pour les ontologies dont OWL.