2015.05 2016.06

Datentypen

MyCoRe Metadaten-Basistypen

In MyCoRe gibt es eine Reihe von vordefinierten XML-Datenstrukturen zur Abbildung bestimmter mehr oder minder komplexer Daten. Diese Strukturen bilden die MyCoRe-Datentypen, welche von der Dateneingabe bis hin zur Validierung und Datenpräsentation für einen einheitlichen Umgang mit den Daten sorgen. Dabei ist zwischen einfachen, recht atomaren Typen und anwendungsspezifischen, komplexen Typen zu unterscheiden. Eine Auflistung finden Sie in nachfolgender Tabelle.

Einfache Typen Komplexe Typen
MCRMetaBoolean MCRMetaAddress
MCRMetaClassification MCRMetaDerivateLink
MCRMetaISO8601Date MCRMetaHistoryDate
MCRMetsLangText MCRMetaPersonName
MCRMetaLink MCRMetaXML
MCRMetaLinkID
MCRMetaNumber

Tabelle: MyCoRe-Basisdatentypen

Adresse (MCRMetaAddress)

Der Basistyp MCRMetaAddress beinhaltet eine Liste von postalischen Anschriften in der Ausprägung eines XML-Abschnittes. Dabei wird berücksichtigt, dass die Anschrift in verschiedenen Sprachen und in international gängigen Formen gespeichert werden soll. Die einzelnen Subtags sind dabei selbsterklärend. Die Angaben zu type und xml:lang sind optional, ebenso die unter subtag liegenden Tags, jedoch muss mindestens eines ausgefüllt sein. Alle Werte werden als Text betrachtet.

Syntax des Metadatentyps MCRMetaAddress:

<tag class="MCRMetaAddress">
  <subtag type="..." xml:lang="...">
    <country>...</country>
    <state>...</state>
    <zipcode>...</zipcode>
    <city>...</city>
    <street>...</street>
    <number>...</number>
  </subtab>
  ...
</tag>

Beispiel des Metadatentyps MCRMetaAddress:

<addresses class="MCRMetaAddress">
  <address type="Work" xml:lang="de">
    <country>Deutschland</country>
    <state>Sachsen</state>
    <zipcode>04109</zipcode>
    <city>Leipzig</city>
    <street>Augustuspaltz</street>
    <number>10/11</number>
  </address>
  ...
</addresses>

Boolesche Werte (MCRMetaBoolean)

Der Basistyp MCRMetaBoolean beinhaltet eine Liste von Wahrheitswerten mit zugehörigen type Attributen. Folgende Werte sind zulässig:

  • für true - ’true’, ’yes’, ’wahr’ und ’ja’
  • für false - ’false’, ’no’, ’falsch’ und ’nein’

Syntax des Metadatentyps MCRMetaBoolean:

<tag class="MCRMetaBoolean">
  <subtag type="..." xml:lang="..." >
  ...
  </subtab>
  ...
</tag>

Beispiel des Metadatentyps MCRMetaBoolean:

<publishes class="MCRMetaBoolean">
  <publish type="Ausgabe_1" xml:lang="de">ja</publish>
  <publish type="Ausgabe_2" xml:lang="de">nein</publish>
  ...
</publishes>

Klassifikationen (MCRMetaClassification)

Der Basistyp MCRMetaClassification dient der Einbindung von Klassifikationen und deren Kategorien in die Metadaten. Beide Identifizierer zusammen beschreiben einen Kategorieeintrag vollständig. Dabei ist für die categid eine, ggf. mehrstufige, Kategorie-ID einzutragen. Die classid muss vom Typ MCRObjectID sein. Bitte beachten Sie die Hinweise zur Gestaltung der Kategorie-IDs im vorigen Kapitel!

Syntax des Metadaten-Basistyps MCRMetaClassification:

<tag class="MCRMetaClassification">
  <subtag classid="..." categid="..."/>
  ...
</tag>

Beispiel des Metadaten-Basistyps MCRMetaClassification:

<origins class="MCRMetaClassification" heritable="false">
  <origin classid="MyCoReDemoDC_class_1" categid="Unis.Leipzig.URZ"/>
  ...
</origins>

Historische Datumsangaben (MCRMetaHistoryDate)

