NCL(ID:5483/ncl002)Network prologfor 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: 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 Resources
|