Thursday, 10 September 2015

Medical Clinic Ontology - Example

Diseases of affluence, an aging population and many other reasons cause doctors to be overworked and tired. Many of them complain, that bureaucracy consumes a large amount of time, which could be otherwise spend on curing patients. Cognitum meets the expectation of medical workers and provides tools that can spare precious time by adding semantic layer to patients' records and doctors' medical knowledge. Cognitum's Fluent Editor can be used to quickly access patient's medical history, suggest a medicament for specific illness and even predict patient's disease based on signs and symptoms.

Fluent Editor is a tool to provide organized knowledge and reasoning functionality to every organization that has to deal with large amount of data. In this tutorial we will focus on a practical use of Fluent Editor ontology for a medical clinic. Two referenced ontologies will be used to provide name unification:

  • Dublin Core(DC) ontology - very popular, light weight RDFS vocabulary for describing generic metadata. 
  •  HCLS/POMROntology - a Problem-Oriented Medical Record Ontology, consisted of basic terms such as "disease" or "patient-record".

There are three main purposes for creating ontology for medical clinic:
  • creating a database of patients and their medical history
  • connecting diseases with corresponding symptoms and treatment methods
  • enabling reasoning based on symptoms, which would allow computers to diagnose patient's disease

To download the ontology please click here.

You can open the file by double-clicking it or from FE window, by clicking FILE -> Open & Import -> Computer -> Browse and selecting the downloaded file.
After loading the file, you will see the main window with ontology rules in Document section. FE will automatically load references, you can check that by looking at the green bar at the bottom of the window. Before starting work with file please ensure that Smart Reference Mode is ON. To do so, click on the References tab at the top of the window and then click on Use Smart Reference Mode button. If an alert window appears, click "yes". 
Smart Reference Mode is a great feature that allows referencing ontologies in CNL, even if the naming convention in those ontologies are not coherent with FE rules. The standard naming convention for OWL ontologies is camel case. Names of concepts and individuals start with capital letter, names of roles and attributes start with small letter. Expression of complex phrases is done by using capital-letter to introduce next part, instead of using blank spaces or special signs. Fluent Editor uses different notation to be as close to natural language as possible, complex phrases are written using dash sign between each part. Capital letters are used at the beginning of each part of instance's name. Concept's, role's and attribute's names are written using small letters.

camel case
FE notation

Inside the ontology

Take a look at the ontology. The first part of it is entitled “Rules”. It contains general rules that specify concepts and relations in our ontology. All of them are important, but some are crucial:

If a disease[hcls] causes a symptom[hcls](1) and the
disease[hcls] causes a symptom[hcls](2) and
the symptom[hcls](1) is-not-the-same-as the symptom[hcls](2)
and a patient[hcls] suffers the symptom[hcls](1) and
the patient[hcls] suffers the symptom[hcls](2) then
the patient[hcls] is-suspected-of-having the disease[hcls].

Above statement is used by FE Reasoner to determine whether a patient may be a victim to a particular disease. It works this way: If a patient suffers from two different symptoms that can be both caused by the same disease, then the patient may be suffering that disease (is-suspected-of-having). Please note, that some concepts and properties are followed by square brackets. They contain prefixes of referenced ontologies and are defined at the end of the file.
Next two statements define what it means that two symptoms are different one from another.
Every X that is a symptom[hcls]  is-unique-if X has-name
equal-to something.
Every symptom[hcls] has-name one (some string value).

In the Open-world assumption two individuals having different names do not necessarily have to be different. But with these rules every symptom with a name will be unique.

The next part of the ontology introduces a few patients with their medical problems. One can ask questions about them, for instance: 

Who-Or-What is a patient[hcls] ? 
Who-Or-What suffers at-least two symptoms[hcls] ? 
Who-Or-What is-suspected-of-affecting John-Smith? 
Who-Or-What is-suspected-of-having Obesity?
The console to write questions is located at the bottom of the window, as shown in the picture below. 
In the next two parts patient records are created and linked to patients. Various types of clinical acts are also being defined.
Part number 4 is a "log" of MD Kane Kovalsky's day. As you can see Doctor Kane produces a lot of information that is not directly connected to patient but to its record. Try asking questions like:
Who-Or-What is described by Description-3?
Who-Or-What describes a clinical-act[hcls]?
Who-Or-What suffers Obesity?
Who-Or-What suffers Flu?
In our ontology a person "suffers a disease[hcls]" when a clinician has diagnosed the disease. You will be able to notice that FE Reasoner correctly predicted that John-Smith is infected with Flu. But why MD Kane did not recognize Obesity? Probably due to severe state of Charles-Black ho had a hemorrhagic-stroke and needed a surgery. Reader may like to develop the ontology to allow computer to recognize the importance of particular symptoms.


Doctor Kane did not recognize one of the patients' disease. Using Reasoner/Materialized Graph/SPARQL queries find out who was that patient. Assume that there are no other diseases nor symptoms to those included in the ontology and determine if the diagnosis was possible without additional tests. 
For more information about reasoning methods see one of the previous posts. For answers scroll down this page.
Next parts of the document contain knowledge about diseases, symptoms and medication. To reveal valuable information you may ask questions such as:
Who-Or-What is-treated-with Xenazine?
Who-Or-What is-used-to-treat Flu?
Who-Or-What is-used-to-treat Charles-Black?
Who-Or-What is a patient[hcls] that is-treated-with
a therapeutic-act[hcls]?
Try using different types of reasoning and compare the results.


Cognitum provides a solution that allows to acquire needed information from patient's records in intuitive and easy way. This indicate that doctors can much faster propose patients a relevant treatment. We can even imagine a clinic, where a nurse conducts basic examination, inserts patient's symptoms into an application and as a result gets suggested medical specialist, tests that will be required for diagnosis and drugs. Fluent Editor allows to use complex ontology which is necessary for this kind of application.

To ensure that you fully understand Medical Clinic Ontology, try to expand it by adding new rules that would lead to more advanced reasoning. One idea is to categorize symptoms basing on the risk level they bear. Another possible extension is to add more staff members and suggest a specialist that a patient with particular symptoms should visit. Feel free to implement your own ideas, modify existing ontology and have a fun.
Quiz answer: The patient is Mary-Turner and her disease cannot be easily deduced, she may suffer from Hemorrhagic-Stroke or Huntingstons-Disease.

More Resources:

1 comment:

  1. Don't skimp on the size, I ordered one size up for the pants (I'm a little curvier on the hip size) and I am GLAD that I did. Love this style of nursing scrubs. I was really surprised at how much I liked this top.