- From: Doerthe Arndt <doerthe.arndt@ugent.be>
- Date: Tue, 4 Dec 2018 17:54:55 +0100
- To: Dave Raggett <dsr@w3.org>, David Booth <david@dbooth.org>
- Cc: public-n3-dev@w3.org
- Message-ID: <5779f3c8-a096-7997-2e59-9ed03d92ff29@ugent.be>
Hi David, all,
I volunteer since I really want to bring this forward. But I also never
chaired such a group before and would be grateful if anyone else would
co-chair. So, anyone else volunteering?
Kind regards,
Doerthe
Am 04.12.18 um 17:00 schrieb Dave Raggett:
> That should be easy enough to arrange - let me look into it. I see
> that the CG lacks a Chair, and needs one to publish any reports.
> Anyone like to volunteer?
>
>> On 4 Dec 2018, at 15:26, David Booth <david@dbooth.org
>> <mailto:david@dbooth.org>> wrote:
>>
>> Excellent discussion! I would suggest that we (as a group) start a
>> github area with a github issues list, and start tracking these issues.
>>
>> Dave Raggett, is that something that you can initialize for the N3
>> Community Group, within the W3C space on github? And in case the
>> question arises, I think it would make sense for it to be separate
>> from the broader discussion of "how to make RDF easier to use",
>> because this N3 effort is a very specific, focused effort, even
>> though it is related.
>>
>> Thanks,
>> David Booth
>>
>> On 12/4/18 5:56 AM, Doerthe Arndt wrote:
>>> Dear all,
>>> William and I - by accident - continued our discussion privately.
>>> Please find below the summary.
>>> Regards,
>>> Doerthe
>>> Hi Doerthe, all,
>>> Oops, that was by mistake .. I’m not used to replying on mailing
>>> lists, lol.
>>> //
>>> /If you don’t mind, I will try to summarize our conversation below—I
>>> think we’re pretty much in agreement on most issues. If you have no
>>> problems with it then feel free to forward (a summarized version?)
>>> to the mailing list.///
>>> • As an aside, I was wondering in what cases rules in consequences
>>> would be useful from a logical point of view (don’t have access to
>>> [1] right now). Isn’t the following just as effective:
>>> { ?C1 rdfs:subClassOf ?C2, ?x a ?C1 } => ?x a ?C2
>>> But I understand why it could be (syntactically) useful from a
>>> pre-processing point of view—since only the initial rule body needs
>>> to be instantiated with TBox terms (?).
>>> > Yes, you can do that as well, but then the rules you use cannot be
>>> "automatically" written by the reasoner.
>>> /Indeed, that’s a pretty interesting aspect of it—the reasoner alone
>>> can instantiate the axioms based on the TBox. I will get around to
>>> reading your paper!/
>>> • As mentioned by Doerthe, and unbeknownst to me previously, N3
>>> allows to describe statements directly using “formulae”, without
>>> having to explicitly “s-p-o-encode” the described statements, i.e.,
>>> { :william dc:wrote :Moby_Dick } a n3:falsehood .
>>> As also referenced by Doerthe, this very much reminded me of the
>>> work by Hartig et al., who introduced an extended semantics (RDF*
>>> and SPARQL*) [1] for reification support…
>>> > "The RDF semantic conditions do not place formal constraints on
>>> the meaning of much of the RDF vocabulary which is intended for use
>>> in describing containers and bounded collections, or the reification
>>> vocabulary intended to enable an RDF graph to describe RDF triples.
>>> This appendix briefly reviews the intended meanings of this
>>> vocabulary" (quote from: https://www.w3.org/TR/rdf11-mt/#whatnot)
>>> > In other words: it is not formally defined what rdf reification means.
>>> For sure—but it says the same thing about RDF containers and
>>> collections (and I hope we’re not going to skip representing those
>>> as well in N3!). I think that the intended meaning and the
>>> particular representation as defined in that section, is currently
>>> more or less taken as the standard way to deal with reification
>>> (e.g., it is also listed in the RDF primer). For instance, Hartig et
>>> al. define a syntax and semantics for a different, more usable
>>> reification representation; and present a conversion into this
>>> “standard” reification representation (in fact, as a way to support
>>> the model-theoretic interpretation of RDF*).
>>> > The general problem of reification is the rather unusual use of
>>> blank nodes: as you know, blank nodes already have a meaning, they
>>> are existentially quantified (and I hope that the discussion on the
>>> mailing list will not change that). So, the above means according to
>>> RDF semantics: "There exists a falsehood, this falsehood is a
>>> statement and has the subject "William", etc.") That is not the same
>>> as saying "The statement that William wrote Moby Dick is a
>>> falsehood.". This semantically rather big difference is a problem
>>> for the formal specification of reification and we have indeed the
>>> exact same problem (but in my opinion even worse) with lists and
>>> containers (by saying that a list *exists* you do not have the list).
>>> /Do you mean: having a more robust, formal definition of reification
>>> / lists / containers in place for N3, instead of building on the
>>> current (unformalized) method, would be a way forward? I’m not
>>> necessarily disagreeing here, but it could be a bit beyond our scope
>>> (?) Indeed, to me, there has always been this strange dichotomy
>>> between blank nodes being “existentially quantified” on the one hand
>>> (i.e., someone has an address, which has street X, etc.), and local
>>> identifiers on the other, where someone can actually reference this
>>> existential quantification elsewhere in the document (more like
>>> “existential variables” (?))./
>>> > N3 does not need these ugly constructs since it supports lists as
>>> "first class citizens" and has a construct for citation (the
>>> brackets {}). So, in practice I would add some rules making
>>> reification and first-rest-ladders "real" citations and lists and
>>> support only these "real" constructs in the mode theory. That would
>>> not exclude the use of them and by giving the rules we also give it
>>> the meaning you suggest here.
>>> /I think we’re in agreement here—the current way of representing
>>> lists and reification is quite ugly and, by adding well-defined
>>> constructs, we can make working with them much easier. But in the
>>> end, this meaning would be based on the “intended meaning” just like
>>> with Hartig et al./
>>> > I would be really careful with such "intended" meanings since that
>>> will cause misunderstandings.
>>> /Sure, but it’s unclear what else we could base ourselves on (?)/
>>> /> There are different logics which have the notion of context, like
>>> for example KIF, ISO Common Logic and MacCarthy's logic of context (
>>> there are many more). We have to agree whether we want to have a
>>> higher order construct here (I would rather say no) or whether we
>>> want to model it as first order logic. I hope that will become clear
>>> if everyone also explains how he or she wants to use the concept./
>>> //
>>> • I believe there could be a semantic layer, aside from a
>>> syntactical one, that facilitates working with lists (i.e., RDF
>>> collections). For instance, when computerizing the OWL2 RL
>>> axiomatization, one often runs into the following types of rules:
>>> { ?c owl:unionOf ?l, ?l x:member ?cl } => ?cl owl:subClassOf ?c
>>> Where the x:member can be supported by adding an extra few rules
>>> [4]. Using rdfs:member seems to do something similar for RDF(S)
>>> containers, but that’s much easier since containers do not represent
>>> linked lists.
>>>> We should formalise built-ins: Cwm (and I think also the team
>>> submission) mentions a list of built-ins, you can find them at
>>> https://www.w3.org/2000/10/swap/doc/CwmBuiltins
>>>> EYE supports even more built-ins. Some are taken from RIF, some are
>>> customized:
>>> http://eulersharp.sourceforge.net/2003/03swap/eye-builtins.html
>>> I hope that we as a group will be able to extend the list of N3
>>> built-in predicates such that it won't be necessary for any reasoner
>>> to have such own predicates (but that is my vision for later).
>>> For sure—with an accompanying semantics, these built-ins /
>>> constructs / terms .. could be implemented consistently (and perhaps
>>> even without necessitating built-in support; e.g., by simply adding
>>> the corresponding axioms to the dataset?).
>>> • Even in case all list elements need to be referenced:
>>> { ?c owl:intersectionOf ?l, @forall :cl (?l x:member :cl, :cl a ?t,
>>> ?y a ?t) } => ?y a ?c
>>>> Note that the rule above is problematic since the scope of your
>>> @forAll is basically the whole Web, so you can never know whether
>>> the antecedence of this rule is true. What you can do, is set a
>>> scope, saying something like "for all c1 mentioned in a certain
>>> document", this is something we can test.
>>> I had based this on your examples from your presentation (slides 12,
>>> 16; I don’t remember defining explicit scopes) but perhaps I’m wrong ...
>>>> Your example would not work because it requires that whatever you find
>>> in the whole semantic we needs to be in the list ?l (@forAll :cl. ?l
>>> x:member :cl.). The reason for that is that the quantifier is in the
>>> antecedence of the rule. You basically say "if every cl is a member
>>> of l ... then" and not what you would like to have "for every member
>>> cl of l".
>>> /Note that I merely used this notation since I noticed it on your
>>> slides and it seemed to suit the purpose. But I understand your
>>> point—the universal quantification should be scoped to include only
>>> members of the list: /
>>> … Based on the rule you wrote, I think we could also go for local
>>> scoping here (so, mention a scope together with the universal
>>> quantifier), but maybe we should discuss that in the group (there
>>> could be better solutions).
>>> William
>
> Dave Raggett <dsr@w3.org <mailto:dsr@w3.org>>
> http://www.w3.org/People/Raggett
> W3C Data Activity Lead & W3C champion for the Web of things
>
>
>
>
>
>
--
Dörthe Arndt
Researcher Semantic Web
imec - Ghent University - IDLab | Faculty of Engineering and Architecture | Department of Electronics and Information Systems
Technologiepark-Zwijnaarde 19, 9052 Ghent, Belgium
t: +32 9 331 49 59 | e: doerthe.arndt@ugent.be
Received on Tuesday, 4 December 2018 16:55:54 UTC