This Article 
 Bibliographic References 
 Add to: 
COMPLEX: An Object-Oriented Logic Programming System
August 1992 (vol. 4 no. 4)
pp. 344-359

The design and a prototypical implementation of COMPLEX, which is a logic-based system extended with concepts from the object-oriented paradigm and is intended as a tool for the development of knowledge-based applications, are described. The system supports a logic language, called Complex-Datalog (C-Datalog), enhanced by semantic constructs to provide facility for data abstraction. Its implementation is based on a bottom-up computational model that guarantees a fully declarative style of programming. However, the user is also given the possibility of running a query using a top-down model of computation. Efficiency of execution is the result of the integration of different novel technologies for the compilation and the execution of queries.

[1] S. Abiteboul, "Toward a deductive object-oriented database language,"Data Knowl. Eng., vol. 5, pp. 263-287, 1990.
[2] S. Abiteboul, C. Beeri, D. Van Gucht, and M. Gyssen, "An introduction to the completeness of languages for complex objects and nested relations," unpublished manuscript, May 1988.
[3] S. Abiteboul and P. C. Kanellakis, "Object identity as a query language primitive," inProc. 1989 ACM-SIGMOD Int. Conf. on Management of Data(Portland, OR), May 1989.
[4] H. Ait-Kaci and R. Nasr, "LOGIN: A logic programming language with built-in inheritance,"J. Logic Program., vol. 3, no. 3, pp. 185-215, Oct. 1986.
[5] K. Apt, H. Blair, and A. Walker, "Towards a Theory of Declarative Knowledge,"Proc. Workshop Foundations Deductive Databases and Logic Programming, Washington D.C., 1988, pp. 546-629.
[6] I. Balbin and K. Ramamohanarao, "A differential approach to query optimization in recursive deductive databases,"J. Logic Programming, vol. 4, no. 2, pp. 259-262, Sept. 1987.
[7] I. Balbin, K. Meenakshi, and K. Ramamohanarao, "An efficient labeling algorithm for magic set computation on stratified databases," Tech. Rep. 1, Dep. of Comput. Sci., Univ. of Melbourne, Australia, 1988.
[8] I. Balbin, G. S. Port, K. Ramamohanarao, and K. Meenakshi, "Efficient bottom-up computation of queries on stratified databases," Tech. Report, Dep. of Comput. Sci., Univ. of Melbourne, Australia, 1989.
[9] F. Bancilhon, "Naive evaluation of recursively defined relations," inOn Knowledge Based Management Systems--Integrating Data-base and AI Systems, Brodie and Mylopoulos, Eds. New York: Springer-Verlag, 1985.
[10] F. Bancilhon, D. Maier, Y. Sagiv, and J. D. Ullman, "Magic sets and other strange ways to implement logic programs," inProc. 5th ACM Symp. Principles of Database Syst.(Cambridge, MA), Mar. 1986, pp. 1-15.
[11] F. Bancilhon, "Object-oriented database systems," inProc. ACM SIGACT-SIGMOD Symp. Principles Database Syst., Austin, TX, Mar. 1988.
[12] C. Beeri and R. Ramakrishnan, "On the power of magic," inProc. 6th ACM Symp. Principles of Database Syst.(San Diego, CA), Mar. 1987, pp. 269-283.
[13] W. Chen and D. S. Warren, "C-logic for complex objects." inProc. 1989 ACM SIGACT-SIGMOD-SIGART Symp. on Principles of Database Systems, Philadelphia, PA, Mar. 1989, pp. 369-378.
[14] W. F. Clocksin and C. S. Mellish,Programming in Prolog. New York: Springer-Verlag, 1984.
[15] J. S. Conery, "Object-oriented programming with first order logic," Tech. Report CIS-TR-87-09, Univ. of Oregon, 1987.
[16] A. Ershof, "On the partial evaluation principle",Inform. Proc. Lett., vol. 6, no. 2, pp. 38-41, 1977.
[17] B. Fagin and T. Dobry, "The Berkeley PLM instruction set: An instruction set for Prolog," Tech. Rep. UCB/CSD 86/257, Comput. Sci. Div., Univ. of California, Berkeley, Sept. 1985.
[18] M. Kifer and G. Lausen, "F-logic: A higher-order language for reasoning about objects, inheritance, and scheme," inProc. 1989 ACM SIGMOD Int. Conf. on the Management of Data, Portland, OR, 1989, pp. 134-146.
[19] M. Kifer, G. Lausen, and J. Wu, "Logical foundations of object-oriented and frame-based languages," Tech. Rep. 90/14, Dep. of Comput. Sci., State Univ. of New York at Stony Brook, June 1990.
[20] H. F. Korth and M. A. Roth, "Query languages for nested relational databases," Tech. Rep. TR-87-45, Univ. of Texas at Austin, Dec. 1987.
[21] G. M. Kuper, "Logic programming with sets," inProc. ACM SIGMOD-SIGACT Symp. Principles Database Syst., 1987, pp. 11- 20.
[22] P. Fischer and S. Thomas, "Operators for nonfirst-normal-form relations," inProc. 7th COMPSAC, Chicago, Nov. 1983.
[23] M. Maier, "A logic for objects," inProc. Workshop on Foundations of Deductive Databases and Logic Programming, Washington, DC, 1986, pp. 6-26.
[24] S. Naqvi and S. Tsur,A Logical Language for Data and Knowledge Bases. New York: Computer Sci. Press, 1989.
[25] P. Roussel,Prolog, Manuel de Reference et de Utilisation, Groupe Intelligence Artificielle, Universite' Aix-Marseille II., 1975.
[26] D. Sacca' and C. Zaniolo, "On the implementation of a simple class of logic queries for databases," inProc. ACM 1986 SIGMOD-SIGACT Symp. Principles Database Syst., Cambridge. MA, Mar. 1986.
[27] D. Saccáand C. Zaniolo, "The generalized counting method of recursive logic queries for databases,"Theoretical Comput. Sci., no. 62, pp. 187-220, Nov. 1989.
[28] Sacca' and C. Zaniolo, "Magic counting methods," inProc. ACM-SIGMOD Conf., San Francisco, CA, May 1987.
[29] D. Saccá, M. Dispinzeri, A. Mecchia, C., Pizzuti, C. Del Gracco, and P. Naggar, "The advanced database environment of the KIWI system,"Data Eng., vol. 10, no. 4, pp. 20-27, Nov. 1987.
[30] D. Sacca and C. Zaniolo, "Implementation of recursive query for a data language based on pure Horn clauses," inProc. 4th Int. conf. on Logic Programming, 1987, pp. 104-135.
[31] L. Vieille, "Recursive axioms in deductive databases: The query/subquery approach," inProc. First Int. Conf. on Expert Database Systems, Charleston, 1986, pp. 253-268.
[32] J. D. Ullman,Database and Knowledge-base Systems. Rockville, MD: Computer Science Press, 1988.
[33] D. H. D. Warren, "An abstract prolog instruction set," Tech. Rep. 309, SRI International, Menlo Park, CA, Oct. 1983.

Index Terms:
COMPLEX; object-oriented logic programming system; prototypical implementation; tool; knowledge-based applications; logic language; Complex-Datalog; C-Datalog; semantic constructs; bottom-up computational model; fully declarative style of programming; top-down model; knowledge based systems; logic programming; object-oriented programming; software prototyping
S. Greco, N. Leone, P. Rullo, "COMPLEX: An Object-Oriented Logic Programming System," IEEE Transactions on Knowledge and Data Engineering, vol. 4, no. 4, pp. 344-359, Aug. 1992, doi:10.1109/69.149930
Usage of this product signifies your acceptance of the Terms of Use.