Search Mailing List Archives
[protege-owl] equivalent class and N-ary Relations
Arnab Sinha
sinharnab at gmail.com
Mon Feb 20 02:29:44 PST 2012
Thanks Tim for the explanation. Yes it help me and confirmed that it's
working the way I wanted. Then the error to my problem lies elsewhere.
Could you please suggest something?
I created few relations by using two basic relations(Diagnosis_Relation_20
and Fever_Relation_20) by varying the diag_prob values.
Diagnosis_Relation_x is a relation to link any disease with probablity >=x
and Fever_Relation_y is a relation to link Fever with a probablity >= y.
The definition for the classes with diag_prob>=20 is as follows:
Class: Diagnosis_Relation_20
EquivalentTo:
(diagnosis_value some Disease)
and (diag_prob only xsd:int[>= 20])
SubClassOf:
Relations
Class: Fever_Relation_20
EquivalentTo:
(diagnosis_value some Fever)
and (diag_prob only xsd:int[>= 20])
SubClassOf:
Relations
Next, I defined two classes of patients depending on the disease they have.
Having only Fever>=80 is minor whereas having some Disease>=70 accompanied
with Fever>=30 is considered serious. Definitions as below:
Class: Minor_Patient
EquivalentTo:
has_diagnosis only Fever_Relation_80
Class: Serious_Patient
EquivalentTo:
has_diagnosis only
(Diagnosis_Relation_70
and Fever_Relation_30)
Now the problem is some patients are not being categorized as required. Fow
example, individual Beth is reasoned to be Serious_Patient correctly but
individual John is reasoned to be both Serious and Minor. How can I avoid
John to be reasoned as Minor_Patient? The definitions of the indiviuals are:
Individual: Beth
Types:
Patients,
has_diagnosis only
(Diagnosis_Relation_70
and Fever_Relation_50)
Individual: John
Types:
Patients,
has_diagnosis only
(Diagnosis_Relation_80
and Fever_Relation_50)
I'm attaching the ontology to look into. Please let me know where I'm
possibly wrong and suggest me some better workaround if this is not the
correct approach.
Cheers,
- Arnab.
On Thu, Feb 16, 2012 at 9:00 PM, <protege-owl-request at lists.stanford.edu>wrote:
> It sounds like you are talking about something like the attached
> ontology. (I used the Manchester syntax for clarity.) This ontology
> has two definitions:
>
> Class: Diagnosis_Relation_20
>
> EquivalentTo:
> (diagnosis_value some Disease)
> and (diag_prob only xsd:int[>= 20])
>
>
> Class: Diagnosis_Relation_40
>
> EquivalentTo:
> (diagnosis_value some Disease)
> and (diag_prob only xsd:int[>= 40])
>
>
>
> In this case it can be deduced that Diagnosis_Relation_40 is a subclass
> of Diagnosis_Relation_20.
>
> Putting this into English, I would say that Diagnosis_Relation_40 is the
> class containing all individuals that have a diagnosis_value that
> belongs to the Disease class and such that all their diag_prob values
> are integers greater than or equal to 40.
>
> Suppose that we have an individual 'i' that is a member of
> Diagnosis_Relation_40. Since the individual 'i' has all its diag_prob
> values greater than or equal to 40, it also follows that all the
> diag_prob values for the individual 'i' are also integers greater than
> or equal to 20. Thus 'i' satisfies the requirements for belonging to
> Diagnosis_Relation_20: all its dig_prob values are integers greater
> than or equal to 20 and it has some diagnosis_value in the Disease class.
>
> Does this help?
>
> -Timothy
>
>
>
>
> On 2/16/12 9:29 AM, Arnab Sinha wrote:
> > Hi All,
> > Here is a situation I would like to present before I put forward my
> > question:
> > I tried some minor modifications to the N-ary relations using "Use
> > Case 1" in http://www.w3.org/TR/swbp-n-aryRelations/ . I required a
> > numerical probability value (like int[>= 40]) instead of discrete
> > values (like High, Medium or Low) and so took the
> > "diagnosis_probablity" as a data property.
> > Now I defined two connecting classes "Diagnosis_Relation_20" and
> > "Diagnosis_Relation_40" as equivalent classes which differs in the
> > minimum probability value. The definition of the class
> > Diagnosis_Relation_20 in OWL is as follows:
> >
> > <owl:Class
> > rdf:about="
> http://protege.stanford.edu/swbp/diagnosis.owl#Diagnosis_Relation_20">
> > <owl:equivalentClass>
> > <owl:Class>
> > <owl:intersectionOf rdf:parseType="Collection">
> > <owl:Restriction>
> > <owl:onProperty
> > rdf:resource="
> http://protege.stanford.edu/swbp/diagnosis.owl#diagnosis_value"/>
> > <owl:someValuesFrom
> > rdf:resource="http://protege.stanford.edu/swbp/diagnosis.owl#Disease"/>
> > </owl:Restriction>
> > <owl:Restriction>
> > <owl:onProperty
> > rdf:resource="http://protege.stanford.edu/swbp/diagnosis.owl#diag_prob
> "/>
> > <owl:allValuesFrom>
> > <rdfs:Datatype>
> > <owl:onDatatype rdf:resource="&xsd;int"/>
> > <owl:withRestrictions rdf:parseType="Collection">
> > <rdf:Description>
> > <xsd:minInclusive rdf:datatype="&xsd;integer">20</xsd:minInclusive>
> > </rdf:Description>
> > </owl:withRestrictions>
> > </rdfs:Datatype>
> > </owl:allValuesFrom>
> > </owl:Restriction>
> > </owl:intersectionOf>
> > </owl:Class>
> > </owl:equivalentClass>
> > </owl:Class>
> >
> > Now, invoking the reasoner infers class Diagnosis_Relation_20 as
> > superclass of Diagnosis_Relation_40. I am unable to understand the
> > explanation of this inference. It seems something obvious but I want
> > to get the detailed explanation. If someone can help me out, it would
> > be really nice.
> > Have a good day!
> >
> > Thanks in advance,
> > Arnab.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.stanford.edu/pipermail/protege-owl/attachments/20120220/0c6487b0/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: diagnosis.owl
Type: application/octet-stream
Size: 4167 bytes
Desc: not available
URL: <http://mailman.stanford.edu/pipermail/protege-owl/attachments/20120220/0c6487b0/attachment-0001.owl>
More information about the protege-owl
mailing list