- 1. ELIS – Multimedia Lab Semantics of Notation3 Logic: A solution for implicit quantiﬁcation Dörthe Arndt, Ruben Verborgh, Jos De Roo, Hong Sun, Erik Mannens, and Rik Van De Walle Multimedia Lab, Ghent University - iMinds, Belgium Agfa Healthcare - Ghent, Belgium RuleML 2015, Berlin, August 04, 2015 1 / 28
- 2. ELIS – Multimedia Lab Outline Notation3 Logic Implicit Quantiﬁcation Formal Semantics 2 / 28
- 3. ELIS – Multimedia Lab Notation3 Logic Notation3 Logic What is Notation3 Logic? Syntax Semantics Implicit Quantiﬁcation Formal Semantics 3 / 28
- 4. ELIS – Multimedia Lab What is Notation3 Logic? A rule logic for the Semantic Web 4 / 28
- 5. ELIS – Multimedia Lab What is Notation3 Logic? A rule logic for the Semantic Web Invented by Tim Berners-Lee and Dan Connolly (∼2005) 4 / 28
- 6. ELIS – Multimedia Lab What is Notation3 Logic? A rule logic for the Semantic Web Invented by Tim Berners-Lee and Dan Connolly (∼2005) Superset of RDF/Turtle 4 / 28
- 7. ELIS – Multimedia Lab Syntax 5 / 28
- 8. ELIS – Multimedia Lab Syntax Simple Turtle triples: 5 / 28
- 9. ELIS – Multimedia Lab Syntax Simple Turtle triples: :Socrates a :Man. 5 / 28
- 10. ELIS – Multimedia Lab Syntax Simple Turtle triples: :Socrates a :Man. Rules: 5 / 28
- 11. ELIS – Multimedia Lab Syntax Simple Turtle triples: :Socrates a :Man. Rules: {:Socrates a :Man.} => {:Socrates a :Mortal.}. 5 / 28
- 12. ELIS – Multimedia Lab Syntax Statements about formulas: 6 / 28
- 13. ELIS – Multimedia Lab Syntax Statements about formulas: :Plato :says {:Socrates a Mortal.}. 6 / 28
- 14. ELIS – Multimedia Lab Syntax Statements about formulas: :Plato :says {:Socrates a Mortal.}. Use of (quantiﬁed) variables: 6 / 28
- 15. ELIS – Multimedia Lab Syntax Statements about formulas: :Plato :says {:Socrates a Mortal.}. Use of (quantiﬁed) variables: :Plato :knows _:x. _:x a :Man. 6 / 28
- 16. ELIS – Multimedia Lab Syntax Statements about formulas: :Plato :says {:Socrates a Mortal.}. Use of (quantiﬁed) variables: :Plato :knows _:x. _:x a :Man. {?x a :Man.}=>{?x a :Mortal.}. 6 / 28
- 17. ELIS – Multimedia Lab What about Semantics? The formal semantics of N3 is not deﬁned 7 / 28
- 18. ELIS – Multimedia Lab What about Semantics? The formal semantics of N3 is not deﬁned(yet) 7 / 28
- 19. ELIS – Multimedia Lab What about Semantics? The formal semantics of N3 is not deﬁned(yet) Some implementations even diﬀer! 7 / 28
- 20. ELIS – Multimedia Lab What about Semantics? The formal semantics of N3 is not deﬁned(yet) Some implementations even diﬀer! But: 7 / 28
- 21. ELIS – Multimedia Lab What about Semantics? The formal semantics of N3 is not deﬁned(yet) Some implementations even diﬀer! But: Documents like the W3C Team Submission describe the desired semantics 7 / 28
- 22. ELIS – Multimedia Lab What about Semantics? The formal semantics of N3 is not deﬁned(yet) Some implementations even diﬀer! But: Documents like the W3C Team Submission describe the desired semantics Implementations such as reasoners can also be helpful. In particular: 7 / 28
- 23. ELIS – Multimedia Lab What about Semantics? The formal semantics of N3 is not deﬁned(yet) Some implementations even diﬀer! But: Documents like the W3C Team Submission describe the desired semantics Implementations such as reasoners can also be helpful. In particular: Cwm 7 / 28
- 24. ELIS – Multimedia Lab What about Semantics? The formal semantics of N3 is not deﬁned(yet) Some implementations even diﬀer! But: Documents like the W3C Team Submission describe the desired semantics Implementations such as reasoners can also be helpful. In particular: Cwm EYE 7 / 28
- 25. ELIS – Multimedia Lab What about Semantics? The formal semantics of N3 is not deﬁned(yet) Some implementations even diﬀer! But: Documents like the W3C Team Submission describe the desired semantics Implementations such as reasoners can also be helpful. In particular: Cwm EYE We use all these as sources to deﬁne N3’s formal semantics 7 / 28
- 26. ELIS – Multimedia Lab Implicit Quantiﬁcation Notation3 Logic Implicit Quantiﬁcation Existentials Universals Formal Semantics 8 / 28
- 27. ELIS – Multimedia Lab What is implicit quantiﬁcation? In N3 quantiﬁed variables can be expressed without explicitly stating the quantiﬁer 9 / 28
- 28. ELIS – Multimedia Lab What is implicit quantiﬁcation? In N3 quantiﬁed variables can be expressed without explicitly stating the quantiﬁer Blank nodes _:x are existentially quantiﬁed variables 9 / 28
- 29. ELIS – Multimedia Lab What is implicit quantiﬁcation? In N3 quantiﬁed variables can be expressed without explicitly stating the quantiﬁer Blank nodes _:x are existentially quantiﬁed variables Variables beginning with a question mark ?x are universally quantiﬁed 9 / 28
- 30. ELIS – Multimedia Lab What is implicit quantiﬁcation? In N3 quantiﬁed variables can be expressed without explicitly stating the quantiﬁer Blank nodes _:x are existentially quantiﬁed variables Variables beginning with a question mark ?x are universally quantiﬁed But: What is the scope? 9 / 28
- 31. ELIS – Multimedia Lab Simple Examples _:x :knows :Socrates. 10 / 28
- 32. ELIS – Multimedia Lab Simple Examples _:x :knows :Socrates. → ∃x : knows(x, Socrates) 10 / 28
- 33. ELIS – Multimedia Lab Simple Examples _:x :knows :Socrates. → ∃x : knows(x, Socrates) ?x :knows :Socrates. 10 / 28
- 34. ELIS – Multimedia Lab Simple Examples _:x :knows :Socrates. → ∃x : knows(x, Socrates) ?x :knows :Socrates. → ∀x : knows(x, Socrates) 10 / 28
- 35. ELIS – Multimedia Lab Both types of variables ?x :loves _:y. 11 / 28
- 36. ELIS – Multimedia Lab Both types of variables ?x :loves _:y. ∀x∃y : loves(x, y) "Everybody loves someone." 11 / 28
- 37. ELIS – Multimedia Lab Both types of variables ?x :loves _:y. ∀x∃y : loves(x, y) "Everybody loves someone." or ∃y∀x : loves(x, y) "There is someone who is loved by everyone." 11 / 28
- 38. ELIS – Multimedia Lab Both types of variables ?x :loves _:y. ∀x∃y : loves(x, y) "Everybody loves someone." or ∃y∀x : loves(x, y) "There is someone who is loved by everyone." 11 / 28
- 39. ELIS – Multimedia Lab Both types of variables “If both universal and existential quantiﬁcation are speciﬁed for the same formula, then the scope of the universal quantiﬁcation is outside the scope of the existentials”. Source: W3C Team submission; cwm and EYE give the same result. 12 / 28
- 40. ELIS – Multimedia Lab Existentials _:x :says {_:x a :Mortal}. 13 / 28
- 41. ELIS – Multimedia Lab Existentials _:x :says {_:x a :Mortal}. ∃x : says(x, Mortal(x)) There is someone who says about himself that he is mortal. 13 / 28
- 42. ELIS – Multimedia Lab Existentials _:x :says {_:x a :Mortal}. ∃x : says(x, Mortal(x)) There is someone who says about himself that he is mortal. or ∃x1 : says(x, (∃x2 : Mortal(x2))) There is someone who says that someone is mortal. 13 / 28
- 43. ELIS – Multimedia Lab Existentials _:x :says {_:x a :Mortal}. ∃x : says(x, Mortal(x)) There is someone who says about himself that he is mortal. or ∃x1 : says(x, (∃x2 : Mortal(x2))) There is someone who says that someone is mortal. 13 / 28
- 44. ELIS – Multimedia Lab Existentials “When formulae are nested, _: blank nodes syntax [is] used to only identify blank node in the formula it occurs directly in. It is an arbitrary temporary name for a symbol which is existentially quantiﬁed within the current formula (not the whole ﬁle). They can only be used within a single formula, and not within nested formulae.” Source: W3C Team submission; cwm and EYE give the same result. 14 / 28
- 45. ELIS – Multimedia Lab Universals {{?x :p :a.} = {?x :q :b.}.} = {{?x :r :c.} = {?x :s :d.}.}. 15 / 28
- 46. ELIS – Multimedia Lab Universals {{?x :p :a.} = {?x :q :b.}.} = {{?x :r :c.} = {?x :s :d.}.}. (∀x1 : p(x1, a) → q(x1, b)) → (∀x2 : r(x2, c) → s(x2, d)) 15 / 28
- 47. ELIS – Multimedia Lab Universals {{?x :p :a.} = {?x :q :b.}.} = {{?x :r :c.} = {?x :s :d.}.}. (∀x1 : p(x1, a) → q(x1, b)) → (∀x2 : r(x2, c) → s(x2, d)) or ∀x : ((p(x, a) → q(x, b)) → (r(x, c) → s(x, d))) 15 / 28
- 48. ELIS – Multimedia Lab Universals {{?x :p :a.} = {?x :q :b.}.} = {{?x :r :c.} = {?x :s :d.}.}. (∀x1 : p(x1, a) → q(x1, b)) → (∀x2 : r(x2, c) → s(x2, d)) or ∀x : ((p(x, a) → q(x, b)) → (r(x, c) → s(x, d))) Here the reasoning results diﬀer! EYECwm 15 / 28
- 49. ELIS – Multimedia Lab Who is right? 16 / 28
- 50. ELIS – Multimedia Lab Universals The team submission states: “Apart from the set of statements, a formula also has a set of URIs of symbols which are universally quantiﬁed, and a set of URIs of symbols which are existentially quantiﬁed. Variables are then in general symbols which have been quantiﬁed. There is a also a shorthand syntax ?x which is the same as :x except that it implies that x is universally quantiﬁed not in the formula but in its parent formula.” 17 / 28
- 51. ELIS – Multimedia Lab Universals Which is the parent? 18 / 28
- 52. ELIS – Multimedia Lab Universals Which is the parent? :Plato :says { :Socrates a Mortal. Formula }. Parent formula 18 / 28
- 53. ELIS – Multimedia Lab Universals Which is the parent? :Plato :says { :Socrates a Mortal. Formula }. Parent formula The parent formula p of a formula f is the formula containing {f } as a component. 18 / 28
- 54. ELIS – Multimedia Lab Universals But: Universal quantiﬁcation also counts for descendants 19 / 28
- 55. ELIS – Multimedia Lab Universals But: Universal quantiﬁcation also counts for descendants {?x :p :a.}={ :s :q { ?x :r :b. Formula }. Parent formula }. Grandparent formula 19 / 28
- 56. ELIS – Multimedia Lab Universals But: Universal quantiﬁcation also counts for descendants {?x :p :a.}={ :s :q { ?x :r :b. Formula }. Parent formula }. Grandparent formula Is interpreted as: ∀x : p(x, a) → q(s, r(x, b)) 19 / 28
- 57. ELIS – Multimedia Lab Universals But: Universal quantiﬁcation also counts for descendants {?x :p :a.}={ :s :q { ?x :r :b. Formula }. Parent formula }. Grandparent formula Is interpreted as: ∀x : p(x, a) → q(s, r(x, b)) And not as ∀x1 : p(x1, a) → (∀x2 : q(s, r(x2, b))) 19 / 28
- 58. ELIS – Multimedia Lab Universals But: Universal quantiﬁcation also counts for descendants {?x :p :a.}={ :s :q { ?x :r :b. Formula }. Parent formula }. Grandparent formula Is interpreted as: ∀x : p(x, a) → q(s, r(x, b)) And not as ∀x1 : p(x1, a) → (∀x2 : q(s, r(x2, b))) ((((((((((((((((((hhhhhhhhhhhhhhhhhh 19 / 28
- 59. ELIS – Multimedia Lab Formal Semantics Notation3 Logic Implicit Quantiﬁcation Formal Semantics Handling variables N3 context 20 / 28
- 60. ELIS – Multimedia Lab Handling variables The scope of an existential variable is always only the formula it occurs in, not its descendant 21 / 28
- 61. ELIS – Multimedia Lab Handling variables The scope of an existential variable is always only the formula it occurs in, not its descendant The scope of a universal variable depends on its context, scoping is also valid on the descendants of a quantiﬁed formula 21 / 28
- 62. ELIS – Multimedia Lab Handling variables We deﬁne two ways to apply a substitution σ: 22 / 28
- 63. ELIS – Multimedia Lab Handling variables We deﬁne two ways to apply a substitution σ: 1. Component wise application σc: replace only direct components of a formula 22 / 28
- 64. ELIS – Multimedia Lab Handling variables We deﬁne two ways to apply a substitution σ: 1. Component wise application σc: replace only direct components of a formula 2. Total application σt: replace all direct components and nested components 22 / 28
- 65. ELIS – Multimedia Lab Handling variables For f = ?x :says {?x a :Mortal.}. and σ = {?x/:Socrates} 23 / 28
- 66. ELIS – Multimedia Lab Handling variables For f = ?x :says {?x a :Mortal.}. and σ = {?x/:Socrates} we obtain: f σc = :Socrates :says {?x a :Mortal.}. 23 / 28
- 67. ELIS – Multimedia Lab Handling variables For f = ?x :says {?x a :Mortal.}. and σ = {?x/:Socrates} we obtain: f σc = :Socrates :says {?x a :Mortal.}. and f σt = :Socrates :says {:Socrates a :Mortal.}. 23 / 28
- 68. ELIS – Multimedia Lab Handling variables To cope with the behavior of universal quantiﬁcation we deﬁne the nesting level nf(?x) of a variable ?x in a formula f as the lowest level, counted from above, where ?x can be found: 24 / 28
- 69. ELIS – Multimedia Lab Handling variables To cope with the behavior of universal quantiﬁcation we deﬁne the nesting level nf(?x) of a variable ?x in a formula f as the lowest level, counted from above, where ?x can be found: f = ?x :p :o. 24 / 28
- 70. ELIS – Multimedia Lab Handling variables To cope with the behavior of universal quantiﬁcation we deﬁne the nesting level nf(?x) of a variable ?x in a formula f as the lowest level, counted from above, where ?x can be found: f = ?x :p :o. → nf (?x) = 1 24 / 28
- 71. ELIS – Multimedia Lab Handling variables To cope with the behavior of universal quantiﬁcation we deﬁne the nesting level nf(?x) of a variable ?x in a formula f as the lowest level, counted from above, where ?x can be found: f = ?x :p :o. → nf (?x) = 1 f = ?x :p1 {?x :p2 :o2}. 24 / 28
- 72. ELIS – Multimedia Lab Handling variables To cope with the behavior of universal quantiﬁcation we deﬁne the nesting level nf(?x) of a variable ?x in a formula f as the lowest level, counted from above, where ?x can be found: f = ?x :p :o. → nf (?x) = 1 f = ?x :p1 {?x :p2 :o2}. → nf (?x) = 1 24 / 28
- 73. ELIS – Multimedia Lab Handling variables To cope with the behavior of universal quantiﬁcation we deﬁne the nesting level nf(?x) of a variable ?x in a formula f as the lowest level, counted from above, where ?x can be found: f = ?x :p :o. → nf (?x) = 1 f = ?x :p1 {?x :p2 :o2}. → nf (?x) = 1 f = ?y :p1 {?x :p2 :o2}. 24 / 28
- 74. ELIS – Multimedia Lab Handling variables To cope with the behavior of universal quantiﬁcation we deﬁne the nesting level nf(?x) of a variable ?x in a formula f as the lowest level, counted from above, where ?x can be found: f = ?x :p :o. → nf (?x) = 1 f = ?x :p1 {?x :p2 :o2}. → nf (?x) = 1 f = ?y :p1 {?x :p2 :o2}. → nf (?x) = 2 24 / 28
- 75. ELIS – Multimedia Lab Handling variables To cope with the behavior of universal quantiﬁcation we deﬁne the nesting level nf(?x) of a variable ?x in a formula f as the lowest level, counted from above, where ?x can be found: f = ?x :p :o. → nf (?x) = 1 f = ?x :p1 {?x :p2 :o2}. → nf (?x) = 1 f = ?y :p1 {?x :p2 :o2}. → nf (?x) = 2 f = ?y :p1 {?y :p2 {?x :p3 :o3}}. 24 / 28
- 76. ELIS – Multimedia Lab Handling variables To cope with the behavior of universal quantiﬁcation we deﬁne the nesting level nf(?x) of a variable ?x in a formula f as the lowest level, counted from above, where ?x can be found: f = ?x :p :o. → nf (?x) = 1 f = ?x :p1 {?x :p2 :o2}. → nf (?x) = 1 f = ?y :p1 {?x :p2 :o2}. → nf (?x) = 2 f = ?y :p1 {?y :p2 {?x :p3 :o3}}. → nf (?x) = 3 24 / 28
- 77. ELIS – Multimedia Lab Handling variables To cope with the behavior of universal quantiﬁcation we deﬁne the nesting level nf(?x) of a variable ?x in a formula f as the lowest level, counted from above, where ?x can be found: f = ?x :p :o. → nf (?x) = 1 f = ?x :p1 {?x :p2 :o2}. → nf (?x) = 1 f = ?y :p1 {?x :p2 :o2}. → nf (?x) = 2 f = ?y :p1 {?y :p2 {?x :p3 :o3}}. → nf (?x) = 3 We call a universal variable accessible in a formula f iﬀ 0 nf(?x) ≤ 2 . 24 / 28
- 78. ELIS – Multimedia Lab Handling variables Consider { {?x :p :a.} = {?x :q :b.}. f11 } = {{?x :r :c.} = {?x :s :d.}. f12 }. f0 25 / 28
- 79. ELIS – Multimedia Lab Handling variables Consider { {?x :p :a.} = {?x :q :b.}. f11 } = {{?x :r :c.} = {?x :s :d.}. f12 }. f0 nf0 (?x) = 3 25 / 28
- 80. ELIS – Multimedia Lab Handling variables Consider { {?x :p :a.} = {?x :q :b.}. f11 } = {{?x :r :c.} = {?x :s :d.}. f12 }. f0 nf0 (?x) = 3 → ?x is not accessible in f0 25 / 28
- 81. ELIS – Multimedia Lab Handling variables Consider { {?x :p :a.} = {?x :q :b.}. f11 } = {{?x :r :c.} = {?x :s :d.}. f12 }. f0 nf0 (?x) = 3 → ?x is not accessible in f0 nf11 (?x) = 2 and nf12 (?x) = 2 25 / 28
- 82. ELIS – Multimedia Lab Handling variables Consider { {?x :p :a.} = {?x :q :b.}. f11 } = {{?x :r :c.} = {?x :s :d.}. f12 }. f0 nf0 (?x) = 3 → ?x is not accessible in f0 nf11 (?x) = 2 and nf12 (?x) = 2 → ?x is accessible in f11 and f12 25 / 28
- 83. ELIS – Multimedia Lab Handling variables Consider { {?x :p :a.} = {?x :q :b.}. f11 } = {{?x :r :c.} = {?x :s :d.}. f12 }. f0 nf0 (?x) = 3 → ?x is not accessible in f0 nf11 (?x) = 2 and nf12 (?x) = 2 → ?x is accessible in f11 and f12 Those are exactly the formulas where the two ?x are quantiﬁed: 25 / 28
- 84. ELIS – Multimedia Lab Handling variables Consider { {?x :p :a.} = {?x :q :b.}. f11 } = {{?x :r :c.} = {?x :s :d.}. f12 }. f0 nf0 (?x) = 3 → ?x is not accessible in f0 nf11 (?x) = 2 and nf12 (?x) = 2 → ?x is accessible in f11 and f12 Those are exactly the formulas where the two ?x are quantiﬁed: { {?x :p :a.} = {?x :q :b.}. }= { {?x :q :c.} = {?x :r :d.}. } (∀x1 : (p(x1, a) → q(x1, b))) → (∀x2 : (r(x2, c) → s(x2, d))) 25 / 28
- 85. ELIS – Multimedia Lab N3 context Our model deﬁnition is oriented on the RDF semantics with the following additions: 26 / 28
- 86. ELIS – Multimedia Lab N3 context Our model deﬁnition is oriented on the RDF semantics with the following additions: Ground implications have the usual ﬁrst order meaning 26 / 28
- 87. ELIS – Multimedia Lab N3 context Our model deﬁnition is oriented on the RDF semantics with the following additions: Ground implications have the usual ﬁrst order meaning Except if they occur in implications, graphs are handled as simple URIs 26 / 28
- 88. ELIS – Multimedia Lab N3 context Our model deﬁnition is oriented on the RDF semantics with the following additions: Ground implications have the usual ﬁrst order meaning Except if they occur in implications, graphs are handled as simple URIs We add grounding steps for any formula f in the following order: 26 / 28
- 89. ELIS – Multimedia Lab N3 context Our model deﬁnition is oriented on the RDF semantics with the following additions: Ground implications have the usual ﬁrst order meaning Except if they occur in implications, graphs are handled as simple URIs We add grounding steps for any formula f in the following order: 1. If f contains accessible universal variables, it is valid iﬀ f σt is valid for every ground substitution σ for those variables. 26 / 28
- 90. ELIS – Multimedia Lab N3 context Our model deﬁnition is oriented on the RDF semantics with the following additions: Ground implications have the usual ﬁrst order meaning Except if they occur in implications, graphs are handled as simple URIs We add grounding steps for any formula f in the following order: 1. If f contains accessible universal variables, it is valid iﬀ f σt is valid for every ground substitution σ for those variables. 2. If f contains existentials on top level it is valid iﬀ there exists a ground substitution σ for those variables such that f σc is valid. 26 / 28
- 91. ELIS – Multimedia Lab Notation3 Logic Implicit Quantiﬁcation Formal Semantics 27 / 28
- 92. ELIS – Multimedia Lab Conclusion It is possible to deﬁne the semantics as in the team submission 28 / 28
- 93. ELIS – Multimedia Lab Conclusion It is possible to deﬁne the semantics as in the team submission It is diﬃcult and rather unusual to deﬁne the scope of universals as it is proposed in the team submission 28 / 28
- 94. ELIS – Multimedia Lab Conclusion It is possible to deﬁne the semantics as in the team submission It is diﬃcult and rather unusual to deﬁne the scope of universals as it is proposed in the team submission Implicit universal quantiﬁcation could be handled easier, for example on formula level 28 / 28
- 95. ELIS – Multimedia Lab Conclusion It is possible to deﬁne the semantics as in the team submission It is diﬃcult and rather unusual to deﬁne the scope of universals as it is proposed in the team submission Implicit universal quantiﬁcation could be handled easier, for example on formula level Let’s simplify this! 28 / 28
- 96. ELIS – Multimedia Lab Example: Explicit quantiﬁcation @forAll #x. @forSome #y. #x #loves #y . @forSome #y. @forAll #x. #x #loves #y . 29 / 28
- 97. ELIS – Multimedia Lab Example: Explicit quantiﬁcation @forAll #x. @forSome #y. #x #loves #y . @forSome #y. @forAll #x. #x #loves #y . Have the same meaning: ∀x∃y : loves(x, y). 29 / 28
- 98. ELIS – Multimedia Lab Example: Variable of not? @forSome :y. :x :p :y. @forAll :x. :x :q :o. 30 / 28
- 99. ELIS – Multimedia Lab Example: Variable of not? @forSome :y. :x :p :y. @forAll :x. :x :q :o. Is the ﬁrst :x quantiﬁed? 30 / 28