F-logic - F-logic

F-logic ( frame logic ) este un limbaj de reprezentare a cunoștințelor și ontologie . F-logic combină avantajele modelării conceptuale cu limbaje orientate pe obiecte, bazate pe cadre și oferă o sintaxă declarativă, compactă și simplă, precum și semantica bine definită a unui limbaj bazat pe logică.

Caracteristicile includ, printre altele, identitatea obiectelor, obiectele complexe, moștenirea , polimorfismul , metodele de interogare, încapsularea . F-logica se află în aceeași relație cu programarea orientată obiect ca și calculul relațional clasic cu programarea relațională a bazei de date .

Prezentare generală

F-logic a fost dezvoltat de Michael Kifer la Universitatea Stony Brook și Georg Lausen la Universitatea din Mannheim . F-logic a fost inițial dezvoltat pentru baze de date deductive, dar acum este cel mai frecvent utilizat pentru tehnologiile semantice, în special pentru web-ul semantic . Logica F este considerată drept unul dintre formalismele pentru ontologii , dar logica descrierii (DL) este mai populară și acceptată, la fel ca OWL bazat pe DL .

Un mediu de dezvoltare pentru F-logic a fost dezvoltat în proiectul NeOn și este, de asemenea, utilizat într-o serie de aplicații pentru integrarea informațiilor, răspunsul la întrebări și căutarea semantică . Înainte de versiunea 4 a editorului de ontologie Protégé, F-Logic este acceptat ca unul dintre cele două tipuri de ontologie.

Sintaxa de cadre a formatului Regula Interchange Basic Logic Dialect (RIF BLD) standardizat de către World Wide Web Consortium se bazează pe F-logică; Cu toate acestea, RIF BLD nu include caracteristici de raționament non-monotonice ale logicii F.

Spre deosebire de formalismul ontologic bazat pe logica descrierii , semantica logicii F este în mod normal cea a unei presupuneri a lumii închise spre deosebire de presupunerea lumii deschise a lui DL . De asemenea, logica F este în general indecidabilă , în timp ce logica de descriere SHOIN pe care se bazează OWL DL este decisă. Cu toate acestea, este posibil să se reprezinte afirmații mai expresive în logica F decât sunt posibile cu logica descrierii.

Cea mai cuprinzătoare descriere a logicii F a fost publicată în 1995. Lucrarea preliminară din 1989 a câștigat Premiul Test of Time din 1999 de la ACM SIGMOD . O lucrare ulterioară din 1992 a câștigat Premiul Test of Time 2002 de la ACM SIGMOD.

Sintaxa logicii F

Clasele și indivizii pot fi definiți în logica F după cum urmează:

man::person.
woman::person.
brad:man.
angelina:woman.

Aceasta afirmă că „bărbații și femeile sunt persoane” și că „Brad este un bărbat” și „Angelina este o femeie”.

Declarațiile despre clase și persoane pot fi făcute după cum urmează:

person[hasSon=>man].
brad[hasSon->{maddox,pax}].
married(brad,angelina).

Aceasta definește că „fiul unei persoane este un bărbat”, „Maddox și Pax sunt fiii lui Brad” și „Brad și Angelina sunt căsătoriți”.

În plus, este posibil să se reprezinte axiomele în logica F în modul următor:

man(X) <- person(X) AND NOT woman(X).
X:person[hasFather->Y] <- Y:man[hasSon -> X].

Acestea înseamnă „X este un bărbat dacă X este o persoană, dar nu o femeie” și „dacă X este fiul lui Y, atunci X este o persoană și Y este tatăl lui X”.

Sistemul Flora-2 a introdus o serie de modificări în sintaxa logicii F, făcându-l mai potrivit pentru o reprezentare a cunoștințelor și un sistem de raționament, spre deosebire de doar o logică teoretică. În special, variabilele au fost prefixate cu un semn?, Distincția dintre proprietățile funcționale și proprietățile multivalente a fost abandonată și înlocuită de constrângeri de cardinalitate, plus alte modificări importante. De exemplu, perechea de propoziții de mai sus arată astfel în Flora-2:

man(?X) <- person(?X) \and \naf woman(?X).
?X:person[hasFather->?Y] <- ?Y:man[hasSon -> ?X].

Aici \ naf este negația implicită („naf” înseamnă negație ca eșec bazat pe semantica bine întemeiată ); Flora-2 acceptă, de asemenea, așa-numita negație explicită, care este mai aproape de negație în logica clasică.

Limbaje bazate pe logica F

Referințe