Top Banner
The FO(·) Knowledge Base System project An integration project Marc Denecker Knowledge Representation & Reasoning (KRR) Katholieke Universiteit Leuven September 11, 2012 1 / 104
103

The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

May 28, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

The FO(·) Knowledge Base System projectAn integration project

Marc DeneckerKnowledge Representation & Reasoning (KRR)

Katholieke Universiteit Leuven

September 11, 2012

1 / 104

Page 2: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Introduction: the FO(·) KBS project

FO(·)

Inference of the KBS: progress report

Conclusions

2 / 104

Page 3: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Introduction: the FO(·) KBS project

FO(·)

Inference of the KBS: progress report

Conclusions

3 / 104

Page 4: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

The fundamental KRR research question

I Humans experts possess (declarative) knowledge.I They use it

I to accomplish tasksI to solve problemsI or to build programs that do this for us

(computer science)

I How does this work?

I Inherently a KRR research question.I (KRR: Knowledge Representation and Reasoning)

I If we ever want to be able to build software systems in aprincipled way, we will NEED to understand this.

I This places KRR at the foundations of computer science.

4 / 104

Page 5: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

The fundamental KRR research question

I Humans experts possess (declarative) knowledge.I They use it

I to accomplish tasksI to solve problemsI or to build programs that do this for us

(computer science)

I How does this work?

I Inherently a KRR research question.I (KRR: Knowledge Representation and Reasoning)

I If we ever want to be able to build software systems in aprincipled way, we will NEED to understand this.

I This places KRR at the foundations of computer science.

5 / 104

Page 6: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

State of the art

I About every area in Computational logic is involved in aspectsof this question.

I Scientific understanding is partial and scattered over the manyfields of computational logic and declarative problem solving.

I No systematic scientific theory or research program, not evenin the field of KRR.

I We understand little of this.

6 / 104

Page 7: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

State of the art

I About every area in Computational logic is involved in aspectsof this question.

I Scientific understanding is partial and scattered over the manyfields of computational logic and declarative problem solving.

I No systematic scientific theory or research program, not evenin the field of KRR.

I We understand little of this.

7 / 104

Page 8: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

State of the art

I Computational declarative logic paradigms:I Deductive logic (classical first order logic (FO))I Deductive Databases (SQL, Datalog)I Logic ProgrammingI Abductive Logic ProgrammingI Answer set ProgrammingI Constraint Programming languages, e.g., Zinc, CometI Languages for specification of dynamic systems: Z, BI Temporal logicsI Planning languagesI Description logicsI . . .

8 / 104

Page 9: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

State of the art

So many languages, so many overlaps

I ∞ syntactical styles and language constructsI An excessive importance attached to syntactic sugar

I Typical for poor understanding?

I Different terminologies and conceptuologies hide overlaps

I When we peek through the surface, strong overlaps areapparent.

I E.g., SQL versus FO queriesI E.g., Zinc versus FOI E.g., ASP versus FO(ID) — See ICLP talk “A Tarskian . . . “

9 / 104

Page 10: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

State of the art

So many languages, so many overlaps

I ∞ syntactical styles and language constructsI An excessive importance attached to syntactic sugar

I Typical for poor understanding?

I Different terminologies and conceptuologies hide overlaps

I When we peek through the surface, strong overlaps areapparent.

I E.g., SQL versus FO queriesI E.g., Zinc versus FOI E.g., ASP versus FO(ID) — See ICLP talk “A Tarskian . . . “

10 / 104

Page 11: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

State of the art

One issue that fragments computational logic more than anythingelse:

the reasoning task

11 / 104

Page 12: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

State of the art

I For every type of reasoning task, a new logic (or more thanone):

I Classical logic:deduction

I Deductive Databases (SQL, Datalog):query answering & other database operations

I Answer set Programming (ASP):answer set computation

I Abductive Logic Programming:abduction

I Constraint Programming (CP):constraint solving

I Description logics:subsumption ⊆ deduction

I . . .

12 / 104

Page 13: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Was declarative knowledge not supposed to be independent of theproblem (and hence, of a specific form of inference) ????

13 / 104

Page 14: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

State of the art

Despite (or just because of?) the many declarative paradigms,there are also remarkable gaps in our understanding of inference.

If we have the specification of the relevant domain knowledge,what kind of problems and tasks can we solve with it?

14 / 104

Page 15: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

State of the art

Despite (or just because of?) the many declarative paradigms,there are also remarkable gaps in our understanding of inference.

If we have the specification of the relevant domain knowledge,what kind of problems and tasks can we solve with it?

15 / 104

Page 16: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

An illustration

Question: How to solve a graph coloring problem in a declarativeway?

I Step 1: What is the knowledge? What is the centralproposition of a correct graph coloring?

I No two adjacent vertices have the same color, in FO:

∀x∀y(G (x , y)⇒ Col(x) 6= Col(y))

I Step 2: Input/Output:I Input: Graph G (Vertex ,Vertex), a set of colours ColorI Output: A function Col(Vertex) : Color .

I Step 3: What kind of inference do we need to solve theproblem?

I Search for a model of the theory, that expands the Input.I model expansion

