use of org.apache.jena.query.Dataset in project jena by apache.
the class UpdateBuilderExampleTests method example4.
/**
* Example 4:
*
* @see https://www.w3.org/TR/sparql11-update/#example_4
*/
@Test
public void example4() {
Resource r = ResourceFactory.createResource("http://example/book1");
Node graphName = NodeFactory.createURI("http://example/bookStore");
Dataset ds = DatasetFactory.create();
ds.addNamedModel(graphName.getURI(), m);
m.setNsPrefix("dc", DC_11.NS);
m.add(r, DC_11.title, "Fundamentals of Compiler Desing");
SelectBuilder sb = new SelectBuilder().addWhere(r, DC_11.title, "Fundamentals of Compiler Desing");
sb = new SelectBuilder().addPrefix("dc", DC_11.NS).addGraph(graphName, sb);
UpdateBuilder builder = new UpdateBuilder().addPrefix("dc", DC_11.NS).addDelete(sb);
UpdateRequest req = builder.buildRequest();
sb = new SelectBuilder().addWhere(r, DC_11.title, "Fundamentals of Compiler Design");
sb = new SelectBuilder().addPrefix("dc", DC_11.NS).addGraph(graphName, sb);
builder = new UpdateBuilder().addPrefix("dc", DC_11.NS).addInsert(sb);
builder.appendTo(req);
UpdateAction.execute(req, ds);
Model m2 = ds.getNamedModel(graphName.getURI());
assertTrue(m2.contains(r, DC_11.title, "Fundamentals of Compiler Design"));
assertEquals(1, m2.listStatements().toSet().size());
// assertEquals( 1, m2.getNsPrefixMap().size());
// assertEquals( DC.NS, m2.getNsPrefixMap().get("dc"));
}
use of org.apache.jena.query.Dataset in project jena by apache.
the class UpdateBuilderExampleTests method example7.
/**
* Example 7:
*
* @see https://www.w3.org/TR/sparql11-update/#example_7
*/
@Test
public void example7() {
Resource will = ResourceFactory.createResource("http://example/william");
Resource willMail = ResourceFactory.createResource("mailto:bill@example");
Resource fred = ResourceFactory.createResource("http://example/fred");
Resource fredMail = ResourceFactory.createResource("mailto:fred@example");
Node graphName = NodeFactory.createURI("http://example/addresses");
m.add(will, RDF.type, FOAF.Person);
m.add(will, FOAF.givenname, "William");
m.add(will, FOAF.mbox, willMail);
m.add(fred, RDF.type, FOAF.Person);
m.add(fred, FOAF.givenname, "Fred");
m.add(fred, FOAF.mbox, fredMail);
Dataset ds = DatasetFactory.create();
ds.addNamedModel(graphName.getURI(), m);
UpdateBuilder builder = new UpdateBuilder().addPrefix("foaf", FOAF.NS).with(graphName).addDelete("?person", "?property", "?value").addWhere("?person", "?property", "?value").addWhere("?person", FOAF.givenname, "'Fred'");
UpdateAction.execute(builder.build(), ds);
Model m2 = ds.getNamedModel(graphName.getURI());
assertTrue(m2.contains(will, RDF.type, FOAF.Person));
assertTrue(m2.contains(will, FOAF.givenname, "William"));
assertTrue(m2.contains(will, FOAF.mbox, willMail));
assertEquals(3, m2.listStatements().toList().size());
}
use of org.apache.jena.query.Dataset in project jena by apache.
the class UpdateBuilderExampleTests method example8.
/**
* Example 8:
*
* @see https://www.w3.org/TR/sparql11-update/#example_8
*/
@Test
public void example8() {
Resource book1 = ResourceFactory.createResource("http://example/book1");
Resource book2 = ResourceFactory.createResource("http://example/book2");
Resource book3 = ResourceFactory.createResource("http://example/book3");
Resource book4 = ResourceFactory.createResource("http://example/book4");
Literal d1977 = ResourceFactory.createTypedLiteral("1977-01-01T00:00:00-02:00", XSDDatatype.XSDdateTime);
Literal d1970 = ResourceFactory.createTypedLiteral("1970-01-01T00:00:00-02:00", XSDDatatype.XSDdateTime);
Literal d1948 = ResourceFactory.createTypedLiteral("1948-01-01T00:00:00-02:00", XSDDatatype.XSDdateTime);
Property price = ResourceFactory.createProperty(NS_prefix + "price");
Literal priceV = ResourceFactory.createPlainLiteral("42");
Node graphName1 = NodeFactory.createURI("http://example/bookStore");
Node graphName2 = NodeFactory.createURI("http://example/bookStore2");
Model m1 = ModelFactory.createDefaultModel();
m1.add(book1, DC_11.title, "Fundamentals of Compiler Design");
m1.add(book1, DC_11.date, d1977);
m1.add(book2, price, priceV);
m1.add(book2, DC_11.title, "David Copperfield");
m1.add(book2, DC_11.creator, "Edmund Wells");
m1.add(book2, DC_11.date, d1948);
m1.add(book3, DC_11.title, "SPARQL 1.1 Tutorial");
Model m2 = ModelFactory.createDefaultModel();
m2.add(book4, DC_11.title, "SPARQL 1.1 Tutorial");
Dataset ds = DatasetFactory.create();
ds.addNamedModel(graphName1.getURI(), m1);
ds.addNamedModel(graphName2.getURI(), m2);
ExprFactory factory = new ExprFactory();
SelectBuilder ins = new SelectBuilder().addGraph(graphName2, new SelectBuilder().addWhere("?book", "?p", "?v"));
SelectBuilder whr = new SelectBuilder().addGraph(graphName1, new SelectBuilder().addWhere("?book", DC_11.date, "?date").addFilter(factory.gt("?date", d1970)).addWhere("?book", "?p", "?v"));
UpdateBuilder builder = new UpdateBuilder().addPrefix("dc", DC_11.NS).addPrefix("xsd", XSD.NS).addInsert(ins).addWhere(whr);
UpdateAction.execute(builder.build(), ds);
m1 = ds.getNamedModel(graphName1.getURI());
assertEquals(7, m1.listStatements().toList().size());
assertEquals(2, m1.listStatements(book1, null, (RDFNode) null).toList().size());
assertTrue(m1.contains(book1, DC_11.title, "Fundamentals of Compiler Design"));
assertTrue(m1.contains(book1, DC_11.date, d1977));
assertEquals(4, m1.listStatements(book2, null, (RDFNode) null).toList().size());
assertTrue(m1.contains(book2, price, priceV));
assertTrue(m1.contains(book2, DC_11.title, "David Copperfield"));
assertTrue(m1.contains(book2, DC_11.creator, "Edmund Wells"));
assertTrue(m1.contains(book2, DC_11.date, d1948));
assertEquals(1, m1.listStatements(book3, null, (RDFNode) null).toList().size());
assertTrue(m1.contains(book3, DC_11.title, "SPARQL 1.1 Tutorial"));
m2 = ds.getNamedModel(graphName2.getURI());
assertEquals(3, m2.listStatements().toList().size());
assertEquals(2, m2.listStatements(book1, null, (RDFNode) null).toList().size());
assertTrue(m2.contains(book1, DC_11.title, "Fundamentals of Compiler Design"));
assertTrue(m2.contains(book1, DC_11.date, d1977));
assertEquals(1, m2.listStatements(book4, null, (RDFNode) null).toList().size());
assertTrue(m2.contains(book4, DC_11.title, "SPARQL 1.1 Tutorial"));
}
use of org.apache.jena.query.Dataset in project jena by apache.
the class UpdateBuilderExampleTests method example10.
/**
* Example 10:
*
* @see https://www.w3.org/TR/sparql11-update/#example_10
*/
@Test
public void example10() {
Resource book1 = ResourceFactory.createResource("http://example/book1");
Resource book3 = ResourceFactory.createResource("http://example/book3");
Resource book4 = ResourceFactory.createResource("http://example/book4");
Literal d1996 = ResourceFactory.createTypedLiteral("1996-01-01T00:00:00-02:00", XSDDatatype.XSDdateTime);
Literal d2000 = ResourceFactory.createTypedLiteral("2000-01-01T00:00:00-02:00", XSDDatatype.XSDdateTime);
Node graphName1 = NodeFactory.createURI("http://example/bookStore");
Node graphName2 = NodeFactory.createURI("http://example/bookStore2");
Model m1 = ModelFactory.createDefaultModel();
m1.add(book1, DC_11.title, "Fundamentals of Compiler Design");
m1.add(book1, DC_11.date, d1996);
m1.add(book1, RDF.type, DCTypes.PhysicalObject);
m1.add(book3, DC_11.title, "SPARQL 1.1 Tutorial");
Model m2 = ModelFactory.createDefaultModel();
m2.add(book4, DC_11.title, "SPARQL 1.1 Tutorial");
Dataset ds = DatasetFactory.create();
ds.addNamedModel(graphName1.getURI(), m1);
ds.addNamedModel(graphName2.getURI(), m2);
ExprFactory factory = new ExprFactory();
SelectBuilder ins = new SelectBuilder().addGraph(graphName2, new SelectBuilder().addWhere("?book", "?p", "?v"));
SelectBuilder whr = new SelectBuilder().addGraph(graphName1, new SelectBuilder().addWhere("?book", DC_11.date, "?date").addFilter(factory.lt("?date", d2000)).addWhere("?book", "?p", "?v"));
UpdateBuilder builder = new UpdateBuilder().addPrefix("dc", DC_11.NS).addPrefix("xsd", XSD.NS).addInsert(ins).addWhere(whr);
UpdateRequest req = builder.buildRequest();
builder = new UpdateBuilder().with(graphName1).addDelete("?book", "?p", "?v").addWhere("?book", DC_11.date, "?date").addWhere("?book", RDF.type, DCTypes.PhysicalObject).addFilter(factory.lt("?date", d2000)).addWhere("?book", "?p", "?v");
builder.appendTo(req);
UpdateAction.execute(req, ds);
m1 = ds.getNamedModel(graphName1.getURI());
assertEquals(1, m1.listStatements().toList().size());
assertTrue(m1.contains(book3, DC_11.title, "SPARQL 1.1 Tutorial"));
m2 = ds.getNamedModel(graphName2.getURI());
assertEquals(4, m2.listStatements().toList().size());
assertEquals(3, m2.listStatements(book1, null, (RDFNode) null).toList().size());
assertTrue(m2.contains(book1, DC_11.title, "Fundamentals of Compiler Design"));
assertTrue(m2.contains(book1, DC_11.date, d1996));
assertTrue(m2.contains(book1, RDF.type, DCTypes.PhysicalObject));
assertEquals(1, m2.listStatements(book4, null, (RDFNode) null).toList().size());
assertTrue(m2.contains(book4, DC_11.title, "SPARQL 1.1 Tutorial"));
}
use of org.apache.jena.query.Dataset in project jena by apache.
the class TestUtils method renameGraph.
/**
* Renames a graph of a dataset producing a new dataset so as to not modify
* the original dataset
*
* @param ds
* Dataset
* @param oldUri
* Old URI
* @param newUri
* New URI
* @return New Dataset
*/
public static Dataset renameGraph(Dataset ds, String oldUri, String newUri) {
Dataset dest = DatasetFactory.createTxnMem();
if (oldUri == null) {
// Rename default graph
dest.addNamedModel(newUri, ds.getDefaultModel());
} else {
// Copy across default graph
dest.setDefaultModel(ds.getDefaultModel());
}
Iterator<String> uris = ds.listNames();
while (uris.hasNext()) {
String uri = uris.next();
if (uri.equals(oldUri)) {
// Rename named graph
if (newUri == null) {
dest.setDefaultModel(ds.getNamedModel(oldUri));
} else {
dest.addNamedModel(newUri, ds.getNamedModel(oldUri));
}
} else {
// Copy across named graph
dest.addNamedModel(uri, ds.getNamedModel(uri));
}
}
return dest;
}
Aggregations