I'm still confused, but that seems to be one solution:
importjava.util.UUID;
importorg.apache.commons.rdf.api.Graph;
importorg.apache.commons.rdf.api.IRI;
importorg.apache.commons.rdf.jena.JenaGraph;
importorg.apache.commons.rdf.jena.JenaRDF;
importorg.apache.jena.query.Dataset;
importorg.apache.jena.query.ReadWrite;
importorg.apache.jena.rdf.model.Model;
importorg.apache.jena.tdb.TDBFactory;
publicclassTest {
publicstaticvoidmain(String[] args) {
JenaRDF jenaRDF= newJenaRDF();
IRI namePredicate= jenaRDF.createIRI("https://schema.org/name");
String graphNameAsString= "http://example.com/myGraph";
IRI myGraphNameAsIri= jenaRDF.createIRI(graphNameAsString);
Dataset jenaDataset= TDBFactory.createDataset("target/test");
// READ TDB dataset
org.apache.commons.rdf.api.Dataset commonsDataset4Read=
jenaRDF.asDataset(jenaDataset);
Graph myCommonsGraph4Read=
commonsDataset4Read.getGraph(myGraphNameAsIri).orElseThrow();
myCommonsGraph4Read.stream().forEach(quad->System.out.println("commonsQuad:
"+ quad));
// Write TDB dataset
jenaDataset.begin(ReadWrite.WRITE);
org.apache.commons.rdf.api.Dataset commonsDataset4Write=
jenaRDF.asDataset(jenaDataset);
Graph commonsRdfGraph4Write=
commonsDataset4Write.getGraph(myGraphNameAsIri).orElseThrow();
IRI randomSubject= jenaRDF.createIRI("http://example.com/"+
UUID.randomUUID().toString());
commonsRdfGraph4Write.add(randomSubject, namePredicate,
jenaRDF.createLiteral("Bob"));
Model jenaModel= ((JenaGraph)commonsRdfGraph4Write).asJenaModel();
jenaDataset.addNamedModel(graphNameAsString, jenaModel);
jenaDataset.commit();
jenaDataset.end();
}
}
Fredy
On 17.02.24 18:25, Fred Hauschel wrote:
Hi there,
is it possible to load a dataset from TDB into a
org.apache.commons.rdf.api.Dataset ?
Dataset dataset= TDBFactory.createDataset(directory);
in common, how to convert between org.apache.commons.rdf.* and other
stores for readsing and writing ?
Thanks Fredy