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

Re: RDF* semantics

From: Kingsley Idehen <kidehen@openlinksw.com>
Date: Wed, 7 Aug 2019 12:04:24 -0400
To: Olaf Hartig <olaf.hartig@liu.se>, "public-rdf-star@w3.org" <public-rdf-star@w3.org>
Message-ID: <7f51453a-4534-8681-02c9-299de01a1d12@openlinksw.com>
On 8/7/19 11:31 AM, Olaf Hartig wrote:
> On Wed, 2019-08-07 at 10:37 -0400, Kingsley Idehen wrote:
>> On 8/7/19 5:13 AM, Olaf Hartig wrote:
>> [...]
>>>>> For instance, 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.
>>>> Through what medium did Alice make the aforementioned claim about Bob?
>>> As I wrote, she *told* us (during a conversation in a cafe, if you
>>> like).
>> But that's just another RDF sentence/statement constructed from blank
>> nodes (indefinite pronouns): 
>>
>> @prefix : <#> . 
>>
>> [ a foaf:Person; foaf:name "Alice"] :claims [a foaf:Person; foaf:name
>> "Bob"; foaf:age "23"^^xsd:integer] . 
>>
>> Thus, it still retains the fundamental subject, predicate, object
>> structure covered by terms in the RDF Vocabulary for describing the
>> components of an rdf:Statement.
> I think you made a mistake in this example. According to these triples,
> what Alice claims is of type foaf:Person, has foaf:name "Bob", and
> foaf:age 23. 


It states that a Person named "Alice" :claims a Person named "Bob" has
age 23 expressed as in integer.

Naturally, I checked the sanity of the triple before posting using a
SPARQL Data Entry and Query form we recently publishes [1]. I also
sanity checked with a SPARQL query [2] and the solution is consistent
with what I expressed.


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

>
> Using RDF* (assuming the SA mode I mention in my initial email in this
> thread), we may write the same as follows.
>
> [ a foaf:Person; foaf:name "Alice"]
>            :claims <<:Bob foaf:age "23"^^xsd:integer>> .
>
> Besides that mistake, I am totally fine with what you are saying; yes,
> this communication may be delivered via a document.


I wasn't providing a reified example, I was trying to state that your
initial example about "she says...." is just another RDF statement
expressible using blank nodes (indefinite pronouns) :)


>
>> [...]
>>> However, as an alternative to the syntactic-sugar perspective, another
>>> perspective is to consider RDF* to be based on its own abstract data
>>> model (which is an extension of the RDF data model).
>> An alternative abstract data model is certainly a cleaner approach,
>> but that isn't really RDF anymore. Thus, RDF* would lead to confusion,
>> IMHO.
> Correct, it is not RDF anymore. But it is not something completely
> different either. It is an extension of RDF.


Having "RDF" in as part of the naming of something that isn't RDF only
makes life harder as it will confuse the already confused.


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


Links:

[1]
http://linkeddata.uriburner.com/DAV/home/demo/sparul-form-db-filesystem.html
-- you can paste in the following into the form

    Subject Field: [[ a foaf:Person; foaf:name "Alice"]

    Predicate Field: claims  (* you can paste as is i.e., leave the form
to figure out what to do with the input*)

    Object Field: [a foaf:Person; foaf:name "Bob"; foaf:age
"23"^^xsd:integer]

    Use browser inspector mode see what the form is actually doing with
your input (be it inserts and queries).

[2]
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+%5B+a+foaf%3APerson%3B+foaf%3Aname+%3FaliceName%5D+%3Aclaims+%5Ba+foaf%3APerson%3B+foaf%3Aname+%3FbobName%3B+foaf%3Aage+%3FbobAge%5D+%7D&should-sponge=&format=text%2Fhtml&CXML_redir_for_subjs=121&CXML_redir_for_hrefs=&timeout=30000000
-- SPARQL Query against the data in the Named Graph (a DBMS hosted
Document) used in the example


>
>>>  Then, as has been
>>> done for the RDF data model, we may define a semantics related to the
>>> RDF* data model. Pat's initial point was that such a semantics will help
>>> to provide some clarity (under this alternative perspective, I assume).
>>
>> I'll let Pat speak for himself :)
> ;-)
>
> Olaf
>
>

-- 
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 Wednesday, 7 August 2019 16:04:51 UTC

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