Re: multisets everywhere

> Am 22.12.2021 um 17:29 schrieb Fabio Vitali <fabio.vitali@unibo.it>:
> 
> Dear Thomas, 
> 
> I missed your message completely. I do not know why. Sorry,

No problem, and sorry as well for the delay in my answer to your answer but I was a bit lazy around festives ;-)

> here are my answers. 
> 
>> Hi Fabio,
>> 
>> I wonder if your interpretation of quoted triples as, in your words, "non-absolute statements" is in line with the community report. Dörthe has expressed a similar view if I understood her right (but so far she hasn’t replied to my request for clarification). I always understood quoted triples as non-asserted, period. On the other hand I understood annotated statements as valid in accordance with their annotations. 
> 
> Correct. We currently define statements in our collection as belonging to one of three categories: 
> 
> 1) Undisputed: currently noone has challenged them so for the moment we assume them as true. It is not a testament of certainty, just of a lack of opinion of the contrary. Plain RDF triples are undisputed.
> 2) Disputed: there are at least two competing opinions that are inconsistent with each other, and we do not know yet if one is better than the other. Quoted triples and conjectures are disputed. 
> 3) Settled: there are at least two competing opinions that are inconsistent with each other, but one has been selected as the best one, which we'll assume as true, and the others are considered false. Collapsed conjectures and (imperfectly) annotated triples are candidates for settled claims. 
> 
>> The modelling that you propose makes it harder to realize another goal, the one that I thought fuels the demand for "unasserted assertions": it makes it harder to state something that we don’t endorse. For example a few decades ago it was still not uncommon in Germany to say that "Hitler wasn’t all bad as he had for example built the Autobahn". How do I model that in RDF? Under no circumstance do I want to have a statement saying "Hitler wasn’t all bad" in my triple store. If quoted triples are strictly unasserted, then this is easy:
>> 
>>   << :Hitler :not :AllBad >> :because :Autobahn .
>> 
>> I might go even further, like:
>> 
>>  << << :Hitler :not :AllBad >> :because :Autobahn >> 
>>      :accordingTo :SomeEternallyYesterday .             [0]
>> 
>> The thing is: I don’t want the central statement - "Hitler not all bad" - ever to pop up in some unassuming query! How can I do that if, as in your interpretation, quoted statements are not unasserted but asserted under the condition of their annotation?
> 
> This is a fourth category, a statement that has not been claimed, usable only as a challengeable claim, which can be simply expressed as a disputed claim associated to nobody. 
> 
> Now, in my vision, quoted triples could stand on their own, i.e.:  << :s :p :o >> to me makes perfect sense as a non-asserted triple that exists in the dataset. But the current syntax of RDF* does not allow it, because what use would be a non-asserted triple that that cannot be mentioned, since it does not have its own identifier which we can refer to elsewhere? So we express it slightly differently, e.g.: 
> 
> << :s :p :o >> prov:wasAttributedTo :emptySet
> 
> So your example could be represented as
> 
> << :Hitler :not :AllBad >> :accordingTo :noone. 
> 
> Since we will never trust :noone, the quoted triple will never be asserted, but still can be considered for discussion and challenged, if the need arises. 

Well, but it is associated to some notorious eternally yesterdays, not to noone. I still don’t want to assert it. So maybe it fits better into category 3, considered false?

>> I think that outside of such extreme examples there is a gradual shift between asserted and unasserted: assertions may be conditionalized explicitly through annotations but also unexplicitly through context or through additional statements or through exchanging one node in the triple by a blank node with its own annotations. But the general direction of the semantic web surely is that we offer and ingest data that we believe in, that we find useful, that we want to operate on. So the default assumption is: "this is true (hopefully) (check the small print)". I think that this would also be a useful default assumption for annotated statements. The statement
>> 
>>   :RichardB :marriedTo :ElizabethT .
>> 
>> says that there exists a :marriedTo relation between those two persons - nothing more, nothing less - and that is indeed true. That relation exists. History is real too. It has some properties, among them that it isn’t in effect today. That statement would be false if the relation had never existed, everything else is fair game. Additional detail
> 
> Uhm. Is this the best possible use of relations and triples? Most of the information we use is temporally bound. E.g.: 
> 
> :fabiovitali :job :kindergartenstudent.
> :fabiovitali :job :primaryschoolstudent.
> :fabiovitali :job :middleschoolstudent.
> :fabiovitali :job :highschoolstudent.
> :fabiovitali :job :undegraduatestudent.
> :fabiovitali :job :graduatestudent.
> :fabiovitali :job :postdoc.
> :fabiovitali :job :assistantprofessor.
> :fabiovitali :job :associateprofessor.
> :fabiovitali :job :fullprofessor.
> 
> What is my job? All of them? Well, I'd disagree... 
> 
> Consider ownerships of some painting over the centuries: One count is describing the complex trajectories of ownership over hundreds of different individuals and organizations, another is being able to tell who has it today and where I can go to see it. 

The properties in RDF vocabularies in general don’t come with an "applicable now" sticker attached. Simple binary assertions are subject to refinement by further assertions. The rule that no triple can falsify another triple has a reverse: you shouldn’t interpret too much into a triple. Assuming that a :job property is valid forever is just not very sensical. You’ll have to look for more information if you want to be sure that it is valid now.

