Re: A proposal for basing quotation and annotation upon blank graphs

On Thu, Oct 5, 2023 at 11:12 PM Niklas Lindström <lindstream@gmail.com> wrote:
>
> On Thu, Oct 5, 2023 at 9:17 PM Andy Seaborne <andy@apache.org> wrote:
> >
> >
> >
> > On 05/10/2023 13:02, Niklas Lindström wrote:
> > > I have written a follow-up (ttled "Prerequisites and Requirements for
> > > Quotation in RDF") to explore some fundamental questions raised by
> > > these proposals:
> > >
> > >      https://gist.github.com/niklasl/c22994e664663b6730613ecc1321c418
> > >
> > > I look forward to analyzing this further with you.
> > >
> > > All the best,
> > > Niklas
> >
> > Data:
> > _:g1 { :s1 :p1 :o1 }
> > _:g2 { :s2 :p2 :o2 }
> > _:g1 dc:created "2023-05-20T09:14:30Z"^^xsd:dateTime .
> >
> > Query: find all the graphs that were created at xsd datetime.
> >
> > SELECT * {
> >   ?x dc:created "2023-05-20T09:14:30Z"^^xsd:dateTime .
> > }
> >
> > Result:
> > ?x = _:blank123456789
> >
> > which isn't very useful to go on and ask questions about the graphs as
> > might be done by a UI RDF browser.
>
> That is certainly true. With nothing else that is quite useless. Just
> as any bnode id is in a query result (unless persistently skolemized),
> such as from a regular reification.
>
> And granted, you'd get the quoted triple "struct" back from your query
> with data like:
>
>     << :s1 :p1 :o1 >> dc:created "2023-05-20T09:14:30Z"^^xsd:dateTime .
>
> But even without improved notation for blank graphs, this gives you
> that data today (with the arguable "bonus" of potentially multiple
> occurrences):
>
>     SELECT * {
>         GRAPH ?g { ?s ?p ?o }
>         ?g dc:created "2023-05-20T09:14:30Z"^^xsd:dateTime .
>     }
>
> There is reasonably little to no value of the blank graph id itself
> outside of structure (as with bnodes in general). But as this is about
> exploring quotation as structure, I started with the forms we have in
> RDF 1.1.
>
> That shows better in the "meatier" examples. The leading parts of my
> recent text is only about establishing behaviour. I'm in no way
> arguing for the usability of bnode *id:s*, other than perhaps in
> corner cases, such as in [1] where the repeated quoted triple could,
> with blank node graphs, be further condensed.

Another thing your example points out is of course that, when we only
get back the bnode id, there is no way to know that it is used as the
name of a graph, other than by attempting to*use it as a graph in the
query. (Which of course is true also for any IRI naming a graph.)

This is related to the section "Blank Graphs as Appendices" [2], and a
bit further below in "Can Occurrences Become Types?". It's about what
is needed for this to work effectively. And as you've said before, a
new term may prove to be needed. But I'm exploring if it is enough to
have that information (i.e. "this is a graph") through an rdf:type for
the node naming the graph (and/or a relationship from it). And that
touches again upon the occurrence notion. (Which pretty much resembles
the old question of what literals "are" (cf. `isLiteral(?x)` in SPARQL
vs. an inferred `?x a rdf:Literal`); or our infamous RDF lists for
that matter...)

/Niklas

[2]: https://gist.github.com/niklasl/c22994e664663b6730613ecc1321c418#blank-graphs-as-appendices



> /Niklas
>
> [1]: https://github.com/w3c/rdf-ucr/wiki/RDF-star-for-CIDOC-CRM-events
>
> >      Andy
> >

Received on Friday, 6 October 2023 11:29:56 UTC