# Raptor RDF Parser Toolkit

## Dave Beckett
Institute for Learning and Research Technology
University of Bristol

## Overview

Raptor is 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-Triples, Turtle, RSS tag soup including Atom 0.3 and the serializing syntaxes are RDF/XML, N-Triples and RSS 1.0.

Raptor was designed to work closely with the Redland 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). Raptor has no memory leaks and is fast.

This is a mature and stable library. See the todo list for the current state information. A summary of the changes can be found in the NEWS file, detailed API changes in the release notes and file-by-file changes in the CVS ChangeLog.

## Parsers

### RDF/XML Parser

A Parser for the standard RDF/XML syntax as revised by the W3C RDF Core working group.

- Designed to integrate well with Redland
- 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
- Parses and generates N-Triples supporting XML literals, language tagging and datatypes
- Parses content on the web if libcurl, libxml2 or BSD libfetch is available.
- Handles `rdf:resource` / `resource` attributes
- Uses expat and/or (GNOME) libxml XML parsers as available or required
- Optional features can be selected at run time.
- C#, Java, Perl, PHP, Python, Ruby, Tcl interfaces when used via Redland
- No memory leaks
- Fast
- Standalone rapper RDF parser utility program

Known bugs and issues are recorded in the to do list.

### N-Triples Parser

A parser for the N-Triples syntax as used by the W3C RDF Core working group for the RDF Test Cases.

### Turtle Parser

A parser for the Turtle Terse RDF Triple Language syntax, designed as a useful subset of Notation 3.

### 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 into RSS 1.0 RDF 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 handles the Atom 0.3 syndication format currently being standardised by the IETF Atom Publishing Format and Protocol working group.

## Serializers

### RDF/XML Serializer

A serializer to the standard RDF/XML syntax as revised by the W3C RDF Core working group. This writes a statement-based RDF/XML serialization with no optimisation or pretty-printing.

### N-Triples Serializer

A serializer to the N-Triples syntax as used by the W3C RDF Core working group for the RDF Test Cases.

### RSS 1.0 Serializer

A serializer to the RDF Site Summary (RSS) 1.0 format.

## Documentation

The public API is described in the libraptor.3 UNIX manual page. It is demonstrated in the rapper utility program which shows how to call the parser and write the triples in a serialization. When Raptor is used inside Redland, 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 from http://librdf.org/dist/source/ (master site) and also from the SourceForge site. There are nightly snapshots of the development version which can also be browsed via CVSweb.

## 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 lists discusses the development and use of Raptor and Redland as well as future plans and announcement of releases.

Copyright 2000-2005 Dave Beckett, Institute for Learning and Research Technology, University of Bristol