OntoDL: Unterschied zwischen den Versionen

Aus CTS2-LE
Zur Navigation springen Zur Suche springen
(FHIR, CTS2-LE and OntoDL)
(Directives vs. Statements)
Zeile 49: Zeile 49:
 
=== OntoDL Objects ===
 
=== OntoDL Objects ===
 
=== Directives vs. Statements ===
 
=== Directives vs. Statements ===
 +
 +
The OntoDL interpreter passes multiple times through a MS Word document:
 +
# The OntoDL tokenizer analyzes the document, detects the parts that must be processed by OntoDL and splits these parts of the document into a set of OntoDL commands and parameters.
 +
# The OntoDL object manager discovers all object definitions within the result of the tokenizer. It registers these object so that concept relationships defined at the beginning of a document may even refer to concepts that are defined at the end of the document.
 +
# The OntoDL parser analyzes all OntoDL statements, builds up concept hierarchies, resolves object references and loads missing information from the terminology server. The result of this processing step is a set of code system definitions based on the OntoDL internal information model.
 +
# The OntoDL FHIR converter takes this representations of the defined code systems and transforms them into an information model that complies to the FHIR ValueSet resource definition (and the defined CTS2-LE extensions to this definition).
 +
# The OntoDL XML Writer takes the FHIR ValueSet resources and writes these to the filesystem as XML files (that comply to the FHIR XML binding).
  
 
== OntoDL Tutorial ==
 
== OntoDL Tutorial ==

Version vom 29. August 2016, 23:38 Uhr

About OntoDL

OntoDL is a language for defining structured vocabularies - from simple value sets up to complex ontologies. The editor for writing OntoDL programs is MS Word. OntoDL progams are executed by an interpreter that is implemented as a MS Word makro.

While OntoDL commands are embedded into any MS Word document, the specification of a vocabulary is also the documentation of the vocabulary. For making OntoDL look like "normal" MS Word texts, OntoDL commands can be linked to style sheets. The OntoDL interpreter implicitly executes the commands assigned to a style sheet whenever it discovers a line of text within a document that if formatted using this style sheet.

A First Example

Below a first and very simple example is given how an OntoDL terminology definition looks like. The medium colum of the table below shows the text as it appears in the MS Word document. The left column shows the style sheets for formatting each of the paragraphs of the text. The right colum gives some short comment on how the OntoDL interpreter acts on the paragraph.


