olog(ID:7142/olo002)


OO deductive language


People:
Related languages
Relationlog => olog   Based on
ROL => olog   Based on

References:
  • Liu, Mengchi "OLOG: Towards a Real Deductive Object-Oriented Database Language" Submitted for conference publication 1997 view details
  • Liu, Mengchi "OLOG: A Deductive Object Database Language" NGITS 1999: 120-137 view details
  • X. Li and M. Liu, Design and Implementation of the OLOG Deductive Object-Oriented Database System. In Proceedings of the 11th International Conference on Database and Expert Systems Applications (DEXA 2000), London, Greenwich, UK. September 4-8, 2000. Lecture Notes in Computer Science, Vol. 1873, Springer 2000 view details Abstract: OLOG is a novel deductive database system for advanced intelligent information system applications. It directly supports e ective  storage, efficient access and inference of large amount of persistent data  with complex structures. It provides a SQL-like data definition language  and data manipulation language, and a declarative rule-based query language.  It combines the best of the deductive, object-oriented, and object-  relational approaches in a uniform framework. This paper describes the  design and implementation of the OLOG system.
    Extract: Introduction
    Introduction
    Deductive, object-oriented, and object-relational databases are three important extensions of the traditional relational database technology. Deductive databases  stem from the integration of logic programming and relational databases. It others  representational and operational uniformity, reasoning capabilities, recursion,  declarative querying, efficient secondary storage access, etc. However, deductive  databases based on relational databases only allow  relations and do not  support data abstraction. As a result, more powerful deductive languages that  support data with complex structures have been proposed, such as LDL [6],  LPS [12], COL [1], Hilog [5], Relationlog [16], See [17] for an overview of some  of these languages. Also, several deductive database systems that support data  with complex structures have been developed, such as LDL [6], CORAL [23],  and Relationlog [19].
    Object-oriented concepts have evolved in three ditherent disciplines: first in programming languages, then in artificial intelligence, and then in databases  since the end of the 60's. Indeed, object orientation others some of the most  promising ways to meet the demands of many advanced database applications.  The object-oriented philosophy creates a powerful synergy throughout the development life cycle by combining abstraction, encapsulation, and modularity.  In the past decade, various object-oriented data models were developed [3, 7, 8,  13]. Also see an review in [25]. But there is a major problem with the object-oriented approach that is the lack of logical or mathematical foundations that,  traditionally, has been playing an important role in database research. Such a  foundation is essential for defining the semantics of databases and queries, for  database design, and for query optimization.
    Object-relational databases combine important object-oriented features with nested relational object databases. It extends relational databases with a richer  type system including object orientation and adds constructs to relational query  languages, such as SQL to deal with the added data types.
    In the past decade, a lot of ethort has been made to integrate deductive and object-oriented databases to gain the best of the two approaches, such as  O-logic [22], revised O-logic [11], F-logic [10], IQL [2], LOGRES [4], ROL [15],  Datalog ++ [9], and DO2 [14]. As surveyed in [24], many of DOOD models are developed by extending and/or integrating the already existed deductive or object-oriented data models and they either are limited in object-oriented features or  lack logical semantics. Few of them are fully implemented as persistent database  management systems.
    The objective of the OLOG system is to develop techniques for advanced intelligent information systems that directly support ethective storage, efficient  access and inference of large amount of data with complex structures. The OLOG  language [18] is based on IQL [2] and O2 [7]. It overcomes the problem associated  with IQL. It ethectively integrates useful features in other deductive languages  with a well-defined logical semantics.
    The OLOG system has been developed in C++ mainly on a SUN SPARC- station running Solaris 2.5. It is implemented as a persistent database system  that supports the OLOG query language, an SQL-like data definition language  and data manipulation language. The implementation is based on ROL [20] and  Relationlog [21].
    In this paper, we describe the design and implementation of the OLOG system. In Section 2, we provide a brief overview of the OLOG language. In Section 3, we describe the OLOG system architecture. In Section 4, we explain the file  system and storage management. In Section 5, we discuss OLOG kernel. In Section 6, we focus on the query evaluation issues. In Section 7, we conclude and  comment on our future plans.
    Due to space limitation, the discussion is terse and imcomplete. Extract: Overview of OLOG Language
    Overview of OLOG Language
    In OLOG, we can have not only classes but also relations with complex data structures such as nested tuples and sets. In this section, we present a brief  summary of the OLOG language.
    An OLOG database consists of four parts: type, schema, program, and fact.
    The OLOG language is a typed language for defining, manipulating, and querying OLOG databases. The type part contains all type definitions. OLOG supports atomic data  types including Char, String, Integer, and Real and class types for objects. Based  on these data types, complex data types can be defined using tuple and set  constructors.