Hi Robert,

it looks to me that you do not need any fancy features to derive the intended 
inferences - since you have two (mutually exclusive) kind of facts that will be 
present there is no need to make things overcomplicated.

Let me give you a simplified example how you could achieve that using the 
Examination/Symptom/Diagnosis domain (the example rdf is attached):

1. Lets define a class ex:Symptom which and populate it with few instances: 
ex:SymptomA, ex:SymptomB and ex:SymptomC

2. Then we could model the presence/absence of some symptom using two 
additional classes: ex:SymptomPresent and ex:SymptomNotPresent (and optionally 
define those disjoint)

3. The main idea is to use two (mutually exclusive) properties to state a 
particular presence or absence of some symptom during a medical examination, 
lets name those propeties: ex:haveSymptom and ex:doesNothaveSymptom

4. for each of the Symptom instances, we define a pair of subclasses of, 
repsectively,  ex:SymptomPresent and ex:SymptomNotPresent which are modelled as 
owl:hasValue owl:Restrictions over the above two properties, e.g. for 
ex:SymptomA, those look like:

    ex:HaveSymptomA rdfs:subClassOf ex:SymptomPresent ;
       rdf:type owl:Restriction ;
       owl:onProperty ex:haveSymptom ;
       owl:hasValue ex:SymptomA .

    ex:DoesNOTHaveSymptomA rdfs:subClassOf ex:SymptomNotPresent ;
       rdf:type owl:Restriction ;
       owl:onProperty ex:doesNothaveSymptom ;
       owl:hasValue ex:SymptomA .   

that way, when you assert a ex:haveSymptom or ex:doesNothaveSymptom relation 
between something (Examination instance) and a particular Symptom, then that 
Examination will be classified as instance of some of the above Restrictions.

5. Then you could model a combination of presence/absence of Symptoms as 
instances of some top ex:Diagnosis class e.g.

ex:Diagnosis rdf:type rdfs:Class .

ex:Diagnosis_haveAnotB rdf:type ex:Diagnosis ;
 owl:intersectionOf (
 ex:HaveSymptomA
 ex:DoesNOTHaveSymptomB
 ) .

ex:Diagnosis_haveCnotA rdf:type ex:Diagnosis ;
 owl:intersectionOf (
 ex:HaveSymptomC
 ex:DoesNOTHaveSymptomA
 ) .

.... and so on ... 