Style Sheet      Text      Comment
OntoDL #heading 1 codesystem .Name ( .URN ) Direct the OntoDL interpreter to consider all level-1-headings as code system definitons.
OntoDL #heading 2 concept .Name ( .Designation[lang=de] )
#heading 3 concept .Name ( .Designation[lang=de] )
Direct the OntoDL interpreter to consider all level-2 and level-3-headings as a hierarchy of concept definitons. The headline provides the Name and German translation of the concept.
Überschrift 1 1  Body Parts (http://sample.com/bodyparts) A codesystem named "Body Parts" is defined.
OntoDL.Description This terminology provides concepts for the parts of the body. The description of the code system. The formatting of the style sheet OntoDL.Description can be defined by the document author.
Überschrift 2 1.1  organs (Organe) A concept "organs" is defined within the codesystem "Body Parts"
Überschrift 3 1.1.1    heart (Herz) A concept "heart" is defined as a subconcept to "organs"
OntoDL.Definition The heart pumps blood through the body. A description is assigned to the concept "heart"
Überschrift 3 1.1.2    kidney (Niere) A concept "kidney" is defined as a subconcept to "organs"
Überschrift 2 1.2  extremities (Extremitäten) A concept "extremity" is defined within the codesystem "Body Parts"
Überschrift 3 1.2.1    arm (Arm) A concept "arm" is defined as a subconcept to "extremity"
Überschrift 3 1.2.2    leg (Bein) A concept "leg" is defined as a subconcept to "extremity"

The FHIR XML code generated from this example can be found here

FHIR, CTS2, CTS2-LE and OntoDL

The OntoDL interpreter translates OntoDL defined vocabularies into HL7 FHIR ValueSet Resources. The generated resource definitions are rendered as XML and written to the file system. From there they can be loaded into any Terminology Server that implements a loader for FHIR resouces.

From the OntoDL perspective FHIR is only considered as an exchange format while the underlying OntoDL object model is based on the much more powerful CTS2 Terminology Services standard which allows for managing complex and extensible ontologies. E.g. while the recent FHIR version (DSTU-2) does not provide build-in mechanisms for semanticaly defined, poly-hierarchical ontologies and custom properties, such features are available with OntoDL. In order to make these features available to ontology developers, OntoDL is optimized for being used in conjunction with the Fraunhofer FOKUS CTS2-LE terminology server. CTS2-LE implements the CTS2 data model on top of RDF so that ontologies with semantically tagged edges and fully networked information models can be expressed. The CTS2-LE FHIR loader uses the extension mechanisms of FHIR and defines additional resources and elements for expressing custonm properties and arbitrary concept relationships. All ontologies defined with OntoDL can be loaded into CTS2-LE using the standard CTS2-LE FHIR loader.

Installation and Setup

OntoDL Core Concepts

OntoDL Objects

Directives vs. Statements

The OntoDL interpreter passes multiple times through a MS Word document:

  1. The OntoDL tokenizer analyzes the document, detects the parts that must be processed by OntoDL and splits these parts of the document into a set of OntoDL commands and parameters.
  2. The OntoDL object manager discovers all object definitions within the result of the tokenizer. It registers these object so that concept relationships defined at the beginning of a document may even refer to concepts that are defined at the end of the document.
  3. The OntoDL parser analyzes all OntoDL statements, builds up concept hierarchies, resolves object references and loads missing information from the terminology server. The result of this processing step is a set of code system definitions based on the OntoDL internal information model.
  4. The OntoDL FHIR converter takes this representations of the defined code systems and transforms them into an information model that complies to the FHIR ValueSet resource definition (and the defined CTS2-LE extensions to this definition).
  5. The OntoDL XML Writer takes the FHIR ValueSet resources and writes these to the filesystem as XML files (that comply to the FHIR XML binding).

OntoDL Tutorial

Defining Terminologies and Concepts

  • Defining a Terminology
  • Refining Concept Definitions
  • Using Heading Templates
  • Using Custom Style Sheets

Defining Custom Properties

  • Defining and Using a Custom Property
  • Using the _parent Property

Using Existing Terminologies

  • Using the CTS2LE Global Object
  • Using Patterns
  • Defining a Value Set

Defining Concept Relationships

  • Defining and using a predicate-object
  • Using default target systems for concept relationships

Using Objects

  • Defining an untyped Object
  • Assigning Objects to Attributes

More Features

  • Defining Obligations
  • Using Defaults
  • Using Hyperlinks for Steering the Tokenizer
  • Synonyms and Fully Specified Names
  • Defining and Using OntoDL Functions
  • Using Globally Defined Objects


OntoDL Language Reference

The OntoDL language consists of three kinds of commands:

  • OntoDL Statements: ...
  • Style Sheet Directives: ...
  • Tokenizer Directives: ...

OntoDL Statements

define
define a new OntoDL object
set
set the value of a named property of an identifiable object
default
set a default value for a named property
--predicate-->
define a concept relationship

Style Sheet Directives

OntoDL.StyleName
implicit assignment of a value to the property StyleName within the definiton scope of an OntoDL object
#style
implicit assignment of a values - encoded within a text of a defined style sheet - to defined properties within the definition scope of an OntoDL object
#heading
binding of the scope of a heading to an OntoDL object definition with an implict assignment of values to properties of the defined object
#obligation
trigger the execution of a set of commands and/or directives before or after text of a defined style sheet is processed
#pattern
template-based transformation of a text that is formatted with a defined style sheet

Tokenizer Directives

#goto ... #return
control how the OntoDL tokenizer scans through the document
#package ... #endpackage
define a named subroutine that can be linked to an obligation

OntoDL Object Types

codesystem
object representing the OntoDL definition of an ontology, terminology or value set
system
object representing an externally defined ontology, terminology or value set
concept
object representing a concept (internally or externally defined)
predicate
object representing the definition of a predicate that defines a relationship between two concepts
property
object representing the definition of a property to an object