- From: <charles@w3.org>
- Date: Fri, 29 Oct 2004 13:29:13 -0400 (EDT)
- To: "Peter F. Patel-Schneider" <pfps@research.bell-labs.com>
- Cc: algermissen@acm.org, jalgermissen@topicmapping.com, cjp39@cam.ac.uk, www-rdf-interest@w3.org, b.fallenstein@gmx.de
> > 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