Der Basistyps MCRMetaHistoryDate ist speziell kreiert, um Datumsangaben für historische Projekte speichern und suchen zu können. Dabei wird sowohl ein verbaler Text, sowie eine konkrete Datumskonvertierung mit dem dazugehörigen Kalender gespeichert. Das Datum wird im Format des angegebenen Kalenders abgelegt, auch für die Zeit vor Einführung des selben. Zur Implementierung des Datentyps wurde die frei verfügbare ICU-Library der Firma IBM genutzt. Sie bietet eine Reihe von Kalendern an, die so für diesen Datentyp nun verfügbar sind. Alle Datumsangaben werden zur internen Verarbeitung in MyCoRe in eine Julian Day Number, also eine fortlaufende Tageszahl, umgerechnet. Diese wird neben einer lesbaren Form in dem Datentyp MCRMetaHistoryDate gespeichert.

Somit ist eine scharfe Datumssuche mit Hilfe der Integer-Daten möglich. Die Eingabe der Daten erfolgt nach den Regeln:

  • Im text -Feld steht ein beliebiger String gemäß den Projektvorgaben. Dieses Feld ist für verschiedene Sprachen wiederholbar.
  • Die Felder von und bis enthalten gregorianische Datumsangaben.
  • Ist für von und/oder bis nichts angegeben, werden Standardwerte genommen. Das sind 1.1.4713 BC und 31.12.3999 AD.
  • Die Felder ivon bzw. ibis enthalten die korrespondierenden Werte zu von bzw. bis.
  • Das calendar -Feld kann die Werte gregorian oder islamic enthalten.
  • Mögliche Notationen für die Datumsangaben sind 01.01.1999 / -01.12.200 / 1035 / 133 BC.

Syntax des Metadaten-Basistyps MCRMetaHistoryDate:

<tag class="MCRMetaHistoryDate" heritable="...">
  <subtag type="...">
    <text xml:lang="...">...</text>
    <von>...</von>
    <ivon>...</ivon>
    <bis>...</bis>
    <ibis>...</ibis>
    <calendar>...</calendar>
  </subtab>
  ...
</tag>

Beispiel des Metadaten-Basistyps MCRMetaHistoryDate:

<date class="MCRMetaHistoryDate" heritable="...">
  <dates type="written">
    <text xml:lang="de">4. Jh. v. Chr.</text>
    <von>BC01.01.399</von>
    <ivon>1575694</ivon>
    <bis>BC31.12.300</bis>
    <ibis>1830997</ibis>
    <calendar>gregorian</calendar>
  </dates>
</date>

Datumsangaben (MCRMetaISO8601Date)

