80 likes | 197 Vues
This document outlines best practices for publishing RDF vocabularies, drawing from W3C recommendations. Key concepts include establishing dereferencable concept URIs, using HTTP 303 redirects for accessing vocabulary and concepts, and implementing content negotiation to serve different formats (e.g., RDF/XML, HTML). Examples illustrate configuring server-side settings using .htaccess for both hash and slash namespaces. The goal is to ensure that RDF ontologies are easily accessible and usable, supporting seamless integration into web applications and datasets.
E N D
RDF Best Practice Best Practice Recipes for Publishing RDF Vocabularies W3C Working Group Note 28. August 2008 - http://www.w3.org/TR/2008/NOTE-swbp-vocab-pub-20080828/
Publishing RDF Ontologies • Content Negotiation • Dereferencable concept URIs • HTTP 303 Redirects • Concept Name separated from the URI via slash (/) or hash (#)
Content Negotiation • Client specifies preferred format (in HTTP Header), e.g. • Accept: application/rdf+xml • Accept: application/xhtml+xml, text/html • Fallback type must be specified
Dereferencable Ontology URIs • Example: • Access e-Freight Ontology: http://efreight.sti2.at/ontology/crs.owl
Dereferencable Concept URI • Example: • GET the class Shipment: http://efreight.sti2.at/ontology/crs.owl#Shipment • Redirect to vocabulary URI: http://efreight.sti2.at/ontology/crs.owl
Server-Side Configuration • .htaccess for ‘hash namespaces‘, e.g. http://efreight.sti2.at/ontology/crs.owl#Shipment AddType application/rdf+xml .owl RewriteEngine On RewriteBase /crs RewriteRule ^crs$ crs.owl • .htaccess for ‘slash namespaces’, e.g. http://efreight.sti2.at/ontology/crs/Shipment AddType application/rdf+xml .owl RewriteEngine On RewriteBase /crs RewriteRule ^crs/.+ crs/ [R=303] RewriteRule ^crs/$ crs.owl
Redirect to SPARQL Query • Server-side configuration (.htaccess file) RewriteCond %{HTTP_ACCEPT} text/html RewriteRule ^crs/(.+) http://dbpedia.org/$1 [R=303] RewriteCond %{HTTP_ACCEPT} application/rdf\+xml RewriteRule ^crs/(.+) http://dbpedia.org/sparql?query=DESCRIBE+<http://dbpedia.org/$1> [R=303]
Summary • Dereferencable URIs for all concept in the ontology • 303 Redirect to the Ontology if a concept is accessed • Possible to separate the namespace with a slash (/) or a hash (#) • Content Negotiation with fallback type • Redirecting to SPARQL Query