From: <mrp...@us...> - 2013-12-08 20:55:04
|
Revision: 7611 http://bigdata.svn.sourceforge.net/bigdata/?rev=7611&view=rev Author: mrpersonick Date: 2013-12-08 20:54:55 +0000 (Sun, 08 Dec 2013) Log Message: ----------- RDR commit: parse reified triples into sids representation Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/StatementBuffer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/QueryHints.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/TestReificationDoneRightEval.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-01.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-01a.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-02a.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-03.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-03a.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-03a.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/sparql/TestReificationDoneRightParser.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/StatementBuffer.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/StatementBuffer.java 2013-12-06 18:11:41 UTC (rev 7610) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/StatementBuffer.java 2013-12-08 20:54:55 UTC (rev 7611) @@ -27,9 +27,11 @@ package com.bigdata.rdf.rio; +import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedList; import java.util.Map; import java.util.Set; @@ -39,11 +41,13 @@ import org.openrdf.model.Statement; import org.openrdf.model.URI; import org.openrdf.model.Value; +import org.semanticweb.yars.nx.namespace.RDF; import com.bigdata.rdf.changesets.ChangeAction; import com.bigdata.rdf.changesets.ChangeRecord; import com.bigdata.rdf.changesets.IChangeLog; import com.bigdata.rdf.internal.IV; +import com.bigdata.rdf.internal.impl.bnode.SidIV; import com.bigdata.rdf.model.BigdataBNode; import com.bigdata.rdf.model.BigdataBNodeImpl; import com.bigdata.rdf.model.BigdataResource; @@ -151,6 +155,14 @@ * the canonicalizing {@link #bnodes} mapping. */ private Set<BigdataStatement> deferredStmts; + + /** + * RDR statements. Map to a bnode used in other statements. Need to defer + * both the reified statement (since it comes in piecemeal) and the + * statements about it (since we need to make sure the ground version is + * present). + */ + private Map<BigdataBNodeImpl, ReifiedStmt> reifiedStmts; /** * <code>true</code> if statement identifiers are enabled. @@ -358,7 +370,7 @@ log.info("capacity=" + capacity + ", sids=" + statementIdentifiers + ", statementStore=" + statementStore + ", database=" - + database); + + database + ", arity=" + arity); } @@ -445,13 +457,63 @@ log.info("processing " + deferredStmts.size() + " deferred statements"); -// incrementalWrite(); + /* + * Need to flush the terms out to the dictionary or the reification + * process will not work correctly. + */ + incrementalWrite(); try { // Note: temporary override - clear by finally{}. statementIdentifiers = false; + // stage 0 + if (reifiedStmts != null) { + + for (Map.Entry<BigdataBNodeImpl, ReifiedStmt> e : reifiedStmts.entrySet()) { + + final BigdataBNodeImpl sid = e.getKey(); + + final ReifiedStmt reifiedStmt = e.getValue(); + + if (!reifiedStmt.isFullyBound(arity)) { + + log.warn("unfinished reified stmt: " + reifiedStmt); + + continue; + + } + + final BigdataStatement stmt = valueFactory.createStatement( + reifiedStmt.getSubject(), + reifiedStmt.getPredicate(), + reifiedStmt.getObject(), + reifiedStmt.getContext(), + StatementEnum.Explicit); + + sid.setStatement(stmt); + + sid.setIV(new SidIV(new SPO(stmt))); + + if (log.isInfoEnabled()) { + log.info("reified sid conversion: sid=" + sid + ", stmt=" + stmt); + } + + } + + if (log.isInfoEnabled()) { + + for (BigdataBNodeImpl sid : reifiedStmts.keySet()) { + + log.info("sid: " + sid + ", iv=" + sid.getIV()); + + } + + } + + } + // stage 1. { @@ -465,6 +527,10 @@ final BigdataStatement stmt = itr.next(); + if (log.isDebugEnabled()) { + log.debug(stmt.getSubject() + ", sid=" + ((BigdataBNode) stmt.getSubject()).isStatementIdentifier() + ", iv=" + stmt.s()); + } + if (stmt.getSubject() instanceof BNode && ((BigdataBNode) stmt.getSubject()).isStatementIdentifier()) continue; @@ -520,6 +586,10 @@ final BigdataStatement stmt = itr.next(); + if (log.isDebugEnabled()) { + log.debug(stmt.getSubject() + ", iv=" + stmt.s()); + } + if (stmt.getSubject() instanceof BNode && ((BigdataBNode) stmt.getSubject()).isStatementIdentifier() && stmt.s() == null) @@ -571,6 +641,14 @@ if (nremaining > 0) { + if (log.isDebugEnabled()) { + + for (BigdataStatement s : deferredStmts) { + log.debug("could not ground: " + s); + } + + } + throw new StatementCyclesException( "" + nremaining + " statements can not be grounded"); @@ -587,6 +665,8 @@ deferredStmts = null; + reifiedStmts = null; + } } @@ -611,6 +691,8 @@ deferredStmts = null; + reifiedStmts = null; + } /** @@ -742,6 +824,10 @@ if (log.isInfoEnabled()) { log.info("writing " + numTerms); + + for (int i = 0; i < numTerms; i++) { + log.info("term: " + terms[i]); + } } @@ -913,13 +999,13 @@ if (c == null) continue; - if (c instanceof URI) { - - throw new UnificationException( - "URI not permitted in context position when statement identifiers are enabled: " - + stmt); - - } +// if (c instanceof URI) { +// +// throw new UnificationException( +// "URI not permitted in context position when statement identifiers are enabled: " +// + stmt); +// +// } if( c instanceof BNode) { @@ -1016,6 +1102,10 @@ log.info("writing " + numStmts + " on " + (statementStore != null ? "statementStore" : "database")); + + for (int i = 0; i < numStmts; i++) { + log.info("spo: " + stmts[i]); + } } @@ -1165,6 +1255,8 @@ protected void handleStatement(Resource s, URI p, Value o, Resource c, StatementEnum type) { +// if (arity == 3) c = null; + s = (Resource) valueFactory.asValue(s); p = (URI) valueFactory.asValue(p); o = valueFactory.asValue(o); @@ -1229,16 +1321,56 @@ * that it is being used as a statement identifier). */ - if (deferredStmts == null) { + log.info(stmt); + + if (s instanceof BNode && + (RDF.SUBJECT.toString().equals(p.toString()) || RDF.PREDICATE.toString().equals(p.toString()) || RDF.OBJECT.toString().equals(p.toString())) || + (RDF.STATEMENT.toString().equals(o.toString()) && RDF.TYPE.toString().equals(p.toString()))) { + + if (!(RDF.STATEMENT.toString().equals(o.toString()) && RDF.TYPE.toString().equals(p.toString()))) { + + final BigdataBNodeImpl sid = (BigdataBNodeImpl) s; + + if (reifiedStmts == null) { + + reifiedStmts = new HashMap<BigdataBNodeImpl, ReifiedStmt>(); + + } + + final ReifiedStmt reifiedStmt; + if (reifiedStmts.containsKey(sid)) { + + reifiedStmt = reifiedStmts.get(sid); + + } else { + + reifiedStmt = new ReifiedStmt(); + + reifiedStmts.put(sid, reifiedStmt); + + } + + reifiedStmt.set(p, (BigdataValue) o); + + if (log.isDebugEnabled()) + log.debug("reified piece: "+stmt); + + } - deferredStmts = new HashSet<BigdataStatement>(stmts.length); - - } - - deferredStmts.add(stmt); - - if (log.isDebugEnabled()) - log.debug("deferred: "+stmt); + } else { + + if (deferredStmts == null) { + + deferredStmts = new HashSet<BigdataStatement>(stmts.length); + + } + + deferredStmts.add(stmt); + + if (log.isDebugEnabled()) + log.debug("deferred: "+stmt); + + } } else { @@ -1359,5 +1491,94 @@ } } + + private static class ReifiedStmt implements Statement { + /** + * + */ + private static final long serialVersionUID = -7706421769807306702L; + + private BigdataResource s; + private BigdataURI p; + private BigdataValue o; + private BigdataResource c; + + public ReifiedStmt() { + } + + public boolean isFullyBound(final int arity) { + return s != null && p != null && o != null && (arity > 3 ? c != null : true); + } + + @Override + public BigdataResource getContext() { + return c; + } + + @Override + public BigdataValue getObject() { + return o; + } + + @Override + public BigdataURI getPredicate() { + return p; + } + + @Override + public BigdataResource getSubject() { + return s; + } + + public void set(final URI p, final BigdataValue o) { + + if (p.toString().equals(RDF.SUBJECT.toString())) { + + setSubject((BigdataResource) o); + + } else if (p.toString().equals(RDF.PREDICATE.toString())) { + + setPredicate((BigdataURI) o); + + } else if (p.toString().equals(RDF.OBJECT.toString())) { + + setObject(o); + +// } else if (p.equals(RDF.CONTEXT)) { +// +// setPredicate((URI) c); +// + } else { + + throw new IllegalArgumentException(); + + } + + } + + public void setSubject(final BigdataResource s) { + this.s = s; + } + + public void setPredicate(final BigdataURI p) { + this.p = p; + } + + public void setObject(final BigdataValue o) { + this.o = o; + } + + public void setContext(final BigdataResource c) { + this.c = c; + } + + public String toString() { + + return "<" + s + ", " + p + ", " + o + ", " + c + ">"; + + } + + } + } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/QueryHints.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/QueryHints.java 2013-12-06 18:11:41 UTC (rev 7610) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/QueryHints.java 2013-12-08 20:54:55 UTC (rev 7611) @@ -459,7 +459,7 @@ */ String REIFICATION_DONE_RIGHT = "reificationDoneRight"; - boolean DEFAULT_REIFICATION_DONE_RIGHT = false; + boolean DEFAULT_REIFICATION_DONE_RIGHT = true; /** * Used to mark a predicate as "range safe" - that is, we can safely Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/TestReificationDoneRightEval.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/TestReificationDoneRightEval.java 2013-12-06 18:11:41 UTC (rev 7610) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/TestReificationDoneRightEval.java 2013-12-08 20:54:55 UTC (rev 7611) @@ -27,7 +27,11 @@ package com.bigdata.rdf.sparql.ast.eval.reif; +import java.util.Properties; + import com.bigdata.bop.ap.Predicate; +import com.bigdata.journal.BufferMode; +import com.bigdata.rdf.axioms.NoAxioms; import com.bigdata.rdf.internal.XSD; import com.bigdata.rdf.internal.impl.bnode.SidIV; import com.bigdata.rdf.model.BigdataBNode; @@ -37,9 +41,11 @@ import com.bigdata.rdf.model.BigdataValue; import com.bigdata.rdf.model.BigdataValueFactory; import com.bigdata.rdf.model.StatementEnum; +import com.bigdata.rdf.sail.BigdataSail; import com.bigdata.rdf.sparql.ast.eval.AbstractDataDrivenSPARQLTestCase; import com.bigdata.rdf.spo.ISPO; import com.bigdata.rdf.spo.SPO; +import com.bigdata.rdf.store.AbstractTripleStore; import com.bigdata.rdf.vocab.decls.DCTermsVocabularyDecl; /** @@ -94,7 +100,7 @@ public TestReificationDoneRightEval(String name) { super(name); } - + /** * Bootstrap test. The data are explicitly entered into the KB by hand. This * makes it possible to test evaluation without having to fix the RDF data @@ -122,14 +128,14 @@ store.addTerms(terms); // ground statement. - final BigdataStatement s0 = vf.createStatement(SAP, bought, sybase, + final BigdataStatement s0 = vf.createStatement(SAP, bought, sybase, context, StatementEnum.Explicit); // Setup blank node with SidIV for that Statement. final BigdataBNode s1 = vf.createBNode("s1"); s1.setStatementIdentifier(true); - final ISPO spo = new SPO(SAP.getIV(), bought.getIV(), sybase.getIV(), - null/* NO CONTEXT */, StatementEnum.Explicit); + final ISPO spo = new SPO(s0);//SAP.getIV(), bought.getIV(), sybase.getIV(), +// null/* NO CONTEXT */, StatementEnum.Explicit); s1.setIV(new SidIV<BigdataBNode>(spo)); // metadata statements. @@ -140,7 +146,7 @@ final BigdataStatement mds2 = vf.createStatement(s1, dcCreated, createdDate, context, StatementEnum.Explicit); - final ISPO[] stmts = new ISPO[] { s0, mds1, mds2 }; + final ISPO[] stmts = new ISPO[] { new SPO(s0), new SPO(mds1), new SPO(mds2) }; store.addStatements(stmts, stmts.length); @@ -205,7 +211,7 @@ final BigdataStatement mds2 = vf.createStatement(s1, dcCreated, createdDate, context, StatementEnum.Explicit); - final ISPO[] stmts = new ISPO[] { s0, mds1, mds2 }; + final ISPO[] stmts = new ISPO[] { new SPO(s0), new SPO(mds1), new SPO(mds2) }; store.addStatements(stmts, stmts.length); @@ -265,7 +271,7 @@ new TestHelper("reif/rdr-01a", // testURI, "reif/rdr-01a.rq",// queryFileURL "reif/rdr-01.ttl",// dataFileURL - "reif/rdr-01.srx"// resultFileURL + "reif/rdr-01a.srx"// resultFileURL ).runTest(); } @@ -381,4 +387,36 @@ } + @Override + public Properties getProperties() { + + // Note: clone to avoid modifying!!! + final Properties properties = (Properties) super.getProperties().clone(); + + // turn off quads. + properties.setProperty(AbstractTripleStore.Options.QUADS, "false"); + + properties.setProperty(AbstractTripleStore.Options.STATEMENT_IDENTIFIERS, "true"); + + // TM not available with quads. + properties.setProperty(BigdataSail.Options.TRUTH_MAINTENANCE,"false"); + +// // override the default vocabulary. +// properties.setProperty(AbstractTripleStore.Options.VOCABULARY_CLASS, +// NoVocabulary.class.getName()); + + // turn off axioms. + properties.setProperty(AbstractTripleStore.Options.AXIOMS_CLASS, + NoAxioms.class.getName()); + + // no persistence. + properties.setProperty(com.bigdata.journal.Options.BUFFER_MODE, + BufferMode.Transient.toString()); + +// properties.setProperty(AbstractTripleStore.Options.STORE_BLANK_NODES, "true"); + + return properties; + + } + } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-01.ttl =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-01.ttl 2013-12-06 18:11:41 UTC (rev 7610) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-01.ttl 2013-12-08 20:54:55 UTC (rev 7611) @@ -6,27 +6,28 @@ @prefix rr: <http://reasoner.example.com/rules#> . @prefix rv: <http://reasoner.example.com/vocabulary#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . +@prefix bd: <http://bigdata.com/RDF#> . -_:alice +bd:alice rdf:type foaf:Person ; foaf:name "Alice" ; foaf:mbox <mailto:alice@work> ; - foaf:knows _:bob. + foaf:knows bd:bob. # The terse syntax: -#<<_:alice foaf:mbox <mailto:alice@work>>> +#<<bd:alice foaf:mbox <mailto:alice@work>>> # dc:source <http://hr.example.com/employees#bob> ; # dc:created "2012-02-05T12:34:00Z"^^xsd:dateTime . # # The expanded syntax. -_:s1 rdf:subject _:alice . +_:s1 rdf:subject bd:alice . _:s1 rdf:predicate foaf:mbox . _:s1 rdf:object <mailto:alice@work> . _:s1 rdf:type rdf:Statement . _:s1 dc:source <http://hr.example.com/employees#bob> ; dc:created "2012-02-05T12:34:00Z"^^xsd:dateTime . -_:s1 rdf:subject _:alice . +_:s1 rdf:subject bd:alice . _:s1 rdf:predicate foaf:mbox . _:s1 rdf:object <mailto:alice@work> . _:s1 rdf:type rdf:Statement . @@ -34,31 +35,31 @@ dc:created "2012-02-05T12:34:00Z"^^xsd:dateTime . # Terse -#<<_:alice foaf:knows _:bob>> +#<<bd:alice foaf:knows bd:bob>> # dc:source re:engine_1; # rv:rule rr:rule524 ; # rv:confidence 0.9835 . # Expanded -_:s2 rdf:subject _:alice . +_:s2 rdf:subject bd:alice . _:s2 rdf:predicate foaf:knows . -_:s2 rdf:object _:bob . +_:s2 rdf:object bd:bob . _:s2 rdf:type rdf:Statement . _:s2 dc:source re:engine_1; rv:rule rr:rule524 ; rv:confidence 0.9835 . -_:bob +bd:bob rdf:type foaf:Person ; foaf:name "Bob" ; - foaf:knows _:alice ; + foaf:knows bd:alice ; foaf:mbox <mailto:bob@work> ; foaf:mbox <mailto:bob@home> . # Terse -# <<_:bob foaf:mbox <mailto:bob@home>>> +# <<bd:bob foaf:mbox <mailto:bob@home>>> # Expanded -_:s3 rdf:subject _:bob . +_:s3 rdf:subject bd:bob . _:s3 rdf:predicate foaf:mbox . _:s3 rdf:object <mailto:bob@home> . _:s3 rdf:type rdf:Statement . @@ -68,9 +69,9 @@ dc:source <http://whatever.nu/profile/bob1975> . # Terse -# <<_:bob foaf:mbox <mailto:bob@home>>> +# <<bd:bob foaf:mbox <mailto:bob@home>>> # Expanded -_:s4 rdf:subject _:bob . +_:s4 rdf:subject bd:bob . _:s4 rdf:predicate foaf:mbox . _:s4 rdf:object <mailto:bob@home> . _:s4 rdf:type rdf:Statement . Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-01a.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-01a.rq 2013-12-06 18:11:41 UTC (rev 7610) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-01a.rq 2013-12-08 20:54:55 UTC (rev 7611) @@ -8,7 +8,8 @@ select ?who ?src ?conf where { ?x foaf:name "Alice" . ?y foaf:name ?who . +# <<?x foaf:knows ?y>> rv:confidence ?conf . BIND( <<?x foaf:knows ?y>> as ?sid ) . ?sid dc:source ?src . - ?sid rv:confidence ?src . + ?sid rv:confidence ?conf . } \ No newline at end of file Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-02a.ttl =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-02a.ttl 2013-12-06 18:11:41 UTC (rev 7610) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-02a.ttl 2013-12-08 20:54:55 UTC (rev 7611) @@ -8,6 +8,7 @@ @prefix dc: <http://purl.org/dc/terms/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . +:SAP :bought :sybase . _:s1 rdf:subject :SAP . _:s1 rdf:predicate :bought . _:s1 rdf:object :sybase . Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-03.ttl =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-03.ttl 2013-12-06 18:11:41 UTC (rev 7610) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-03.ttl 2013-12-08 20:54:55 UTC (rev 7611) @@ -7,6 +7,9 @@ @prefix : <http://example.com/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +:a1 :b :c . +:a2 :b :c . + _:s1 rdf:subject :a1 . _:s1 rdf:predicate :b . _:s1 rdf:object :c . Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-03a.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-03a.rq 2013-12-06 18:11:41 UTC (rev 7610) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-03a.rq 2013-12-08 20:54:55 UTC (rev 7611) @@ -1,5 +1,5 @@ prefix : <http://example.com/> -SELECT ?a { +SELECT ?a ?e { BIND( <<?a :b :c>> AS ?sid ) . ?sid :d ?e . } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-03a.ttl =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-03a.ttl 2013-12-06 18:11:41 UTC (rev 7610) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-03a.ttl 2013-12-08 20:54:55 UTC (rev 7611) @@ -7,12 +7,15 @@ @prefix : <http://example.com/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . -_:s1 rdf:subject :a1 . +:a1 :b :c . +:a2 :b :c . + +_:s1 rdf:subject :a2 . _:s1 rdf:predicate :b . _:s1 rdf:object :c . _:s1 rdf:type rdf:Statement . -_:s2 rdf:subject :a2 . +_:s2 rdf:subject :a3 . _:s2 rdf:predicate :b . _:s2 rdf:object :c . _:s2 rdf:type rdf:Statement . Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/sparql/TestReificationDoneRightParser.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/sparql/TestReificationDoneRightParser.java 2013-12-06 18:11:41 UTC (rev 7610) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/sparql/TestReificationDoneRightParser.java 2013-12-08 20:54:55 UTC (rev 7611) @@ -29,6 +29,7 @@ import java.util.LinkedHashMap; import java.util.Map; +import java.util.Properties; import org.apache.log4j.Logger; import org.openrdf.query.MalformedQueryException; @@ -44,6 +45,7 @@ import com.bigdata.rdf.sparql.ast.QueryType; import com.bigdata.rdf.sparql.ast.StatementPatternNode; import com.bigdata.rdf.sparql.ast.VarNode; +import com.bigdata.rdf.store.AbstractTripleStore; /** * Test suite for the proposed standardization of "reification done right". @@ -582,5 +584,5 @@ assertSameAST(sparql, expected, actual); } - + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |