- From: Minsu Jang <minsu@etri.re.kr>
- Date: Tue, 13 Dec 2005 10:42:29 +0900
- To: Jim Hendler <hendler@cs.umd.edu>, W3C RIF WG <public-rif-wg@w3.org>
Thanks for commenting. I have considered what Jim pointed out, and tried to elaborate the use case. Unfortunately, I have no idea of how 'uncle' could be defined generally in OWL, so I tried my version of 'uncle' definition in OWL. I realize that the following elaboration has many weaknesses. But I hope this helps generate a valuable discussion. ;-) --------------<begin>----------------- When building ontologies using OWL, we usually come up with such relations or classes that are difficult to represent in OWL, which causes vocabulary holes in the ontologies. The most representative hole is the set of relations that are defined by chained properties[1][2]. For example, with OWL alone, it's not feasible to represent "uncle" relation in a general way. One possible way of representing "uncle" is shown below. ObjectProperty(hasSibling Symmetric) Class(Man partial Human) Class(Parent partial Human restriction(hasChild someValuesFrom(Human))) Class(Uncle partial Man restriction(hasSibling someValuesFrom(Human))) Individual(Sam type(Human)) Individual(Bob type(Parent) value(hasChild Sam) value(hasSibling John)) Individual(John type(Uncle)) With the above axioms, we can discover that John actually can be in Uncle class as John is a sibling of Bob who has at least one child. But unfortunately, we cannot derive the fact that "John is an uncle of Sam"! We have to explicitly specify the relation between the two. The revised version of the above definition follows. ObjectProperty(isUncleOf inverseOf(hasUncle)) ObjectProperty(hasSibling Symmetric) Class(Parent partial Human restriction(hasChild someValuesFrom(Human))) Class(Uncle partial Human restriction(hasSibling someValuesFrom(Human)) restriction(isUncleOf someValueFrom(Human))) Individual(Sam type(Human)) Individual(Bob type(Parent) value(hasChild Sam) value(hasSibling John)) Individual(John type(Uncle) value(isUncleOf Sam)) As such, with OWL, we cannot represent 'uncle' relations among individuals without explicitly specifying each and every of those relations. If you had N individuals each of which with M uncles, you have to write N*M sentences to say 'uncle' relations among them. This is infeasible considering that all the 'uncle' relations can be inferred from other basic relations. With rules, it's trivial to describe "uncle" relation in a general way, with which all the 'uncle' relations between relevant individuals can be inferred. Take the following OWL sentences and a rule for example. ObjectProperty(hasSibling Symmetric) Class(Human partial restriction(hasSibling allValuesFrom(Human))) Class(Man partial Human) Class(Parent partial Human restriction(hasChild someValuesFrom(Human))) Individual(Sam type(Human)) Individual(John type(Man)) Individual(Bob type(Human) value(hasChild Sam) value(hasSibling John)) Uncle001: hasUncle(?x,?y) :- hasChild(?z,?x) ^ hasSibling(?z,?y) ^ Man(?y) Now, you don't have to enumerate any "uncle" relation instances as they are derived by the added rule. The above rule can be used to infer that "Sam has an uncle John", which saves many sentences if it were to be described in OWL only. Moreover, you don't need all the unnatural tweaks that were introduced into the OWL ontology to express "uncle" relation. In summary, RIF will be an essential semantic web tool that complements OWL in representing data semantics in a standardized, interchangeable way. ------------------<end>--------------------- Cheers, Minsu On 2005.12.12 2:39 AM, "Jim Hendler" <hendler@cs.umd.edu> wrote: > > At 19:57 +0900 12/11/05, Minsu Jang wrote: >> This use case is too obvious that it might not be obvious to cast it as a >> use case, but I'll try. >> >> ** ETRI-UC1: Filling the holes of OWL >> >> When building ontologies using OWL, we usually come up with such relations >> or classes that are difficult or impossible to express in OWL, which creates >> vocabulary holes in the ontologies. The most representative hole is the set >> of relations that can be defined by chained properties[1][2]. For example, >> with OWL alone, you cannot describe "uncle" relation, which is the >> composition of "father" and "brother" relation, into the family ontology. >> With rules, it's trivial to describe the relations defined by chained >> properties. As such, RIF will be an essential semantic web language that >> complements and extends OWL. >> >> [1] OWL Web Ontology Language Use Cases and Requirements, W3C Recommendation >> 10 Feb 2004 >> [2] Benjamin N. Grosof, Ian Horrocks, Raphael Volz, and Stefan Decker. >> Description logic programs: Combining logic programs with description logic. >> In Proc. of the Twelfth International World Wide Web Conference (WWW 2003), >> pages 48-57. ACM, 2003. >> >> Regards, >> Minsu >> > > Actually, let us be clear here - it is easy to come up with a > definition of uncle in OWL and one can even rule out inconsistent > cases using a DL reasoner (for example, I could discover it was > inconsistent for Bob to be in a "no siblings" class if I knew Bob was > in the uncle class). What each of the various approaches can do with > "uncle" is actually quite complicated, gets into issues of grounded > literals and other such things (i.e. many rule systems can't find all > uncles because you may need unsafe reasoning to remain decidable) -- > I don't object to the thrust of the use case about doing things OWL > cannot, but this canard about "not doing uncle" is a misunderstanding > of something Ian Horrocks said in some email to the Web Ontology > Working Group (i.e. it's been taken out of context) and needs to be > much more carefully elucidated if you want to use it in a use case... ---------- Minsu Jang Senior Researcher Intelligent Robot Research Division Electronics & Telecommunications Research Institute Phone: +82-42-860-1250 Fax: +82-42-860-6790 ** Bossam Rule Engine: http://mknows.etri.re.kr/bossam/ **
Received on Tuesday, 13 December 2005 01:42:43 UTC