Re: Ways to restrict the properties a class may have?

>
> From: Jan Algermissen <jalgermissen@topicmapping.com>
>> Chris Purcell wrote:

>> > [ex:numberOfWindows rdfs:domain ex:somethingWithWindows]
>> > [ex:somethingWithWindows owl:disjointWith ex:employee]
>> >
>> > Is that reasonable?
>>
>> Hmm...not really. My point is that I want to develop a system that loads
>> the constraints and rejects 'broken' updates. This is just like RDBMSs
>> keep data
>> from becoming 'incorrect' (according to the constraints). I want to
>> avoid having to develop extra checking code.
>
> Huh?  Why would a system that checks to see if an inconsistency results
> from a update and rejects such updates not satisfy your requirements?
>
> For example,
> ex:numberOfWindows rdfs:domain ex:somethingWithWindows .
> ex:somethingWithWindows owl:disjointWith ex:employee .
>
> ex:Jan rdf:type ex:employee .
> ex:Jan numberOfWindows "5"^^xsd:int .
>
> is inconsistent (in OWL) and an OWL reasoner can detect this.
>
>> Basically, I want business rules (aka constraints) expressed as RDF.
>
> Again, I don't understand what is lacking.
>
>> I could of course develop my own vocabulary for this, but something
>> standardized would be better.

For basic consistency checking some of what you want is available in owl,
as explained by Peter and Chris already. Some more of what you want is
presumably available in your own query - if you are looking at
information, just don't look for things that you are not going to believe
anyway.

i.e. if I say

ex:Jan :ageInDogYears "55"^^xsd:int

and your query doesn't look for :ageInDogYears then you have no problems
that I can see.

The problem is more likely to arise where you already record information like

ex:Jan :age "24"^^myTypes:years

and I make some statement that relates ageInDogYears to this - then a
reasoner would actually believe my statement. I think the solution to this
is the same as the solution to someone saying something that is plain
wrong, like

ex:Jan r:type astro:BlackHole

which is not consistent with what you believe. In that case you might like
to use some of the trust work to actively filter out statements before you
bother working with them.

Here there are a couple of approaches - you can look for things that have
been signed with a signature you trust, a la foafbot - effectively
whitelist filtering. You could also list statements that you don't believe
when you fin them - blacklisting. Finally you could delare some
information as what you trust, and blacklist anything that raises a
conflict with it. There is currently no "standardised" appraoch to doing
this. Essentially it relies on being able to identify a collection of (one
or more) statements - there are a bunch of approaches to doing this that
people are using at the moment.

cheers

Chaals

Received on Friday, 29 October 2004 17:29:13 UTC