You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2014/12/23 12:09:04 UTC
[1/3] jena git commit: JENA-828,
JENA-816 : Tidy up String literals handling.
Repository: jena
Updated Branches:
refs/heads/master 95b1c7c20 -> 452a59bfb
JENA-828, JENA-816 : Tidy up String literals handling.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/45fbca7b
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/45fbca7b
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/45fbca7b
Branch: refs/heads/master
Commit: 45fbca7b71fb06cd83069bd1ff8dc5259d88c637
Parents: 95b1c7c
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Dec 23 11:04:50 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Dec 23 11:04:50 2014 +0000
----------------------------------------------------------------------
.../com/hp/hpl/jena/sparql/util/NodeUtils.java | 42 ++++++++++----------
1 file changed, 21 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/45fbca7b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/NodeUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/NodeUtils.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/NodeUtils.java
index b3e01e8..2374654 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/NodeUtils.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/NodeUtils.java
@@ -48,31 +48,17 @@ public class NodeUtils
boolean equal(Node n1, Node n2) ;
}
+ /** IRI to Node */
public static Node asNode(IRI iri) {
return NodeFactory.createURI(iri.toString()) ;
}
+ /** IRI string to Node */
public static Node asNode(String iri) {
return NodeFactory.createURI(iri) ;
}
- public static boolean isStringLiteral(Node literal) {
- if ( !literal.isLiteral() )
- return false ;
- RDFDatatype dType = literal.getLiteralDatatype() ;
- String langTag = literal.getLiteralLanguage() ;
-
- // Language?
- if ( langTag == null || !langTag.equals("") )
- return false ;
-
- // Datatype
- if ( dType != null && !dType.equals(XSDDatatype.XSDstring) )
- return false ;
-
- return true ;
- }
-
+ /** Return true if the node is a literal and has a language tag */
public static boolean hasLang(Node node) {
if ( !node.isLiteral() )
return false ;
@@ -84,14 +70,27 @@ public class NodeUtils
return true ;
}
- // Get the string value of plain literal or XSD string.
-
+ /** Get lexical for of anythign that looks like a string literal.
+ * Returns the string value of plain literal (simple literal
+ * or lang string) or XSD string.
+ */
public static String stringLiteral(Node literal) {
- if ( !isStringLiteral(literal) )
+ if ( !literal.isLiteral() )
return null ;
- return literal.getLiteralLexicalForm() ;
+ RDFDatatype dType = literal.getLiteralDatatype() ;
+ String langTag = literal.getLiteralLanguage() ;
+
+ // Language?
+ if ( langTag != null && !langTag.equals("") )
+ return literal.getLiteralLexicalForm() ;
+
+ if ( dType == null || dType.equals(XSDDatatype.XSDstring) )
+ return literal.getLiteralLexicalForm() ;
+
+ return null ;
}
+ /** Convert IRI Nodes to strings. Skip other kinds of Node */
public static Iterator<String> nodesToURIs(Iterator<Node> iter) {
MapFilter<Node, String> mapper = new MapFilter<Node, String>() {
@Override
@@ -105,6 +104,7 @@ public class NodeUtils
return conv ;
}
+ /** Convert IRI String to Node */
public static Set<Node> convertToNodes(Collection<String> uris) {
Set<Node> nodes = new HashSet<>() ;
for ( String x : uris )
[3/3] jena git commit: JENA-835 : Code to make SDB work for both RDF
1.0 and RDF 1.1.
Posted by an...@apache.org.
JENA-835 : Code to make SDB work for both RDF 1.0 and RDF 1.1.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/452a59bf
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/452a59bf
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/452a59bf
Branch: refs/heads/master
Commit: 452a59bfb494c13a84ca90b808fb3695c530b2d5
Parents: e801bd1
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Dec 23 11:08:45 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Dec 23 11:08:45 2014 +0000
----------------------------------------------------------------------
.../src/main/java/com/hp/hpl/jena/sdb/layout2/NodeLayout2.java | 6 +++++-
.../main/java/com/hp/hpl/jena/sdb/layout2/TupleLoaderBase.java | 3 ++-
.../java/com/hp/hpl/jena/sdb/layout2/hash/StoreBaseHash.java | 4 ++--
.../com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderOneHash.java | 4 ++--
.../java/com/hp/hpl/jena/sdb/layout2/index/StoreBaseIndex.java | 4 ++--
5 files changed, 13 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/452a59bf/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/NodeLayout2.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/NodeLayout2.java b/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/NodeLayout2.java
index d77a381..2a2ba2f 100644
--- a/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/NodeLayout2.java
+++ b/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/NodeLayout2.java
@@ -27,6 +27,7 @@ import org.slf4j.LoggerFactory;
import com.hp.hpl.jena.graph.Node;
import com.hp.hpl.jena.sdb.SDBException;
+import com.hp.hpl.jena.sparql.util.NodeUtils ;
/** Operations associated with nodes and layout 2 (the Triples+Nodes layout)
*/
@@ -93,8 +94,11 @@ public class NodeLayout2
else throw new SDBException("Attempt to hash a variable") ;
String datatypeStr = "" ;
- if ( n.isLiteral() )
+ if ( n.isLiteral() ) {
datatypeStr = n.getLiteralDatatypeURI() ;
+ if ( NodeUtils.isSimpleString(n) || NodeUtils.isLangString(n) )
+ datatypeStr = null ;
+ }
String langStr = "" ;
if ( n.isLiteral() )
langStr = n.getLiteralLanguage() ;
http://git-wip-us.apache.org/repos/asf/jena/blob/452a59bf/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/TupleLoaderBase.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/TupleLoaderBase.java b/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/TupleLoaderBase.java
index 6adef76..bc02d9e 100644
--- a/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/TupleLoaderBase.java
+++ b/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/TupleLoaderBase.java
@@ -28,6 +28,7 @@ import com.hp.hpl.jena.sdb.SDBException;
import com.hp.hpl.jena.sdb.sql.SDBConnection;
import com.hp.hpl.jena.sdb.sql.TableUtils;
import com.hp.hpl.jena.sdb.store.TableDesc;
+import com.hp.hpl.jena.sparql.util.NodeUtils ;
public abstract class TupleLoaderBase extends com.hp.hpl.jena.sdb.store.TupleLoaderBase implements TupleLoaderBasics {
@@ -433,7 +434,7 @@ public abstract class TupleLoaderBase extends com.hp.hpl.jena.sdb.store.TupleLoa
{
lang = node.getLiteralLanguage();
datatype = node.getLiteralDatatypeURI();
- if (datatype == null)
+ if ( NodeUtils.isSimpleString(node) || NodeUtils.isLangString(node) )
datatype = "";
}
http://git-wip-us.apache.org/repos/asf/jena/blob/452a59bf/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/hash/StoreBaseHash.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/hash/StoreBaseHash.java b/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/hash/StoreBaseHash.java
index f3bc264..d7bdc0c 100644
--- a/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/hash/StoreBaseHash.java
+++ b/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/hash/StoreBaseHash.java
@@ -21,7 +21,6 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import com.hp.hpl.jena.graph.Node;
-
import com.hp.hpl.jena.sdb.StoreDesc;
import com.hp.hpl.jena.sdb.compiler.QueryCompilerFactory;
import com.hp.hpl.jena.sdb.layout2.NodeLayout2;
@@ -36,6 +35,7 @@ import com.hp.hpl.jena.sdb.store.SQLBridgeFactory;
import com.hp.hpl.jena.sdb.store.SQLGenerator;
import com.hp.hpl.jena.sdb.store.StoreFormatter;
import com.hp.hpl.jena.sdb.store.StoreLoader;
+import com.hp.hpl.jena.sparql.util.NodeUtils ;
public class StoreBaseHash extends StoreBase
{
@@ -66,7 +66,7 @@ public class StoreBaseHash extends StoreBase
{
lang = node.getLiteralLanguage();
datatype = node.getLiteralDatatypeURI();
- if (datatype == null)
+ if ( NodeUtils.isSimpleString(node) || NodeUtils.isLangString(node) )
datatype = "";
}
http://git-wip-us.apache.org/repos/asf/jena/blob/452a59bf/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderOneHash.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderOneHash.java b/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderOneHash.java
index 4ece749..1cc9805 100644
--- a/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderOneHash.java
+++ b/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderOneHash.java
@@ -24,7 +24,6 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import com.hp.hpl.jena.graph.Node;
-
import com.hp.hpl.jena.sdb.Store;
import com.hp.hpl.jena.sdb.core.sqlexpr.SqlConstant;
import com.hp.hpl.jena.sdb.layout2.NodeLayout2;
@@ -35,6 +34,7 @@ import com.hp.hpl.jena.sdb.sql.SDBConnection;
import com.hp.hpl.jena.sdb.sql.SQLUtils;
import com.hp.hpl.jena.sdb.store.TableDesc;
import com.hp.hpl.jena.sdb.store.TupleLoaderOne;
+import com.hp.hpl.jena.sparql.util.NodeUtils ;
public class TupleLoaderOneHash extends TupleLoaderOne
{
@@ -68,7 +68,7 @@ public class TupleLoaderOneHash extends TupleLoaderOne
{
lang = node.getLiteralLanguage() ;
datatype = node.getLiteralDatatypeURI() ;
- if ( datatype == null )
+ if ( NodeUtils.isSimpleString(node) || NodeUtils.isLangString(node) )
datatype = "" ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/452a59bf/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/index/StoreBaseIndex.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/index/StoreBaseIndex.java b/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/index/StoreBaseIndex.java
index 463cd73..ef310e1 100644
--- a/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/index/StoreBaseIndex.java
+++ b/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/layout2/index/StoreBaseIndex.java
@@ -22,7 +22,6 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import com.hp.hpl.jena.graph.Node;
-
import com.hp.hpl.jena.sdb.StoreDesc;
import com.hp.hpl.jena.sdb.compiler.QueryCompilerFactory;
import com.hp.hpl.jena.sdb.layout2.NodeLayout2;
@@ -37,6 +36,7 @@ import com.hp.hpl.jena.sdb.store.SQLBridgeFactory;
import com.hp.hpl.jena.sdb.store.SQLGenerator;
import com.hp.hpl.jena.sdb.store.StoreFormatter;
import com.hp.hpl.jena.sdb.store.StoreLoader;
+import com.hp.hpl.jena.sparql.util.NodeUtils ;
public class StoreBaseIndex extends StoreBase
{
@@ -68,7 +68,7 @@ public class StoreBaseIndex extends StoreBase
{
lang = node.getLiteralLanguage();
datatype = node.getLiteralDatatypeURI();
- if (datatype == null)
+ if ( NodeUtils.isSimpleString(node) || NodeUtils.isLangString(node) )
datatype = "";
}
[2/3] jena git commit: JENA-834 : Code to make TDB work for both RDF
1.0 and RDF 1.1.
Posted by an...@apache.org.
JENA-834 : Code to make TDB work for both RDF 1.0 and RDF 1.1.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e801bd1b
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e801bd1b
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e801bd1b
Branch: refs/heads/master
Commit: e801bd1bb9f7305b6c87aa1e872e79a59a39cce0
Parents: 45fbca7
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Dec 23 11:08:23 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Dec 23 11:08:23 2014 +0000
----------------------------------------------------------------------
.../main/java/com/hp/hpl/jena/tdb/lib/NodeLib.java | 13 +++++++++----
.../main/java/com/hp/hpl/jena/tdb/store/Hash.java | 2 +-
.../java/com/hp/hpl/jena/tdb/store/NodeId.java | 11 ++++++++---
.../java/com/hp/hpl/jena/tdb/store/NodeType.java | 1 +
.../hp/hpl/jena/tdb/store/nodetable/NodecSSE.java | 17 +++++++++--------
5 files changed, 28 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/e801bd1b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/lib/NodeLib.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/lib/NodeLib.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/lib/NodeLib.java
index 291d10c..d63396e 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/lib/NodeLib.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/lib/NodeLib.java
@@ -36,6 +36,7 @@ import org.apache.jena.atlas.logging.Log ;
import org.apache.jena.riot.out.NodeFmtLib ;
import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.sparql.util.NodeUtils ;
import com.hp.hpl.jena.tdb.TDBException ;
import com.hp.hpl.jena.tdb.base.block.Block ;
import com.hp.hpl.jena.tdb.base.objectfile.ObjectFile ;
@@ -126,10 +127,14 @@ public class NodeLib
hash(h, n.getBlankNodeLabel(), null, null, nt) ;
return ;
case LITERAL:
- hash(h,
- n.getLiteralLexicalForm(),
- n.getLiteralLanguage(),
- n.getLiteralDatatypeURI(), nt) ;
+ String dt = n.getLiteralDatatypeURI() ;
+ if ( NodeUtils.isSimpleString(n) || NodeUtils.isLangString(n) ) {
+ // RDF 1.1 : No datatype for:
+ // xsd:String as simple literals
+ // rdf:langString and @
+ dt = null ;
+ }
+ hash(h, n.getLiteralLexicalForm(), n.getLiteralLanguage(), dt, nt) ;
return ;
case OTHER:
throw new TDBException("Attempt to hash something strange: "+n) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/e801bd1b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/Hash.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/Hash.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/Hash.java
index 8696694..0ddbc93 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/Hash.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/Hash.java
@@ -26,7 +26,7 @@ import org.apache.jena.atlas.lib.Bytes ;
/** Hash values. */
public class Hash
{
- byte [] bytes ;
+ private byte [] bytes ;
public Hash(int len) { bytes = new byte[len] ; }
public int getLen() { return bytes.length ; }
public byte [] getBytes() { return bytes ; }
http://git-wip-us.apache.org/repos/asf/jena/blob/e801bd1b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeId.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeId.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeId.java
index cc82642..0cc9cf3 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeId.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeId.java
@@ -31,6 +31,7 @@ import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.graph.NodeFactory ;
import com.hp.hpl.jena.graph.impl.LiteralLabel ;
import com.hp.hpl.jena.sparql.graph.NodeConst ;
+import com.hp.hpl.jena.sparql.util.NodeUtils ;
import com.hp.hpl.jena.tdb.TDBException ;
import com.hp.hpl.jena.tdb.sys.SystemTDB ;
@@ -162,10 +163,14 @@ public class NodeId
return null ;
}
- if ( ! node.isLiteral() ) return null ;
- if ( node.getLiteralDatatype() == null ) return null ;
+ if ( ! enableInlineLiterals )
+ return null ;
+
+ if ( ! node.isLiteral() )
+ return null ;
- if ( ! enableInlineLiterals ) return null ;
+ if ( NodeUtils.isSimpleString(node) || NodeUtils.isLangString(node) )
+ return null ;
try { return inline$(node) ; }
catch (Throwable th) {
http://git-wip-us.apache.org/repos/asf/jena/blob/e801bd1b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeType.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeType.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeType.java
index 4720bcf..c34bc4b 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeType.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeType.java
@@ -24,6 +24,7 @@ import com.hp.hpl.jena.sparql.util.Named;
import com.hp.hpl.jena.tdb.TDBException;
+// Currently unused.
public enum NodeType implements Named
{
// Do not allocate id 0
http://git-wip-us.apache.org/repos/asf/jena/blob/e801bd1b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/nodetable/NodecSSE.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/nodetable/NodecSSE.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/nodetable/NodecSSE.java
index 4d9c1f7..6390eff 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/nodetable/NodecSSE.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/nodetable/NodecSSE.java
@@ -35,6 +35,7 @@ import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.graph.NodeFactory ;
import com.hp.hpl.jena.rdf.model.AnonId ;
import com.hp.hpl.jena.shared.PrefixMapping ;
+import com.hp.hpl.jena.sparql.util.NodeUtils ;
import com.hp.hpl.jena.tdb.TDBException ;
import com.hp.hpl.jena.tdb.lib.StringAbbrev ;
@@ -70,7 +71,7 @@ public class NodecSSE implements Nodec
node = NodeFactory.createURI(x) ;
}
- if ( node.isLiteral() && node.getLiteralLanguage() != null )
+ if ( node.isLiteral() && NodeUtils.isLangString(node) )
{
// Check syntactically valid.
String lang = node.getLiteralLanguage() ;
@@ -150,14 +151,14 @@ public class NodecSSE implements Nodec
return 2+maxLength(node.getURI()) ;
if ( node.isLiteral() )
{
- if ( node.getLiteralDatatypeURI() != null )
+ int len = 2+maxLength(node.getLiteralLexicalForm()) ;
+ if ( NodeUtils.isLangString(node) )
+ // Space for @ (language tag is ASCII)
+ len = len + 3 + node.getLiteralLanguage().length() ;
+ else if ( ! NodeUtils.isSimpleString(node) )
// The quotes and also space for ^^<>
- return 6+maxLength(node.getLiteralLexicalForm())+maxLength(node.getLiteralDatatypeURI()) ;
- else if ( node.getLiteralLanguage() != null )
- // The quotes and also space for @ (language tag is ASCII)
- return 3+maxLength(node.getLiteralLexicalForm())+node.getLiteralLanguage().length() ;
- else
- return 2+maxLength(node.getLiteralLexicalForm()) ;
+ len = len + 4 + maxLength(node.getLiteralDatatypeURI()) ;
+ return len ;
}
if ( node.isVariable() )
// "?"