W3C home > Mailing lists > Public > public-rdf-star@w3.org > August 2019

Re: RDF* semantics

From: Kingsley Idehen <kidehen@openlinksw.com>
Date: Fri, 30 Aug 2019 22:56:18 -0400
To: public-rdf-star@w3.org
Message-ID: <0ad928d4-1111-2861-e123-241b71e449d1@openlinksw.com>
On 8/30/19 6:40 PM, thomas lörtsch wrote:
>> On 30. Aug 2019, at 22:41, Martynas Jusevičius <martynas@atomgraph.com> wrote:
>>
>> Thomas,
>>
>> I think the important part of Olaf's answer is the one you skipped,
>> with property domain range:
>>
>> :claims a rdf:Property .
>> :claims rdfs:domain foaf:Person .
>> :claims rdfs:range foaf:Person .
>>
>> this was your usage of :claims property, and it makes no sense to
>> "claim a person" (?!).
> That was Olaf's idea in his mail from 30. Aug 2019, at 10:30
>
>>> While the fact that the person Bob has already been introduced and agreed upon 
>>> is necessary to make single-statement claims about this person, this is 
>>> secondary to the main point I keep on trying to make. Again, in my opinion, 
>>> Kingsley's data cannot be interpreted as you do in your sentence above (person 
>>> Alice claims "that there exists" a person Bob of age 23). In contrast, since 
>>> bnode _:b2 represents 'a person Bob of age 23', the :claims triple with _:b2 
>>> in the object position is to be interpreted as: person Alice claims the person 
>>> Bob (rather than claiming the existence of such a person). Hence, the verb 
>>> "claim" here is used with its meaning of demanding ownership instead of its 
>>> meaning of stating (potentially false) facts. See:
>>>
>>> https://en.wiktionary.org/wiki/claim#Verb
>>>
>>> If you would only want to capture that person Alice claims "that there exists" 
>>> a person Bob of age 23, then the object of the :claims triple cannot be the 
>>> bnode _:b2, but instead the object needs to be a graph that contains the three 
>>> triples that have bnode _:b2 in their subject position. 
>
>> It makes more sense however, to claim a
>> document:
>>
>> :claims a rdf:Property .
>> :claims rdfs:domain foaf:Person .
>> :claims rdfs:range foaf:Document .
>>
>> An example of claiming a document about Bob:
>>
>> ex:Alice :claims [ a foaf:Document; foaf:primaryTopic [ a foaf:Person;
>> foaf:name "Bob" ] ] .
>>
>> If we take :likes, then person is the range:
>>
>> :likes a rdf:Property .
>> :likes rdfs:domain foaf:Person .
>> :likes rdfs:range foaf:Person .
>>
>> Example:
>>
>> ex:Alice :likes [ a foaf:Person; foaf:name "Bob" ] .
>>
>> So I think it can be shown using basic inference that Olaf's
>> interpretation is correct here.
> Well, Kingsley introduced the property :claims and it was pretty clear that he meant it as a synonym for :asserts. Olaf as cited above claimed that :claim here can only be interpreted as :demandsOwnership (why he is so sure about that - because of the syntactic structure - I’m not really sure). I found that a little obscure but adjusted my argumentation for that case too - as it doesn’t really concern my main point.


Hi Thomas,

Watch this subtle slight of hand:

You are correct, and you didn't resort to using plain English prose to
explain your point, but it still got lost somehow.

SPARQL is a better tool for this task.

Query:

PREFIX : <urn:records:test#>
SELECT DISTINCT *
FROM <urn:records:test>
WHERE { :Alice :likes [ a foaf:Person; foaf:name "Bob" ] }
OFFSET 0
LIMIT 5

Query Result
<http://linkeddata.uriburner.com/sparql?default-graph-uri=&query=PREFIX+%3A+%3Curn%3Arecords%3Atest%23%3E%0D%0ASELECT+DISTINCT+*+%0D%0AFROM+%3Curn%3Arecords%3Atest%3E+%0D%0AWHERE+%7B+%3AAlice+%3Alikes+%5B+a+foaf%3APerson%3B+foaf%3Aname+%22Bob%22+%5D+%7D%0D%0AOFFSET+0%0D%0ALIMIT+5&should-sponge=&format=text%2Fhtml&CXML_redir_for_subjs=121&CXML_redir_for_hrefs=&timeout=30000000> 
-- shows that :Alice likes an indefinite pronoun at best, but that
wasn't the point you were trying to make at all!

This is the point you were making i.e., that you can write a sentence one way, subject to context provided by the sentence predicate, arrive at clear intuition. 

