bim spatial reasoning using clp
play

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


  1. BIM-Spatial Reasoning using CLP & Other Research Topics Joaqu´ ın Arias Herrero 10 Oct 2019

  2. Outline. About me (C)LP BIM-Spatial Research Bibliography • 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. 2 / 17

  3. About me. About me (C)LP BIM-Spatial Research Bibliography 1993-2002 Architect 2011-2015 Computer Science 1999-2000 RWTH-Aachen 2015- PhD in DSSC Summer’17 UTD-Dallas Summer’19 A!-Helsinki 1993-1999 Madrid Summer’95 Belo Horizonte 2000-2005 Marbella 2013- Madrid (IMDEA Software) 2005-2008 Estepona Summer’19 Helsinki (VisuaLynk) 2008-2009 Bucarest 2009- Madrid (Freelance Arch.) 3 / 17

  4. About me. About me (C)LP BIM-Spatial Research Bibliography 1993-2002 Architect 2011-2015 Computer Science 1999-2000 RWTH-Aachen 2015- PhD in DSSC Summer’17 UTD-Dallas 2010 & 2015 Summer’19 A!-Helsinki 1993-1999 Madrid I love biking Summer’95 Belo Horizonte 2000-2005 Marbella 2013- Madrid (IMDEA Software) 2005-2008 Estepona Summer’19 Helsinki (VisuaLynk) 2008-2009 Bucarest 2009- Madrid (Freelance Arch.) 3 / 17

  5. About me (C)LP BIM-Spatial Research Bibliography (Constraint) Logic Programming 4 / 17

  6. (Constraint) Logic Programming. About me (C)LP BIM-Spatial Research Bibliography • 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). 5 / 17

  7. (Constraint) Logic Programming. About me (C)LP BIM-Spatial Research Bibliography • 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++. 5 / 17

  8. (C)LP: Introduction I. About me (C)LP BIM-Spatial • Is based on 1 st order logic [Socrates, -399] . Research Bibliography ∀ x . man ( x ) → mortal ( x ) 6 / 17

  9. (C)LP: Introduction I. About me (C)LP BIM-Spatial • Is based on 1 st order logic [Socrates, -399] . Research Bibliography ∀ x . man ( x ) → mortal ( x ) • You write logical specifications of searches and get them executed. mortal(X) :- man(X). % X is mortal if X is a man. 1 man(socrates). % Socrates is a man. 2 ?- mortal(socrates). % Is Socrates mortal? 6 / 17

  10. (C)LP: Introduction I. About me (C)LP BIM-Spatial • Is based on 1 st order logic [Socrates, -399] . Research Bibliography ∀ x . man ( x ) → mortal ( x ) • You write logical specifications of searches and get them executed. mortal(X) :- man(X). % X is mortal if X is a man. 1 man(socrates). % Socrates is a man. 2 ?- 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). 6 / 17

  11. (C)LP: Introduction II. About me (C)LP % append(X,Y,Z) true if X concatenated with Y is Z 1 BIM-Spatial append([X | Xs], Ys, [X | Zs]) :- append(Xs, Ys, Zs). 2 Research append([], Ys, Ys ). 3 Bibliography ?- append([1],[2,3], X). X = [1,2,3] ? 7 / 17

  12. (C)LP: Introduction II. About me (C)LP % append(X,Y,Z) true if X concatenated with Y is Z ?- append(X, Y, [1,2,3]). 1 BIM-Spatial append([X | Xs], Ys, [X | Zs]) :- append(Xs, Ys, Zs). 2 Research append([], Ys, Ys ). 3 Bibliography ?- append([1],[2,3], X). X = [1,2,3] ? 7 / 17

  13. (C)LP: Introduction II. About me (C)LP % append(X,Y,Z) true if X concatenated with Y is Z ?- append(X, Y, [1,2,3]). 1 BIM-Spatial append([X | Xs], Ys, [X | Zs]) :- append(Xs, Ys, Zs). 2 Research append([], Ys, Ys ). X = [], Y = [1,2,3] ?; 3 Bibliography X = [1], Y = [2,3] ?; X = [1,2], Y = [3] ?; ?- append([1],[2,3], X). X = [1,2,3], Y = [] ? X = [1,2,3] ? 7 / 17

  14. (C)LP: Introduction II. About me (C)LP % append(X,Y,Z) true if X concatenated with Y is Z ?- append(X, Y, [1,2,3]). 1 BIM-Spatial append([X | Xs], Ys, [X | Zs]) :- append(Xs, Ys, Zs). 2 Research append([], Ys, Ys ). X = [], Y = [1,2,3] ?; 3 Bibliography X = [1], Y = [2,3] ?; X = [1,2], Y = [3] ?; ?- append([1],[2,3], X). X = [1,2,3], Y = [] ? X = [1,2,3] ? However , CLP loops due: • Left recursion: path(A,B) :- path(A,Z), edge(Z,B). 1 path(A,B) :- edge(A,B). 2 • Non-stratified negation: p(X) :- not q(X). 1 q(X) :- not p(X). 2 7 / 17

  15. (C)LP: Introduction II. About me (C)LP % append(X,Y,Z) true if X concatenated with Y is Z ?- append(X, Y, [1,2,3]). 1 BIM-Spatial append([X | Xs], Ys, [X | Zs]) :- append(Xs, Ys, Zs). 2 Research append([], Ys, Ys ). X = [], Y = [1,2,3] ?; 3 Bibliography X = [1], Y = [2,3] ?; X = [1,2], Y = [3] ?; ?- append([1],[2,3], X). X = [1,2,3], Y = [] ? X = [1,2,3] ? However , CLP loops due: Other Research Topics: • Tabled CLP • Left recursion: [PADL’16, TLPL’19] • Suspends subsumed calls & reuses answers. path(A,B) :- path(A,Z), edge(Z,B). 1 • Improves termination and efficiency. path(A,B) :- edge(A,B). 2 • Non-stratified negation: • s(CASP) [TLPL’18] • Goal directed ASP (w.o. grounding). p(X) :- not q(X). 1 q(X) :- not p(X). • c-forall/2 handles constraints. 2 7 / 17

  16. (C)LP: DEMO. About me (C)LP BIM-Spatial Research Bibliography 8 / 17

  17. About me (C)LP BIM-Spatial Research Bibliography BIM-Spatial Reasoning using CLP 9 / 17

  18. BIM-Spatial Reasoning using CLP. About me • Motivation : Spatial, ontology and logic queries for BIM models. (C)LP BIM-Spatial • BIM-Spatial detects spatial semantics relationships in/between models... Research ...providing a unique formalism to combine the different semantics. Bibliography 10 / 17

  19. BIM-Spatial Reasoning using CLP. About me • Motivation : Spatial, ontology and logic queries for BIM models. (C)LP BIM-Spatial • BIM-Spatial detects spatial semantics relationships in/between models... Research ...providing a unique formalism to combine the different semantics. Bibliography Additionally: • The spatial constraint model is n -dimensional... interval(point(Xa), point(Xb), Sh) :- Sh = shape([X], [X #>= Xa,X #< Xb]). 1 rectangle(point(Xa,Ya), point(Xb,Yb), Sh):- Sh = shape([X,Y], [X #>= Xa,X #< Xb, Y #>= Ya,Y #< Yb]). 2 box(point(Xa,Ya,Za), point(Xb,Yb,Zb), Sh):- Sh = shape([X,Y,Z], [X #>= Xa,X #< Xb, ...). 3 10 / 17

  20. BIM-Spatial Reasoning using CLP. About me • Motivation : Spatial, ontology and logic queries for BIM models. (C)LP BIM-Spatial • BIM-Spatial detects spatial semantics relationships in/between models... Research ...providing a unique formalism to combine the different semantics. Bibliography Additionally: • The spatial constraint model is n -dimensional... interval(point(Xa), point(Xb), Sh) :- Sh = shape([X], [X #>= Xa,X #< Xb]). 1 rectangle(point(Xa,Ya), point(Xb,Yb), Sh):- Sh = shape([X,Y], [X #>= Xa,X #< Xb, Y #>= Ya,Y #< Yb]). 2 box(point(Xa,Ya,Za), point(Xb,Yb,Zb), Sh):- Sh = shape([X,Y,Z], [X #>= Xa,X #< Xb, ...). 3 ...the extra dimensions can be used to represent, e.g., movement, change or progress. 10 / 17

  21. BIM-Spatial Reasoning using CLP. About me • Motivation : Spatial, ontology and logic queries for BIM models. (C)LP BIM-Spatial • BIM-Spatial detects spatial semantics relationships in/between models... Research ...providing a unique formalism to combine the different semantics. Bibliography Additionally: • The spatial constraint model is n -dimensional... interval(point(Xa), point(Xb), Sh) :- Sh = shape([X], [X #>= Xa,X #< Xb]). 1 rectangle(point(Xa,Ya), point(Xb,Yb), Sh):- Sh = shape([X,Y], [X #>= Xa,X #< Xb, Y #>= Ya,Y #< Yb]). 2 box(point(Xa,Ya,Za), point(Xb,Yb,Zb), Sh):- Sh = shape([X,Y,Z], [X #>= Xa,X #< Xb, ...). 3 ...the extra dimensions can be used to represent, e.g., movement, change or progress. • We can construct new objects using: • Complementary, union, intersection, subtraction... 10 / 17

  22. BIM-Spatial: Implementation I. About me (C)LP BIM-Spatial % Intersection: ShInt = Sh1s ∧ Sh2 intersect_shapes([shape(Vars,Geo1)], 1 13 Research shape_intersect(Sh1s, Sh2s, ShInt) :- [shape(Vars,Geo2)],ShInt):- 2 14 Bibliography shape_intersect_(Sh1s, Sh2s, [], ShInt). copy_term([Vars,Geo1,Geo2],[CVars,CGeo1,CGeo2]), 3 15 ( apply_clp_constraints(CGeo1), 4 16 shape_intersect_([],_,ShInt,ShInt) :- !. apply_clp_constraints(CGeo2) - > 5 17 shape_intersect_(_,[],ShInt,ShInt) :- !. dump_clp_constraints(CVars, Vars, GeoInt), 6 18 shape_intersect_([Sh1|Sh1s],[Sh2|Sh2s], ShInt = [shape(Vars,GeoInt)] 7 19 ShInt0,ShInt):- ; ShInt = [] 8 20 intersect_shapes([Sh1], [Sh2], Sh12), ). 9 21 % Union: ShUnion = Sh1s ∨ Sh2s shape_union(ShInt0,Sh12,ShInt1), 10 22 shape_intersect_([Sh1], Sh2s, ShInt1,ShInt2), shape_union(Sh1s, Sh2s, ShUnions) :- 11 23 shape_intersect_(Sh1s,[Sh2|Sh2s],ShInt2,ShInt). append(Sh1s, Sh2s, ShUnions). 12 24 11 / 17

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend