Skip to content

Simplified Reification #61

Open
Open
@chiarcos

Description

@chiarcos

Motivation: RDF reification is considered unpractical and is barely used, partially because it's verbose, partially, because it permits infinite recursion and is just too powerful. Existing RDF vocabularies (e.g., WebAnnotation, or OntoLex) thus tend to provide both reified and non-reified versions for the same information, which is redundant and an obstacle to data (re)usability. Moreover, the burden to harmonize them is put on the consumers of data rather than being handled by off-the-shelf infrastructures.

Suggestion 1: Support RDF* reification, see https://arxiv.org/pdf/1406.3399.pdf for the concept and https://wiki.blazegraph.com/wiki/index.php/Reification_Done_Right for an implementation, i.e.,

<<:peter :goes :home>> :says :sarah.

instead of

[ a rdfs:Statement; rdfs:subject :peter; rdfs:predicate :goes; rdfs:object :home ] :says :sarah.
(and reformulations of that)

A simple implementation strategy on the database side is to define an ID inference mechanism from subject, predicate and object URIs (or internal bnode ID), and to store this ID as a additional column with the triple (quad). (I think this is how the BlazeGraph implementation works, I didn't check, though.) Downside is increased memory and search efforts.

Suggestion 2: Use the notation above, but limit increased search efforts by restricting reification to non-recursive reification (i.e., metadata about triples, but no metadata about metadata):

i.e., permit
<<:peter :goes :home>> :says :sarah.
do not permit
<< <<:peter :goes :home>> :says :sarah >> :according_to :mary.

With non-recursive reification, reification complexity is down to the level of 1st order predicate logic.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Category: language featuresFor language features of RDF itself -- model and syntax

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions