6,576 research outputs found
Logic Programming Applications: What Are the Abstractions and Implementations?
This article presents an overview of applications of logic programming,
classifying them based on the abstractions and implementations of logic
languages that support the applications. The three key abstractions are join,
recursion, and constraint. Their essential implementations are for-loops, fixed
points, and backtracking, respectively. The corresponding kinds of applications
are database queries, inductive analysis, and combinatorial search,
respectively. We also discuss language extensions and programming paradigms,
summarize example application problems by application areas, and touch on
example systems that support variants of the abstractions with different
implementations
Learning programs by learning from failures
We describe an inductive logic programming (ILP) approach called learning
from failures. In this approach, an ILP system (the learner) decomposes the
learning problem into three separate stages: generate, test, and constrain. In
the generate stage, the learner generates a hypothesis (a logic program) that
satisfies a set of hypothesis constraints (constraints on the syntactic form of
hypotheses). In the test stage, the learner tests the hypothesis against
training examples. A hypothesis fails when it does not entail all the positive
examples or entails a negative example. If a hypothesis fails, then, in the
constrain stage, the learner learns constraints from the failed hypothesis to
prune the hypothesis space, i.e. to constrain subsequent hypothesis generation.
For instance, if a hypothesis is too general (entails a negative example), the
constraints prune generalisations of the hypothesis. If a hypothesis is too
specific (does not entail all the positive examples), the constraints prune
specialisations of the hypothesis. This loop repeats until either (i) the
learner finds a hypothesis that entails all the positive and none of the
negative examples, or (ii) there are no more hypotheses to test. We introduce
Popper, an ILP system that implements this approach by combining answer set
programming and Prolog. Popper supports infinite problem domains, reasoning
about lists and numbers, learning textually minimal programs, and learning
recursive programs. Our experimental results on three domains (toy game
problems, robot strategies, and list transformations) show that (i) constraints
drastically improve learning performance, and (ii) Popper can outperform
existing ILP systems, both in terms of predictive accuracies and learning
times.Comment: Accepted for the machine learning journa
Inductive Logic Programming in Databases: from Datalog to DL+log
In this paper we address an issue that has been brought to the attention of
the database community with the advent of the Semantic Web, i.e. the issue of
how ontologies (and semantics conveyed by them) can help solving typical
database problems, through a better understanding of KR aspects related to
databases. In particular, we investigate this issue from the ILP perspective by
considering two database problems, (i) the definition of views and (ii) the
definition of constraints, for a database whose schema is represented also by
means of an ontology. Both can be reformulated as ILP problems and can benefit
from the expressive and deductive power of the KR framework DL+log. We
illustrate the application scenarios by means of examples. Keywords: Inductive
Logic Programming, Relational Databases, Ontologies, Description Logics, Hybrid
Knowledge Representation and Reasoning Systems. Note: To appear in Theory and
Practice of Logic Programming (TPLP).Comment: 30 pages, 3 figures, 2 tables
Sketched Answer Set Programming
Answer Set Programming (ASP) is a powerful modeling formalism for
combinatorial problems. However, writing ASP models is not trivial. We propose
a novel method, called Sketched Answer Set Programming (SkASP), aiming at
supporting the user in resolving this issue. The user writes an ASP program
while marking uncertain parts open with question marks. In addition, the user
provides a number of positive and negative examples of the desired program
behaviour. The sketched model is rewritten into another ASP program, which is
solved by traditional methods. As a result, the user obtains a functional and
reusable ASP program modelling her problem. We evaluate our approach on 21 well
known puzzles and combinatorial problems inspired by Karp's 21 NP-complete
problems and demonstrate a use-case for a database application based on ASP.Comment: 15 pages, 11 figures; to appear in ICTAI 201
Contributions to artificial intelligence: the IIIA perspective
La intel·ligència artificial (IA) és un camp científic i tecnològic relativament nou dedicat a l'estudi de la intel·ligència mitjançant l'ús d'ordinadors com a eines per produir comportament intel·ligent. Inicialment, l'objectiu era essencialment científic: assolir una millor comprensió de la intel·ligència humana. Aquest objectiu ha estat, i encara és, el dels investigadors en ciència cognitiva. Dissortadament, aquest fascinant però ambiciós objectiu és encara molt lluny de ser assolit i ni tan sols podem dir que ens hi haguem acostat significativament. Afortunadament, però, la IA també persegueix un objectiu més aplicat: construir sistemes que ens resultin útils encara que la intel·ligència artificial de què estiguin dotats no tingui res a veure amb la intel·ligència humana i, per tant, aquests sistemes no ens proporcionarien necessàriament informació útil sobre la naturalesa de la intel·ligència humana. Aquest objectiu, que s'emmarca més aviat dins de l'àmbit de l'enginyeria, és actualment el que predomina entre els investigadors en IA i ja ha donat resultats impresionants, tan teòrics com aplicats, en moltíssims dominis d'aplicació. A més, avui dia, els productes i les aplicacions al voltant de la IA representen un mercat anual de desenes de milers de milions de dòlars. Aquest article resumeix les principals contribucions a la IA fetes pels investigadors de l'Institut d'Investigació en Intel·ligència Artificial del Consell Superior d'Investigacions Científiques durant els darrers cinc anys.Artificial intelligence is a relatively new scientific and technological field which studies the nature of intelligence by using computers to produce intelligent behaviour. Initially, the main goal was a purely scientific one, understanding human intelligence, and this remains the aim of cognitive scientists. Unfortunately, such an ambitious and fascinating goal is not only far from being achieved but has yet to be satisfactorily approached. Fortunately, however, artificial intelligence also has an engineering goal: building systems that are useful to people even if the intelligence of such systems has no relation whatsoever with human intelligence, and therefore being able to build them does not necessarily provide any insight into the nature of human intelligence. This engineering goal has become the predominant one among artificial intelligence researchers and has produced impressive results, ranging from knowledge-based systems to autonomous robots, that have been applied to many different domains. Furthermore, artificial intelligence products and services today represent an annual market of tens of billions of dollars worldwide. This article summarizes the main contributions to the field of artificial intelligence made at the IIIA-CSIC (Artificial Intelligence Research Institute of the Spanish Scientific Research Council) over the last five years
Inductive logic programming at 30
Inductive logic programming (ILP) is a form of logic-based machine learning.
The goal of ILP is to induce a hypothesis (a logic program) that generalises
given training examples and background knowledge. As ILP turns 30, we survey
recent work in the field. In this survey, we focus on (i) new meta-level search
methods, (ii) techniques for learning recursive programs that generalise from
few examples, (iii) new approaches for predicate invention, and (iv) the use of
different technologies, notably answer set programming and neural networks. We
conclude by discussing some of the current limitations of ILP and discuss
directions for future research.Comment: Extension of IJCAI20 survey paper. arXiv admin note: substantial text
overlap with arXiv:2002.11002, arXiv:2008.0791
A Multi-Engine Approach to Answer Set Programming
Answer Set Programming (ASP) is a truly-declarative programming paradigm
proposed in the area of non-monotonic reasoning and logic programming, that has
been recently employed in many applications. The development of efficient ASP
systems is, thus, crucial. Having in mind the task of improving the solving
methods for ASP, there are two usual ways to reach this goal: extending
state-of-the-art techniques and ASP solvers, or designing a new ASP
solver from scratch. An alternative to these trends is to build on top of
state-of-the-art solvers, and to apply machine learning techniques for choosing
automatically the "best" available solver on a per-instance basis.
In this paper we pursue this latter direction. We first define a set of
cheap-to-compute syntactic features that characterize several aspects of ASP
programs. Then, we apply classification methods that, given the features of the
instances in a {\sl training} set and the solvers' performance on these
instances, inductively learn algorithm selection strategies to be applied to a
{\sl test} set. We report the results of a number of experiments considering
solvers and different training and test sets of instances taken from the ones
submitted to the "System Track" of the 3rd ASP Competition. Our analysis shows
that, by applying machine learning techniques to ASP solving, it is possible to
obtain very robust performance: our approach can solve more instances compared
with any solver that entered the 3rd ASP Competition. (To appear in Theory and
Practice of Logic Programming (TPLP).)Comment: 26 pages, 8 figure
- …