Support for reified sets

Greetings from an RDF practitioner and implementor. I hope it is
appropriate to share a thought after reading over the group's
deliberations in this public mailing list and meeting transcripts.

My desired use cases involve large, overlapping, and nested sets of
reified triples to reflect provenance, attribution, and epistemic
status. This is not a use case I have seen discussed at length by the
working group, but I believe it is a meaningful consideration for the
current discussion regarding the cardinality of reifications.

The fact is, no matter what the specifics of the solution this group
lands on, it will inevitably end up being used to heavily to describe
graphs and their contents. According to the existing RDF specs, a
graph is precisely defined as a set of triples, and a core use case of
any flavor of reification is to annotate sets of triples. It will be
the preferred mechanism to model questions such as "what is the set of
data contained in transaction XZY" or "What is the set of facts that
Thomas believes?"

Incidentally, in my experience, the existing specifications around
named graphs are inadequate in this regard since they are "outside" of
RDF triples themselves. As of RDF 1.1 there is no way to use RDF
triples (or inference over triples) to express which triples are a
part of which graphs, which graphs are subgraphs of others, etc. Quads
aren't much better, given that a triple can only be expressed as
"belonging" to a single graph in a single quad.

I am aware that this group has very intentionally and for good reason
decided to steer clear of utilizing or further defining named graphs
or graph terms. At the same time, it is necessary to consider how
whatever new features are added will be used.

If the group determines that reifiers can be card-many, then reifiers
will become, de facto, a mechanism for creating and describing graphs
(which is, by definition, a set of triples.)

On the other hand, if the group determines that reifiers are card-one,
then each reifier can only represent a single statement. In this case
implementors such as myself will fall back to modeling graphs as sets
of statements (e.g. using rdf:member), but in an ad-hoc way that is
not defined by any W3C specification.

Both approaches have their tradeoffs. I don't know the answer, nor am
I qualified to offer a recommendation, but I do believe it a salient
enough concern that I wanted to emphasize it for the group's
attention.

There is a potential confusion of concepts either way: in the
card-many approach, the subject of rdf:reifies risks being mistaken
for a named graph. In a card-one approach, it risks being mistaken for
(or maybe it just is?) an instance of rdf:Statement.

Thank you very much for your time. I really appreciate the work this
group is doing, and I especially appreciate the manner in which these
conversations are happening in public enabling folks such as myself to
follow along.

- Luke VanderHart
Head of Technology, Modern Energy

Received on Wednesday, 17 April 2024 20:51:58 UTC