F-Logic
Frame Logic (abgekürzt F-Logic) ist eine formale Sprache zur Wissensrepräsentation.
Beschreibung
Sie verbindet die Vorteile der konzeptuellen Modellierung mit denen von objektorientierten frame-basierten Sprachen und bietet Deklarativität, eine kompakte und einfache Syntax und die wohldefinierte Semantik einer logikbasierten Sprache. F-Logic unterstützt Typisierung, Meta-Reasoning, komplexe Objekte, Methoden, Klassen, Vererbung, Regeln, Anfragen und Modularisierung. Die Semantik von F-Logic basiert auf der Semantik von Logik erster Stufe, speziell auf der Semantik der Logikprogrammierung.
F-Logic wurde von Michael Kifer an der New York State University und von Georg Lausen an der Universität Mannheim entwickelt. F-Logic wurde ursprünglich im Bereich deduktive Datenbanken entwickelt, findet heute aber vor allem in den Bereichen semantische Technologien, semantisches Web seinen Einsatz. F-Logic stellt dabei eine Sprache zur Formulierung von Ontologien ähnlich OWL, RDF dar.
Für F-Logic wurde in den Jahren 2006–2010 in dem europäischen Projekt NEON eine Entwicklungsumgebung entwickelt.<ref>neon-project.org. Webseite der Entwicklungsumgebung: neon-toolkit.org</ref> F-Logic wird inzwischen auch in zahlreichen industriellen Anwendungen zur Informationsintegration, zur Unterstützung bei komplexen Entscheidungen, zum Finden von Lösungen im Bereich Kundenservice und bei der semantischen Suche eingesetzt.
Beispiel
Im Folgenden sei ein kleines Beispiel für F-Logic in der Original-Sprachspezifikation gegeben:<ref>{{#switch:
|0|=Vorlage:Toter Link/Core{{#if: http://www.ontoprise.de/fileadmin/user_upload/Publications_EN/Tutorial_FLogic_en.pdf | {{#if: Tutorial F-Logic | Tutorial F-Logic }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: 2018-04 | , festgestellt im {{#invoke:DateTime|format|2018-04|F Y}} }}. Suche im Internet Archive ){{#if: 2018-04-09 07:24:50 InternetArchiveBot | {{#if: | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: 2018-04 | , festgestellt im {{#invoke:DateTime|format|2018-04|F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: http://www.ontoprise.de/fileadmin/user_upload/Publications_EN/Tutorial_FLogic_en.pdf | {{#if:{{#invoke:URLutil|isWebURL|http://www.ontoprise.de/fileadmin/user_upload/Publications_EN/Tutorial_FLogic_en.pdf}} || {{#if: || }} }} | {{#if: Tutorial F-Logic | {{#if: || }} | {{#if: || }} }} }}{{#if: 2018-04 | {{#if:{{#invoke:DateTime|format|2018-04|F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://www.ontoprise.de/fileadmin/user_upload/Publications_EN/Tutorial_FLogic_en.pdf Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: 2018-04 | , festgestellt im {{#invoke:DateTime|format|2018-04|F Y}} }}. (Suche im Internet Archive. ) {{#if: 2018-04-09 07:24:50 InternetArchiveBot | {{#if: | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: http://www.ontoprise.de/fileadmin/user_upload/Publications_EN/Tutorial_FLogic_en.pdf | {{#if:{{#invoke:URLutil|isWebURL|http://www.ontoprise.de/fileadmin/user_upload/Publications_EN/Tutorial_FLogic_en.pdf}} || {{#if: || }} }} }}{{#if: 2018-04 | {{#if:{{#invoke:DateTime|format|2018-04|F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}[http://www.ontoprise.de/fileadmin/user_upload/Publications_EN/Tutorial_FLogic_en.pdf }} (PDF).</ref>
Schema/Klassen/Methoden
mann::person. // jeder Mann ist eine Person
frau::person. // jede Frau ist eine Person
person[hatSohn=>>mann]. // der Sohn einer Person ist ein Mann
Regeln/Ableitungen
FORALL X,Y X:person[hatVater->Y] <- Y:mann[hatSohn -> X]. // falls X der Sohn von Y ist, ist Y der Vater von X
Fakten
brad:mann.
angelina:frau.
verheiratet(brad, angelina).
brad[hatSohn->>{maddox, pax}].
Anfrage
Mit wem hat Angelina einen Sohn namens Pax?
FORALL M <- verheiratet(M, angelina) AND M[hatSohn ->> {pax}].
Mittlerweile wurde die Syntax in einigen Punkten vereinfacht.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20090106000606
| {{#ifeq: 20090106000606 | *
| {{#if: forum.projects.semwebcentral.org | {{#invoke:WLink|getEscapedTitle|forum.projects.semwebcentral.org}} | {{#invoke:Webarchiv|getdomain|http://forum.projects.semwebcentral.org/forum-syntax.html}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20090106000606}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: forum.projects.semwebcentral.org | {{#invoke:WLink|getEscapedTitle|forum.projects.semwebcentral.org}} | {{#invoke:Webarchiv|getdomain|http://forum.projects.semwebcentral.org/forum-syntax.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-12-21 10:30:38 InternetArchiveBot | 2023-12-21 10:30:38 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20090106000606}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: forum.projects.semwebcentral.org | {{#invoke:WLink|getEscapedTitle|forum.projects.semwebcentral.org}} | {{#invoke:Webarchiv|getdomain|http://forum.projects.semwebcentral.org/forum-syntax.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-12-21 10:30:38 InternetArchiveBot | 2023-12-21 10:30:38 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: forum.projects.semwebcentral.org | {{#invoke:WLink|getEscapedTitle|forum.projects.semwebcentral.org}} | {{#invoke:Webarchiv|getdomain|http://forum.projects.semwebcentral.org/forum-syntax.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-12-21 10:30:38 InternetArchiveBot | 2023-12-21 10:30:38 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: forum.projects.semwebcentral.org | {{#invoke:WLink|getEscapedTitle|forum.projects.semwebcentral.org}} | {{#invoke:Webarchiv|getdomain|http://forum.projects.semwebcentral.org/forum-syntax.html}} }} ({{#if: {{#if: 2023-12-21 10:30:38 InternetArchiveBot | 2023-12-21 10:30:38 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: forum.projects.semwebcentral.org | {{#invoke:WLink|getEscapedTitle|forum.projects.semwebcentral.org}} | {{#invoke:Webarchiv|getdomain|http://forum.projects.semwebcentral.org/forum-syntax.html}} }}
}}}}}}}}{{#if:2023-12-21 10:30:38 InternetArchiveBot
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20090106000606|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://forum.projects.semwebcentral.org/forum-syntax.html}}
|| {{#if: || }}
}}{{#if: forum.projects.semwebcentral.org
| {{#if: {{#invoke:WLink|isBracketedLink|forum.projects.semwebcentral.org}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://forum.projects.semwebcentral.org/forum-syntax.html%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://forum.projects.semwebcentral.org/forum-syntax.html%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://forum.projects.semwebcentral.org/forum-syntax.html }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref>
F-Logic basierende Sprachen
- FLORA-2 ist eine Erweiterung von F-Logic um HiLog und Transaktion Logic
- FLORID ist eine Implementierung in C++
- Ontobroker unterstützt ObjectLogic, den Nachfolger von F-Logic
- Web Services Modeling Language (WSML)
- Semantic Web Services Language (SWSL)
Weblinks
- How to Write F-Logic Programs A Tutorial for the Language F-Logic
- Tutorial für F-Logic (Link defekt) (PDF; 168 kB)
Einzelnachweise
<references />
- Wikipedia:Weblink offline fix-attempted
- Wikipedia:Vorlagenfehler/Vorlage:Toter Link
- Wikipedia:Vorlagenfehler/Parameter:URL
- Wikipedia:Vorlagenfehler/Vorlage:Toter Link/URL fehlt
- Wikipedia:Vorlagenfehler/Parameter:Datum
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Archiv-URL
- Wikipedia:Vorlagenfehler/Parameter:Linktext
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Linktext fehlt
- Theorie formaler Sprachen
- Abkürzung