An dieser Stelle entsteht die öffentliche Dokumentation für Epigraf 5. Diese Seite ist noch in Bearbeitung.
Der Aufbau von Artikeln wird im Menüpunkt Typen an den Anwendungsfall angepasst. Dort wird festgelegt, wie sich Artikel zusammensetzen, welche Kategoriensysteme es gibt und welche Annotationen beziehungsweise Apparate (Fußnoten, Anmerkungen) möglich sind. Eine vollständige Konfiguration besteht aus Typen für folgende Komponenten:
- Projekte (=projects)
- Artikel innerhalb eines Projekts (=articles)
- Abschnitte innerhalb eines Artikels (=sections)
- Inhalte innerhalb eines Abschnitts (=items)
- Annotationen innerhalb von Textfeldern (=links)
- Fußnoten innerhalb von Textfeldern (=footnotes)
- Kategorien, die in Inhalten und für die Annotation genutzt werden (=properties).
Für jeden Typ wird eine eigene JSON-Konfiguration mit Schlüsseln und Werten angelegt, darin sind beispielsweise die Beschriftungen von Feldern definiert. Nachdem die Typen angepasst und miteinander verknüpft wurden, steht fest, wie Artikel angezeigt und bearbeitet werden können.
Neben der Standardkonfiguration können weitere Darstellungsmodi konfiguriert werden. Dazu werden eigene Typen-Datensätze angelegt, die sich im Modus unterscheiden. Der Modus kann beispielsweise in der Artikelliste über die Schaltflächen im Footer gewählt werden:
- default: Die Standardkonfiguration, die immer vorhanden sein muss. Zusätzliche Modi überschreiben falls vorhanden einzelne Schlüssel in der Standardkonfiguration.
- preview: Einstellungen für die Leseansicht von Artikeln. Dieser Modus gilt grundsätzlich für Gäste.
- coding: Eine Konfiguration zur schnellen Kodierung von Artikeln. In diesem Modus sind nur die explizit freigegebenen Felder bearbeitbar.
Einige Einstellungen finden sich in mehreren Typen wieder:
- Spalten in Tabellenansichten werden über den Schlüssel `columns` definiert.
- Felder, die in Artikeln, Abschnitten oder Inhalten angezeigt werden oder bearbeitbar sind, werden im Schlüssel `fields` aufgeführt.
- Hierarchie und Verknüpfung der Typen:
- Bei Projekten werden im Schlüssel `articles` die möglichen Artikeltypen des Projekts festgelegt.
- Bei Artikeln werden im Schlüssel `sections` die untergeordneten Abschnitte festgelegt.
- Bei Abschnitten werden im Schlüssel `items` die untergeordneten Inhalte festgelegt.
- Für Kategorien-Felder legt der Schlüssel `types` fest, welches Kategoriensystem (properties) verwendet wird
- Für Text-Felder, in die Annotationen eingefügt werden können, legt der Schlüssel `types` fest, welche Annotationen oder Apparate erlaubt sind. Diese werden dann auch in der Toolbar angezeigt.
Die Konfiguration für die Abbildung der Artikel-Inhalte auf RDF-konforme Tripel ist in einem eigenen Abschnitt beschrieben.
Die Zusammensetzung von Artikeln
Artikel (articles)
Ein Artikel beschreibt ein Objekt, etwa einen Inschriftenträger oder einen Brief. 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 |
---|---|
fields | Welche Felder werden im Artikel verwendet? Siehe die Feldkonfiguration. |
columns | Welche Spalten sollen in der Artikelliste angezeigt werden können? Siehe Tabellenkonfiguration. |
preview | Welche Inhalte werden in Vorschaukacheln angezeigt? Hier wird definiert, aus welchen Inhalten (items) die Bilder und Texte entnommen werden. Siehe die Details unten. |
header | Wie setzt sich die Titelzeile der Artikelansicht zusammen? Eine Liste mit Definitionen der Kopfzeileneinträge in der Einzelartikelansicht. |
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 sind für den Artikel relevant? In EpiDesktop werden Exporte über F6 für einzelne Artikel oder F7 für einen Band angestoßen. Dabei wird ein scope-Parameter mit den Werten "article" oder "book" an EpiWeb übergeben. Für die korrekte Vorauswahl der zugehörigen Pipeline kann im pipelines-Objekt zusätzlich der scope-Schlüssel gesetzt werden. Beispiel für eine Konfiguration:
|
footnotes | Welche Fußnotentypen werden im Artikel verwendet und angezeigt? Eine Liste der Typnamen. |
toolbar | Soll die Toolbar beim Start initialisiert werden (true) oder erst bei Bedarf (false)? |
Abschnitte in einem Artikel (sections-Schlüssel)
Die Definition der Abschnitte im sections-Schlüssel eines Artikels bestimmt sowohl die Reihenfolge als auch die Hierarchie beim Anlegen von Artikeln und neuen Abschnitten. Voraussetzung ist, dass entsprechende Abschnitts-Typen angelegt wurden. Die Abschnitte werden dann mit Schlüsseln aufgeführt, die dem Typ entsprechen, weitere Einstellungen erfolgen im Wert.
Im folgenden Beispiel wird festgelegt, dass beim Anlegen eines Artikels eine Inschrift und ein untergeordneter Inschriftenteil (parent-Schlüssel) entstehen sollen. Zudem können anschließend manuell beliebig viele Inschriften-Abschnitte und untergeordnete Inschriftenteile-Abschnitte hinzugefügt werden (count-Schlüssel):
{
"sections": {
"inscription": {
"type": "inscription",
"caption": "Inschrift",
"count": "*"
},
"inscriptionpart": {
"type": "inscriptionpart",
"caption": "Inschriftenteil",
"parent": "inscription",
"count": "*"
}
}
}
Soll ein Abschnitt zwar manuell eingefügt werden können, aber nicht automatisch beim Anlegen eines Artikels, dann wird der default-Schlüssel auf false
gesetzt:
{
"sections": {
"geolocations": {
"type": "geolocations",
"caption": "Standorte",
"count": "*",
"default": false
}
}
}
Ein Abschnitts-Typ kann mehrfach verwendet werden, wenn er durch unterschiedliche Namen differenziert wird, dazu wird der Schlüssel nach dem Schema <sectiontype>[<sectionname>]
gebildet. Dieser Schlüssel kann auch zur Mehrfachverwendung für Unterabschnitte eingesetzt werden. Im folgenden Beispiel wird ein Artikel konfiguriert, der ausschließlich aus text-Abschnitten besteht. Beim Anlegen eines Artikels würden ein Abschnitt mit dem Namen Beschreibung und zwei untergeordnete Abschnitte mit den Namen Objektbeschreibung und Textbeschreibung angelegt werden. Zudem wird die Möglichkeit eingeräumt, weitere Textabschnitte nicht beim Anlegen des Artikels, sondern später manuell hinzuzufügen (default-Schlüssel).
{
"sections": {
"text[Beschreibung]": {
"type": "text",
"caption": "Beschreibung"
},
"text[Objektbeschreibung]": {
"type": "text",
"caption": "Objektbeschreibung",
"parent": "text[Beschreibung]"
},
"text[Textbeschreibung]": {
"type": "text",
"caption": "Textbeschreibung",
"parent": "text[Beschreibung]"
},
"text": {
"type": "text",
"caption": "Weiterer Text",
"count": "*",
"default": false
}
}
}
Die Reihenfolge der Abschnitte beim Anlegen von Artikeln ergibt sich aus der Reihenfolge in der Konfiguration. Anschließend können Abschnitte in der Bearbeitungsansicht manuell verschoben werden. Zudem besteht die Möglichkeit, Abschnitte über eine Gewichtung zu verschieben. Auf diese Weise können etwa mit einer eigenen Konfiguration für den Code-Modus oder den Preview-Modus die inhaltlich relevanten Abschnitte nach oben geholt werden. Negative Gewichte schieben einen Abschnitt nach oben, positive Gewichte nach unten. Im folgenden Beispiel werden die Abschnitte zwar in der Reihenfolge Standorte -> Beschreibung angelegt, aber in umgedrehter Reihenfolge angezeigt:
{
"sections": {
"geolocations" : {
"type": "geolocations",
"caption": "Standorte"
}
"text[Beschreibung]": {
"type": "text",
"caption": "Beschreibung",
"weight": -10
}
}
}
In der folgenden Tabelle findet sich eine Übersicht über die in den Beispielen verwendeten Schlüssel:
Schlüssel | Beschreibung |
---|---|
type | Abschnittstyp |
caption | Name des Abschnitts (optional, ergibt sich anderfalls aus der Konfiguration des Abschnitttyps) |
parent | Schlüssel des übergeordneten Abschnitts, um eine Hierarchie herzustellen (optional). |
default | Standardmäßig werden alle Abschnitte beim Anlegen eines Artikels erstellt. Wenn dies nicht gewünscht ist, muss der default-Schlüssel auf false gesetzt werden. |
weight | Gewichtung des Abschnitts in der Artikelansicht. Positive Gewichte verschieben den Abschnitt nach unten, negative Gewichte nach oben (optional) |
hide | Blendet den Abschnitt vollständig aus (true|false). |
collapse | Im Datenmodus sind standardmäßig alle Abschnitte eingeklappt, im Vorschau- und im Datenmodus sind sie ausgeklappt. Diese Voreinstellung kann mit dem collapse-Schlüssel überschrieben werden (true|false). |
Konfiguration der Artikelvorschau (preview-Schlüssel)
Zusätzlich zur vollständigen Einzelansicht und zur tabellarischen Darstellung können Artikel in Kacheln oder Lanes angezeigt werden. Eine Kachel enthält ein Bild oder einen Textausschnitt, die um zusammenfassende Angaben ergänzt werden können:
Schlüssel | Beschreibung |
---|---|
images | Eine Liste mit itemtypes. Aus der Liste der Items eines Artikels wird das erste Bild ausgewählt. Sind darunter veröffentlichte Bilder, werden diese bevorzugt. |
text | Eine Liste mit itemtypes. Aus der Liste der entsprechenden Items wird der erste Text als Vorschautext angezeigt, sofern kein Bild verfügbar ist. |
summary | Eine Liste mit Spalten, die in der Spaltenkonfiguration definiert sein müssen. Die Inhalte der Spalten werden in der Vorschau als Details angezeigt. |
Das folgende Beispiel definiert eine Kachel mit einem Bild aus dem Inhaltstyp "images", an dessen Stelle falls nicht verfügbar der Text aus dem Inhaltstyp "transcriptions" tritt. Auf der Kachel werden zudem die in den Spalten source, location und date (columns-Schlüssel des Artikels) konfigurierten Inhalte angezeigt:
{
"preview": {
"images": ["images"],
"text": ["transcriptions"],
"summary": ["source", "location", "date"]
}
}
Abschnitte (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)? Eine benannte Liste mit Inhaltsdefinitionen. Aus dieser Liste wird beim Erstellen eines Abschnitts ein leerer Abschnitt erstellt. |
fields | Welche Annotationen sind im Notizfeld möglich? In fields.comment.types wird dazu eine Liste von linktypes angegeben. |
name | Wie soll die Bezeichnung des Abschnitts gebildet werden? Enthält ein Objekt mit folgenden Schlüsseln:
|
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)? |
public | Soll der Abschnitt für Gäste sichtbar sein (true|false)? |
position | Optional. Soll der Abschnitt fixiert dargestellt werden (fixed|false)? Diese Option ist für die Kodieransicht in der Sidebar vorgesehen. |
help | Standardmäßig wird für jeden Abschnitt nach folgendem Muster ein Hilfeschlüssel erzeugt: articletype-<typ>-sectiontype-<typ> . Der Schlüssel setzt sich aus dem Artikeltypen und dem Abschnittstypen zusammen, verbunden durch einen Bindestrich. Beispiel: articleytype-epi-article-sectiontype-images . Dieser Schlüssel muss mit der IRI der Hilfeseite übereinstimmen. Soll für verschiedene Abschnittstypen die gleiche Hilfeseite verwendet werden, dann wird im help -Schlüssel der betroffenen Abschnittstypen dieser gemeinsame Schlüssel eingetragen. |
Inhalte in einem Abschnitt (items-Schlüssel)
Die Definition der Inhalte im items-Schlüssel eines Abschnitts bestimmt, welche Inhalte beim Anlegen von Abschnitten automatisch erzeugt werden und welche Eingabefelder für die Bearbeitung zur Verfügung stehen. Voraussetzung ist, dass entsprechende Inhaltstypen angelegt wurden.
Im folgenden Beispiel wird ein Abschnitt vom Typ "heraldry" definiert, der 0 oder mehr Inhalte enthalten kann. Beim Anlegen wird noch kein Inhalt erzeugt - dafür sorgt die Einstellung im default-Schlüssel:
"items": [
{
"type": "heraldry",
"count": "*",
"default": false
}
]
Eine vollständige Inhaltsdefinition umfasst folgende Schlüssel:
Schlüssel | Beschreibung |
---|---|
type | Inhaltstyp |
default | Standardmäßig wird für jeden Inhaltstyp ein Eintrag erstellt. Wenn dies nicht gewünscht ist, muss der default-Schlüssel auf false gesetzt werden. |
count | Der Wert * bestimmt, dass kein oder beliebig viel Inhalte hinzugefügt werden können. Der Wert 1 legt fest, dass genau ein Inhaltselement erlaubt ist. |
Darstellungsmöglichkeiten (view-Schlüssel)
Der view-Schlüssel eines Abschnitttyps kann entweder einen der in der folgenden Tabelle aufgelisteten Werte enthalten oder ein Objekt, das im name-Schlüssel einen dieser Werte enthält. Mit einem Objekt sind weitere Einstellungen möglich, zum Beispiel um eine gruppierte Tabelle und eine Karte anzuzeigen:
"view": {
"name": "table",
"grouped": false,
"widgets": {
"map": {
"itemtype":"geolocations"
}
}
}
Die folgenden Werte sind im view-Schlüssel eines Sectiontype möglich:
Wert | 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. Um eine gruppierte Tabelle auszugeben, in der die Item-Bezeichnungen in der ersten Spalte erscheinen, wird folgendes Objekt angegeben:
|
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. |
Zusätzlich können Widgets angezeigt werden, die Inhalte zusammenfassen. Es stehen folgende Widgets zur Verfügung:
- map: Es wird eine Karte angezeigt.
- thumbs: Es werden Vorschaubilder angezeigt.
- 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 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.
Inhalte (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 Datensatzes werden genutzt? Siehe die Feldkonfiguration. |
display | Soll der Inhalt 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) |
public | Soll der Inhalt für Gäste sichtbar sein (true|false)? |
fulltext | Enthält der Inhalt Felder, die volltextindiziert werden sollen (true|false)? Zusätzlich muss bei den Feldern im fulltext-Schlüssel die Bezeichnung eines Index angegeben werden (siehe die Feldkonfiguration). |
metadata | Wenn der Inhalt eine Bilddatei (aktuell wird nur jpg unterstützt) enthält, können beim Exportieren automatisch Metadaten in die Bilddatei aufgenommen werden. Dazu wird ein Objekt mit Metadatenschlüsseln und Extraktionsschlüsseln definiert. Die Extraktionsschlüssel geben an, aus welchen Feldern die Daten übernommen werden sollen. Im folgenden Beispiel wird in das Metadatenfeld dc:rights die Angabe aus dem Feld file_copyright übernommen:
|