>> Your style of modelling however says: per default no information can be trusted, we need to know more. Where does that stop? Why are the annotations not quoted themselves?
> 
> 
> Indeed! Indeed! This is exactly the purpose for quoting quoted triples in RDF*: 
> 
> <<
>  << :salvatormundi dc:creator :leonardo >>
>  prov:wasAttributedTo :martinkemp 
>>> 
> prov:wasAttributedTo :wikipedia . 
> 
> And then you can go on with further nesting, if needed. 

Yes, but my question was how you define what is needed. Why not put every claim in quoted triples? How do I know if I should query for plain or quoted triples? I’ll always have to query for both. That makes my life much harder.

To put it another way: it seems to me that your proposal tries to make data flow upwards on the semantic web. The facts we really care about are only expressed but not asserted via quoted triples whereas the meta data is asserted right away. By my intuition this feels wrong. I have no problem with the use of quoted triples to document claims that I don’t want to assert, but in my understanding that should be the exception, not the norm. If it would become the norm in my data I’d rather try to re-model. Maybe your proposal makes more sense in the context of your application - my apologies for not thinking that through! - but my main interest is in more mainstream tasks.

> One of my problem with RDF* is that you can only quote plain triples and quoted triples, but not annotated triples. 

I don’t understand. What do you mean by annotated triples? The shorthand syntax? 

> If there was a way to quote annotated triples, yet another type of assertions would be expressible: hypothesizing the assertion of a triple. This would complete the circle and provide closure to the conjecturing/asserting operators. 
> 
>> And how is this compatible with all the data out there already? Do you expect everybody to transform their statements into quoted statements?
> 
> This is something I would like to discuss with you. 
> 
> I see the same problem with RDF*:

I’m not a proponent of RDF*, so this doesn’t answer my question, and I’m not sure what you want to discuss with me.

> what happens if you want to quote someone else's triple without endorsing it?

First you would have to have a way to express that it is someone elses triple. The CG report contained an example of a reference to an occurrence in a graph. I’m not sure though if the ':in' part is still in the report but anways that would be my way to go about this problem.

> You must remove the plain triple and replace it with a quoted triple, of course.

Again I assume that plain triple is in another graph, by someone else, so I have no right to remove that plain triple but I can add it as a quoted triple in my graph, record where I saw it and annotate it as I see fit.

> But how? How about an extension to SPARQL Update? Something like: 
> 
> QUOTE { 
>  ?q1 :statementOf << :salvatormundi dc:creator :leonardo >>
>  ?q2 :statementOf << :salvatormundi dc:creator :boltraffio >>
> } CONSTRAINED BY {
>  ?q1 prov:wasAttributedTo :martinkemp .    
>  ?q2 prov:wasAttributedTo :jacquesfranck .
> }
> 
> Ideally this would have the effect of converting an asserted triple into a quoted one by removing from the local dataset the original triple and inserting the new quoted triple. Just a random idea, of course.  
> 
>> W.r.t. graphs: Pierre-Antoine modelled graphs as lists of quoted statements.
> 
> I tend to disagree that quoting[*] a container of triples is simply equivalent to quoting each triple inside it (although of course it is an integral part of that), just like I do not think that annotating a quoted triple is sufficient to reassert a quoted triple (although of course it is an integral part of it). If you are interested I can explain this disagreement in full.
> 
>> OTOH: what holds you back to define your own named graph semantics, annotate your named graphs accordingly and be done with it?
> 
> Well, because I do not like to play alone in a padded room with my brand new shiny toy, and I prefer to play with everybody else even with a battered down and imperfect toy, of course. What use would be a semantics I am alone in adopting? Would this even be Linked Data at all?

As named graphs have no standardized semantics you are free to define appropriate semantics for each of the categories you described above, share those definitions e.g. via an RDF/RDFS/OWL/etc ontology, use them to declare the semantics of named graphs you use, watch those definitions catch on, exchange data with others that use the semantics you proposed etc etc. Although I don’t claim to have carefully digested and understood the whole breadth and depth of the proposal you are working on it seems to me that it can be fully captured in such a way. You don’t need to wait a few more years until the dust settles around RDF-star and hope for the outcome to be what you’d prefer.
I used to think that it is a desaster that RDF 1.1 didn’t standardize named graph semantics - but it’s also a chance.

Best,
Thomas


> Ciao
> 
> Fabio
> 
> 
> 
> 
> [*] Here and above I use the term "quoted triple" because this is the prevalent term used in this community for triples that are Expressed Without being Asserted (EWA). I do not like it very much because quoting is only one of the multiple uses for EWA triples, an important one but clearly NOT the only one. Similarly I do not like the term "annotated triple" which means very little to me. 
> 
> 
> 
> --
> 
> Fabio Vitali                            Tiger got to hunt, bird got to fly,
> Dept. of Computer Science        Man got to sit and wonder "Why, why, why?'
> Univ. of Bologna  ITALY               Tiger got to sleep, bird got to land,
> phone:  +39 051 2094872              Man got to tell himself he understand.
> e-mail: fabio@cs.unibo.it         Kurt Vonnegut (1922-2007), "Cat's cradle"
> http://vitali.web.cs.unibo.it/
> 
> 
> 
> 

Received on Monday, 3 January 2022 23:02:43 UTC