Reify Triples
A statement can be made about another statement using reification. JRDF supports reification via a TripleFactory
obtained using a graph's getTripleFactory()
method. The following code inserts a reified statement:
TripleFactory tripleFactory = graph.getTripleFactory();
//create a resource to identify the statement
URIReference statement = elementFactory.createResource
(new URI("http://example.org/statement#address"));
//reify the address statement (person, hasAddress, address)
tripleFactory.reifyTriple(addressStatement, statement);
//insert a statement about the original statement
URIReference manager = elementFactory.createResource(new URI("http://example.org/managerid#65"));
URIReference hasConfirmed = elementFactory.createResource
(new URI("http://example.org/terms#hasConfirmed"));
Triple confirmationStatement = elementFactory.createTriple(manager, hasConfirmed, statement);
graph.add(confirmationStatement);
The graph now contains:
http://example.org/staffid#85740 http://example.org/terms#address _blankNode123
_blankNode123 http://example.org/terms#street "1501 Grant Avenue"
_blankNode123 http://example.org/terms#city "Bedford"
_blankNode123 http://example.org/terms#state "Massachusetts"
_blankNode123 http://example.org/terms#postalCode "01730"
http://example.org/managerid#65 http://example.org/terms#hasConfirmed
http://example.org/statement#address
http://example.org/statement#address http://www.w3.org/1999/02/22-rdf-syntax-ns#subject
http://example.org/staffid#85740
http://example.org/statement#address http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate
http://example.org/terms#address
http://example.org/statement#address http://www.w3.org/1999/02/22-rdf-syntax-ns#object
_blankNode123
http://example.org/statement#address http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement