W3C home > Mailing lists > Public > public-rdf-star@w3.org > November 2020

Some reflections on the semantics of embedded triples

From: Antoine Zimmermann <antoine.zimmermann@emse.fr>
Date: Mon, 30 Nov 2020 15:25:28 +0100
To: "public-rdf-star@w3.org" <public-rdf-star@w3.org>, pierre-antoine.champin@ercim.eu, Olaf Hartig <olaf.hartig@liu.se>
Message-ID: <46761bba-157c-f5d3-1337-6a066b18a6e6@emse.fr>
In the current semantics, blank nodes that appear in embedded triples 
are behaving differently from blank nodes outside. This leads to 
peculiarities of semantics with possibly unforseen consequences.

TL;DR: In short, blank nodes inside embedded triples can be understood 
as "placeholders", as opposed to existentials when they are outside 
embedded triples.

==Long comments:==

One consequence is that it is not possible to directly refer to triples 
with blank nodes. For instance, if I say:

<< _:b <p> <o> >>  onto:source  ex:somewhere .

it does not mean that a triple with a bnode in subject position is found 
somewhere. It means that there is a ground triple following the template

?s <p> <o>

that relates to ex:somewhere via relation onto:source. Also, while the 

<< <s> <p> "042"^^xsd:integer >>  onto:source  ex:somewhere .

must be derived from data that has "042" rather than "42", the triple:

<< <s> <p> _:b42 >>  onto:source  ex:somewhere .

can be derived from anything that follows the template:

<< <s> <p> ?x >>  onto:source  ex:somewhere .

If we use the "embedded-triple-as-quotation" metaphore, then if we say:

Mike says "Joe is in the house". (:mike :says << :joe :in :house >>)

we cannot conclude:

Mike says "someone is in the house". (Joe replaced by an existential)

but we can conclude:

Mike says "______ is in the house". (Joe replaced by a placeholder)

This may be a problem for a number of use cases where one wants to 
faithfully refer to triples with blank nodes.

There are also bizarre (or seemingly bizarre) things happening when we 
try to extend the current semantics to more expressive regimes.

Some examples that are not necessarily intuitive:

# Example 1
<< <a> <b> "42"^^xsd:integer >> <x> <y> .
<s> <p> "042"^^xsd:integer .

entails (recognising xsd:integer):

<< <a> <b> _:x >> <x> <y> .
<s> <p> _:x .

# Example 2
<< _:x <b> <c> >> <p> << _:y <b> <c> >> .
_:x owl:sameAs _:y .

does not entail (in RDFS-plus):

<< _:x <b> <c> >> <p> << _:x <b> <c> >> .

# Example 3
<< <clark> <can> <fly> >> owl:sameAs << <superman> <power> <flight> >> .
<clark> a <journalist> .

entails (in RDFS-plus):

<superman> a <journalist> .

but does not entail:

<< <clark> <can> <fly> >> owl:sameAs << <superman> <can> <fly> >> .

Antoine Zimmermann
Institut Henri Fayol
École des Mines de Saint-Étienne
158 cours Fauriel
CS 62362
42023 Saint-Étienne Cedex 2
Tél:+33(0)4 77 42 66 03
Fax:+33(0)4 77 42 66 66
Member of team Connected Intelligence, Laboratoire Hubert Curien
Received on Monday, 30 November 2020 14:25:43 UTC

This archive was generated by hypermail 2.4.0 : Monday, 30 November 2020 14:25:44 UTC