- From: Anthony Moretti <anthony.moretti@gmail.com>
- Date: Thu, 23 Dec 2021 00:33:27 +1030
- To: Fabio Vitali <fabio.vitali@unibo.it>
- Cc: Pierre-Antoine Champin <pierre-antoine.champin@ercim.eu>, "public-rdf-star@w3.org" <public-rdf-star@w3.org>, thomas lörtsch <tl@rat.io>
- Message-ID: <CACusdfThCNjNGLGLY9Da_SyrUWmgaDQEHvFcuAkkL+OCN3u55A@mail.gmail.com>
Sorry, I should have picked referentially transparent examples, sorry if that confuses anybody, I just took the fragments from the CG report and was focusing on the structures of the statements not the contents of them. Anthony On Thu, Dec 23, 2021 at 12:14 AM Anthony Moretti <anthony.moretti@gmail.com> wrote: > Hi Fabio > > >> << :salvatormundi dc:creator :leonardo >> >> prov:wasAttributedTo :martinkemp . >> >> << :salvatormundi dc:creator :boltraffio >> >> prov:wasAttributedTo :jacquesfranck . >> > > Very quick aside, I think maybe that should be rewritten as something like > this, but I'm actually not sure: > > _:a :statementOf << :salvatormundi dc:creator :leonardo >> ; > prov:wasAttributedTo :martinkemp . > > _:b :statementOf << :salvatormundi dc:creator :boltraffio >> ; > prov:wasAttributedTo :jacquesfranck . > > My whole point is: is there a general way (i.e., not relying on local >> interpretations) to express without asserting a) individual triples and b) >> bunches of triples, and associate them to constraints that determine under >> which conditions they are asserted and under which conditions they are not? >> > > This whole conversation is very interesting because it touches so many > different facets of what we're doing. It seems like what you're asking for > here is analogous to *conditional statements* found in programming, for > example if-then-else: > > if (Statement1 AND Statement2 AND Statement3) > then (Statement4 AND Statement5 AND Statement6) > else (Statement7 AND Statement8 AND Statement9) > > I don't know if something like that exists, but if it doesn't then maybe > it could be something as simple as that? > > My obvious reaction would be: there are two kinds of graphs, asserting and >> non-asserting graphs, and we need two separate structures and syntaxes for >> the two of them, and this is what I am humbly trying to propose. You >> mention referential transparency (I am personally starkly in favour of it >> and do not see the big deal with referential opacity, but I am in no >> position or interest in debating it). These are two dimensions to work on, >> which creates four types of graphs: >> >> 1) asserted graphs with referential transparency >> 2) asserted graphs with referential opacity >> 3) non-asserted graphs with referential transparency >> 4) non-asserted graphs with referential opacity >> > > I really like this type of approach, looking for consistency and > symmetries. The following might be a bit much, but a couple of years ago I > realized there might be something to learn about modeling from the way > sentences are structured in linguistics, especially in regards to how to > deal with n-ary relationships. I'm no expert, but in linguistics there are > four different types of sentence structures: > > - Simple sentence > - Complex sentence > - Compound sentence > - Compound-complex sentence > > In my mind these could map to something like this (I'm leaving out the > extra time and space positions that I've been advocating for to simplify > the demonstration, but they easily slot right in): > > *Simple statement:* > :a :name "Alice" > > *Complex statement:* > :a :name "Alice" > :statedBy :bob > :recorded "2021-07-07"^^xsd:date > > *Compound statement:* > { > :a :name "Alice" > :b :name "Bob" > :c :name "Charlie" > } > > *Compound-complex statement:* > { > :a :name "Alice" > :b :name "Bob" > :c :name "Charlie" > } > :statedBy :bob > :recorded "2021-07-07"^^xsd:date > > One might see similarities to simple RDF triples, RDF-star triple > annotation syntax, and RDF graphs in the first three examples, ideally > though any of these statement types could be nested in any of the other > statement types, and the complex statement type *does not* expand/get > broken out to a set of simple statements like the RDF-star annotation > syntax - instead it just is what it is, a complex statement and an > established way of expressing n-ary relationships. Sets of compound > statements are analogous to RDF datasets in my opinion, and you have the > potential for sets of sets and so on. > > Asserted vs unasserted, as Fabio asked, would be addressed in the same way > as in RDF-star: only top-level statements are asserted, nested statements > aren't, and that would apply to all the statement types. Referential > opacity would probably be handled in the same way as in RDF-star with a > "statementOf" relation or something to that effect. > > Because any statement type can be nested in any other statement type you > then see that everything can be expressed using only complex statements at > the top level. > > For logical completeness, but no practical purpose in my view, a complex > statement could actually be extended further. The statement fragments in > the example above, ":statedBy :bob" for example, could be described as > first-order fragments, you could then have second-order fragments, > third-order fragments, and so on up to infinity. Not much practical use > after first-order fragments though in my opinion. > > Anyway, that was long, but I'm just trying to say that linguistics seems > to have a system worked out already, one that we're all naturally expert at > using, and maybe we can incorporate things from that system, or at the very > least use it to understand our own system better. > > Regards > Anthony > > > On Wed, Dec 22, 2021 at 8:32 PM Fabio Vitali <fabio.vitali@unibo.it> > wrote: > >> Hello. >> >> >> On 21/12/2021 17:53, thomas lörtsch wrote: >> >>> (...) >> >>> This is a problem with more than one dimension: >> >>> - between asserted and not asserted there are degrees of "asserted >> under certain conditions", like e.g. the assertion of the marriage between >> Taylor and Burton only being valid in certain periods >> >>> >> >> In RDF semantics (both the current standard and the proposed >> RDF-star), a triple is either true or false. Any "degree of assertedness" >> or "conditional assertion" falls outside the standard base semantics. Of >> course, an application can extend the base semantics (using RDFS/OWL >> axioms, N3 rules, or hard-coded mechanisms) in order to handle intermediate >> forms of assertions. But then, in order to be interoperable with other >> applications, triples that are "conditionnally asserted" from the p.o.v. of >> the app should be *not* asserted from the p.o.v. of the base semantics. >> > >> > Tell that Fabio, not me. If you don’t assert those triples explicitly >> then in plain RDF they are not asserted at all. Consequently what Dörthe >> and Fabio propose may of course work as desired in local applications but >> on the semantic web at large is quite invisible. >> >> No. The whole point of having quoted triples with RDF* or conjectural >> graphs is to generate triples that are expressed but not asserted >> REGARDLESS OF THE LOCAL APPLICATION. This is THE purpose. If we could rely >> on local interpretations of the assertedness of triples then there would be >> no need to discuss about them in a W3C forum. >> >> My whole point is: is there a general way (i.e., not relying on local >> interpretations) to express without asserting a) individual triples and b) >> bunches of triples, and associate them to constraints that determine under >> which conditions they are asserted and under which conditions they are not? >> >> > I know that but it captures only part of reality. Your fellow logician >> Dörthe asked me in this thread the other day why I asserted that <:RichardB >> :marriedTo :ElizabethT> when I already knew that this is not true, or only >> during a certain timespan. Adding the start and end date does change the >> meaning of what is asserted already, triples do indeed interact, and even >> more so when you consider statement annotation or property graph style >> modelling. >> > >> > Or was it sloppy wording on part of the property chosen? But a quick >> check shows that very few properties in use on the semantic web reflect on >> their temporal validity. Past, present, future, time periods, whathaveyou - >> it’s all the same to them. Likewise with spatial, legal or any other >> dimension of validity of the statement in question. If you now insist that >> this is not valid RDF I could rethorically ask back "then, what is, out >> there on the actual semantic web?". Very very little, I assume. And yet it >> works, because assumptions are made _everywhere_. Otherwise everything >> would be just too tedious to be even remotely useful. >> >> The point is NOT whether or not people in the real world actually use >> triples with limited or constrained validity: of course they do use them >> and have been using them for some time. The problem arises when you have >> multiple statements that, taken in an absolute manner, are reciprocally >> inconsistent or even wrong, but can be clarified and made consistent with >> the application of specific constraints. >> >> Take for instance the painting Salvator Mundi ( >> https://en.wikipedia.org/wiki/Salvator_Mundi_(Leonardo) ): there are >> multiple authorial attributions to it, the most important of which is to >> Leonardo da Vinci (which caused Christie's to sell it to an Arab prince for >> US$450M in 2017 - the highest price ever paid for a painting). This >> attribution is backed by Martin Kemp (and others). Other scholars (e.g., >> Jacques Franck) believe it to be a copy from Leonardo by one of his pupils, >> possibly Giovanni Antonio Boltraffio. >> >> So with RDF* you can correctly represent it with non-asserted triples: >> >> << :salvatormundi dc:creator :leonardo >> >> prov:wasAttributedTo :martinkemp . >> >> << :salvatormundi dc:creator :boltraffio >> >> prov:wasAttributedTo :jacquesfranck . >> >> The problem solved by RDF* here is NOT simply acknowledging the >> provenance of the statements (which could be done in many different ways), >> but in preventing anyone, with or without inferencing engines, from >> assuming that Leonardo and Boltraffio worked together on the painting or, >> even, that they were the same person. >> >> Multiple coexisting and inconsistent statements over the same entities >> are still VERY HARD to express, and people in the real world either ignore >> the problem, restrain themselves (e.g., by not expressing the less-likely >> triples), or create complicated workaround based on n-ary relations or ad >> hoc classes, etc. CIDOC-CRM has a very complicated workaround based on a >> conceptized n-ary relation exactly for disputed attributions. >> >> If there is ONE thing for which digital humanists anxiously await RDF*, >> is to finally be allowed to express multiple competing hypothesis over the >> same entities without self-restraint, mis-representations or convoluted >> structures. >> >> > We can go back again to n-ary relations and model the marriage like >> this: >> > >> > :RichardB :marriedTo [ >> > rdf:value :ElizabethT ; >> > :start 1966 >> > ] >> >> Indeed. This is a remedial approach, requiring people to "conceptize" >> relations so that triples can be given an identity and an IRI and >> annotated. Far from ideal. >> >> > We can use graphs to separate "same" triples and then annotate them in >> different ways to get multisets. RDF standard reification vocabulary pulls >> identifiers for occurrences (or "speech acts") out of thin air. Nobody gets >> hurt, we just play tricks with the logic. That sort of creativity is what’s >> needed. If named graphs hadn’t been so over-eagerly defined as >> referentially opaque but had been provided as a mere grouping mechanism - >> no more, no less - we would have much less problems today. But it’s easy to >> say in hindsight. Maybe not too late, who knows. >> >> I for once totally agree with you on this: not specifically about the >> referential transparency/opaqueness issue, I am more interested in the >> discussion about the truth value of their content. Still, I agree with you >> that the perfect solution would exists, named graphs, but it is >> underspecified, which makes them just too vague for practical purposes. >> >> My obvious reaction would be: there are two kinds of graphs, asserting >> and non-asserting graphs, and we need two separate structures and syntaxes >> for the two of them, and this is what I am humbly trying to propose. You >> mention referential transparency (I am personally starkly in favour of it >> and do not see the big deal with referential opacity, but I am in no >> position or interest in debating it). These are two dimensions to work on, >> which creates four types of graphs: >> >> 1) asserted graphs with referential transparency >> 2) asserted graphs with referential opacity >> 3) non-asserted graphs with referential transparency >> 4) non-asserted graphs with referential opacity >> >> I am interested in 3) or 4). I assume you are interested in 1) or 3). >> Maybe we can identify 2) and 3) as the most urgently needed varieties of >> graphs and propose a simple split of the current concept? >> >> > OTOH, time and again I’ve sworn myself to not take part in this CG any >> longer as for my taste it is just not interested enough in finding a good >> solution for meta modelling on the semantic web. Tediously did this CG need >> to be motivated to tackle real world issues like occurrences, referentially >> transparent triples and the like. Whatever this CG really is interested in, >> and why, is still not really clear to me, but it seems to be quite >> theoretical. So, the temptation to sit this CG out and wait for a real WG >> with hopefuly some more practically oriented participants has always been >> strong. But I also learned a lot. >> >> If a CG is what is in the menu now, then CG is what we should be eating. >> If the kitchen is preparing starters you cannot complain there is no main >> entrée. >> >> My impression is that very little will be discussed in a real WG that >> hasn't been at least considered in one of the CGs that will feed it. This >> is why it is important that the output of this CG report also the issues >> that weren't approved, but were at least discussed. >> >> My 2c is: please make sure that a smooth transition exists between >> expressed-but-not-asserted triples and expressed-but-not-asserted >> containers of triples, and that their semantics is independent of >> application-dependent choice of the semantics of triples and containers. >> This is ALL I need. >> >> Ciao >> >> Fabio >> >> -- >> >> 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 Wednesday, 22 December 2021 14:03:53 UTC