F-logic (frame logic) is a knowledge representation and ontology language. F-logic combines the advantages of conceptual modeling with object-oriented, frame-based languages and offers a declarative, compact and simple syntax, as well as the well-defined semantics of a logic-based language.

Features include, among others, object identity, complex objects, inheritance, polymorphism, query methods, encapsulation. F-logic stands in the same relationship to object-oriented programming as classical relational calculus stands to relational database programming.


F-logic was developed by Michael Kifer at 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 is considered as one of the formalisms for ontologies, but description logic (DL) is more popular and accepted, as is the DL-based OWL.

A development environment for F-logic was developed in the NeOn project and is also used in a range of applications for information integration, question answering and semantic search. Prior to the version 4 of Protégé ontology editor, F-Logic is supported as one of the two kinds of ontology.

The frame syntax of the Rule Interchange Format Basic Logic Dialect (RIF BLD) standardized by the World Wide Web Consortium is based on F-logic; RIF BLD however does not include non-monotonic reasoning features of F-logic.

In contrast to description logic based ontology formalism the semantics of F-logic are normally that of a closed world assumption as opposed to DL's open world assumption. Also, F-logic is generally undecidable,[citation needed] whereas the SHOIN description logic that OWL DL is based on is decidable. However it is possible to represent more expressive statements in F-logic than are possible with description logics.

The most comprehensive description of F-logic was published in 1995. The preliminary paper from 1989 won the 1999 Test of Time Award from ACM SIGMOD. A follow-up paper from 1992 won the 2002 Test of Time Award from ACM SIGMOD.

F-logic syntax

Classes and individuals may be defined in F-logic as follows:


This states, that "men and women are persons" and that "Brad is a man", and "Angelina is a woman".

Statements about classes and individuals may be made as follows:


This defines that "the son of a person is a man", "Maddox and Pax are the sons of Brad" and "Brad and Angelina are married".

In addition it is possible to represent axioms in F-logic in the following manner:

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

These mean "X is a man if X is a person but not a woman" and "if X is the son of Y then X is a person and Y is the father of X".

(Note: the latter inference is not factual, because in addition to fathers, sons also have mothers. The gender of X is determined by the premise, but the gender of Y is not.)

The Flora-2 system introduced a number of changes to the syntax of F-logic, making it more suitable for a knowledge representation and reasoning system as opposed to just a theoretical logic. In particular, variables became prefixed with a ?-mark, the distinction between functional and multi-valued properties was dropped and replaced by cardinality constraints, plus other important changes. For instance, the above pair of sentences look like this in Flora-2:

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

Here \naf is default negation ("naf" stands for Negation as failure, based on the well-founded semantics); Flora-2 also supports so-called explicit negation, which is closer to negation in classical logic.

F-logic based languages

This page was last updated at 2023-12-12 12:49 UTC. Update now. View original page.

All our content comes from Wikipedia and under the Creative Commons Attribution-ShareAlike License.


If mathematical, chemical, physical and other formulas are not displayed correctly on this page, please useFirefox or Safari