16 / 104

Page 17: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

An illustration

Question: How to solve a graph coloring problem in a declarativeway?

I Step 1: What is the knowledge? What is the centralproposition of a correct graph coloring?

I No two adjacent vertices have the same color, in FO:

∀x∀y(G (x , y)⇒ Col(x) 6= Col(y))

I Step 2: Input/Output:I Input: Graph G (Vertex ,Vertex), a set of colours ColorI Output: A function Col(Vertex) : Color .

I Step 3: What kind of inference do we need to solve theproblem?

I Search for a model of the theory, that expands the Input.I model expansion

17 / 104

Page 18: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

An illustration

Question: How to solve a graph coloring problem in a declarativeway?

I Step 1: What is the knowledge? What is the centralproposition of a correct graph coloring?

I No two adjacent vertices have the same color, in FO:

∀x∀y(G (x , y)⇒ Col(x) 6= Col(y))

I Step 2: Input/Output:I Input: Graph G (Vertex ,Vertex), a set of colours ColorI Output: A function Col(Vertex) : Color .

I Step 3: What kind of inference do we need to solve theproblem?

I Search for a model of the theory, that expands the Input.I model expansion

18 / 104

Page 19: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

An illustration

Question: How to solve a graph coloring problem in a declarativeway?

I Step 1: What is the knowledge? What is the centralproposition of a correct graph coloring?

I No two adjacent vertices have the same color, in FO:

∀x∀y(G (x , y)⇒ Col(x) 6= Col(y))

I Step 2: Input/Output:I Input: Graph G (Vertex ,Vertex), a set of colours ColorI Output: A function Col(Vertex) : Color .

I Step 3: What kind of inference do we need to solve theproblem?

I Search for a model of the theory, that expands the Input.I model expansion

19 / 104

Page 20: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

An illustration

Question: How to solve a graph coloring problem in a declarativeway?

I Step 1: What is the knowledge? What is the centralproposition of a correct graph coloring?

I No two adjacent vertices have the same color, in FO:

∀x∀y(G (x , y)⇒ Col(x) 6= Col(y))

I Step 2: Input/Output:I Input: Graph G (Vertex ,Vertex), a set of colours ColorI Output: A function Col(Vertex) : Color .

I Step 3: What kind of inference do we need to solve theproblem?

I Search for a model of the theory, that expands the Input.I model expansion

20 / 104

Page 21: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

“What kind of inference do we need to solve this problem?”

I A question that until very recently, for FO, was not evenasked let alone addressed.

I For this particular problem: model expansion

I Now, Model Expansion MX(FO) (Michell&Ternvoska), SATmodulo Theories.

I But is the key inference problem in other declarativeparadigms:

I Constraint Programming, Answer Set Programming

21 / 104

Page 22: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

“What kind of inference do we need to solve this problem?”

I A question that until very recently, for FO, was not evenasked let alone addressed.

I For this particular problem: model expansion

I Now, Model Expansion MX(FO) (Michell&Ternvoska), SATmodulo Theories.

I But is the key inference problem in other declarativeparadigms:

I Constraint Programming, Answer Set Programming

22 / 104

Page 23: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

If only we could bundle what is known about KR and inference in acoherent scientific framework!?

23 / 104

Page 24: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

The FO(·)-KBS project: an integration project

On the logical level: FO(·)Knowledge exists, it can be studied through the

methods of formal empirical science

Developing expressive KR languages with clear informal semanticsI Formal semantics as a scientific study of informal semantics.I Expressive languages, rich enough so that the information,

relevant to solve a problem CAN be represented.I (Forget the “Tractibility/Expressivity” trade-off - we are not

doing deduction (only))I FO as foundationI Integrate useful declarative language constructs from various

declarative languagesI Tight integration in FO - no hybrid systems.

(FO(·)= family of extensions of FO)

24 / 104

Page 25: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

The FO(·)-KBS project: an integration project

On the logical level: FO(·)Knowledge exists, it can be studied through the

methods of formal empirical science

Developing expressive KR languages with clear informal semanticsI Formal semantics as a scientific study of informal semantics.I Expressive languages, rich enough so that the information,

relevant to solve a problem CAN be represented.I (Forget the “Tractibility/Expressivity” trade-off - we are not

doing deduction (only))I FO as foundationI Integrate useful declarative language constructs from various

declarative languagesI Tight integration in FO - no hybrid systems.

(FO(·)= family of extensions of FO)25 / 104

Page 26: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

The FO(·)-KBS project: an integration project

I On the inference level:

I Building solvers for various forms of inference for FO(·)I Integrating various solving techniques from various declarative

programming paradigms in one Knowledge Base System.

I On the application level:

I Towards a typology of tasks and computational problems interms of (the same) logic and inference.

I Eagerly searching for novel ways of using declarativespecifications to solve problems.

26 / 104

Page 27: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

The FO(·)-KBS project: an integration project

I On the inference level:

I Building solvers for various forms of inference for FO(·)I Integrating various solving techniques from various declarative

programming paradigms in one Knowledge Base System.

I On the application level:

I Towards a typology of tasks and computational problems interms of (the same) logic and inference.

