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 folgenden 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 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üsselBeschreibung
fieldsWelche Felder werden im Artikel verwendet? Siehe die Feldkonfiguration.
columnsWelche Spalten sollen in der Artikelliste angezeigt werden können? Siehe Tabellenkonfiguration.
previewWelche Inhalte werden in Vorschaukacheln angezeigt? Hier wird definiert, aus welchen Inhalten (items) die Bilder und Texte entnommen werden. Siehe die Details unten.
headerWie setzt sich die Titelzeile der Artikelansicht zusammen? Eine Liste mit Definitionen der Kopfzeileneinträge in der Einzelartikelansicht.
sectionsWelche Abschnitte kann ein Artikel enthalten? Eine benannte Liste mit Abschnittsdefinitionen. Aus dieser Liste wird beim Erstellen eines Artikels ein leerer Artikel erstellt. 
namespacesWelche 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? 

Das pipelines-Objekt enthält als Schlüssel das IRI-Fragment einer Pipeline und im einfachsten Fall als Wert eine Button-Bezeichnung. Diese Buttons werden unterhalb der Artikel erzeugt. Der erste Button wird mit der Tastenkombination F6 belegt.

Bearbeiter:innen sehen beim Exportieren ausschließlich die hier angegebenen Pipelines. Um eine Pipeline  ohne Button verfügbar zu machen, wird anstelle des Wertes ein Objekt angegeben. Das Objekt hat die Schlüssel caption für die Button-Bezeichnung und button mit dem Wert true oder false, um einen Button ein- oder auszublenden.

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:

{
  "di-articles-doc": {
    "caption": "Word",
    "scope": "article"
  },
  "di-epidoc": {
    "caption": "EpiDoc"
  },  
  "di-book-doc": {
    "caption": "Band",
    "scope": "book",
    "button": false
  },
  "di-images": {
    "button":false
  },
  "dio-export-book": {
    "button":false
  },
  "dio-export-img": {
    "button":false
  }
}
footnotesWelche Fußnotentypen werden im Artikel verwendet und angezeigt? Eine Liste der Typnamen.
toolbarSoll 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üsselBeschreibung
typeAbschnittstyp
captionName des Abschnitts (optional, ergibt sich anderfalls aus der Konfiguration des Abschnitttyps)
parentSchlüssel des übergeordneten Abschnitts, um eine Hierarchie herzustellen (optional).
defaultStandardmäßig werden alle Abschnitte beim Anlegen eines Artikels erstellt. Wenn dies nicht gewünscht ist, muss der default-Schlüssel auf false gesetzt werden.
weightGewichtung des Abschnitts in der Artikelansicht. Positive Gewichte verschieben den Abschnitt nach unten, negative Gewichte nach oben (optional)
hideBlendet den Abschnitt vollständig aus (true|false).
collapseIm 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üsselBeschreibung
imagesEine Liste mit itemtypes. Aus der Liste der Items eines Artikels wird das erste Bild ausgewählt. Sind darunter veröffentlichte Bilder, werden diese bevorzugt.
textEine Liste mit itemtypes. Aus der Liste der entsprechenden Items wird der erste Text als Vorschautext angezeigt, sofern kein Bild verfügbar ist.
summaryEine 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üsselBeschreibung
sectionsWelche Unterabschnitte sind vorgesehen (sectiontypes)?
itemsWelche 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. 
fieldsWelche 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: 

  • prefix: Präfix 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)
  • number: Soll die Bezeichnung automatisch aus der Nummer des Abschnitts gebildet werden? (numeric=Zahlenwert | alphabetic=Buchstabennummer | false =keine Nummerierung; default=false)
  • options: Wird hier ein propertytype angegeben, dann wird der Name aus der entsprechenden Kategorienliste übernommen. Im Abschnitt wird nur der Name gespeichert. Soll gleichzeiitig die ID der Kategorie erfasst werden, dann muss dafür ein Eintrag des Abschnitts konfiguriert werden. Das Format des property-Feldes dieses Eintrags wird auf "sectionname" gesetzt.
viewWie wird der Abschnitt dargestellt? Zu den Möglichkeiten siehe unten.
displaySoll der Abschnitt ausgeblendet werden (false)? Soll der Abschnitt hervorgehoben werden (highlight)? Enthält der Abschnitt Zusatzinformationen und soll kleiner dargestellt werden (addendum)?
publicSoll der Abschnitt für Gäste sichtbar sein (true|false)?
positionOptional. Soll der Abschnitt fixiert dargestellt werden (fixed|false)? Diese Option ist für die Kodieransicht in der Sidebar vorgesehen.
helpStandardmäß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üsselBeschreibung
typeInhaltstyp
defaultStandardmäßig wird für jeden Inhaltstyp ein Eintrag erstellt. Wenn dies nicht gewünscht ist, muss der default-Schlüssel auf false gesetzt werden.
countDer 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:

WertBeschreibung
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:

"view": {
    "name": "table",
    "grouped": true
}
stackDie 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üsselBeschreibung
fieldsWelche Felder des Datensatzes werden genutzt? Siehe die Feldkonfiguration.
displaySoll der Inhalt ausgeblendet werden (false)? Soll der Eintrag hervorgehoben werden (highlight)? Ist der Eintrag eine Zusatzinformation, die kleiner dargestellt werden soll (addendum)?
editIst der Inhalt bearbeitbar? (true | false; default = true)
publicSoll der Inhalt für Gäste sichtbar sein (true|false)?
fulltextEnthä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).