- From: Doerthe Arndt <doerthe.arndt@ugent.be>
- Date: Tue, 4 Dec 2018 11:56:32 +0100
- To: William Van Woensel <william.vanwoensel@gmail.com>, public-n3-dev@w3.org
- Message-ID: <b3ecd498-86cf-03de-10c6-654ea53a09e1@ugent.be>
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
Received on Tuesday, 4 December 2018 10:57:54 UTC