W3C home > Mailing lists > Public > public-rdf-star@w3.org > December 2021

Re: multisets everywhere

From: Fabio Vitali <fabio.vitali@unibo.it>
Date: Tue, 21 Dec 2021 10:12:36 +0000
To: Anthony Moretti <anthony.moretti@gmail.com>
CC: thomas lörtsch <tl@rat.io>, Laufer <carlos.laufer@gmail.com>, "public-rdf-star@w3.org" <public-rdf-star@w3.org>
Message-ID: <B6276A96-D578-4BBC-A0B3-B106C1B15CAC@unibo.it>
Hello, 

>  - Start time (assumption if blank: unbounded)
>  - End time (assumption if blank: unbounded)
>  - Location (assumption if blank: unbounded)
>  - Certainty (assumption if blank: 1.0)
> 

In my research team we call them contexts, i.e., conditions that make true a non-absolute statement. We have identified at least seven contexts: 

- Temporal context (a temporal interval within which the statement is true);
- Spatial context (or, better, jurisdictional context, which allows us to distinguish between, say, the Roman Empire, the Church State, the Italian Kingdom and the current Italian Republic, all of which share at least in part the same location;  
- Part-whole context (e..g. when recording facts about individual pages of a ancient manuscript, then creation date, author and ownership apply to the whole book, and not individual pages);
- Object-subject context: e.g. when recording facts about a depiction, i.e. a painting or a photograph, being able to distinguish facts about the painting vs. about the subject of the painting (pretty tricky when you have a painting of a painting, or even a photograph of a painting of a painting, ecc.);
- Provenance context (when you have competing and reciprocally incompatible statements from different sources);
- Confidence context (when you yourself are considering different and reciprocally incompatible statements with different degrees of confidence about their truth);
- Physical context (wee later for an example).

All these contexts are used to create assertions that have the non-absolute statement as subject, and express conditions for their truth. Thus for instance: 

<<:napoleon :role :emperor>>
	temporal:start "1804-05-18"^^xsd:Date;
	temporal:end "1814-04-06"^^xsd:Date;
	jurisdiction:country :FirstFrenchEmpire; 
	confidence:confidence "1.0". 

<< :dihydrogen-monoxide :form :solid >>
	physical:highTemp :0Centigrade. 

<< :dihydrogen-monoxide rdfs:label "ice" >>
	physical:highTemp :0Centigrade. 

<< :dihydrogen-monoxide :form :liquid >>
	physical:lowTemp  :0Centigrade; 
	physical:highTemp :100Centigrade;
	physical:pressure :1atm. 
 
<< :dihydrogen-monoxide rdfs:label "water" >>
	physical:lowTemp  :0Centigrade; 
	physical:highTemp :100Centigrade; 
	physical:pressure :1atm. 

<< :dihydrogen-monoxide :form :gas >>
	physical:lowTemp  :100Centigrade. 

<< :dihydrogen-monoxide rdfs:label "steam" >>
	physical:lowTemp  :100Centigrade.  

I find this approach much cleaner and easier to explain to domain experts than requiring them to create an instance of an n-ary relationship relying on some abstract concept, or to invent a new OWL class which is a subclass of some other class, etc. The list can be further and easily expanded to other contexts, if and when we find out we need them.

Having rdf-star statements available is extremely important because it allows to clearly separate non-absolute statements (that are only true within a given context) from absolute statements (that do not need contexts to be true). And for this purpose, rdf-star is simply perfect: rdf-star triples are non-absolute statements, and plain RDF triples are absolute statements. 

My only problem, as you can see, is that sometimes we need to collect multiple individual statements and associate them to the same context. 

For instance, I want to associate both the form :liquid and the label "water" for the compound :dihydrogen-monoxyde to the conditions "physical temperature between 0 and 100 Centigrades and pressure 1 atmosphere". Right now I had to duplicate the conditions to each of the two non-absolute statements. 

I wish there was a construct in RDF that acts sort of like a... like a container of individual triples! This container could then become the subject of our contexts. Ideally such container would allow us to distinguish between non-absolute statements (that are only true within a given context) from absolute statements (that do not need contexts to be true). 

Oh wait: but one such structure exists in RDF 1.1, it is called named graph, and it provides everything that I need except the distinction between non-absolute and absolute statements! 

GRAPH :ice {
	:dihydrogen-monoxide :form :solid .
	:dihydrogen-monoxide rdfs:label "ice" .
}

GRAPH :water {
	:dihydrogen-monoxide :form :liquid.
	:dihydrogen-monoxide rdfs:label "water".
}

GRAPH :steam {
	:dihydrogen-monoxide :form :gas.
	:dihydrogen-monoxide rdfs:label "steam".
}

:ice   physical:highTemp :0Centigrade. 
:water physical:lowTemp  :0Centigrade; 
:water physical:highTemp :100Centigrade; 
:water physical:pressure :1atm. 
:steam physical:lowTemp  :100Centigrade. 

The problem is that named graphs give me no distinction between containers of absolute statements and containers of non.absolute ones. How I wish there was a symmetry between individual triples (rdf-star vs. rdf triples) and named graphs...

Ciao

Fabio

--

> More generally, basic temporal logic says that the bounds on any event are the bounds for its subevents and the subevents can be explicitly bounded further. If statements represent relationships and relationships are events then the statement is a subevent of the existence event of both the subject and object, therefore any statement can leave those positions blank but still have bounds, temporal and spatial.
>  
> 
> > The positions can be left blank if
> >current assumptions are maintained so that would probably mean most
> >statements can be left untouched, and if the assumptions are different for
> >the entire graph they could be stated at the graph level.
> 
> I don't understand. If they can be left blank and consequently not asserted, how are they defaults? 
> 
> Any reasoner would assume "unbounded" if no values are provided.
>  
> 
> >Better to start from a principled approach and then see how hard it has to
> >> be tweaked to arrive at a practical solution, accomodate corner cases etc.
> >>
> >
> >Feel like that's what I'm doing, haha.
> 
> If you propose to solve a problem that I describe as a very general one by some examples of seemingly common cases you narrow the scope. That narrowing has to be well understood. Maybe my perspective clouds my judgement but my feeling is that your proposal narrows the scope in quite ad hoc ways that might solve the problem for some special cases (and even there I have my doubts as mentioned above) but leaves a lot or most of them (even equally general ones like authorship) unresolved. 
> 
> If I'm understanding you correctly, I agree that a referentially opaque relation such as "statementOf" is still needed for provenance use cases etc., is that what you mean when you're talking about authorship? But the need for a referentially transparent relation, and the subsequent confusion that ensues, would be greatly reduced if statements could have start and end time positions.
> 
> It also addresses the multiset problem because statements with the same subject, object and relation but different start and end times etc. are different statements.
> 
> Regards
> Anthony
> 
Received on Tuesday, 21 December 2021 10:12:52 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 21 December 2021 10:12:54 UTC