RDF API: fusing TermMap and PrefixMap

Hi,

Manu asked me to look for a way to fuse TermMap[1] and PrefixMap[2] in 
the RDF-API.

[1] http://www.w3.org/2010/02/rdfa/sources/rdf-api/#term-maps
[2] http://www.w3.org/2010/02/rdfa/sources/rdf-api/#prefix-maps

I recommend using an IriMap interface that fuses the interfaces TermMap 
and PrefixMap. Any comments from your side?

[NoInterfaceObject]
interface IriMAP {
  getter DOMString get(in DOMString abbreviation);
  setter void set (in DOMString abbreviation, in DOMString iri);
  deleter void remove (in DOMString abbreviation);
  DOMString resolve (in DOMString abbreviation);
  DOMString shrink (in DOMString iri);
  void setDefault (in DOMString iri);
  IriMapMap import (in IriMap abbreviations, in optional boolean override);
  IriMap importFromGraph (in Graph graph, in optional boolean override);
}

Short Example of using the IriMap:

// create a new prefix mapping for the prefix "rdfs"
iris.set("rdfs", "http://www.w3.org/2000/01/rdf-schema#")

// resolve a known CURIE
iris.resolve("rdfs:label");
// --> "http://www.w3.org/2000/01/rdf-schema#label"

// create a new token mapping for the token label
iris.set("label", "http://www.w3.org/2000/01/rdf-schema#label")

// resolve a known token
iris.resolve("label")
// --> "http://www.w3.org/2000/01/rdf-schema#label"


Compared to the current spec, the necessary interface changes that 
specify this IriMap are:

1. set:
  Parameter  Type  Description
  abbreviation DOMString The abbreviation must be a valid NCName
  iri        DOMString An IRI, as defined by [IRI].*

* If the value of the parameter iri is classified as Namespace IRI that 
is an IRI that ends either with a character value "/" or a character 
value "#", then abbreviation is handled as prefix value that substitutes 
the Namespace IRI.
Else, if iri is not classified as Namespace IRI, then abbreviation is 
handled as token value that substitutes the IRI.


2. resolve:
  Parameter Type  Description
  abbreviation DOMString CURIE to resolve.**

** If abbreviation is a CURIE, then resolve the abbreviated IRI as 
prefix (for example "rdfs:label" is resolved as 
"http://www.w3.org/2000/01/rdf-schema#label"). Else, if abbreviation is 
a valid NCName, then resolve the abbreviated IRI as token (for example 
"label" is resolved as "http://www.w3.org/2000/01/rdf-schema#label").

3. get, remove:
  Parameter Type  Description
  abbreviation DOMString The term must be a valid NCName. ***

*** It deletes both, existing tokens and prefixes having the value of 
the parameter abbreviation.

4. setDefault, shrink, importFromGraph, import: These methods work 
similar in TermMap and PrefixMap , so they won't change in IriMap.


Best regards,

Ben

-- 
__________________________________________
Benjamin Adrian
Email : benjamin.adrian@dfki.de
WWW : http://www.dfki.uni-kl.de/~adrian/
Tel.: +49631 20575 1450
Twitter: http://twitter.com/BenBanBun
Skype: benbanbun
__________________________________________
Deutsches Forschungszentrum für Künstliche Intelligenz GmbH
Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
Geschäftsführung:
Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster (Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats:
Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
__________________________________________

Received on Wednesday, 19 January 2011 12:54:59 UTC