You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ss...@apache.org on 2013/09/30 18:44:42 UTC
[05/50] [abbrv] git commit: MARMOTTA-225: fixed re-serialisation of
URIs as fieldname
MARMOTTA-225: fixed re-serialisation of URIs as fieldname
Project: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/commit/1a3a45cc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/tree/1a3a45cc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/diff/1a3a45cc
Branch: refs/heads/master
Commit: 1a3a45ccc5724113ae1f5d6ada219d1a34152213
Parents: 6591259
Author: Jakob Frank <ja...@apache.org>
Authored: Tue Sep 10 12:27:38 2013 +0200
Committer: Jakob Frank <ja...@apache.org>
Committed: Tue Sep 10 12:30:34 2013 +0200
----------------------------------------------------------------------
.../ldpath/model/fields/FieldMapping.java | 23 +++++---
.../ldpath/model/tests/LiteralTypeTest.java | 15 ++++--
.../at/newmedialab/ldpath/parser/rdfpath.jj | 55 +++++++++++---------
.../src/test/resources/parse/program.ldpath | 5 +-
4 files changed, 62 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/1a3a45cc/libraries/ldpath/ldpath-core/src/main/java/org/apache/marmotta/ldpath/model/fields/FieldMapping.java
----------------------------------------------------------------------
diff --git a/libraries/ldpath/ldpath-core/src/main/java/org/apache/marmotta/ldpath/model/fields/FieldMapping.java b/libraries/ldpath/ldpath-core/src/main/java/org/apache/marmotta/ldpath/model/fields/FieldMapping.java
index 538be06..ad7984b 100644
--- a/libraries/ldpath/ldpath-core/src/main/java/org/apache/marmotta/ldpath/model/fields/FieldMapping.java
+++ b/libraries/ldpath/ldpath-core/src/main/java/org/apache/marmotta/ldpath/model/fields/FieldMapping.java
@@ -21,6 +21,7 @@ import com.google.common.base.Function;
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
+import java.net.URI;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -38,6 +39,8 @@ import org.apache.marmotta.ldpath.api.transformers.NodeTransformer;
*/
public class FieldMapping<T,Node> implements LDPathConstruct<Node> {
+ private boolean isSimpleName = true;
+
/**
* The name of the field in the search index
*/
@@ -46,7 +49,7 @@ public class FieldMapping<T,Node> implements LDPathConstruct<Node> {
/**
* The type of the field in the search index
*/
- private String fieldType;
+ private URI fieldType;
/**
* The selector to use for selecting nodes
@@ -63,10 +66,15 @@ public class FieldMapping<T,Node> implements LDPathConstruct<Node> {
*/
private Map<String, String> fieldConfig;
- public FieldMapping() {
+ private FieldMapping() {
}
-
- public FieldMapping(String fieldName, String fieldType, NodeSelector<Node> selector, NodeTransformer<T,Node> transformer, Map<String, String> fieldConfig) {
+
+ public FieldMapping(URI fieldName, URI fieldType, NodeSelector<Node> selector, NodeTransformer<T,Node> transformer, Map<String, String> fieldConfig) {
+ this(fieldName.toString(), fieldType, selector, transformer, fieldConfig);
+ this.isSimpleName = false;
+ }
+
+ public FieldMapping(String fieldName, URI fieldType, NodeSelector<Node> selector, NodeTransformer<T,Node> transformer, Map<String, String> fieldConfig) {
this();
this.fieldName = fieldName;
this.fieldType = fieldType;
@@ -80,7 +88,7 @@ public class FieldMapping<T,Node> implements LDPathConstruct<Node> {
return fieldName;
}
- public String getFieldType() {
+ public URI getFieldType() {
return fieldType;
}
@@ -162,7 +170,10 @@ public class FieldMapping<T,Node> implements LDPathConstruct<Node> {
}
fc.append(")");
}
- return String.format("%s = %s :: <%s>%s ;", fieldName, selector.getPathExpression(backend), fieldType, fc.toString());
+ if (isSimpleName)
+ return String.format("%s = %s :: <%s>%s ;", fieldName, selector.getPathExpression(backend), fieldType, fc.toString());
+ else
+ return String.format("<%s> = %s :: <%s>%s ;", fieldName, selector.getPathExpression(backend), fieldType, fc.toString());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/1a3a45cc/libraries/ldpath/ldpath-core/src/main/java/org/apache/marmotta/ldpath/model/tests/LiteralTypeTest.java
----------------------------------------------------------------------
diff --git a/libraries/ldpath/ldpath-core/src/main/java/org/apache/marmotta/ldpath/model/tests/LiteralTypeTest.java b/libraries/ldpath/ldpath-core/src/main/java/org/apache/marmotta/ldpath/model/tests/LiteralTypeTest.java
index 0ed55d5..bbd63d8 100644
--- a/libraries/ldpath/ldpath-core/src/main/java/org/apache/marmotta/ldpath/model/tests/LiteralTypeTest.java
+++ b/libraries/ldpath/ldpath-core/src/main/java/org/apache/marmotta/ldpath/model/tests/LiteralTypeTest.java
@@ -17,6 +17,8 @@
*/
package org.apache.marmotta.ldpath.model.tests;
+import java.net.URI;
+
import org.apache.marmotta.ldpath.api.backend.NodeBackend;
import org.apache.marmotta.ldpath.api.backend.RDFBackend;
import org.apache.marmotta.ldpath.api.tests.NodeTest;
@@ -35,10 +37,14 @@ import org.apache.marmotta.ldpath.api.tests.NodeTest;
*/
public class LiteralTypeTest<Node> extends NodeTest<Node> {
- private String typeUri;
+ private URI typeUri;
public LiteralTypeTest(String typeUri) {
- this.typeUri = typeUri;
+ this.typeUri = URI.create(typeUri);
+ }
+
+ public LiteralTypeTest(URI uri) {
+ this.typeUri = uri;
}
/**
@@ -55,9 +61,10 @@ public class LiteralTypeTest<Node> extends NodeTest<Node> {
if(rdfBackend.isLiteral(node)) {
if(typeUri != null) {
- return typeUri.equals(rdfBackend.getLiteralType(node).toString());
+ return typeUri.equals(rdfBackend.getLiteralType(node));
} else {
- return null == rdfBackend.getLiteralType(node).toString();
+ // FIXME: MARMOTTA-39
+ return null == rdfBackend.getLiteralType(node);
}
} else {
return false;
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/1a3a45cc/libraries/ldpath/ldpath-core/src/main/javacc/at/newmedialab/ldpath/parser/rdfpath.jj
----------------------------------------------------------------------
diff --git a/libraries/ldpath/ldpath-core/src/main/javacc/at/newmedialab/ldpath/parser/rdfpath.jj b/libraries/ldpath/ldpath-core/src/main/javacc/at/newmedialab/ldpath/parser/rdfpath.jj
index bd0e133..bd71bb5 100644
--- a/libraries/ldpath/ldpath-core/src/main/javacc/at/newmedialab/ldpath/parser/rdfpath.jj
+++ b/libraries/ldpath/ldpath-core/src/main/javacc/at/newmedialab/ldpath/parser/rdfpath.jj
@@ -212,11 +212,16 @@ public class LdPathParser<Node> {
}
}
+ public Node resolveURI(URI uri) {
return backend.createURI(uri.toString());
+ }
- public Node resolveResource(String uri) {
+ public Node resolveResource(String uri) throws ParseException {
return backend.createURI(uri);
}
+ public Node resolveResource(String prefix, String local) throws ParseException {
+ return resolveResource(resolveNamespace(prefix)+local);
}
+
public String resolveNamespace(String prefix) throws ParseException {
String uri = namespaces.get(prefix);
@@ -243,6 +248,14 @@ public class LdPathParser<Node> {
}
}
+ public NodeTransformer<?,Node> getTransformer(URI type) throws ParseException {
+ return getTransformer(type.toString());
+ }
+
+ public NodeTransformer<?,Node> getTransformer(Node node) throws ParseException {
+ return getTransformer(backend.stringValue(node));
+ }
+
public NodeTransformer<?,Node> getTransformer(String uri) throws ParseException {
if(xsdNodeTransformerMap.get(uri) != null) {
return xsdNodeTransformerMap.get(uri);
@@ -484,7 +497,7 @@ Program Program() :
(
<K_BOOST> boostSelector = Selector() <SCOLON> {
NodeTransformer transformer = getTransformer(Program.DOCUMENT_BOOST_TYPE);
- FieldMapping booster = new FieldMapping("@boost", Program.DOCUMENT_BOOST_TYPE, boostSelector, transformer, null);
+ FieldMapping booster = new FieldMapping("@boost", java.net.URI.create(Program.DOCUMENT_BOOST_TYPE), boostSelector, transformer, null);
program.setBooster(booster);
}
)?
@@ -504,13 +517,13 @@ Program Program() :
LinkedList<Node> UriList() :
{
LinkedList<Node> rest = null;
- String uri;
+ URI uri;
}
{
uri = Uri() ( <COMMA> rest = UriList() )?
{
if (rest == null) rest = new LinkedList<Node>();
- rest.addFirst(resolveResource(uri));
+ rest.addFirst(resolveURI(uri));
return rest;
}
}
@@ -519,8 +532,8 @@ FieldMapping Rule() :
{
FieldMapping<?,Node> rule;
Token name;
- String uri;
- String type = null;
+ URI uri;
+ URI type = null;
NodeSelector<Node> selector;
NodeTransformer<?,Node> transformer;
Map<String, String> conf = null;
@@ -600,16 +613,16 @@ String ConfVal() : {
| id = <IDENTIFIER> { return id.image; }
}
-String Uri() : {
+URI Uri() : {
Token uri, prefix, localName;
}
{
uri = <URI> {
- return uri.image.substring(1,uri.image.length()-1);
+ return java.net.URI.create(uri.image.substring(1,uri.image.length()-1));
}
| prefix = <IDENTIFIER> ":" localName = <IDENTIFIER> {
- return resolveNamespace(prefix.image)+localName.image;
+ return java.net.URI.create(resolveNamespace(prefix.image)+localName.image);
}
}
@@ -821,13 +834,11 @@ TestingSelector TestingSelector() :
ReversePropertySelector ReversePropertySelector() :
{
ReversePropertySelector result = null;
- Node property;
- String uri;
+ URI uri;
}
{
<INVERSE> uri = Uri() {
- property = resolveResource(uri);
- result = new ReversePropertySelector(property);
+ result = new ReversePropertySelector(resolveURI(uri));
return result;
}
}
@@ -835,13 +846,11 @@ ReversePropertySelector ReversePropertySelector() :
PropertySelector PropertySelector() :
{
PropertySelector result = null;
- Node property;
- String uri;
+ URI uri;
}
{
uri = Uri() {
- property = resolveResource(uri);
- result = new PropertySelector(property);
+ result = new PropertySelector(resolveURI(uri));
return result;
}
}
@@ -997,7 +1006,7 @@ LiteralLanguageTest LiteralLanguageTest():
LiteralTypeTest LiteralTypeTest():
{
- String type;
+ URI type;
}
{
<TYPE> type = Uri() {
@@ -1060,19 +1069,15 @@ PathEqualityTest PathEqualityTest():
Node Node():
{
- String uri, type = null;
+ URI uri, type = null;
Token literal, language;
}
{
uri = Uri() {
- return resolveResource(uri);
+ return resolveURI(uri);
}
| literal = <STRLIT> (<TYPE> type = Uri() )? {
- try {
- return backend.createLiteral(literal.image.substring(1, literal.image.length()-1),null,type == null ? null : new URI(type));
- } catch(java.net.URISyntaxException ex) {
- throw new ParseException("could not parse type URI "+type+": "+ex.getMessage());
- }
+ return backend.createLiteral(literal.image.substring(1, literal.image.length()-1),null,type);
}
| literal = <STRLIT> <LANG> language = <IDENTIFIER> {
return backend.createLiteral(literal.image.substring(1, literal.image.length()-1),new Locale(language.image),null);
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/1a3a45cc/libraries/ldpath/ldpath-core/src/test/resources/parse/program.ldpath
----------------------------------------------------------------------
diff --git a/libraries/ldpath/ldpath-core/src/test/resources/parse/program.ldpath b/libraries/ldpath/ldpath-core/src/test/resources/parse/program.ldpath
index 7d2670a..fc4fdc5 100644
--- a/libraries/ldpath/ldpath-core/src/test/resources/parse/program.ldpath
+++ b/libraries/ldpath/ldpath-core/src/test/resources/parse/program.ldpath
@@ -31,4 +31,7 @@ group = (test:p1 / test:p2) :: test:type ;
inverse = ^test:incoming :: test:type ;
-config = test:foo :: test:type(c1="true", c2="false", c3="1.234") ;
\ No newline at end of file
+config = test:foo :: test:type(c1="true", c2="false", c3="1.234") ;
+
+foo:bar = test:foo :: test:type ;
+<http://test/> = test:test :: test:type ;