Re: Methods for referencing URIs

Although I am not grokking the "full URIs" example in Toby's post, I  
agree with his recommendations. The URIs in the RDF should be full URIs.

Most vocabulary/term URIs are not that verbose, and while they are  
also not that attractive to read, they are extremely opaque as a  
class.  (Some are opaque individually and others are not, but the way  
they are formed is all over the map.)  The improvement in readability  
that CURIE adds will be inconsistent and marginal, IMHO. For this  
reason I'd also vote for original URIs in the user interface.

In our system we took great care to make the URIs resolvable (and  
short), as we think this is critical to user adoption and to maximum  
leveraging of the results.  (See the previously mentioned use case on  
your site.)  It would be very disappointing if the RDF content didn't  
maintain that usability in its URI content.  (Not sure if this is what  
you are proposing, but it seems to be....)

John




On May 2, 2009, at 8:10 AM, 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'),
> );

--------------
John Graybeal   <mailto:graybeal@mbari.org>  -- 831-775-1956
Monterey Bay Aquarium Research Institute
Marine Metadata Interoperability Project: http://marinemetadata.org

Received on Saturday, 2 May 2009 16:56:49 UTC