Introduction to F-Logic

From Wiki

(Redirected from F-Logic)
Jump to: navigation, search

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
Personal tools