Skip to main content

RDF Parsers

The RDF parsers convert RDF input (text or binary) into POJOs. The module provides character-based parsers for all text RDF formats and stream-based parsers for RDF/THRIFT and RDF/PROTO binary formats.

Text-Based Parsers​

ClassFormatInput
RdfXmlParserRDF/XMLString, Reader
RdfJsonParserRDF/JSONString, Reader
NTripleParserN-TriplesString, Reader
TurtleParserTurtleString, Reader
N3ParserN3 (Notation3)String, Reader
NQuadsParserN-QuadsString, Reader
TriGParserTriGString, Reader
TriXParserTriX (XML)String, Reader
JsonLdParserJSON-LDString, Reader

Binary Parsers​

ClassFormatInput
RdfThriftParserRDF/THRIFTbyte[], InputStream
RdfProtoParserRDF/PROTObyte[], InputStream

Usage​

// RDF/XML
MyBean bean = RdfXmlParser.DEFAULT.read(rdfXmlString, MyBean.class);
MyBean bean2 = RdfXml.to(rdfXmlString, MyBean.class);

// Turtle, N-Triples, N3
MyBean fromTurtle = TurtleParser.DEFAULT.read(turtleString, MyBean.class);
MyBean fromTurtle2 = Turtle.to(turtleString, MyBean.class);
MyBean fromNTriples = NTriple.to(nTriplesString, MyBean.class);
MyBean fromN3 = N3.to(n3String, MyBean.class);

// N-Quads, TriG, TriX
MyBean fromNQuads = NQuads.to(nQuadsString, MyBean.class);
MyBean fromTriG = TriG.to(triGString, MyBean.class);
MyBean fromTriX = TriX.to(triXString, MyBean.class);

// JSON-LD
MyBean fromJsonLd = JsonLdParser.DEFAULT.read(jsonLdString, MyBean.class);
MyBean fromJsonLd2 = JsonLd.to(jsonLdString, MyBean.class);

// RDF/THRIFT and RDF/PROTO binary
MyBean fromThrift = RdfThrift.to(thriftBytes, MyBean.class);
MyBean fromProto = RdfProto.to(protoBytes, MyBean.class);

// Generic maps (specify key/value types)
Map<String,String> map = RdfThrift.to(bytes, Map.class, String.class, String.class);

Date/Time Parsing​

RDF parsers use Juneau's built-in ISO 8601 support. Date/time and duration types in RDF literals are parsed via Iso8601Utils.parse() and converted to the target property type (Calendar, Instant, ZonedDateTime, Duration, etc.).

Custom Configuration​

All RDF parsers support the standard Juneau parser builder options:

RdfXmlParser p = RdfXmlParser.create()
.swaps(DateSwap.class)
.build();

TurtleParser p2 = TurtleParser.create()
.swaps(DateSwap.class)
.build();

RdfThriftParser p3 = RdfThriftParser.create()
.swaps(MyCustomSwap.class)
.build();

Media Types​

ParserAccepts
RdfXmlParserapplication/rdf+xml, application/xml, text/xml
RdfJsonParserapplication/rdf+json, application/json
NTripleParsertext/n-triple
TurtleParsertext/turtle
N3Parsertext/n3
NQuadsParserapplication/n-quads
TriGParserapplication/trig
TriXParserapplication/trix+xml
JsonLdParserapplication/ld+json
RdfThriftParserapplication/vnd.apache.thrift.binary
RdfProtoParserapplication/vnd.apache.protobuf
See Also