|
@@ -1,5 +1,7 @@
|
|
|
package r2rml.model;
|
|
|
|
|
|
+import java.io.ByteArrayInputStream;
|
|
|
+import java.io.InputStream;
|
|
|
import java.net.MalformedURLException;
|
|
|
import java.net.URISyntaxException;
|
|
|
import java.net.URL;
|
|
@@ -37,13 +39,31 @@ public class R2RMLMappingFactory {
|
|
|
// MAKE CONSTANTS EXPLICITELY LITERALS TO DEAL WITH TYPED CONSTANTS
|
|
|
// EVEN THOUGH IT IS OUT OF THE SPEC
|
|
|
private static String CONSTRUCTLITERAL = "PREFIX rr: <http://www.w3.org/ns/r2rml#> CONSTRUCT { ?x rr:termType rr:Literal . } WHERE { ?x rr:constant ?y . FILTER (isLiteral(?y)) }" ;
|
|
|
-
|
|
|
- public static R2RMLMapping createR2RMLMapping(String mappingFile, String baseIRI) {
|
|
|
+
|
|
|
+ // If mapping is contained in a String (in TURTLE)
|
|
|
+ public static R2RMLMapping createR2RMLMappingFromString(String mapping, String baseIRI) {
|
|
|
+ Model data = ModelFactory.createDefaultModel();
|
|
|
+ data.read(new ByteArrayInputStream(mapping.getBytes()), null, "TURTLE");
|
|
|
+ return createR2RMLMapping(data, baseIRI);
|
|
|
+ }
|
|
|
+
|
|
|
+ // If mapping is contained in a Input Stream (in TURTLE)
|
|
|
+ public static R2RMLMapping createR2RMLMappingFromInputStream(InputStream mapping, String baseIRI) {
|
|
|
+ Model data = ModelFactory.createDefaultModel();
|
|
|
+ data.read(mapping, null, "TURTLE");
|
|
|
+ return createR2RMLMapping(data, baseIRI);
|
|
|
+ }
|
|
|
+
|
|
|
+ // If mapping is contained in file
|
|
|
+ public static R2RMLMapping createR2RMLMappingFromFile(String mappingFile, String baseIRI) {
|
|
|
+ Model data = FileManager.get().loadModel(mappingFile);
|
|
|
+ return createR2RMLMapping(data, baseIRI);
|
|
|
+ }
|
|
|
+
|
|
|
+ private static R2RMLMapping createR2RMLMapping(Model data, String baseIRI) {
|
|
|
R2RMLMapping mapping = new R2RMLMapping();
|
|
|
|
|
|
// We reason over the mapping to facilitate retrieval of the mappings
|
|
|
- Model data = FileManager.get().loadModel(mappingFile);
|
|
|
-
|
|
|
// We construct triples to replace the shortcuts.
|
|
|
data.add(QueryExecutionFactory.create(CONSTRUCTSMAPS, data).execConstruct());
|
|
|
data.add(QueryExecutionFactory.create(CONSTRUCTOMAPS, data).execConstruct());
|