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 predicate 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, so as 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 Protege ontology editor, F-Logic is supported as one of the two kinds of ontology.
Classes and individuals may be defined in F-logic as follows
man::person. woman::person. brad:man. angelina:woman.
This states, that "men and women are people" and that "Brad is a man", and "Angelina is a woman".
Statements about classes and individuals may be made as follows
person[hasSon=>man]. brad[hasSon->>{maddox,pax}]. married(brad,angelina).
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". Note that ->>
is used for sets of values.
In addition it is possible to represent axioms in the F-logic in the following manner
man(X) <- person(X) AND NOT woman(X). FORALL X, Y <- 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 Y is the father of X".
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, where as the SHOIN logic that OWL DL is based on is decidable. However it is possible to represent more expressive statements in F-logic that are not possible with description logics.