Author: fchrist
Date: Fri Feb 10 16:38:34 2012
New Revision: 1242841
URL: http://svn.apache.org/viewvc?rev=1242841&view=rev
Log:
STANBOL-449 Refactorings and linking to new enhancer documentation done by
Rupert
Added:
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/engines/index.mdtext
- copied, changed from r1242750,
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/engines/enhancementengine.mdtext
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/engines/list.mdtext
- copied unchanged from r1242750,
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/engines.mdtext
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/index.mdtext
- copied, changed from r1242750,
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer.mdtext
Removed:
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/engines.mdtext
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer.mdtext
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/engines/enhancementengine.mdtext
Modified:
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/components.mdtext
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/factstore/index.mdtext
Modified:
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/components.mdtext
URL:
http://svn.apache.org/viewvc/incubator/stanbol/site/trunk/content/stanbol/docs/trunk/components.mdtext?rev=1242841&r1=1242840&r2=1242841&view=diff
==============================================================================
--- incubator/stanbol/site/trunk/content/stanbol/docs/trunk/components.mdtext
(original)
+++ incubator/stanbol/site/trunk/content/stanbol/docs/trunk/components.mdtext
Fri Feb 10 16:38:34 2012
@@ -11,9 +11,9 @@ This page gives an overview of the major
We will shortly describe the components from top to bottom and link to their
detailed descriptions.
-* The [Enhancer](enhancer.html) component together with its [Enhancement
Engines](engines.html) provides you with the ability to post content to Apache
Stanbol and get suggestions for possible entity annotation in return. The
enhancements are provided via natural language processing, metadata extraction
and linking named entities to public or private entity repositories.
Furthermore, Apache Stanbol provides a machinery to further process this data
and add additional knowledge and links via applying rules and reasoning.
Technically, the enhancements are stored in a triple-graph that is maintained
by [Apache Clerezza](http://incubator.apache.org/clerezza).
+* The [Enhancer](enhancer/) component together with its [Enhancement
Engines](enhancer/engines) provides you with the ability to post content to
Apache Stanbol and get suggestions for possible entity annotation in return.
The enhancements are provided via natural language processing, metadata
extraction and linking named entities to public or private entity repositories.
Furthermore, Apache Stanbol provides a machinery to further process this data
and add additional knowledge and links via applying rules and reasoning.
Technically, the enhancements are stored in a triple-graph that is maintained
by [Apache Clerezza](http://incubator.apache.org/clerezza).
-* The 'Sparql endpoint' gives access to the semantic enhancements form the
Apache Stanbol [Enhancer](enhancer.html).
+* The 'Sparql endpoint' gives access to the semantic enhancements form the
Apache Stanbol [Enhancer](enhancer/).
* The 'EnhancerVIE' is a stateful interface to submit content to analyze and
store the results on the server. It is then possible to browse the resulting
enhanced content items.
Copied:
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/engines/index.mdtext
(from r1242750,
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/engines/enhancementengine.mdtext)
URL:
http://svn.apache.org/viewvc/incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/engines/index.mdtext?p2=incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/engines/index.mdtext&p1=incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/engines/enhancementengine.mdtext&r1=1242750&r2=1242841&rev=1242841&view=diff
==============================================================================
---
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/engines/enhancementengine.mdtext
(original)
+++
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/engines/index.mdtext
Fri Feb 10 16:38:34 2012
@@ -1,6 +1,6 @@
-Title: EnhancementEngine
+Title: Enhancement Engines
-EnhancementEngines are the components that are responsible to enhance
ContentItmes. They are called by the
[EnhancementJobManager](../enhancementjobmanager.html). EnhancementEngines do
have full access to the parsed [ContentItem](../contentitem.html)s. They are
expected to modify the state of the content item.
+Enhancement engines are the components that are responsible to enhance
ContentItmes. They are called by the
[EnhancementJobManager](../enhancementjobmanager.html). Enhancement engines do
have full access to the parsed [ContentItem](../contentitem.html)s. They are
expected to modify the state of the content item.
The RESTful interface of an EnhancementEngines can be accessed by
@@ -10,11 +10,11 @@ e.g. an EnhancementEngine with the name
http://localhost:8080/enhancer/engine/ner
-When using the Java API EnhancementEngines can be liked up as OSGI services.
The [EnhanceEngineManager](enhancementenginemanager.html) service is designed
to ease this by providing a API that allows to access EnhancementEngine by
their name.
+When using the Java API enhancement engines can be liked up as OSGI services.
The [EnhanceEngineManager](enhancementenginemanager.html) service is designed
to ease this by providing a API that allows to access enhancement engine by
their name.
-## EnhancementEngine Interface
+## Enhancement Engine Interface
-The interface for EnhancementEngines contains the following three methods:
+The interface for enhancement engines contains the following three methods:
/** Getter for the value of the "stanbol.enhancer.engine.name" property */
+ getName() : String
@@ -32,7 +32,7 @@ The interface for EnhancementEngines con
/** Indicates support for asynchronous enhancement */
ENHANCE_ASYNC : int
-Each EnhancementEngine has an name assigned. This is typically provided by the
engine configuration and MUST be set as value to the property
"stanbol.enhancer.engine.name" in the service registration of the enhancement
engine. The getter for the name MUST return the same value as the value set to
this property. EnhancementEngine implementations will usually get the name by
calling
+Each enhancement engine has an name assigned. This is typically provided by
the engine configuration and MUST be set as value to the property
"stanbol.enhancer.engine.name" in the service registration of the enhancement
engine. The getter for the name MUST return the same value as the value set to
this property. Enhancement engine implementations will usually get the name by
calling
this.name =
(String)ComponentContext.getProperties(EnhancementEngine.PROPERTY_NAME);
@@ -49,75 +49,75 @@ EnhancementEngiens do have full access t
* add new Enhancements to the metadata
* some engines might also need to update/delete existing metadata.
-Both the "canEnhance(..)" and "computeEnhancements(..)" methods MUST be called
by the [EnhancementJobManager](../enhancementjobmanager.html) after all the
executions of all EnhancementEngines this one depends on are completed. This
dependencies are defined by the [ExecutionPlan](../chains/executionplan.html)
used by the EnhancementJobManager to enhance the ContentItem. Implementors of
EnhancementEngines can therefore trust that all metadata expected to be added
by other EnhancementEngines are already present within the metadata of the
parsed ContentItems when "canEnhance(..)" or "computeEnhancements(..)" is
called.
+Both the "canEnhance(..)" and "computeEnhancements(..)" methods MUST be called
by the [EnhancementJobManager](../enhancementjobmanager.html) after all the
executions of all enhancement engines this one depends on are completed. This
dependencies are defined by the [ExecutionPlan](../chains/executionplan.html)
used by the EnhancementJobManager to enhance the ContentItem. Implementors of
enhancement engines can therefore trust that all metadata expected to be added
by other enhancement engines are already present within the metadata of the
parsed ContentItems when "canEnhance(..)" or "computeEnhancements(..)" is
called.
### ServicesProperties Interface
-This interface is implemented by most of the current EnhancementEngines. It
allows engines to expose additional properties to other component. This
interface defines a single method
+This interface is implemented by most of the current enhancement engines. It
allows engines to expose additional properties to other component. This
interface defines a single method
/** Getter for the ServiceProperties */
Map<String,Object> getServiceProperties();
-but also predefines the property ENHANCEMENT_ENGINE_ORDERING =
"org.apache.stanbol.enhancer.engine.order" that can be used by
EnhancementEngine implementations to specify their typical ordering within the
enhancement process.
+but also predefines the property ENHANCEMENT_ENGINE_ORDERING =
"org.apache.stanbol.enhancer.engine.order" that can be used by enhancement
engine implementations to specify their typical ordering within the enhancement
process.
### Engine Ordering Information
-By implementing the ServicesProperties interface EnhancementEngines do have
the possibility to expose additional metadata to other components. The
ServicesProperties interface defines only a single method
+By implementing the ServicesProperties interface enhancement engines do have
the possibility to expose additional metadata to other components. The
ServicesProperties interface defines only a single method
/** Getter for the ServiceProperties */
Map<String,Object> getServiceProperties();
-and is implemented by most of the current EnhancementEngines. Its currently
only use is to provide information about the engine ordering within the
enhancement process. This information is exposed by using the key
"org.apache.stanbol.enhancer.engine.order" that is defined as value by the
constant ENHANCEMENT_ENGINE_ORDERING defined directly by the ServicesProperties
interface. Values are expected to be integer within the ranges
+and is implemented by most of the current enhancement engines. Its currently
only use is to provide information about the engine ordering within the
enhancement process. This information is exposed by using the key
"org.apache.stanbol.enhancer.engine.order" that is defined as value by the
constant ENHANCEMENT_ENGINE_ORDERING defined directly by the ServicesProperties
interface. Values are expected to be integer within the ranges
* __ORDERING_PRE_PROCESSING__: All values >= 200 are considered for engines
that do some kind of preprocessing of the Content. This includes e.g. the
conversation of media formats such as extracting the plain text from HTML,
keyframes from videos, wave form from mp3 ...; extracting metadata directly
encoded within the parsed content such as ID3 tags from MP3 or RDFa, microdata
provided by HTML content.
* __ORDERING_CONTENT_EXTRACTION__: This range includes values form < 200 and
>= 100 and shall be used by enhancement engine that need to analyze the parsed
content to extract additional metadata. Examples would be Language detection,
Natural Language Processing, Named Entity Recognition, Face Detection in
Images, Speech to text â¦
* __ORDERING_EXTRACTION_ENHANCEMENT__: This range includes values from < 100
and >= 1 and shall be used by enhancement engines to provide semantic lifting
of preexisting enhancement such as linking named entities extracted by an NER
engine with entities defines in a controlled vocabulary or lifting artist
names, song titles ... extracted from mp3 files with the according Entities
defined in an music database.
-* __ORDERING_DEFAULT__: This represents the value 0 and shall be used as
default value for all EnhancementEngines that do not provide ordering
information or do not implement the ServicesProperties interface.
+* __ORDERING_DEFAULT__: This represents the value 0 and shall be used as
default value for all enhancement engines that do not provide ordering
information or do not implement the ServicesProperties interface.
* __ORDERING_POST_PROCESSING__: This range includes valued form < 0 and >=
-100 and is intended to be used by all enhancement engines that do post
processing of enhancement results such as schema translation, filtering of
Enhancements ...
The Engine Ordering information as described here are used by the
[DefaultChain](../chains/defaultchain.html) and the
[WeightedChain](../chains/weightedchain.html) to calculate the
[ExecutionPlan](../chains/executionplan.html).
-Basically this features allows the implementor of an EnhancementEngine to
define the correct position of his engine within an typical enhancement chain
and therefore ensure that users that add this engine to a Stanbol Enhancer
installation to immediately use this engine with the
[DefaultChain](../chains/defaultchain.html).
+Basically this features allows the implementor of an enhancement engine to
define the correct position of his engine within an typical enhancement chain
and therefore ensure that users that add this engine to a Stanbol Enhancer
installation to immediately use this engine with the
[DefaultChain](../chains/defaultchain.html).
However the Engine Ordering is not the only possibility for users to control
the execution order. Enhancement chain implementations such as the
[ListChain](../chains/listchain.html) and the
[GraphChain](../chains/graphchain.html) do also allow to directly define the
oder of execution. For this chains the ordering information provided by
EnhancementEngines are ignored.
-## EnhancementEngine management
+## Enhancement Engine Management
-This section describes how EnhancementEngines are managed by the Stanbol
Enhancer and how they can be selected/accessed by the
[EnhancementJobManager](../enhancementjobmanager.html) execution a
[Chain](../chains/enhancementchain.html).
+This section describes how enhancement engines are managed by the Stanbol
Enhancer and how they can be selected/accessed by the
[EnhancementJobManager](../enhancementjobmanager.html) execution a
[Chain](../chains/enhancementchain.html).
-EnhancementEngines are registered as OSGI services and managed by using the
following service properties:
+Enhancement engines are registered as OSGI services and managed by using the
following service properties:
* __Name:__ Defined by the value of the property
"stanbol.enhancer.engine.name" it will be used to access Engines on the Stanbol
RESTful interface
-* __Service Ranking:__ The service ranking property defined by OSGI will be
used to decide which engine to use in case several active EnhancementEngines do
use the same name. In such cases only the Engine with the highest ranking will
be used to enhance ContentItems.
+* __Service Ranking:__ The service ranking property defined by OSGI will be
used to decide which engine to use in case several active enhancement engines
do use the same name. In such cases only the Engine with the highest ranking
will be used to enhance ContentItems.
<!-- TODO: The Configuration is not yet defined
-* __Configuration:__ Each EnhacementEngien MAY provide an RDF graph with its
configuration. This graph will be returned on GET request on the URL of the
EnhancementEngine. If no configuration is known for the engine this MUST at
least return a single triple with the name for the engine.
+* __Configuration:__ Each EnhacementEngien MAY provide an RDF graph with its
configuration. This graph will be returned on GET request on the URL of the
enhancement engine. If no configuration is known for the engine this MUST at
least return a single triple with the name for the engine.
_TODO:_ To correctly construct this graph the Engine needs to know this URL.
This could e.g. be provided by some OSGI environment parameter set by the
JerseyApplication. As an alternative we could also parse this URI as an
parameter to the getEngineConfig method.
-->
-Other components such as enhancement Chains do refer to engines by their name.
The actual EnhancementEngine instance is only looked up shortly before the
execution.
+Other components such as enhancement Chains do refer to engines by their name.
The actual enhancement engine instance is only looked up shortly before the
execution.
-### EnhancementEngine Name Conflicts
+### Enhancement Engine Name Conflicts
-As EnhancementEngines are identified by the value of the
"stanbol.enhancer.engine.name" property - the name - there might be cases where
multiple EnhancementEngine are registered for the same name. In such cases the
normal OSGI procedure to select the default service instance of several
possible matches is used. This means that
+As enhancement engines are identified by the value of the
"stanbol.enhancer.engine.name" property - the name - there might be cases where
multiple enhancement engine are registered for the same name. In such cases the
normal OSGI procedure to select the default service instance of several
possible matches is used. This means that
-1. the EnhancementEngine with the highest "service.ranking" and
-2. the EnhancementEngine with the lowest "service.id"
+1. the enhancement engine with the highest "service.ranking" and
+2. the enhancement engine with the lowest "service.id"
-will be selected on requests for a EnhancementEngine with a given name.
Requests on the RESTful service API will always answer with the
EnhancementEngine selected as default. When using the Java API there are also
means to retrieve all EnhancementEngines for a given name via the
[EnhancementEngineManager](enhancementenginemanager.html) interface.
+will be selected on requests for a enhancement engine with a given name.
Requests on the RESTful service API will always answer with the enhancement
engine selected as default. When using the Java API there are also means to
retrieve all enhancement engines for a given name via the [Enhancement Engine
Manager](enhancementenginemanager.html) interface.
-Out of a user perspective there is one major use case for configuring multiple
enhancement engines for the same name. This is to allow the definition of
fallback engines if the main one becomes unavailable. e.g. lets assume that a
user has a local cache of geonames.org loaded into the Entityhub and configures
an [NamedEntityLinking](keywordlinkingengine.html) engine to perform semantic
lifting of extracted locations. However Stanbol also provides the [geonames.org
Engine](geonamesengine.html) that provides a similar functionality by directly
accessing [geonames.org](http://geonames.org). By configuring both engines for
the same name, but specifying a higher service ranking for the one using the
local cache one can ensure that the local cache is used for the enhancement
under normal circumstances. However in case the local cache becomes unavailable
the other engine using the remote service will be used for enhancement.
+Out of a user perspective there is one major use case for configuring multiple
enhancement engines for the same name. This is to allow the definition of
fallback engines if the main one becomes unavailable. e.g. lets assume that a
user has a local cache of geonames.org loaded into the Entityhub and configures
an [Named Entity Linking](keywordlinkingengine.html) engine to perform semantic
lifting of extracted locations. However Stanbol also provides the [geonames.org
Engine](geonamesengine.html) that provides a similar functionality by directly
accessing [geonames.org](http://geonames.org). By configuring both engines for
the same name, but specifying a higher service ranking for the one using the
local cache one can ensure that the local cache is used for the enhancement
under normal circumstances. However in case the local cache becomes unavailable
the other engine using the remote service will be used for enhancement.
-### EnhancementEngineManager interface
+### Enhancement Engine Manager Interface
-The [EnhancementEngineManager](enhancementenginemanager.html) is the
management interface for EnhancementEngines that can be used by components to
lookup enhancement engines based on their name. There is also OSGI
ServiceTracker like implementation that can be used to track only enhancement
engines registered for a specific set of names.
+The [Enhancement Engine Manager](enhancementenginemanager.html) is the
management interface for enhancement engines that can be used by components to
lookup enhancement engines based on their name. There is also OSGI
ServiceTracker like implementation that can be used to track only enhancement
engines registered for a specific set of names.
-## EnhancementEngine implementations
+## Enhancement Engine Implementations
-A list of EnhancementEngine implementations maintained directly by the Apache
Stanbol community can be found [here](../../engines.html).
-However the EnhancementEngine interface is designed in a way that it should be
possible for advanced Apache Stanbol users to implement own EnhancementEngine
implementations fulfilling their special needs.
+A list of enhancement engine implementations maintained directly by the Apache
Stanbol community can be found [here](../../engines.html).
+However the enhancement engine interface is designed in a way that it should
be possible for advanced Apache Stanbol users to implement own enhancement
engine implementations fulfilling their special needs.
The Stanbol Community would be very happy if users decide to share thoughts
about possible enhancement engines or even would like to contribute addition
engines to the Apache Stanbol project.
Copied:
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/index.mdtext
(from r1242750,
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer.mdtext)
URL:
http://svn.apache.org/viewvc/incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/index.mdtext?p2=incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/index.mdtext&p1=incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer.mdtext&r1=1242750&r2=1242841&rev=1242841&view=diff
==============================================================================
--- incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer.mdtext
(original)
+++
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/enhancer/index.mdtext
Fri Feb 10 16:38:34 2012
@@ -1,17 +1,22 @@
Title: Enhancer
-This stateless interface allows the caller to submit content to the Apache
Stanbol enhancer engines and get the resulting enhancements formatted as RDF at
once without storing anything on the server-side.
+This stateless interface allows the caller to submit content to the Apache
Stanbol [enhancer engines](engines/) and get the resulting enhancements
formatted as RDF at once without storing anything on the server-side.
The content to analyze should be sent in a POST request with the mimetype
specified in the Content-type header. The response will hold the RDF
enhancement serialized in the format specified in the Accept header:
curl -X POST -H "Accept: text/turtle" -H "Content-type: text/plain" \
--data "John Smith was born in London." http://localhost:8080/engines
-The list of mimetypes accepted as inputs depends on the deployed engines. By
default only text/plain content will be analyzed. By using the Metaxa En
+The list of mimetypes accepted as inputs depends on the deployed engines. By
default only text/plain content will be analyzed.
+
+## List of Available Enhancement Engines
+
+Apache Stanbol comes with a [list of predefined enhancement
engines](engines/list.html). These engines are supported by the Apache Stanbol
community. If you would like to implement your own enhancement engine, you
should go on reading this documentation.
+
## Main Interfaces and Utilities
-A __Content Item__ is the unit of content that Stanbol Enhancer can deal with.
It gives access to the binary content that was registered, and the graph that
represents its metadata (provided by client and/or generated). The
__Enhancement Engine__ provides the interface to internal or external semantic
enhancement engines. There will usually be several of those, that the
EnhancementJobManager uses to enhance content items. The __Enhancement Job
Manager__ accepts requests for enhancing ContentItems, and processes them
either synchronously or asynchronously (as decided by the enhancement engines
or by configuration). The __Enhancement Engine Helper__ provides the classes
for the resulting enhancement structure according to the defined __Enhancement
Structure__.
+A __[Content Item](contentitem.html)__ is the unit of content that Stanbol
Enhancer can deal with. It gives access to the binary content that was
registered, and the graph that represents its metadata (provided by client
and/or generated). The __[Enhancement Engine](engines/)__ provides the
interface to internal or external semantic enhancement engines. There will
usually be several of those, that the EnhancementJobManager uses to enhance
content items. The __Enhancement Job Manager__ accepts requests for enhancing
ContentItems, and processes them either synchronously or asynchronously (as
decided by the enhancement engines or by configuration). The __Enhancement
Engine Helper__ provides the classes for the resulting enhancement structure
according to the defined __Enhancement Structure__.
## Enhancement Structure
Modified:
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/factstore/index.mdtext
URL:
http://svn.apache.org/viewvc/incubator/stanbol/site/trunk/content/stanbol/docs/trunk/factstore/index.mdtext?rev=1242841&r1=1242840&r2=1242841&view=diff
==============================================================================
---
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/factstore/index.mdtext
(original)
+++
incubator/stanbol/site/trunk/content/stanbol/docs/trunk/factstore/index.mdtext
Fri Feb 10 16:38:34 2012
@@ -1,12 +1,8 @@
Title: Factstore
-The FactStore is a component that let's use store relations between entities
identified by their URIs. A relation between two or more entities is called a
*fact*. The FactStore let's you store N-ary facts according to a user defined
fact schema. In consequence you can store relations between N participating
entities.
+The FactStore is a component that let's use store relations between entities
identified by their URIs. A relation between two or more entities is called a
*fact*. The FactStore let's you store N-ary facts according to a user defined
fact schema. In consequence you can store relations between N participating
entities. The FactStore only stores the relation and not the entities itself.
It only uses references to entities by using the entities' URI. The entities
itself should be handled by another component, e.g. the
[EntityHub](../entityhub.html). A fact is defined by a fact schema which is
defined over types of entities.
-The FactStore only stores the relation and not the entities itself. It only
uses references to entities by using the entities' URI. The entities itself
should be handled by another component, e.g. the
[EntityHub](../entityhub.html). A fact is defined by a fact schema which is
defined over types of entities.
-
-A fact schema can be defined between an arbitrary number of entities. In most
cases a fact schema is defined between two or three entities. For example, the
fact schema 'works-for' can be defined as a relation between entities of type
'Person' and 'Organization'. The Fact Store interface allows the creation of
custom fact schemata and to store facts according to these custom schemata.
-
-The Fact Store provides a simple way to define and store facts. This component
is meant to be used in scenarios where a simple solution is sufficient and it
is not required to define a complex ontology with reasoning support.
+A fact schema can be defined between an arbitrary number of entities. In most
cases a fact schema is defined between two or three entities. For example, the
fact schema 'works-for' can be defined as a relation between entities of type
'Person' and 'Organization'. The Fact Store interface allows the creation of
custom fact schemata and to store facts according to these custom schemata. The
Fact Store provides a simple way to define and store facts. This component is
meant to be used in scenarios where a simple solution is sufficient and it is
not required to define a complex ontology with reasoning support.
Read on and have a look at a concrete example or go to the [FactStore
specification](specification.html) page for more details. If you need some
information about its realization, read the notes about its [implementation
concept](implementation.html).