2734655
Negation in Disjunctive Logic Programs
In this paper, we study inferring negation from disjunctive logic programs. First, we consider extensions of the GCWA and the WGCWA for general disjunctive programs based upon the stable model semantics. We de ne new rules, the GCWA : and the WGCWA : , which are natural extensions of the GCWA and the WGCWA. Second, we introduce a new semantics called the possible world semantics for general disjunctive programs, which was initially introduced in [Sak89] for positive disjunctive programs. The possible world assumption (PWA) infers negation under the possible world semantics, which lies between the GCWA and the WGCWA in positive disjunctive programs. The PWA is also extended to the PWA : for general disjunctive programs. Then it is shown that the PWA : provides a powerful and the most careful negative inference compared with the GCWA : and the WGCWA : . We also present a bottom-up model generation proof procedure to compute each negation in general disjunctive programs.
11399248
Linear Resolution for Consequence Finding
Abstract In this paper, we re-evaluate the consequence finding problem within first-order logic. Firstly, consequence finding is generalized to the problem in which only interesting clauses having a certain property (called characteristic clauses) should be found. The use of characteristic clauses enables characterization of various reasoning problems of interest to AI, including abduction, nonmonotonic reasoning, prime implicates and truth maintenance systems. Secondly, an extension of the Model Elimination theorem proving procedure (SOL-resolution) is presented, providing an effective mechanism complete for finding the characteristic clauses. An important feature of SOL-resolution is that it constructs such a subset of consequences directly without testing each generated clause for the required property. We also discuss efficient but incomplete variations of SOL-resolution and their properties, which address finding the most specific and the least specific abductive explanations.
14278996
Embedding Circumscriptive Theories in General Disjunctive Programs
This paper presents a method of embedding circumscriptive theories in general disjunctive programs. In a general disjunctive program, negation as failure occurs not only in the body but in the head of a rule. In this setting, minimized predicates of a circumscriptive theory are specified using the negation in the body, while fixed and varying predicates are expressed by the negation in the head. Moreover, the translation implies a close relationship between circumscription and abductive logic programming. That is, fixed and varying predicates in a circumscriptive theory are also viewed as abducible predicates in an abductive disjunctive program. Our method of translating circumscription into logic programming is fairly general compared with the existing approaches and exploits new applications of logic programming for representing commonsense knowledge.
18018809
Consequence-Finding Based on Ordered Linear Resolution
Since linear resolution with clause ordering is incomplete for consequence-finding, it has been used mainly for proof-finding. In this paper, we re-evaluate consequence-finding. Firstly, consequence-finding is generalized to the problem in which only interesting clauses having a certain property (called characteristic clauses) should be found. Then, we show how adding a skip rule to ordered linear resolution makes it complete for consequence-finding in this general sense. Compared with set-of-support resolution, the proposed method generates fewer clauses to find such a subset of consequences. In the propositional case, this is an elegant tool for computing the prime implicants/implicates. The importance of the results lies in their applicability to a wide class of AI problems including procedures for nonmonotonic and abductive reasoning and truth maintenance systems.
1816077
Representing Priorities in Logic Programs
Reasoning with priorities is a central topic in knowledge representation. A number of techniques for prioritized reasoning have been developed in the eld of AI, but existing logic programming lacks the mechanism of explicit representation of priorities in a program. In this paper, we introduce a framework for representing priorities in logic programming. Prioritized logic programming represents preference knowledge more naturally than stratied programs, and is used to reduce non-determinism in logic programming. Moreover, it can realize various forms of commonsense reasoning such as abduction, default reasoning, and prioritized circumscription. The proposed framework increases the expressive power of logic programming and exploits new applications in knowledge representation.
46716843
Induction, Abduction, and Consequence-Finding
This paper shows a sound and complete method for inverse entailment in inductive logic programming. We show that inverse entailment can be computed with a resolution method for consequence-finding. In comparison with previous work, induction via consequence-finding is sound and complete for finding hypotheses from full clausal theories, and can be used for inducing not only definite clauses but also non-Horn clauses and integrity constraints. We also compare induction and abduction from the viewpoint of consequence-finding, and clarify the relationship and difference between the two.
6398416
Analysis of the Linux Kernel Evolution Using Code Clone Coverage
Most studies of the evolution of software systems are based on the comparison of simple software metrics. In this paper, we present our preliminary investigation of the evolution of the Linux kernel using code-clone analysis and the code-clone coverage metrics. We examined 136 versions of the stable Linux kernel using a distributed extension of the code clone detection tool CCFinder. The result is shown as a heat map.
10199005
Ranking significance of software components based on use relations
Collections of already developed programs are important resources for efficient development of reliable software systems. In this paper, we propose a novel graph-representation model of a software component library (repository), called component rank model. This is based on analyzing actual usage relations of the components and propagating the significance through the usage relations. Using the component rank model, we have developed a Java class retrieval system named SPARS-J and applied SPARS-J to various collections of Java files. The result shows that SPARS-J gives a higher rank to components that are used more frequently. As a result, software engineers looking for a component have a better chance of finding it quickly. SPARS-J has been used by two companies, and has produced promising results.
17693551
Analysis of functional programs to detect run-time garbage cells
We propose a method for detecting the generation of garbage cells by analyzing a source text written in a functional programming language which uses ordinary linked lists to implement list-type values. For a subexpression such as <italic>F</italic>(<italic>G</italic>( . . . )) in a program where the function values of <italic>F</italic> and <italic>G</italic> are of list type, if a cell <italic>c</italic> is created during the computation of <italic>G</italic> and if <italic>c</italic> does not appear in a list-type value of <italic>F</italic>, then <italic>c</italic> becomes a garbage cell at the end of the computation of <italic>F</italic>. We discuss this problem on the basis of formal languages derived from the functional program text and show some sufficient conditions that predict the generation of garbage cells. Also, we give an efficient algorithm to detect at compile time the generation of garbage cells which are linearly linked. We have implemented these algorithms in an experimental LISP system. By executing several sample programs on the system, we conclude that our method is effective in detecting the generation of garbage cells.
10307213
Very-Large Scale Code Clone Analysis and Visualization of Open Source Programs Using Distributed CCFinder: D-CCFinder
The increasing performance-price ratio of computer hardware makes possible to explore a distributed approach at code clone analysis. This paper presents D-CCFinder, a distributed approach at large-scale code clone analysis. D-CCFinder has been implemented with 80 PC workstations in our student laboratory, and a vast collection of open source software with about 400 million lines in total has been analyzed with it in about 2 days. The result has been visualized as a scatter plot, which showed the presence of frequently used code as easy recognizable patterns. Also, D-CCFinder has been used to analyze a single software system against the whole collection in order to explore the presence of code imported from open source software.