📄 rdfcoretests.java
字号:
} } }); _parsedModel.startTransaction(); _rdfXmlParser.parse(inputStream, inputFile); inputStream.close(); _parsedModel.commitTransaction(); } else { URL inputURL = new URL(inputFile); InputStream inputStream = inputURL.openStream(); _nTriplesParser.setStatementHandler(new StatementHandler() { public void handleStatement(Resource subj, URI pred, Value obj) throws StatementHandlerException { try { _parsedModel.addStatement(subj, pred, obj); } catch (SailUpdateException e) { fail("Unable to add statements to models: " + e.getMessage()); } } }); _parsedModel.startTransaction(); _nTriplesParser.parse(inputStream, inputFile); inputStream.close(); _parsedModel.commitTransaction(); } } catch (StatementHandlerException e) { // FIXME } catch (ParseException e) { // parse exception on input model means datatype checking // failed. dTypeCheckFailed = true; System.out.println("test: " + testName); System.out.println("input model failed parsing"); } if (dTypeCheckFailed) { System.out.println("it works: set to true"); } try { // read expected model if (cType.endsWith("RDF-XML-Document")) { //System.out.println("Parsing file " + inputFile); URL outputURL = new URL(outputFile); InputStream inputStream = outputURL.openStream(); _rdfXmlParser.setStatementHandler(new StatementHandler() { public void handleStatement(Resource subj, URI pred, Value obj) { try { _expectedModel.addStatement(subj, pred, obj); } catch (SailUpdateException e) { fail("Unable to add statements to models: " + e.getMessage()); } } }); _expectedModel.startTransaction(); _rdfXmlParser.parse(inputStream, inputFile); inputStream.close(); _expectedModel.commitTransaction(); } else if (cType.endsWith("NT-Document")) { //System.out.println("Parsing file " + inputFile); URL outputURL = new URL(outputFile); InputStream inputStream = outputURL.openStream(); _nTriplesParser.setStatementHandler(new StatementHandler() { public void handleStatement(Resource subj, URI pred, Value obj) { try { _expectedModel.addStatement(subj, pred, obj); } catch (SailUpdateException e) { fail("Unable to add statements to models: " + e.getMessage()); } } }); _expectedModel.startTransaction(); _nTriplesParser.parse(inputStream, inputFile); inputStream.close(); _expectedModel.commitTransaction(); } else { // False Document // FIXME succeeded = false; } } catch (StatementHandlerException e) { // FIXME } catch (ParseException e) { System.out.println("test: " + testName); System.out.println("output model failed parsing"); } StatementIterator expectedStatements = null; if (succeeded) { expectedStatements = _expectedModel.getStatements(null, null, null); } else { expectedStatements = new EmptyStatementIterator(); if (dTypeCheckFailed) { succeeded = true; } } while (expectedStatements.hasNext()) { Statement st = expectedStatements.next(); Resource subject = st.getSubject(); URI predicate = st.getPredicate(); Value object = st.getObject(); if (subject instanceof BNode) { // BNodes interpreted as wildcards subject = null; } if (object instanceof BNode) { // BNodes interpreted as wildcards object = null; } if (!_parsedModel.hasStatement(subject, predicate, object)) { System.out.println("failed test: " + testName); System.out.println(" +-> missing statement: " + st.toString()); succeeded = false; break; } } end = new Date().toString(); if (succeeded) { _addLogStatement(bNode, RDF.TYPE, _resOntURL + "PassingRun", 2, 1); _addLogStatement(bNode, _resOntURL + "test", testName, 2, 1); _addLogStatement(testName, RDF.TYPE, _testSchemaURL + "PositiveEntailmentTest", 1, 1); _addLogStatement(bNode, _resOntURL + "system", "system", 2, 2); _addLogStatement(bNode, _resOntURL + "begins", begin, 2, 3); _addLogStatement(bNode, _resOntURL + "ends", end, 2, 3); _addLogStatement(bNode, _resOntURL + "output", _resultFeedURL, 2, 1); } else { _addLogStatement(bNode, RDF.TYPE, _resOntURL + "FailingRun", 2, 1); _addLogStatement(bNode, _resOntURL + "test", testName, 2, 1); _addLogStatement(testName, RDF.TYPE, _testSchemaURL + "PositiveEntailmentTest", 1, 1); _addLogStatement(bNode, _resOntURL + "system", "system", 2, 2); _addLogStatement(bNode, _resOntURL + "begins", begin, 2, 3); _addLogStatement(bNode, _resOntURL + "ends", end, 2, 3); _addLogStatement(bNode, _resOntURL + "output", _resultFeedURL, 2, 1); } } catch (IOException e) { fail("IO exception: " + e.getMessage()); } } protected void _negativeEntailmentTest(int nodeId, String testName, String inputFile, String outputFile, String pType, String cType) { boolean succeeded = false; String begin = null; String end = null; String bNode = "enegnode" + String.valueOf(nodeId); _parsedModel = new org.openrdf.sesame.sailimpl.memory.RdfSchemaRepository(); _expectedModel = new org.openrdf.sesame.sailimpl.memory.RdfRepository(); try { Map noParams = new HashMap(); _parsedModel.initialize(noParams); _expectedModel.initialize(noParams); } catch (SailInitializationException e) { fail("Unable to initialize models: " + e.getMessage()); } try { begin = new Date().toString(); boolean dTypeCheckFailed = false; try { // read input model if (pType.endsWith("RDF-XML-Document")) { //System.out.println("Parsing file " + inputFile); URL inputURL = new URL(inputFile); InputStream inputStream = inputURL.openStream(); _rdfXmlParser.setStatementHandler(new StatementHandler() { public void handleStatement(Resource subj, URI pred, Value obj) { try { _parsedModel.addStatement(subj, pred, obj); } catch (SailUpdateException e) { fail("Unable to add statements to models: " + e.getMessage()); } } }); _parsedModel.startTransaction(); _rdfXmlParser.parse(inputStream, inputFile); inputStream.close(); _parsedModel.commitTransaction(); } else { URL inputURL = new URL(inputFile); InputStream inputStream = inputURL.openStream(); _nTriplesParser.setStatementHandler(new StatementHandler() { public void handleStatement(Resource subj, URI pred, Value obj) { try { _parsedModel.addStatement(subj, pred, obj); } catch (SailUpdateException e) { fail("Unable to add statements to models: " + e.getMessage()); } } }); _parsedModel.startTransaction(); _nTriplesParser.parse(inputStream, inputFile); inputStream.close(); _parsedModel.commitTransaction(); } } catch (StatementHandlerException e) { // FIXME } catch (ParseException e) { // parse exception on input model means datatype checking // failed. dTypeCheckFailed = true; System.out.println("test: " + testName); System.out.println("input model failed parsing"); } try { // read expected model if (cType.endsWith("RDF-XML-Document")) { //System.out.println("Parsing file " + inputFile); URL outputURL = new URL(outputFile); InputStream inputStream = outputURL.openStream(); _rdfXmlParser.setStatementHandler(new StatementHandler() { public void handleStatement(Resource subj, URI pred, Value obj) throws StatementHandlerException { try { _expectedModel.addStatement(subj, pred, obj); } catch (SailUpdateException e) { fail("Unable to add statements to models: " + e.getMessage()); } } }); _expectedModel.startTransaction(); _rdfXmlParser.parse(inputStream, inputFile); inputStream.close(); _expectedModel.commitTransaction(); } else if (cType.endsWith("NT-Document")) { //System.out.println("Parsing file " + inputFile); URL outputURL = new URL(outputFile); InputStream inputStream = outputURL.openStream(); _nTriplesParser.setStatementHandler(new StatementHandler() { public void handleStatement(Resource subj, URI pred, Value obj) throws StatementHandlerException { try { _expectedModel.addStatement(subj, pred, obj); } catch (SailUpdateException e) { fail("Unable to add statements to models: " + e.getMessage()); } } }); _expectedModel.startTransaction(); _nTriplesParser.parse(inputStream, inputFile); inputStream.close(); _expectedModel.commitTransaction(); } else { // False Document // FIXME succeeded = true; } } catch (StatementHandlerException e) { // FIXME } catch (ParseException e) { // parse exception on output model: data type checking // failed. succeeded = true; } StatementIterator expectedStatements = null; if (!succeeded) { expectedStatements = _expectedModel.getStatements(null, null, null); } else { expectedStatements = new EmptyStatementIterator(); if (dTypeCheckFailed) { // negative test. by definition it succeeds if the // parsing fails (parse exceptions mean datatype // trouble). succeeded = true; } } while (expectedStatements.hasNext()) { Statement st = expectedStatements.next(); Resource subject = st.getSubject(); URI predicate = st.getPredicate(); Value object = st.getObject(); /* if (subject instanceof BNode) { // BNodes interpreted as wildcards subject = null; } if (object instanceof BNode) { // BNodes interpreted as wildcards object = null; } */ if (!_parsedModel.hasStatement(subject, predicate, object)) { succeeded = true; break; } } end = new Date().toString(); if (succeeded) { _addLogStatement(bNode, RDF.TYPE, _resOntURL + "PassingRun", 2, 1); _addLogStatement(bNode, _resOntURL + "test", testName, 2, 1); _addLogStatement(testName, RDF.TYPE, _testSchemaURL + "NegativeEntailmentTest", 1, 1); _addLogStatement(bNode, _resOntURL + "system", "system", 2, 2); _addLogStatement(bNode, _resOntURL + "begins", begin, 2, 3); _addLogStatement(bNode, _resOntURL + "ends", end, 2, 3); _addLogStatement(bNode, _resOntURL + "output", _resultFeedURL, 2, 1); } else { _addLogStatement(bNode, RDF.TYPE, _resOntURL + "FailingRun", 2, 1); _addLogStatement(bNode, _resOntURL + "test", testName, 2, 1); _addLogStatement(testName, RDF.TYPE, _testSchemaURL + "NegativeEntailmentTest", 1, 1); _addLogStatement(bNode, _resOntURL + "system", "system", 2, 2); _addLogStatement(bNode, _resOntURL + "begins", begin, 2, 3); _addLogStatement(bNode, _resOntURL + "ends", end, 2, 3); _addLogStatement(bNode, _resOntURL + "output", _resultFeedURL, 2, 1); } } catch (IOException e) { fail("IO exception: " + e.getMessage()); } } /** * @param subjectType 1 = uri, 2 = bnode * @param objectType 1 = uri, 2 = bnode, 3 = literal */ private void _addLogStatement(String subject, String predicate, String object, int subjectType, int objectType) { Resource subj; if (subjectType == 1) { subj = new URIImpl(subject); } else { subj = new BNodeImpl(subject); } URI pred = new URIImpl(predicate); Value obj; if (objectType == 1) { obj = new URIImpl(object); } else if (objectType == 2) { obj = new BNodeImpl(object); } else { if (predicate.endsWith("ends") || predicate.endsWith("begins")) { obj = new LiteralImpl(object, new URIImpl("http://www.w3.org/2001/XMLSchema#dateTime")); } else { obj = new LiteralImpl(object); } } try { _logModel.startTransaction(); _logModel.addStatement(subj, pred, obj); _logModel.commitTransaction(); } catch (SailUpdateException e) { fail("couldn't log statement: " + e.getMessage()); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -