BIM-Spatial Reasoning using CLP & Other Research Topics Joaqu - - PowerPoint PPT Presentation

bim spatial reasoning using clp
SMART_READER_LITE
LIVE PREVIEW

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).


slide-1
SLIDE 1

BIM-Spatial Reasoning using CLP

& Other Research Topics

Joaqu´ ın Arias Herrero 10 Oct 2019

slide-2
SLIDE 2

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.
slide-3
SLIDE 3

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)

slide-4
SLIDE 4

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

slide-5
SLIDE 5

About me (C)LP BIM-Spatial Research Bibliography

4 / 17

(Constraint) Logic Programming

slide-6
SLIDE 6

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).
slide-7
SLIDE 7

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++.

slide-8
SLIDE 8

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)

slide-9
SLIDE 9

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?

slide-10
SLIDE 10

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).

slide-11
SLIDE 11

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] ?

slide-12
SLIDE 12

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]).

slide-13
SLIDE 13

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 = [] ?

slide-14
SLIDE 14

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).

slide-15
SLIDE 15

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.
slide-16
SLIDE 16

About me (C)LP BIM-Spatial Research Bibliography

8 / 17

(C)LP: DEMO.

slide-17
SLIDE 17

About me (C)LP BIM-Spatial Research Bibliography

9 / 17

BIM-Spatial Reasoning using CLP

slide-18
SLIDE 18

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.

slide-19
SLIDE 19

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, ...).

slide-20
SLIDE 20

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.

slide-21
SLIDE 21

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...
slide-22
SLIDE 22

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).

slide-23
SLIDE 23

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])] ?

slide-24
SLIDE 24

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 = [] ?

slide-25
SLIDE 25

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

).

slide-26
SLIDE 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])] ?

slide-27
SLIDE 27

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])] ?

slide-28
SLIDE 28

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.

slide-29
SLIDE 29

About me (C)LP BIM-Spatial Research Bibliography

14 / 17

BIM-Spatial: DEMO.

slide-30
SLIDE 30

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) ).

slide-31
SLIDE 31

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.

slide-32
SLIDE 32

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.

slide-33
SLIDE 33

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.
slide-34
SLIDE 34

About me (C)LP BIM-Spatial Research Bibliography

16 / 17

Other Research Topics

slide-35
SLIDE 35

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]

slide-36
SLIDE 36

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]

slide-37
SLIDE 37

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.
slide-38
SLIDE 38

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.
slide-39
SLIDE 39

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]

slide-40
SLIDE 40

About me (C)LP BIM-Spatial Research Bibliography

18 / 17

Other Research Topics: DEMO.

slide-41
SLIDE 41

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.

slide-42
SLIDE 42

References

19 / 17

Bibliography II

[6] Arias, J., Carro, M., Chen, Z., and Gupta, G. (2019a). Constraint Answer Set Programming without Grounding and its Applications. In Alviano, M. and Pieris, A., editors, 3rd Int’l. Workshop on the Resurgence of Datalog in Academia and Industry (Datalog 2.0), volume 2368, pages 22–26. CEUR-WS. [7] Arias, J., Carro, M., Salazar, E., Marple, K., and Gupta, G. (2018). Constraint Answer Set Programming without Grounding. Theory and Practice of Logic Programming, 18(3-4):337–354. Special Issue on ICLP’18. [8] Arias, J., Chen, Z., Carro, M., and Gupta, G. (2019b). Modeling and Reasoning in Event Calculus Using Goal-Directed Constraint Answer Set Programming. In Proc. of the 29th Int’l. Symposium on Logic-based Program Synthesis and Transformation. [9] Chin, B., von Dincklage, D., Ercegovac, V., Hawkins, P., Miller, M. S., Och, F., Olston, C., and Pereira, F. (2015). Yedalog: Exploring Knowledge at Scale. In LIPIcs-Leibniz International Proceedings in Informatics, volume 32. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik.