@Override public Collection<Object> getSubjects(Object graph, Object pred, Object obj) { Model m = ((Model) graph).filter(null, (URI) pred, (Value) obj, (Resource) null); Collection<Object> c = new HashSet<Object>(); c.addAll(m.subjects()); return c; }
public void setModel(Model model) { this.model = model; if (nouns != null) { Set<String> localNames = new HashSet<String>(); for (Resource subj : model.filter(null, RDF.TYPE, null).subjects()) { if (subj instanceof URI) { localNames.add(((URI) subj).getLocalName()); } } for (String name : localNames) { if (name.matches("^[a-zA-Z][a-z]+$")) { nouns.add(name.toLowerCase()); } } } }
public void setModel(Model model) { this.model = model; if (nouns != null) { Set<String> localNames = new HashSet<String>(); for (Resource subj : model.filter(null, RDF.TYPE, null).subjects()) { if (subj instanceof URI) { localNames.add(((URI) subj).getLocalName()); } } for (String name : localNames) { if (name.matches("^[a-zA-Z][a-z]+$")) { nouns.add(name.toLowerCase()); } } } }
private void checkMessageTargets() { for (Resource msg : ds.match(null, RDFS.SUBCLASSOF, MSG.MESSAGE) .subjects()) { getOrAddTargetRestriction(msg); } }
private void renameAnonymousClasses() { for (Resource res : ds.match(null, RDF.TYPE, OWL.CLASS).subjects()) { if (res instanceof URI) continue; // if not already moved nameAnonymous(res); } }
private void checkMessageTargets() { for (Resource msg : ds.match(null, RDFS.SUBCLASSOF, MSG.MESSAGE) .subjects()) { getOrAddTargetRestriction(msg); } }
private void renameAnonymousClasses() { for (Resource res : ds.match(null, RDF.TYPE, OWL.CLASS).subjects()) { if (res instanceof URI) continue; // if not already moved nameAnonymous(res); } }
public VocabBuilder(String filename, RDFFormat format) throws IOException, RDFParseException { Path file = Paths.get(filename); if (!Files.exists(file)) throw new FileNotFoundException(filename); if (format == null) { format = Rio.getParserFormatForFileName(filename); log.trace("detected input format from filename {}: {}", filename, format); } try (final InputStream inputStream = Files.newInputStream(file)) { log.trace("Loading input file"); model = Rio.parse(inputStream, "", format); } //import Set<Resource> owlOntologies = model.filter(null, RDF.TYPE, OWL.ONTOLOGY).subjects(); if (!owlOntologies.isEmpty()) { setPrefix(owlOntologies.iterator().next().stringValue()); } }
public Collection<RDFClass> getDeclaredMessages() { Set<RDFClass> set = new TreeSet<RDFClass>(); for (Resource res : model.filter(null, OWL.ALLVALUESFROM, self) .subjects()) { if (model.contains(res, OWL.ONPROPERTY, MSG.TARGET)) { for (Resource msg : model.filter(null, RDFS.SUBCLASSOF, res) .subjects()) { if (MSG.MESSAGE.equals(msg)) continue; RDFClass rc = new RDFClass(model, msg); if (rc.isMessageClass()) { set.add(rc); } } } } return set; }
private void distributeSubMessage() { boolean changed = false; for (Resource msg : ds.match(null, RDFS.SUBCLASSOF, MSG.MESSAGE) .subjects()) { for (Resource sub : ds.match(null, RDFS.SUBCLASSOF, msg).subjects()) { if (!ds.contains(sub, RDFS.SUBCLASSOF, MSG.MESSAGE)) { ds.add(sub, RDFS.SUBCLASSOF, MSG.MESSAGE); changed = true; } } } if (changed) { distributeSubMessage(); } }
private void distributeSubMessage() { boolean changed = false; for (Resource msg : ds.match(null, RDFS.SUBCLASSOF, MSG.MESSAGE) .subjects()) { for (Resource sub : ds.match(null, RDFS.SUBCLASSOF, msg).subjects()) { if (!ds.contains(sub, RDFS.SUBCLASSOF, MSG.MESSAGE)) { ds.add(sub, RDFS.SUBCLASSOF, MSG.MESSAGE); changed = true; } } } if (changed) { distributeSubMessage(); } }
@Override public Set makeEmptySet() { return makeEmptyModel().filter(null, RDF.VALUE, createURI("test")).subjects(); }
private Set<String> findUndefinedNamespaces(Model model, ClassLoader cl) { Set<String> unknown = new HashSet<String>(); for (Resource subj : model.filter(null, RDF.TYPE, null).subjects()) { if (subj instanceof URI) { URI uri = (URI) subj; String ns = uri.getNamespace(); if (!mapper.isRecordedConcept(uri, cl) && !literals.isRecordedeType(uri) && !mapper.isRecordedAnnotation(uri)) { unknown.add(ns); } } } return unknown; }
@Override protected int applyRules(Model iteration) throws SailException { try { int nofInferred = 0; nofInferred += applyRulesInternal(iteration.subjects()); nofInferred += applyRulesInternal(Iterables.filter(iteration.objects(), Resource.class)); return nofInferred; } catch (SailException e) { throw e; } catch (OpenRDFException e) { throw new SailException(e); } }
private Set<String> findUndefinedNamespaces(Model model, ClassLoader cl) { Set<String> unknown = new HashSet<String>(); for (Resource subj : model.filter(null, RDF.TYPE, null).subjects()) { if (subj instanceof URI) { URI uri = (URI) subj; String ns = uri.getNamespace(); if (!mapper.isRecordedConcept(uri, cl) && !literals.isRecordedeType(uri) && !mapper.isRecordedAnnotation(uri)) { unknown.add(ns); } } } return unknown; }
private void addParameters(Set<String> parameters, Set<Value> skip) { for (Resource prop : model.filter(null, RDFS.DOMAIN, self).subjects()) { if (isParameter(prop)) { parameters.add(prop.stringValue()); } } for (Value sup : model.filter(self, RDFS.SUBCLASSOF, null).objects()) { if (isRDFSOrOWL(sup) || !skip.add(sup)) continue; new RDFClass(model, (Resource) sup).addParameters(parameters, skip); } }
private void addParameters(Set<String> parameters, Set<Value> skip) { for (Resource prop : model.filter(null, RDFS.DOMAIN, self).subjects()) { if (isParameter(prop)) { parameters.add(prop.stringValue()); } } for (Value sup : model.filter(self, RDFS.SUBCLASSOF, null).objects()) { if (isRDFSOrOWL(sup) || !skip.add(sup)) continue; new RDFClass(model, (Resource) sup).addParameters(parameters, skip); } }
@Test public void testDescribeB() throws Exception { loadTestData("/testdata-query/dataset-describe.trig"); StringBuilder query = new StringBuilder(); query.append(getNamespaceDeclarations()); query.append("DESCRIBE ex:b"); GraphQuery gq = conn.prepareGraphQuery(QueryLanguage.SPARQL, query.toString()); ValueFactory f = conn.getValueFactory(); URI b = f.createURI("http://example.org/b"); URI p = f.createURI("http://example.org/p"); Model result = QueryResults.asModel(gq.evaluate()); Set<Resource> subjects = result.filter(null, p, b).subjects(); assertNotNull(subjects); for (Value subject : subjects) { if (subject instanceof BNode) { assertTrue(result.contains(null, null, subject)); } } }
@Test public void testExceptionHandlingWithoutStopAtFirstError() throws Exception { String data = "invalid nt"; RDFParser ntriplesParser = createRDFParser(); ntriplesParser.getParserConfig().addNonFatalError(NTriplesParserSettings.FAIL_ON_NTRIPLES_INVALID_LINES); ntriplesParser.getParserConfig().set(NTriplesParserSettings.FAIL_ON_NTRIPLES_INVALID_LINES, Boolean.TRUE); Model model = new LinkedHashModel(); ntriplesParser.setRDFHandler(new StatementCollector(model)); ntriplesParser.parse(new StringReader(data), NTRIPLES_TEST_URL); assertEquals(0, model.size()); assertEquals(0, model.subjects().size()); assertEquals(0, model.predicates().size()); assertEquals(0, model.objects().size()); }
private void assertModel(final Model parseTsv) { Assert.assertFalse(parseTsv.isEmpty()); Assert.assertEquals(4, parseTsv.subjects().size()); Assert.assertEquals(6, parseTsv.predicates().size()); Assert.assertEquals(9, parseTsv.objects().size()); }