- From: Souripriya Das <souripriya.das@oracle.com>
- Date: Mon, 5 Aug 2024 22:37:50 +0000
- To: RDF-star WG <public-rdf-star-wg@w3.org>
- Message-ID: <BL3PR10MB60679BED0AB3F8A55D6DB619FABE2@BL3PR10MB6067.namprd10.prod.outlook.com>
There was a small typo in my last email [1]: changed "asserted" -> "stated" in the following sentence:
The 4-tuple, id-s-p-o, must be unique in an RDF graph. If present, an id-s-p-o can either be "stated" or "reified".
Thanks,
Souri.
[1] https://lists.w3.org/Archives/Public/public-rdf-star-wg/2024Aug/0010.html (Souri, Mon, 5 Aug 2024 19:29:29 +0000)
________________________________
From: Souripriya Das <souripriya.das@oracle.com>
Sent: Monday, August 5, 2024 3:29 PM
To: RDF-star WG <public-rdf-star-wg@w3.org>
Subject: [External] : handling ("asserted") s-p-o triples and ("stated" or "reified") id-s-p-o 4-tuples in RDF/SPARQL
Notations I am using below for the three proposed categories of tuples in RDF1.2:
============
- A: "Asserted" triples => present in graph as s-p-o
- S: "Stated under id" 4-tuples => id rdf:states s-p-o
- R: "Reified under id" 4-tuples => id rdf:reifies s-p-o
Issue A: Handling "stated" vs. "reified" for a given id and s-p-o?
=============================
I think it is better to stay within RDF for this and not involve RDFS rdfs:subPropertyOf.
We can impose the following constraint on RDF graph content:
The 4-tuple, id-s-p-o, must be unique in an RDF graph. If present, an id-s-p-o can either be "asserted" or "reified".
SPARQL INSERT, upon successful completion, will have the following effect on the target RDF graph's content:
- INSERT DATA { :id rdf:states <<( :s :p :o )>> } => the graph will contain id-s-p-o as "stated".
- INSERT DATA { :id rdf:reifies <<( :s :p :o )>> } => the graph will contain id-s-p-o -- as "stated", if it was already present as "stated", and as "reified" otherwise.
Issue B: Should presence of "stated" id-s-p-o guarantee presence of asserted" s-p-o?
===================================
I do not think we should include such a guarantee. This is lossy unless an implementation handles it using reference counts. It is better to keep presence or absence of "asserted" s-p-o triple completely independent of the presence or absence of "stated" id-s-p-o 4-tuples (for one or more values of id).
SPARQL: Combinations to match:
===================
- A => ?s ?p ?o . # Asserted
- S => ?id ~ ?s ?p ?o . # Stated
- R => ?id || ?s ?p ?o . # Reified
- AS => ?id @ ?s ?p ?o . # Asserted or Stated
- AR => ?id |+| ?s ?p ?o . # Asserted or Reified
- SR => ?id |~| ?s ?p ?o . # Stated or Reified
- ASR => ?id |@| ?s ?p ?o . # Asserted or Stated or Reified
Note: When "asserted" s-p-o is matched, the ?id variable (if any) will not have a binding.
Thanks,
Souri.
Received on Monday, 5 August 2024 22:37:59 UTC