You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by en...@apache.org on 2014/01/15 01:10:37 UTC
git commit: CLEREZZA-865 Correct binding of bnodes via skolemization
Updated Branches:
refs/heads/master f30ebdf5d -> 9929bc04e
CLEREZZA-865 Correct binding of bnodes via skolemization
Project: http://git-wip-us.apache.org/repos/asf/clerezza/repo
Commit: http://git-wip-us.apache.org/repos/asf/clerezza/commit/9929bc04
Tree: http://git-wip-us.apache.org/repos/asf/clerezza/tree/9929bc04
Diff: http://git-wip-us.apache.org/repos/asf/clerezza/diff/9929bc04
Branch: refs/heads/master
Commit: 9929bc04e53ef156a9720e689c47735d0e15ba85
Parents: f30ebdf
Author: enridaga <en...@apache.org>
Authored: Wed Jan 15 00:10:24 2014 +0000
Committer: enridaga <en...@apache.org>
Committed: Wed Jan 15 00:10:24 2014 +0000
----------------------------------------------------------------------
.../rdf/virtuoso/storage/VirtuosoMGraph.java | 61 ++++++++++++++++----
.../java/rdf/virtuoso/storage/RdfIOTest.java | 1 -
.../virtuoso/storage/VirtuosoMGraphTest.java | 8 ++-
3 files changed, 57 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/clerezza/blob/9929bc04/clerezza-virtuoso/rdf.virtuoso.storage/src/main/java/rdf/virtuoso/storage/VirtuosoMGraph.java
----------------------------------------------------------------------
diff --git a/clerezza-virtuoso/rdf.virtuoso.storage/src/main/java/rdf/virtuoso/storage/VirtuosoMGraph.java b/clerezza-virtuoso/rdf.virtuoso.storage/src/main/java/rdf/virtuoso/storage/VirtuosoMGraph.java
index 04df4ba..879256c 100644
--- a/clerezza-virtuoso/rdf.virtuoso.storage/src/main/java/rdf/virtuoso/storage/VirtuosoMGraph.java
+++ b/clerezza-virtuoso/rdf.virtuoso.storage/src/main/java/rdf/virtuoso/storage/VirtuosoMGraph.java
@@ -145,25 +145,60 @@ public class VirtuosoMGraph extends AbstractMGraph implements MGraph,
String virtSubject = toVirtSubject(subject);
String virtPredicate = toVirtPredicate(predicate);
String virtObject = toVirtObject(object);
- sb.append("SPARQL SELECT ?SUBJECT ?PREDICATE ?OBJECT WHERE { GRAPH <")
- .append(this.getName()).append("> { ")
- .append(" ?SUBJECT ?PREDICATE ?OBJECT ");
+//
+// sb.append("SPARQL SELECT ?SUBJECT ?PREDICATE ?OBJECT WHERE { GRAPH <")
+// .append(this.getName()).append("> { ")
+// .append(" ?SUBJECT ?PREDICATE ?OBJECT ");
+// if (virtSubject != null) {
+// sb.append(". FILTER( ").append("?SUBJECT = ").append(virtSubject)
+// .append(") ");
+// }
+// if (virtPredicate != null) {
+// sb.append(". FILTER( ").append("?PREDICATE = ")
+// .append(virtPredicate).append(") ");
+// }
+// if (virtObject != null) {
+// sb.append(". FILTER( ").append("?OBJECT = ").append(virtObject)
+// .append(") ");
+// }
+
+ sb.append("SPARQL SELECT ");
if (virtSubject != null) {
- sb.append(". FILTER( ").append("?SUBJECT = ").append(virtSubject)
- .append(") ");
+ sb.append(" ").append(virtSubject).append(" as ?subject");
+ }else{
+ sb.append(" ?subject ");
}
if (virtPredicate != null) {
- sb.append(". FILTER( ").append("?PREDICATE = ")
- .append(virtPredicate).append(") ");
+ sb.append(" ").append(virtPredicate).append(" as ?predicate");
+ }else{
+ sb.append(" ?predicate ");
}
if (virtObject != null) {
- sb.append(". FILTER( ").append("?OBJECT = ").append(virtObject)
- .append(") ");
+ sb.append(" ").append(virtObject).append(" as ?object");
+ }else{
+ sb.append(" ?object ");
+ }
+ sb.append(" WHERE { GRAPH <").append(this.getName()).append("> { ");
+ if (virtSubject != null) {
+ sb.append(" ").append(virtSubject).append(" ");
+ }else{
+ sb.append(" ?subject ");
+ }
+ if (virtPredicate != null) {
+ sb.append(" ").append(virtPredicate).append(" ");
+ }else{
+ sb.append(" ?predicate ");
}
+ if (virtObject != null) {
+ sb.append(" ").append(virtObject).append(" ");
+ }else{
+ sb.append(" ?object ");
+ }
+
sb.append(" } } ");
String sql = sb.toString();
- logger.debug("Executing SQL: {}", sql);
+ logger.info("Executing SQL: {}", sql);
Statement st;
try {
readLock.lock();
@@ -228,9 +263,11 @@ public class VirtuosoMGraph extends AbstractMGraph implements MGraph,
};
} catch (VirtuosoException e) {
logger.error("ERROR while executing statement", e);
+ logger.error(" executing SQL: {}", sql);
throw new RuntimeException(e);
} catch (SQLException e) {
logger.error("ERROR while executing statement", e);
+ logger.error(" executing SQL: {}", sql);
throw new RuntimeException(e);
}
}
@@ -378,7 +415,9 @@ public class VirtuosoMGraph extends AbstractMGraph implements MGraph,
BNode bnode = bnodesMap.get(virtbnode);
if (bnode == null) {
bnode = new BNode();
- bnodesMap.put(virtbnode.replaceFirst("nodeID://", "_:"), bnode);
+ // skolemize so we get it in future queries
+ //bnodesMap.put(virtbnode.replaceFirst("nodeID://", "_:"), bnode);
+ bnodesMap.put(new StringBuilder().append('<').append(virtbnode).append('>').toString(), bnode);
}
// Subject is BNode
return bnode;
http://git-wip-us.apache.org/repos/asf/clerezza/blob/9929bc04/clerezza-virtuoso/rdf.virtuoso.storage/src/test/java/rdf/virtuoso/storage/RdfIOTest.java
----------------------------------------------------------------------
diff --git a/clerezza-virtuoso/rdf.virtuoso.storage/src/test/java/rdf/virtuoso/storage/RdfIOTest.java b/clerezza-virtuoso/rdf.virtuoso.storage/src/test/java/rdf/virtuoso/storage/RdfIOTest.java
index ef73b2b..71ada50 100644
--- a/clerezza-virtuoso/rdf.virtuoso.storage/src/test/java/rdf/virtuoso/storage/RdfIOTest.java
+++ b/clerezza-virtuoso/rdf.virtuoso.storage/src/test/java/rdf/virtuoso/storage/RdfIOTest.java
@@ -228,5 +228,4 @@ public class RdfIOTest {
// bnodes cannot be equals!
Assert.assertNotSame(read, new TripleImpl(subject, predicate, object));
}
-
}
http://git-wip-us.apache.org/repos/asf/clerezza/blob/9929bc04/clerezza-virtuoso/rdf.virtuoso.storage/src/test/java/rdf/virtuoso/storage/VirtuosoMGraphTest.java
----------------------------------------------------------------------
diff --git a/clerezza-virtuoso/rdf.virtuoso.storage/src/test/java/rdf/virtuoso/storage/VirtuosoMGraphTest.java b/clerezza-virtuoso/rdf.virtuoso.storage/src/test/java/rdf/virtuoso/storage/VirtuosoMGraphTest.java
index 1bc8396..d210bc1 100644
--- a/clerezza-virtuoso/rdf.virtuoso.storage/src/test/java/rdf/virtuoso/storage/VirtuosoMGraphTest.java
+++ b/clerezza-virtuoso/rdf.virtuoso.storage/src/test/java/rdf/virtuoso/storage/VirtuosoMGraphTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
+import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Iterator;
@@ -151,7 +152,7 @@ public class VirtuosoMGraphTest {
@Test
- public void testFilterSubjectBnode() {
+ public void testFilterSubjectBnode() throws VirtuosoException, SQLException, ClassNotFoundException {
log.info("testFilterSubjectBnode(); Test filter(s,null,null)");
if (TestUtils.SKIP) {
log.warn("SKIPPED");
@@ -190,9 +191,14 @@ public class VirtuosoMGraphTest {
}
assertEquals(t.getPredicate(), predicate);
}
+ Statement st = TestUtils.getConnection().createStatement();
+ boolean has = st.execute("SPARQL SELECT ?SUBJECT ?PREDICATE ?OBJECT WHERE { GRAPH <VirtuosoMGraphTest> { ?SUBJECT ?PREDICATE ?OBJECT . FILTER( ?SUBJECT = <nodeID://b10076>) . FILTER( ?PREDICATE = <http://property/name>) . FILTER( ?OBJECT = <nodeID://b10077>) } } ");
+ assertTrue(has);
+ //rs.close();
assertTrue(found);
assertNotNull(t);
+ log.info("{} {} {}", new Object[]{t.getSubject(), t.getPredicate(), t.getObject()});
//NonLiteral s = t.getSubject();
it = mgraph.filter(t.getSubject(), predicate, t.getObject());