Introduction to F-Logic
From Wiki
Contents |
Overview
F-Logic [Kifer ] is a deductive, object oriented database language which combines the declarative semantics and expressiveness of deductive database languages with the rich data modeling capabilities supported by the object oriented data model. Is a foundation for object-oriented logic programming and knowledge representation. The bases for a logic programming language which use objects comes from the early 1986, when [Maier 1987] presents his ”logic for objects”, O-Logic which was then revisited in [Kifer et Wu 1989] and finalized with the J. of ACM paper of [Kifer et al 1995].
There are many implementations of the language.
- Unnamed (U. Melbourne - M. Lawley) - early 90's; first Prolog-based implementation
- FLORID (U. Freiburg - Lausen et al.) - late 90's; the only C++ based implementation,
- FLIP (U. Freiburg - Ludaescher) - late 90's; first XSB based implementation. Inspired the FLORA effort
- TFL (Tech. U. Valencia - Carsi) - late 90's;
- SILRI (Karlsruhe - Decker et al.) - late 90's; Java based
- TRIPLE (Stanford - Decker et al.) - early 2000's; Java,
- OntoBroker (Ontoprise) - 2000; commercial,
- FLORA − 2 (Kifer et al.) - from 2000,
A First Example
A printer is LightPhotoPrinter if has a price less than 100 Euro and supports 5760dpi resolution.
?P:LightPhotoPrinter :- ?P[price->?Pr] AND
?P[printingResolution->?Res] AND
member(5760, ?Res) AND ?Pr < 100.
Objects
Identity
Properties
Operations
Describing vocabularies
Class hierarchies and inheritance. Typing. Encapsulation
// Printer and product are classes and Printer is subclass of Product
Printer::Product.
// Product has a name
Product[name *=> string].
// Printer has printerResolution and inherits name
Printer[printingResolution =>> integer].
// a Printer instance named printer1
printer1:Printer[name ->"Epson DX 4850"; printingResolution ->>{1200, 1440, 5760}].
Signatures
Handling collections: Lists
Datalog Backward Compatibility
Built-in Predicates
Web Specific Concepts
Using Namespaces
Unique Name Assumption
Other F-Logic Based Languages
- WSMO (Web Service Modeling Ontology) an EU project that developed an F-logic based language for Semantic Web Services, WSML-Rule
- SWSI (Semantic Web Services Initiative) an international group that proposed an F-logic based language SWSL-Rules (also for Semantic Web Services)
Bibliography
- D. Maier. A Logic for Objects. In: Preprints of Workshop on Foundations of Deductive Databases and Logic Programming, ed. Jack Minker, Washington DC, August 1986.
- M. Kifer and J. Wu. A Logic for Object-Oriented Logic Programming (Maier’s O-Logic Revisited). In Proc. of ACM SIGACT-SIGMOD-SIGART, Symposium on Principles of Database Systems, March 1989, 379-383.
- M. Kifer, G. Lausen, and J. Wu. Logical foundations of object-oriented and frame-based languages. Journal of the ACM, 42(4):741-843, 1995.
- M. Kifer, Rules and Ontologies in F-logic, Reasoning Web Summer School, Msida, Malta, http://rewerse.cs.um.edu.mt/sschool/prog/kifer.ppt

