Commit f3961d25 authored by mrodzis's avatar mrodzis 🐸 Committed by Mathias Goebel
Browse files

Feature/update docs

parent fad32b82
......@@ -58,12 +58,11 @@
</param>
<!-- sample configuration for DokuWiki -->
<param key="dokuwiki.url">https://dokuwiki.example.com</param>
<param key="dokuwiki.space">fontane</param>
<param key="dokuwiki.url">https://www.dokuwiki.org</param>
<param key="dokuwiki.space"></param>
<param key="dokuwiki.whitelist">
<item>entry-page</item>
<item>about</item>
<item>contact</item>
<item>start</item>
<item>features</item>
</param>
</module>
......@@ -108,10 +107,10 @@
</facet>
</param>
</module>
<module key="callgraph">
<!-- the dot command on command line (defaults to Unix) -->
<param key="dot-cmd">dot</param>
<param key="target-dir"/>
</module>
</config>
\ No newline at end of file
</config>
......@@ -67,7 +67,7 @@ else if(starts-with($exist:resource, "textgrid")) then
if($isImage)
then
<dispatch xmlns="http://exist.sourceforge.net/NS/exist">
<redirect url="modules/textgrid/digilib-proxy.xq?id={$id}"/>
<redirect url="modules/textgrid/iiif-proxy.xq?id={$id}"/>
</dispatch>
else
<dispatch xmlns="http://exist.sourceforge.net/NS/exist">
......
......@@ -5,15 +5,16 @@ developing and displaying a digital edition. It focuses on the presentation of
XML documents that follow the guidelines of the Text Encoding Initiative (TEI).
Since 2012 a larger developer community has constantly been working on this
software, which was originally developed at the Berlin-Brandenburg Academy of
Sciences and Humanities (BBAW) as part of the digitization initiative «The
Electronic Life Of The Academy» (TELOTA). Contributors are among others the
BBAW, the Austrian Academy of Sciences (OeAW; as part of the project CLARIN:
Common Language Resources and Technology Infrastructure), the Max Planck
Institute for the History of Science (MPI-WG), the Cologne Center for
eHumanities (CCEH) and the Göttingen State and University Library (SUB; as
Sciences and Humanities (BBAW) as part of the digitization initiative []«The
Electronic Life Of The Academy» (TELOTA)](http://www.bbaw.de/en/telota).
Contributors are among others the
[BBAW](http://www.bbaw.de/), the [Austrian Academy of Sciences](https://www.oeaw.ac.at) (OeAW; as part of the project CLARIN:
Common Language Resources and Technology Infrastructure), the [Max Planck
Institute for the History of Science ](https://www.mpiwg-berlin.mpg.de) (MPI-WG), the [Cologne Center for
eHumanities](http://cceh.uni-koeln.de) (CCEH) and the [Göttingen State and University Library}(https://www.sub.uni-goettingen.de) (SUB; as
part of the project TextGrid).
The software is based on the XML database [eXist](https://exist-db.org) and its
The software is based on the XML database [eXist-db](https://exist-db.org) and its
up to date version itself is a customization. It was developed for the TextGrid
infrastructure. Over the years a few components became obsolete, so the current
version is a completely rewritten one.
......@@ -23,7 +24,7 @@ For a full overview see [SADE's feature list](features.md).
## TextGrid
This version is prepared to present data transferred via the [TextGrid](https://textgrid.de/)
Laboratory. You have to use the SADE-Publisher Plug-In in the Lab.
Laboratory. You can use the [SADE Publish Tool Plug-In](https://wiki.de.dariah.eu/display/TextGrid/Publish+Tool+SADE) in the Lab for an easy data ingest.
## Development
......
# Call graphs (call multigraphs)
This modules examines XQuery modules and creates an SVG representation of their respective call graphs.
This module examines XQuery modules and creates an SVG representation of their respective call graphs.
These call graphs are useful as an overview of how the SADE app and project specific extensions work and can be used as illustration of the app's architecture, for improving a module's structure while developing, ...
To meet the different needs of users, three ways of using this module are possible:
......@@ -63,4 +63,4 @@ This GraphML document is then saved to `/db/apps/sade/callgraph/graphml` and ser
The following image has been generated by the callgraph-module and illustrates how its modules and functions interact:
![Call graph](http://localhost:8080/exist/apps/sade/modules/callgraph/svg/callgraph-modules.svg)
\ No newline at end of file
![Call graph](http://localhost:8080/exist/apps/sade/modules/callgraph/svg/callgraph-modules.svg)
# Confluence-Wiki-Parser
# Confluence wiki parser
Dieses Teilmodul kann **öffentliche** Seiten eines Confluence Wikis parsen, um sie als HTML Seiten darszustellen.
Es ist mit dem Modul für **Mehrsprachigkeit kompatibel**!
This module is able to to parse **public** wiki pages of a Confluence wiki and displays them as HTML pages.
It is fully compatible with the [multilanguage module](multilingual.md).
## Configuration
The parser can be configured at `config.xml` where the URL of the wiki's REST interface has to be stated:
## Konfiguration des Moduls
Die Konfiguration für dieses Modul befindet sich in der `config.xml`. Dort muss lediglich die (Haupt-)URL der REST Schnittstelle des Wikis angegeben werden.
```xml
<param key="confluence.url">https://wiki.de.dariah.eu/rest/api/content/</param>
```
## Allgemeine Benutzung
Nach der Konfiguration kann auf der gewünschten HTML Seite der Inhalt einer Wikiseite folgendermaßen eingebunden werden:
## Usage
After configuring you can insert the HTML serialization of a wiki page by adding the following code on the desired HTML page:
```html
<div data-template="confluence:confluence" data-template-id="44769550"/>
<div data-template="confluence:confluence" data-template-id="$(some-id)"/>
```
Das Attribute `data-template-id` muss durch die pageID der Wikiseite ersetzt werden.
Standardmäßig ist die Datei wiki.html im template vorhanden. Dieser Seite kann die pageID als Parameter übergeben werden. So können Wikiinhalte mit einem gewünschten Templates umrundet werden.
Beispiel: `doku.html?id=44769550`
The variable `$(some-id)` equals to the pageID of the wiki page to be parsed.
An example page, `wiki.html`, is available by default in the `templates` directory of SADE.
You can either change this page's `data-template-id` or pass a parameter to it, e.g. `wiki.html?id=44769550`.
## ... and in combination with the multilanguage module
In order to work properly, please make sure you alreade have configured the multilanguage module as described in the [module's documentation](multilingual.md).
By this the desired languages as well as their respective abbreviations are stated in the `config.xml`.
Now add a mapping for each abbreviation to `<module key="wiki">` in `config.xml` to the Confluence specific macro name of the language.
By default the following mapping is configured:
## Benutzung mit dem Modul Mehrsprachigkeit
Durch das Konfigurieren des Moduls für Mehrsprachigkeit sind die Sprachen über Sprachenkürzel in der `config.xml` angegeben. Fügen sie bitte für jedes dieser Sprachenkürzel (auch das der Defaultsprache) ein Mapping im `<module key="wiki">` mit dem Confluence eigenen Makronamen der Sprache hinzu. Im folgenden Beispiel sind die Sprachen Deutsch, Englisch und Französisch konfiguriert:
```xml
<param key="confluence.lang" description="if the multilanguage plugin is enabled, used languages specified here">
<lang code="de" name="german"/>
......@@ -29,5 +39,8 @@ Durch das Konfigurieren des Moduls für Mehrsprachigkeit sind die Sprachen über
</param>
```
## Funktionsweise
Für die jeweilige Wikiseite wird beim Aufruf des Nutzers geprüft, ob es eine neue Revision gibt. Ist dies der Fall, wird die neue Revision geparst und in der Datenbank gespeichert. Ist das Modul für Mehrsprachigkeit aktiviert, wird für jede konfigurierte Sprache je eine Datei gespeichert.
## How it works
On each page view the module checks if there is a new version of the wiki page available.
If this is the case the page gets parsed and saved.
In case the multilanguage module is activated the parser saves the page for each language stated.
# Confluence-Wiki-Parser
Dieses Teilmodul kann **öffentliche** Seiten eines Confluence Wikis parsen, um sie als HTML-Seiten darszustellen.
Es ist mit dem Modul für **Mehrsprachigkeit kompatibel**.
## Konfiguration des Moduls
Die Konfiguration für dieses Modul befindet sich in der `config.xml`. Dort muss lediglich die (Haupt-)URL der REST-Schnittstelle des Wikis angegeben werden.
```xml
<param key="confluence.url">https://wiki.de.dariah.eu/rest/api/content/</param>
```
## Allgemeine Benutzung
Nach der Konfiguration kann auf der gewünschten HTML-Seite der Inhalt einer Wikiseite folgendermaßen eingebunden werden:
```html
<div data-template="confluence:confluence" data-template-id="44769550"/>
```
Das Attribut `data-template-id` muss durch die pageID der zu parsenden Wikiseite ersetzt werden.
Standardmäßig ist die Datei `wiki.html` im Ordner `templates` vorhanden. Dieser Seite kann die pageID als Parameter übergeben werden. So können Wiki-Inhalte mit einem gewünschten Template umgeben werden.
Beispiel: `wiki.html?id=44769550`
## Benutzung mit dem Modul Mehrsprachigkeit
Durch das Konfigurieren des Moduls für Mehrsprachigkeit sind die Sprachen über Sprachenkürzel in der `config.xml` angegeben. Fügen Sie bitte für jedes dieser Sprachenkürzel (auch das der Defaultsprache) ein Mapping im `<module key="wiki">` mit dem Confluence eigenen Makronamen der Sprache hinzu. Standardmäßig sind die Sprachen Deutsch, Englisch und Französisch konfiguriert:
```xml
<param key="confluence.lang" description="if the multilanguage plugin is enabled, used languages specified here">
<lang code="de" name="german"/>
<lang code="en" name="english"/>
<lang code="fr" name="french"/>
</param>
```
## Funktionsweise
Für die jeweilige Wikiseite wird beim Aufruf des Nutzers geprüft, ob es eine neue Revision gibt. Ist dies der Fall, wird die neue Revision geparst und in der Datenbank gespeichert. Ist das Modul für Mehrsprachigkeit aktiviert, wird für jede konfigurierte Sprache je eine Datei gespeichert.
# Customization
SADE was build to fit the needs of many projects creating digital editions.
For a complete customization, a adaption of some XQuery modules may becomes
necessary. But a few things are made to set up by any user, as long as she is
SADE has been built to fit the needs of many projects creating digital editions.
For a complete customization, an adaption of some XQuery modules may become
necessary. But a few things are made to being set up by any user, as long as she is
familiar with the basics of XML. When you want to start preparing your own
instance, look at the file `config.xml` in the root collection of the application.
There are many things you can set up.
......
......@@ -2,38 +2,42 @@
## Architecture
![architecture](~assets/diagram.svg)
This is image includes draw.io data.
This image includes draw.io data.
## Packages
SADE consists of three EXPath packages to run within the eXist database
environment.
- SADE.xar - the main application ([git](https://gitlab.gwdg.de/SADE/SADE) | [built](https://ci.de.dariah.eu/exist-repo/packages.html?package-id=SADE))
- assets.xar - all static resources ([git](https://gitlab.gwdg.de/SADE/assets) | [built](https://ci.de.dariah.eu/exist-repo/packages.html?package-id=sade_assets))
- search engine - to configure the Lucene index ([git](https://gitlab.gwdg.de/fontane-notizbuecher/fontane-lucene-exist-module) | [built](https://ci.de.dariah.eu/exist-repo/public/fontane-lucene-exist-module-2.0.2.xar))
SADE consists of three EXPath packages to run within the eXist-db
environment:
* SADE.xar - the main application ([git](https://gitlab.gwdg.de/SADE/SADE) | [built](https://ci.de.dariah.eu/exist-repo/packages.html?package-id=SADE))
* assets.xar - all static resources ([git](https://gitlab.gwdg.de/SADE/assets) | [built](https://ci.de.dariah.eu/exist-repo/packages.html?package-id=sade_assets))
* search engine - to configure the Lucene index ([git](https://gitlab.gwdg.de/fontane-notizbuecher/fontane-lucene-exist-module) | [built](https://ci.de.dariah.eu/exist-repo/public/fontane-lucene-exist-module-2.0.2.xar))
## Dependencies and Requirements
Within eXist the following packages are required:
- Markdown Parser
- Function Documentation
- Shared Resources
Within eXist-db the following packages are required:
Further dependencies may defined by [eXist](http://exist-db.org/exist/apps/doc/quickstart.xml).
* Markdown Parser
* Function Documentation
* Shared Resources
Further dependencies may be defined by [eXist-db](http://exist-db.org/exist/apps/doc/quickstart.xml).
Mainly this is Java 8 and sufficient amount of memory 2GiB should be available
for exclusive usage (`Xmx`).
## Build
There are `ant` tasks available in a separate [git repo](https://gitlab.gwdg.de/SADE/build)
. This build script generate a complete package containing the eXist database and all required components. Configure this build via the `generic.build.properties` file.
There are `ant` tasks available in a separate [git repo](https://gitlab.gwdg.de/SADE/build). This build script generates a complete package containing the eXist database and all required components. Configure this build via the `generic.build.properties` file.
Every package can be built separate by calling `ant` in the root directory. The
Every package can be built separately by calling `ant` in the root directory. The
result will be a `build\*.xar` file.
To simplify development you can get a quick set up of the current SADE application on your file system by invoking `ant test`, which creates a runnable database at `test/eXist{$version}/bin/startup.sh`.
## Physical Structure
The file structure is pretty usual for EXPath application within eXist.
To read more on this, the chapter about the Model View Controller in the eXist
The file structure is pretty usual for EXPath application within eXist-db.
To read more on this, the chapter about the Model View Controller in the eXist-db
book is highly recommended.
All basic files are stored in the root directory, especially the main configuration
All basic files are stored in the app root directory, especially the main configuration
and the controller.xql (the main router in the MVC model), index configuration
and package descriptions.
......@@ -46,4 +50,11 @@ and package descriptions.
```
## Request Processing by Example
All requests for HTML pages are handled by the controller.xql
All requests for HTML pages are handled by the `controller.xql`. Please see the
documentation of eXist-db on [MVC and Pipelines](http://exist-db.org/exist/apps/doc/urlrewrite.xml#D3.29).
## Configuration
All required and additional parameters are set within `config.xml`. Parameters
are parsed by the config module (`config.xqm`). The most demanded function is
`config:get($key)` and `config:get($key, $module)`. They will return any data
stored in the requested part in `config.xml`.
# DokuwikiParser
> This module was developed in the project on Theodor Fontanes Notebooks.
To use it with the current version of SADE and any other instance of DokuWiki,
some adjustments to the code are needed. (Approx. 8h for coding, 4h for testing
and 4h for documentation.)
If you like to use it, please get in contact with us. We will help you.
To be able to maintain the pages containing content about project, documentation
and other stuff an comfortable editor and a system that stores the history of a
document is very helpful. In many cases projects using wikis for communication,
and other stuff a comfortable editor and a system that stores the history of a
document is very helpful. In many cases projects use wikis for communication,
coordination and as a general knowledge base. By adding selected pages to a
white-list, the wiki may be become the place for editing the textual content of
the SADE webpage.
The dokuwikiParser was developed by the project on Fontane-Notizbücher.
DokuWiki is a common wiki software. To include a page from DokuWiki the following
parameters in `config.xml` need adjustment:
```xml
<!-- sample configuration for DokuWiki -->
<param key="dokuwiki.url">https://dokuwiki.example.com</param>
<param key="dokuwiki.space">fontane</param>
<param key="dokuwiki.whitelist">
<item>entry-page</item>
<item>about</item>
<item>contact</item>
</param>
```
The dokuwikiParser was developed by the project on [Fontane's notebooks](http://fontane-nb.dariah.eu).
All the code is in `modules/wiki/wiki.xqm`.
# Faceted-Search
# Faceted search
relations to other documents:
+ [index configuration](index-configuration.md)
This document is also related to:
* [index configuration](index-configuration.md)
## Configuration – Base
As always the configuration is stored at `config.xml` in the applications root
## Configuration: basics
As always the configuration is stored at `config.xml` in the application's root
collection. Please look for `<module key="faceted-search">`.
Besides the facets there are several options and endpoints to configure:
......@@ -14,21 +15,24 @@ Besides the facets there are several options and endpoints to configure:
|hits-per-page|hits pagination|
|kwic-hits|KWIC hits to show per document|
|kwic-width|how many left/right neighbors to show for every hit|
|query-root|XML node the query is send to; **always** use one that is specified in your data collections `collection.xconf` (and so available for Lucene)|
|query-root|XML node the query is sent to; **always** use one that is specified in your data collection's `collection.xconf` (and by this available for Lucene)|
|result-title|title for a document hit|
|result-xslt|XSLT to apply to the hits|
|thumbnail|!LEGACY show/hide thumbnails for a document|
|viewer-html|the link that every result points to|
## Configuration Facets
## Configuration: Facets
To set up own facets you have to provide a `@key` (for internal usage and
debugging), a `@title` (used as headline) and a corresponding XPath that is
applied to all hits on a `descendant-or-self` axis.
When a namespace is needed that is not specified in `modules/faceted-search.xqm`,
there are three possible options:
+ specify namespace there
+ use a wildcard namespace `*:` (untested)
+ a valid explicit QName notation may be added here (untested).
* specify namespace there
* use a wildcard namespace `*:` (untested)
* a valid explicit QName notation may be added here (untested).
Example configuration:
```xml
<param key="facets">
......
# Features
## general
## General
* professional template
* easy customizing
* multi-language support
* a [highlight.js](https://highlightjs.org/) compatible [code viewer](code-viewer.md)
* wiki parser
* [multi-language support](multilingual.md)
* [wiki parser](wikiParser.md)
* synchronize selected wiki pages
* Confluence
* Dokuwiki
* for [Confluence](confluenceParser.md)
* for [DokuWiki](dokuwikiParser.md)
* all features from [exist-db](https://exist-db.org), e.g. REST interface
* a [highlight.js](https://highlightjs.org/) compatible [code viewer](code-viewer.md)
## search
* faceted search
* preconfigured indexes
## Search
* [faceted search](faceted-search.md)
* [preconfigured indexes](index-configuration.md)
* Lucene string analyzer
* configured for TEI
* configuration and maintenance of charmaps and synonyms
* Range Index
## TextGrid specific
* TextGrid clients
* [TextGrid clients](tgclients.md)
* pull data from the TextGrid Repository
* publish data from the TextGridLab with SADE-Publisher
* validation against RelaxNG schema on publish
* store data in the TextGrid Repository
* usage of IIIF image server from TextGrid
* usage of [IIIF image server from TextGrid (IIIF Proxy)](images.md)
* completely compatible with [TextGrid Metadata Scheme](https://wiki.de.dariah.eu/display/TextGrid/Metadata)
## development
* create call graphs of modules
* create [call graphs](callgraphs.md) of modules
* prepared for optional prerendering and caching of transformations
* fork/download SADE projects
* [fork/download SADE projects](forking.md)
## Third party addons
* SemToNotes
* TEI stylesheets (XSLT)
* [SemToNotes](https://hkikoeln.github.io/SemToNotes/)
* [TEI stylesheets (XSLT)](http://www.tei-c.org/Tools/Stylesheets/)
* Markdown parser
# Fork
When working with a SADE instance users usually start manipulating the output,
preparing own transformations or want to use a different configuration for the
lucene index. These changes should be tracked in a Version Control System like
*git* and also they should be deployed to a standalone application that does not
interfere with others. That's why SADE offers a mechanism to fork any instance at
any state. Developers can use this to continue development and to new users it
Lucene index. These changes should be tracked in a version control system like
*git* and should be deployed to a standalone application that does not
interfere with others.
That's why SADE offers a mechanism to fork any instance at
any state. Developers can use this to continue development and for new users it
offers a playground for testing purposes.
At the SADE Publisher within the Lab enter a new project name at the input field
At the SADE Publisher within the TextGridLab enter a new project name at the input field
in the first panel (1).
[SCREENSHOT]
![Forking step 1](http://localhost:8080/exist/apps/sade/templates/img/publisher-1.png]
Click on "create" (2) and wait until you get redirected to your own instance.
[Enter a new secure password!]
To continue you have to enter new credentials to the SADE Plugin configuration.
> URL: append -ProjectName to "/sade
>
> User: ProjectName
>
> Password:
To continue you have to enter new credentials to the SADE Plugin configuration:
* URL: append -ProjectName to "/sade
* User: ProjectName
* Password:
The username will be the same as the project name and you have to enter the
formerly typed password here as well.
# Download & Tracking changes
You can download any application by clicking on the download button at the SADE
Publihser GUI. This gives you a XAR package according to the EXPath package
standard which is in fact a ZIP archive.
Publisher GUI. This gives you a XAR package according to the EXPath package
standard (which is in fact a ZIP archive).
When any further development is planned, fork the offical SADE repo from
[https://gitlab.gwdg.de/SADE/SADE](https://gitlab.gwdg.de/SADE/SADE) clone the
repo to your local machine and replace the files with those from the XAR archive.
......
# Images
SADE offers two ways for dealing with images:
1. using TextGrid's image Server (recommended)
2. storing images as binary data directly in the database
## TextGrid Image Server
SADE utilizes eXist-db to store and process XML data; but apart from the
capability of storing any binary data in the database, processing and caching of
image data should be done outside of the database. Fortunately TextGrid offers
an instance of [DigiLib to process image data from the TextGrid Repository](https://dev.textgridlab.org/doc/services/submodules/tg-iiif-metadata/docs_tgrep/index.html).
### Publish image data
For SADE this means that no image data has to be transferred to the database.
**Publishing image data is disabled by default**, but a list of all images
(URI, title and format) offered to the database is stored in a document.
This list of URIs is used by the IIIF-Proxy tool. The publisher's output in this
case is `Image: some metadata stored.`. Developers may edit the function
`local:image-store($meta)` at `connect.xqm` and its corresponding call to store
binary data.
### IIIF-Proxy
The `iiif-proxy.xq` is a module for displaying image data from the TextGrid
Repository via a local URL. It receives the URI as a GET-parameter. On a local
instance the URL [http://localhost:8080/exist/apps/sade/modules/textgrid/iiif-proxy.xq?id=textgrid:18wz6](http://localhost:8080/exist/apps/sade/modules/textgrid/iiif-proxy.xq?id=textgrid:18wz6)
will return a image.
Images in the list described above are also available via the short URL:
[http://localhost:8080/exist/apps/sade/textgrid:18wz6](http://localhost:8080/exist/apps/sade/textgrid:18wz6).
This is handled by the `controller.xql`.
......@@ -3,54 +3,45 @@ SADE ships with preconfigured indexes to be found in the files `collection.xconf
For larger data sets a good index configuration helps to provide adequate load
timings.
**Attention**: To take effect changes must be done in the corresponding
__Attention__: To take effect changes must be done in the corresponding
resources at `/db/system/config/`. The the post installation script copies the
files over there. This is just to preserve the configuration in the EXPath
package of this application (and the git repo).
## Range Index
The range index is used for fast key/value lookups. You will find more information in the eXist-db documentation [website](http://exist-db.org/exist/apps/doc/newrangeindex.xml).
Queries are *may* optimized by automatic index lookups when they provide paths.
The range index is used for fast key/value lookups. You will find more information in the [eXist-db documentation](http://exist-db.org/exist/apps/doc/newrangeindex.xml).
Queries are *may* optimized by automatic index look-ups when they provide paths.
## Lucene Fulltext Index
For all text nodes in the XML resources, Lucene provides an index to query for
For all text nodes in the XML resources Lucene provides an index to query for
words and phrases. It is used by the [faceted search module](faceted-search.md).
With a standard installation of SADE, a customized and configurable [String Analyzer](https://gitlab.gwdg.de/fontane-notizbuecher/fontane-lucene-exist-module/) is available. It is installed as a XAR library.
For more information on the built-in lucene, please look at the [eXist
For more information on the built-in Lucene, please look at the [eXist
manual](http://exist-db.org/exist/apps/doc/lucene.xml).
## Current Configurations
### `/collection.xconf`
Within the root collection, the configuration contains the RESTXQ trigger only,
that enables REST annotations for function calls to provide paths and convert
folders to parameter.
**This currently not used by SADE.** All paths additional to the collections and
resources stored in the database are provided by the URL rewriter at `/controller.xql`.
### `textgrid/agg/collection.xconf` and `textgrid/rdf/collection.xconf`
Enables the RDF index. This is an optional feature that requires the
`RDF index module` from a [separate package](https://github.com/ljo/exist-sparql).
### `textgrid/tile/collection.xconf`
This configures the range index for objects generated with the text-image-link editor. Indexes are configured for link targets and shapes.
### `textgrid/meta/collection.xconf`
Within this collection all textgrid metadata is stored. Usually queries are on the
complete URI in the `tgmd:textgridUri` element and the title from `tgmd:title`.
### `textgrid/data/collection.xconf`
This configures the Lucene index and a range index.
#### Lucene
`/collection.xconf` | Within the root collection, the configuration contains the RESTXQ trigger only, that enables REST annotations for function calls to provide paths and convert folders to parameter. **This currently not used by SADE.** All paths additional to the collections and resources stored in the database are provided by the URL rewriter at `/controller.xql`.
`textgrid/agg/collection.xconf` and `textgrid/rdf/collection.xconf` | Enables the RDF index. This is an optional feature that requires the `RDF index module` from a [separate package](https://github.com/ljo/exist-sparql).
`textgrid/tile/collection.xconf` | This configures the range index for objects generated with TextGrid's [text-image-link editor](https://wiki.de.dariah.eu/display/TextGrid/Text+Image+Link+Editor). Indexes are configured for link targets and shapes.
`textgrid/meta/collection.xconf` | Within this collection all TextGrid metadata is stored. Usually queries are on the complete URI in the `tgmd:textgridUri` element and the title from `tgmd:title`.
`textgrid/data/collection.xconf` | This configures the Lucene index and a range index.
### Lucene
Character mappings and a synonym list are stored in separate files on the file system.
The publish GUI puts text files (text/plain) there. This means that you can maintain
these files from outside the database, via the Lab or any other external tool.
##### Charmaps
#### Charmaps
When an object named `charmap.txt` comes in via the Publisher, this file will be
stored on the system at `$EXIST_HOME`. It have to comply to the Lucene standard.
##### Synonyms
stored on the system at `$EXIST_HOME`. It has to comply to the Lucene standard.
#### Synonyms
Same applies to a `synonyms.txt`.
##### TEI data
Define the nodes a text index should be prepared with `<text qname="tei:TEI" analyzer="fontane"/>`. To index words that are divided in different text nodes because of inline elements, these elements should be defined with `<inline qname="tei:g"/>` (optional). Text nodes in elements may not appear in the index can be defined with `<ignore qname="tei:del"/>` (optional).
#### Range
The entries here are just for example. They are used within the Fontane-Notizbücher
#### TEI data
To define the nodes a text index should be prepared with `<text qname="tei:TEI" analyzer="fontane"/>`. To index words that are divided in different text nodes because of inline elements, these elements should be defined with `<inline qname="tei:g"/>` (optional). Text nodes in elements may not appear in the index can be defined with `<ignore qname="tei:del"/>` (optional).
### Range
The entries here just serve as an example. They are used within the Fontane-Notizbücher
project but should usually not interfere with custom data.
# Limitations
## documentation structure and URL rewriting
## Documentation structure and URL rewriting
A flat hierarchy must be applied to the [`/docs`](./) directory and so there are no
directories allowed within. The reason is that we want to be able to view the
documentation within the git repo\`s webinterface and at the SADE website.
directories allowed within. The reason for this is that we want to be able to view the
documentation within the git repo\`s web interface and on the SADE website.
Therefore we use a set of redirections and forwards within the `controller.xql`.
The documentation is available via direct URL like `/docs/about.md`. Additionally
......
# Mehrsprachigkeit
Dieses Modul ermöglicht mehrsprachige Inhalte. Standardmäßig ist Deutsch als Defaultsprachig eingestellt und Englisch als Alternativsprache.
Dieses Modul ermöglicht mehrsprachige Inhalte. Standardmäßig ist Deutsch als Default- und Englisch als Alternativsprache eingestellt.
## Konfiguration des Moduls
Die Konfiguration für dieses Modul befindet sich in der `config.xml`.
Dort muss unter dem Modul `multilanguage` im Parameter `lang.enabled` "true" stehen und im Parameter `lang.default` eine Defaultsprache (bzw. das entsprechende Sprachenkürzel) angegeben werden. Unter dem Parameter `lang.alt` können beliebig viele weitere Sprachen hinzugefügt werden. Diese müssen mit einem Semikolon getrennt werden. Im folgenden Beispiel sind die Sprachen Deutsch, Englisch und Französisch konfiguriert:
```xml
<module key="multilanguage">
<param key="lang.enabled">true</param>
......@@ -12,7 +13,9 @@ Dort muss unter dem Modul `multilanguage` im Parameter `lang.enabled` "true" ste
<param key="lang.alt" description="a semicolon seperated list of alternative languages">en;fr</param>
</module>
```
Für jede Sprache muss in der `lang.xml` unter dem key="Language" das Sprachenkürzel und der Sprachenname in der entsprechenden Sprache vorhanden sein. Per Default sind folgende Sprachen schon eingetragen:
```xml
<word key="Language">
<lang key="de">Deutsch</lang>
......@@ -22,16 +25,17 @@ Für jede Sprache muss in der `lang.xml` unter dem key="Language" das Sprachenk
```
## Benutzung
In der Navigationsleiste `navigation.xml` müssen für jede zusätzlich zu der Defaultsprache konfigurierten Sprache ein Label erstellt werden. Beispiel für Deutsch als Defaultsprache und Englisch als Zweitsprache:
In der Navigationsleiste `navigation.xml` muss für jede zusätzlich zu der Defaultsprache konfigurierten Sprache ein Label erstellt werden. Beispiel für Deutsch als Defaultsprache und Englisch als Zweitsprache:
```xml
<submenu label="Weiterführende Links" label-en="Further Links">
```
Um einzelne Wörter, wie Überschriften, auf HTML-Seiten sprachenspezifisch anzeigen zu lassen benutzen sie DIV- oder SPAN-Element mit dem Parameter `data-template="lang:translate"` und einem selbstgewählten `data-template-content` Parameter. Beispiel:
Um einzelne Wörter, wie Überschriften, auf HTML-Seiten sprachenspezifisch anzeigen zu lassen, benutzen Sie `div`- oder `span`-Elemente mit dem Parameter `data-template="lang:translate"` und einem selbstgewählten `data-template-content`-Parameter. Beispiel:
```html
<span data-template="lang:translate" data-template-content="Publications"/>
```
Dieser `data-template-content` Parameter muss einzigartig sein und zusätzlich in der `lang.xml` erstellt werden.
Folgendes Beispiel zeigt die Übersetzungen für das Wort "Search" in Deutsch, Englisch und Französisch:
Folgendes Beispiel zeigt die Übersetzungen für das Wort "Publications" in Deutsch, Englisch und Französisch:
```xml
<word key="Publications">
<lang key="de">Publikationen</lang>
......@@ -41,4 +45,4 @@ Folgendes Beispiel zeigt die Übersetzungen für das Wort "Search" in Deutsch, E
```
## Funktionsweise
Das Modul funktioniert mit dem GET-Parameter "lang". Dieser wird an interne Links automatisch angehängt. Dieses Modul ist kompatibel mit dem Modul Confluence Wiki. Um sprachenspezifische Inhalte aus dem Wiki darzustellen nutzen Sie bitte die Confluence eigenen Makros (z.B. German, English, ...).