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

Reply via email to