Re: less-restrictive range and domain terms

On 04.05.2004 15:51:52, Phil Dawes wrote:
>
>Hi All,
>
>I've recently found myself wanting a less-restrictive version of
>rdfs:range (or owl:allValuesFrom) and rdfs:domain. I want to say
>'property *can* have range of class foo' rather than 'property *must*
>have range of class foo'.
>
>I first came across this requirement with my veudas RDF browser when
>consuming RDF without schema information. Hints like 'can have range'
>help when rendering the editing UI. They can also be inferred easily
>from the RDF.

hmm, not 100% sure about this (it's either OWL fullish or OWL foolish ;),
but if your tool is RDF-based and you're doing some kind of "incremental
schema generation" or just want to optimize the tools usability, you 
could maybe use OWL to store/keep additional information about certain 
properties:

let's say, your tool comes across the following statement but has
never heard of FOAF or can't read/find the rdfs doc:

   :p1 foaf:knows :p2
   :p3 foaf:knows :p4

you could auto-generate an unrestriced description for foaf:knows:

   <rdf:Property rdf:about="&foaf;knows">
      <rdfs:range>
         <owl:Class>
            <owl:unionOf rdf:parseType="Collection">
                  <!- can a collection have a single item? -->
               <owl:Class rdf:about="&rdfs;Resource"/>
            </owl:unionOf>
         </owl:Class>
      </rdfs:range>
   </rdf:Property>

this should not change the meaning of the foaf spec so far
(open world blabla), for if you later find and add the statements
from the official foaf spec:

   <rdfs:range rdf:resource="&foaf;Person"/>

the multiple range restrictions are interpreted as
intersection, resulting in the one from the foaf
schema.

but let's assume your tool finds

   :p2 rdf:type ex1:SoftwareDeveloper
   :p4 rdf:type ex2:PopStar

then you could extend your range list:

   <rdf:Property rdf:about="&foaf;knows">
      <rdfs:range>
         <owl:Class>
            <owl:unionOf rdf:parseType="Collection">
               <owl:Class rdf:about="&rdfs;Resource"/>
               <owl:Class rdf:about="&ex1;SoftwareDeveloper"/>
               <owl:Class rdf:about="&ex2;PopStar"/>
            </owl:unionOf>
         </owl:Class>
      </rdfs:range>
   </rdf:Property>

this is obviously redundant information but OWL tools should
be able to process it. Once you know the foaf spec you can
replace rdfs:Resource with foaf:Person.

w.r.t your editing tool, you could now display the "shortcuts"

   "add another ex1:SoftwareDeveloper to your foaf:knows relations"
   "add another ex2:PopStar to your foaf:knows relations"

in your GUI, possibly offering a restriced list of resources to 
pick from, or an optimized input form, ... 


just some thoughts. note that it would be quite easy to confuse
the tool by just feeding it inconsistent instance data..

benjamin

--
Benjamin Nowack

Kruppstr. 100
45145 Essen, Germany

Received on Tuesday, 4 May 2004 16:06:33 UTC