OntoDL: Unterschied zwischen den Versionen
(→A First Example) |
(→FHIR, CTS2-LE and OntoDL) |
||
| Zeile 39: | Zeile 39: | ||
<p> | <p> | ||
| − | === FHIR, CTS2-LE and OntoDL === | + | === FHIR, CTS2, CTS2-LE and OntoDL === |
The OntoDL interpreter translates OntoDL defined vocabularies into HL7 FHIR [https://www.hl7.org/fhir/valueset.html 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. | The OntoDL interpreter translates OntoDL defined vocabularies into HL7 FHIR [https://www.hl7.org/fhir/valueset.html 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 === | === Installation and Setup === | ||
Version vom 29. August 2016, 23:01 Uhr
Inhaltsverzeichnis
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
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