Hi,

[[ Cross-posting - let's try to reply to dev@commons. ]]


As you might have spotted if you've seen the Commons RDF Jira/commit
emails, I have been working on adding integrations for Jena, RDF4j and
JSONLD-Java on these branches:


https://github.com/apache/incubator-commonsrdf/tree/jena
https://github.com/apache/incubator-commonsrdf/tree/rdf4j
https://github.com/apache/incubator-commonsrdf/tree/jsonld-java


I think they are now nearing completion and so I would suggest we
merge them to master to try to do a 0.3.0-incubating release of
Commons RDF


These include a full RDFTermfactory for each, includes Graph, Triple,
Quad, Dataset and of course the various RDFTerms.

The jena branch also includes support for generalized triples and
generalized quads, implementing the freshly added TripleLike/QuadLike.




See merged javadoc here:

http://stain.github.io/incubator-commonsrdf/integration/

e.g. under "All known implementing classes" at

http://stain.github.io/incubator-commonsrdf/integration/org/apache/commons/rdf/api/RDFTermFactory.html

http://stain.github.io/incubator-commonsrdf/integration/org/apache/commons/rdf/api/Triple.html



Each implementation (except simple) work by wrapping their native classes, e.g.

https://github.com/apache/incubator-commonsrdf/blob/rdf4j/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java

.. which wraps a org.eclipse.rdf4j.model.Statement and constructs the
RDFTerms of its subject/predicate/object on demand.




I've also merged them all in a single branch to test if they are interoperable:

https://github.com/apache/incubator-commonsrdf/tree/jena-jsonld-rdf4j-integration/integration-tests

The tests create RDFTerms/triples in one RDFTermFactory, then add them
to a graph created with a 'foreign' RDFTermFactory, and then this is
tested all-to-all between all factories, including retrieving back
those previously difficult BlankNodes.



Good news, everyone! They all talk to each other!


And what surprised me most was that these three worked well enough
without a classpath issues with any shared dependencies  - I thought
it would be sensitive to say the JSON-LD Java or HTTPClient version -
I guess more testing (in particular of parsing) would find out.






I also used sed to make a  search-replace variant of rdf4j for older
sesame 4 as the big differences are just package names import from
org.openrdf instead of org.eclipse.rdf4j.

https://github.com/stain/incubator-commonsrdf/tree/sesame4

(I didn't commit this to Apache as I'm not sure if we would want to
support such a 'clone' of the rdf4j module, it would require double
maintenance -- but in theory this could be used for interoperability
between sesame4 and rdf4j! :)



Now is the time to discuss some strategy points!

I'll ask about those in separate emails, and I'll copy
dev@commons.apache.org as I think we can have good feedback there also
from non-RDF folks - e.g. as we need to agree on common styles etc.

(And we need to practice moving our Commons RDF email traffic to dev@commons)


-- 
Stian Soiland-Reyes
http://orcid.org/0000-0001-9842-9718

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to