Re: question on domain

On Apr 21, 2006, at 9:35 AM, Johnson, Matthew C. ((LNG-ALB)) wrote:
> I think I am hearing that rdfs:domain is not intended as a  
> mechanism to
> validate an instance of a class but to assist in inferencing or as the
> primer puts it "to further describe application-specific properties"
> where the inferencing would be "application-specific".

IMHO, RDF/RDFS/OWL are not well suited to proving validity, due to  
the open world assumption.  There are usually too many possibilities  
to prevent any incorrect interpretations.

On the other hand, it does just fine with consistency.  The only  
trick is that people are often surprised that many constructs can be  
considered consistent... again due to the open world assumption.  As  
an example, I first learnt this when I discovered that (under OWL) a  
predicate with cardinality of 1 for class C can be used multiple  
times on a single instance of C.

> Does RDF or RDFS have a mechanism for enforcing/validating the
> properties that compose a class?  This seems related to the question
> stated below.

Under RDF/RDFS I would say not (though I'm prepared to hear an  
alternative point of view).  RDF/RDFS lets you specify what you know  
about a class.  But the open world assumption says that anything else  
*could* be associated with the class.  I don't know any way in RDFS  
to say that something is not associated with a class.

It *is* possible to say that a predicate cannot be associated with a  
class under OWL.  One way would be to define the domain of the  
predicate as a class that is the complement of the class in question.

Alternatively, you could allow the predicate to have the class as a  
domain, but then restrict the cardinality to 0.  I'm less comfortable  
with this though, as it doesn't use the type system to say anything  
about the association of the predicate with the class, but the  
practical consequences are similar.

As a postscript: if you have class A as the domain of P, and you want  
P to also apply to class B, then consider making A and B subclasses  
of a new class "C", and make the domain of P apply to C only.  This  
will lead to the sort of RDFS inferencing that you'd expect.

Regards,
Paul Gearon


> -----Original Message-----
> From: semantic-web-request@w3.org [mailto:semantic-web-request@w3.org]
> On Behalf Of Peter F. Patel-Schneider
> Sent: Friday, April 21, 2006 9:54 AM
> To: fmanola@acm.org
> Cc: ujohnmc@ReedElsevier.com; semantic-web@w3.org
> Subject: Re: question on domain
>
>
> From: Frank Manola <fmanola@acm.org>
> Subject: Re: question on domain
> Date: Fri, 21 Apr 2006 09:51:21 -0400
>
>> Johnson, Matthew C. (LNG-ALB) wrote:
>>> Hello,
>
> [...]
>
>>> Based on my understanding, one can define a property and then
> specify
>>> the domain for that property which is the list of classes in which
> that
>>> property is allowed.
>>
>> Not quite.  As several other responders have noted, specifying the
>> domain doesn't *disallow* use of the property with instances of other
>> classes.  What it does is license inferences about what classes your
>> instance is also a member of, based on the domain declaration.  You
> are
>> free to disregard those inferences if you don't think they are
>> appropriate.
>
> Huh?  Do you actually mean that you can legitimately use RDF(S) and
> ignore
> the meaning its constructs?
>
> [...]
>
>> --Frank
>
> Peter F. Patel-Schneider
> Bell Labs Research
>
>

Received on Friday, 21 April 2006 16:50:31 UTC