A High-Level Petri Net for Goal-Directed Semantics of Horn Clause Logic

A new high level Petri net (HLPN) model is introduced as a graphical syntax for Horn clause logic (HCL) programs. We call these nets: Horn clause logic goal directed nets (HCLGNs). It is shown that there is a bijection between the queried definite programs and the class of HCLGNs. In addition, a visualization of SLD resolution is realized through the enabling and firing rules and net markings. The correctness of these rules with respect to SLD resolution is also proven. We model SLD refutations and failing computations. It is shown how HCLGNs can be used to model built in atoms and provide a new AND/OR parallel execution model. Recently, several software packages (graphical editors) have become available for editing and executing HLPNs. The simulation capabilities of the HLPN software offer opportunities to perform automated, interactive code walk throughs and also have potential for providing a framework for visual debugging environments. However, HCLGNs differ from the major classes of HLPNs for which software tools have been developed in primarily two ways: the tokens in the markings can have variables; and the firing of a transition may not only update the marking of the adjacent places, but may instantiate variables in tokens in the markings of places that are non adjacent to the fired transition. Thus, the existing packages can only provide graphical syntax editing and are not appropriate for graphical simulation of HCLGNs. We provide an algebraic characterization of HCLGNs that can serve as a design guideline for implementing HCLGNs.

[1]  J. W. Lloyd,et al.  Foundations of logic programming; (2nd extended ed.) , 1987 .

[2]  Tadao Murata,et al.  Petri nets: Properties, analysis and applications , 1989, Proc. IEEE.

[3]  Robert A. Kowalski,et al.  Algorithm = logic + control , 1979, CACM.

[4]  Stan Raatz Graph-Based Proof Procedures for Horn Clauses , 1990, Progress in Computer Science and Applied Logic.

[5]  Saumya K. Debray,et al.  Static inference of modes and data dependencies in logic programs , 1989, TOPL.

[6]  V. S. Subrahmanian,et al.  A Petri Net Model for Reasoning in the Presence of Inconsistency , 1991, IEEE Trans. Knowl. Data Eng..

[7]  Tadao Murata,et al.  A Predicate-Transition Net Model for Parallel Interpretation of Logic Programs , 1988, IEEE Trans. Software Eng..

[8]  John S. Conery Parallel Execution of Logic Programs , 1987 .

[9]  Jean H. Gallier,et al.  Logic Programming and Graph Rewriting , 1985, SLP.

[10]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[11]  B. Kowalski,et al.  ChemNets: Theory and Application , 1995 .

[12]  K. Ueds,et al.  Guarded horn clauses: A parallel logic programming language with the concept of a guard , 1988 .

[13]  Yuri Gurevich,et al.  Logic in Computer Science , 1993, Current Trends in Theoretical Computer Science.

[14]  Kurt Jensen,et al.  Coloured Petri Nets , 1997, Monographs in Theoretical Computer Science An EATCS Series.

[15]  T. Fukuzawa,et al.  An analysis of parallel program by utilizing high-level nets , 1991, 1991., IEEE International Sympoisum on Circuits and Systems.

[16]  I. V. Ramakrishnan,et al.  Automata-driven indexing of Prolog clauses , 1989, POPL '90.

[17]  Hartmann J. Genrich,et al.  Predicate/Transition Nets , 1986, Advances in Petri Nets.

[18]  M. H. van Emden An Interpreting Algorithm for Prolog Programs , 1984, Implementations of Prolog.

[19]  John Michael Jeffrey High-level Petri net semantics of concurrent and non-concurrent logic programs , 1993 .

[20]  Robert A. Kowalski,et al.  A Proof Procedure Using Connection Graphs , 1975, JACM.

[21]  Hisao Tamaki,et al.  OLD Resolution with Tabulation , 1986, ICLP.