swish-0.3.0.1: A semantic web toolkit.

PortabilityH98
Stabilityexperimental
MaintainerDouglas Burke

Swish.RDF.N3Parser

Contents

Description

This Module implements a Notation 3 parser (see [1], [2], [3]), returning a new RDFGraph consisting of triples and namespace information parsed from the supplied N3 input string, or an error indication.

Uses the Parsec monadic parser library.

REFERENCES:

1 http://www.w3.org/TeamSubmission/2008/SUBM-n3-20080114/ Notation3 (N3): A readable RDF syntax, W3C Team Submission 14 January 2008

2 http://www.w3.org/DesignIssues/Notation3.html Tim Berners-Lee's design issues series notes and description

3 http://www.w3.org/2000/10/swap/Primer.html Notation 3 Primer by Sean Palmer

NOTES:

UTF-8 handling is not really tested.

Several items seem to be allowed (from looking at N3 test suites and files 'in the wild') that are not given supported by the N3 grammar [1]. We try to support these, including

  • ":" and "base:" as valid QNames (ie a blank local component)
  • true and false as well as @true and @false
  • use of lower-case characters for \u and \U escape codes

No performance testing has been applied.

Not all N3 grammar elements are supported, including:

  • @forSome (we read it in but ignore the arguments)
  • @forAll (this causes a parse error)
  • formulae are lightly tested
  • string support is incomplete (e.g. unrecognized escape characters such as \q are probably handled incorrectly)

Synopsis

Documentation

parseN3Source

Arguments

:: String

input in N3 format.

-> Maybe QName

optional base URI

-> ParseResult 

Parse a string with an optional base URI.

See also parseN3fromString.

parseN3fromStringSource

Arguments

:: String

input in N3 format.

-> ParseResult 

Parse a string as N3 (with no real base URI).

See parseN3 if you need to provide a base URI.

parseAnyfromStringSource

Arguments

:: N3Parser a

parser to apply

-> Maybe QName

base URI of the input, or Nothing to use default base value

-> String

input to be parsed

-> Either String a 

Function to supply initial context and parse supplied term.

We augment the Parsec error with the context.

Exports for parsers that embed Notation3 in a bigger syntax

type SpecialMap = LookupMap (String, ScopedName)Source

Type for special name lookup table

eof :: Show tok => GenParser tok st ()