OntoDL: Unterschied zwischen den Versionen

Aus CTS2-LE
Zur Navigation springen Zur Suche springen
K (About OntoDL)
K
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
The name has changed and so did the site: [[Ontologies with Style(s)]]
 +
 
== About OntoDL ==
 
== About OntoDL ==
  
Zeile 13: Zeile 15:
  
 
== OntoDL Core Concepts ==
 
== OntoDL Core Concepts ==
=== OntoDL Objects ===
+
OntoDL is two interpreter languages in one. Under the hood there is a powerful but simple OntoDL Object Language (OOL) that allows to define arbitrary complex ontologies using a small set of OntoDL statements. You may write OntoDL programs in this language but mostly you will instead rather write some small macros in the OntoDL Macro Language (OML). Such macros define how common means of MS Word like style sheets and heading levels map onto the OntoDL Object Language. E.g. with a one-line-macro you can define that a level-2-headline shall define a ''codesystem'' object in the OntoDL Object Language with the name and URI of the codesystem povided in the headline text.
=== Directives vs. Statements ===
 
  
The OntoDL interpreter passes multiple times through a MS Word document:
+
;[[OntoDL Core Cncepts: Directives vs. Statements|Directives vs. Statements]]
# 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. During this pass all OntoDL directives within the document are executed.
+
:Learn more about the two languages that make up OntoDL and how they are interlaced to simplify the definition of ontologies.
# The OntoDL object manager parses through the token sequence and builds up the defined hierarchy of OntoDL objects. It registers all object names within their definition scopes 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. During this pass the syntax of all OntoDL statements is checked. Errors and warnings are written to an error log.
+
;[[OntoDL Core Concepts: OntoDL Objects|OntoDL Objects]]
# The OntoDL parser analyzes all OntoDL statements, sets object properties, 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.
+
:Learn more about objects and properties and OntoDL features for customizing these to your demands.
# 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).
 
The OntoDL language provides 2 kinds of commands:
 
