DocumentObjects - was: Squaring the HTTP-range-14 circle

On 16 Jun 2011, at 21:34, Henry Story wrote:

>> 
>> [snip]
>> <http://richard.cyganiak.de/>
>>   a foaf:Document;
>>   dc:title "Richard Cyganiak's homepage";
>>   a foaf:Person;
>>   foaf:name "Richard Cyganiak";
>>   owl:sameAs <http://twitter.com/cygri>;
>>   .
> 
> so instead of using foaf:knows to relate a person and a document, create a docfriend ontology and have it relate a 
> document that describes you to a number of attributes about you
> 
> <http://richard.cyganiak.de/> a foaf:Document;
>    dofoaf:name "Richard Cyganiak";
>    dc:title: "Richard Cyganiak's homepage";
>    dofoaf:knows <http://bblfish.net/> .
> 
> Then you just need rules such as 
> 
> { ?pg docfriend:name ?nm } <=> { ?pg foaf:primaryTopic ?p . ?p foaf:name ?nm } 

So if you want to turn this into a pattern I think you could do it quite easily.

Create a subset of ontologies 

do:DocumentObjectOntology owl:subClassOf owl:Ontology .

These would be related to the DocumentObject concept

do:DocumentObject a owl:Class;
   owl:subClassOf foaf:Document, xx:InformationResource;
   rdfs:comment "a document with exactly one primary topic." .

So then all you need to do is to restrict yourself in the ontologies you write
to ontologies of type do:DocumentObjectOntologies. In those ontologies you would
have the following types of properties:

do:documentProperty rdfs:subPropertyOf rdf:Property;
     rdfs:domain foaf:Document; 
     rdfs:comment "a property that relates a document to something" .

do:documentObjectProperty rdfs:subPropertyOf rdf:Property;
     rdfs:domain foaf:Document; 
     rdfs:comment "a property that relates the foaf:primarytopic of the document to something";
     
do:documentObject2Property rdfs:subPropertyOf rdf:Property;
     rdfs:comment "a property that relates the foaf:primarytopic of the subject document to the foaf:primaryTopic o fthe second document";
     rdfs:domain foaf:Document; 
     rdfs:range foaf:Document .

Then it would be easier to know which relations are relating the document, and which are relating the
object the document is about. So

   dofoaf:name a do:documentObjectProperty .
   dofoaf:knows a do:documentObject2Property .
   dc:title a do:documentProperty .

There could be variations on this of course. In any case the effect from the point of view of the user is that he
would be able to work with these ontologies quite nicely without ever learning the distinction between object and document - so long as he restricted himself to 1 object per document, which I believe it is being argued here most documents (other than portal pages) do anyway.

The nice thing is that this does not require any webarch changes, it just requires people to write adapted ontologies. And if there is a problem of adoption it can be discovered very quickly.
 
 
Henry
   



Social Web Architect
http://bblfish.net/

Received on Thursday, 16 June 2011 21:29:44 UTC