Gerda JanssensKU Leuven | ku leuven · Department of Computer Science
Gerda Janssens
About
135
Publications
18,930
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
2,037
Citations
Publications
Publications (135)
This paper analyses the graph mining problem, and the frequent pattern mining task associated with it. In general, frequent pattern mining looks for a graph which occurs frequently within a network or, in the transactional setting, within a dataset of graphs. We discuss this task in the transactional setting, which is a problem of interest in many...
In this paper we introduce the Functional Modelling System (FMS). The system introduces the Functional Modelling Language (FML), which is a modelling language for NP-complete search problems based on concepts of functional programming. Internally, we translate FML specifications to an Answer Set Program to obtain models. We give a general overview...
In this paper we introduce the Functional Modelling System (FMS). The system introduces the Functional Modelling Language (FML), which is a modelling language for NP-complete search problems based on concepts of functional programming. Internally, we translate FML specifications to an Answer Set Program to obtain models. We give a general overview...
The main purpose of this report is to provide a detailed description of the scheduler used by PPCG. In order to provide some context, the report starts with an overview of PPCG and a summary of how it performs dependence analysis, including a description of the interface to the isl dependence analysis engine and the way this interface is used by PP...
PC(ID) extends propositional logic with inductive definitions: rule sets under the well-founded semantics. Recently, a notion of relevance was introduced for this language. This notion determines the set of undecided literals that can still influence the satisfiability of a PC(ID) formula in a given partial assignment. The idea is that the PC(ID) s...
Expressive KR languages are built by integrating different language constructs, or extending a language with new language constructs. This process is difficult if non-truth-functional or non-monotonic constructs are involved. What is needed is a compositional principle. This paper presents a compositional principle for defining logics by modular co...
Many problems, especially those with a composite structure, can naturally be expressed in higher order logic. From a KR perspective modeling these problems in an intuitive way is a challenging task. In this paper we study the graph mining problem as an example of a higher order problem. In short, this problem asks us to find a graph that frequently...
Declarative systems aim at solving tasks by running inference engines on a specification, to free their users from having to specify how a task should be tackled. In order to provide such functionality, declarative systems themselves apply complex reasoning techniques, and, as a consequence, the development of such systems can be laborious work. In...
Inductive definitions and justifications are well-studied concepts. Solvers that support inductive definitions have been developed, but several of their computationally nice properties have never been exploited to improve these solvers. In this paper, we present a new notion called relevance. We determine a class of literals that are relevant for a...
The knowledge base paradigm aims to express domain knowledge in a rich formal language, and to use this domain knowledge as a knowledge base to solve various problems and tasks that arise in the domain by applying multiple forms of inference. As such, the paradigm applies a strict separation of concerns between information and problem solving. In t...
The knowledge base paradigm aims to express domain knowledge in a rich formal language, and to use this domain knowledge as a knowledge base to solve various problems and tasks that arise in the domain by applying multiple forms of inference. As such, the paradigm applies a strict separation of concerns between information and problem solving. In t...
The knowledge base paradigm aims to express domain knowledge in a rich formal language, and to use this domain knowledge as a knowledge base to solve various problems and tasks that arise in the domain by applying multiple forms of inference. As such, the paradigm applies a strict separation of concerns between information and problem solving. In t...
Probabilistic logic languages, such as ProbLog and CP-logic, are probabilistic generalizations of logic programming that allow one to model probability distributions over complex, structured domains. Their key probabilistic constructs are probabilistic facts and annotated disjunctions to represent binary and mutli-valued random variables, respectiv...
IDP is a knowledge base system based on first order logic. It is finding its
way to a larger public but is still facing practical challenges. Adoption of
new languages requires a newcomer-friendly way for users to interact with it.
Both an online presence to try to convince potential users to download the
system and offline availability to develop...
Knowledge compilation converts Boolean formulae for which some inference tasks are computationally expensive into a representation where the same tasks are tractable. ProbLog is a state-of-the-art Probabilistic Logic Programming system that uses knowledge compilation to reduce the expensive probabilistic inference to an efficient weighted model cou...
There is a growing need for abstractions in logic specification languages
such as FO(.) and ASP. One technique to achieve these abstractions are
templates (sometimes called macros). While the semantics of templates are
virtually always described through a syntactical rewriting scheme, we present
an alternative view on templates as second order defi...
In order to handle real-world problems, state-of-the-art probabilistic logic and learning frameworks, such as ProbLog, reduce the expensive inference to an efficient Weighted Model Counting. To do so ProbLog employs a sequence of transformation steps, called an inference pipeline. Each step in the probabilistic inference pipeline is called a pipeli...
ProbLog [7, 10] is a general purpose Probabilistic Logic Programming (PLP) language. It extends Prolog with uncertain knowledge encoded as probabilistic facts. A probabilistic fact, p: f states that the fact f is true with probability p.
Many state-of-the-art declarative systems use a ground-and-solve approach, where the problem statement, expressed in a high-level language, is first grounded into a low-level representation. Next, a solver is used to search a solution for the low-level representation. In order to prevent a combinatorial blowup of the grounding, many intelligent tec...
FO(·)
IDP3
extends first-order logic with inductive definitions, partial functions, types and aggregates. Its model generator IDP3 first grounds the theory and then uses search to find the models. The grounder uses Lifted Unit Propagation (LUP) to reduce the size of the groundings of problem specifications in IDP3. LUP is in general very effective,...
Probabilistic logic programs are logic programs in which some of the facts
are annotated with probabilities. This paper investigates how classical
inference and learning tasks known from the graphical model community can be
tackled for probabilistic logic programs. Several such tasks such as computing
the marginals given evidence and learning from...
Designers often apply manual or semi-automatic loop and data
transformations on array and loop intensive programs to improve
performance.
It is crucial that such transformations preserve the
functionality of the program.
This paper presents an automatic
method for constructing equivalence proofs for the class of static affine
programs. The equivale...
Vehicle-to-vehicle and vehicle-to-infrastructure communication systems enable vehicles to share information captured by their local sensors with other interested vehicles. To ensure that this information is delivered at the right time and location, context-aware routing is vital for intelligent inter-vehicular communication. Traditional network add...
Region-based memory management (RBMM) is a form of compile time memory
management, well-known from the functional programming world. In this paper we
describe our work on implementing RBMM for the logic programming language
Mercury. One interesting point about Mercury is that it is designed with strong
type, mode, and determinism systems. These sys...
When doing inference in ProbLog, a probabilistic extension of Prolog, we
extend SLD resolution with some additional bookkeeping. This additional
information is used to compute the probabilistic results for a probabilistic
query. In Prolog's SLD, goals are nested very naturally. In ProbLog's SLD,
nesting probabilistic queries interferes with the pro...
Inductive logic programming, or relational learning, is a powerful paradigm
for machine learning or data mining. However, in order for ILP to become
practically useful, the efficiency of ILP systems must improve substantially.
To this end, the notion of a query pack is introduced: it structures sets of
similar queries. Furthermore, a mechanism is d...
Fadip is a Publish/Subscribe system for Mobile Ad hoc Networks which uses probabilistic routing of messages to deal with the volatile
nature of the network. It uses controlled propagation of publications and subscriptions, with the fading gossip technique
to reduce the number of broadcasts. We present a probabilistic logic program in ProbLog that m...
Timetabling is the task of assigning sets of events to periods of time, taking into account resource-constraints and preferences among assignments. It is a well-studied field of research and is generally recog-nized to be a hard problem, both from the perspective of encoding it as from a computational point of view. In recent years, there has been...
Deriving knowledge from real-world systems is a complex task, targeted by many scientific fields. Such systems can be viewed as collections of highly detailed data elements and interactions between them. The more details the data include the more accurate the system representation is but the higher the computational requirements become. Using abstr...
In order to compute the probability of a query, ProbLog represents the proofs of the query as disjunctions of conjunctions, for which a Reduced Ordered Binary Decision Diagram (ROBDD) is computed. The paper identifies patterns of Boolean variables that occur in Boolean formulae, namely AND-clusters and OR-clusters. Our method compresses the variabl...
Inference in probabilistic logic languages such as ProbLog, an extension of Prolog with probabilistic facts, is often based on a reduction to a propositional formula in DNF. Calculating the probability of such a formula involves the disjoint-sum-problem, which is computationally hard. In this work we introduce a new approximation method for ProbLog...
Inference in many probabilistic logic systems is based on representing the proofs of a query as a DNF Boolean formula. Assessing
the probability of such a formula is known as a #P-hard task. In practice, a large DNF is given to a BDD software package
to construct the corresponding BDD. The DNF has to be transformed into the input format of the pac...
We introduce First Order ProbLog, an extension of first order logic with soft constraints where formulas are guarded by probabilistic facts. The paper defines a semantics for FOProbLog, develops a translation into ProbLog, a system that allows a user to compute the probability of a query in a similar setting restricted to Horn clauses, and reports...
ProbLog is a probabilistic framework that extends Prolog with probabilistic facts. To compute the probability of a query, the complete SLD proof tree of the query is collected as a sum of products. ProbLog applies advanced techniques to make this feasible and to assess the correct probability. Tabling is a well-known technique to avoid repeated sub...
The application of loop and data transformations to array and loop intensive programs is crucial to obtain a good performance.
Designers often apply these transformations manually or semi-automatically. For the class of static affine programs, automatic
methods exist for proving the correctness of these transformations. Realistic multimedia systems...
Dividing the heap memory of programs into regions is the starting point of region-based memory management. In our existing work of enabling region-based memory management for Mercury, a pro- gram analysis was used to distribute data over the regions. An im- portant goal of the analysis is to decide which program variables should end up in the same...
ProbLog is a probabilistic framework that extends Prolog with probabilistic facts. Inference in ProbLog is based on calculations over the SLD proof tree of a query. Tabling is a well known technique to avoid re-computation. We investigate how the idea of tabling can be used in ProbLog: the challenge is that we are not just interested in the answers...
Designers often apply manual or semi-automatic loop and data transformations on array and loop intensive programs to improve performance. The transformations should preserve the functionality, however, and this paper presents an automatic method for constructing equivalence proofs for the class of static affine programs. The equivalence checking is...
Dividing the heap memory of programs into regions is the starting point of region-based memory management. In our existing work of enabling region-based memory management for Mercury, a program analysis was used to distribute data over the regions. An important goal of the analysis is to decide which program variables should end up in the same regi...
Region-based memory management is a technique to do compile- time memory management based on the idea of dividing the heap memory into different regions such that, at runtime, memory can be reclaimed automatically by destroying regions in their entirety. This report contains a static region analysis for the logic programming language Mercury. We de...
Applying region-based memory management (RBMM) to logic programming languages poses a special challenge: backtracking can require regions removed during forward execution to be ªres- urrectedº, and any memory allocated during a computation that has been backtracked over must be recovered promptly, without waiting for the regions involved to come to...
This paper reports on our work towards the development of a probabilistic logic programming environment intended as a target language in which other proba-bilistic languages can be compiled, thereby contributing to the digestion of the "alphabet soup".
Development of energy and performance-efficient embedded software is increasingly relying on application of complex transformations on the critical parts of the source code. Designers applying such nontrivial source code transformations are often faced with the problem of ensuring functional equivalence of the original and transformed programs. Cur...
Region-based memory management is a form of compile- time memory management, well-known from the functional program- ming world. This paper describes a static region analysis for the logic programming language Mercury. We use region points-to graphs to model the partitioning of the memory used by a program into separate regions. The algorithm start...
This paper presents a novel method to construct a dynamic single assignment (DSA) form of array intensive, pointer free C programs. A program in DSA form does not perform any destructive update of scalars and array elements; that is, each element is written at most once. As DSA makes the dependencies between variable references explicit, it facilit...
Because query execution is the most crucial part of Inductive Logic Programming (ILP) algorithms, a lot of effort is invested in developing faster execution mechanisms. These execution mechanisms typically have a low-level implementation, making them hard to debug. Moreover, other factors such as the complexity of the problems handled by ILP algori...
Region-based memory management is an interesting compile- time memory management technique. Implementing region-based memory management for a language is twofold, rstly developing a static region analysis that annotates programs with region instruc- tions and secondly providing a region-aware runtime system that can run the region-annotated program...
Region-based memory management is a form of compile- time memory management, well-known from the functional programming world. This paper describes region-based memory management for the Mercury language using some points-to graphs that model the partition of the memory used by a program into separate regions and distribute the values of the progra...
Abstract interpretation is a widely applied method for doing static analysis of logic programs. A diversity of formalisms and applications have appeared in the literature. This paper describes at a rather informal level our formalism based on AND-OR-graphs and compares it with the approach based on denotational semantics.
Control flow compilation is a hybrid between classical WAM compilation and meta-call, limited to the compilation of non-recursive clause bodies. This approach is used successfully for the execution of dynamically generated queries in an inductive logic programming setting (ILP). Control flow compilation reduces compilation times up to an order of m...
When indicating interesting points on a map, one often gets high concentra-
tions of points in certain regions of the map (typically around big cities). If
an application provides such a map to a user, it should bear in mind that it
is hard for a person to select exactly one point in such a concentrated zone.
Therefore, these busy zones are typ...
This paper presents a novel method to construct a dynamic single assignment (DSA) form of array-intensive, pointer-free C programs (or in any other procedural language). A program in DSA form does not perform any destructive update of scalars and array elements, i.e., each element is written at most once. As DSA makes the dependencies be- tween var...
We present a trace based approach for analyzing the runs of Inductive Logic Programming Data Mining systems, without needing to modify the actual implementation of the ILP mining algorithms. We discuss the use of traces as the basis for easy and fast, semi-automated debugging of the underlying (query) execution engine of the ILP system. Our approac...
Typically, a combination of manual and automated trans- formations is applied when algorithms for digital signal processing are adapted for energy and performance-efficient embedded systems. This poses severe verification problems. Verification becomes easier after con- verting the code into dynamic single-assignment form (DSA). This paper describe...
Development of energy and performance-efficient embedded software is increasingly relying on application of complex transformations on the critical parts of the source code. Designers applying such nontrivial source code transformations are often faced with the problem of ensuring functional equivalence of the original and transformed programs. Cur...
We have recently developed a method for verification of source code transformations applied on array-intensive programs typically found in signal processing and high performance computing applications. The method is based on checking the equivalence of the original and the transformed programs belonging to a decidable class that is still of practic...
Learning algorithms such as decision tree learners dynam- ically generate a huge amount of large queries. Because these queries are executed often, the trade-o between meta-calling and compiling & running them has been in favor of the latter, as compiled code is faster. This paper presents a technique named control ow compilation, which improves th...
Decision tree learning algorithms dynamically generate huge queries. Because these queries are executed often, the trade-o# between meta-calling and compiling & running them has been in favor of the latter, as compiled code is faster. However, compilation is expensive, and experiments show that sometimes meta-call can outperform compile & run. In t...
A recent method that uses geometric modelling is able to check the functional equivalence of initial and transformed programs under global source code transformations. However, the method makes strong assumptions about the programming constructs and about the kind of transformations that have been applied. This work investigates to what extent mult...
Although Barvinok's algorithm for counting lattice points in a rational polytope easily extends to linearly parametrized polytopes, it is not immediately obvious whether the same applies to Barvinok and Woods' algorithm for counting the number of points in the integer projection of a polytope. We therefore propose a heuristics based technique that...
An open ended list is a well known data structure in Prolog programs. It is frequently used to represent a value changing over time, while this value is referred to from several places in the data structure of the application. A weak point in this technique is that the time complexity is linear in the number of updates to the value represented by t...
In this paper, we present a fully automatic technique to verify an important class of optimizing program transformations applied to reduce accesses to the data memory. These are prevalent while developing software for power and performance-efficient embedded multimedia systems. The verification of the transformations relies on an automatic proof of...
The World Wide Web (Web) is a popular medium to disseminate information today. If we de ne accessibility of information as the ease with which the information can be obtained, then the accessibility of information on the Web leaves much to be desired. Thus, many opportunities exist to improve the current search tools on the Web. Data mining and web...
Relatively simple transformations can speed up the execution of queries for data mining considerably.
A#ne loop transformations have often been used for program optimization. Usually their focus lies on single loop nests. A few recent approaches also handle global programs with multiple loop nests but they are not really scalable towards realistic applications with dozens of nests. To reduce complexity, we split a#ne transformations into a linear t...
The focus of this paper is on a data flow-transformation called advanced copy propagation. After an array is assigned, we can, under certain conditions, replace a read from this array by the right hand side of the assignment. If so, the intermediate assignment can be skipped. In case it becomes dead code, it can be eliminated. Where necessary we di...
Affine loop transformations have often been used for program optimization. Usually their focus lies on single loop nests. A few recent approaches also handle global programs with multiple loop nests but they are not really scalable towards realistic applications with dozens of nests. To reduce complexity, we split affine transformations into a line...
An open ended list is a well known data structure in Prolog programs. It is frequently used to represent a value changing over time, while this value is referred to from several places in the data structure of the application. A weak point in this technique is that the time complexity is linear in the number of updates to the value represented by t...
ge society. Since then, this statement has not lost a single grain of relevance. Any major software package still comes with an explicit claim that its producer and/or vendor are not to be held responsible for any problems, losses or catastrophes the customer might incur through the use of their product. Clearly, such a situation would be completel...
Relatively simple transformations can speed up the execution of queries for data mining considerably. While some ILP systems use such transformations, relatively little is known about them or how they relate to each other. This paper describes a number of such transformations. Not all of them are novel, but there have been no studies comparing thei...
Ane loop transformations have often been used for program optimization. Usually their focus lies on single loop nests. A few recent approaches also handle global programs with multiple loop nests but they are not really scalable towards realistic applications with dozens of nests. To reduce complexity, we split ane transformations into a linear tra...
In this report we present two new ways to transform a program to dynamic single assignment form or DSA form. The importance of DSA form is that all restrictions on reordering statements due to memory reuse have been eleminated, thus allowing advanced memory optimizations required for multimedia applications to do a better job without a need to reve...
In Inductive Logic Programming (ILP), several techniques have been introduced to improve the efficiency of query execution. One such technique is query pack execution. A set of queries with a common prefix, as it is generated by the refinement operator of a typical ILP system, can be executed faster after it is converted into a tree structure calle...
This paper is organized as follows. In Section 2 we briefly review the once-transformation and querypack execution, and describe the intuition behind adpacks. In Section 3, we illustrate this intuition with asmall example. Section 4 gives the formal definition of an adpack. Section 5 describes how an adpack canbe constructed based on a set of once-...