olog(ID:7142/olo002)OO deductive language People: Related languages
References: 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. |