F-logic

langage de programmation informatique

F-logique ou F-logic (cadre logique) est un langage de représentation des connaissances et d'ontologie. Il combine les avantages de la modélisation conceptuelle avec les langages orientés objets et orientés cadres et offre une syntaxe déclarative qui se veut compacte et simple, pourvu de la sémantique précise d'un langage logique. Ses fonctionnalités incluent, l'identité des objets, les objets complexes, l'héritage, le polymorphisme, les méthodes requêtes, l'encapsulation. F-logic est pour la programmation orienté objet ce que le calcul des prédicat classique est pour la programmation de bases de données relationnelles.

F-logic a été écrite par Michael Kifer et Stony Brook University and Georg Lausen at the University of Mannheim. F-logic was originally developed for deductive databases, but is now most frequently used for semantic technologies, especially the Semantic Web. F-logic est l'un des formalismes pour les ontologies, avec la logique de description (DL) qui est cependant plus utilisée et acceptée, étant notamment une base d'OWL.

Des outils utilisant F-logic comme un environnement de développement, le projet NeOn, utilisé pour de nombreuses applications dans le cadre de l'intégration d'informations, les systèmes de question/réponse et la recherche sémantique. Les versions de l'éditeur d'ontologie Protégé antérieure à la version 4 supportaient F-logic comme une des bases de construction d'ontologie.

La syntaxe «cadre» du format Rule Interchange Format «Basic Logic Dialect» (RIF BLD), format d'échange de règle «dialecte de base pour la logique» standardisé par le W3C est basé sur F-logic; RIF BLD n'inclut cependant pas les fonctionnalités de raisonnement non monotone de F-logic[1].

Contrairement aux formalismes d'ontologie basées sur les logiques de description, celles des F-logiques font généralement hypothèse du monde clos. Celles des LDs font généralement l'hypothèse inverse, celle du monde ouvert. Les, F-logiques sont généralement indécidables, alors que des formalismes comme SHOIN en logique de description, sur lequel OWL DL est basé, est décidable. Il est cependant possible d'être plus expressifs avec F-logic qu'avec certaines LD.

La description la plus complète de F-logicest le draft de F-logic[2]. La publication préliminaire [3] a gagné la récompense «Test du temps» 1999 (Test of Time Award) de la conférence ACM SIGMOD. Un papier subsequent[4] l'a eu à nouveau en 2002.

Syntaxe de F-logic modifier

Les classes et éléments peuvent être définis en F-Logic comme ceci:

 homme::personne.
 femme::personne.
 brad:homme.
 angelina:femme.

Cela veut dire, les "hommes et les femmes sont des gens" que "Brad est un homme", et "Angelina est une femme".

Les déclarations sur les classes et les individus peuvent être effectuées de la manière suivant.

 personne[aPourFils=>homme].
 brad[aPourFils->>{maddox,pax}].
 mariés(brad,angelina).

Ceci définit "le fils d'une personne est un homme", "Maddox et Pax sont les fils de Brad" et "Brad et Angelina sont mariés". Notez que ->> est utilisé pour des ensembles de valeurs.

Additionnellement, il est possible de représenter les axiomes de  F-logic de la manière suivante

 homme(X) <- personne(X) AND NOT femme(X).
 FORALL X, Y <- X:personne[APOurPère->Y] <- Y:homme[APourFils -> X].

Cela signifie "X est un homme si X est une personne mais pas une femme" et "si X est le fils de Y alors Y est le père de X".

Le système Flora-2 a introduit en son temps de nombreux changements à la syntaxe de F-logic, facilitant l'utilisation concrète du langage comme langage de représentation des connaissances, par opposition à simplement un langage théorique. En particulier les variables sont devenues préfixées par "?", la distinction entre propriété fonctionnelle et propriété multi-valuée a été abandonnées et remplacée par des contraintes de cardinalité, ...

Langages basés sur F-logic modifier

Références modifier

  1. M. Krötzsch (October 2010).
  2. M. Kifer, G. Lausen, J. Wu (1995).
  3. M. Kifer and G. Lausen (1989).
  4. M. Kifer, W. Kim, Y. Sagiv (1992).