NCL(ID:5483/ncl002)

Network prolog 


for Net-Clause Language

Network (as in graph, not protocol) aware Prolog

from Markov (1993)
"NCL is aimed at describing distributed computation models using term unification as a basic processing and control mechanism. NCL is embedded in standard Prolog and comprises two parts, which can communicate each to other and to standard Prolog programs through the unified representation of terms, the unification procedure and the database mechanism provided by Prolog

A net-clause is a special domain in the database defining a network of nodes and links. The nodes are represented by Prolog compound terms. The variables occurring within the nodes are global logical variables, which can be shared within the scope of the net-clause thus playing the role
of network links. The net-clause nodes define local conditions for unification of terms or execution of Prolog goals. Thus two basic mechanisms are implemented:

- Spreading activation. This is a distributed computation scheme
   similar to the connectionist spreading activation or to the marker
   passing mechanism in SN's. In the framework of logic programming it
   is seen as a restricted (without recursion) forward chaining
   computation.

- Default mechanism similar to the Reiter's default assignment to
   variables. The basic idea is to use variables to propagate terms
   without being bound to them, thus implementing the non-monotonicity
   of default reasoning."


References:
  • Markov, Zdravko Christo Dichev and Lydia Sinapova "The net-clause language—a tool for describing network models" Proceedings of the eighth biennial conference of the Canadian Society for Computational Studies of Intelligence on CSCSI-90, 1990, University of Ottawa, Ottawa, Canada view details
  • Markov, Zdravko "A Tool for Building Connectionist-like Networks Based on Term Unification" Proceedings of the International Workshop on Processing Declarative Knowledge 1991 view details
  • Markov, Zdravko "An approach to data-driven learning" Proceedings of the International Workshop on Fundamentals of Artificial Intelligence Research 1991 view details
  • Markov, Zdravko and Christo Dichev "The net-clause language—a tool for data-driven inference" Proceedings of the European workshop on Logics in AI 1991, Amsterdam, The Netherlands view details
  • Markov, Zdravko "An approach to concept learning based on term generalization" Proceedings of the Ninth International Workshop on Machine Learning 1992 , Aberdeen, Scotland, United Kingdom view details
  • Markov, Zdravko "NET-CLAUSE LANGUAGE (NCL)" Bulgarian Academy of Sciences 1993 view details Extract: Description
    Net-Clause Language (NCL)
    =========================

    NCL is aimed at describing distributed computation models using term
    unification as a basic processing and control mechanism. NCL is embedded
    in standard Prolog and comprises two parts, which can communicate each
    to other and to standard Prolog programs through the unified
    representation of terms, the unification procedure and the database
    mechanism provided by Prolog.

    Unlike most of the entries in this library, NCL is not purely a Prolog
    program. Instead, it is an augmented Prolog interpreter written in C,
    together with some Prolog library routines. So you need C in order to
    run NCL.                


    1. Net-Clauses
    --------------

    A net-clause is a special domain in the database defining a network of
    nodes and links. The nodes are represented by Prolog compound terms. The
    variables occurring within the nodes are global logical variables, which
    can be shared within the scope of the net-clause thus playing the role
    of network links. The net-clause nodes define local conditions for
    unification of terms or execution of Prolog goals. Thus two basic
    mechanisms are implemented:

    - Spreading activation. This is a distributed computation scheme
       similar to the connectionist spreading activation or to the marker
       passing mechanism in SN's. In the framework of logic programming it
       is seen as a restricted (without recursion) forward chaining
       computation.

    - Default mechanism similar to the Reiter's default assignment to
       variables. The basic idea is to use variables to propagate terms
       without being bound to them, thus implementing the non-monotonicity
       of default reasoning.


    2. Data-driven Rules (DD-rules)
    -------------------------------

    DD-rules implement a full scale forward chaining for logic programs.
    They also simulate a data-driven parallel computation, where each
    DD-rule is a process (in contrast to the traditional parallel logic
    programming, such as PARLOG for example, where each goal is a process).


    NCL/Prolog Interpreter
    ======================

    NCL/Prolog interpreter is supplied in C-code for UNIX along with a
    reference manual and a set of annotated examples.

    The rest example programs each contain detailed comments, and are as
    follows:

    NLP     - Natural language parsing and semantic analysis
    DEFAULT - NL parsing by using NCL default mechanism
    GRAMMAR - Grammar rules by DD-rules
    MP      - Marker passing in semantic nets
    CIRCUIT - Model-based diagnosis of a binary adder
    QUEENS  - 4-queens problem as a network of communicating agents
    FIG     - Recognition of geometric figures
    XOR     - Connectionist-like implementation of XOR
    PIXEL   - Connectionist-like feature detection in a binary image
    FLATTEN - Stream AND-parallelism in DD-rules
    DDIL    - Data-driven inductive learning in a network of relations
    FAMILY  - Set of training examples for DDIL

  • Zdravko Markov Manual for NCL U of Georgia 1995 view details Abstract: NCL (Net-Clause Language) is aimed at describing distributed computation models using term unification as a basic processing and control mechanism. It is embedded in standard Prolog and comprises two parts -- net-clauses and data-driven rules, which can communicate each to other and to standard Prolog programs.  A net-clause is a special domain in the database defining a network of nodes and links. The nodes are represented by Prolog compound terms. The variables occurring within the nodes are global logical variables, which can be shared within the scope of the net-clause thus playing the role of network links.  Two control mechanisms are implemented: a spreading activation scheme similar to the connectionist spreading activation and to the marker passing mechanism in SN (in logic programming it is seen as a restricted forward chaining) and a default mechanism based on using variables to propagate terms without being bound to them, thus implementing the non-monotonicity of default reasoning.  The Data-driven Rules implement a full scale forward chaining for Horn clauses.  They simulate a data-driven parallel computation, where each rule is a process (in contrast to the traditional parallel logic programming where each goal is a process).
    Resources