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

Re: Slides for Berlin Data Workshop

From: Gregg Kellogg <gregg@greggkellogg.net>
Date: Wed, 27 Feb 2019 12:03:28 -0800
Cc: public-linked-json@w3.org
Message-Id: <8A7AACBE-DBC6-48E9-AA6A-904CA7513A52@greggkellogg.net>
To: Antoine Zimmermann <antoine.zimmermann@emse.fr>
> On Feb 27, 2019, at 2:28 AM, Antoine Zimmermann <antoine.zimmermann@emse.fr> wrote:
>> 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.

I think we’ll need to figure out how to properly state this at some point, as the pattern of using anonymously named graphs seems to be taking. Perhaps a condition on blank nodes such that if they are used to name a graph that the (n,g) tuple becomes an interpretation of that blank node, such that any statement made about the blank node is a statement on the name/graph pair.

>> 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 graphs.

Something I think we’ll need to reconcile with RDF at some point. The N3 CG is looking at this, and perhaps an outcome will be a new interpretation of N3 which is reconciled with RDF semantics, or more likely, a future version of RDF which completes the work left over from the last WG such that these issues can be properly handled.

>>> 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.


Thanks for your considered analysis.


> Best,
> --AZ
>> 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
> France
> Tél:+33(0)4 77 42 66 03
> Fax:+33(0)4 77 42 66 66
> http://zimmer.aprilfoolsreview.com/
Received on Wednesday, 27 February 2019 20:03:54 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 27 February 2019 20:03:55 UTC