W3C home > Mailing lists > Public > public-rdfa-wg@w3.org > January 2011

RDF API: fusing TermMap and PrefixMap

From: Benjamin Adrian <benjamin.adrian@dfki.de>
Date: Wed, 19 Jan 2011 13:54:25 +0100
Message-ID: <4D36DF01.6070601@dfki.de>
To: RDFa WG <public-rdfa-wg@w3.org>
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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 27 April 2012 04:55:08 GMT