Hi Peter,

It is also possible to store the transitive closure of SNOMED (which can be created by looping an SQL query until no new relations are inserted) in a relational database and query it with SQL. The following extract is a part of an SQL query that retrieves patients who had a colectomy or any subconcept of colectomy:

`colectomy`.`snomedctconceptid` = '23968004' OR EXISTS (SELECT * FROM `snomed`.`sct_transitiveclosure` AS tc WHERE `tc`.`SupertypeId` = '23968004' AND `tc`.`SubtypeId` = `colectomy`.`snomedctconceptid`)

You can find details in the "SNOMED Clinical Terms Transforming Expressions to Normal Forms" document.

Best,
Kathrin


..snip..
>  You mentions something I wonder about. If you lock the ontology (for example 
this is a release of SNOMED and you cant add new terms), and you run the reasoner 
and store all the inferred triplets as RDF along with all the stated ones, then 
could you really do just SPARQL at that point and not need a reasoner?
Yes, you can.  In using SPARQL to query such data you can either rely on 
'reasoning' at the point of evaluating the query (in which case the dataset 
doesn't change) or 'directly' evaluating a query over the a priori deductions 
from reasoning and the original stated facts.  What you are describing is the 
latter strategy and of course introduces issues with synchronizing these 
additions with a) new data or b) updates to the ontology or rules.  Each 
approach has its strength and weaknesses, especially when considering use with 
clinical data that may be serving multiple purposes.

-- Chime Ogbuji Sent with Sparrow (http://www.sparrowmailapp.com)


--
Kathrin Dentler

AI Department         |   Department of Medical Informatics
Faculty of Sciences   |   Academic Medical Center
Vrije Universiteit    |   Universiteit van Amsterdam
k.dent...@vu.nl       |   k.dent...@amc.uva.nl

Reply via email to