/** Gets a given resource (including the #this reference) from a model. **/ public static Resource getResource(String url, Model model) { List<Resource> matchingSubjects = model.listSubjects() .filterKeep(s -> s.getURI() != null) .filterKeep(s -> s.getURI().equalsIgnoreCase(url) || s.getURI().equalsIgnoreCase(url + "#this")).toList(); if (matchingSubjects.isEmpty()) { return null; } checkState(matchingSubjects.size() == 1, "Model %s didn't contain %s", model, url); return matchingSubjects.get(0); }
/** Utility method for debugging model problems. **/ @SuppressWarnings("unused") public static void describeModel(Model model) { model.listSubjects().forEachRemaining( r -> { logger.info(r.toString()); StmtIterator props = r.listProperties(); props.forEachRemaining(p -> logger.info("\t" + p.getPredicate() + " " + p.getObject())); } ); } }
private List<VCard> parseAddressBook(Resource selfResource, SolidUtilities utilities) throws IOException { String peopleUri = selfResource.getProperty(NAME_EMAIL_INDEX_PROPERTY).getResource().getURI(); Model peopleModel = utilities.getModel(peopleUri); List<VCard> vcards = new ArrayList<>(); ResIterator subjects = peopleModel.listSubjects(); while (subjects.hasNext()) { Resource subject = subjects.nextResource(); Model personModel = utilities.getModel(subject.getURI()); Resource personResource = SolidUtilities.getResource(subject.getURI(), personModel); if (personResource == null) { throw new IllegalStateException(subject.getURI() + " not found in " + subject.toString()); } vcards.add(parsePerson(personResource)); } return vcards; }
private ResIterator modelListSubjects() { ResIterator resIt = model.listSubjects(); openResIterators.add(resIt); return resIt; }
private ResIterator modelListSubjects() { ResIterator resIt = model.listSubjects(); openResIterators.add(resIt); return resIt; }
private static Resource[] subjectsTypes(Model model) { Set<Resource> types = new HashSet<>(); ResIterator rs = model.listSubjects(); while (rs.hasNext()) { Resource r = rs.nextResource(); Statement s = type(r); if (s != null) { types.add(s.getObject().asResource()); } } return types.toArray(new Resource[0]); }
private Model reanonimisePathBlankNodes(Resource resource, RDFNode rdfNode) { Model pathModel = ModelFactory.createDefaultModel(); pathModel.add(rdfNode.getModel()); pathModel.add(resource, SHACL.resultPath, rdfNode); ImmutableSet<Resource> resources = ImmutableSet.copyOf(pathModel.listSubjects()); resources.stream() .filter(Resource::isAnon) .filter(r -> r != resource) .forEach(r -> ResourceUtils.renameResource(r, null)); return pathModel; } }
private Model reanonimisePathBlankNodes(Resource resource, RDFNode rdfNode) { Model pathModel = ModelFactory.createDefaultModel(); pathModel.add(rdfNode.getModel()); pathModel.add(resource, SHACL.resultPath, rdfNode); ImmutableSet<Resource> resources = ImmutableSet.copyOf(pathModel.listSubjects()); resources.stream() .filter(Resource::isAnon) .filter(r -> r != resource) .forEach(r -> ResourceUtils.renameResource(r, null)); return pathModel; } }
protected void writeRDFStatements( Model model, PrintWriter writer ) { ResIterator rIter = model.listSubjects(); while (rIter.hasNext()) writeRDFStatements( model, rIter.nextResource(), writer ); }
protected void writeRDFStatements( Model model, PrintWriter writer ) { ResIterator rIter = model.listSubjects(); while (rIter.hasNext()) writeRDFStatements( model, rIter.nextResource(), writer ); }
private Set<Node> gsp(RDFConnection conn, String graphName) { Set<Node> results = new HashSet<>(); Model model = graphName == null ? conn.fetch() : conn.fetch(graphName); // Extract subjects. Set<Node> seen = SetUtils.toSet( Iter.asStream(model.listSubjects()) .map(Resource::asNode) ); return seen; }
private Set<Node> gsp(RDFConnection conn, String graphName) { Set<Node> results = new HashSet<>(); Model model = graphName == null ? conn.fetch() : conn.fetch(graphName); // Extract subjects. Set<Node> seen = SetUtils.toSet( Iter.asStream(model.listSubjects()) .map(Resource::asNode) ); return seen; }
@Override public SecuredResIterator listSubjects() throws ReadDeniedException, AuthenticationRequiredException { checkRead(); ExtendedIterator<Resource> rIter = holder.getBaseItem().listSubjects(); if (!canRead(Triple.ANY)) { rIter = rIter.filterKeep(new ResourceFilter()); } return new SecuredResIterator(holder.getSecuredItem(), rIter); }
public void testListSubjects() { fill(model); final List<Resource> L = model.listSubjects().toList(); Assert.assertEquals(TestObjects.numberSubjects, L.size()); final Set<Resource> wanted = subjectSet(TestObjects.numberSubjects); Assert.assertEquals(wanted, GraphTestBase.iteratorToSet(L.iterator())); }
public void testListSubjects() { fill(model); final List<Resource> L = model.listSubjects().toList(); Assert.assertEquals(TestObjects.numberSubjects, L.size()); final Set<Resource> wanted = subjectSet(TestObjects.numberSubjects); Assert.assertEquals(wanted, GraphTestBase.iteratorToSet(L.iterator())); }
private Set<Node> gsp(String user, String password, String graphName) { Set<Node> results = new HashSet<>(); try (RDFConnection conn = RDFConnectionFactory.connectPW(baseUrl, user, password)) { Model model = graphName == null ? conn.fetch() : conn.fetch(graphName); // Extract subjects. Set<Node> seen = SetUtils.toSet( Iter.asStream(model.listSubjects()) .map(r->r.asNode()) ); return seen; } }
private Set<Node> gsp(String user, String password, String graphName) { Set<Node> results = new HashSet<>(); try (RDFConnection conn = RDFConnectionFactory.connectPW(baseUrl, user, password)) { Model model = graphName == null ? conn.fetch() : conn.fetch(graphName); // Extract subjects. Set<Node> seen = SetUtils.toSet( Iter.asStream(model.listSubjects()) .map(r->r.asNode()) ); return seen; } }
public void testListSubjectsWorksAfterRemoveProperties() { final Model m = ModelHelper.modelWithStatements(this, "p1 before terminal; p2 before terminal"); m.createResource("eh:/p1").removeProperties(); ModelHelper.assertIsoModels( ModelHelper.modelWithStatements(this, "p2 before terminal"), m); Assert.assertEquals(ModelHelper.resourceSet("p2"), m.listSubjects() .toSet()); }
public void testListSubjectsWorksAfterRemoveProperties() { final Model m = ModelHelper.modelWithStatements(this, "p1 before terminal; p2 before terminal"); m.createResource("eh:/p1").removeProperties(); ModelHelper.assertIsoModels( ModelHelper.modelWithStatements(this, "p2 before terminal"), m); Assert.assertEquals(ModelHelper.resourceSet("p2"), m.listSubjects() .toSet()); }
public void testListSubjectsWorksAfterRemovePropertiesWIthLots() { final Model m = ModelHelper.modelWithStatements(this, "p2 before terminal"); for (int i = 0; i < 100; i += 1) { ModelHelper.modelAdd(m, "p1 hasValue " + i); } m.createResource("eh:/p1").removeProperties(); ModelHelper.assertIsoModels( ModelHelper.modelWithStatements(this, "p2 before terminal"), m); Assert.assertEquals(ModelHelper.resourceSet("p2"), m.listSubjects() .toSet()); } }