W3C home > Mailing lists > Public > public-linked-json@w3.org > February 2019

Re: Slides for Berlin Data Workshop

From: Antoine Zimmermann <antoine.zimmermann@emse.fr>
Date: Wed, 27 Feb 2019 11:28:05 +0100
To: Gregg Kellogg <gregg@greggkellogg.net>
Cc: public-linked-json@w3.org
Message-ID: <a3cc6064-a462-4746-1907-d94c2b512d41@emse.fr>
On 26/02/2019 18:01, Gregg Kellogg wrote:
>> On Feb 26, 2019, at 1:49 AM, Antoine Zimmermann
>> <antoine.zimmermann@emse.fr> wrote:
>> Hello,
> Hi Antoine,


> My understanding of the rationale behind the reasoning that the names
> of named graphs do not denote those graphs is for the URI case. It’s
> true, what you say, that there are numerous deployed systems (for
> better or worse) that have their own interpretation. However, my
> position is that blank nodes allow for a different interpretation, as
> they can have no meaning outside of any given serialization. This
> allows us to allow for the interpretation that blank node names of
> named graphs _could_ actually denote those graphs. This is evident in
> the usage of anonymous named graphs in specs such as Verifiable
> Credentials [1].

Yes, in absence of standards that tell how named graphs should be
interpreted, IRI-named-graphs _could_ be interpreted differently from 
bnode-named-graphs. But I expect that those who have their idea about 
how to interpret IRI-named-graphs would not be happy that 
bnode-named-graphs should be interpret in a different way.
That's why a strong assertion like "the only reasonable interpretation" 
is daring.

> In any case, these are my own opinions, and not those of either the
> JSON-LD WG or CG. The purpose of the workshop is to lay out areas for
> future development, and I think such an interpretation would help
> bring RDF into line with Notation3 formula and relate to actual
> real-world use.

Seeing that you are connecting your proposal to N3, I think I understand 
your line of thoughts. It makes sense, as far as I understand the N3 
specification. But N3 is not a standard, N3 spec has some ambiguities, 
and not all RDF-minded people have N3 in mind when they think of named 

>> Similarly, slide 5 is not about "Reasoning in JSON-LD": it is
>> explaining how to map N3 formulas to JSON-LD. Then people can
>> decide to interpret JSON-LD documents as N3, following slide 5
>> representation, and do *N3 reasoning*, not "JSON-LD reasoning".
>> They could also just map this representation to a normal RDF
>> dataset and apply other kinds of reasoning.
> Yes, I should be more explicit, it is about a way to extend the RDF
> model to allow for a syntax to describe things that can later be
> interpreted for reasoning. I’d like to see some of the N3 reasoning
> concepts be made more broadly applicable to an extended RDF dataset;
> one which allows universally quantified variables as resources.

I've seen that N3 is appealing to some semweb enthusiasts and it would 
be good to be able to embed N3Logic inside RDF serialisations like 
JSON-LD. As far as I can see for now, your proposal is nice at the 
syntactic level.

But I would consider that this is analogous to the RDF encoding of OWL 
ontologies. OWL ontologies are defined independently of RDF, according 
to the structural specification. For instance:

Ontology( <o>
  Declaration( Class(:A) )
  Declaration( Class(:B) )
  Declaration( Class(:C) )
  SubClassOf( :C ObjectUnionOf( :A :B ) )

According to the OWL semantics, "ObjectUnionOf( :A :B )" *denotes* the 
union of what :A and :B denote.

Additionally, OWL defines a mapping from the structural syntax to RDF 
graphs, such that this graph:

<o> a owl/ontology .
:A a owl:Class .
:B a owl:Class .
:C a owl:Class;
   rdfs:subClassOf _:x .
_:x owl:unionOf (:A :B) .

represents the same OWL ontology as before. In this graph, the blank 
node _:x is there to "represent", in some sense, the class 
ObjectUnionOf( :A :B ). Yet, under no circumstances can anyone say that 
this bnode *denotes* a set of things. Blank nodes *do not* denote, in RDF.

Still, it is possible to interpret this graph to the effect that the 
whole structure "_:x owl:unionOf (:A :B)" is interpreted as the union of 
the instances of :A and :B (using the reverse mapping from RDF to 
structural spec).

Similarly, in an N3 formula like:

<a> <b> {<s> <p> o>} .

the expression {<s> <p> <o>} denotes the graph serialised as "<s> <p> 
<o>", according to what apparently the N3 specification says. There 
could be an N3 mapping to RDF dataset translating this to:

<a> <b> _:x .
_:x { <s> <p> <o> }

according to which we could interpret the *whole* structure "_:x { <s> 
<p> <o> }" directly as a graph. But from an RDF point of view, the bnode 
_:x should be treated as an existential that, maybe, if there was a 
standard interpretation of named graphs, would map the bnode to the RDF 
graph "<s> <p> <o>", or something else.

But in spite of what OWL says, the RDF graph "_:x owl:unionOf (:A :B)" 
does not have to be interpreted as a set of things. There is the RDFS 
semantics where it's not the case. Even in the OWL 2 RDF-based 
semantics, this is not the case. In OWL 2 RDF-based semantics, _:x is 
interpreted as an existential (as it should, following RDF semantics) 
that declares the existence of some resource that in turn is related to 
a set of resources according to the ICEXT function.

This duality of interpretations in OWL (Direct Semantics vs. RDF-based 
semantics) is peculiar and a source of misunderstanding, but there is 
worse: RDF graphs can be interpreted in extremely different ways, even 
in standards! An R2RML mapping is represented as an RDF graph that has 
to be interpreted completely differently from the RDF semantics. A SHACL 
shapes graph is an RDF graph that's also interpreted in a very special way.

I would like to see different standards specifying different ways of 
interpreting RDF datasets. There could be the "RDF dataset for graph 
metadata" semantics (wink wink Sandro). There could the "RDF dataset for 
contextual reasoning" semantics. There could be the "RDF dataset for 
N3logic" semantics (win wink Gregg).

All those ways of interpreting RDF datasets can coexist without having 
JSON-LD enforce one or another.


> At this time, although N-Quads and TriG _can_ represent what seems as
> graphs as suitable for triple resources, only JSON-LD provides a
> reasonable (IMHO) way to state this; Sandro had another idea for a
> TriG-like language that could have done this as well, which we
> briefly explored at the end of the RDF 1.1 WG, but abandoned; perhaps
> it, or something like it, needs to be reconsidered.
> Gregg
> [1] https://w3c.github.io/vc-data-model/
>> Best, --AZ
>> Le 23/02/2019 à 23:50, Gregg Kellogg a écrit :
Antoine Zimmermann
ISCOD / LSTI - Institut Henri Fayol
École Nationale Supérieure des Mines de Saint-Étienne
158 cours Fauriel
42023 Saint-Étienne Cedex 2
Tél:+33(0)4 77 42 66 03
Fax:+33(0)4 77 42 66 66
Received on Wednesday, 27 February 2019 10:28:29 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:18:52 UTC