Re: Methods for referencing URIs

Hi,

> 1. Full URI. very verbose and not very readable.
>
> I would suggest storing full URIs, and...
>> 2. CURIE. easy to read and user friendly.
> ...displaying them as CURIEs if required in the user interface.
For now, Drupal core is only focusing on RDFa, which means it will not 
do anything with the full URIs and will require to convert them to 
CURIEs for every page load. This is an extra processing which would 
impact performance compared to the solution where the URIs are stored as 
CURIEs and inserted "as is" in the xHTML output. If ever required, full 
URIs can be built from CURIEs at no cost via a simple concatenation, 
while the opposite convertion full URI to CURIE is more expensive.

There is a minor cons which is that local prefixes and CURIEs have to be 
kept in sync, but I believe this is manageable as prefixes are generally 
unlikely to change.

Keep in mind that Drupal core has to remain as light as possible and 
this is why we're looking into these weight and performance issues. RDFa 
is the first step for enabling RDF in Drupal core. For more advanced RDF 
features, contributed modules such as the RDF API will leverage the 
lightweight core RDF functionality.

Has anyone ever used CURIEs as lightweight URIs storing system? Is there 
any potential issue which I've overlooked here?

Stephane.


Toby A Inkster wrote:
> On 2 May 2009, at 15:27, Stephane Corlosquet wrote:
>
>> For the RDFa in Drupal core effort, I'm looking for the best way to 
>> store URIs and keep it lightweight and developer friendly.
>>
>> I see three different methods for referencing vocabulary URIs.
>>
>> 1. Full URI. very verbose and not very readable.
>
> I would suggest storing full URIs, and...
>
>> 2. CURIE. easy to read and user friendly.
>
> ...displaying them as CURIEs if required in the user interface.
>
>> A typical use case is for representing a blog post for example:
>>
>> $object->title = 'Title of my blog post';
>> $object->created = '1235130980';
>> $object->user_id = 2;
>> $object->body = 'Lorem ipsum dolor sit amet, consectetur adipiscing 
>> elit.';
>> $object->rdf_mappings = array(
>>    'type' => 'sioct:Weblog',
>>    'title' => 'dc:title',
>>    'body' => 'sioc:content',
>>    'user_id' => 'dc:creator',
>>  );
>
> Using full URIs this could be:
>
> include 'prefixes.php'; # A bunch of constants
> /* ... */
> $object->rdf_mappings = array(
>    'type' => SIOCT.'Weblog',
>    'title' => DC.'title',
>    'body' => SIOC. 'content',
>    'user_id' => DC.'creator',
>  );
>
> Or:
>
> include 'prefixes.php'; # A class definition
> /* ... */
> $object->rdf_mappings = array(
>    'type' => RDF::sioct('Weblog'),
>    'title' => RDF::dc('title'),
>    'body' => RDF::sioc('content'),
>    'user_id' => RDF::dc('creator'),
>  );
>
>

Received on Monday, 4 May 2009 16:18:36 UTC