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
| Class | Format | Input |
|---|---|---|
| RdfXmlParser | RDF/XML | String, Reader |
| RdfJsonParser | RDF/JSON | String, Reader |
| NTripleParser | N-Triples | String, Reader |
| TurtleParser | Turtle | String, Reader |
| N3Parser | N3 (Notation3) | String, Reader |
| NQuadsParser | N-Quads | String, Reader |
| TriGParser | TriG | String, Reader |
| TriXParser | TriX (XML) | String, Reader |
| JsonLdParser | JSON-LD | String, Reader |
Binary Parsers
| Class | Format | Input |
|---|---|---|
| RdfThriftParser | RDF/THRIFT | byte[], InputStream |
| RdfProtoParser | RDF/PROTO | byte[], 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
| Parser | Accepts |
|---|---|
| RdfXmlParser | application/rdf+xml, application/xml, text/xml |
| RdfJsonParser | application/rdf+json, application/json |
| NTripleParser | text/n-triple |
| TurtleParser | text/turtle |
| N3Parser | text/n3 |
| NQuadsParser | application/n-quads |
| TriGParser | application/trig |
| TriXParser | application/trix+xml |
| JsonLdParser | application/ld+json |
| RdfThriftParser | application/vnd.apache.thrift.binary |
| RdfProtoParser | application/vnd.apache.protobuf |
See Also
- RDF Basics for quick start and format overview.
- RDF Serializers for serializing POJOs to RDF.