Dieser Metadatentyp ist wie MCRMetaDate für das Speichern von Zeitangaben gedacht. Er bietet jedoch eine höhere zeitliche Auflösung, bis in den Millisekundenbereich. Unterstützt werden alle Formate der Informationsseite des W3C (http://www.w3.org/TR/NOTE-datetime). Sie enthält nähere Informationen zu den Formaten und zur ISO-Norm: ISO 8601 : 1998 (E).

Wie MCRMetaDate unterstützt MCRMetaISO8601Date die Verwendung des type-Attributs. Auf Grund seiner Sprachunabhängigkeit in der Formatierung der Datumsangabe fehlt die Unterstützung für das lang-Attribut. Das Verwenden von MCRMetaISO8601Date ermöglicht eine Syntaxprüfung der Datumsangabe bereits auf XMLSchema-Ebene, durch den dort definierten Datentyp xsd:duration, auf dem der MyCoRe-Datentyp abgebildet wird.

Optional kann ein format-Attribut verwendet werden. Dies erzwingt für das Datum das angegebene Format. So ist bei der Formatangabe „YYYY“ das Datum „2006-01“ ungültig. Ohne die Formatangabe hingegen ist das gleiche Datum gültig, weil es dem unterstützen Format „YYYY-MM“ entspricht.

Syntax des Metadaten-Basistyps MCRMetaISO8601Date:

<tag class="MCRMetaISO8601Date" heritable="...">
  <subtag type="..." format="...">YYYY-MM-DDThh:mm:ss.sTZD</subtag>
</tag>

Beispiel des Metadaten-Basistyps MCRMetaISO8601Date:

<dates class="MCRMetaISO8601Date" heritable="false">
  <date type="sample">2006-01-16T13:20:30.85+01:00</date>
</dates>

Freier Text (MCRMetaLangText)

Der Basistyp MCRMetaLangText dient der Speicherung einer Liste von Textabschnitten mit zugehöriger Sprachangabe. Über das form Attribut kann noch spezifiziert werden, in welcher Form der Text geschrieben ist.

XML-Syntax des Metadaten-Basistyps MCRMetaLangText:

<tag class="MCRMetaLangText" heritable="...">
  <subtag type="..." xml:lang="..." form="...">
    ...
  </subtab>
  ...
</tag>

Beispiel des Metadaten-Basistyps MCRMetaLangText:

<titles class="MCRMetaLangText" heritable="true">
  <title type="maintitle" xml:lang="de" form="plain">
    Mein Leben als MyCoRe-Entwickler
  </title>
</titles>

Externe Links und interne Verknüpfungen (MCRMetaLink und MCRMetaLinkID)

Der Basistyp MCRMetaLink wurde geschaffen, um eine Verknüpfung auf beliebige externe Referenzen zu realisieren. Der Typ MCRMetaLink ist eine Implementation des W3C XLink Standards (siehe ’XLM Linking Language (XLink) Version 1.0’). Auf dieser Basis können mit dem MyCoRe-Metadatentyp MCRMetaLink zwei Arten von Links - eine Referenz und ein bidirektionaler Link erstellt werden. Bei beiden Arten werden jedoch in MCRMetaLink nicht alle Möglichkeiten der XLink Spezifikation ausgeschöpft, da dies für die in MyCoRe benötigten Funktionalitäten nicht erforderlich ist.

Im Referenztyp ist das Attribut xlink:type=’locator’ immer anzugeben. Die eigentliche Referenz wird im xlink:href Attribut notiert. Dabei ist die Referenz eine URL. Daneben können noch weitere Informationen im xlink:label angegeben werden, hier ist aber auf die in der Spezifikation von XLink definierte Zeichenmenge zu achten! Weierhin kann ein xlink:title angegeben werden.

Alternativ dazu besteht die Möglichkeit eines bidirektionalen Links. Dieser wird sowohl in der Link-Quelle wie auch im Link-Ziel eingetragen. Der Typ ist in diesem Fall xlink:type=’arc’. Weiterhin sind die Attribute xlink:from und xlink:to erforderlich. Optional kann noch ein Titel in xlink:title mitgegeben werden.

Der Basistyp MCRMetaLinkID entspricht im Aufbau dem MCRMetaLink. Der einzige Unterschied ist, dass die Attribute xlink:href, xlink:from und xlink:to nur mit MCRObjectIDs belegt werden dürfen. Dieser spezielle Datentyp wird zur Verknüpfung von MyCoRe-Objekten untereinander verwendet. Dabei kommt in der Regel die Referenz-Variante, also xlink:href, zum Einsatz.

XML-Syntax des Metadaten-Basistyps MCRMetaLink:

<tag class="MCRMetaLink" heritable="...">
  <subtag xlink:type="locator" xlink:href="..." xlink:label="..." xlink:title="..."/>
  <subtag xlink:type="arc" xlink:from="..." xlink:to="..." xlink:title="..."/>
  ...
</tag>

XML-Syntax des Metadaten-Basistyps MCRMetaLinkID:

<tag class="MCRMetaLink" heritable="...">
  <subtag xlink:type="locator" xlink:href="..." xlink:title="..."/>
  ...
</tag>

Beispiel des Metadaten-Basistyps MCRMetaLink:

<def.url class="MCRMetaLink" heritable="false">
  <url xlink:type="locator" xlink:href="http://www.zoje.de" xlink:label="ZOJE"
       xlink:title="Eine externe URL"/>
  <url xlink:type="arc" xlink:from="mcr_object_id_1" xlink:to="mcr_object_id_2"
       xlink:title="Link zwischen Objekten"/>
</def.url>

Beispiel des Metadaten-Basistyps MCRMetaLinkID:

<def.ref class="MCRMetaLinkID" heritable="false">
  <ref xlink:type="locator" xlink:href="MCR_mods_00000010" xlink:title="Document 20"/>
</def.ref>

Zahlenwerte (MCRMetaNumber)

Der Basistyp MCRMetaNumber ermöglicht das Speichern und Suchen von Zahlenwerten. Die Zahlendarstellung kann je nach Sprache, d. h. im Deutschen mit Komma und im Englischen mit Punkt, angegeben werden. Weiterhin sind die zusätzlichen Attribute dimension und measurement möglich. Beide Attribute sind optional, ebenso wie das Default-Attribut type.

XML-Syntax des Metadaten-Basistyps MCRMetaNumber:

<tag class="MCRMetaNumber" heritable="...">
  <subtag xml:lang="..." dimension="..." mesurement="...">
    ...
  </subtag>
  ...
</tag>

Beispiel des Metadaten-Basistyps MCRMetaNumber:

<masse class="MCRMetaNumber" heritable="false">
   <mass xml:lang="de" dimension="Breite" mesurement="cm">12,1</mass>
   <mass xml:lang="en" type="neu" dimension="width" mesurement="ft">12.2</mass>
   ...
</masse>

Verknüpfung zu Dateien (MCRMetaDerivateLink)

Der Basistyp MCRMetaDerivateLink ermöglicht auf konkrete Dateien in beliebigen Derivaten zu verlinken.

XML-Syntax des Metadaten-Basistyps MCRMetaDerivateLink:

<tag class="MCRDerivateLink" heritable="...">
  <subtag xlink:type="..." xlink:href="..." xlink:title="...">
    ...
  </subtag>
  ...
</tag>

Beispiel des Metadaten-Basistyps MCRMetaDerivateLink:

<def.derivateLink class="MCRMetaDerivateLink" heritable="false" notinherit="true">
  <derivateLink inherited="0" xlink:type="locator" xlink:href="HisBest_derivate_00000376/RN_0004_0001r.tif" xlink:title="HisBest_derivate_00000376/RN_0004_0001r.tif"/>
</def.derivateLink>

Subselect:

<subselect id="sub.derivate"
         type="servlet"
         href="servlets/MCRMetaDerivateLinkServlet"
         i18n="editor.search.choose.derivate" />

Namen natürlicher Personen (MCRMetaPersonName)

Der Basistyp MCRMetaPerson beinhaltet eine Liste von Namen für natürliche oder juristische Personen. Dabei wird berücksichtigt, dass die Namen in verschiedenen Sprachen und international gängigen Formen auftreten können. Das Attribut type dient der Differenzierung der verschiedenen Namen einer Person, Geburtsname, Synonym, Kosename usw. firstname repräsentiert den/die Vornamen, callname den Rufnamen, surname den Familiennamen, academic den akademischen Titel, peerage den Adelstitel, numeration die Zählnummer (der IIV.), titel zusätzliche Titel (Bischof von), affix und prefix Namenszusätze wie 'von', 'de' usw. fullname enthält nochmal den automatisch zusammengesetzten Namen.

XML-Syntax des Metadaten-Basistyps MCRMetaPersonName:

<tag class="MCRMetaPersonName" heritable="...">
  <subtag type="..." xml:lang="..">
    <firstname>...</firstname>
    <callname>...</callname>
    <surname>...<surname>
    <fullname>...</fullname>
    <academic>...</academic>
    <peerage>...</peerage>
    <numeration>...</numeration>
    <title>...</title>
    <prefix>...</prefix>
    <affix>...</affix>
  </subtag>
  ...
</tag>

Beispiel des Metadaten-Basistyps MCRMetaPersonName:

<tag class="MCRMetaPersonName" heritable="true">
  <subtag type="geburtsname" xml:lang="de">
    <firstname>Lisa Marie</firstname>
    <callname>Lisa</callname>
    <surname>Schnell<surname>
    <fullname>Schnell, Lisa</fullname>
  </subtag>
  <subtag type="familienname" xml:lang="de">
    <firstname>Lisa Marie</firstname>
    <callname>Lisa</callname>
    <surname>Schmidt<surname>
    <fullname>Dr. phil. Freifrau von Schnelle, Lisa</fullname>
    <academic>Dr. phil.</academic>
    <numeration>II.</numeration>
    <title>Fürstin</title>
    <peerage>Freifrau</peerage>
    <prefix>von</prefix>
  </subtag>
  ...
</tag>

Beliebiges XML (MCRMetaXML)

Der Basistyp MCRMetaXML wurde zusätzlich als Container für einen beliebigen XML-Baum in das Projekt integriert. Dieser wird in den Textknoten des Subtags gestellt und kann dort theoretisch beliebig groß sein. Achten Sie aber darauf, dass entsprechend viel Speicherplatz in dem XML-SQL-Store vorgesehen wird.

XML-Syntax des Metadaten-Basistyps MCRMetaXML:

<tag class="MCRMetaXML" heritable="...">
  <subtag type="..." >
   ...
  </subtag>
  ...
</tag>
      

Beispiel für die Definition dieses Datentyps in der Datamodel-Datei:

<-- beliebiges XML-Objekt -->
<element name="teixmls" minOccurs="0" maxOccurs="1">
  <mcrmetaxml name="teixml" class="MCRMetaXML" minOccurs="1" maxOccurs="1"/>
</element>

und ein Beispiel mit Metadaten zum Metadaten-Basistyp MCRMetaXML:

<teixmls class="MCRMetaXML">
  <teixml inherited="0">
    <TEI>
      <teiHeader>
        <title>
          Text Encoding Initiative, ein Dokumentenformat
          zur Kodierung und den Austausch von Texten
        </title>
      </teiHeader>
    </TEI>
  </teixml>
</teixmls>

 Jens Kupferschmidt, Kathleen Neumann - 2016-05-26