📄 repositorytest.java
字号:
catch (MalformedQueryException e) { fail("Malformed query: " + e.getMessage()); } catch (AccessDeniedException e) { fail("Access denied: " + e.getMessage()); } } public void testMergeGraph() { try { String workingDir = System.getProperty("user.dir"); File dataFile = new File(workingDir + "/test/files/testcases/bnodes/foaf.rdf"); _repository.clear(new StdOutAdminListener()); _repository.addData(dataFile, "", RDFFormat.RDFXML, true, new StdOutAdminListener()); Graph toBeMerged = _repository.performGraphQuery(QueryLanguage.SERQL, " construct {y} foaf:knows {x} from {x} foaf:knows {y} " + " using namespace foaf = <http://xmlns.com/foaf/0.1/>"); _repository.addGraph(toBeMerged); Graph result = _repository.performGraphQuery(QueryLanguage.SERQL, " construct * from {x} foaf:knows {y} foaf:knows {x} " + " using namespace foaf = <http://xmlns.com/foaf/0.1/>"); ValueFactory factory = result.getValueFactory(); URI predicate = factory.createURI("http://xmlns.com/foaf/0.1/knows"); // if the add was successful all foaf:knows relations are now 'symmetric' assertTrue(result.contains(null, predicate, null)); } catch (QueryEvaluationException e) { fail("query evaluation exception: " + e.getMessage()); } catch (IOException e) { fail("I/O error: " + e.getMessage()); } catch (MalformedQueryException e) { fail("Malformed query: " + e.getMessage()); } catch (AccessDeniedException e) { fail("Access denied: " + e.getMessage()); } } public void testRemoveGraph() { try { String workingDir = System.getProperty("user.dir"); File dataFile = new File(workingDir + "/test/files/museum/culture.rdf"); String baseURI = "http://www.icom.com/schema.rdf"; _repository.clear(new StdOutAdminListener()); _repository.addData(dataFile, baseURI, RDFFormat.RDFXML, true, new StdOutAdminListener()); Graph toBeRemoved = _repository.performGraphQuery(QueryLanguage.SERQL, "construct * from {X} <http://www.icom.com/schema.rdf#paints> {Y} where Y != X"); _repository.removeGraph(toBeRemoved); StatementIterator iter = toBeRemoved.getStatements(); while (iter.hasNext()) { Statement st = iter.next(); StringBuffer query = new StringBuffer(64); query.append("construct * from "); query.append("{<" + st.getSubject() + ">} "); query.append("<" + st.getPredicate() + "> "); Value object = st.getObject(); if (object instanceof Resource) { query.append("{<" + object + ">}"); } else { query.append("{\"" + object + "\"}"); } Graph graph = _repository.performGraphQuery(QueryLanguage.SERQL, query.toString()); assertFalse(graph.contains(st)); } } catch (QueryEvaluationException e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } catch (IOException e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } catch (MalformedQueryException e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } catch (AccessDeniedException e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } } public void testRemoveStatements() { try { String workingDir = System.getProperty("user.dir"); File dataFile = new File(workingDir + "/test/files/museum/culture.rdf"); String baseURI = "http://www.icom.com/schema.rdf"; _repository.clear(new StdOutAdminListener()); _repository.addData(dataFile, baseURI, RDFFormat.RDFXML, true, new StdOutAdminListener()); } catch (MalformedURLException e) { fail("malformed url: " + e); } catch (IOException e) { fail("I/O error: " + e); } catch (AccessDeniedException e) { fail("Access denied: " + e.getMessage()); } URI picasso = new URIImpl("http://www.european-history.com/picasso.html"); try { _repository.removeStatements(picasso, null, null, new StdOutAdminListener()); Graph result = _repository.performGraphQuery(QueryLanguage.SERQL, "construct * from {<" + picasso.toString() + ">} p {Y}"); assertFalse(result.contains(null, null, null)); } catch (IOException e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } catch (AccessDeniedException e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } catch (QueryEvaluationException e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } catch (MalformedQueryException e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } } public void testRemoveGraphQuery() { try { String workingDir = System.getProperty("user.dir"); File dataFile = new File(workingDir + "/test/files/museum/culture.rdf"); String baseURI = "http://www.icom.com/schema.rdf"; _repository.clear(new StdOutAdminListener()); _repository.addData(dataFile, baseURI, RDFFormat.RDFXML, true, new StdOutAdminListener()); } catch (IOException e) { fail("I/O error: " + e); } catch (AccessDeniedException e) { fail("Access denied: " + e.getMessage()); } try { _repository.removeGraph(QueryLanguage.SERQL, "construct * from {X} <http://www.icom.com/schema.rdf#paints> {Y} where Y != X"); } catch (IOException e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } catch (AccessDeniedException e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } } public void testAddGraphQuery() { try { String workingDir = System.getProperty("user.dir"); File dataFile = new File(workingDir + "/test/files/museum/culture.rdf"); String baseURI = "http://www.icom.com/schema.rdf"; _repository.clear(new StdOutAdminListener()); _repository.addData(dataFile, baseURI, RDFFormat.RDFXML, true, new StdOutAdminListener()); } catch (IOException e) { fail("I/O error: " + e); } catch (AccessDeniedException e) { fail("Access denied: " + e.getMessage()); } try { _repository.addGraph(QueryLanguage.SERQL, "construct {Y} <http://www.foo.com/bar> {X} from {X} rdfs:subClassOf {Y} where Y != X"); Graph graph = _repository.performGraphQuery(QueryLanguage.SERQL, "construct * from {X} <http://www.foo.com/bar> {Y}"); ValueFactory factory = graph.getValueFactory(); URI predicate = factory.createURI("http://www.foo.com/bar"); assertTrue(graph.contains(null, predicate, null)); Statement st = null; try { StatementIterator iter = graph.getStatements(null, predicate, null);//predicate.getPredicateStatements(); st = iter.next(); iter.close(); } catch (Exception e) { fail("Graph error: " + e); } Statement st2 = factory.createStatement(st.getSubject(), st.getPredicate(), st.getObject()); assertTrue(graph.contains(st)); assertTrue(graph.contains(st2)); } catch (QueryEvaluationException e) { fail("query evaluation exception: " + e.getMessage()); } catch (IOException e) { fail("io exception: " + e.getMessage()); } catch (MalformedQueryException e) { fail("mfq exception: " + e.getMessage()); } catch (AccessDeniedException e) { fail("access denied exception: " + e.getMessage()); } } public void testRemoveBNodes() { try { String workingDir = System.getProperty("user.dir"); File file = new File(workingDir + "/test/files/testcases/bnodes/foaf.rdf"); _repository.clear(new StdOutAdminListener()); _repository.addData(file, "foo:bar", RDFFormat.RDFXML, true, new StdOutAdminListener()); } catch (MalformedURLException e) { fail("malformed url: " + e); } catch (IOException e) { fail("I/O error: " + e); } catch (AccessDeniedException e) { fail("Access denied: " + e.getMessage()); } try { Graph myGraph = _repository.performGraphQuery(QueryLanguage.SERQL, "construct * " + "from {X} rdf:type {foaf:Person}; " + " foaf:name {\"Jeen Broekstra\"}; " + " p {y} " + "using namespace foaf = <http://xmlns.com/foaf/0.1/>"); StatementIterator iter = myGraph.getStatements(); while (iter.hasNext()) { Statement st = iter.next(); _repository.removeStatements(st.getSubject(), st.getPredicate(), st.getObject(), new StdOutAdminListener()); } iter.close(); Graph myGraph2 = _repository.performGraphQuery(QueryLanguage.SERQL, "construct * " + "from {X} rdf:type {foaf:Person}; " + " foaf:name {\"Jeen Broekstra\"}; " + " p {y} " + "using namespace foaf = <http://xmlns.com/foaf/0.1/>"); assertFalse(myGraph2.contains(null, null, null)); } catch (QueryEvaluationException e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } catch (IOException e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } catch (MalformedQueryException e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } catch (AccessDeniedException e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } } public void testUnicodeQuery() { try { String workingDir = System.getProperty("user.dir"); File dataFile = new File(workingDir + "/test/files/testcases/unicode/multilingual.rdf"); _repository.clear(new StdOutAdminListener()); _repository.addData(dataFile, "foo:bar", RDFFormat.RDFXML, true, new StdOutAdminListener()); QueryResultsTable resultsTable = _repository.performTableQuery( QueryLanguage.SERQL, "select * from {<http://www.dictionary.com/words/bg/\u041A\u043E\u0440\u043D\u0438\u0437>} P {Y}"); assertEquals(6, resultsTable.getRowCount()); } catch (Exception e) { fail("[" + e.getClass() + "]: " + e.getMessage()); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -