- From: Loris Bozzato <loris.bozzato@uninsubria.it>
- Date: Sat, 31 Jan 2009 04:22:24 +0100
- To: public-owl-dev@w3.org
- Message-ID: <983963990901301922t5776c385h3528c05dd88f443a@mail.gmail.com>
Dear All, I'm trying to solve a modelling problem for an OWL-DL ontology, for which I still have not found a known solution. As we are looking for proposing this ontology as a general reference and as it should be used for future projects, I'm trying to get a clean and semantically sound solution. I'd like to model the fact that every instance of a class C has as value of the property P every instance of a class D. In other words, I'm looking for something analogous to the hasValue restriction, in which, in place of declaring the relation to a single individual, I could declare the relation to every individual belonging to a certain class. This problem is similar to the "Class as values" problem, for which I found many solutions eg. in [1,2] and to the problem raised in this list with the message [3]. In practice, the problem has emerged by working on a medical ontology (for dentistry): for example, how can I express that a specific class of diseases can affect any (kind of) tooth? The only reasonable solution I tought (that is an adaption of an usual solution for the "Class as values" problem) is to have a "representative" individual for each class. The individual is "related" to its class by an hasValue restriction on a hasClassRep property. For example, the class Tooth can be defined as: Class: Tooth EquivalentTo: hasClassRep VALUE tooth_rep Then, the relation between classes is expressed as an hasValue restriction over this individual. For example, the class TSD (a kind of tooth anomalies) can be represented as: Class: TSD EquivalentTo: isAnomalyOf VALUE tooth_rep The problem is that queries and definitions of range, domain and restrictions for properties become quite intricate, as one must always consider the possibility of these "indirect" relations. I think that by using SWRL the problem can be easily solved just by defining a rule like the following one (in Prolog-like notation): isAnomalyOf(X,Y) :- TSD(X), Tooth(Y). However, for the requirements of our project, I'd rather not go outside OWL.. Has anyone some better idea? Thanks in advance for any comment or suggestion, Loris Bozzato -- [1] N. Noy. Representing classes as property values on the semanticweb. W3C note, W3C, Apr. 2005. http://www.w3.org/TR/2005/NOTE-swbp-classes-as-values-20050405 [2] K. Supekar, C. G. Chute, and H. Solbrig. Representing lexical components of medical terminologies in owl. In AMIA Annual Symposium Proceedings, pages 719-23. American Medical Informatics Association, 2005. [3] "Specifying that an individual has a set of values" http://lists.w3.org/Archives/Public/public-owl-dev/2007JulSep/0126.html -- Loris Bozzato - PhD student Dipartimento di Informatica e Comunicazione Università degli Studi dell'Insubria, Varese, Italy Tel: (+39) 0332 218949 - Fax: (+39) 0332 218919 Mail: loris.bozzato@uninsubria.it Web: http://www.dicom.uninsubria.it/~loris.bozzato/<http://www.dicom.uninsubria.it/%7Eloris.bozzato/>
Received on Saturday, 31 January 2009 19:59:52 UTC