RDF* and reification

As I've mentioned several times it turns out that reification can be used in
many different ways, each producing a different variation of RDF*.   I've also
sent out several examples of defining RDF* using reification.


If << s p o >> is just replaced by

_:b rdf:subject s .

_:b rdf:predicate p .

_:b rdf:object o .

with a different blank node for each occurrence of the embedded triple then
you get transparency and non-uniqueness.

If you require using the same blank node for a triple then you get
uniqueness.  Uniqueness can be by document, by graph, or universal.  (Of
course, using the same blank node in multiple RDF graphs doesn't always get
what you might think it does.)

If you add extra links for non-blank subjects, predicates, or objects of
embedded triples that link to literal versions of the subject, predicate, and
object then you get a semi-opaque version.  The literals can just be strings
whose values are a canonical representation of the subject, predicate, or object.

If these links are also added for blank node subjects, predicates, or objects
then you get a fully opaque version.


So it is possible to define several versions of RDF* with very minimal
additions to RDF.   Several versions of opacity can be achieved by using three
new predicates.   Uniqueness can be achieved by using the same blank node for
an embedded triple, which is done during the construction of RDF graphs from
surface syntaxes.


peter

Received on Friday, 22 January 2021 18:20:39 UTC