I Eagerly searching for novel ways of using declarativespecifications to solve problems.

27 / 104

Page 28: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Help us. We can’t do this alone.

28 / 104

Page 29: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Introduction: the FO(·) KBS project

FO(·)

Inference of the KBS: progress report

Conclusions

29 / 104

Page 30: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Why FO as a foundation ?

FO: the language that failed in the seventies?I Too expressive for building “practical” systems?

I UndecidabilityI Expressivity/Efficiency trade-off

I FO is not suitable for describing common sense knowledge?I Nonmonotonic reasoning

I FO as a language is too difficult for practical use?I E.g., quantifiers

30 / 104

Page 31: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Why FO as a foundation ?

I FO, the outcome of 18’s and 19’s century’s research in

“laws of thought”

I E.g., Leibniz, De Morgan, Boole, Frege, Peirce

I FO is about a small set of connectives:

∧,∨,¬,∀,∃,⇔,⇒I Essential for KR, the right semantics in FO

I Crystal clear informal semantics

∀x(Human(x)⇒ Man(x) ∨Woman(x))means

All humans are men or women

(There is a lot of common sense in FO.)

31 / 104

Page 32: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Why FO as a foundation ?

I FO, the outcome of 18’s and 19’s century’s research in

“laws of thought”

I E.g., Leibniz, De Morgan, Boole, Frege, Peirce

I FO is about a small set of connectives:

∧,∨,¬, ∀,∃,⇔,⇒I Essential for KR, the right semantics in FO

I Crystal clear informal semantics

∀x(Human(x)⇒ Man(x) ∨Woman(x))means

All humans are men or women

(There is a lot of common sense in FO.)

32 / 104

Page 33: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Why FO as a foundation ?

I FO, the outcome of 18’s and 19’s century’s research in

“laws of thought”

I E.g., Leibniz, De Morgan, Boole, Frege, Peirce

I FO is about a small set of connectives:

∧,∨,¬, ∀,∃,⇔,⇒I Essential for KR, the right semantics in FO

I Crystal clear informal semantics

∀x(Human(x)⇒ Man(x) ∨Woman(x))means

All humans are men or women

(There is a lot of common sense in FO.)

33 / 104

Page 34: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Why FO as a foundation ?

I FO, the outcome of 18’s and 19’s century’s research in

“laws of thought”

I E.g., Leibniz, De Morgan, Boole, Frege, Peirce

I FO is about a small set of connectives:

∧,∨,¬, ∀,∃,⇔,⇒I Essential for KR, the right semantics in FO

I Crystal clear informal semantics

∀x(Human(x)⇒ Man(x) ∨Woman(x))means

All humans are men or women

(There is a lot of common sense in FO.)34 / 104

Page 35: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Claims

(1) Every ”interesting” modelling language will have a substantialoverlap with FO, in one form or the other.

I For some languages, the syntax, conceptuology, terminologymay severely obscure the relationship.

I SQLI ALLOY ?I Zinc (a constraint programming language)I ASP (see ICLP talk :-) )

(2) But FO is not enough for practical KR.

35 / 104

Page 36: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Claims

(1) Every ”interesting” modelling language will have a substantialoverlap with FO, in one form or the other.

I For some languages, the syntax, conceptuology, terminologymay severely obscure the relationship.

I SQLI ALLOY ?I Zinc (a constraint programming language)I ASP (see ICLP talk :-) )

(2) But FO is not enough for practical KR.

36 / 104

Page 37: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Claims

(1) Every ”interesting” modelling language will have a substantialoverlap with FO, in one form or the other.

I For some languages, the syntax, conceptuology, terminologymay severely obscure the relationship.

I SQLI ALLOY ?I Zinc (a constraint programming language)I ASP (see ICLP talk :-) )

(2) But FO is not enough for practical KR.

37 / 104

Page 38: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

FO(·): turning FO into a practical KR language

I FO does not suffice for knowledge representation, modelling,specification

I FO: an ASSEMBLER language for KR

⇒ FO(

Types,ID,Agg,Arit,FD,Mod,HO,. . .

)

I TypesI (Inductive) DefinitionsI AggregatesI ArithmeticI Coinductive DefinitionsI Modal operatorsI Higher Order logicI . . .

The FO(·) language framework

38 / 104

Page 39: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

FO(·): turning FO into a practical KR language

I FO does not suffice for knowledge representation, modelling,specification

I FO: an ASSEMBLER language for KR

⇒ FO(

Types,ID,Agg,Arit,FD,Mod,HO,. . .

)

I TypesI (Inductive) DefinitionsI AggregatesI ArithmeticI Coinductive DefinitionsI Modal operatorsI Higher Order logicI . . .

The FO(·) language framework

39 / 104

Page 40: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

FO(·): turning FO into a practical KR language

I FO does not suffice for knowledge representation, modelling,specification

I FO: an ASSEMBLER language for KR

⇒ FO(Types

,ID,Agg,Arit,FD,Mod,HO,. . .

)

I Types

I (Inductive) DefinitionsI AggregatesI ArithmeticI Coinductive DefinitionsI Modal operatorsI Higher Order logicI . . .

