- From: Benjamin Nowack <bnowack@appmosphere.com>
- Date: Tue, 4 May 2004 22:06:59 +0200
- To: "Phil Dawes" <pdawes@users.sourceforge.net>
- Cc: www-rdf-interest@w3.org
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