Cyc (projet)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Cyc est un projet d’intelligence artificielle (« IA ») qui cherche à développer une ontologie globale et une base de connaissance générale, dans le but de permettre à des applications d’intelligence artificielle de raisonner d’une manière similaire à l’être humain.

Présentation générale[modifier | modifier le code]

Le projet a été lancé en 1984 par Douglas Lenat, de la société Microelectronics and Computer Technology Corporation. Le nom « Cyc » (dérivé de « encyclopédie », et prononcé saïk[1], est une marque déposée par Cycorp, Inc. à Austin (Texas), cette société étant gérée par Lenat et dédiée au développement de Cyc. La base de connaissances originale est propriétaire, mais une version limitée, réalisée dans le but de mettre au point un vocabulaire courant pour le raisonnement automatique, a été publiée sous licence Open Source sous le nom d’OpenCyc. Plus récemment, Cyc a été mis à la disposition de chercheurs en IA sous une licence destinée à la recherche, sous le nom de ResearchCyc.

On peut présenter comme exemples-types de connaissances représentées dans la base de données : « Tout arbre est une plante » et « Les plantes finissent par mourir ». Lorsqu’on lui demande si les arbres meurent, le moteur d'inférence est en mesure de tirer la conclusion évidente et de répondre correctement à la question. La base de connaissances (KB, pour Knowledge Base) contient plus d’un million d’assertions, de règles et d’idées relevant du sens commun, définies par des êtres humains. Elles sont formulées dans le langage CycL, qui est basé sur le calcul des prédicats et dont la syntaxe est similaire à celle du langage Lisp. Les utilisateurs de CycL se présentent de façon humoristique, comme des « cyclistes ».

Une grande partie des travaux en cours sur le projet Cyc continue à relever de l’ingénierie des connaissances, la formalisation manuelle d’informations (« facts ») sur le monde, et la mise au point de mécanismes d’inférence efficaces appliqués à ces connaissances. De plus en plus, toutefois, Cycorp s’efforce aussi à fournir au système Cyc la possibilité de communiquer avec l’utilisateur final en langage naturel, et à faciliter le processus de formation de la connaissance par le biais de l’apprentissage automatique.

Description de la base de connaissances et terminologie[modifier | modifier le code]

Dans Cyc, les noms de concepts sont des « constantes ». Les constantes commencent par la séquence facultative "#$" et sont sensibles à la casse. Il existe des constantes représentant :

  • des items individuels, appelés « individus », tels que #$BillClinton ou #$France.
  • des « collections », telles que #$Tree-ThePlant (qui contient tous les arbres) ou #$EquivalenceRelation (qui contient toutes les relations d’équivalence). Un membre d’une collection est appelé « instance » de cette collection.
  • des « fonctions de vérité », qui peuvent être appliquées à un ou plusieurs autres concepts, et retournent une valeur Vrai ou Faux. Par exemple, #$siblings est la relation de type « frère ou sœur », qui est vraie si ses deux arguments sont des « frères ou sœurs ». Par convention, les fonctions de vérité commencent par une lettre minuscule. Les fonctions de vérité peuvent être décomposées en connecteurs logiques (comme #$and, #$or, #$not, #$implies – en français et, ou, non, implique), des quantificateurs ((#$forAll, #$thereExists, etc. – en français pour tout, il existe…) et des prédicats logiques.
  • des « fonctions », qui produisent de nouveaux termes à partir des termes fournis. Par exemple, #$FruitFn (« FonctionFruit »), lorsqu’on lui fournit un argument décrivant un type (ou une collection) de plantes, retourne la collection de ses fruits. Par convention, les constantes fonctions commencent par une lettre majuscule et se terminent par la chaîne « Fn ».

Les prédicats fondamentaux sont #$isa et #$genls. Le premier stipule qu’un item est une instance d’une collection, le second qu’une collection est une sous-collection d’une autre. Les informations sur les concepts sont définies en utilisant certaines « phrases » CycL. Les prédicats apparaissent avant leurs arguments, entre parenthèses :

 (#$isa #$BillClinton #$UnitedStatesPresident)

« Bill Clinton appartient à la collection des présidents des États-Unis »

 (#$genls #$Tree-ThePlant #$Plant)

« Tous les arbres sont des plantes »

 (#$capitalCity #$France #$Paris)

« Paris est la capitale de la France ».

Les phrases peuvent aussi contenir des variables, représentées par des chaînes commençant par "?". Ces phrases sont appelées « règles ». Une règle importante concernant le prédicat #$isa s’écrit :

(#$implies
   (#$and   
     (#$isa ?OBJ ?SUBSET)
     (#$genls ?SUBSET ?SUPERSET))
   (#$isa ?OBJ ?SUPERSET))

ce qui s’interprète comme suit : « Si OBJ est une instance d’un sous-ensemble SUBSET et que SUBSET est une sous-collection du sur-ensemble SUPERSET, alors OBJ est une instance de la collection SUPERSET ».

Un autre exemple-type se présente comme suit :

 (#$relationAllExists #$biologicalMother #$ChordataPhylum #$FemaleAnimal)

ce qui signifie que, pour toute instance de la collection #$ChordataPhylum (c’est-à-dire pour tout (animal) chordé, il existe un animal femelle (instance de #$FemaleAnimal) qui est sa mère (ce qui est décrit par le prédicat #$biologicalMother).

La base de connaissances se subdivise en « microthéories » (Mt), qui sont des collections de concepts et d’informations relevant typiquement d’un domaine particulier de la connaissance. Contrairement à la base de connaissances dans son ensemble, chaque microthéorie doit être exempte de contradictions. Chaque microthéorie possède un nom qui est une constante standard ; ces constantes contiennent par convention la chaîne Mt. Par exemple, #$MathMt représente la microthéorie contenant la connaissance mathématique. Les microthéories peuvent hériter l’une de l’autre et sont organisées de manière hiérarchique : ainsi #$GeometryGMt, la microthéorie qui concerne la géométrie, constitue une spécialisation de #$MathMt.

OpenCyc[modifier | modifier le code]

La dernière version de OpenCyc (2.0) a été publiée en juillet 2009. La précédente (1.0) datait de juillet 2006 et incluait la totalité de l’ontologie Cyc, soit plusieurs centaines de milliers de termes, ainsi que des millions d’assertions reliant les termes l’un à l’autre, même s’il s’agit principalement d’assertions taxinomiques, plutôt que des règles complexes disponibles dans Cyc. La base de connaissances de OpenCyc 1.0 contient 47 000 concepts et 306 000 informations, et peut être explorée sur le site Web de OpenCyc.

La première version de OpenCyc avait été publiée en mai 2001 et ne contenait que 6 000 concepts et 60 000 informations. La base de connaissance est publiée sous licence Apache. Cycorp a déclaré son intention de publier également OpenCyc sous des licences parallèles non restreintes, pour répondre aux besoins de ses utilisateurs. L’interpréteur CycL et SubL (c’est-à-dire le programme qui permet d’explorer et de modifier la base de données et de produire des inférences) est libre de droits, mais uniquement en tant qu’exécutable, sans le code source. Il est disponible pour Linux et Microsoft Windows. Le projet Open Source Texai[2] a publié un contenu compatible Resource Description Framework, extrait de OpenCyc[3].

ResearchCyc[modifier | modifier le code]

En juillet 2006, Cycorp a publié ResearchCyc 1.0, une version libre (mais pas Open Source) de Cyc, destinée à la communauté des chercheurs (ResearchCyc était en phase de développement d’une version beta durant toute l’année 2004 ; la version beta a été publiée en février 2005). Outre l’information taxinomique contenue dans OpenCyc, ResearchCyc inclut une quantité significativement supérieure de connaissance sémantique (c’est-à-dire des faits additionnels) à propos des concepts dans sa base de connaissances, ainsi qu’un important lexique, un analyseur et des outils de génération de langage naturel en anglais, et des interfaces Java permettant la mise à jour et l’interrogation des connaissances.

Critiques du projet Cyc[modifier | modifier le code]

Le projet Cyc a été décrit comme « l’une des entreprises les plus controversées de l’histoire de l’intelligence artificielle » (Bertino et al, p. 275), et les critiques n’ont pas manqué. Parmi celles-ci :

  • La complexité du système – peut-être nécessaire du fait de ses ambitions encyclopédiques – et la difficulté qui en découle pour les ajouts manuels au système
  • Des problèmes d’évolutivité découlant de la réification (prise en compte d’assertions contradictoires émises par des intervenants différents) largement répandue, notamment au niveau des constantes
  • Un traitement peu satisfaisant du concept de substance, et la distinction liée entre propriétés intrinsèques et extrinsèques
  • L’absence de toute comparaison ou banc d’essai significatifs portant sur l’efficacité du moteur d’inférence de Cyc
  • Le caractère incomplet à ce jour du système, d’un point de vue aussi bien horizontal que vertical, et la difficulté liée quant à la mesure de cette complétude
  • Une documentation limitée
  • Un grand nombre de « trous », non seulement dans l’ontologie des objets ordinaires, mais aussi des assertions pertinentes de description de ces objets
  • La nature irréductible de la réalité elle-même.

UMBEL[modifier | modifier le code]

Projet initié en 2007 sous licence Creative Commons[4], UMBEL (de l'anglais : Upper Mapping and Binding Exchange Layer) est conçu dans l'optique de faciliter l'interopérabilité de contenu sur le web en proposant une structure ontologique de référence de 28 000 concepts et un vocabulaire de base pour construire d'autres ontologies de domaine. L'ontologie, sous-ensemble de la base de connaissances OpenCyc, est proposée selon les principes des données liées sur le web (Linked data)[5], avec des services d'accès Web et des extrémités SPARQL (SPARQL endpoints) c'est-à-dire des points auxquels sont attachés des services Web particuliers.

Notes[modifier | modifier le code]

  1. En anglais, la prononciation de Cyc est identique à celle du préfixe psych-, du grec psukhê = âme.
  2. Voir Texai
  3. [1] Texai SourceForge project files
  4. (en) « Welcome to the UMBEL Web Site ! » (consulté le 17 mars 2011)
  5. (en) « Traduction française : How to Publish Linked Data on the Web?], 23 Juin 2010 » (consulté le 17 mars 2011)

Références[modifier | modifier le code]

  • (en) Elisa Bertino, Gian Piero Zarri, Barbara Catania, Gian Pierro Zarri, Intelligent Database Systems, New York, Addison-Wesley Professional,‎ 2001 (ISBN 978-0-201-87736-6, LCCN 00066552)
  • (en) Matuszek, Cynthia, M. Witbrock, R. Kahlert, J. Cabral, D. Schneider, P. Shah and D. Lenat. Searching for Common Sense: Populating Cyc from the Web. In Proceedings of the Twentieth National Conference on Artificial Intelligence, Pittsburgh, Pennsylvania, July 2005.[2]
  • (en) Shepard, Blake, C. Matuszek, C.B. Fraser, W. Wechtenhiser, D. Crabbe, Z. Güngördü, J. Jantos, T. Hughes, L. Lefkowitz, M. Witbrock, D. Lenat, E. Larson. A Knowledge-Based Approach to Network Security: Applying Cyc in the Domain of Network Risk Assessment. In Proceedings of the Seventeenth Innovative Applications of Artificial Intelligence Conference, Pittsburgh, Pennsylvania, July 2005.[3]
  • (en) Ramachandran, Deepak, P. Reagan, K. Goolsbey. First-Orderized ResearchCyc: Expressivity and Efficiency in a Common-Sense Ontology. In Papers from the AAAI Workshop on Contexts and Ontologies: Theory, Practice and Applications. Pittsburgh, Pennsylvania, July 2005.[4]
  • (en) Cabral, John, R.C. Kahlert, C. Matuszek, M. Witbrock, B. Summers. Converting Semantic Meta-Knowledge into Inductive Bias. In Proceedings of the 15th International Conference on Inductive Logic Programming, Bonn, Germany, August 2005.[5]
  • (en) Schneider, Dave, C. Matuszek, P. Shah, R. Kahlert, D. Baxter, J. Cabral, M. Witbrock, D. Lenat. Gathering and Managing Facts for Intelligence Analysis. In Proceedings of the 2005 International Conference on Intelligence Analysis, McLean, Virginia, May 2005.[6]
  • (en) Forbus, Kenneth, L. Birnbaum, E. Wagner, J. Baker & M. Witbrock. Combining analogy, intelligent information retrieval, and knowledge integration for analysis: A preliminary report. In Proceedings of the 2005 International Conference on Intelligence Analysis, McLean, Virginia, May 2005.[7]
  • (en) Deaton, Chris, B. Shepard, C. Klein, C. Mayans, B. Summers, A. Brusseau, M. Witbrock. The Comprehensive Terrorism Knowledge Base in Cyc. In Proceedings of the 2005 International Conference on Intelligence Analysis, McLean, Virginia, May 2005.[8]
  • (en) Rode, Benjamin. Towards a Model of Pattern Recovery in Relational Data. In Proceedings of the 2005 International Conference on Intelligence Analysis, McLean, Virginia, May 2005.[9]
  • (en) Siegel, Nick, B. Shepard, J. Cabral, M. Witbrock. Hypothesis Generation and Evidence Assembly for Intelligence Analysis: Cycorp's Nooscape Application. In Proceedings of the 2005 International Conference on Intelligence Analysis, McLean, Virginia, May 2005.[10]
  • (en) Curtis, Jon, G. Matthews, D. Baxter. On the Effective Use of Cyc in a Question Answering System in Papers from the IJCAI Workshop on Knowledge and Reasoning for Answering Questions, Edinburgh, Scotland: 2005.[11]
  • (en) Witbrock, Michael, C. Matuszek, A. Brusseau, R.C. Kahlert, C.B. Fraser, D. Lenat. Knowledge Begets Knowledge: Steps towards Assisted Knowledge Acquisition in Cyc in Papers from the 2005 AAAI Spring Symposium on Knowledge Collection from Volunteer Contributors (KCVC), pp. 99-105. Stanford, California, March 2005.[12]
  • (en) Belasco, Alan, J. Curtis, RC Kahlert, C. Klein, C. Mayans, R. Reagan. Representing Knowledge Gaps Effectively. In D. Karagiannis, U. Reimer (Eds.): Practical Aspects of Knowledge Management, Proceedings of PAKM 2004, Vienna, Austria, December 2-3, 2004, Springer-Verlag, Berlin Heidelberg.[13]
  • (en) Siegel, Nick, G. Matthews, J. Masters, R. Kahlert, M. Witbrock and K. Pittman. Agent Architectures: Combining the Strengths of Software Engineering and Cognitive Systems in Papers from the AAAI Workshop on Intelligent Agent Architectures: Combining the Strengths of Software Engineering and Cognitive Systems, Technical Report WS-04-07, pp. 74-79. Menlo Park, California: AAAI Press, 2004.[14]
  • (en) Witbrock, Michael, K. Panton, S.L. Reed, D. Schneider, B. Aldag, M. Reimers and S. Bertolo. Automated OWL Annotation Assisted by a Large Knowledge Base in Workshop Notes of the 2004 Workshop on Knowledge Markup and Semantic Annotation at the 3rd International Semantic Web Conference ISWC2004, Hiroshima, Japan, November 2004, pp. 71-80.[15]
  • (en) Masters, James and Z. Güngördü. Structured Knowledge Source Integration: A Progress Report. In Integration of Knowledge Intensive Multiagent Systems, Cambridge, Massachusetts, USA, 2003.[16]
  • (en) O'Hara, Tom, N. Salay, M. Witbrock, et al. Inducing criteria for mass noun lexical mappings using the Cyc Knowledge Base and its Extension to WordNet. In Proceedings of the Fifth International Workshop on Computational Semantics, Tilburg, 2003.[17]
  • (en) Witbrock, Michael, D. Baxter, J. Curtis, et al. An Interactive Dialogue System for Knowledge Acquisition in Cyc. In Proceedings of the Eighteenth International Joint Conference on Artificial Intelligence, Acapulco, Mexico, 2003.[18]
  • (en) Panton, Kathy, P. Miraglia, N. Salay, et al. Knowledge Formation and Dialogue Using the KRAKEN Toolset. In Eighteenth National Conference on Artificial Intelligence, Edmonton, Canada, 2002.[19]
  • (en) Masters, James. Structured Knowledge Source Integration and its applications to information fusion. In Proceedings of the Fifth International Conference on Information Fusion, Annapolis, MD, July 2002.[20]
  • (en) Reed, Stephen and D. Lenat. Mapping Ontologies into Cyc. In AAAI 2002 Conference Workshop on Ontologies For The Semantic Web, Edmonton, Canada, July 2002.[21]
  • (en) D. Lenat and R. V. Guha., Building Large Knowledge-Based Systems: Representation and Inference in the Cyc Project, Reading, Addison-Wesley,‎ 1990 (ISBN 978-0-201-51752-1, LCCN 89015091)

Sources[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Liens externes[modifier | modifier le code]