The FO(·) language framework

40 / 104

Page 41: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

FO(·): turning FO into a practical KR language

I FO does not suffice for knowledge representation, modelling,specification

I FO: an ASSEMBLER language for KR

⇒ FO(Types,ID

,Agg,Arit,FD,Mod,HO,. . .

)

I TypesI (Inductive) Definitions

I AggregatesI ArithmeticI Coinductive DefinitionsI Modal operatorsI Higher Order logicI . . .

The FO(·) language framework

41 / 104

Page 42: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

FO(·): turning FO into a practical KR language

I FO does not suffice for knowledge representation, modelling,specification

I FO: an ASSEMBLER language for KR

⇒ FO(Types,ID,Agg

,Arit,FD,Mod,HO,. . .

)

I TypesI (Inductive) DefinitionsI Aggregates

I ArithmeticI Coinductive DefinitionsI Modal operatorsI Higher Order logicI . . .

The FO(·) language framework

42 / 104

Page 43: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

FO(·): turning FO into a practical KR language

I FO does not suffice for knowledge representation, modelling,specification

I FO: an ASSEMBLER language for KR

⇒ FO(Types,ID,Agg,Arit

,FD,Mod,HO,. . .

)

I TypesI (Inductive) DefinitionsI AggregatesI Arithmetic

I Coinductive DefinitionsI Modal operatorsI Higher Order logicI . . .

The FO(·) language framework

43 / 104

Page 44: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

FO(·): turning FO into a practical KR language

I FO does not suffice for knowledge representation, modelling,specification

I FO: an ASSEMBLER language for KR

⇒ FO(Types,ID,Agg,Arit,FD

,Mod,HO,. . .

)

I TypesI (Inductive) DefinitionsI AggregatesI ArithmeticI Coinductive Definitions

I Modal operatorsI Higher Order logicI . . .

The FO(·) language framework

44 / 104

Page 45: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

FO(·): turning FO into a practical KR language

I FO does not suffice for knowledge representation, modelling,specification

I FO: an ASSEMBLER language for KR

⇒ FO(Types,ID,Agg,Arit,FD,Mod

,HO,. . .

)

I TypesI (Inductive) DefinitionsI AggregatesI ArithmeticI Coinductive DefinitionsI Modal operators

I Higher Order logicI . . .

The FO(·) language framework

45 / 104

Page 46: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

FO(·): turning FO into a practical KR language

I FO does not suffice for knowledge representation, modelling,specification

I FO: an ASSEMBLER language for KR

⇒ FO(Types,ID,Agg,Arit,FD,Mod,HO,. . . )

I TypesI (Inductive) DefinitionsI AggregatesI ArithmeticI Coinductive DefinitionsI Modal operatorsI Higher Order logicI . . .

The FO(·) language framework

46 / 104

Page 47: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

About adding Inductive Definitions to FO.

47 / 104

Page 48: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

What are Inductive Definitions?

The transitive closure TG of a graphG is defined inductively:- (x , y) ∈ TG if (x , y) ∈ G ;- (x , y) ∈ TG if for some vertex z,

(x , z), (z, y) ∈ TG .

Monotone induction

We define A |= ϕ by structural induc-tion:- A |= q if q ∈ A;- A |= α ∧ β if A |= α and A |= β;- A |= ¬α if A 6|= α

(i.e., if not A |= α);

Induction over well-foundedorder.

I The two most common sorts of inductive definitions.I Format:

I Informal rulesI Negation in the body - nonmonotoneI Parameters; e.g., defining TG in terms of G .

48 / 104

Page 49: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

What are Inductive Definitions?

The transitive closure TG of a graphG is defined inductively:- (x , y) ∈ TG if (x , y) ∈ G ;- (x , y) ∈ TG if for some vertex z,

(x , z), (z, y) ∈ TG .

Monotone induction

We define A |= ϕ by structural induc-tion:- A |= q if q ∈ A;- A |= α ∧ β if A |= α and A |= β;- A |= ¬α if A 6|= α

(i.e., if not A |= α);

Induction over well-foundedorder.

I The two most common sorts of inductive definitions.I Format:

I Informal rulesI Negation in the body - nonmonotoneI Parameters; e.g., defining TG in terms of G .

49 / 104

Page 50: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Inductive Definitions

I A well-understood, precise, objective informal languageconstruct

I Inductive definitions are crystal clear to us.

I But formal explanation is difficult

I A topic suitable for formal scientific study

50 / 104

Page 51: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Adding ID’s to FO

I Inductive definitions have many CS applicationsI ID’s cannot be expressed in FO in general.

I Compactness theorem

⇒ It is a good idea to extend FO with them.

I How?

51 / 104

Page 52: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Adding ID’s to FO

Studies in mathematical logic:

I Many studies on various forms of induction (fixpoint logics)I Not one (that I know of), that aims to develop a natural

uniform practical formalism that covers the most commonforms of ID’s

I Monotone induction, induction over well-founded orderI Rule-based

52 / 104

Page 53: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

FO(ID) (Denecker 2000, Denecker& Ternovska 2008)

An FO(ID) theory:

I a set of FO sentences and definitions

