Data URIs

I'm finding them more and more appealing. So, supposed I have an axiom:

    <owl:ObjectProperty rdf:about="#has_direct_part">
         <rdfs:subPropertyOf rdf:resource="#has_part"/>
     </owl:ObjectProperty>


And I want to annotate it. I'm proud of it. Here's a data uri:

<data:application/rdf+xml,%3C%3Fxml%20version%3D%221.0%22%3F%3E%0A%3C% 
21DOCTYPE%20rdf%3ARDF%20%5B%0A%20%20%20%20%3C%21ENTITY%20owl%20%22http 
%3A//www.w3.org/2002/07/owl%23%22%20%3E%0A%20%20%20%20%3C%21ENTITY% 
20owl2%20%22http%3A//www.w3.org/2006/12/owl2%23%22%20%3E%0A%20%20%20% 
20%3C%21ENTITY%20xsd%20%22http%3A//www.w3.org/2001/XMLSchema%23%22%20% 
3E%0A%20%20%20%20%3C%21ENTITY%20owl2xml%20%22http%3A//www.w3.org/ 
2006/12/owl2-xml%23%22%20%3E%0A%20%20%20%20%3C%21ENTITY%20rdfs%20% 
22http%3A//www.w3.org/2000/01/rdf-schema%23%22%20%3E%0A%20%20%20%20%3C 
%21ENTITY%20rdf%20%22http%3A//www.w3.org/1999/02/22-rdf-syntax-ns%23% 
22%20%3E%0A%20%20%20%20%3C%21ENTITY%20worm-wikipedia%20%22http%3A// 
www.cs.man.ac.uk/%7Ebparsia/ontologies/2008/anatomy/worm-wikipedia.owl 
%23%22%20%3E%0A%5D%3E%0A%3Crdf%3ARDF%20xmlns%3D%22http%3A// 
www.cs.man.ac.uk/%7Ebparsia/ontologies/2008/anatomy/worm-wikipedia.owl 
%23%22%0A%20%20%20%20%20xml%3Abase%3D%22http%3A//www.cs.man.ac.uk/% 
7Ebparsia/ontologies/2008/anatomy/worm-wikipedia.owl%22%0A%20%20%20% 
20%20xmlns%3Aowl2xml%3D%22http%3A//www.w3.org/2006/12/owl2-xml%23%22% 
0A%20%20%20%20%20xmlns%3Aworm-wikipedia%3D%22http%3A// 
www.cs.man.ac.uk/%7Ebparsia/ontologies/2008/anatomy/worm-wikipedia.owl 
%23%22%0A%20%20%20%20%20xmlns%3Axsd%3D%22http%3A//www.w3.org/2001/ 
XMLSchema%23%22%0A%20%20%20%20%20xmlns%3Aowl2%3D%22http%3A// 
www.w3.org/2006/12/owl2%23%22%0A%20%20%20%20%20xmlns%3Ardfs%3D%22http% 
3A//www.w3.org/2000/01/rdf-schema%23%22%0A%20%20%20%20%20xmlns%3Ardf% 
3D%22http%3A//www.w3.org/1999/02/22-rdf-syntax-ns%23%22%0A%20%20%20% 
20%20xmlns%3Aowl%3D%22http%3A//www.w3.org/2002/07/owl%23%22%3E%0A%20% 
20%20%20%3Cowl%3AOntology%20rdf%3Aabout%3D%22%22%3E%0A%20%20%20%20%3C/ 
owl%3AOntology%3E%0A%20%20%0A%20%20%20%20%3Cowl%3AObjectProperty%20rdf 
%3Aabout%3D%22%23has_direct_part%22%3E%0A%20%20%20%20%20%20%20%20% 
3Crdfs%3AsubPropertyOf%20rdf%3Aresource%3D%22%23has_part%22/%3E%0A%20% 
20%20%20%3C/owl%3AObjectProperty%3E%0A%3C/rdf%3ARDF%3E>

Ok, I hear the laughter and the shrieks of outrage :)

This wasn't the nicest serialization*, but it works. It's reversible.  
And now we have a URI for an RDF subgraph. data uris are implemented  
in major browsers and have an ITEF RFC. They clearly are not for hand  
authoring or reading, but neither is reification. If we chose  
ntriples or turtle as the base, it would be somewhat terser. If we  
have a normalization, we could be pretty sure of getting the same URI  
for the same syntactic expression (trickiness there!). You can use  
that anywhere you'd use an URI, so the subject or object of a triple.  
It would nest (double encoding doesn't cause a blowup.

Using literals is a bit easier to write by hand.

Cheers,
Bijan.

* Here's what I turned into a uri.:
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [
     <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
     <!ENTITY owl2 "http://www.w3.org/2006/12/owl2#" >
     <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
     <!ENTITY owl2xml "http://www.w3.org/2006/12/owl2-xml#" >
     <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
     <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
     <!ENTITY worm-wikipedia "http://www.cs.man.ac.uk/~bparsia/ 
ontologies/2008/anatomy/worm-wikipedia.owl#" >
]>
<rdf:RDF xmlns="http://www.cs.man.ac.uk/~bparsia/ontologies/2008/ 
anatomy/worm-wikipedia.owl#"
      xml:base="http://www.cs.man.ac.uk/~bparsia/ontologies/2008/ 
anatomy/worm-wikipedia.owl"
      xmlns:owl2xml="http://www.w3.org/2006/12/owl2-xml#"
      xmlns:worm-wikipedia="http://www.cs.man.ac.uk/~bparsia/ 
ontologies/2008/anatomy/worm-wikipedia.owl#"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
      xmlns:owl2="http://www.w3.org/2006/12/owl2#"
      xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:owl="http://www.w3.org/2002/07/owl#">
     <owl:Ontology rdf:about="">
     </owl:Ontology>

     <owl:ObjectProperty rdf:about="#has_direct_part">
         <rdfs:subPropertyOf rdf:resource="#has_part"/>
     </owl:ObjectProperty>
</rdf:RDF>

Received on Wednesday, 2 July 2008 18:54:31 UTC