Raptor RDF Syntax Library (original) (raw)
Raptor RDF Syntax Library
Latest version: 2.0.16 (2023-03-01)
Download: raptor2-2.0.16.tar.gz
- Fixes CVE-2017-18926 and CVE-2020-25713
- Multiple Appveyor Windows and CMake build fixes by 0u812. (Note: the resulting binaries and libraries were not tested on Windows)
- Turtle parser now reads input in chunks so can handle huge files. Patch by Sebastian Freundt
- Added a serializer for the mKR language. Patch by Richard H. McCullough.
- Rapper utility now counts triples using longs
- Several smaller portability fixes for OpenBSD and cross building
See the Raptor2 2.0.16 Release Notesfor the full details of the changes.
Overview
Raptoris a free software / Open Source C library that provides a set of parsers and serializers that generate Resource Description Framework (RDF) triples by parsing syntaxes or serialize the triples into a syntax. The supported parsing syntaxes are RDF/XML, N-Quads, N-Triples 1.0 and 1.1, TRiG, Turtle 2008 and 2013, RDFa 1.0 and 1.1, RSS tag soup including all versions of RSS, Atom 0.3 and Atom 1.0, GRDDL and microformats for HTML, XHTML and XML. The serializing syntaxes are RDF/XML (regular, abbreviated, XMP), Turtle 2013, N-Quads, N-Triples 1.1, Atom 1.0, RSS 1.0, GraphViz DOT, HTML, JSON and mKR.
Raptor was designed to work closely with theRedland RDF library(RDF Parser Toolkit for Redland) but is entirely separate. It is a portable library that works across many POSIX systems (Unix, GNU/Linux, BSDs, OSX, cygwin, win32).
A summary of the changes can be found in theNEWS file, detailed API changes in the release notesand file-by-file changes in the .
Details of upgrading from Raptor 1 as described in theUpgrading document.
- Designed to integrate well with Redland
- Parses content on the web if libcurl, libxml2 or BSD libfetch is available.
- Supports all RDF terms including datatyped and XML literals
- Optional features including parsers and serialisers can be selected at configure time.
- Language bindings to Perl, PHP, Python and Ruby when used via Redland
- No memory leaks
- Fast
- Standalone rapper RDF parser utility program
Known bugs and issues are recorded in theRedland issue trackeror atGitHub issues for Raptor.
Parsers
RDF/XML Parser
A Parser for the standardRDF/XML syntax.
- Fully handles the RDF/XML syntax updates for XML Base,
xml:lang
, RDF datatyping and Collections. - Handles all RDF vocabularies such as FOAF, RSS 1.0, Dublin Core, OWL, DOAP
- Handles
rdf:resource
/resource
attributes - Uses libxml XML parser
N-Quads Parser
A parser for theRDF 1.1 N-Quads - A line-based syntax for an RDF datasets, W3C Candidate Recommendation, 05 November 2013. This is an extension to N-Triples, providing an optional 4th context graph term at the end of the line when a triple is associated with a named graph.
N-Triples Parser
A parser for theRDF 1.1 N-Triples - A line-based syntax for an RDF graph, W3C Candidate Recommendation, 05 November 2013 (aka N-Triples 2013) based on the olderN-Triples.
Turtle Parser
A parser for theTurtle Terse RDF Triple Language W3C Candidate Recommendation, 19 February 2013 based on earlier workTurtle Terse RDF Triple Language (2004)
TRiG Parser
A parser for theRDF 1.1 TriG RDF Dataset Language.
The parser does not support the entire 1.1 TRiG specification; the '{' ... '}' around a graph and the GRAPH
keyword may not be omitted.
RSS "tag soup" parser
A parser for the multiple XML RSS formats that use the elements such as channel, item, title, description in different ways. Attempts to turn the input intoRSS 1.0RDF triples. True RSS 1.0, as a full RDF vocabulary, is best parsed by the RDF/XML parser. It also generates triples for RSS enclosures.
This parser also provides support for the Atom 1.0 syndication format defined in IETFRFC 4287as well as the earlier Atom 0.3.
GRDDL and microformats parser
A parser/processor forGleaning Resource Descriptions from Dialects of Languages (GRDDL)syntax, W3C Recommendation of 2007-09-11 which allows reading XHTML and XML as RDF triples by using profiles in the document that declare XSLT transforms from the XHTML or XML content into RDF/XML or other RDF syntax which can then be parsed. It uses either an XML or a lax HTML parser to allow HTML tag soup to be read.
The parser passes the all the GRDDL tests as of Raptor 1.4.16.
The parser also handles hCard and hReview using public XSL sheets.
RDFa parser
A parser forRDFa 1.0(W3C Recommendation 14 October 2008) andRDFa 1.1(W3C Recommendation 07 June 2012) implemented via librdfalinked inside Raptor. librdfa was, written primarily by Manu Sporny of Digital Bazaar and is licensed with the same license as Raptor.
As of Raptor 2.0.8 the RDFa parser passes all of theRDFa 1.0 test suiteexcept for 4 tests and all of theRDFa 1.1 test suiteexcept for 30 tests.
Serializers
RDF/XML Serializer
A serializer to the standardRDF/XML syntaxas revised by theW3C RDF Core working groupin 2004. This writes a plain triple-based RDF/XML serialization with no optimisation or pretty-printing.
A second serializer is provided using several of the RDF/XML abbreviations to provide a more compact readable format, at the cost of some pre-processing. This is suitable for small documents.
N-Quads Serializer
A serializer for theRDF 1.1 N-Quads -A line-based syntax for an RDF datasets, W3C Candidate Recommendation, 05 November 2013. This is an extension to N-Triples, providing an optional 4th context graph term at the end of the line when a triple is associated with a named graph.
N-Triples Serializer
A serializer for theRDF 1.1 N-Triples - A line-based syntax for an RDF graph (aka N-Triples 2013) based on the earlierN-Triplessyntax as used by the W3C RDF Core working groupfor the RDF Test Cases.
Atom 1.0 Serializer
A serializer to the Atom 1.0 syndication format defined in IETFRFC 4287.
JSON Serializers
Two serializers for to write triples encoded in JSON:
json
: in a resource-centric abbreviated form like Turtle or RDF/XML-Abbreviated as defined by:RDF 1.1 JSON Alternate Serialization (RDF/JSON), W3C Working Group Note, 07 November 2013json-triples
: a triple-centric format based on the SPARQL results in JSON format.
JSON-LD is not supported - too complex to implement.
GraphViz DOT Serializer
An serializer to the GraphVizDOT formatwhich aids visualising RDF graphs.
RSS 1.0 Serializer
A serializer to theRDF Site Summary (RSS) 1.0format.
Turtle Serializer
A serializer for theTurtle Terse RDF Triple Language W3C Candidate Recommendation, 19 February 2013
XMP Serializer
An alpha quality serializer to the Adobe XMP profile of RDF/XML suitable for embedding inside an external document.
mKR Serializer
A serializer for themKR (my Knowledge Representation) Language
Documentation
The public API is described in thelibraptor.3 UNIX manual page. It is demonstrated in therapperutility program which shows how to call the parser and write the triples in a serialization. When Raptor is used insideRedland, the Redland documentation explains how to call the parser and contains several example programs. There are also further examples in the example directory of the distribution.
To install Raptor see the Installation document.
Sources
The packaged sources are available fromhttp://download.librdf.org/source/ (master site) The development GIT sources can also bebrowsed at GitHubor checked out at git://github.com/dajobe/raptor.git
License
This library is free software / open source software released under the LGPL (GPL) or Apache 2.0 licenses. See <LICENSE.html> for full details.
Mailing Lists
The Redland mailing listsdiscusses the development and use of Raptor and Redland as well as future plans and announcement of releases.