An FO(ID) definition ∆ is a set of definitional rules:

∀x(P(t)← ϕ)

where ϕ is a FO formula

Claim (starting 1998)

Rules under well-founded semantics provide such auniform formalism for expressing the two most

common forms of induction.

53 / 104

Page 54: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

FO(ID) (Denecker 2000, Denecker& Ternovska 2008)

An FO(ID) theory:

I a set of FO sentences and definitions

An FO(ID) definition ∆ is a set of definitional rules:

∀x(P(t)← ϕ)

where ϕ is a FO formula

Claim (starting 1998)

Rules under well-founded semantics provide such auniform formalism for expressing the two most

common forms of induction.

54 / 104

Page 55: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

What about stable semantics ? See ICLP-talk.

55 / 104

Page 56: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

An example inductive definition

A company A controls company B if the total sum ofthe shares in company B owned by A or by

companies controlled by A is more than 50%.

An inductive definition over aggregates.

The vocabulary

I Cont(x , y): company x controls company y .

I OwnsSh(x , y , s): company x owns s shares in company y .

{∀a∀b(Cont(a, b)← Sum

{(s, c) :

(c = a ∨ Cont(a, c))∧OwnsSh(c, b, s)

: s

}> 50)

}

56 / 104

Page 57: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

An example inductive definition

A company A controls company B if the total sum ofthe shares in company B owned by A or by

companies controlled by A is more than 50%.

An inductive definition over aggregates.

The vocabulary

I Cont(x , y): company x controls company y .

I OwnsSh(x , y , s): company x owns s shares in company y .{∀a∀b(Cont(a, b)← Sum

{(s, c) :

(c = a ∨ Cont(a, c))∧OwnsSh(c, b, s)

: s

}> 50)

}

57 / 104

Page 58: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

FO(·) covers or overlaps many formalisms in CL:

I LP, declaratively

I Abductive Logic Programming

I Answer Set Programming (see my ICLP talk :-))

I Datalog

I Description logics with rules

I Fixpoint logics

In each formalism, definitions play a different operational role.

58 / 104

Page 59: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Definitions serve different purposes in different languages due todifferent forms of inference

Different uses of the definition of “Controls”:

I In Datalog, to query for controlling companies in a databaseon the stock market.

I In ASP or IDP, e.g., in a search problem for a cheap solutionfor one company to acquire control over a target company.

Completely different inferential uses, but it is the same definition.

59 / 104

Page 60: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Definitions serve different purposes in different languages due todifferent forms of inference

Different uses of the definition of “Controls”:

I In Datalog, to query for controlling companies in a databaseon the stock market.

I In ASP or IDP, e.g., in a search problem for a cheap solutionfor one company to acquire control over a target company.

Completely different inferential uses, but it is the same definition.

60 / 104

Page 61: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Definitions serve different purposes in different languages due todifferent forms of inference

Different uses of the definition of “Controls”:

I In Datalog, to query for controlling companies in a databaseon the stock market.

I In ASP or IDP, e.g., in a search problem for a cheap solutionfor one company to acquire control over a target company.

Completely different inferential uses, but it is the same definition.

61 / 104

Page 62: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Definitions serve different purposes in different languages due todifferent forms of inference

Different uses of the definition of “Controls”:

I In Datalog, to query for controlling companies in a databaseon the stock market.

I In ASP or IDP, e.g., in a search problem for a cheap solutionfor one company to acquire control over a target company.

Completely different inferential uses, but it is the same definition.

62 / 104

Page 63: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

On the future importance of ID’s in CS

Rules are everywhere, in many languages.

I Logic Programming, Answer Set Programming, Datalog,Flora-2, Description logics with rules (SWRL), business rulesystems, expert systems, production rule systems, . . .

I On the one hand, declarative semantics of rules is often poorlyunderstood.

I On the other side, Inductive Definitions: an informalrule-based language construct of great clarity and precision.

Prediction

ID’s will turn out to be the common semanticprinciple underlying many of these languages.

63 / 104

Page 64: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

On the future importance of ID’s in CS

Rules are everywhere, in many languages.

I Logic Programming, Answer Set Programming, Datalog,Flora-2, Description logics with rules (SWRL), business rulesystems, expert systems, production rule systems, . . .

I On the one hand, declarative semantics of rules is often poorlyunderstood.

I On the other side, Inductive Definitions: an informalrule-based language construct of great clarity and precision.

Prediction

ID’s will turn out to be the common semanticprinciple underlying many of these languages.

64 / 104

Page 65: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

On the future importance of ID’s in CS

Rules are everywhere, in many languages.

I Logic Programming, Answer Set Programming, Datalog,Flora-2, Description logics with rules (SWRL), business rulesystems, expert systems, production rule systems, . . .

I On the one hand, declarative semantics of rules is often poorlyunderstood.

I On the other side, Inductive Definitions: an informalrule-based language construct of great clarity and precision.

Prediction

ID’s will turn out to be the common semanticprinciple underlying many of these languages.

65 / 104

Page 66: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Introduction: the FO(·) KBS project

FO(·)

Inference of the KBS: progress report

Conclusions

