Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

# Idea
*.iml
.idea
Original file line number Diff line number Diff line change
@@ -1,23 +1,10 @@
package be.ugent.mmlab.rml.logicalsourcehandler.termmap;

import be.ugent.mmlab.rml.model.RDFTerm.TermMap;
import static be.ugent.mmlab.rml.model.RDFTerm.TermMap.TermMapType.CONSTANT_VALUED;
import static be.ugent.mmlab.rml.model.RDFTerm.TermMap.TermMapType.REFERENCE_VALUED;
import static be.ugent.mmlab.rml.model.RDFTerm.TermMap.TermMapType.TEMPLATE_VALUED;
import be.ugent.mmlab.rml.model.RDFTerm.TermType;
import static be.ugent.mmlab.rml.model.RDFTerm.TermType.BLANK_NODE;
import static be.ugent.mmlab.rml.model.RDFTerm.TermType.IRI;
import static be.ugent.mmlab.rml.model.RDFTerm.TermType.LITERAL;
import be.ugent.mmlab.rml.model.std.StdTemplateMap;
import be.ugent.mmlab.rml.model.termMap.ReferenceMap;
import be.ugent.mmlab.rml.vocabularies.QLVocabulary.QLTerm;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.openrdf.model.URI;
import org.openrdf.model.Value;
import org.openrdf.model.impl.BNodeImpl;
Expand All @@ -26,6 +13,14 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
* RML Processor
*
Expand All @@ -49,7 +44,7 @@ public List<String> processTermMap(TermMap map, Object node) {
//Get the expression and extract the value
ReferenceMap identifier = map.getReferenceMap();
values = extractValueFromNode(
node, identifier.getReference().toString().trim());
node, identifier.getReference().trim());

for (String value : values) {
valueList.add(value.trim().replace("\n", " "));
Expand Down Expand Up @@ -107,7 +102,8 @@ public List<String> processTermMap(TermMap map, Object node) {
.replaceAll("\\%27", "'")
.replaceAll("\\%28", "(")
.replaceAll("\\%29", ")")
.replaceAll("\\%7E", "~"));
.replaceAll("\\%7E", "~"))
.replaceAll("\\%3A", ":");
} else {
temp = temp.replaceAll("\\{" + expression + "\\}",
Matcher.quoteReplacement(replacement));
Expand All @@ -116,16 +112,15 @@ public List<String> processTermMap(TermMap map, Object node) {
} catch (UnsupportedEncodingException ex) {
log.error("UnsupportedEncodingException " + ex);
}
values.set(i, temp.toString());
values.set(i, temp);

}
}

//Check if there are any placeholders left in the templates and remove uris that are not
List<String> validValues = new ArrayList<>();
for (String uri : values){
StdTemplateMap templateMap = new StdTemplateMap(uri);
if (templateMap.extractVariablesFromStringTemplate(uri).isEmpty()){
if (StdTemplateMap.extractVariablesFromStringTemplate(uri).isEmpty()){
validValues.add(uri);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@

import be.ugent.mmlab.rml.logicalsourcehandler.termmap.AbstractTermMapProcessor;
import com.jayway.jsonpath.JsonPath;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import net.minidev.json.JSONArray;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
* RML Processor
*
Expand All @@ -34,7 +35,13 @@ public List<String> extractValueFromNode(Object node, String expression) {
JSONArray arr = (JSONArray) val;
return Arrays.asList(arr.toArray(new String[0]));
}
list.add((String) val.toString());

// handle null values
if (val == null) {
val = "";
}

list.add(val.toString());
return list;
} catch (com.jayway.jsonpath.InvalidPathException ex) {
log.debug("InvalidPathException " + ex + "for " + expression);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@

import be.ugent.mmlab.rml.logicalsourcehandler.termmap.AbstractTermMapProcessor;
import be.ugent.mmlab.rml.xml.XOMBuilder;
import java.io.StringBufferInputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.xpath.XPathException;
import jlibs.xml.DefaultNamespaceContext;
import jlibs.xml.sax.dog.NodeItem;
import jlibs.xml.sax.dog.XMLDog;
Expand All @@ -19,6 +15,12 @@
import org.slf4j.LoggerFactory;
import org.xml.sax.InputSource;

import javax.xml.xpath.XPathException;
import java.io.ByteArrayInputStream;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;

/**
* RML Processor
*
Expand Down Expand Up @@ -56,9 +58,9 @@ private List<String> extractValueFromNode(Node node, String expression) {
} catch (SAXPathException ex) {
log.error("SAXPathException " + ex);
}
StringBufferInputStream input =
new StringBufferInputStream(node.toXML().toString());
ByteArrayInputStream input =
new ByteArrayInputStream(node.toXML().getBytes(Charset.forName("UTF-8")));

InputSource source = new InputSource(input);
Event event = dog.createEvent();
event.setXMLBuilder(new XOMBuilder());
Expand All @@ -69,7 +71,7 @@ public void onNodeHit(
Expression expression, NodeItem nodeItem) {
Node node = (Node) nodeItem.xml;
//if(nodeItem instanceOf Attribute)
list.add(node.getValue().toString());
list.add(node.getValue());
}

@Override
Expand Down