diff --git a/sparql-anything-cli/pom.xml b/sparql-anything-cli/pom.xml
index 448e5360..e905c6e3 100644
--- a/sparql-anything-cli/pom.xml
+++ b/sparql-anything-cli/pom.xml
@@ -43,6 +43,90 @@
${project.version}
+
+ io.github.sparql-anything
+ sparql-anything-binary
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-spreadsheet
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-rdf
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-csv
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-xml
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-docs
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-html
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-text
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-json
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-yaml
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-markdown
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-bibliography
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-archive
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-slides
+ ${project.version}
+
+
io.github.basilapi
sparql
diff --git a/sparql-anything-engine/pom.xml b/sparql-anything-engine/pom.xml
index 8e336b16..18224b08 100644
--- a/sparql-anything-engine/pom.xml
+++ b/sparql-anything-engine/pom.xml
@@ -47,70 +47,18 @@
${project.version}
-
- io.github.sparql-anything
- sparql-anything-csv
- ${project.version}
-
-
-
- io.github.sparql-anything
- sparql-anything-xml
- ${project.version}
-
-
-
- io.github.sparql-anything
- sparql-anything-docs
- ${project.version}
-
-
-
- io.github.sparql-anything
- sparql-anything-html
- ${project.version}
-
-
-
- io.github.sparql-anything
- sparql-anything-text
- ${project.version}
-
-
-
- io.github.sparql-anything
- sparql-anything-json
- ${project.version}
-
-
-
- io.github.sparql-anything
- sparql-anything-yaml
- ${project.version}
-
-
-
- io.github.sparql-anything
- sparql-anything-markdown
- ${project.version}
-
-
-
- io.github.sparql-anything
- sparql-anything-bibliography
- ${project.version}
-
-
io.github.sparql-anything
sparql-anything-archive
${project.version}
+ compile
io.github.sparql-anything
- sparql-anything-slides
+ sparql-anything-testutils
${project.version}
+ test
@@ -125,28 +73,8 @@
- io.github.sparql-anything
- sparql-anything-binary
- ${project.version}
-
-
-
- io.github.sparql-anything
- sparql-anything-spreadsheet
- ${project.version}
-
-
-
- io.github.sparql-anything
- sparql-anything-rdf
- ${project.version}
-
-
-
- io.github.sparql-anything
- sparql-anything-testutils
- ${project.version}
- test
+ org.jsoup
+ jsoup
@@ -161,6 +89,8 @@
java-string-similarity
+
+
diff --git a/sparql-anything-engine/src/main/java/io/github/sparqlanything/engine/FacadeX.java b/sparql-anything-engine/src/main/java/io/github/sparqlanything/engine/FacadeX.java
index 640c447a..8f6bc5a2 100644
--- a/sparql-anything-engine/src/main/java/io/github/sparqlanything/engine/FacadeX.java
+++ b/sparql-anything-engine/src/main/java/io/github/sparqlanything/engine/FacadeX.java
@@ -21,7 +21,6 @@
import io.github.sparqlanything.engine.functions.*;
import io.github.sparqlanything.engine.functions.reflection.ReflectionFunctionFactory;
import io.github.sparqlanything.model.Triplifier;
-import io.github.sparqlanything.rdf.RDFTriplifier;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.text.WordUtils;
import org.apache.commons.text.similarity.*;
@@ -69,7 +68,7 @@ public final class FacadeX {
Registry.registerTriplifier("io.github.sparqlanything.json.JSONTriplifier", new String[]{"json"}, new String[]{"application/json", "application/problem+json"});
Registry.registerTriplifier("io.github.sparqlanything.yaml.YAMLTriplifier", new String[]{"yaml"}, new String[]{"application/yaml", "text/yaml", "x-text/yaml"});
Registry.registerTriplifier("io.github.sparqlanything.spreadsheet.SpreadsheetTriplifier", new String[]{"xls", "xlsx"}, new String[]{"application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});
- Registry.registerTriplifier(RDFTriplifier.class.getCanonicalName(), new String[]{"rdf", "ttl", "nt", "jsonld", "owl", "trig", "nq", "trix", "trdf"}, new String[]{"application/rdf+thrift", "application/trix+xml", "application/n-quads", "text/trig", "application/owl+xml", "text/turtle", "application/rdf+xml", "application/n-triples", "application/ld+json"});
+ Registry.registerTriplifier("io.github.sparqlanything.rdf.RDFTriplifier", new String[]{"rdf", "ttl", "nt", "jsonld", "owl", "trig", "nq", "trix", "trdf"}, new String[]{"application/rdf+thrift", "application/trix+xml", "application/n-quads", "text/trig", "application/owl+xml", "text/turtle", "application/rdf+xml", "application/n-triples", "application/ld+json"});
Registry.registerTriplifier("io.github.sparqlanything.binary.BinaryTriplifier", new String[]{"png", "jpeg", "jpg", "bmp", "tiff", "tif", "ico"}, new String[]{"image/png", "image/jpeg", "image/bmp", "image/tiff", "image/vnd.microsoft.icon"});
Registry.registerTriplifier("io.github.sparqlanything.slides.PptxTriplifier", new String[]{"pptx"}, new String[]{"application/vnd.openxmlformats-officedocument.presentationml.presentation"});
diff --git a/sparql-anything-engine/src/main/java/io/github/sparqlanything/engine/functions/Cardinal.java b/sparql-anything-engine/src/main/java/io/github/sparqlanything/engine/functions/Cardinal.java
index 6dca9301..7137a329 100644
--- a/sparql-anything-engine/src/main/java/io/github/sparqlanything/engine/functions/Cardinal.java
+++ b/sparql-anything-engine/src/main/java/io/github/sparqlanything/engine/functions/Cardinal.java
@@ -16,15 +16,10 @@
package io.github.sparqlanything.engine.functions;
-import org.apache.jena.datatypes.RDFDatatype;
-import org.apache.jena.datatypes.xsd.XSDDatatype;
-import org.apache.jena.datatypes.xsd.impl.XMLLiteralType;
-import org.apache.jena.graph.NodeFactory;
import org.apache.jena.sparql.expr.ExprEvalException;
import org.apache.jena.sparql.expr.NodeValue;
import org.apache.jena.sparql.function.FunctionBase1;
import org.apache.jena.sparql.util.FmtUtils;
-import io.github.sparqlanything.html.org.semarglproject.vocab.XSD;
public class Cardinal extends FunctionBase1 implements FXFunction {
diff --git a/sparql-anything-engine/src/test/java/io/github/sparqlanything/engine/test/TestSilent.java b/sparql-anything-engine/src/test/java/io/github/sparqlanything/engine/test/TestSilent.java
index 5ecad3a6..a741e963 100644
--- a/sparql-anything-engine/src/test/java/io/github/sparqlanything/engine/test/TestSilent.java
+++ b/sparql-anything-engine/src/test/java/io/github/sparqlanything/engine/test/TestSilent.java
@@ -17,6 +17,7 @@
package io.github.sparqlanything.engine.test;
import io.github.sparqlanything.engine.FacadeX;
+import io.github.sparqlanything.engine.TriplifierRegister;
import org.apache.jena.query.*;
import org.apache.jena.sparql.engine.main.QC;
import org.junit.Assert;
@@ -24,89 +25,43 @@
public class TestSilent {
+
public ResultSet execute(String queryString) {
QC.setFactory(ARQ.getContext(), FacadeX.ExecutorFactory);
Dataset kb = DatasetFactory.createGeneral();
Query q = QueryFactory.create(queryString);
- ResultSet result = QueryExecutionFactory.create(q, kb).execSelect();
- return result;
- }
-
- @Test
- public void testSilent() {
- boolean failed = false;
- String q = "PREFIX fx: \n" +
- "select * where {" +
- "service silent {" +
- "fx:properties fx:location \"http://www.example.org2562456294865\";" +
- " fx:media-type \"application/json\"." +
- " ?s ?p ?o" +
- "}" +
- "}";
- try {
- execute(q);
- } catch (Exception e) {
- failed = true;
- }
- Assert.assertFalse(failed);
+ return QueryExecutionFactory.create(q, kb).execSelect();
}
- @Test
- public void testNoSilent() {
- boolean failed = true;
- String q = "PREFIX fx: \n" +
- "select * where {" +
- "service {" +
- "fx:properties fx:location \"http://www.example.org2562456294865\";" +
- " fx:media-type \"application/json\"." +
- " ?s ?p ?o" +
- "}" +
- "}";
- try {
- execute(q);
- } catch (Exception e) {
- failed = false;
- }
- Assert.assertFalse(failed);
- }
@Test
- public void test404NoSilent() {
+ public void test404Silent() {
boolean raisesException = false;
- String q = "PREFIX fx: \n" +
- "select * where {" +
- "service {" +
- "fx:properties fx:location \"https://sparql.xyz/qewrqetqert\";" +
- " fx:media-type \"application/json\"." +
- " ?s ?p ?o" +
- "}" +
- "}";
+
+ String q = "SELECT DISTINCT ?g ?s ?p ?o WHERE { SERVICE SILENT {GRAPH ?g {?s ?p ?o}}}";
+
try {
+ TriplifierRegister.getInstance().registerTriplifier("io.github.sparqlanything.engine.test.TestTriplifier2", new String[]{"test2"}, new String[]{"test-mime2"});
execute(q);
} catch (Exception e) {
- //e.printStackTrace();
raisesException = true;
}
- Assert.assertTrue(raisesException);
+ Assert.assertFalse(raisesException);
}
@Test
- public void test404Silent() {
+ public void test404NOSilent() {
boolean raisesException = false;
- String q = "PREFIX fx: \n" +
- "select * where {" +
- "service silent {" +
- "fx:properties fx:location \"https://sparql.xyz/qewrqetqert\";" +
- " fx:media-type \"application/json\"." +
- " ?s ?p ?o" +
- "}" +
- "}";
+
+ String q = "SELECT DISTINCT ?g ?s ?p ?o WHERE { SERVICE {GRAPH ?g {?s ?p ?o}}}";
+
try {
+ TriplifierRegister.getInstance().registerTriplifier("io.github.sparqlanything.engine.test.TestTriplifier2", new String[]{"test2"}, new String[]{"test-mime2"});
execute(q);
} catch (Exception e) {
raisesException = true;
}
- Assert.assertFalse(raisesException);
+ Assert.assertTrue(raisesException);
}
}
diff --git a/sparql-anything-engine/src/test/java/io/github/sparqlanything/engine/test/TestTriplifier2.java b/sparql-anything-engine/src/test/java/io/github/sparqlanything/engine/test/TestTriplifier2.java
index 48d487ea..1cf2ccfa 100644
--- a/sparql-anything-engine/src/test/java/io/github/sparqlanything/engine/test/TestTriplifier2.java
+++ b/sparql-anything-engine/src/test/java/io/github/sparqlanything/engine/test/TestTriplifier2.java
@@ -18,13 +18,16 @@
import io.github.sparqlanything.model.FacadeXGraphBuilder;
import io.github.sparqlanything.model.Triplifier;
+import io.github.sparqlanything.model.TriplifierHTTPException;
import org.apache.commons.io.IOUtils;
import com.google.common.collect.Sets;
import org.apache.jena.graph.Graph;
import org.apache.jena.graph.NodeFactory;
import org.apache.jena.sparql.graph.GraphFactory;
+import java.io.ByteArrayInputStream;
import java.io.IOException;
+import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.Properties;
@@ -37,16 +40,13 @@ public TestTriplifier2() {
}
@Override
- public void triplify(Properties properties, FacadeXGraphBuilder builder) throws IOException {
-
- Graph g = GraphFactory.createGraphMem();
-
+ public void triplify(Properties properties, FacadeXGraphBuilder builder) throws IOException, TriplifierHTTPException {
URL url = Triplifier.getLocation(properties);
if (url == null)
return;
- String content = IOUtils.toString(url, Charset.defaultCharset());
+ String content = IOUtils.toString(Triplifier.getInputStream(properties), Charset.defaultCharset());
builder.add(NodeFactory.createURI(TriplifierRegistryTest.PREFIX + "g"), NodeFactory.createURI(TriplifierRegistryTest.PREFIX + "s"), NodeFactory.createURI(TriplifierRegistryTest.PREFIX + "p"),
NodeFactory.createLiteralString(content));
diff --git a/sparql-anything-it/pom.xml b/sparql-anything-it/pom.xml
index fff332b6..943dbfd1 100644
--- a/sparql-anything-it/pom.xml
+++ b/sparql-anything-it/pom.xml
@@ -41,7 +41,92 @@
${project.version}
test
-
+
+
+ io.github.sparql-anything
+ sparql-anything-binary
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-spreadsheet
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-rdf
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-csv
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-xml
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-docs
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-html
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-text
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-json
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-yaml
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-markdown
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-bibliography
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-archive
+ ${project.version}
+
+
+
+ io.github.sparql-anything
+ sparql-anything-slides
+ ${project.version}
+
+
+
junit
junit
diff --git a/sparql-anything-it/src/test/java/io/github/sparqlanything/it/DocumentFunctions.java b/sparql-anything-it/src/test/java/io/github/sparqlanything/it/DocumentFunctions.java
new file mode 100644
index 00000000..01339954
--- /dev/null
+++ b/sparql-anything-it/src/test/java/io/github/sparqlanything/it/DocumentFunctions.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2024 SPARQL Anything Contributors @ http://github.com/sparql-anything
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package io.github.sparqlanything.it;
+
+import io.github.sparqlanything.engine.FacadeX;
+import org.apache.jena.sparql.engine.main.OpExecutorFactory;
+import org.apache.jena.sparql.function.FunctionRegistry;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+public class DocumentFunctions {
+
+ /**
+ * This is useful for generating the markdown documentation of registered functions.
+ */
+ @Test
+ public void printDocumentation(){
+ OpExecutorFactory ef = FacadeX.ExecutorFactory; // classloader does the appropriate configuration
+ FunctionRegistry fr = FunctionRegistry.get();
+ Iterator functions = fr.keys();
+ List list = new ArrayList();
+ functions.forEachRemaining(list::add);
+ Collections.sort(list);
+ functions = list.iterator();
+
+ while(functions.hasNext()){
+ String function = functions.next();
+ //FunctionFactory ff = fr.get(function);
+ //Function f = ff.create(function);
+
+ }
+
+ }
+}