66 / 104

Page 67: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

A Knowledge Base System (KBS)

Knowledge Base

Inference 2 Inference 3

Inference 4Inference 1

Checking consistency of schedule

University course scheduling

Computing a schedule

. . .

Updating a schedule

I Manages a declarative Knowledge Base (KB): a theoryI Equiped with different forms of inference:

I Model generation: Computing a scheduleI Model checking: Verifying consistency of a scheduleI Update and Revision: Updating a given scheduleI Deduction for verification of the KB

Querying of defined predicates, . . .

67 / 104

Page 68: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

A Knowledge Base System (KBS)

Knowledge Base

Inference 2 Inference 3

Inference 4Inference 1

Checking consistency of schedule

University course scheduling

Computing a schedule

. . .

Updating a schedule

I Manages a declarative Knowledge Base (KB): a theoryI Equiped with different forms of inference:

I Model generation: Computing a scheduleI Model checking: Verifying consistency of a scheduleI Update and Revision: Updating a given scheduleI Deduction for verification of the KB

Querying of defined predicates, . . .

68 / 104

Page 69: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

A Knowledge Base System (KBS)

Knowledge Base

Inference 2 Inference 3

Inference 4Model Generation

Checking consistency of schedule

University course scheduling

Computing a schedule

. . .

Updating a schedule

I Manages a declarative Knowledge Base (KB): a theoryI Equiped with different forms of inference:

I Model generation: Computing a schedule

I Model checking: Verifying consistency of a scheduleI Update and Revision: Updating a given scheduleI Deduction for verification of the KB

Querying of defined predicates, . . .

69 / 104

Page 70: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

A Knowledge Base System (KBS)

Knowledge Base

Model checking Inference 3

Inference 4Model Generation

Checking consistency of schedule

University course scheduling

Computing a schedule

. . .

Updating a schedule

I Manages a declarative Knowledge Base (KB): a theoryI Equiped with different forms of inference:

I Model generation: Computing a scheduleI Model checking: Verifying consistency of a schedule

I Update and Revision: Updating a given scheduleI Deduction for verification of the KB

Querying of defined predicates, . . .

70 / 104

Page 71: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

A Knowledge Base System (KBS)

Knowledge Base

Model checking Revision Inference

Inference 4Model Generation

Checking consistency of schedule

University course scheduling

Computing a schedule

. . .

Updating a schedule

I Manages a declarative Knowledge Base (KB): a theoryI Equiped with different forms of inference:

I Model generation: Computing a scheduleI Model checking: Verifying consistency of a scheduleI Update and Revision: Updating a given schedule

I Deduction for verification of the KBQuerying of defined predicates, . . .

71 / 104

Page 72: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

A Knowledge Base System (KBS)

Knowledge Base

Model checking Revision Inference

Deduction, QueryingModel Generation

Checking consistency of schedule

University course scheduling

Computing a schedule. . .

Updating a schedule

I Manages a declarative Knowledge Base (KB): a theoryI Equiped with different forms of inference:

I Model generation: Computing a scheduleI Model checking: Verifying consistency of a scheduleI Update and Revision: Updating a given scheduleI Deduction for verification of the KB

Querying of defined predicates, . . . 72 / 104

Page 73: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

A KBS demo (Vlaeminck et al. 2010)

The course selection demo: interactive configuration

I Propagation (P)

I Model Checking (P)

I Model Generation (NP)

I Model Generation+Optimization (NPNP)

I Explanation (P)

73 / 104

Page 74: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

A KBS demo (Vlaeminck et al. 2010)

Demonstrating a principle that procedural programming languagescan’t do:

Reusing the same specification/theory/knowledgebase to solve different types of problems.

74 / 104

Page 75: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Download Demo

http://dtai.cs.kuleuven.be/krr/files/downloads/

course-selection-demo.jar

75 / 104

Page 76: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Implementation of KBS

IDP3: the new system!

I A KBS systemI Programming environment

I Programming with theories, structures, inference methodsI In an extension of procedural language Lua:

Work mainly by KRR-members Broes De Cat, Bart Bogaerts, StefDe Pooter (and ex-members Johan Wittocx, Maarten Marien)

76 / 104

Page 77: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Implementation of KBS

I Forms of inference currently under development:I (Finite) Model expansion (our main effort)I OptimisationI PropagationI Querying structuresI ∆-model generation and revision: view materialisation and

update : computing& updating defined predicatesI Model revisionI Debugging, Explanation.

77 / 104

Page 78: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Model generation/expansion

Model Expansion

I Input:I An FO(ID) theory TI An (finite) structure Ai for a subvocabulary of

T , expressing domain and data.

I Output: a model A of T expanding Ai

Special case: Herbrand Model Generation

78 / 104

Page 79: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Background knowledge base in IDP3

Vocabulary

vocabulary sudokuVoc {

extern vocabulary grid:: simpleGridVoc

type Num isa nat

type Block isa nat

Sudoku(Row ,Col) : Num

InBlock(Block ,Row ,Col)

}

Theory