* OntoDL Directives are interpreted by the tokenizer. Most directives are linked with style sheets and direct the tokenizer how to process a paragraph of text that is formatted with this style sheet. It is important to notice that directives only manipulate the text of the document; directives do not "know" anything about OntoDL objects. All OntoDL Directives start with a hash-sign (#).
 
* OntoDL Statements are interpreted by the parser. Statements define and manipulate OntoDL objects and are used to set up the defined code systems. Some Directives (e.g. #heading) are used to define objects, too. Nevertheless, all the OntoDL tokenizer does on these Directives is to internally manipulate the document in a way that these directives are replaced by the corresponding OntoDL statements.
 
 
 
Generally spoken, OntoDL Statements provide all the OntoDL functionality but look ugly within a document. The only use for OntoDL Directives is to hide away the OntoDL statements by manipulating the text in a way that these statements can be generated out of style sheets and text templates. In the example above, the Directive
 
<pre>#heading 1 codesystem .Name ( .URI )</pre>
 
does not much more than to translate the ''Überschrift-1''-formatted Text "Body Parts (http://sample.com/bodyparts)" into a sequence of OntoDL Statements:
 
<pre>
 
define codesystem(Body Parts) {
 
set (Body Parts).URI = (http://sample.com/bodyparts)
 
}
 
</pre>
 
  
 
== OntoDL Tutorial ==
 
== OntoDL Tutorial ==
=== Defining Terminologies and Concepts ===
+
;Defining a Terminology&#058; From OOL to OML
In this section the most important language features of OntoDL are explained. In order to make this more comprehensive, a holistic example will be used that shows how OntoDL can be used to easily define semantics-rich structured terminologies for a hospital.  
+
:This initial course shows how to define a simple terminology. Starting with plain OOL, step-by-step additional OML means are applied in order to make the terminology definition look like a ordinary MS Word document.
* [[OntoDL Tutorial: Defining a Terminology|Defining a Terminology]]
+
:Lessons: [[OntoDL Tutorial: Defining a Terminology|Defining a Terminology]], [[OntoDL Tutorial: Setting Properties (Part 1)|Setting Properties (Part 1)]], [[OntoDL Tutorial: Mapping Concept Hierarchies onto Word Sections|Mapping Concept Hierarchies onto Word Sections]], [[OntoDL Tutorial: Using Defaults (Part 1)|Using Defaults (Part 1)]], [[OntoDL Tutorial: Mapping Properties onto Style Sheets|Mapping Properties onto Style Sheets]], [[OntoDL Tutorial: Defining Custom Properties|Defining Custom Properties]]
* Refining Concept Definitions
+
;Linking Concepts&#058; From Value Sets to Ontologies
* Using Heading Templates
+
:The second course shows how concepts from external code systems (e.g. ICD-10 or SNOMED CT) can be used in OntoDL. Starting with the setup of a value set based on existing concepts this section closes with the definition of an ontology that includes manifold links among concepts from different code systems.
* Using Custom Style Sheets
+
:Lessons: [[OntoDL Tutorial: Using an External Code System|Using an External Code System]], [[OntoDL Tutorial: OntoDL Global Objects|OntoDL Global Objects]], [[OntoDL Tutorial: Defining a Value Set|Defining a Value Set]], [[OntoDL Tutorial: Linking Concepts|Linking Concepts]], [[OntoDL Tutorial: Using Defaults (Part 2)|Using Defaults (Part 2)]], [[OntoDL Tutorial: Setting Properties (Part 2)|Setting Properties (Part 2)]]
 
+
;Hiding it All&#058; From Patterns to Programing
=== Defining Custom Properties ===
+
:The third course shows how you can use OntoDL features to fully hide away OntoDL behind commom MS Word elements. Starting with further text replacement directives, this section stepwise goes into programing your own macros for processing MS Word styles.
* Defining and Using a Custom Property
+
:Lessons: Using Patterns (Part 1), The Power of Obligations (Part 1), Defining your own Macro, Setting Properties (Part 3), Generating a Code Hierarchy
* 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 ==
 
== OntoDL Language Reference ==
 +
This section provides links to the full OntoDL language reference that gives full definition for all OntoDL statements, directives, types and objects.
  
The [[OntoDL Syntax]] consists of three kinds of commands:
+
;[[OntoDL Syntax|OOL Syntax Overview]]  
* OntoDL Statements: ...
+
:This overview shows the complete OntoDL language syntax on a single page.
* Style Sheet Directives: ...
 
* Tokenizer Directives: ...
 
 
 
=== OntoDL Statements ===
 
;[[OntoDL Statement: define|define]]
 
:define a new OntoDL object
 
;[[OntoDL Statement: set|set]]
 
:set the value of a named property of an identifiable object
 
;[[OntoDL Statement: default|default]]
 
:set a default value for a named property
 
;[[OntoDL Statement: Object Relationship|--''predicate''-->]]
 
:define a concept relationship
 
 
 
All OntoDL Statements build uopn a small set of [[OntoDL Statement: Base Types|'''Base Types''']].
 
 
 
=== Style Sheet Directives ===
 
 
 
;[[OntoDL Style Sheet Directive: OntoDL.StyleName|OntoDL.''StyleName'']]
 
:implicit assignment of a value to the property ''StyleName'' within the definiton scope of an OntoDL object
 
;[[OntoDL Style Sheet Directive: heading|#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
 
;[[OntoDL Style Sheet Directive: obligation|#obligation]]
 
:trigger the execution of a set of commands and/or directives before or after text of a defined style sheet is processed
 
;[[OntoDL Style Sheet Directive: pattern|#pattern]]
 
:template-based transformation of a text that is formatted with a defined style sheet
 
 
 
=== Tokenizer Directives ===
 
;[[OntoDL Tokenizer Directive: goto|#goto ... #return]]
 
:control how the OntoDL tokenizer scans through the document
 
;[[OntoDL Tokenizer Directive: package|#package ... #endpackage]]
 
:define a named subroutine that can be linked to an obligation
 
  
=== OntoDL Object Types ===
+
;[[OntoDL Object Language (OOL)|OntoDL Object Language (OOL)]]
;[[OntoDL Object Type: codesystem|codesystem]]
+
:'''OOL Language Reference:''' [[OntoDL Statement: Base Types|''Base Types'']] ;[[OntoDL Statement: define|''define'' statement]], [[OntoDL Statement: set|''set'' statement]], [[OntoDL Statement: default|''default'' statement]], [[OntoDL Statement: Object Relationship|''---->'' statement]]
:object representing the OntoDL definition of an ontology, terminology or value set
+
:'''OOL Object Types:''' [[OntoDL Object Type: codesystem|''codesystem'']], [[OntoDL Object Type: system|''system'']], [[OntoDL Object Type: concept|''concept'']], [[OntoDL Object Type: predicate|''predicate'']], [[OntoDL Object Type: property|''property'']], [[OntoDL Object Type: string|''string'']], [[OntoDL Object Type: collection|''collection'']], [[OntoDL Object Type: object|object]], [[OntoDL Object Type: type|type]]
;[[OntoDL Object Type: system|system]]
+
:'''OOL System Objects:''' [[OntoDL System Object: CTS2LE|''CTS2LE'']], [[OntoDL System Object: OntoDL|''OntoDL'']], [[OntoDL System Object: FHIR|''FHIR'']]
:object representing an externally defined ontology, terminology or value set
 
;[[OntoDL Object Type: concept|concept]]
 
:object representing a concept (internally or externally defined)
 
;[[OntoDL Object Type: predicate|predicate]]
 
:object representing the definition of a predicate that defines a relationship between two concepts
 
;[[OntoDL Object Type: property|property]]
 
:object representing the definition of a property to an object
 
;[[OntoDL Object Type: string|string]]
 
:object representing a text, name, URI, etc.
 
;[[OntoDL Object Type: collection|collection]]
 
:object representing a set of objects
 
  
=== OntoDL System Objects ===
+
;[[OntoDL Macro Language (OML)|OntoDL Macro Language (OML)]]
;[[OntoDL System Object: CTS2LE|CTS2LE]]
+
:'''OML Style Sheet Directives:''' [[OntoDL Style Sheet Directive: OntoDL.StyleName|''OntoDL.StyleName'']], [[OntoDL Style Sheet Directive: heading|''#heading'' directive]], [[OntoDL Style Sheet Directive: obligation|''#obligation'' directive]], [[OntoDL Style Sheet Directive: pattern|''#pattern'' directive]], [[OntoDL Style Sheet Directive: table|''#table'' directive]]  
:system object for configuring how OntoDL interacts with a CTS2LE terminology server
+
:'''OML Tokenizer Directives:''' [[OntoDL Tokenizer Directive: goto|''#goto ... #return'']], [[OntoDL Tokenizer Directive: package|''#package ... #endpackage'']]
;[[OntoDL System Object: OntoDL|OntoDL]]
 
:system object for configuring the OntoDL Interpreter
 
;[[OntoDL System Object: FHIR|FHIR]]
 
:system object for controlling how the OntoDL Interpreter transforms your document to a set of FHIR resources
 

Aktuelle Version vom 21. September 2016, 16:52 Uhr

The name has changed and so did the site: Ontologies with Style(s)

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. By this you can e.g. advise the interpreter to consider headline hierarchies as hierarchies of concepts.

A First Example
This example gives an impression how a typical OntoDL code system definition looks like.
FHIR, CTS2, CTS2-LE and OntoDL
Learn how OntoDL fully builds upon standards and works together with the CTS2-LE terminology server.
Installation and Setup
OntoDL runs from within your MS Word. Make sure you have all required libraries properly installed.

OntoDL Core Concepts

OntoDL is two interpreter languages in one. Under the hood there is a powerful but simple OntoDL Object Language (OOL) that allows to define arbitrary complex ontologies using a small set of OntoDL statements. You may write OntoDL programs in this language but mostly you will instead rather write some small macros in the OntoDL Macro Language (OML). Such macros define how common means of MS Word like style sheets and heading levels map onto the OntoDL Object Language. E.g. with a one-line-macro you can define that a level-2-headline shall define a codesystem object in the OntoDL Object Language with the name and URI of the codesystem povided in the headline text.

Directives vs. Statements
Learn more about the two languages that make up OntoDL and how they are interlaced to simplify the definition of ontologies.
OntoDL Objects
Learn more about objects and properties and OntoDL features for customizing these to your demands.

OntoDL Tutorial

Defining a Terminology: From OOL to OML
This initial course shows how to define a simple terminology. Starting with plain OOL, step-by-step additional OML means are applied in order to make the terminology definition look like a ordinary MS Word document.
Lessons: Defining a Terminology, Setting Properties (Part 1), Mapping Concept Hierarchies onto Word Sections, Using Defaults (Part 1), Mapping Properties onto Style Sheets, Defining Custom Properties
Linking Concepts: From Value Sets to Ontologies
The second course shows how concepts from external code systems (e.g. ICD-10 or SNOMED CT) can be used in OntoDL. Starting with the setup of a value set based on existing concepts this section closes with the definition of an ontology that includes manifold links among concepts from different code systems.
Lessons: Using an External Code System, OntoDL Global Objects, Defining a Value Set, Linking Concepts, Using Defaults (Part 2), Setting Properties (Part 2)
Hiding it All: From Patterns to Programing
The third course shows how you can use OntoDL features to fully hide away OntoDL behind commom MS Word elements. Starting with further text replacement directives, this section stepwise goes into programing your own macros for processing MS Word styles.
Lessons: Using Patterns (Part 1), The Power of Obligations (Part 1), Defining your own Macro, Setting Properties (Part 3), Generating a Code Hierarchy

OntoDL Language Reference

This section provides links to the full OntoDL language reference that gives full definition for all OntoDL statements, directives, types and objects.

OOL Syntax Overview
This overview shows the complete OntoDL language syntax on a single page.
OntoDL Object Language (OOL)
OOL Language Reference: Base Types ;define statement, set statement, default statement, ----> statement
OOL Object Types: codesystem, system, concept, predicate, property, string, collection, object, type
OOL System Objects: CTS2LE, OntoDL, FHIR
OntoDL Macro Language (OML)
OML Style Sheet Directives: OntoDL.StyleName, #heading directive, #obligation directive, #pattern directive, #table directive
OML Tokenizer Directives: #goto ... #return, #package ... #endpackage