// relations
URI hasName = model.createURI("http://xmlns.com/foaf/0.1/#term_name");
URI hasAge = model.createURI("http://example.com/relations#age");
hasTag = model.createURI("http://example.com/relations#hasTag");
// tags
PlainLiteral tagJava = model.createPlainLiteral("Java");
PlainLiteral tagPython = model.createPlainLiteral("Python");
PlainLiteral tagComputers = model.createPlainLiteral("Computers");
// adding statements
// naming
model.addStatement(max, hasName, "Max Völkel");
model.addStatement(konrad, hasName, "Konrad Völkel");
model.addStatement(guido, hasName, "Guido van Rossum");
model.addStatement(james, hasName, "James Gosling");
// a typed property, age
model.addStatement(konrad, hasAge, model.createDatatypeLiteral("19", XSD._integer));
model.addStatement(max, hasAge, model.createDatatypeLiteral("29", XSD._integer));
// tagging
tag(max, tagJava);
tag(james, tagJava);
tag(konrad, tagJava);
tag(konrad, tagPython);
tag(guido, tagPython);
// simple SPARQL CONSTRUCT
System.out.println("Query 1:");
// suggest tagJava implies tagComputers
String queryString = "CONSTRUCT { ?resource <"+hasTag+"> "+tagComputers.toSPARQL()+" } WHERE { ?resource <"+hasTag+"> "+tagJava.toSPARQL()+" }";
ClosableIterable<? extends Statement> results = model.sparqlConstruct(queryString);
for(Statement result : results) {
System.out.println(result);
}