theory sudokuTheory : sudokuVoc {

! r n : ?1 c : Sudoku(r,c) = n.

! c n : ?1 r : Sudoku(r,c) = n.

! b n : ?1 r c : InBlock(b,r,c) & Sudoku(r,c) = n.

! b r c : InBlock(b,r,c)

<=> b = ((r -1)/3)*3 + ((c -1)/3) + 1.

}

79 / 104

Page 80: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

The grounder

Term Rewrite

Type derivation

Symmetry

breaking

Lifted unit

propagation

Grounding with

bounds

Evaluate known

definitions

FO(.) theory

CNF – ECNF – SMT (- FlatZinc )

80 / 104

Page 81: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

MinisatID: SMT solver

MinisatID

Model

CNF – ECNF – OPB – ASP - QBF

PC solver

SAT-solver

ID-module0..*

Agg-module Minisat++

CP-module Gecode

81 / 104

Page 82: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

The IDP system

I SMT-like architecture to integrate solversI Kernel: DPLP clause learning solver – minisatI “Theory” solvers : definitions, aggregates, constraints

CASP-like solver that recognizes finite domain constraints inFO(·)expressions

I Supports also the stable semanticsI Ongoing work:

I Lazy grounding (see ICLP-Paper Broes De Cat, Denecker,Stuckey )

82 / 104

Page 83: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

The IDP system

I SMT-like architecture to integrate solversI Kernel: DPLP clause learning solver – minisatI “Theory” solvers : definitions, aggregates, constraints

CASP-like solver that recognizes finite domain constraints inFO(·)expressions

I Supports also the stable semanticsI Ongoing work:

I Lazy grounding (see ICLP-Paper Broes De Cat, Denecker,Stuckey )

83 / 104

Page 84: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

ASP-competition 2009

EXPERIMENTAL RESULTS

84 / 104

Page 85: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Current FO(·)solvers for model generation/expansion

I Enfragmo - Simon Fraser University

I amsolver - University of Kentucky

I . . .

85 / 104

Page 86: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Computing with Definitions

I Substantial amount of programming in SE systems serve tocompute one datastructure from another datastructure.

I Idea:I Express these computations declaratively through definitions ∆I ∆ defines one output “datastructure” in terms of an “input

datastructure”.I Use existing inference systems to compute/maintain the

computed “datastructure”.I Database technology (view materialization, view update), LP

technology, ASP, IDP

I Specifying transactions using rules

⇒ Revival of Datalog

86 / 104

Page 87: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

An illustration: IDPDraw

I In order to Visualise an input structure

E.g. Input structure representing a labyrinthRow = {1..39}Col = {1..25}Wall = {(1, 1), (3, 1), . . . , (39, 24)}

