|
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.
|