- From: Doerthe Arndt <doerthe.arndt@ugent.be>
- Date: Thu, 26 Sep 2019 15:18:21 +0200
- To: Olaf Hartig <olaf.hartig@liu.se>, "public-rdf-star@w3.org" <public-rdf-star@w3.org>
- Message-ID: <d24527e3-b2f7-a0d7-31db-b9668759528e@ugent.be>
Dear Olaf, sorry for my late response, I had to defend my PhD and was therefore short on time. I hope that this will improve and I can give you faster feedback from now on. So, now to your definition: I see that you map cited ground triple like for example in :a :b <<:c :d :e>>. directly to the domain of discourse and I think it is a good solution (I do the same in N3). For the triples containing cited blank nodes like :a :b <<_:x :d :e>>. the definition is less clear in my opinion (or I didn't understand it yet, which can always be the case :) ). You write: /"//Furthermore, define [I+A] to be the extension of I that covers all triples and graphs (not just ground ones) and that, ***in the condition for triples as given above for ground graphs**, uses [I'+A] instead of I'.*"/ What exactly is that condition you mean? I am afraid that you still have the same problem with the blank nodes you had in the beginning: The function I' maps ground elements of your language into your domain of discourse and the function A maps blank nodes into the domain of discourse. Both functions are not defined for the language element <<_:x :d :e>>. You need to add how exactly you extend the function [I'+A] for these cases. In order to recommend a fix, I would like to know how you want to understand these blank nodes. Do they have local scope or global scope? More concrete: Does :LoisLane :believes <<_:x :can :fly>>. mean: a) "Lois Lane believes that there exists someone who can fly" (or in pseudo logic: believes(LoisLane, (∃x: can(x, fly)). or b) "There exists someone of whom Lois Lane believes that he can fly" (or in pseudo logic: ∃x: believes(LoisLane, can(x,fly)). Kind regards, Doerthe Am 29.08.19 um 17:07 schrieb Olaf Hartig: > Dear Dörthe, > > Thanks for your valuable feedback! Responses inline ... > > On fredag 23 augusti 2019 kl. 11:21:48 CEST Doerthe Arndt wrote: >> Dear Olaf, >> >> I had a look to your definitions and they look fine to me. First, I was >> worried, that you would leave first order logic if you quantify over >> referred triples, but with your definition you don't do that, the blank >> nodes still only refer to single resources in the domain of discourse. > Yes. > >> I still have some remarks: >> >> * In general, I dislike, that you want to have two different >> interpretations (PG mode and SA mode) for the same concept since I >> think that this goes against the whole idea of interoperability >> which is important in the Semantic Web (but this argument was >> already made earlier in this list). > Distinguishing the two modes is still a fairly recent idea that is not present > in any of my earlier documents and papers about RDF*/SPARQL*. In contrast, > these earlier documents assume what I now call PG mode (which can be observed > by looking at the SPARQL* query semantics, the definition of delete in SPARQL* > update, and the mapping to standard RDF reification). The motivation for > defining everything based on assuming PG mode was to accommodate users who want > to have a feature for RDF that resembles the notion of edge properties in > Property Graphs. > > Introducing the SA mode now is an attempt to also accommodate users who want > to have a feature that allows them to capture exactly what can be captured > using standard RDF reification but in a more concise way. > > For the moment, I have added the definitions of both modes into that document > primarily to have more precise basis for discussion. We may come back to > deciding about these modes at some later point. > >> * With your definition you always map triples using different URIs but >> having the same meaning to the same element in the domain of >> discourse and I am not sure whether you want that (do you?). As an >> example let's consider superman (the classical example for >> reification, see for example: >> https://www.w3.org/2001/12/attributions/#superman). So, if we know >> that the URIs :Superman and :ClarkKent refer to the same resource, >> your definition can't make a distinction between >> >> :LoisLane :knows <<:Superman :can :fly>>. >> >> and >> >> :LoisLane :knows <<:ClarkKent :can :fly>>. >> >> If you want to use RDF* to talk about concrete triples (for >> example to add provenance etc.), a difference in the chosen URI (or the >> fact that a blank node is chosen) could be important, therefore my >> question. > I see the issue. > > I have modified the definitions again to fix the problem: My solution is to go > back to my initial definitions of IT and of the auxiliary function I', but then > I kept the new part that I had added in Section 2.1. So, that should address > both the issue you raise above as well as the issue you raised in your earlier > email (referred triples that contain blank nodes had not been covered). > > I would appreciate if you could check again whether you find issues with the > definitions. > > For reference, the HTML-rendering of the current version is at: > > http://htmlpreview.github.io/?https://github.com/w3c/EasierRDF/blob/master/ > RDFstar/RDFstarSemantics.html > > ...for the previous version see: > > http://htmlpreview.github.io/?https://github.com/w3c/EasierRDF/blob/ > 2be8126d4c684ee8b288b97d404091860b830454/RDFstar/RDFstarSemantics.html > > ...and the initial version: > > http://htmlpreview.github.io/?https://github.com/w3c/EasierRDF/blob/ > a9d0964bb59c81bafa84b333581666b98d924bd5/RDFstar/RDFstarSemantics.html > > > Thanks, > Olaf > > > >> Kind regards, >> Doerthe >> >> Am 10.08.19 um 09:26 schrieb Olaf Hartig: >>> Dear Doerthe, >>> >>> Welcome to the list! >>> >>> You are right! Thanks a lot for checking the definitions in detail and for >>> pointing out the issue. >>> >>> I have modified the draft to fix the issue. Note that I had to change the >>> definition of IT and the auxiliary function I' (for which I had to change >>> the third case in the definition, which makes it a recursive definition >>> now). >>> >>> Please check again. >>> >>> Thanks, >>> Olaf >>> >>> >>> >>> -----Original Message----- >>> From: Doerthe Arndt <doerthe.arndt@ugent.be> >>> To: public-rdf-star@w3.org >>> Sent: Fri, 09 Aug 2019 14:49 >>> Subject: Re: RDF* semantics >>> >>> Dear Olaf, all, >>> >>> I just recently joined the list and therefore did not introduce myself >>> yet. I am Doerthe Arndt from imec ugent and I am about to finish my PhD >>> about Notation3 Logic. I am also involved in the N3 community group >>> (https://www.w3.org/community/n3-dev/). I joined this mailing list >>> because I am interested in the connection between the semantics of N3's >>> cited formulas (if you are interested on my view on it, you find a model >>> theory in my recent paper: >>> https://authors.elsevier.com/a/1ZWg55bAYUaMkH) and the semantics of >>> RDF*. I hope that these can be aligned, but even if not, I am always >>> interesting in contributing to the definition of a model theory. >>> >>> Now, back to the topic (sorry for all the introducing blabla ;) ): I had >>> a look into your definition and as far as I see (but maybe I am just >>> missing something?), you currently don't cover referred triples which >>> contain a blank node. As far as I can see, the expression >>> >>> :a :b << _:x :p :o>>. >>> >>> has no meaning. All your definitions are on ground formulas (= formulas >>> without blank nodes, or do you define them differently?) and I suppose, >>> you expect RDF's grounding mechanism to help you finding the meaning for >>> the above triple. Unfortunately, the functions A which are mentioned in >>> section 2.1. in your definition maps blank nodes directly to resources >>> in the domain of discourse which leaves you without a mapping from << >>> _:x :p :o>> to a resource. Or do you expect your mapping IT to also >>> cover these cases? >>> >>> Kind regards, >>> Doerthe >>> >>> Am 09.08.19 um 11:23 schrieb Olaf Hartig: >>>> Dear Pat, all, >>>> >>>> As promised in my initial email in this thread (see below), I have >>>> created a draft document that specifies how the definitions in "RDF 1.1 >>>> Semantics" have to be extended to provide a model-theoretic semantics >>>> for RDF* graphs. >>>> >>>> Please find the draft in the following github repo of the W3C RDF-DEV CG >>>> >>>> https://github.com/w3c/EasierRDF >>>> >>>> You can also read the latest version of the draft rendered directly from >>>> github (which means you don't have to download the repo first). To his >>>> end, use the following link. >>>> >>>> http://htmlpreview.github.io/?https://github.com/w3c/EasierRDF/blob/maste >>>> r/RDFstar/RDFstarSemantics.html >>>> >>>> I am looking forward to your feedback on this draft. >>>> >>>> Thanks, >>>> Olaf >>>> >>>> On Mon, 2019-08-05 at 16:09 +0200, Olaf Hartig wrote: >>>>> Dear Pat, all, >>>>> >>>>> Great to have you on board. Your help will be much appreciated! >>>>> >>>>> In the following, I am responding to the points raised by Pat: >>>>> >>>>> On Mon, 2019-07-08 at 09:04 -0700, Patrick J Hayes wrote: >>>>>> [...] >>>>>> I believe that RDF* would benefit from being given a clear direct >>>>>> semantics of its own, rather than via a reduction mapping to RDF. >>>>> I agree. In fact, I have already started a draft that specifies how the >>>>> definitions in Sec.5 of the "RDF 1.1 Semantics" have to be extended to >>>>> provide a model-theoretic semantics for RDF* graphs. I will share once I >>>>> have cleaned it up. >>>>> >>>>>> [...] >>>>>> RDF* seems to presume that making an assertion about a triple also >>>>>> thereby asserts the triple. This is not how reification was designed >>>>>> to work, and it is in violation of the description of the semantics >>>>>> of reification in the RDF specs. Thus, RDF* is currently not a correct >>>>>> modeling of RDF reification. This issue needs to be addressed and >>>>>> resolved. >>>>> Your observation is correct: The RDF*-to-RDF mapping (and the >>>>> corresponding SPARQL*-to-SPARQL mapping) as defined in my earlier papers >>>>> are based on the assumption that a nested RDF* triple t also asserts the >>>>> triple that is the subject or the object of t. Hence, my definitions of >>>>> these mappings use the RDF reification vocabulary to capture this >>>>> assumption. I do not think that using the RDF reification vocabulary in >>>>> this way is a violation of the RDF specs. Note that I have *not* been >>>>> using RDF* to model RDF reification (rather the other way around), and >>>>> indeed I agree that making the aforementioned assumption is not a >>>>> correct modeling of RDF reification. >>>>> >>>>> At this point it may be helpful to emphasize that my initial perspective >>>>> on RDF*/SPARQL* (as reflected in the definitions in my papers) has been >>>>> influenced by discussions with triplestore vendors who were interested >>>>> in a practical, reification-like feature to capture and to query >>>>> statement-level annotations. The general intention was that this feature >>>>> would be used in a way like people use the notion of edge properties in >>>>> Property Graph databases (if you are not familiar with Property Graphs: >>>>> an "edge property" is a key-value pair associated with an edge in such a >>>>> graph). Then, the aforementioned assumption followed from this intention >>>>> because, in a Property Graph, to assign edge properties to an edge, the >>>>> edge must exist in the graph. >>>>> >>>>> Having said that, I understand that there also are use cases for which >>>>> the aforementioned assumption is unsuitable; that is, use cases in which >>>>> asserting a nested RDF* triple t should *not* entail the assertion of >>>>> the triples that occur in t. My current idea for the RDF*/SPARQL* >>>>> approach to also cover such use cases is to introduce two different >>>>> modes of how RDF*/SPARQL* may be used: One of these modes explicitly >>>>> makes the aforementioned assumption; this is the mode that is captured >>>>> by the existing documents and it might be called the "Property Graph >>>>> mode" (PG mode, for short). The other mode does not make the assumption; >>>>> it might be called the "separate-assertions mode" (SA mode). It is not >>>>> difficult to adapt the existing definitions to capture this SA mode as >>>>> an alternative to the PG mode. Apparently, the model-theoretic semantics >>>>> for RDF* graphs will also differ depending on whether PG mode or SA mode >>>>> is used, and so will the semantics of SPARQL* update operations and of >>>>> SPARQL* queries. >>>>> >>>>> As an example regarding the latter, consider an RDF* graph that contains >>>>> only the following nested triple (prefix declarations omitted). >>>>> >>>>> ( (:bob, foaf:age, 23), dct:creator, :crawler1 ) >>>>> >>>>> Furthermore, assume the following SPARQL* query. >>>>> >>>>> SELECT * WHERE { :bob foaf:age ?a } >>>>> >>>>> In PG mode, the result of this query over the given RDF* graph consists >>>>> of a single solution mapping m with m(?a)=23. In contrast, in SA mode, >>>>> the query result is empty. >>>>> >>>>> I am looking forward to comments on the idea to introduce these two >>>>> modes of usage. >>>>> >>>>>> I propose an idea for consideration by this community, to allow for >>>>>> meta-descriptions to apply to entire RDF graphs rather than restricted >>>>>> to single triples. The costs of this seem relatively small and the >>>>>> benefits quite great. >>>>> While I do not know what exactly you aim to propose, what you write >>>>> sounds more related to a discussion of named graphs. The RDF*/SPARQL* >>>>> approach is explicitly focused on statement-level metadata rather than >>>>> graph-level metadata, which IMHO are orthogonal concerns. >>>>> >>>>> Best, >>>>> Olaf > -- Dörthe Arndt Researcher Semantic Web imec - Ghent University - IDLab | Faculty of Engineering and Architecture | Department of Electronics and Information Systems Technologiepark-Zwijnaarde 122, 9052 Ghent, Belgium t: +32 9 331 49 59 | e: doerthe.arndt@ugent.be
Received on Thursday, 26 September 2019 13:18:53 UTC