I Define graphical primitives in the symbols of input structure∀r∀c(Idpd polygon(Square(r , c), [(0, 0), (1, 0), (1, 1), (0, 1)])

← Row(r) ∧ Col(c).∀r∀c(Idpd xpos(Square(r , c), r)← Row(r) ∧ Col(c).∀r∀c(Idpd ypos(Square(r , c), c)← Row(r) ∧ Col(c).∀r∀c(Idpd color(Square(r , c),Col(0, 0, 0))←Wall(r , c).

I Compute graphical primitives using ∆-model generator (P)I Transmit datastructure to a graphical processor (Qt)

87 / 104

Page 88: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

IDPDraw: an example

Input structure

Row = {1..39}Col = {1..25}Wall = {(1, 1), (3, 1), . . . , (39, 24)}

↓ ∆-model generation

Idpd polygon = {. . . }Idpd xpos = {. . . }Idpd ypos = {. . . }Idpd color = {. . . }

↓ translation to Qt input + Qt

88 / 104

Page 89: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

89 / 104

Page 90: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

A prototype of a knowledge-based programming environment

I A programming environment: IDP3

I High level objects: vocabularies, theories, structures

I Functionalities for manipulation and inference

I Implemented in the language Lua

I A new? way of mixing Declarative and Procedural knowledge

90 / 104

Page 91: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

A demo: generating Sudoku-puzzles

Sudoku-puzzle requirements”

I (consistency) It should allow one unique solution

I (minimality) If we delete any value of the puzzle, it has atleast two solutions.

91 / 104

Page 92: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

A demo: generating Sudoku-puzzles

Puzzle := emptyGenerate at most 2 solutions for PuzzleWhile 2 solutions were found do{

Select a random position where the two solutions differExtend Puzzle with the value of the first solution at this positionGenerate at most 2 solutions for Puzzle}

For each position of Puzzle that contains a value do {Delete the value at this positionGenerate at most 2 solutions for PuzzleIf there are two solutions, undo the deletion of the value.}

Visualize the puzzle and its unique solution

92 / 104

Page 93: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Background knowledge base in IDP

Vocabulary

vocabulary sudokuVoc {

extern vocabulary grid:: simpleGridVoc

type Num isa nat

type Block isa nat

Sudoku(Row ,Col) : Num

InBlock(Block ,Row ,Col)

}

Theory

theory sudokuTheory : sudokuVoc {

! r n : ?1 c : Sudoku(r,c) = n.

! c n : ?1 r : Sudoku(r,c) = n.

! b n : ?1 r c : InBlock(b,r,c) & Sudoku(r,c) = n.

! b r c : InBlock(b,r,c)

<=> b = ((r -1)/3)*3 + ((c -1)/3) + 1.

}

93 / 104

Page 94: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Procedures

procedure createSudoku () {

math.randomseed(os.time ())

local puzzle = grid:: makeEmptyGrid (9)

stdoptions.nrmodels = 2

local currsols = modelExpand(sudokuTheory ,puzzle)

while #currsols > 1 do

repeat

col = math.random (1,9)

row = math.random (1,9)

num = currsols [1][ sudokuVoc :: Sudoku ](row ,col)

until num ~= currsols [2][ sudokuVoc :: Sudoku ](row ,col)

makeTrue(puzzle[sudokuVoc :: Sudoku ].graph ,{row ,col ,num})

currsols = modelExpand(sudokuTheory ,puzzle)

end

printSudoku(puzzle)

}94 / 104

Page 95: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Discussion

Two sorts of inferences:

I generating solutions to puzzles: model expansionI Visualizing through ∆-model expansion

I computing a model of a definition ∆I A special case of model expansionI No searchI Can be implemented very differentlyI = View materialisation in deductive databases.

Acces and manipulation of structures.

I Structures are objects in the environment

I Puzzle and its solutions are structures

I Checking and updating values at positions of puzzle

95 / 104

Page 96: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Introduction: the FO(·) KBS project

FO(·)

Inference of the KBS: progress report

Conclusions

96 / 104

Page 97: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Conclusion

I Computational logic is getting too complexI Too many logicsI FO(·): reuse and integrationI We need a M3C :-)

I Economies to be made:I Reusing specifications/modellingsI Reusing LanguagesI Reusing inference technologiesI Integration raises challenging new research questionsI Integration produces multiplication effects

I New insights in a fundamental KRR research questionI How do we use declarative K for problem solving?I What is the role of logic in computer science?I How to build better SE-systems using logic inference

97 / 104

Page 98: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Conclusion

I Computational logic is getting too complexI Too many logicsI FO(·): reuse and integrationI We need a M3C :-)

I Economies to be made:I Reusing specifications/modellingsI Reusing LanguagesI Reusing inference technologiesI Integration raises challenging new research questionsI Integration produces multiplication effects

I New insights in a fundamental KRR research questionI How do we use declarative K for problem solving?I What is the role of logic in computer science?I How to build better SE-systems using logic inference

98 / 104

Page 99: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Conclusion

I Computational logic is getting too complexI Too many logicsI FO(·): reuse and integrationI We need a M3C :-)

I Economies to be made:I Reusing specifications/modellingsI Reusing LanguagesI Reusing inference technologiesI Integration raises challenging new research questionsI Integration produces multiplication effects

I New insights in a fundamental KRR research questionI How do we use declarative K for problem solving?I What is the role of logic in computer science?I How to build better SE-systems using logic inference

99 / 104

Page 100: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

Main Publications

I The logic FO(ID)

Denecker, Marc; Ternovska, Eugenia. A logic of nonmonotoneinductive definitions, ACM Transactions on Computational

Logic, volume 9, issue 2, 2008.

I The KBS-paradigm:

Denecker, Marc; Vennekens, Joost. Building a knowledge basesystem for an integration of logic programming and classical

logic, ICLP 2008

I Theory of course selection demo

Vlaeminck, Hanne; Vennekens, Joost; Denecker, Marc. Alogical framework for configuration software, PPDP 2009

100 / 104

Page 101: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

The IDP system:Wittocx, Johan; Marien, Maarten; Denecker, Marc. The IDPsystem: A model expansion system for an extension of classicallogic, Denecker, Marc (ed.), Logic and Search, LaSh 2008Wittocx, Johan; Marien, Maarten; Denecker, Marc. Grounding FOand FO(ID) with bounds, JAIR, volume 38, 2010Wittocx, Johan; Marien, Maarten; Denecker, Marc. GidL: Agrounder for FO+, Thielscher, Michael; Pagnucco, Maurice (eds.),NMR 2008Marien, Maarten; Wittocx, Johan; Denecker, Marc; Bruynooghe,Maurice. SAT(ID): Satisfiability of propositional logic extendedwith inductive definitions, SAT 2008 - Theory and Applications ofSatisfiability Testing, 2008Marien, Maarten; Wittocx, Johan; Denecker, Marc. Integratinginductive definitions in SAT, Logic for Programming, ArtificialIntelligence, and Reasoning, Yerevan, Armenia, 2007.

101 / 104

Page 102: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

The IDP programming environment:De Pooter, Stef; Wittocx, Johan; Denecker, Marc. A prototype ofa knowledge-based programming environment, INAP 2011

102 / 104

Page 103: The FO() Knowledge Base System project An integration projectmarc.denecker/ASPOCP-invited.pdf · The FO()-KBS project: an integration project On the logical level: FO() Knowledge

IDP, IDP3 and the demos’s are available via our webpagehttp://dtai.cs.kuleuven.be/krr/.Publications are on line via my webpagehttp://people.cs.kuleuven.be/~marc.denecker/

103 / 104