Tag: semantic

Comment définir une ontologie ?

Pour faire simple

Une ontologie est une façon de partager des connaissances entre l’homme et la machine, celle-ci  en permet le traitement.

Ces connaissances sont un ensemble structuré de concepts (sous la forme d’une hiérarchie ou d’un graphe). Les concepts manipulés peuvent être des choses, des événements, des relations, etc.

Mais vous voulez peut-être en savoir plus …

Le Web de données, alias Web 3.0, alias Web sémantique, n’est plus un sujet de pure recherche. Déjà en 1999, Tim Berners-Lee expliquait que « le Web Sémantique est une extension de l’Internet où les informations sont définies sémantiquement afin de faciliter le partage et la coopération ». Aujourd’hui, on voit de plus en plus de projets, et les responsables informatiques et les décideurs des entreprises ou des administrations se renseignent pour comprendre les promesses de ce nouveau continent et envisager ce que leur système d’information y gagnera. Mais les premières difficultés rencontrées sont le vocabulaire et les concepts qu’il faut manipuler. Les oeuvres de vulgarisation sont encore peu nombreuses, il y a encore beaucoup à faire …

Dans ce billet, il est question d’ontologie. Je vais donner quelques définitions, à différents niveaux, de cet objet particulier et central dont le seul mot déjà peut rebuter.

Si vous êtes passés par Wikipedia, vous aurez vu qu’il y a bien d’autres acceptions : philosophique, médicale ou géopolitique. Le vocabulaire est bien chargé ! Pour autant, vous allez voir que ce n’est pas si terrible que ça. Wikipedia propose une page intéressante sur l’ontologie, au sens du Web de données ; la page anglaise est plus fournie encore. La visite d’autres sites spécialisés, comme par exemple celui du CNTRL, ne donne en revanche aucune définition sur notre sujet.

On trouve aussi de bonnes synthèses (en français), comme celles de Benoit Lavoie ou de Gautier Poupeau.

A – En 1993, Tom Gruber donne la célèbre définition suivante “An explicit specification of a conceptualisation” (une ontologie est une spécification explicite d’une conceptualisation). Cette définition a la vertu d’être courte, mais elle laisse sur sa fin lecteur d’aujourd’hui compte-tenu des développements du Web de données.

B – En 2003, Sean Bechhofer, Ian Horrocks and Peter F. Patel-Schneider définissent l’ontologie comme un artefact de l’ingénierie

  • constituée par un vocabulaire spécifique, elle est utilisée pour décrire une certaine réalité
  • et un ensemble d’hypothèses explicites sur le sens voulu du vocabulaire.

Ainsi, une ontologie décrit une spécification formelle d’un certain domaine

  • elle en est une compréhension partagée
  • et un modèle formel et manipulable par une machine.

C – La définition de l’IEEE (2003)

Une ontologie est semblable à un dictionnaire ou un glossaire, mais avec plus de détails et une structure qui permettent aux ordinateurs de traiter leur contenu. Une ontologie se compose d’un ensemble de concepts, d’axiomes, et de relations qui décrivent un domaine d’intérêt.

D – En 2007, le même Tom Gruber précise.

Dans le contexte de l’informatique et des sciences de l’information, une ontologie définit un ensemble de primitives de représentation pour modéliser un domaine de connaissance.

Les primitives de représentation sont généralement

  • des classes (ou des ensembles),
  • des attributs (ou des propriétés),
  • et des relations (ou des liens qui relient des éléments de classe)

Les définitions des primitives de représentation incluent

  • des informations sur leurs significations
  • et des contraintes sur leurs applications, qui doit être logiquement cohérente.

Dans le contexte des systèmes de base de données, l’ontologie peut être considérée

  • comme un niveau d’abstraction des modèles de données, analogue aux modèles hiérarchiques et relationnels,
  • mais destinée à la modélisation des connaissances sur les individus, leurs attributs et leurs relations avec d’autres individus.

Les ontologies sont généralement décrites dans les langages qui permettent l’abstraction indépendamment des structures de données et des stratégies de mise en œuvre. En pratique, les langages de description des ontologies ont une puissance expressive plus proche de la logique du premier ordre que celle des langages utilisés pour les modèles de bases de données. Pour cette raison, on dit des ontologies qu’elles sont de niveau « sémantique », tandis que les schémas de bases de données sont des modèles de données de niveau «logique» ou «physique».

Du fait de leur indépendance par rapport aux modèles de données de niveau inférieur, les ontologies sont utilisées pour l’intégration de bases de données hétérogènes, permettant une interopérabilité entre des systèmes disparates, et la spécification d’interfaces de services indépendants de la connaissance. Dans le stack technologique des standards du Web sémantique, les ontologies représentent explicitement une couche.

