diff --git a/.travis.yml b/.travis.yml index 2ee0939..f39b742 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,9 @@ language: java +sudo: false +cache: + directories: + - $HOME/.m2 jdk: - - openjdk7 - - oraclejdk7 - oraclejdk8 notifications: email: diff --git a/README.md b/README.md index 9a9e006..09b6803 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ From Maven com.github.jsonld-java jsonld-java-clerezza - 0.7.0-SNAPSHOT + 0.12.0 (Adjust for most recent , as found in ``pom.xml``). @@ -23,7 +23,7 @@ From Maven ClerezzaTripleCallback ------------------ -The ClerezzaTripleCallback returns an instance of `org.apache.clerezza.rdf.core.MGraph` +The ClerezzaTripleCallback returns an instance of `org.apache.clerezza.commons.rdf.Graph` See [ClerezzaTripleCallbackTest.java](./src/test/java/com/github/jsonldjava/clerezza/ClerezzaTripleCallbackTest.java) for example Usage. diff --git a/pom.xml b/pom.xml index 133e87c..ddd25f0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,10 +4,11 @@ jsonld-java-parent com.github.jsonld-java - 0.7.1-SNAPSHOT + 0.12.0 4.0.0 jsonld-java-clerezza + 0.12.1-SNAPSHOT JSONLD Java :: Clerezza Integration JSON-LD Java integration module for Clerezza bundle @@ -28,14 +29,14 @@ - 0.14 + 1.0.1 ${project.groupId} jsonld-java - ${project.version} + 0.12.0 jar compile @@ -48,7 +49,7 @@ org.apache.felix org.apache.felix.scr.annotations - 1.9.12 + 1.12.0 @@ -62,7 +63,7 @@ org.apache.clerezza rdf.ontologies - 0.12 + 1.0.0 test @@ -109,7 +110,7 @@ org.apache.felix maven-scr-plugin - 1.21.0 + 1.26.0 diff --git a/src/main/java/com/github/jsonldjava/clerezza/ClerezzaJsonLdParsingProvider.java b/src/main/java/com/github/jsonldjava/clerezza/ClerezzaJsonLdParsingProvider.java index 0923399..13b003d 100644 --- a/src/main/java/com/github/jsonldjava/clerezza/ClerezzaJsonLdParsingProvider.java +++ b/src/main/java/com/github/jsonldjava/clerezza/ClerezzaJsonLdParsingProvider.java @@ -3,10 +3,11 @@ import java.io.IOException; import java.io.InputStream; -import org.apache.clerezza.rdf.core.MGraph; -import org.apache.clerezza.rdf.core.UriRef; +import org.apache.clerezza.commons.rdf.Graph; +import org.apache.clerezza.commons.rdf.IRI; import org.apache.clerezza.rdf.core.serializedform.ParsingProvider; import org.apache.clerezza.rdf.core.serializedform.SupportedFormat; +import org.apache.clerezza.utils.Uri; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.ConfigurationPolicy; import org.apache.felix.scr.annotations.Service; @@ -32,8 +33,8 @@ public class ClerezzaJsonLdParsingProvider implements ParsingProvider { private final Logger logger = LoggerFactory.getLogger(getClass()); @Override - public void parse(MGraph target, InputStream serializedGraph, String formatIdentifier, - UriRef baseUri) { + public void parse(Graph target, InputStream serializedGraph, String formatIdentifier, + IRI baseUri) { // The callback will add parsed triples to the target MGraph final ClerezzaTripleCallback ctc = new ClerezzaTripleCallback(); ctc.setMGraph(target); diff --git a/src/main/java/com/github/jsonldjava/clerezza/ClerezzaJsonLdSerializingProvider.java b/src/main/java/com/github/jsonldjava/clerezza/ClerezzaJsonLdSerializingProvider.java index 6a14084..7761fcf 100644 --- a/src/main/java/com/github/jsonldjava/clerezza/ClerezzaJsonLdSerializingProvider.java +++ b/src/main/java/com/github/jsonldjava/clerezza/ClerezzaJsonLdSerializingProvider.java @@ -11,7 +11,7 @@ import java.util.LinkedHashMap; import java.util.Map; -import org.apache.clerezza.rdf.core.TripleCollection; +import org.apache.clerezza.commons.rdf.Graph; import org.apache.clerezza.rdf.core.serializedform.SerializingProvider; import org.apache.clerezza.rdf.core.serializedform.SupportedFormat; import org.apache.felix.scr.annotations.Activate; @@ -103,7 +103,7 @@ public class ClerezzaJsonLdSerializingProvider implements SerializingProvider { private boolean prettyPrint; @Override - public void serialize(OutputStream serializedGraph, TripleCollection tc, String formatIdentifier) { + public void serialize(OutputStream serializedGraph, Graph tc, String formatIdentifier) { final ClerezzaRDFParser serializer = new ClerezzaRDFParser(); try { final long start = System.currentTimeMillis(); diff --git a/src/main/java/com/github/jsonldjava/clerezza/ClerezzaRDFParser.java b/src/main/java/com/github/jsonldjava/clerezza/ClerezzaRDFParser.java index 7a27d10..0ffb062 100644 --- a/src/main/java/com/github/jsonldjava/clerezza/ClerezzaRDFParser.java +++ b/src/main/java/com/github/jsonldjava/clerezza/ClerezzaRDFParser.java @@ -3,16 +3,13 @@ import java.util.HashMap; import java.util.Map; -import org.apache.clerezza.rdf.core.BNode; -import org.apache.clerezza.rdf.core.Language; -import org.apache.clerezza.rdf.core.Literal; -import org.apache.clerezza.rdf.core.NonLiteral; -import org.apache.clerezza.rdf.core.PlainLiteral; -import org.apache.clerezza.rdf.core.Resource; -import org.apache.clerezza.rdf.core.Triple; -import org.apache.clerezza.rdf.core.TripleCollection; -import org.apache.clerezza.rdf.core.TypedLiteral; -import org.apache.clerezza.rdf.core.UriRef; +import org.apache.clerezza.commons.rdf.BlankNode; +import org.apache.clerezza.commons.rdf.BlankNodeOrIRI; +import org.apache.clerezza.commons.rdf.Graph; +import org.apache.clerezza.commons.rdf.IRI; +import org.apache.clerezza.commons.rdf.Literal; +import org.apache.clerezza.commons.rdf.RDFTerm; +import org.apache.clerezza.commons.rdf.Triple; import com.github.jsonldjava.core.JsonLdError; import com.github.jsonldjava.core.JsonLdProcessor; @@ -20,7 +17,7 @@ import com.github.jsonldjava.core.RDFParser; /** - * Converts a Clerezza {@link TripleCollection} to the {@link RDFDataset} used + * Converts a Clerezza {@link Graph} to the {@link RDFDataset} used * by the {@link JsonLdProcessor} * * @author Rupert Westenthaler @@ -35,48 +32,38 @@ public class ClerezzaRDFParser implements RDFParser { @Override public RDFDataset parse(Object input) throws JsonLdError { count = 0; - final Map bNodeMap = new HashMap(1024); + final Map blankNodeMap = new HashMap(1024); final RDFDataset result = new RDFDataset(); - if (input instanceof TripleCollection) { - for (final Triple t : ((TripleCollection) input)) { - handleStatement(result, t, bNodeMap); + if (input instanceof Graph) { + for (final Triple t : ((Graph) input)) { + handleStatement(result, t, blankNodeMap); } } - bNodeMap.clear(); // help gc + blankNodeMap.clear(); // help gc return result; } - private void handleStatement(RDFDataset result, Triple t, Map bNodeMap) { - final String subject = getResourceValue(t.getSubject(), bNodeMap); - final String predicate = getResourceValue(t.getPredicate(), bNodeMap); - final Resource object = t.getObject(); + private void handleStatement(RDFDataset result, Triple t, Map blankNodeMap) { + final String subject = getResourceValue(t.getSubject(), blankNodeMap); + final String predicate = getResourceValue(t.getPredicate(), blankNodeMap); + final RDFTerm object = t.getObject(); if (object instanceof Literal) { - - final String value = ((Literal) object).getLexicalForm(); + final Literal literalObject = (Literal) object; + final String value = literalObject.getLexicalForm(); final String language; final String datatype; - if (object instanceof TypedLiteral) { - language = null; - datatype = getResourceValue(((TypedLiteral) object).getDataType(), bNodeMap); - } else if (object instanceof PlainLiteral) { - // we use RDF 1.1 literals so we do set the RDF_LANG_STRING - // datatype - datatype = RDF_LANG_STRING; - final Language l = ((PlainLiteral) object).getLanguage(); - if (l == null) { - language = null; - } else { - language = l.toString(); - } + if (literalObject.getLanguage() != null) { + language = literalObject.getLanguage().toString(); + datatype = RDF_LANG_STRING; } else { - throw new IllegalStateException("Unknown Literal class " - + object.getClass().getName()); + datatype = getResourceValue(literalObject.getDataType(), blankNodeMap); + language = null; } result.addTriple(subject, predicate, value, datatype, language); count++; } else { - result.addTriple(subject, predicate, getResourceValue((NonLiteral) object, bNodeMap)); + result.addTriple(subject, predicate, getResourceValue((BlankNodeOrIRI) object, blankNodeMap)); count++; } @@ -92,20 +79,20 @@ public long getCount() { return count; } - private String getResourceValue(NonLiteral nl, Map bNodeMap) { + private String getResourceValue(BlankNodeOrIRI nl, Map BlankNodeMap) { if (nl == null) { return null; - } else if (nl instanceof UriRef) { - return ((UriRef) nl).getUnicodeString(); - } else if (nl instanceof BNode) { - String bNodeId = bNodeMap.get(nl); - if (bNodeId == null) { - bNodeId = Integer.toString(bNodeMap.size()); - bNodeMap.put((BNode) nl, bNodeId); + } else if (nl instanceof IRI) { + return ((IRI) nl).getUnicodeString(); + } else if (nl instanceof BlankNode) { + String BlankNodeId = BlankNodeMap.get(nl); + if (BlankNodeId == null) { + BlankNodeId = Integer.toString(BlankNodeMap.size()); + BlankNodeMap.put((BlankNode) nl, BlankNodeId); } - return new StringBuilder("_:b").append(bNodeId).toString(); + return new StringBuilder("_:b").append(BlankNodeId).toString(); } else { - throw new IllegalStateException("Unknwon NonLiteral type " + nl.getClass().getName() + throw new IllegalStateException("Unknwon BlankNodeOrIRI type " + nl.getClass().getName() + "!"); } } diff --git a/src/main/java/com/github/jsonldjava/clerezza/ClerezzaTripleCallback.java b/src/main/java/com/github/jsonldjava/clerezza/ClerezzaTripleCallback.java index 89ac284..01bf188 100644 --- a/src/main/java/com/github/jsonldjava/clerezza/ClerezzaTripleCallback.java +++ b/src/main/java/com/github/jsonldjava/clerezza/ClerezzaTripleCallback.java @@ -4,16 +4,16 @@ import java.util.List; import java.util.Map; -import org.apache.clerezza.rdf.core.BNode; -import org.apache.clerezza.rdf.core.Language; -import org.apache.clerezza.rdf.core.MGraph; -import org.apache.clerezza.rdf.core.NonLiteral; -import org.apache.clerezza.rdf.core.Resource; -import org.apache.clerezza.rdf.core.UriRef; -import org.apache.clerezza.rdf.core.impl.PlainLiteralImpl; -import org.apache.clerezza.rdf.core.impl.SimpleMGraph; -import org.apache.clerezza.rdf.core.impl.TripleImpl; -import org.apache.clerezza.rdf.core.impl.TypedLiteralImpl; +import org.apache.clerezza.commons.rdf.BlankNode; +import org.apache.clerezza.commons.rdf.BlankNodeOrIRI; +import org.apache.clerezza.commons.rdf.Graph; +import org.apache.clerezza.commons.rdf.IRI; +import org.apache.clerezza.commons.rdf.Language; +import org.apache.clerezza.commons.rdf.RDFTerm; +import org.apache.clerezza.commons.rdf.impl.utils.PlainLiteralImpl; +import org.apache.clerezza.commons.rdf.impl.utils.TripleImpl; +import org.apache.clerezza.commons.rdf.impl.utils.TypedLiteralImpl; +import org.apache.clerezza.commons.rdf.impl.utils.simple.SimpleGraph; import com.github.jsonldjava.core.JsonLdTripleCallback; import com.github.jsonldjava.core.RDFDataset; @@ -22,15 +22,15 @@ public class ClerezzaTripleCallback implements JsonLdTripleCallback { private static final String RDF_LANG_STRING = "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"; - private MGraph mGraph = new SimpleMGraph(); - private Map bNodeMap = new HashMap(); + private Graph mGraph = new SimpleGraph(); + private Map bNodeMap = new HashMap<>(); - public void setMGraph(MGraph mGraph) { - this.mGraph = mGraph; - bNodeMap = new HashMap(); + public void setMGraph(Graph graph) { + this.mGraph = graph; + bNodeMap = new HashMap<>(); } - public MGraph getMGraph() { + public Graph getMGraph() { return mGraph; } @@ -40,41 +40,41 @@ private void triple(String s, String p, String o, String graph) { return; } - final NonLiteral subject = getNonLiteral(s); - final UriRef predicate = new UriRef(p); - final NonLiteral object = getNonLiteral(o); + final BlankNodeOrIRI subject = getNonLiteral(s); + final IRI predicate = new IRI(p); + final BlankNodeOrIRI object = getNonLiteral(o); mGraph.add(new TripleImpl(subject, predicate, object)); } private void triple(String s, String p, String value, String datatype, String language, String graph) { - final NonLiteral subject = getNonLiteral(s); - final UriRef predicate = new UriRef(p); - Resource object; + final BlankNodeOrIRI subject = getNonLiteral(s); + final IRI predicate = new IRI(p); + RDFTerm object; if (language != null) { object = new PlainLiteralImpl(value, new Language(language)); } else if (datatype == null || RDF_LANG_STRING.equals(datatype)) { object = new PlainLiteralImpl(value); } else { - object = new TypedLiteralImpl(value, new UriRef(datatype)); + object = new TypedLiteralImpl(value, new IRI(datatype)); } mGraph.add(new TripleImpl(subject, predicate, object)); } - private NonLiteral getNonLiteral(String s) { + private BlankNodeOrIRI getNonLiteral(String s) { if (s.startsWith("_:")) { return getBNode(s); } else { - return new UriRef(s); + return new IRI(s); } } - private BNode getBNode(String s) { + private BlankNode getBNode(String s) { if (bNodeMap.containsKey(s)) { return bNodeMap.get(s); } else { - final BNode result = new BNode(); + final BlankNode result = new BlankNode(); bNodeMap.put(s, result); return result; } diff --git a/src/test/java/com/github/jsonldjava/clerezza/ClerezzaJsonLdParserSerializerTest.java b/src/test/java/com/github/jsonldjava/clerezza/ClerezzaJsonLdParserSerializerTest.java index 41bff24..a34d596 100644 --- a/src/test/java/com/github/jsonldjava/clerezza/ClerezzaJsonLdParserSerializerTest.java +++ b/src/test/java/com/github/jsonldjava/clerezza/ClerezzaJsonLdParserSerializerTest.java @@ -6,15 +6,14 @@ import java.nio.charset.Charset; import java.util.ServiceLoader; -import org.apache.clerezza.rdf.core.Graph; -import org.apache.clerezza.rdf.core.Language; +import org.apache.clerezza.commons.rdf.Graph; +import org.apache.clerezza.commons.rdf.IRI; +import org.apache.clerezza.commons.rdf.Language; +import org.apache.clerezza.commons.rdf.Triple; +import org.apache.clerezza.commons.rdf.impl.utils.PlainLiteralImpl; +import org.apache.clerezza.commons.rdf.impl.utils.TripleImpl; +import org.apache.clerezza.commons.rdf.impl.utils.simple.SimpleGraph; import org.apache.clerezza.rdf.core.LiteralFactory; -import org.apache.clerezza.rdf.core.MGraph; -import org.apache.clerezza.rdf.core.Triple; -import org.apache.clerezza.rdf.core.UriRef; -import org.apache.clerezza.rdf.core.impl.PlainLiteralImpl; -import org.apache.clerezza.rdf.core.impl.SimpleMGraph; -import org.apache.clerezza.rdf.core.impl.TripleImpl; import org.apache.clerezza.rdf.core.serializedform.Parser; import org.apache.clerezza.rdf.core.serializedform.Serializer; import org.apache.clerezza.rdf.ontologies.FOAF; @@ -47,9 +46,9 @@ public class ClerezzaJsonLdParserSerializerTest { @BeforeClass public static void init(){ LiteralFactory lf = LiteralFactory.getInstance(); - UriRef pers1 = new UriRef("http://www.example.org/test#pers1"); - UriRef pers2 = new UriRef("http://www.example.org/test#pers2"); - MGraph data = new SimpleMGraph(); + IRI pers1 = new IRI("http://www.example.org/test#pers1"); + IRI pers2 = new IRI("http://www.example.org/test#pers2"); + Graph data = new SimpleGraph(); //NOTE: This test a language literal with and without language as // well as a xsd:string typed literal. To test correct handling of // RDF1.1 @@ -61,14 +60,14 @@ public static void init(){ data.add(new TripleImpl(pers1, FOAF.age, lf.createTypedLiteral(38))); data.add(new TripleImpl(pers1, FOAF.knows, pers2)); data.add(new TripleImpl(pers2, FOAF.name, new PlainLiteralImpl("Reto Bachmann-Gmür"))); - rdfData = data.getGraph(); + rdfData = data; } @Test public void parserTest() { final InputStream in = getClass().getClassLoader().getResourceAsStream( "testfiles/product.jsonld"); - SimpleMGraph graph = new SimpleMGraph(); + SimpleGraph graph = new SimpleGraph(); parser.parse(graph, in, "application/ld+json"); Assert.assertEquals(13, graph.size()); } @@ -80,7 +79,7 @@ public void serializerTest(){ log.info("Serialized Graph: \n {}",new String(data,UTF8)); //Now we reparse the graph to validate it was serialized correctly - SimpleMGraph reparsed = new SimpleMGraph(); + SimpleGraph reparsed = new SimpleGraph(); parser.parse(reparsed, new ByteArrayInputStream(data), "application/ld+json"); Assert.assertEquals(7, reparsed.size()); for(Triple t : rdfData){ diff --git a/src/test/java/com/github/jsonldjava/clerezza/ClerezzaTripleCallbackTest.java b/src/test/java/com/github/jsonldjava/clerezza/ClerezzaTripleCallbackTest.java index dac25e7..199a59e 100644 --- a/src/test/java/com/github/jsonldjava/clerezza/ClerezzaTripleCallbackTest.java +++ b/src/test/java/com/github/jsonldjava/clerezza/ClerezzaTripleCallbackTest.java @@ -5,9 +5,10 @@ import java.io.IOException; import java.io.InputStream; +import java.nio.charset.StandardCharsets; -import org.apache.clerezza.rdf.core.MGraph; -import org.apache.clerezza.rdf.core.Triple; +import org.apache.clerezza.commons.rdf.Graph; +import org.apache.clerezza.commons.rdf.Triple; import org.junit.Test; import com.github.jsonldjava.core.JsonLdError; @@ -20,11 +21,11 @@ public class ClerezzaTripleCallbackTest { public void triplesTest() throws IOException, JsonLdError { final InputStream in = getClass().getClassLoader().getResourceAsStream( "testfiles/product.jsonld"); - final Object input = JsonUtils.fromInputStream(in); + final Object input = JsonUtils.fromInputStream(in, StandardCharsets.UTF_8); final ClerezzaTripleCallback callback = new ClerezzaTripleCallback(); - final MGraph graph = (MGraph) JsonLdProcessor.toRDF(input, callback); + final Graph graph = (Graph) JsonLdProcessor.toRDF(input, callback); for (final Triple t : graph) { System.out.println(t); @@ -37,11 +38,11 @@ public void triplesTest() throws IOException, JsonLdError { public void curiesInContextTest() throws IOException, JsonLdError { final InputStream in = getClass().getClassLoader().getResourceAsStream( "testfiles/curies-in-context.jsonld"); - final Object input = JsonUtils.fromInputStream(in); + final Object input = JsonUtils.fromInputStream(in, StandardCharsets.UTF_8); final ClerezzaTripleCallback callback = new ClerezzaTripleCallback(); - final MGraph graph = (MGraph) JsonLdProcessor.toRDF(input, callback); + final Graph graph = (Graph) JsonLdProcessor.toRDF(input, callback); for (final Triple t : graph) { System.out.println(t); diff --git a/src/test/resources/testfiles/curies-in-context.jsonld b/src/test/resources/testfiles/curies-in-context.jsonld index 0490d79..e066620 100644 --- a/src/test/resources/testfiles/curies-in-context.jsonld +++ b/src/test/resources/testfiles/curies-in-context.jsonld @@ -6,5 +6,5 @@ }, "@type": "Person", "name": "Santa Claus", - "foaf:nick": "Sämi" + "foaf:nick": "Sami" } \ No newline at end of file