swish-0.5.0.3: A semantic web toolkit.

PortabilityTypeSynonymInstances, MultiParamTypeClasses, FlexibleInstances, OverloadedStrings
Stabilityexperimental
MaintainerDouglas Burke

Swish.Utils.Namespace

Description

This module defines algebraic datatypes for namespaces and scoped names.

For these purposes, a namespace is a prefix and URI used to identify a namespace (cf. XML namespaces), and a scoped name is a name that is scoped by a specified namespace.

Synopsis

Documentation

data Namespace Source

A NameSpace value consists of an optional prefix and a corresponding URI.

Instances

Eq Namespace

Equality is defined by the URI, not by the prefix (so the same URI with different prefixes will be considered to be equal).

Show Namespace 
LookupEntryClass Namespace (Maybe Text) URI 
LookupEntryClass (Ruleset ex) Namespace (Ruleset ex) 

data ScopedName Source

A full ScopedName value has a QName prefix, namespace URI and a local part. ScopedName values may omit the prefix (see Namespace) or the local part.

Some applications may handle null namespace URIs as meaning the local part is relative to some base URI.

Instances

Eq ScopedName 
Ord ScopedName 
Show ScopedName 
IsString ScopedName

This is not total since it will fail if the input string is not a valid URI.

FromRDFLabel ScopedName

Converts from a Resource.

ToRDFLabel ScopedName

Converts to a Resource.

LookupEntryClass ClassRestriction ScopedName ClassRestriction 
LookupEntryClass NamedGraph ScopedName [RDFGraph] 
LookupEntryClass (Rule ex) ScopedName (Rule ex) 
LookupEntryClass (Formula ex) ScopedName (Formula ex) 
LookupEntryClass (DatatypeRel vt) ScopedName (DatatypeRel vt) 
LookupEntryClass (OpenVarBindingModify a b) ScopedName (OpenVarBindingModify a b)

Allow an OpenVarBindingModify value to be accessed using a LookupMap.

LookupEntryClass (VarBindingModify a b) ScopedName (VarBindingModify a b)

Allow a VarBindingModify value to be accessed using a LookupMap.

LookupEntryClass (DatatypeMod vt lb vn) ScopedName (DatatypeMod vt lb vn) 
LookupEntryClass (Datatype ex lb vn) ScopedName (Datatype ex lb vn) 

getQName :: ScopedName -> QNameSource

Get QName corresponding to a scoped name

getScopedNameURI :: ScopedName -> URISource

Get URI corresponding to a scoped name (using RDF conventions)

matchName :: String -> ScopedName -> BoolSource

Test if supplied string matches the display form of a scoped name.

makeScopedName :: Maybe Text -> URI -> Text -> ScopedNameSource

Construct a ScopedName from prefix, URI and local name

makeQNameScopedName :: Maybe Text -> QName -> ScopedNameSource

Construct a ScopedName from a QName

makeURIScopedName :: URI -> ScopedNameSource

Construct a ScopedName for a bare URI (the label is set to "").

makeNSScopedName :: Namespace -> Text -> ScopedNameSource

Construct a ScopedName from a Namespace and local component

nullScopedName :: ScopedNameSource

This should never appear as a valid name

namespaceToBuilder :: Namespace -> BuilderSource

Utility routine to create a @prefix line (matching N3/Turtle) grammar for this namespace.