I am writing a Java app using Apache Jena as a framework to handle RDF. The goal is a consistency check after doing OWL reasoning. The app is already working, but lacks support for TriG files. In the Jena doc it says TriG is supported (https://jena.apache.org/documentation/io/index.html).
This is my code to parse the RDF file:
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.riot.RDFDataMgr;
import java.io.InputStream;
String rdfFilePath = "sample.ttl";
String rdfReaderType = "TURTLE";
Model model = ModelFactory.createDefaultModel();
InputStream inStream = RDFDataMgr.open(rdfFilePath);
model.read(inStream, null, rdfReaderType);
It works perfectly fine for the reader types "TURTLE"
, "RDF/XML"
, "N-TRIPLE"
and "JSONLD"
. It does not work for rdfReaderType = "TRIG"
. I get the following exception:
Exception in thread "main" org.apache.jena.shared.NoReaderForLangException: Reader not found: TRIG
at org.apache.jena.rdf.model.impl.RDFReaderFImpl.getReader(RDFReaderFImpl.java:61)
at org.apache.jena.rdf.model.impl.ModelCom.read(ModelCom.java:305)
Then I had the theory that a TriG file maybe cannot be parsed to a model, only a dataset. So I tried the following code:
import org.apache.jena.query.Dataset;
import org.apache.jena.riot.RDFLanguages;
String rdfFilePath = "sample.trig";
Dataset dataset = RDFDataMgr.loadDataset(rdfFilePath, RDFLanguages.TRIG);
But I get the following exception:
Exception in thread "main" java.lang.NullPointerException
at org.apache.jena.riot.RDFParserBuilder.build(RDFParserBuilder.java:607)
at org.apache.jena.riot.RDFParserBuilder.parse(RDFParserBuilder.java:540)
at org.apache.jena.riot.RDFDataMgr.parseFromURI(RDFDataMgr.java:921)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:550)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:517)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:470)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:460)
at org.apache.jena.riot.RDFDataMgr.loadDataset(RDFDataMgr.java:414)
Thank you for any help!