BIM-Spatial Reasoning using CLP & Other Research Topics Joaqu - - PowerPoint PPT Presentation
BIM-Spatial Reasoning using CLP & Other Research Topics Joaqu - - PowerPoint PPT Presentation
BIM-Spatial Reasoning using CLP & Other Research Topics Joaqu n Arias Herrero 10 Oct 2019 Outline. About me (C)LP BIM-Spatial Research Bibliography About me. Introduction to (Constraint) Logic Programming (CLP).
About me (C)LP BIM-Spatial Research Bibliography
2 / 17
Outline.
- About me.
- Introduction to (Constraint) Logic Programming (CLP).
- BIM-Spatial reasoning using CLP.
- Other Research Topics:
- TCLP: a generic Tabled CLP framework.
- s(CASP): a non-monotonic reasoner.
About me (C)LP BIM-Spatial Research Bibliography
3 / 17
About me.
1993-2002 Architect
1999-2000 RWTH-Aachen
1993-1999 Madrid
Summer’95 Belo Horizonte
2000-2005 Marbella 2005-2008 Estepona 2008-2009 Bucarest 2009- Madrid (Freelance Arch.) 2011-2015 Computer Science 2015- PhD in DSSC
Summer’17 UTD-Dallas Summer’19 A!-Helsinki
2013- Madrid (IMDEA Software)
Summer’19 Helsinki (VisuaLynk)
About me (C)LP BIM-Spatial Research Bibliography
3 / 17
About me.
1993-2002 Architect
1999-2000 RWTH-Aachen
1993-1999 Madrid
Summer’95 Belo Horizonte
2000-2005 Marbella 2005-2008 Estepona 2008-2009 Bucarest 2009- Madrid (Freelance Arch.) 2011-2015 Computer Science 2015- PhD in DSSC
Summer’17 UTD-Dallas Summer’19 A!-Helsinki
2013- Madrid (IMDEA Software)
Summer’19 Helsinki (VisuaLynk)
2010 & 2015 I love biking
About me (C)LP BIM-Spatial Research Bibliography
4 / 17
(Constraint) Logic Programming
About me (C)LP BIM-Spatial Research Bibliography
5 / 17
(Constraint) Logic Programming.
- It is a high level language rooted in logic and constraint:
- The language makes it easier to maintenance the programs.
- The constraint prunes the search space in early stages.
- TCLP makes it possible to reuse previous results during execution of CLP programs.
- s(CASP) supports logic programs with negation (both default and classical).
About me (C)LP BIM-Spatial Research Bibliography
5 / 17
(Constraint) Logic Programming.
- It is a high level language rooted in logic and constraint:
- The language makes it easier to maintenance the programs.
- The constraint prunes the search space in early stages.
- TCLP makes it possible to reuse previous results during execution of CLP programs.
- s(CASP) supports logic programs with negation (both default and classical).
- Reduces code size & complexity.
- Etalis [Anicic et al. 2010]
2,500 lines of code instead of 150,000 with SQL.
- Yedalog by Google [Chin et al. 2015]
70% fewer lines of code than with C++.
About me (C)LP BIM-Spatial Research Bibliography
6 / 17
(C)LP: Introduction I.
- Is based on 1st order logic [Socrates, -399].
∀x. man(x) → mortal(x)
About me (C)LP BIM-Spatial Research Bibliography
6 / 17
(C)LP: Introduction I.
- Is based on 1st order logic [Socrates, -399].
∀x. man(x) → mortal(x)
- You write logical specifications of searches and get them executed.
1
mortal(X) :- man(X). % X is mortal if X is a man.
2
man(socrates). % Socrates is a man. ?- mortal(socrates). % Is Socrates mortal?
About me (C)LP BIM-Spatial Research Bibliography
6 / 17
(C)LP: Introduction I.
- Is based on 1st order logic [Socrates, -399].
∀x. man(x) → mortal(x)
- You write logical specifications of searches and get them executed.
1
mortal(X) :- man(X). % X is mortal if X is a man.
2
man(socrates). % Socrates is a man. ?- mortal(socrates). % Is Socrates mortal?
- Passive vs Active Constraints
% Search and filter % Prune the search ?- age(X,A), A > 18. ?- A #> 18, age(X,A).
About me (C)LP BIM-Spatial Research Bibliography
7 / 17
(C)LP: Introduction II.
1
% append(X,Y,Z) true if X concatenated with Y is Z
2
append([X|Xs], Ys, [X|Zs]) :- append(Xs, Ys, Zs).
3
append([], Ys, Ys ). ?- append([1],[2,3], X). X = [1,2,3] ?
About me (C)LP BIM-Spatial Research Bibliography
7 / 17
(C)LP: Introduction II.
1
% append(X,Y,Z) true if X concatenated with Y is Z
2
append([X|Xs], Ys, [X|Zs]) :- append(Xs, Ys, Zs).
3
append([], Ys, Ys ). ?- append([1],[2,3], X). X = [1,2,3] ? ?- append(X, Y, [1,2,3]).
About me (C)LP BIM-Spatial Research Bibliography
7 / 17
(C)LP: Introduction II.
1
% append(X,Y,Z) true if X concatenated with Y is Z
2
append([X|Xs], Ys, [X|Zs]) :- append(Xs, Ys, Zs).
3
append([], Ys, Ys ). ?- append([1],[2,3], X). X = [1,2,3] ? ?- append(X, Y, [1,2,3]). X = [], Y = [1,2,3] ?; X = [1], Y = [2,3] ?; X = [1,2], Y = [3] ?; X = [1,2,3], Y = [] ?
About me (C)LP BIM-Spatial Research Bibliography
7 / 17
(C)LP: Introduction II.
1
% append(X,Y,Z) true if X concatenated with Y is Z
2
append([X|Xs], Ys, [X|Zs]) :- append(Xs, Ys, Zs).
3
append([], Ys, Ys ). ?- append([1],[2,3], X). X = [1,2,3] ? ?- append(X, Y, [1,2,3]). X = [], Y = [1,2,3] ?; X = [1], Y = [2,3] ?; X = [1,2], Y = [3] ?; X = [1,2,3], Y = [] ?
However, CLP loops due:
- Left recursion:
1
path(A,B) :- path(A,Z), edge(Z,B).
2
path(A,B) :- edge(A,B).
- Non-stratified negation:
1
p(X) :- not q(X).
2
q(X) :- not p(X).
About me (C)LP BIM-Spatial Research Bibliography
7 / 17
(C)LP: Introduction II.
1
% append(X,Y,Z) true if X concatenated with Y is Z
2
append([X|Xs], Ys, [X|Zs]) :- append(Xs, Ys, Zs).
3
append([], Ys, Ys ). ?- append([1],[2,3], X). X = [1,2,3] ? ?- append(X, Y, [1,2,3]). X = [], Y = [1,2,3] ?; X = [1], Y = [2,3] ?; X = [1,2], Y = [3] ?; X = [1,2,3], Y = [] ?
However, CLP loops due:
- Left recursion:
1
path(A,B) :- path(A,Z), edge(Z,B).
2
path(A,B) :- edge(A,B).
- Non-stratified negation:
1
p(X) :- not q(X).
2
q(X) :- not p(X).
Other Research Topics:
- Tabled CLP
[PADL’16, TLPL’19]
- Suspends subsumed calls & reuses answers.
- Improves termination and efficiency.
- s(CASP)
[TLPL’18]
- Goal directed ASP (w.o. grounding).
- c-forall/2 handles constraints.
About me (C)LP BIM-Spatial Research Bibliography
8 / 17
(C)LP: DEMO.
About me (C)LP BIM-Spatial Research Bibliography
9 / 17
BIM-Spatial Reasoning using CLP
About me (C)LP BIM-Spatial Research Bibliography
10 / 17
BIM-Spatial Reasoning using CLP.
- Motivation: Spatial, ontology and logic queries for BIM models.
- BIM-Spatial detects spatial semantics relationships in/between models...
...providing a unique formalism to combine the different semantics.
About me (C)LP BIM-Spatial Research Bibliography
10 / 17
BIM-Spatial Reasoning using CLP.
- Motivation: Spatial, ontology and logic queries for BIM models.
- BIM-Spatial detects spatial semantics relationships in/between models...
...providing a unique formalism to combine the different semantics. Additionally:
- The spatial constraint model is n-dimensional...
1
interval(point(Xa), point(Xb), Sh) :- Sh = shape([X], [X #>= Xa,X #< Xb]).
2
rectangle(point(Xa,Ya), point(Xb,Yb), Sh):- Sh = shape([X,Y], [X #>= Xa,X #< Xb, Y #>= Ya,Y #< Yb]).
3
box(point(Xa,Ya,Za), point(Xb,Yb,Zb), Sh):- Sh = shape([X,Y,Z], [X #>= Xa,X #< Xb, ...).
About me (C)LP BIM-Spatial Research Bibliography
10 / 17
BIM-Spatial Reasoning using CLP.
- Motivation: Spatial, ontology and logic queries for BIM models.
- BIM-Spatial detects spatial semantics relationships in/between models...
...providing a unique formalism to combine the different semantics. Additionally:
- The spatial constraint model is n-dimensional...
1
interval(point(Xa), point(Xb), Sh) :- Sh = shape([X], [X #>= Xa,X #< Xb]).
2
rectangle(point(Xa,Ya), point(Xb,Yb), Sh):- Sh = shape([X,Y], [X #>= Xa,X #< Xb, Y #>= Ya,Y #< Yb]).
3
box(point(Xa,Ya,Za), point(Xb,Yb,Zb), Sh):- Sh = shape([X,Y,Z], [X #>= Xa,X #< Xb, ...).
...the extra dimensions can be used to represent, e.g., movement, change or progress.
About me (C)LP BIM-Spatial Research Bibliography
10 / 17
BIM-Spatial Reasoning using CLP.
- Motivation: Spatial, ontology and logic queries for BIM models.
- BIM-Spatial detects spatial semantics relationships in/between models...
...providing a unique formalism to combine the different semantics. Additionally:
- The spatial constraint model is n-dimensional...
1
interval(point(Xa), point(Xb), Sh) :- Sh = shape([X], [X #>= Xa,X #< Xb]).
2
rectangle(point(Xa,Ya), point(Xb,Yb), Sh):- Sh = shape([X,Y], [X #>= Xa,X #< Xb, Y #>= Ya,Y #< Yb]).
3
box(point(Xa,Ya,Za), point(Xb,Yb,Zb), Sh):- Sh = shape([X,Y,Z], [X #>= Xa,X #< Xb, ...).
...the extra dimensions can be used to represent, e.g., movement, change or progress.
- We can construct new objects using:
- Complementary, union, intersection, subtraction...
About me (C)LP BIM-Spatial Research Bibliography
11 / 17
BIM-Spatial: Implementation I.
1
% Intersection: ShInt = Sh1s ∧ Sh2
2
shape_intersect(Sh1s, Sh2s, ShInt) :-
3
shape_intersect_(Sh1s, Sh2s, [], ShInt).
4 5
shape_intersect_([],_,ShInt,ShInt) :- !.
6
shape_intersect_(_,[],ShInt,ShInt) :- !.
7
shape_intersect_([Sh1|Sh1s],[Sh2|Sh2s],
8
ShInt0,ShInt):-
9
intersect_shapes([Sh1], [Sh2], Sh12),
10
shape_union(ShInt0,Sh12,ShInt1),
11
shape_intersect_([Sh1], Sh2s, ShInt1,ShInt2),
12
shape_intersect_(Sh1s,[Sh2|Sh2s],ShInt2,ShInt).
13
intersect_shapes([shape(Vars,Geo1)],
14
[shape(Vars,Geo2)],ShInt):-
15
copy_term([Vars,Geo1,Geo2],[CVars,CGeo1,CGeo2]),
16
( apply_clp_constraints(CGeo1),
17
apply_clp_constraints(CGeo2) - >
18
dump_clp_constraints(CVars, Vars, GeoInt),
19
ShInt = [shape(Vars,GeoInt)]
20
; ShInt = []
21
).
22
% Union: ShUnion = Sh1s ∨ Sh2s
23
shape_union(Sh1s, Sh2s, ShUnions) :-
24
append(Sh1s, Sh2s, ShUnions).
About me (C)LP BIM-Spatial Research Bibliography
11 / 17
BIM-Spatial: Implementation I.
1
% Intersection: ShInt = Sh1s ∧ Sh2
2
shape_intersect(Sh1s, Sh2s, ShInt) :-
3
shape_intersect_(Sh1s, Sh2s, [], ShInt).
4 5
shape_intersect_([],_,ShInt,ShInt) :- !.
6
shape_intersect_(_,[],ShInt,ShInt) :- !.
7
shape_intersect_([Sh1|Sh1s],[Sh2|Sh2s],
8
ShInt0,ShInt):-
9
intersect_shapes([Sh1], [Sh2], Sh12),
10
shape_union(ShInt0,Sh12,ShInt1),
11
shape_intersect_([Sh1], Sh2s, ShInt1,ShInt2),
12
shape_intersect_(Sh1s,[Sh2|Sh2s],ShInt2,ShInt).
13
intersect_shapes([shape(Vars,Geo1)],
14
[shape(Vars,Geo2)],ShInt):-
15
copy_term([Vars,Geo1,Geo2],[CVars,CGeo1,CGeo2]),
16
( apply_clp_constraints(CGeo1),
17
apply_clp_constraints(CGeo2) - >
18
dump_clp_constraints(CVars, Vars, GeoInt),
19
ShInt = [shape(Vars,GeoInt)]
20
; ShInt = []
21
).
22
% Union: ShUnion = Sh1s ∨ Sh2s
23
shape_union(Sh1s, Sh2s, ShUnions) :-
24
append(Sh1s, Sh2s, ShUnions). ? shape_intersect([shape([X],[X #>= 0,X #< 5])], [shape([X],[X #>= 2,X #< 7])],Sh). Sh = [shape([X],[X #>= 2,X #< 5])] ?
About me (C)LP BIM-Spatial Research Bibliography
11 / 17
BIM-Spatial: Implementation I.
1
% Intersection: ShInt = Sh1s ∧ Sh2
2
shape_intersect(Sh1s, Sh2s, ShInt) :-
3
shape_intersect_(Sh1s, Sh2s, [], ShInt).
4 5
shape_intersect_([],_,ShInt,ShInt) :- !.
6
shape_intersect_(_,[],ShInt,ShInt) :- !.
7
shape_intersect_([Sh1|Sh1s],[Sh2|Sh2s],
8
ShInt0,ShInt):-
9
intersect_shapes([Sh1], [Sh2], Sh12),
10
shape_union(ShInt0,Sh12,ShInt1),
11
shape_intersect_([Sh1], Sh2s, ShInt1,ShInt2),
12
shape_intersect_(Sh1s,[Sh2|Sh2s],ShInt2,ShInt).
13
intersect_shapes([shape(Vars,Geo1)],
14
[shape(Vars,Geo2)],ShInt):-
15
copy_term([Vars,Geo1,Geo2],[CVars,CGeo1,CGeo2]),
16
( apply_clp_constraints(CGeo1),
17
apply_clp_constraints(CGeo2) - >
18
dump_clp_constraints(CVars, Vars, GeoInt),
19
ShInt = [shape(Vars,GeoInt)]
20
; ShInt = []
21
).
22
% Union: ShUnion = Sh1s ∨ Sh2s
23
shape_union(Sh1s, Sh2s, ShUnions) :-
24
append(Sh1s, Sh2s, ShUnions). ? shape_intersect([shape([X],[X #>= 0,X #< 5])], [shape([X],[X #>= 7,X #< 9])],Sh). Sh = [] ?
About me (C)LP BIM-Spatial Research Bibliography
12 / 17
BIM-Spatial: Implementation II.
1
% Complementary: NSh1s = ¬ Sh1
2
shape_complement([], [shape(_,[])]) :- !.
3
shape_complement([shape(_,[])], []) :- !.
4
shape_complement([shape(Vs,Geo)], NSh1s) :-
5
setof(shape(Vs,Dual),
6
Geo2^dual_clp(Geo,Dual), NSh1s).
7 8
% Substraction: Sh1Remains = Sh1s ∧ ¬ Sh2s
9
shape_substract(Sh1s,Sh2s, Sh1Remains) :-
10
shape_substract_(Sh1s,Sh2s, Sh1Remains).
11 12
shape_substract_([],_,[]) :- !.
13
shape_substract_(Sh1s,[],Sh1s) :- !.
14
shape_substract_([Sh1|Sh1s],Sh2s, Sh1Rems):-
15
substract_shape([Sh1],Sh2s, Rem0),
16
shape_substract_(Sh1s,Sh2s, Rem1),
17
shape_union(Rem0,Rem1, Sh1Rems).
18 19
substract_shape([Sh1],[Sh2|Sh2s], Sh1Rems) :-
20
( intersect_shape_([Sh1],[Sh2], ShInt),
21
ShInt == [] - >
22
shape_substract_([Sh1],Sh2s, Sh1Rems)
23
; shape_complement([Sh2], NotSh2),
24
shape_intersect(Sh1,NotSh2, ShRem0),
25
shape_substract_(ShRem0,Sh2s, Sh1Rems)
26
).
About me (C)LP BIM-Spatial Research Bibliography
12 / 17
BIM-Spatial: Implementation II.
1
% Complementary: NSh1s = ¬ Sh1
2
shape_complement([], [shape(_,[])]) :- !.
3
shape_complement([shape(_,[])], []) :- !.
4
shape_complement([shape(Vs,Geo)], NSh1s) :-
5
setof(shape(Vs,Dual),
6
Geo2^dual_clp(Geo,Dual), NSh1s).
7 8
% Substraction: Sh1Remains = Sh1s ∧ ¬ Sh2s
9
shape_substract(Sh1s,Sh2s, Sh1Remains) :-
10
shape_substract_(Sh1s,Sh2s, Sh1Remains).
11 12
shape_substract_([],_,[]) :- !.
13
shape_substract_(Sh1s,[],Sh1s) :- !.
14
shape_substract_([Sh1|Sh1s],Sh2s, Sh1Rems):-
15
substract_shape([Sh1],Sh2s, Rem0),
16
shape_substract_(Sh1s,Sh2s, Rem1),
17
shape_union(Rem0,Rem1, Sh1Rems).
18 19
substract_shape([Sh1],[Sh2|Sh2s], Sh1Rems) :-
20
( intersect_shape_([Sh1],[Sh2], ShInt),
21
ShInt == [] - >
22
shape_substract_([Sh1],Sh2s, Sh1Rems)
23
; shape_complement([Sh2], NotSh2),
24
shape_intersect(Sh1,NotSh2, ShRem0),
25
shape_substract_(ShRem0,Sh2s, Sh1Rems)
26
). ? shape_complement([shape([X],[X #>= 0,X #< 5])], Sh). Sh = [shape([X],[X #< 0]),shape([X],[X #>= 5])] ?
About me (C)LP BIM-Spatial Research Bibliography
12 / 17
BIM-Spatial: Implementation II.
1
% Complementary: NSh1s = ¬ Sh1
2
shape_complement([], [shape(_,[])]) :- !.
3
shape_complement([shape(_,[])], []) :- !.
4
shape_complement([shape(Vs,Geo)], NSh1s) :-
5
setof(shape(Vs,Dual),
6
Geo2^dual_clp(Geo,Dual), NSh1s).
7 8
% Substraction: Sh1Remains = Sh1s ∧ ¬ Sh2s
9
shape_substract(Sh1s,Sh2s, Sh1Remains) :-
10
shape_substract_(Sh1s,Sh2s, Sh1Remains).
11 12
shape_substract_([],_,[]) :- !.
13
shape_substract_(Sh1s,[],Sh1s) :- !.
14
shape_substract_([Sh1|Sh1s],Sh2s, Sh1Rems):-
15
substract_shape([Sh1],Sh2s, Rem0),
16
shape_substract_(Sh1s,Sh2s, Rem1),
17
shape_union(Rem0,Rem1, Sh1Rems).
18 19
substract_shape([Sh1],[Sh2|Sh2s], Sh1Rems) :-
20
( intersect_shape_([Sh1],[Sh2], ShInt),
21
ShInt == [] - >
22
shape_substract_([Sh1],Sh2s, Sh1Rems)
23
; shape_complement([Sh2], NotSh2),
24
shape_intersect(Sh1,NotSh2, ShRem0),
25
shape_substract_(ShRem0,Sh2s, Sh1Rems)
26
). ? shape_substract([shape([X],[X #>= 0,X #< 5])], [shape([X],[X #>= 2,X #< 7])],Sh). Sh = [shape([X],[X #>= 0,X #< 2])] ?
About me (C)LP BIM-Spatial Research Bibliography
13 / 17
BIM-Spatial: Visualization.
- Query: For each shape in arq BIM model.
Sh.
- Output in green the shapes from str BIM model, that intersect Sh.
ShInts.
- Output in red the sub-shape of Sh that is not covered by ShInts.
ShRemain.
File size: 7000+ objects.
About me (C)LP BIM-Spatial Research Bibliography
14 / 17
BIM-Spatial: DEMO.
About me (C)LP BIM-Spatial Research Bibliography
15 / 17
BIM-Spatial: Future Work.
- Represent more complex shapes:
convex polygons in 2D.
1
convex([point(Xa,Ya), point(Xb,Yb)], CvSh ) :-
2
CvSh = shape([X,Y], [(Xb-Xa) * (Y-Ya) - (X-Xa) * (Yb - Ya) #=< 0]).
3
convex([A, B, C | Cs], shape(Vs,[G|Gs]) ) :-
4
convex([A, B], shape(Vs, [G]) ),
5
convex([B, C | Cs], shape(Vs, Gs) ).
About me (C)LP BIM-Spatial Research Bibliography
15 / 17
BIM-Spatial: Future Work.
- Represent more complex shapes:
convex polygons in 2D.
1
convex([point(Xa,Ya), point(Xb,Yb)], CvSh ) :-
2
CvSh = shape([X,Y], [(Xb-Xa) * (Y-Ya) - (X-Xa) * (Yb - Ya) #=< 0]).
3
convex([A, B, C | Cs], shape(Vs,[G|Gs]) ) :-
4
convex([A, B], shape(Vs, [G]) ),
5
convex([B, C | Cs], shape(Vs, Gs) ).
- Provide primitives corresponding to IFC’s spatial relationships:
IfcRelContainedInSpatialStructure.
About me (C)LP BIM-Spatial Research Bibliography
15 / 17
BIM-Spatial: Future Work.
- Represent more complex shapes:
convex polygons in 2D.
1
convex([point(Xa,Ya), point(Xb,Yb)], CvSh ) :-
2
CvSh = shape([X,Y], [(Xb-Xa) * (Y-Ya) - (X-Xa) * (Yb - Ya) #=< 0]).
3
convex([A, B, C | Cs], shape(Vs,[G|Gs]) ) :-
4
convex([A, B], shape(Vs, [G]) ),
5
convex([B, C | Cs], shape(Vs, Gs) ).
- Provide primitives corresponding to IFC’s spatial relationships:
IfcRelContainedInSpatialStructure.
- Define object constructors for:
moving, rotating, or scaling.
About me (C)LP BIM-Spatial Research Bibliography
15 / 17
BIM-Spatial: Future Work.
- Represent more complex shapes:
convex polygons in 2D.
1
convex([point(Xa,Ya), point(Xb,Yb)], CvSh ) :-
2
CvSh = shape([X,Y], [(Xb-Xa) * (Y-Ya) - (X-Xa) * (Yb - Ya) #=< 0]).
3
convex([A, B, C | Cs], shape(Vs,[G|Gs]) ) :-
4
convex([A, B], shape(Vs, [G]) ),
5
convex([B, C | Cs], shape(Vs, Gs) ).
- Provide primitives corresponding to IFC’s spatial relationships:
IfcRelContainedInSpatialStructure.
- Define object constructors for:
moving, rotating, or scaling.
- Extend CLP(Spatial) to reason about:
restrictions consistency, or plans and schedules modelling.
- Design an interface to query/store data in IFC files and/or databases.
About me (C)LP BIM-Spatial Research Bibliography
16 / 17
Other Research Topics
About me (C)LP BIM-Spatial Research Bibliography
17 / 17
Other Research Topics.
- Mod TCLP: a generic framework for Tabled CLP
PPDP’16 [2] & TPLP’19 [3]
- s(CASP): A goal directed non-monotonic reasoner.
TPLP(ICLP)’18 [7] & Datalog’19 [6]
About me (C)LP BIM-Spatial Research Bibliography
17 / 17
Other Research Topics.
- Mod TCLP: a generic framework for Tabled CLP
PPDP’16 [2] & TPLP’19 [3]
- Extends soundness, completeness and termination theorems.
(in preparation)
- Based on a new top-down operational semantics for Tabled CLP.
- Provides a flexible interface.
- With a two-steps projection & an advanced answer management.
- Used to integrate several (external) constraint solvers.
- Used to incrementally compute (recursive) aggregates.
PADL’19 [5]
- s(CASP): A goal directed non-monotonic reasoner.
TPLP(ICLP)’18 [7] & Datalog’19 [6]
About me (C)LP BIM-Spatial Research Bibliography
17 / 17
Other Research Topics.
- Mod TCLP: a generic framework for Tabled CLP
PPDP’16 [2] & TPLP’19 [3]
- Extends soundness, completeness and termination theorems.
(in preparation)
- Based on a new top-down operational semantics for Tabled CLP.
- Provides a flexible interface.
- With a two-steps projection & an advanced answer management.
- Used to integrate several (external) constraint solvers.
- Used to incrementally compute (recursive) aggregates.
PADL’19 [5]
- s(CASP): A goal directed non-monotonic reasoner.
TPLP(ICLP)’18 [7] & Datalog’19 [6]
- Compute (partial) stable models for CASP programs.
- Its top-down execution avoids the grounding phase.
- c-forall/2 a universal quantifier predicate supporting constraints.
About me (C)LP BIM-Spatial Research Bibliography
17 / 17
Other Research Topics.
- Mod TCLP: a generic framework for Tabled CLP
PPDP’16 [2] & TPLP’19 [3]
- Extends soundness, completeness and termination theorems.
(in preparation)
- Based on a new top-down operational semantics for Tabled CLP.
- Provides a flexible interface.
- With a two-steps projection & an advanced answer management.
- Used to integrate several (external) constraint solvers.
- Used to incrementally compute (recursive) aggregates.
PADL’19 [5]
- Application: Re-implementation of an abstract interpreter.
TPLP(ICLP)’19 [4]
- Reducing the code size w.r.t. initial implementation.
- Invoking abstract domain operations to compute the fix-point.
- s(CASP): A goal directed non-monotonic reasoner.
TPLP(ICLP)’18 [7] & Datalog’19 [6]
- Compute (partial) stable models for CASP programs.
- Its top-down execution avoids the grounding phase.
- c-forall/2 a universal quantifier predicate supporting constraints.
About me (C)LP BIM-Spatial Research Bibliography
17 / 17
Other Research Topics.
- Mod TCLP: a generic framework for Tabled CLP
PPDP’16 [2] & TPLP’19 [3]
- Extends soundness, completeness and termination theorems.
(in preparation)
- Based on a new top-down operational semantics for Tabled CLP.
- Provides a flexible interface.
- With a two-steps projection & an advanced answer management.
- Used to integrate several (external) constraint solvers.
- Used to incrementally compute (recursive) aggregates.
PADL’19 [5]
- Application: Re-implementation of an abstract interpreter.
TPLP(ICLP)’19 [4]
- Reducing the code size w.r.t. initial implementation.
- Invoking abstract domain operations to compute the fix-point.
- s(CASP): A goal directed non-monotonic reasoner.
TPLP(ICLP)’18 [7] & Datalog’19 [6]
- Compute (partial) stable models for CASP programs.
- Its top-down execution avoids the grounding phase.
- c-forall/2 a universal quantifier predicate supporting constraints.
- Application: Model and reason in Event Calculus.
LOPSTR’19 [8]
About me (C)LP BIM-Spatial Research Bibliography
18 / 17
Other Research Topics: DEMO.
References
18 / 17
Bibliography I
[1] Anicic, D., Fodor, P., Rudolph, S., St¨ uhmer, R., Stojanovic, N., and Studer, R. (2010). A Rule-Based Language for Complex Event Processing and Reasoning. In International Conference
- n Web Reasoning and Rule Systems, pages 42–57. Springer.
[2] Arias, J. and Carro, M. (2016). Description and Evaluation of a Generic Design to Integrate CLP and Tabled Execution. In 18th Int’l. ACM Symposium on Principles and Practice of Declarative Programming, pages 10–23. ACM Press. [3] Arias, J. and Carro, M. (2019a). Description, Implementation, and Evaluation of a Generic Design for Tabled CLP. Theory and Practice of Logic Programming, 19(3):412–448. [4] Arias, J. and Carro, M. (2019b). Evaluation of the Implementation of an Abstract Interpretation Algorithm using Tabled CLP. Theory and Practice of Logic Programming, 19(5-6):1107–1123. Special Issue on ICLP’19. [5] Arias, J. and Carro, M. (2019c). Incremental evaluation of lattice-based aggregates in logic programming using modular TCLP. In Alferes, J. J. and Johansson, M., editors, 21st Int’l. Symposium on Practical Aspects of Declarative Languages, volume 11372 of LNCS, pages 98–114. Springer.
References
19 / 17