On Nov 18, 2008, at 1:32 AM, Ian Davis wrote:
On Tue, Nov 18, 2008 at 4:02 AM, Tim Berners-Lee <[EMAIL PROTECTED]> wrote:
On 2008-11 -17, at 11:27, John Goodwin wrote:
[...]
I'd be tempted to generalise or just remove the domain/range
restrictions. Any thoughts?
There are lots of uses for rand and domain.
One is in the user interface -- if you for example link a a person
and a document, the system
can prompt you for a relationship which will include "is author of"
and "made" but won't include foaf:knows or is issue of.
Similarly, when making a friend, one can us autocompletion on labels
which the current session knows about and simplify it by for example
removing all documents from a list of candidate foaf:knows friends.
Both these use cases require some OWL to say that documents aren't
people. I don't see these scenarios being feasible in the general
case because you'd need a complete description of the world in OWL,
i.e. you'd want to know about everything that can't possibly be a
person.
But this is true for OWL in general anyway. If you really need to
tighten down your type (a la the RDBMS world) then you do need to
describe things as disjoint (either explicitly, or through other
mechanisms such as the subclass of a complement).
Using OWL still has a lot of utility, but if you absolutely require
this level of description, then perhaps a relational database would be
more appropriate for the application at hand. (The right tool for the
right job, and all that) :-)
It is of course also important for checking hand-written files for
validity.
Again, isn't validity checking something that can only be done with
OWL. RDFS only adds for information.
Agreed.
The most common example I see of this is people thinking that if I say
that ns:name has a domain of ns:Person, then it will be an error to
give a ns:name to a ns:Dog. Instead, it just means that Fido becomes
both a ns:Person and a ns:Dog (and I'm sure that you, like me, have
had to explain why a reasoner has not reported this as an error). This
appears to be one of the reasons why many applications choose separate
URIs for predicates when applied to different types (e.g. ns:Person/
name and ns:Dog/name), thereby sidestepping many of the issues.
While I'm here, I also noticed Tim Finin referring to "domain and
range constraints". Personally, I don't see the word "constraint" as
an appropriate description, since rdfs:domain and rdfs:range are not
constraining in any way.
Regards,
Paul Gearon