Re: RDF* semantics

> On 29. Aug 2019, at 09:15, Olaf Hartig <olaf.hartig@liu.se> wrote:
> 
> Hi Thomas,
> 
> On Sun, 2019-08-25 at 14:02 +0200, thomas lörtsch wrote:
>>> On 17. Aug 2019, at 17:49, Olaf Hartig <olaf.hartig@liu.se> wrote:
>>> Kingsley,
>>> [...]
>>> I know. That's why I am saying that, according to your example data, what 
>>> Alice is claiming is a person (something of type foaf:Person) rather than a 
>>> statement about the person. Let's break down your Turtle-formatted example 
>>> data by writing it in Turtle *without* the syntactic abbreviations of Turtle 
>>> that you have been using, which gives us the following snippet of Turtle:
>>> 
>>> _:b1  rdf:type  foaf:Person .
>>> _:b1  foaf:name  "Alice" .
>>> _:b1  :claims  _:b2 .
>>> _:b2  rdf:type  foaf:Person .
>>> _:b2  foaf:name  "Bob" .
>>> _:b2  foaf:age "23"^^xsd:integer .
>>> 
>>> As I hope you see now, there is some thing--denoted by blank note _:b2--that 
>>> the person Alice :claims and this thing is of rdf:type foaf :Person. So, 
>>> according to this data, Alice claims a person.
>> 
>> How is it that in your interpretation _:b1 stands for "Alice" but _:b2 is
>> interpreted as "some thing of rdf:type foaf :Person"? With your interpretation
>> of _:b1 you follow natural intuition whereas your interpretation of _:b2 jumps
>> boldly into unhealthy semantic quagmires.
> 
> Perhaps I tried to be overly precise regarding _:b2, which is the thing
> that the discussion focuses on. So, let's try again based on your
> "natural intuition":
> 
>> [...] the only natural reading IMHO opinion is the one that Kingsley intended.
>> The natural interpretation of _:b1 in its entirety is "the person Alice"
> 
> Let's say: _:b1 is *a* person Alice (since we don't know which Alice).
> 
>> and of _:b2 it’s as well the entirety of all properties, namely that
>> "the person Bob is of age 23".
> 
> No. In my opinion, _:b2 cannot be interpreted as something saying *that*
> the person Bob is of age 23. Instead, it should be interpreted as a
> person Bob who is of age 23.

Ah, you are really taking all those little ’that’ words very serious ;-) Okay, the part in quotes, "the person Bob is of age 23", was the part that I translated all statements about _:b2 to. I intended to only reoroduce all facts stated about _:b2 in one short sentence. However your translation, "a person Bob who is of age 23", captures the sense of factualness even better.

> Therefore, all the triples together seem to say that a person named
> Alice claims a person named Bob who is of age 23. My initial example
> said something else, namely: person Alice claims *that* person Bob is of
> age 23.

Hmm, that *that* again ;-) So you mean the difference between Alice claiming that there exists a "Bob, person, aged 23" and Alice claiming that some already introduced and agreed upon person Bob is "aged 23"? I would agree with that. 
Technically that is the difference between talking about a set of triples with the same subject (lines 4-6 in the above example) and a single triple (line 6), right?

>> [...]
>> However I would also like to stress that such modelling is not
>> meta-modelling and it is not equivalent to a layer of abstraction
>> (vulgo taking one step back) like reification or named graphs.
> 
> Exactly! That's the point I am trying to make with this example. To
> capture the statement that "Alice claims *that* Bob is of age 23," we
> need a form of meta-modeling.

And I just wanted to express my endorsement of your position in that respect.

>> [...]
>> Well, as I’m on it, a shameless plug: I recently posted an unhaelthily
>> long mail to this list . That mail started with [...] I wonder if anybody
>> bothered to read that sermon.
> 
> I did ;-)

Great! :-) 

> ...and I was planning to respond to it. However, since I am on this list
> here in my spare time, I couldn't get to it right away.

No pressure! ;-)

Thomas



> Olaf
> 
> 
>> 
>> Cheers,
>> Thomas
>> 
>>> That's different from what was 
>>> meant to be captured in my original example, namely, that Alice makes a claim/
>>> statement *about* a person (in my original words: "we my want to capture that 
>>> Alice told us that Bob's age is 23, even if we don't have a document from 
>>> Alice with this statement/claim regarding Bob's age").
>>> 
>>>> [...]
>>>> BTW -- I can also do all of this in a document (as per SPARQL Named
>>>> Graphs) and just pepper the document with additional metadata for
>>>> provenance purposes. Basically, why aren't  SPARQL Named Graphs a viable
>>>> solution to this problem i.e., RDF stays as is for data definition while
>>>> languages such as SPARQL handle operations on RDF structured data?
>>> 
>>> I never said that Named Graphs cannot be used as a solution (to the problem of 
>>> representing and querying metadata about individual triples). In contrast, 
>>> such an application of the concept of Named Graphs may be defined by assuming 
>>> that every relevant Named Graph consists of a single triple only. However, by 
>>> using the concept of Named Graphs to capture triple-level metadata, it becomes 
>>> tricky to also represent and query graph-level metadata. More precisely, it 
>>> becomes tricky to represent both triple-level metadata and graph-level 
>>> metadata within the same dataset; and it becomes tricky to request both 
>>> triple-level and graph-level metadata within the same query.
>>> 
>>> Olaf
>>> 
>>> 
>>>>>> [...]
>>>>>> 
>>>>>>> I guess what you actually wanted to write was something
>>>>>>> like the following:
>>>>>>> 
>>>>>>> [ a foaf:Person; foaf:name "Alice"]
>>>>>>> 
>>>>>>>          :claims [ a rdf:Statement ;
>>>>>>>          :
>>>>>>>                    rdf:subject   :Bob ;
>>>>>>>                    rdf:predicate foaf:age ;
>>>>>>>                    rdf:object    "23"^^xsd:integer ] .
>>>>>> 
>>>>>> No, that is just a reified version of my initial statement.
>>>>> 
>>>>> Are you saying that you consider the set of triples serialized as this
>>>>> piece of Turtle to be semantically equivalent to the set of triples
>>>>> serialized in the piece of Turtle above?
>>>> 
>>>> Of course not.
>>>> 
>>>> 
>>>> Kingsley
>>>> 
>>>>>> [...]
>>>>>> 
>>>>>>> By the definition of the RDF* data model, every RDF graph is an RDF*
>>>>>>> graph. Additionally, by the definition of the RDF*-to-RDF mapping, every
>>>>>>> RDF* graph can be viewed as an RDF graph.
>>>>>> 
>>>>>> Sorta, but this is serious work to be done explaining all of this in a
>>>>>> manner that prevents the confusion I fear.
>>>>> 
>>>>> Point taken.
>>>>> 
>>>>> Olaf
>>> 
>>> 
>> 
> 
> 

Received on Thursday, 29 August 2019 08:19:15 UTC