A discussion of the design and implementation of an RDF API.
"a reification" is right. "the reification" is wrong
In a nutshell: I'm talking about an RDF database API (using Guha's name for it) which punts the notion of determining which resources are identical; asking instead which 'resource's have URIs which compare equal.
While "the reification of statement s" makes a lot of mathematical sense, from an engineering point of view we're dealing with URIs. Many resources (in the "thing which has a uri" sense) may be the reification of a statement s in some RDF model.
Can we axiomatise this? See http://nestroy.wi-inf.uni-essen.de/rdf/logical_interpretation/index.html#sec:Datalog_Rules - in particular, the definition of reifies/4, which is:
reifies(R,S,P,O) <- uri(S) & uri(P) & s(R,rdf_type,rdf_statement) & s(R,rdf_subject,S) & s(R,rdf_predicate,P) & s(R,rdf_object,O).
Operations: RDFModel.createReification(s, p, o); Statement (or TripleIterator) RDFModel.reifies(RDFResource r); RDFResourceIterator RDFModel.reifications(s, p, o).