Mit den Types wird festgelegt, wie sich Artikel zusammensetzen (Articles, Sections, Items), welche Kategoriensysteme es gibt (Properties) und welche Annotationen (Links) und Apparate (Footnotes) möglich sind.
Articles
Ein Artikel beschreibt ein Objekt. In der Konfiguration wird angegeben, wie ein Artikel in der Einzelansicht und in der tabellarischen Ansicht dargestellt werden soll. Zudem wird festgelegt, welche Abschnitte ein neuer leerer Artikel enthält:
Schlüssel | Beschreibung |
---|---|
header | Wie setzt sich die Titelzeile der Artikelansicht zusammen? Eine Liste mit Definitionen der Kopfzeileneinträge in der Einzelartikelansicht. |
columns | Welche Spalten sollen in der Artikelliste angezeigt werden können? Eine Liste mit Definitionen der Tabellenspalten. |
sections | Welche Abschnitte kann ein Artikel enthalten? Eine benannte Liste mit Abschnittsdefinitionen. Aus dieser Liste wird beim Erstellen eines Artikels ein leerer Artikel erstellt. |
namespaces | Welche Namensräume werden in den norm_data-Feldern verwendet? Das Objekt enthält als Schlüssel den Namespace, zum Beispiel "urn" und als Wert ein Objekt mit den Schlüsseln button und baseurl. Die baseurl enthält die Auflösung des Namespace (z.B. https://nbn-resolving.de/urn:). Wenn ein Button erzeugt werden soll, wird im button-Schlüssel die Beschriftung des Buttons angegeben. |
pipelines | Welche Pipelines werden über einen Button verlinkt? Das Objekt enthält als Schlüssel die Button-Bezeichnung und als Wert den Namen der Pipeline. |
Die Definition der Tabellenspalten enthält:
Schlüssel | Beschreibung |
---|---|
name | Eindeutige Bezeichnung des Feldes. Diese Bezeichnung wird in Abfragen in den Query-Parametern verwendet. |
key | Schlüssel zum Extrahieren der Daten aus dem Artikel. |
caption | Überschrift in der Tabelle |
aggregate | Aggregationsfunktion, wenn mehrere Werte zusammengefasst werden müssen (min, max, count |
sort | Definiert, welche Tabelle für die Sortierung gejoint wird (table, type), welches Feld verwendet wird (field) und inwiefern mehrere Einträge in der Tabelle aggregiert werden (aggregate). Der aggregate-Schlüssel kann die Werte "min", "max" und "count" annehmen. |
Die Definition der Abschnitte bestimmt sowohl die Reihenfolge als auch die Hierarchie:
Schlüssel | Beschreibung |
---|---|
type | Abschnittstyp |
caption | Name des Abschnitts (optional) |
parent | Schlüssel des übergeordneten Abschnitts, um eine Hierarchie herzustellen (optional) |
weight | Gewichtung des Abschnitts in der Einzelartikelansicht. Positive Gewichte verschieben den Abschnitt nach unten, negative Gewichte nach oben (optional) |
Damit die Gewichtung umgesetzt werden kann, müssen die Schlüssel der Abschnitte dem Abschnittstyp entsprechen. Liegen mehrere Abschnitte vom gleichen Typ vor, kann über den Namen weiter differenziert werden. Dazu wird der Schlüssel nach folgendem Schema gebildet: <sectiontype>[<sectionname>]
. Beispiel, um Abschnitte mit dem Typ "text" und dem Namen "Beschreibung" nach oben zu ziehen:
"text[Beschreibung]": {
"type": "text",
"caption": "Beschreibung",
"weight": -6
}
Sections
Ein Abschnitt gruppiert die Inhalte eines Artikels. Abschnitte sind hierarchisch angeordnet und jeder Abschnitt enthält ein Notizfeld. In der Konfiguration wird angegeben:
Schlüssel | Beschreibung |
---|---|
sections | Welche Unterabschnitte sind vorgesehen (sectiontypes)? |
items | Welche und wie viele Einträge enthält ein Abschnitt (itemtypes)? |
fields | Welche Annotationen sind im Notizfeld möglich? In fields.comment.types wird dazu eine Liste von linktypes angegeben. |
prefix | Präfix bei der Bezeichnung des Abschnittes. |
showpath | Soll in der Beschriftung der ganze Pfad dargestellt werden, das heißt die Bezeichnungen übergeordneter Abschnitte? (true | false; default = false) |
view | Wie wird der Abschnitt dargestellt? Zu den Möglichkeiten siehe unten. |
display | Soll der Abschnitt ausgeblendet werden (false)? Soll der Abschnitt hervorgehoben werden (highlight)? Enthält der Abschnitt Zusatzinformationen und soll kleiner dargestellt werden (addendum)? |
Darstellungsmöglichkeiten
Die folgenden Werte sind im view-Schlüssel eines Sectiontype möglich:
Schlüssel | Beschreibung |
---|---|
table | Die Einträge werden tabellarisch aufgelistet, wobei sich die Spaltennamen aus der Felddefinition der Einträge ergeben. Diese Darstellung wird eingesetzt, um Kategorien mit Ergänzungen zu erfassen. Beispiel: eine Liste zitierter Literatur, in der die Titel in einer Spalte und die konkreten Seitenzahlen in einer weiteren Spalte erfasst werden. Für jeden Eintragstyp wird eine eigene Tabelle gebildet. Die Spalten der Tabelle ergeben sich aus den in der Item-Konfiguration angegebenen Feldern. Sind Einträge mit Bildern vorhanden (die auch auf dem Server liegen), dann wird vor der Tabelle eine Kachelansicht aller Bilder angezeigt. |
stack | Die Felder der Einträge werden untereinander aufgelistet, so dass für jedes Feld möglichst viel Platz zur Verfügung steht. Diese Darstellung eignet sich zum Beispiel für größere Textfelder. Auf diese Weise können auch eine Transkription, Übersetzung, Quellenangabe und Datierung eines Textes untereinander angezeigt werden. |
grid | Die Einträge werden in einem Gitter angezeigt. Die Größe des Gitters wird im Abschnitt erfasst (section.layout_cols, section.layout_rows). Jeder Eintrag wird dann in diesem Gitter positioniert, wobei in einer Zelle auch mehrere Einträge gestapelt werden können (items.pos_x, items.pos_y, items.z). Diese Form der Darstellung eignet sich beispielsweise, um die Position von Wappen auf einem Objekt zu erfassen. Die Zählung der Positionen beginnt bei 1. |
tiles | Die Einträge werden als Kacheln dargestellt. Die Kachelansicht eignet sich zur Darstellung von Kategorien mit Bildern (properties.file) - die Bilder werden in einer Kachel links und die anderen Felder rechts ausgegeben. |
Items
Items enthalten die Inhalte eines Artikels. Je nach Type enthält ein Item unter anderem Texte, Kategorien, oder Dateien. Dazu wird angegeben, welche Felder der Datenbank für ein Item verwendet werden.
Schlüssel | Beschreibung |
---|---|
fields | Welche Felder des Eintrags werden genutzt? Siehe unten zur Feldkonfiguration. |
display | Soll der Eintrag ausgeblendet werden (false)? Soll der Eintrag hervorgehoben werden (highlight)? Ist der Eintrag eine Zusatzinformation, die kleiner dargestellt werden soll (addendum)? |
edit | Ist der Inhalt bearbeitbar? (true | false; default = true) |
Feldkonfiguration
Die Feldkonfiguration umfasst im einfachsten Fall eine Liste mit Feldnamen als Schlüssel und Beschriftungen als Werten. Sollen weitere Eigenschaften konfiguriert werden, kann als Wert ein Objekt mit folgenden Schlüsseln angegeben werden:
Schlüssel | Beschreibung |
---|---|
caption | Beschriftung des Feldes. |
showcaption | Soll die Beschriftung angezeigt werden (true | false)? |
display | Soll das Feld ausgeblendet werden (false)? Soll das Feld hervorgehoben werden (highlight)? Ist das Feld eine Zusatzinformation, die kleiner dargestellt werden soll (addendum)? |
format | Wenn der Inhalt eines Feldes etwas anderes als eine Zeichenkette umfasst, wird das Format angegeben:
|
baseurl | Bei Feldern vom Typ imageurl wird der Dateiname des Bildes aus den Feldern file_path und file_name gebildet und an die baseurl angehängt. Beispiel: für eine baseurl: https://www.inschriften.net/fileadmin/ . |
template | Bei JSON-Feldern wird standardmäßig eine Tabelle ausgegeben. Eine kompakte Liste wird mit dem Template "list" erzeugt. |
types | In XML-Feldern: Welche Annotationen sind erlaubt? Es wird eine Liste der Link-Namen oder der Link-Kategorien angegeben. In Property-Feldern: Welche Art von Eigenschaften wird verlinkt? Der Name des Propertytyps wird als Zeichenkette angegeben. |
Properties
Die Kategoriensystem werden in den Properties erfasst. Jeder Propertytype entspricht einem eigenständigen Kategoriensystem.
Links & Footnotes
Die möglichen Annotationen und Anmerkungsapparate werden beide über Linktypen konfiguriert:
- Annotationen zeichnen eine Textstelle mit einem Tag aus. Dabei kann es sich unter anderem um die Kennzeichnung kursiver Texte, die Kennzeichnung von Worttrennern oder verlorener Textteile, um Verweise auf Literatur oder andere Kategorien handeln. Jedes Tag kann weitere Attribute enthalten und auf Kategorien (properties) verweisen.
- Apparate in der Form von Fußnoten enthalten weiteren Text zu einer Textstelle.
Annotationen und Apparate werden in der Datenbank über XML-Tags erfasst und zur Darstellung auf der Seite in HTML-Tags umgewandelt. Die Linkkonfiguration enthält Angaben dazu, wie diese Links dargestellt und wie die Buttons in der Werkzeugleiste gestaltet werden:
Schlüssel | Beschreibung |
---|---|
shortcut | Shortcut zum Einfügen der Annotation. |
toolbutton | Soll in der Werkzeugleiste ein Toolbutton angezeigt werden (true oder false)? |
tag_type | Wie wird das Tag bei der Ausgabe dargestellt?
|
tag_renderer | Optionale Angaben zur Ausgabe der Tags, abhängig von der Art des Tags:
|
attributes | Bei Text-Tags optional ein Objekt mit der Konfiguration von Attributen. Jeder Schlüssel ist ein Attributname, der Wert enthält wiederum die folgenden Schlüssel:
|
html_tag | Die XML-Tags werden für die Anzeige auf der Webseite in HTML-konforme Tags konvertiert. Das Feld gibt an, welches HTML-Tag verwendet werden soll. In der Regel sollten alle XML-Tags in span-Tags konvertiert werden, eine Differenzierung der span-Tags kann über Klassen erfolgen. Jedes konvertierte Tag erhält die Klasse xml_tag. Zusätzlich wird jedes Tag mit einer Klasse nach dem Schema "xml_tag_<name>" versehen. Wenn das XML-Tag zum Beispiel "wtr" heißt, wird nach der Transformation die Klasse "xml_tag_wtr" vergeben. Format-Tags erhalten zusätzlich die Klasse xml_format. Bracket-Tags werden in drei Tags konvertiert. Die öffnende Klammer erhält die Klasse xml_bracket_open, die schließende Klammer die Klasse xml_bracket_close und der enthaltende Text die Klasse xml_bracket_content. |
html_prefix | Bei Bracket-Tags der für die öffnende Klammer verwendete Wert. Bei Text-Tags wird dieser Wert dem in html_content festgelegten Wert vorangestellt. |
html_content | Bei Text-Tags wird dieser Werte bei der Konvertierung zu HTML innerhalb des Tags ausgegeben. So können zum Beispiel Worttrenner durch einen Mittelpunkt dargestellt werden. |
html_postfix | Bei Bracket-Tags der für die schließende Klammer verwendete Wert. Bei Text-Tags wird dieser Wert an den in html_content festgelegten Wert angehängt. |
css_style | CSS-Angaben, die in die Webseite eingebettet werden, um das Tag zu gestalten. Die CSS-Angaben können sich auf die Klassen der konvertierten Tags beziehen (siehe die Konfiguration von html_tag). |
link | Wenn das Tag auf einen anderen Datensatz verweist, dann muss dies im link-Schlüssel angegeben werden. Folgende Werte sind möglich:
Im Fall von properties, internal und external befindet sich der zugehörige Datensatz in der links-Tabelle (Felder from_tab, from_id, from_field, from_tagname, from_tagid). In der Links-Tabelle jeweils in den Feldern link_tab und link_id angegeben, auf welche Tabelle (properties, articles, sections, footnotes) und welchen Datensatz innerhalb der Tabelle verwiesen wird. Achtung: nicht mit dem links-Schlüssel (Plural) verwechseln. |
targets | Wenn das Tag auf einen anderen Datensatz verweist, werden die Tabelle und darin die erlaubten Typen angegeben. Targets ist ein Objekt mit dem Tabellennamen als Schlüssel und einem Array der Typen (z.B. aus den propertytypes oder den sectiontypes.). |
links | Fußnoten können im content-Feld XML-Text enthalten. Analog zur Feldkonfiguration für Items, wird im links-Schlüssel festgelegt, welche Links und damit Tags erlaubt sind. Achtung: nicht mit dem link-Schlüssel (Singular) verwechseln. |
Eine besondere Behandlung erfahren Umbrüche. Umbrüche werden im Editor mit Shift+Enter erzeugt. Sie werden in XML als leere nl-Tags gespeichert und im HTML als alleinstehende br-Tags ausgegeben. In den Types muss dafür ein nl-Link angelegt und wie folgt konfiguriert sein:
{
"tag_type": "break",
"toolbutton": false
}
Sollen Umbrüche in einem Feld möglich sein, dann muss das nl-Tag in der Feldkonfiguration im types-Schlüssel aufgeführt werden.