private boolean isomorphic(DatasetGraph dsg1, DatasetGraph dsg2) { return IsoMatcher.isomorphic(dsg1, dsg2) ; }
private void test$(List<Tuple<Node>> t1, List<Tuple<Node>> t2, boolean iso) { boolean b = IsoMatcher.isomorphic(t1, t2) ; if ( b != iso ) { System.out.println("====") ; System.out.println(t1) ; System.out.println("----") ; System.out.println(t2) ; System.out.println("Expected: "+iso+" ; got: "+b) ; } assertEquals(iso, b) ; }
private static boolean isIsomorphic(Dataset ds1, Dataset ds2) { return IsoMatcher.isomorphic(ds1.asDatasetGraph(), ds2.asDatasetGraph()) ; }
private static boolean isomorphic(Dataset ds1, Dataset ds2) { return IsoMatcher.isomorphic(ds1.asDatasetGraph(), ds2.asDatasetGraph()); }
private void testDSG$(String s1, String s2, boolean iso) { s1 = "(dataset "+s1+")" ; s2 = "(dataset "+s2+")" ; DatasetGraph dsg1 = SSE.parseDatasetGraph(s1) ; DatasetGraph dsg2 = SSE.parseDatasetGraph(s2) ; boolean b = IsoMatcher.isomorphic(dsg1, dsg2) ; if ( b != iso ) { System.out.println("====") ; SSE.write(dsg1) ; System.out.println("----") ; SSE.write(dsg2) ; System.out.println("Expected: "+iso+" ; got: "+b) ; } assertEquals(iso, b) ; }
@Test public void trix_writer() { DatasetGraph dsg = RDFDataMgr.loadDatasetGraph(fNQuads) ; ByteArrayOutputStream bout = new ByteArrayOutputStream() ; RDFDataMgr.write(bout, dsg, Lang.TRIX) ; ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray()) ; DatasetGraph dsg2 = DatasetGraphFactory.create() ; RDFDataMgr.read(dsg2, bin, Lang.TRIX) ; boolean b = IsoMatcher.isomorphic(dsg, dsg2) ; assertTrue("Not isomorphic", b) ; } }
private boolean hasSameContent(final WonMessage processedMessage, final WonMessage message) { Dataset messageContent = message.getMessageContent(); Dataset processedContent = processedMessage.getMessageContent(); for (String name : RdfUtils.getModelNames(processedContent)) { Model model = processedContent.getNamedModel(name); if (WonRdfUtils.SignatureUtils.isSignatureGraph(name, model) && !RdfUtils.getModelNames(messageContent).contains(name)) { processedContent.removeNamedModel(name); } } if (IsoMatcher.isomorphic(processedContent.asDatasetGraph(), messageContent.asDatasetGraph())) { return true; } return false; }
@Test public void graph_02() { ByteArrayOutputStream out = new ByteArrayOutputStream() ; StreamRDFWriter.write(out, graph, Lang.RDFTHRIFT) ; byte[] bytes = out.toByteArray() ; ByteArrayInputStream in = new ByteArrayInputStream(bytes) ; Graph g2 = GraphFactory.createGraphMem() ; RDFDataMgr.read(g2, in, Lang.RDFTHRIFT) ; boolean b = IsoMatcher.isomorphic(graph, g2) ; assertTrue(b) ; // Stronger - same bNodes. // ** Java8 //graph.find(null, null, null).forEachRemaining(t -> assertTrue(g2.contains(t))) ; // Stronger - same bNodes. sameTerms(graph, g2) ; }
@Test public void trix_dataset() { DatasetGraph ds1 = RDFDataMgr.loadDatasetGraph(fInput) ; DatasetGraph ds2 = null ; if ( fExpected != null ) ds2 = RDFDataMgr.loadDatasetGraph(fExpected) ; if ( ds2 != null ) assertTrue("Datasets not isomorphic", IsoMatcher.isomorphic(ds1, ds2)) ; } }
@Test public void graph_01() { ByteArrayOutputStream out = new ByteArrayOutputStream() ; StreamRDF stream = BinRDF.streamToOutputStream(out, true) ; // With values. StreamOps.graphToStream(graph, stream) ; byte[] bytes = out.toByteArray() ; ByteArrayInputStream in = new ByteArrayInputStream(bytes) ; Graph g2 = GraphFactory.createGraphMem() ; StreamRDF stream2 = StreamRDFLib.graph(g2) ; BinRDF.inputStreamToStream(in, stream2) ; //assertTrue(graph.isIsomorphicWith(g2)) ; boolean b = IsoMatcher.isomorphic(graph, g2) ; //**** assertTrue(b) ; // Stronger - same bNodes. sameTerms(graph, g2) ; }
@Test public void dataset_02() { DatasetGraph dsg1 = datasetGraph ; ByteArrayOutputStream out = new ByteArrayOutputStream() ; StreamRDFWriter.write(out, dsg1, Lang.RDFTHRIFT) ; byte[] bytes = out.toByteArray() ; ByteArrayInputStream in = new ByteArrayInputStream(bytes) ; DatasetGraph dsg2 = DatasetGraphFactory.create() ; StreamRDF stream2 = StreamRDFLib.dataset(dsg2) ; BinRDF.inputStreamToStream(in, stream2) ; boolean b = IsoMatcher.isomorphic(dsg1, dsg2) ; assertTrue(b) ; // Stronger - same bNode and same as in original data. Node obj = Iter.first(dsg1.listGraphNodes(), Node::isBlank) ; termAsObject(dsg1, obj) ; }
@Test public void directDataQuadsString() throws IOException { // first make a file of quads to load later DatasetGraph dsgData = DatasetGraphFactory.createTxnMem(); dsgData.add(SSE.parseQuad("(_ :s1 :p1 :o1)")); dsgData.add(SSE.parseQuad("(:gn :s2 :p2 :o2)")); Path quads = createTempFile("quadExample2", ".nq"); String dataFileName = quads.toFile().toURI().toString(); try (OutputStream out = new FileOutputStream(quads.toFile())) { write(out, dsgData, NQUADS); } Model assemblerModel = createDefaultModel(); Resource simpleExample2 = assemblerModel.createResource("test:simpleExample2"); simpleExample2.addProperty(type, DatasetAssemblerVocab.tDatasetTxnMem) ; simpleExample2.addProperty(data, dataFileName); final Dataset dataset = assemble(simpleExample2); assertTrue(IsoMatcher.isomorphic(dsgData, dataset.asDatasetGraph())); }
@Test public void dataset_01() { DatasetGraph dsg1 = datasetGraph ; ByteArrayOutputStream out = new ByteArrayOutputStream() ; StreamRDF stream = BinRDF.streamToOutputStream(out) ; StreamOps.datasetToStream(dsg1, stream) ; byte[] bytes = out.toByteArray() ; ByteArrayInputStream in = new ByteArrayInputStream(bytes) ; DatasetGraph dsg2 = DatasetGraphFactory.create() ; StreamRDF stream2 = StreamRDFLib.dataset(dsg2) ; BinRDF.inputStreamToStream(in, stream2) ; boolean b = IsoMatcher.isomorphic(dsg1, dsg2) ; assertTrue(b) ; // Stronger - same bNode and same as in original data. Node obj = Iter.first(dsg1.listGraphNodes(), Node::isBlank) ; termAsObject(dsg1, obj) ; }
@Test public void testARQConstructQuad_ShortForm_3() { String queryString = "CONSTRUCT WHERE { ?s ?p ?o. GRAPH ?g1 {?s1 ?p1 ?o1} }"; Query q = QueryFactory.create(queryString, Syntax.syntaxARQ); QueryExecution qExec = QueryExecutionFactory.create(q, d); Dataset result = qExec.execConstructDataset(); assertTrue(IsoMatcher.isomorphic( d.asDatasetGraph(), result.asDatasetGraph()) ); }
@Test public void testARQConstructQuad_a_2() { String queryString = "CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o }"; Query q = QueryFactory.create(queryString, Syntax.syntaxARQ); QueryExecution qExec = QueryExecutionFactory.create(q, d); Iterator<Quad> ts = qExec.execConstructQuads(); DatasetGraph result = DatasetGraphFactory.create(); long count = 0; while (ts.hasNext()) { count++; result.add( ts.next() ); } DatasetGraph expected = DatasetGraphFactory.create(); expected.add(Quad.defaultGraphNodeGenerated, s.asNode(), p.asNode(), o.asNode()); assertEquals(1, count); assertTrue(IsoMatcher.isomorphic( expected, result) ); }
@Test public void testARQConstructQuad_b_2() { String queryString = "CONSTRUCT { GRAPH ?g1 {?s ?p ?o} } WHERE { ?s ?p ?o. GRAPH ?g1 {?s1 ?p1 'x1'} }"; Query q = QueryFactory.create(queryString, Syntax.syntaxARQ); QueryExecution qExec = QueryExecutionFactory.create(q, d); Iterator<Quad> ts = qExec.execConstructQuads(); DatasetGraph result = DatasetGraphFactory.create(); long count = 0; while (ts.hasNext()) { count++; Quad qd = ts.next(); result.add(qd); } DatasetGraph expected = DatasetGraphFactory.create(); expected.add(g1.asNode(), s.asNode(), p.asNode(), o.asNode()); assertEquals(1, count); assertTrue(IsoMatcher.isomorphic( expected, result) ); }
@Test public void testARQConstructQuad_ShortForm_2() { String queryString = "CONSTRUCT WHERE { GRAPH ?g {?s ?p ?o} }"; Query q = QueryFactory.create(queryString, Syntax.syntaxARQ); QueryExecution qExec = QueryExecutionFactory.create(q, d); Dataset result = qExec.execConstructDataset(); Dataset expected = DatasetFactory.createTxnMem(); expected.addNamedModel(g1.getURI(), m); assertTrue(IsoMatcher.isomorphic( expected.asDatasetGraph(), result.asDatasetGraph()) ); }
@Test public void testARQConstructQuad_Duplicate_2() { String queryString = "CONSTRUCT { GRAPH ?g1 {?s ?p ?o} } WHERE { ?s ?p ?o. GRAPH ?g1 {?s1 ?p1 ?o1} }"; Query q = QueryFactory.create(queryString, Syntax.syntaxARQ); QueryExecution qExec = QueryExecutionFactory.create(q, d); Dataset result = qExec.execConstructDataset(); DatasetGraph expected = DatasetGraphFactory.create(); expected.add(g1.asNode(), s.asNode(), p.asNode(), o.asNode()); assertEquals(1, result.asDatasetGraph().size()); assertTrue(IsoMatcher.isomorphic( expected, result.asDatasetGraph()) ); }
@Test public void isomorphic_1() { DatasetGraph dsg = fresh() ; load(dsg, maker , DIR + "data-1.nq", DIR + "data-2.nt") ; Txn.executeRead(dsg, ()->{ assertEquals(1, dsg.getGraph(g).size()) ; assertEquals(2, dsg.getDefaultGraph().size()); }); DatasetGraph dsg1 = RDFDataMgr.loadDatasetGraph(DIR + "data-1.nq"); RDFDataMgr.read(dsg1, DIR + "data-2.nt"); Txn.executeRead(dsg, ()->{ boolean b = IsoMatcher.isomorphic(dsg1, dsg); assertTrue("Not isomorphic", b); }); }
@Test public void isomorphic_1() { DatasetGraph dsg = fresh() ; load(dsg, maker , DIR + "data-1.nq", DIR + "data-2.nt") ; Txn.executeRead(dsg, ()->{ assertEquals(1, dsg.getGraph(g).size()) ; assertEquals(2, dsg.getDefaultGraph().size()); }); DatasetGraph dsg1 = RDFDataMgr.loadDatasetGraph(DIR + "data-1.nq"); RDFDataMgr.read(dsg1, DIR + "data-2.nt"); Txn.executeRead(dsg, ()->{ boolean b = IsoMatcher.isomorphic(dsg1, dsg); assertTrue("Not isomorphic", b); }); }