EN15907-XML-Allgemeine Überlegungen: Unterschied zwischen den Versionen
(→Allgemeine Fragen) |
(→Allgemeine Fragen) |
||
Zeile 32: | Zeile 32: | ||
Zur Differenzierung von <code>vocabularySource</code> und <code>vocSource</code> (oder auch von URI- und String-Identifier) schlage ich vor, dass das Schema einen abstrakten Typ <code>VocabularyType</code> definiert und davon zwei Ableitungen: <code>URIVocabularyType</code> und <code>LocalVocabularyType</code>. Ersterer schreibt für den Elementinhalt und das Attribut <code>VocabularySource</code> als Datentyp <code>xs:anyURI</code> vor, letzterer begnügt sich in beiden Fällen mit <code>xs:anyString</code>. In der XML-Instanz werden die vokabularfähigen Elemente dann typisiert. Du kannst am besten beurteilen, ob der Vorschlag eine praktikable Lösung ist. --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 16:41, 17. Nov. 2017 (CET) | Zur Differenzierung von <code>vocabularySource</code> und <code>vocSource</code> (oder auch von URI- und String-Identifier) schlage ich vor, dass das Schema einen abstrakten Typ <code>VocabularyType</code> definiert und davon zwei Ableitungen: <code>URIVocabularyType</code> und <code>LocalVocabularyType</code>. Ersterer schreibt für den Elementinhalt und das Attribut <code>VocabularySource</code> als Datentyp <code>xs:anyURI</code> vor, letzterer begnügt sich in beiden Fällen mit <code>xs:anyString</code>. In der XML-Instanz werden die vokabularfähigen Elemente dann typisiert. Du kannst am besten beurteilen, ob der Vorschlag eine praktikable Lösung ist. --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 16:41, 17. Nov. 2017 (CET) | ||
+ | |||
+ | ''Ja, das sollte irgendwie klarer herausgearbeitet werden. Ich versuche mich mal daran.'' | ||
+ | |||
+ | ''Mit einer echten LOD-Implementierung würden solche Probleme von selbst verschwinden, denn da wird jedes Vokabularelement, egal ob weltbekannt oder gerade eben ausgedacht, als URI referenziert.''--[[Benutzer:DBalzer|DBalzer]] ([[Benutzer Diskussion:DBalzer|Diskussion]]) 09:07, 29. Nov. 2017 (CET) | ||
---- | ---- |
Version vom 29. November 2017, 08:07 Uhr
Allgemeine Fragen
Müssen wir das Root-Element ExchangeSet in irgendeiner Form in eine der Schemadefinitionen übernehmen? --Mfreiberg (Diskussion) 16:41, 17. Nov. 2017 (CET)
Ich votiere dafür. Das verhindert, dass jemand auf die Idee kommt, sich sich ein eigenes Rahmenelement zu backen. DBalzer
Wofür sind die Attribute sourceID und numeric vorgesehen? --Mfreiberg (Diskussion) 16:41, 17. Nov. 2017 (CET)
sourceId
bietet die Möglichkeit, Knoten in geschachtelten Datenstrukturen eine Identität zu geben. Bei Exporten aus der DIF-Datenbank wären das die UIDs z.B. von Manifestationen, Titeln, Ereignissen, usw.
Solche Knoten-Identitäten sind nützlich, wenn ähnlich strukturierte Daten aus verschiedenen Quellen zusammengefügt werden sollen. Besonders nützlich sind sie im Hinblick auf eine RDF-Darstellung, wo man sogenannte "blank nodes" zu vermeiden oder zu eliminieren versucht (dort bekannt als Skolemisierung[1]).
Die unterschiedlichen Schreibweisen sourceID
und sourceId
im ersten Schema-Release sollten vereinheitlicht, besser noch in nodeId
geändert werden.
Das Attribut numeric
ist eine Altlast, die (soweit ich mich erinnere) mal aus dem bibliothekarischen Umfeld in dieses Schema hineingeraten ist. Mir fällt derzeit keine sinnvolle Anwendung dafür ein.
--DBalzer (Diskussion) 21:08, 28. Nov. 2017 (CET)
Das Schema schreibt den Datentyp xs:anyURI
für das Attribut scheme
vor. In vielen Fällen wird aber kein URI angegeben werden, z.B. UUID im Element Identifier
oder ISIL (ISO 15511) im Element SourceIdentifier
. Gleiches gilt für das Attribut vocSource
in HasAgent/Activity
, das mit local als Defaultwert daherkommt. --Mfreiberg (Diskussion) 16:41, 17. Nov. 2017 (CET)
Betr. Identifier
: ISIL haben einen LOD-Namensraum: [2] ; UUIDs haben einen URN-Namensraum (z.B. urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6).
Die DIF-eigenen Vokabulare sind derzeit tatsächlich noch sowas wie "local", aber die sollten eigentlich so bald wie möglich als LOD-Ressource öffentlich referenzierbar gemacht werden. Vor über 5 Jahren hatte ich mal damit angefangen, davon was in einen RDF-Triplestore zu legen (siehe [3]), aber das ging seinerzeit noch mangels Interesse unter.
Bis wir durchgängig LOD-URIs haben, werden wir die DIF-eigenen Vokabulare noch als Wertelisten parat halten müssen. Da haben sie wenigstens schon den Namensraum des Anwendungsschemas und eine Typzugehörigkeit. --DBalzer (Diskussion) 21:25, 28. Nov. 2017 (CET)
Zur Differenzierung von vocabularySource
und vocSource
(oder auch von URI- und String-Identifier) schlage ich vor, dass das Schema einen abstrakten Typ VocabularyType
definiert und davon zwei Ableitungen: URIVocabularyType
und LocalVocabularyType
. Ersterer schreibt für den Elementinhalt und das Attribut VocabularySource
als Datentyp xs:anyURI
vor, letzterer begnügt sich in beiden Fällen mit xs:anyString
. In der XML-Instanz werden die vokabularfähigen Elemente dann typisiert. Du kannst am besten beurteilen, ob der Vorschlag eine praktikable Lösung ist. --Mfreiberg (Diskussion) 16:41, 17. Nov. 2017 (CET)
Ja, das sollte irgendwie klarer herausgearbeitet werden. Ich versuche mich mal daran.
Mit einer echten LOD-Implementierung würden solche Probleme von selbst verschwinden, denn da wird jedes Vokabularelement, egal ob weltbekannt oder gerade eben ausgedacht, als URI referenziert.--DBalzer (Diskussion) 09:07, 29. Nov. 2017 (CET)
Wie würde Erweiterungen von festen Wertelisten in der ZDB in das Anwendungsschema übernommen werden? Denkbar z.B. beim Typ AgentActivityType
. --Mfreiberg (Diskussion) 16:41, 17. Nov. 2017 (CET)
Mir fällt dazu nur eine Versionierung der Anwendungsschemata ein. Solange einzelne Werte in der Datenbank nicht retrospektiv geändert werden (schönere oder treffendere Bezeichnung oder so), wäre das inkrementell zu machen. Neuere Versionen des Anwendungsschemas würden einfach nur zusätzliche Vokabeln als zulässig definieren, alle bisherigen bleiben gültig.
Retrospektive Änderungen sollten unnötig sein, weil in den Tabellen term
und reldef
zwischen interner (und damit persistenter) Darstellung und (änderbarer) externer Darstellung für Benutzeroberflächen unterschieden wird. --DBalzer (Diskussion) 20:28, 28. Nov. 2017 (CET)
Wie gehen wir mit den Länderkürzeln um, die nicht Teil von ISO 3166-1 sind? DD, D1, D2 etc. Das Attribut scheme
müsste in diesen Fällen anders belegt sein, aber wie? --Mfreiberg (Diskussion) 16:41, 17. Nov. 2017 (CET)
Naiverweise wäre das ein Fall für scheme="local"
. In einem bidirektionalen Datenaustausch gibt es aber mehrere Lokalitäten, so dass wir wohl oder übel hier den Urheber des Ländercodes angeben müssen, also z.B. scheme="DIF"
.
Mit einer echten LOD-Implementierung wären wir hier besser dran. Dann würde der URI-Namensraum das scheme
-Attribut überflüssig machen. Obendrein würde die publizierte RDF-Ressource auch noch angeben können, dass z.B. DIF "DD" äquivalent zu BArch "DDDE" und das wiederum gleichbedeutend mit [4] ist.--DBalzer (Diskussion) 08:54, 29. Nov. 2017 (CET)