private String createIndex(String url, String slug, SolidUtilities utilities) throws Exception { Model model = ModelFactory.createDefaultModel(); Resource containerResource = model.createResource("#this"); containerResource.addProperty(RDF.type, model.getResource(VCARD4.NS + "AddressBook")); containerResource.addProperty( model.createProperty(VCARD4.NS + "nameEmailIndex"), model.createResource("people.ttl")); containerResource.addProperty( model.createProperty(VCARD4.NS + "groupIndex"), model.createResource("groups.ttl")); containerResource.addProperty(DC_11.title, slug); return utilities.postContent( url, "index", BASIC_RESOURCE_TYPE, model); }
/** * Parses the contents of a URL to produce an RDF model. */ public Model getModel(String url) throws IOException { HttpRequestFactory factory = TRANSPORT.createRequestFactory(); HttpRequest rootGetRequest = factory.buildGetRequest( new GenericUrl(url)); HttpHeaders headers = new HttpHeaders(); headers.setCookie(authCookie); headers.setAccept("text/turtle"); rootGetRequest.setHeaders(headers); HttpResponse response = rootGetRequest.execute(); if (response.getStatusCode() != 200) { throw new IOException("Unexpected return code: " + response.getStatusCode() + "\nMessage:\n" + response.getStatusMessage()); } StringWriter writer = new StringWriter(); IOUtils.copy(response.getContent(), writer, "UTF-8"); String fixedString = fixProblematicPeriods(writer.toString()); Model defaultModel = ModelFactory.createDefaultModel(); return defaultModel.read( new StringReader(fixedString), url, "TURTLE"); }
/** Posts an RDF model to a Solid server. **/ public String postContent( String url, String slug, String type, Model model) throws IOException { StringWriter stringWriter = new StringWriter(); model.write(stringWriter, "TURTLE"); HttpContent content = new ByteArrayContent("text/turtle", stringWriter.toString().getBytes()); HttpRequest postRequest = factory.buildPostRequest( new GenericUrl(url), content); HttpHeaders headers = new HttpHeaders(); headers.setCookie(authCookie); headers.set("Link", "<" + type + ">; rel=\"type\""); headers.set("Slug", slug); postRequest.setHeaders(headers); HttpResponse response = postRequest.execute(); validateResponse(response, 201); return response.getHeaders().getLocation(); }
private static List<Resource> getContainedResource(Model model, String url) { ImmutableList.Builder<Resource> results = new ImmutableList.Builder<>(); Resource self = model.getResource(url); self.listProperties(model.createProperty("http://www.w3.org/ns/ldp#contains")) .forEachRemaining(s-> results.add(s.getResource())); /*List<Statement> containedStatements = getProperties( self, "http://www.w3.org/ns/ldp#contains"); for (Statement s : containedStatements) { results.add(s.getResource()); }*/ return results.build(); }
private Resource getPersonResource(String data) { String example = "https://example.com/resource1"; Model defaultModel = ModelFactory.createDefaultModel(); Model model = defaultModel.read( new StringReader(data), example, "TURTLE"); return model.getResource(example + "#this"); }
public void testRoundTripping1() { Model m = ModelFactory.createDefaultModel(); Property startTime = m.createProperty("http://jena.hpl.hp.com/test#startTime"); Calendar cal = Calendar.getInstance(); cal.set(Calendar.MILLISECOND, 0); Literal xsdlit0 = m.createTypedLiteral(cal); Resource event = m.createResource(); event.addProperty(startTime, xsdlit0); StringWriter sw = new StringWriter(); m.write(sw); StringReader reader = new StringReader(sw.toString()); Model m1 = ModelFactory.createDefaultModel(); m1.read(reader, null); assertTrue( m.isIsomorphicWith(m1) ); Literal xsdlit1 = m1.listStatements().next().getObject().as(Literal.class); assertEquals(xsdlit0, xsdlit1); }
@Test public void blankNodes1() { String s = "_:a <http://example/p> 'foo' . " ; StringReader r = new StringReader(s) ; Model m = ModelFactory.createDefaultModel() ; RDFDataMgr.read(m, r, null, RDFLanguages.TURTLE) ; assertEquals(1, m.size()) ; String x = m.listStatements().next().getSubject().getId().getLabelString() ; assertNotEquals(x, "a") ; // reset - reread - new bNode. r = new StringReader(s) ; RDFDataMgr.read(m, r, null, RDFLanguages.TURTLE) ; assertEquals(2, m.size()) ; }
public void testCRinLiterals() { Model m = createMemModel(); Resource r = m.createResource("http://example/r") ; Property p = m.createProperty("http://example/p") ; m.add(r, p, "abc\r\nxyz") ; StringWriter w = new StringWriter(); m.write(w) ; Model m2 = createMemModel(); m2.read(new StringReader(w.toString()), null) ; assertTrue(m.isIsomorphicWith(m2)) ; }
@Test public void optionalDotInBase() { Model model = ModelFactory.createDefaultModel() ; StringReader reader = new StringReader("@base <http://example/> <x> <p> <o> .") ; RDFDataMgr.read(model, reader, null, RDFLanguages.TURTLE) ; assertEquals(1, model.size()) ; Resource r = model.createResource("http://example/x") ; Property p = model.createProperty("http://example/p") ; assertTrue(model.contains(r,p)) ; }
private static GNode parse(String str) { Model m = ModelFactory.createDefaultModel() ; m.read(new StringReader(str), null, "TTL") ; Graph graph = m.getGraph() ; Triple t = graph.find(r, p, Node.ANY).next() ; return new GNode(graph, t.getObject()) ; }
@Test public void blankNodes2() { // Duplicate. String s = "_:a <http://example/p> 'foo' . _:a <http://example/p> 'foo' ." ; StringReader r = new StringReader(s) ; Model m = ModelFactory.createDefaultModel() ; RDFDataMgr.read(m, r, null, RDFLanguages.TURTLE) ; assertEquals(1, m.size()) ; }
protected static void addRangeTypes( Model result, Model schema ) { Model toAdd = ModelFactory.createDefaultModel(); for (StmtIterator it = schema.listStatements( ANY, RDFS.range, ANY ); it.hasNext();) { Statement s = it.nextStatement(); RDFNode type = s.getObject(); Property property = s.getSubject().as( Property.class ); for (StmtIterator x = result.listStatements( ANY, property, ANY ); x.hasNext();) { RDFNode ob = x.nextStatement().getObject(); if (ob.isResource()) toAdd.add( (Resource) ob, RDF.type, type ); } } result.add( toAdd ); }
@Test public final void theresOneWithABNodeObject() { Model m = ModelFactory.createDefaultModel(); Resource anon = m.createResource(); m.createResource("http://example").addProperty(RDF.type, anon); StmtIterator it = m.listStatements(null, null, anon); final List<Statement> lis = it.toList(); Assert.assertTrue(lis.size() == 1); } }
protected static void addSubclassesFrom( Model result, Model schema ) { for (StmtIterator it = schema.listStatements( ANY, RDFS.subClassOf, ANY ); it.hasNext();) { Statement s = it.nextStatement(); if (s.getSubject().isURIResource() && s.getObject().isURIResource()) result.add( s ); } }
public void testModelGetList() { Resource root = model.createResource(TestList.NS + "root"); Property p = model.createProperty(TestList.NS, "p"); Resource r = model.createResource(TestList.NS + "r"); Resource r1 = model.createResource(TestList.NS + "r1"); Resource r2 = model.createResource(TestList.NS + "r2"); RDFList list0 = model.createList(r1, r2); model.add(r, p, list0); RDFList list1 = model.listStatements(r, p, (Resource)null).next().getList(); boolean b = list0.sameListAs(list1); assertTrue("Different lists: expected: "+list0+" : got: "+list1, b); }
public void testBadURIExceptionContainsBadURIInMessage() { String badURI = "http:"; Model m = ModelFactory.createDefaultModel(); m.add( m.createResource( badURI ), m.createProperty( "eg:B C" ), m.createResource( "eg:C D" ) ); try { m.write( new StringWriter() ); fail( "should detect bad URI " + badURI ); } catch (BadURIException e) { assertTrue( "message must contain failing URI", e.getMessage().indexOf( badURI ) > 0 ); } } }
private static void jenaread(String dataurl, String lang, String base) { dataurl = filename(dataurl) ; Model m1 = ModelFactory.createDefaultModel() ; Model m2 = ModelFactory.createDefaultModel() ; // This call RDFDataMgr.read(m1, dataurl, base, RDFLanguages.nameToLang(lang)) ; // should be an implementation of: m2.read("file:"+dataurl, base, lang) ; assertTrue(m1.size() != 0 ) ; assertTrue(m2.size() != 0 ) ; assertTrue(m1.isIsomorphicWith(m2)) ; // and check base processing ... Resource s = m1.listStatements().next().getSubject() ; assertTrue(s.getURI().startsWith("http://")) ; assertTrue(s.getURI().equals("http://baseuri/s")) ; } }
public static void main(String[] args) { Model model = ModelFactory.createDefaultModel(); model.createResource("http://example.org/alice", FOAF.Person) .addProperty(FOAF.name, "Alice") .addProperty(FOAF.mbox, model.createResource("mailto:alice@example.org")) .addProperty(FOAF.knows, model.createResource("http://example.org/bob")); model.write(System.out, "TURTLE"); }
public static MetricMapper createDefault() { Model model; try { model = RdfReaderFactory.createResourceReader("/org/aksw/rdfunit/dqv/metricMappings.ttl").read(); } catch (RdfReaderException e) { throw new IllegalArgumentException("Cannot read default metric mappings", e); } ImmutableMap.Builder<String, String> builder = new ImmutableMap.Builder<>(); model.listStatements().toList().stream() .filter(smt -> smt.getPredicate().equals(RDFUNITv.metric)) .filter(smt -> smt.getObject().isResource()) .forEach(smt -> builder.put(smt.getSubject().getURI(), smt.getObject().asResource().getURI())); return new MetricMapper(builder.build()); }
protected Content getInitialContent( Assembler a, Resource root ) { Model partial = ModelFactory.createDefaultModel(); Resource combined = partial.createResource(); for (StmtIterator it = root.listProperties( JA.initialContent ); it.hasNext();) transferContentProperties( partial, it.nextStatement().getResource(), combined ); return contentFromModel( a, root, partial, combined ); }