Having such model of the domani, then an instance of a medical examination 
could be used to group together the data about the person examined and the 
presence / absence of symptoms, which due to the inference, will be classified 
as instance of a particular Diagnosis, as defined above. If the right relations 
are asserted, e.g (like these below.:

ex:Person rdf:type rdfs:Class .
ex:John rdf:type ex:Person .
ex:Marry rdf:type ex:Person .

ex:Examination rdf:type rdfs:Class .
  
[] rdf:type ex:Examination ;  
   ex:about ex:John ;
   ex:haveSymptom ex:SymptomA ;
   ex:doesNothaveSymptom ex:SymptomB .

[] rdf:type ex:Examination ;  
   ex:about ex:Marry ;
   ex:doesNothaveSymptom ex:SymptomA ;
   ex:haveSymptom ex:SymptomC .


You could query about the classified diagnosis using a query that may look like:

prefix ex: <http://example.org/example#>
prefix rdfs:   <http://www.w3.org/2000/01/rdf-schema#>
prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select * where {
 ?ex a ex:Examination .
 ?ex ex:about ?person.
 ?ex a ?diag .
 ?diag rdf:type ex:Diagnosis .
}

which gave me the following resultset when I put the attached RDF into a 
repository preset with "owl-horst-optimized" ruleset:

ex     person     diag
_:node66    ex:John    ex:Diagnosis_haveAnotB
_:node67    ex:Marry    ex:Diagnosis_haveCnotA


Of course, using that approach, you may end with multiple diagnoses for an 
examination in case some diagnosis is a complete subset of another.

Hope that this is of some help to you.

Best,
Damyan Ognyanov
Ontotext AD.


----- Original Message ----- 
  From: Buchmann Robert 
  To: owlim-discussion@ontotext.com 
  Sent: Tuesday, February 01, 2011 9:24 PM
  Subject: Re: [Owlim-discussion] OWLIM-discussion Digest, Vol 25, Issue 4


  Hi,

  From what i understand, the open world assumption means that you cannot 
infer/draw conclusions from the ABSENCE of triples (because they could be added 
in the future).
  In my interpretation this does not mean that you shouldn't draw conclusions 
from NEGATED triples.


  Maybe i was vague about what i call "negated triples". I think it's more 
precise to call them FALSE triples: its when a relationship does NOT hold 
between a subject and an object and i want to explicitly state that, then infer 
based on that statement. Something like:

  :TheSun      :DoesntOrbitAround     :TheEarth

  (i guess i can express falseness like this...and state that :DoesntOrbit is 
disjointPropertywith :DoesOrbit? it just popped in my mind right now)
  However it's a bit too naming-convention-based for my taste. I thought that 
it would be more elegant to assign a context of :False in Sesame:

  :TheSun   :OrbitsAround   :TheEarth   (context :False)

  Since SPARQL allows for filtering based on named graphs (=contexts) it would 
be very easy to separate the False triples from the True (as long as there's no 
inference involved).

  Now coming back to my problem - i'd appreciate a lot an advice about how to 
model the rule i was talking about:

  If X has symptom A, but NOT symptom b => X has diagnosis D.
  (again, not that we dont know that x has symptom b, but rather that we 
explicitly know that x does not have that attribute).

  Thanks,
  Robi



------------------------------------------------------------------------------


  From: "owlim-discussion-requ...@ontotext.com" 
<owlim-discussion-requ...@ontotext.com>
  To: owlim-discussion@ontotext.com
  Sent: Tue, February 1, 2011 7:00:03 PM
  Subject: OWLIM-discussion Digest, Vol 25, Issue 4

  Send OWLIM-discussion mailing list submissions to
      owlim-discussion@ontotext.com

  To subscribe or unsubscribe via the World Wide Web, visit
      http://ontotext.com/mailman/listinfo/owlim-discussion
  or, via email, send a message with subject or body 'help' to
      owlim-discussion-requ...@ontotext.com

  You can reach the person managing the list at
      owlim-discussion-ow...@ontotext.com

  When replying, please edit your Subject line so it is more specific
  than "Re: Contents of OWLIM-discussion digest..."


  Today's Topics:

    1. Re: newbie questions - the sequel: contextual    inferencing and
        mutual exclusive properties (Ivan Peikov)


  ----------------------------------------------------------------------

  Message: 1
  Date: Tue, 1 Feb 2011 17:27:01 +0200
  From: Ivan Peikov <ivan.pei...@ontotext.com>
  Subject: Re: [Owlim-discussion] newbie questions - the sequel:
      contextual    inferencing and mutual exclusive properties
  To: owlim-discussion@ontotext.com
  Cc: Buchmann Robert <buchma...@yahoo.com>
  Message-ID: <201102011727.01931.ivan.pei...@ontotext.com>
  Content-Type: Text/Plain;  charset="iso-8859-6"

  Hi Robi,

  Here are my thoughts on your questions:

  1. Normally, in monotonic rule systems that adhere to the open world 
  assumption (such a OWLIM and the semantic web in general) one doesn't use 
  negations in the rules' premises because knowledge can be added at any time 
  and thus trigger the retraction of previously inferred knowledge from the 
  system. Therefore, allowing negation in the rule language would make the 
  system non-monotonic.
  Even though you are not allowed to express negative assertions in the rules, 
  however, you can achieve the desired behavior query time by forcing the 
  negative constraints in e.g. a SPARQL query.
  As for the context of the inferred triples - indeed OWLIM puts all inferred 
  triples into the so called "implicit" (or also "anonymous") context. There is 
  no system setting that can change that behavior but once again, I believe you 
  don't really need to.

  2. You are looking for owl:propertyDisjointWith. It is implemented in OWL2-RL 
  and OWL2-QL profiles in OWLIM.


  Hope this helps!

  Cheers,
  Ivan

  On Tuesday 01 February 2011 12:39:04 Buchmann Robert wrote:
  > Hi,
  > 
  > 1. Context inferencing.
  > 
  > I noticed that under Sesame (including OWLIM) all inferred triples are
  >  assigned to a new, anonymous context, other than the ones that i assign at
  >  upload time. In other words, you can upload as many named graphs as i
  >  want, but i cannot filter inferred triples based on it.
  > 
  > I came to this while trying to define some custom rules in the PIE files,
  >  in order to simulate a medical differential diagnosis.
  > Something like: If you have symptom A, but NOT symptom b => diagnosis D.
  > Now my problem is how to express negation in a custom rule. Actually im not
  >  sure how to express it in RDF at all.
  > 
  > I was thinking about using the context as a truth value:
  > {:John :hasSymptom :A} with a True context.
  > {:John :hasSymptom :B} with a False context.
  > 
  > Then, to write some custom rules for inferring stuff based on the
  >  context/graph to which each triple belongs.
  > But i couldnt find any reference to context-aware inferring or how to
  >  describe such rules.
  > 
  > Is this possible, is it in the works, is there an alternative to model the
  > explicit negation and draw conclusions based on it?
  > 
  > 2.Mutual exclusive properties.
  > 
  > Does anyone know if there's any OWL construct or modeling pattern for
  >  mutually exclusive properties?
  > Something like
  > 
  > A and B cannot be in both the relations P1 and P2. For now i use a custom
  >  rule like:
  > 
  > A P1 B
  > A P2 B
  > P1 <:MutuallyExclusive> P2
  > ----------
  > A <:InconsistentRelationWith> B
  > 
  > Is there a special construct or pattern in OWL that already does this?
  > 
  > Thanks,
  > Robi
  > 


  ------------------------------

  _______________________________________________
  OWLIM-discussion mailing list
  OWLIM-discussion@ontotext.com
  http://ontotext.com/mailman/listinfo/owlim-discussion


  End of OWLIM-discussion Digest, Vol 25, Issue 4
  ***********************************************





------------------------------------------------------------------------------


  _______________________________________________
  OWLIM-discussion mailing list
  OWLIM-discussion@ontotext.com
  http://ontotext.com/mailman/listinfo/owlim-discussion

Attachment: medical.ttl
Description: Binary data

_______________________________________________
OWLIM-discussion mailing list
OWLIM-discussion@ontotext.com
http://ontotext.com/mailman/listinfo/owlim-discussion

Reply via email to