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. Before version 4 of Protégé ontology editor, F-Logic is supported as one of the two kinds of ontology.
In contrast to description logic based ontology formalism, the semantics of F-logic are normally that of a closed world assumption in contrast to DL's open world assumption. Also, F-logic is generally undecidable,[citation needed] whereas the SHOIN description logic that Web Ontology Language (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.[2] The preliminary paper[3][4] from 1989 won the 1999 Test of Time Award from ACM SIGMOD.[5] A follow-up paper[6] from 1992 won the 2002 Test of Time Award from ACM SIGMOD.[5]
F-logic syntax
Classes and individuals may be defined in F-logic as follows:
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:
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,[7] which is closer to negation in classical logic.
↑Kifer, M.; Lausen, G. (1 June 1989). "F-logic: a higher-order language for reasoning about objects, inheritance, and scheme". ACM SIGMOD Record. 18 (2): 134–146. doi:10.1145/66926.66939.
↑Kifer, M.; Lausen, G. (1997). "F-logic: a higher-order language for reasoning about objects, inheritance, and scheme (re-issued)". ACM SIGMOD Record. 18 (2): 134–146. doi:10.1145/66926.66939.