E – Kore Nordmann (2009)

Les ontologies sont un concept théorique en sciences de l’information destiné à représenter formellement des connaissances dans un logiciel capable de les traiter et de raisonner avec. Souvent aussi la lisibilité pour l’homme est un aspect central.

F – Pour faire simple, suite (2010)

Si je reprends ce que j’écrivais au début de cette page et que je complète un peu à l’aide des autres définitions que nous avons maintenant parcourues, on peut esquisser ceci :

Une ontologie décrit généralement des

  • individus : des objets de base,
  • classes : des ensembles, des collections ou des types d’objets,
  • attributs : des propriétés, des fonctionnalités, des caractéristiques ou des paramètres que les objets possèdent et partagent,
  • relations : des liens qui relient  les objets,
  • événements : des changements qui affectent des attributs ou des relations.

Ces descriptions sont la formalisation d’un ensemble de connaissances exprimées dans un langage

  • compréhensible par un humain
  • et qui peut être traité par un logiciel à des fins de raisonnement.

La formalisation d’une ontologie en structure les termes et les concepts à l’aide d’un graphe où les relations sont

  • des relations sémantiques,
  • des relations d’inclusion (subsomption).

L’ontologie est donc la spécification explicite d’une conceptualisation … Nous avons retrouvé la définition donnée par Tom Gruber en 1993 !

Concluons

Les définitions sont nombreuses et couvrent parfois des aspects différents. A l’évidence, il n’existe pas une seule bonne définition. Il faut donc y voir la marque d’une richesse que confirme la difficulté de créer une ontologie. Mais c’est là un autre sujet ! Il existe aujourd’hui plusieurs langages standard pour décrire une ontologie. La gamme d’outils commerciaux ou open source se développe. Ce seront les thèmes de prochains billets. A suivre …


Un petit panorama des triplestores

Concepts élémentaires

Un triplestore (ou triple store) est une base de données destinée au stockage des données du web de données : les triplets. Ces derniers sont des déclarations dont la structure est invariablement de la forme de sujet-prédicat-objet, par exemple « Jean a 3 enfants », « Jean est marié à Marie ». Dans un triplestore, le format des triplets est celui de métadonnées RDF (Resource Description Framework).

Tout comme dans une base de données relationnelle classique, on stocke l’information dans un triplestore et on la récupère à l’aide d’un langage de requête. Mais contrairement à la base de données relationnelle, le triplestore est optimisé pour travailler en entrée et en sortie (stockage et récupération) de très nombreux triplets.

Performance

Certains triplestores peuvent stocker des milliards de triplets. La performance d’un triplestore peut être mesurée avec le benchmark (LUBM) de l’Université de Lehigh (Pennsylvanie) ou avec des données réelles d’UniProt (universal protein resource), la base de données sur les protéines.

La page du W3C LargeTripleStores donne une liste de triplestores remarquables pour leur performance.

Implémentation

Les moteurs de certains triplestores sont construits from scratch. D’autres sont réalisés au-dessus de moteurs de base de données existants. Dans ce cas, on peut profiter de la puissance des bases de données en n’apportant qu’un moindre effort pour créer le triplestore. On a ainsi des triplets RDF stockés dans MySQL, PostgreSQL, Oracle, etc.

Catalogue