Question: 
Who is the Person, that has a foaf:name, and is liked by Alice? Of course the answer is a Person named "Bob" as per:

Revised Query :

PREFIX : <urn:records:test#>
SELECT DISTINCT *
FROM <urn:records:test>
WHERE { :Alice :likes [ a foaf:Person; foaf:name ?o ] }
OFFSET 0
LIMIT 5

Query Result
<http://linkeddata.uriburner.com/sparql?default-graph-uri=&query=PREFIX+%3A+%3Curn%3Arecords%3Atest%23%3E%0D%0ASELECT+DISTINCT+*+%0D%0AFROM+%3Curn%3Arecords%3Atest%3E+%0D%0AWHERE+%7B+%3AAlice+%3Alikes+%5B+a+foaf%3APerson%3B+foaf%3Aname+%3Fo+%5D+%7D%0D%0AOFFSET+0%0D%0ALIMIT+5&should-sponge=&format=text%2Fhtml&CXML_redir_for_subjs=121&CXML_redir_for_hrefs=&timeout=30000000>
-- shows "Bob"

You are correct, but explaining in plain English prose doesn't deliver
your core intuition without loss.

SPARQL is a better tool for this task.

Sentence collection creation using SPARQL INSERT:

PREFIX schema: <http://schema.org/>
PREFIX : <urn:records:test#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

INSERT 
{

GRAPH <urn:records:test> {

:Alice :claims [ a foaf:Person; foaf:name "Bob"; foaf:age
"23"^^xsd:integer] .

:claims a rdf:Property ;
        rdfs:domain foaf:Person ;
        rdfs:range rdf:Statement .  }
}

Question: 
Who is the Person, that has a foaf:name, and is claimed by Alice to be 23 years of age? Of course the answer is a Person named "Bob" as per:

Query:

PREFIX : <urn:records:test#>
SELECT DISTINCT *
FROM <urn:records:test>
WHERE { :Alice :claims [ a foaf:Person; foaf:name ?o;  foaf:age
"23"^^xsd:integer ] }

Query Result
<http://linkeddata.uriburner.com/sparql?default-graph-uri=&query=PREFIX+%3A+%3Curn%3Arecords%3Atest%23%3E%0D%0ASELECT+DISTINCT+*%0D%0AFROM+%3Curn%3Arecords%3Atest%3E%0D%0AWHERE+%7B+%3AAlice+%3Aclaims+%5B+a+foaf%3APerson%3B+foaf%3Aname+%3Fo%3B++foaf%3Aage+%2223%22%5E%5Exsd%3Ainteger+%5D+%7D%0D%0A%0D%0A%0D%0A%0D%0A&should-sponge=&format=text%2Fhtml&CXML_redir_for_subjs=121&CXML_redir_for_hrefs=&timeout=30000000> 
-- shows that :Alice claims a Person foaf:named "Bob" is 23 years of age .


What I take from all of this is a reminder that RDF != English i.e.,
:claims or :likes mean zilch without context provided by rdfs:domain and
rdfs:range (or other definitions from OWL or ontologies with similar
purpose). It is actually more to do with logic (a language we all speak
[with varying degrees of proficiency] albeit using different vernacular
<https://www.lexico.com/en/definition/vernacular#this> e.g English).

-- 
Regards,

Kingsley Idehen	      
Founder & CEO 
OpenLink Software   
Home Page: http://www.openlinksw.com
Community Support: https://community.openlinksw.com
Weblogs (Blogs):
Company Blog: https://medium.com/openlink-software-blog
Virtuoso Blog: https://medium.com/virtuoso-blog
Data Access Drivers Blog: https://medium.com/openlink-odbc-jdbc-ado-net-data-access-drivers

Personal Weblogs (Blogs):
Medium Blog: https://medium.com/@kidehen
Legacy Blogs: http://www.openlinksw.com/blog/~kidehen/
              http://kidehen.blogspot.com

Profile Pages:
Pinterest: https://www.pinterest.com/kidehen/
Quora: https://www.quora.com/profile/Kingsley-Uyi-Idehen
Twitter: https://twitter.com/kidehen
Google+: https://plus.google.com/+KingsleyIdehen/about
LinkedIn: http://www.linkedin.com/in/kidehen

Web Identities (WebID):
Personal: http://kingsley.idehen.net/public_home/kidehen/profile.ttl#i
        : http://id.myopenlink.net/DAV/home/KingsleyUyiIdehen/Public/kingsley.ttl#this


Received on Saturday, 31 August 2019 02:56:45 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:02:56 UTC