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/