L’ordre de présentation dans ce catalogue est simplement alphabétique. Si vous avez des informations qui manquent ou qui corrigent celles que je donne ici, merci de les laisser en commentaire en citant vos sources, merci.

  • 3store
    • Langage : C
    • Version actuelle :
    • Site : http://www.aktors.org/technologies/3store/
    • Base : MySQL based triple store
    • Perf : plus de 30 millions de triplets RDF
    • Réalisation : University of Southampton
    • Actualité : il semble qu’il n’y en a plus depuis 2007
  • 4store
    • Langage : C (ANSI C99), conçu pour s’exécuter sur des systèmes UNIX-like
    • Version actuelle : 4store-v1.1.1 le 31 janv. 2011
    • Site : http://www.4store.org/
    • Base : MySQL based triple store
    • Perf : à l’import, 120 kT/s (milliers de triplets par seconde) – requête SPARQL simple, 1 ms (ordre de grandeur)
    • Optimisé pour : shared–nothing clusters jusqu’à 32 noeuds, en lien avec un Ethernet gigabit
    • Réalisation : Garlik
    • Actualité : réalisation en 2009 de QDOS, un annuaire foaf
    • Licence : GNU General Public Licence, version 3
  • 5store
    • Langage : C
    • Version actuelle :
    • Site : http://4store.org/trac/wiki/5store
    • Base :
    • Perf : 1 TT, à l’import une vitesse moyenne de plus de 700kT/s sur un cluster de 10 noeuds a été observée
    • Optimisé pour : clusters de plus de 1000 machines
    • Réalisation : Garlik
    • Actualité : 5store et la suite logique du projet 4store
    • Licence :
  • AllegroGraph
  • ARC
    • Langage : PHP
    • Version actuelle : 2
    • Site : http://arc.semsol.org/
    • Base : MySQL
    • Perf :
    • Réalisation :
    • Actualité : ARC2 est une réécriture complète de ARC1.
    • Licence : GPL (version 2 et 3)
  • Bigdata (mise à jour 1.nov.2011)
  • BigOWLIM
    • Langage : Java
    • Version actuelle : 3.x
    • Site : http://www.ontotext.com/owlim
    • Base :
    • Perf : owl:sameAs optimisation
    • Réalisation :
    • Actualité :
    • Licence :
  • Jena
  • Joseki
    • Langage : Java
    • Version actuelle :
    • Site : http://www.joseki.org/
    • Base :
    • Perf :
    • Réalisation : Hewlett-Packard Development Company
    • Actualité :
    • Licence : LP All rights reserved
  • Mulgara
  • OpenAnzo
  • OntoBroker
  • Parliament
  • Pointrel System
    • Langage : Java, Python, Smalltalk
    • Version actuelle : 2.6.7.0 (2010.04.06)
    • Site : http://sourceforge.net/projects/pointrel/
    • Base :
    • Perf :
    • Réalisation : Open Source
    • Actualité :
    • Licence : GNU Library or « Lesser » General Public License version 3.0 (LGPLv3)
    • The Pointrel System is an RDF-like triple store implemented on the Java/JVM platform, supporting related social semantic desktop applications to create, use, exchange, and organize informational resources for a reasonably joyful and secure world.
  • RAP
    • Langage : PHP
    • Version actuelle : 0.9.6 (2008.02.29)
    • Site : http://www4.wiwiss.fu-berlin.de/bizer/rdfapi/
    • Base :
    • Perf :
    • Réalisation : Open Source
    • Actualité : Je ne sais pas s’il y a des développements actuellement
    • Licence : GNU LESSER GENERAL PUBLIC LICENSE (LGPL)
  • RDF::Core
    • Langage : Perl
    • Version actuelle : 0.51 (2007.02.19)
    • Site : http://search.cpan.org/dist/RDF-Core/
    • Base :
    • Perf :
    • Réalisation : Open Source
    • Actualité : Je ne sais pas s’il y a des développements actuellement
    • Licence : MPL (Mozilla Public License) et GNU’s GPL
  • RDF::Trine
    • Langage : Perl
    • Version actuelle :
    • Site : http://www.perlrdf.org/
    • Base :
    • Perf :
    • Réalisation :
    • Actualité :
    • Licence :
  • RDFBroker
  • Redland
    • Langage : C
    • Version actuelle :
    • Site : http://librdf.org/
    • Base :
    • Perf :
    • Réalisation :
    • Actualité :
    • Licence :
  • RedStore
    • Langage : C et utilise la bibliothèque Redland
    • Version actuelle : 0.4 (2010.04.22)
    • Site : http://code.google.com/p/redstore/
    • Base :
    • Perf :
    • Réalisation : Open Source
    • Actualité :
    • Licence : GNU General Public License v3
  • Semantics Platform
  • SemWeb-DotNet
  • Sesame
  • Soprano
  • SwiftOWLIM
  • Talis
    • Langage :
    • Version actuelle :
    • Site : http://www.talis.com/platform/
    • Base :
    • Perf :
    • Réalisation :
    • Actualité :
    • Licence : Platform API published under a Creative Commons license that supports re-implementation of the API by other services and projects
  • Virtuoso
  • YARS
    • Langage : Java
    • Version actuelle : Release beta3 (2006-06-28)
    • Site : http://sw.deri.org/2004/06/yars/
    • Base :
    • Perf :
    • Réalisation :
    • Actualité : Visiblement aucune actualité
    • Licence : de type BSD

Sources :


  • Catégories

  • Calendrier

    avril 2024
    L M M J V S D
    « Mai    
    1234567
    891011121314
    15161718192021
    22232425262728
    2930  
  • Archives

  • Copyright © 1996-2010 Blogabriel. All rights reserved.
    iDream theme by Templates Next | Powered by WordPress