- From: Anthony Moretti <anthony.moretti@gmail.com>
- Date: Wed, 8 Jul 2020 23:36:38 -0700
- To: Patrick J Hayes <phayes@ihmc.us>
- Cc: Nicolas Chauvat <nicolas.chauvat@logilab.fr>, Thomas Passin <tpassin@tompassin.net>, Semantic Web <semantic-web@w3.org>
- Message-ID: <CACusdfSQ4-BAPS17eHfLNv-1=MTPL2v=-ncBO2TEGk2iHPS0Mg@mail.gmail.com>
> > But that, as I recall, is where we started this thread. > Maybe this is a good place to end it too, I'm fine without going deeper 😂 But yeah that's a good way of putting it, an 'unpacked' representation of a datatype. We could steal some fine-dining lingo and perhaps call it a "deconstructed literal" as well 😂 Thanks for the discussion, it's been great. Anthony On Wed, Jul 8, 2020 at 10:29 PM Patrick J Hayes <phayes@ihmc.us> wrote: > > > On Jul 8, 2020, at 9:01 PM, Anthony Moretti <anthony.moretti@gmail.com> > wrote: > > Hi Patrick > > Thank you for the time granted in answering my questions. I'll try to keep > it focused and work on the fire management with you 😂 > > > :-) > > > there is nothing corresponding to the ‘reference’ case >> > > If I were to merge two graphs, both containing URLs and bnodes, I'd retain > the URLs, but I'd create new bnode IDs (to avoid potential problems if the > graphs happened to use some bnode IDs that were the same). So maybe it's > just my terminology, but the retaining of original identifiers, the URLs in > this case, is the reference case. > > > OK, but I find this very strange. If I were to read several news articles > which all use the name “Trump” and I were to write a summary using the same > name in the same way, am I using reference semantics? Seems to me that I am > just using language in the normal way, where names are understood to refer > to things, and that this has nothing at all to do with any reference/value > distinction, because we aren't talking about data structures. English > simply doesn’t have the reference/value distinction. > > How do you ever know when you have all the necessary properties? >> > > Yeah, that's the problem being discussed earlier in the thread about > type-dependent comparison operations for value types, and David's > discussion about keys. > > you might want to assign a URI to a literal value ... it shouldn't be >> illegal >> > > Agree, it shouldn't be illegal. > > Blank nodes don't have types. >> > > When I say blank nodes have a type I'm being sloppy, sorry. I mean the > things they refer to, of course. > > If this were RDF, what would this distinction (between class and datatype) >> /mean/? >> > > Something being an instance of a datatype would be an instruction to not > rely on the identifier to find equivalents, but to (somehow) look up > prescribed comparison operations for that type. > > > What do “equivalents” and “comparison operators” mean? Neither of these > seem to have any meaning in RDF. > > It'd also be an instruction that those instances are better off not being > skolemized and should be passed along to the next consumer as is. > > > Not skolemized, so we are talking about bnodes... > > It'd basically be an instruction to treat the individual like a literal > when trying to reason about the graph. > > > …and it still seems slightly crazy to me to treat a bnode like a literal, > or vice versa. > > But that, as I recall, is where we started this thread. > > OK, let me ignore the whole reference/value thing and the (bad) analogy to > Swift. What /does/ make sense in RDF is the idea of ‘unpacking’ a datatype > into a collection of properties, then tying these together into a bundle of > triples all fixing the properties of something (written typically as a > bnode tying these triples together by acting as the common subject). Then > anything we wanted to say using the literal can be done (at least in tha > same graph) by using the bnode instead. In fact, it would make sense to > skolemize this, if the data is important, because then other graphs can > refer to the same value. > > Yes this is kind of possible. But it would be a mistake to think that > literals as currently defined in some sense /already are/ just syntactic > sugar for this kind of ‘unpacked’ representation. > > BTW, for straighforward datatypes like the xml schema, which all relate a > value to a string, it occurs to me that you could do this by using the > datatype name as an RDF property. So instead of, say, > > ex:Pat ex:age “75”^^xsd:integer . > > you might have > > ex:Pat ex:age _:x . > _:x xsd:integer “75” . > > where the “75” is now type xsd:string. This makes a kind of intuitive > sense since datatypes are required to define a mapping from strings to > values, and we have used the datatype name in exactly that way. (It would > make even more sense if RDF allowed literals to be subjects, so we could > write it the other way round.) > And since it is all in one triple, the issue, about how we know when we > have enough proprties, vanishes. > > (Note, this is NOT standard or an accepted RDF convention, so use it at > your own risk!) > > Hope this helps. > > Pat > > > Regards > Anthony > > On Wed, Jul 8, 2020 at 6:46 PM Patrick J Hayes <phayes@ihmc.us> wrote: > >> >> >> > On Jul 8, 2020, at 1:30 PM, Nicolas Chauvat <nicolas.chauvat@logilab.fr> >> wrote: >> > >> > On Wed, Jul 08, 2020 at 11:54:16AM -0400, Thomas Passin wrote: >> >> Here's what I am thinking of, and I'll talk about points, since that >> was the >> >> ... >> >> Or put another way, just because the same literal value is assigned to >> two >> >> nodes does not make them the same. Is that literal value itself the >> "same" >> >> for both? In some software it might be - if it's been memoized, for >> example >> >> - but that's normally an implementation detail, not something >> fundamental. >> > >> > When I say that (1,2) is a true value, aka an immutable struct, your >> > answer is that two (1,2) values are not the same because, taking into >> > account the open world assumption, they could have a third dimension >> > (or some other attribute). >> > >> > You write "the same literal value is assigned to two nodes, does not >> > make them the same”. >> >> Um.. with one plausible interpretation, that is wrong. (RDF does not have >> the notions of ‘assignment’, and ’same’ is ambiguous, but ploughing ahead…) >> Lets use owl:sameAs to attach a literal value to a URI: >> >> ex:this owl:sameAs “17”^^xsd:integer . >> ex:that owl:sameAs “17”^^xsd:integer . >> >> and now ask, are this and that the same?: >> >> ex:this owl:sameAs ex:that . ?? >> >> and the answer is always, Yes. This is entailed by the first two triples. >> Of course they are not the same URI, but they have the same denotation >> (value). >> >> > Is it correct to rephrase that as follows ? >> > >> > p1 has_coords (1,2) >> > p2 has_coords (1,2) >> > >> > In that case I agree that nothing proves p1 and p2 are the same. >> >> True. >> > >> > But what I am pointing at when I talk about an immutable struct is not >> > the above. >> > >> > A better comparison would be "2002-05-30T09:00:00"^xsd:datetime, that >> > could be deserialized to (year: 2002, month: 5, day: 30, hour: 9, >> > minutes: 0, seconds: 0). >> > >> > Would you say that the two literals >> > "1;2"^<http://mydomain.com/mytypes/tuple-of-two-integers> and >> > "1;2"^<http://mydomain.com/mytypes/tuple-of-two-integers> are >> > different things ? >> >> Better not say that, as it would be flat wrong :-) >> > >> > Does it follow from the open world assumption that >> > "2002-05-30"^xsd:date and "2002-05-30"^xsd:date are different values >> > because one could append the time information and write >> > "2002-05-30T09:00:00"^xsd:datetime ? >> >> No. It has absolutely nothing to do with the OWA. Adding more information >> to an RDF graph cannot change the meaning of a literal, whether the world >> is open or closed. The meanings of literals are defined externally to the >> RDF spec, by the specs for the datatype of the literal. So whatever the RDF >> graph says about those literals, their value does not change. >> >> Pat >> >> > >> > I would think that the open world assumption applies to nodes, not to >> > values/literals. Am I missing something ? >> > >> > -- >> > Nicolas Chauvat >> > >> > logilab.fr - services en informatique scientifique et gestion de >> connaissances >> > >> >> >> >
Received on Thursday, 9 July 2020 06:37:05 UTC