EN15907-XML-Allgemeine Überlegungen: Unterschied zwischen den Versionen

Aus DIF Filmographie Wiki
Wechseln zu: Navigation, Suche
 
(9 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 3: Zeile 3:
 
Müssen wir das Root-Element [[EN15907-XML-ExchangeSet|ExchangeSet]] in irgendeiner Form in eine der Schemadefinitionen übernehmen? --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 16:41, 17. Nov. 2017 (CET)
 
Müssen wir das Root-Element [[EN15907-XML-ExchangeSet|ExchangeSet]] in irgendeiner Form in eine der Schemadefinitionen übernehmen? --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion: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.'' [[Benutzer:DBalzer|DBalzer]]
 +
 +
:: Dann wäre ich dafür, das Element [[EN15907-XML-ExchangeSet|ExchangeSet]] in das Basis-Schema aufnehmen. --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 15:47, 30. Nov. 2017 (CET)
 +
 +
----
  
 
Wofür sind die Attribute [[EN15907-XML-Attribut-sourceID|sourceID]] und [[EN15907-XML-Attribut-numeric|numeric]] vorgesehen? --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 16:41, 17. Nov. 2017 (CET)
 
Wofür sind die Attribute [[EN15907-XML-Attribut-sourceID|sourceID]] und [[EN15907-XML-Attribut-numeric|numeric]] vorgesehen? --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 16:41, 17. Nov. 2017 (CET)
  
 +
: ''<code>sourceId</code> 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[https://www.w3.org/wiki/BnodeSkolemization]).''
 +
 +
: ''Die unterschiedlichen Schreibweisen <code>sourceID</code> und <code>sourceId</code> im ersten Schema-Release sollten vereinheitlicht, besser noch in <code>nodeId</code> geändert werden.''
 +
 +
: ''Das Attribut <code>numeric</code> 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.'' --[[Benutzer:DBalzer|DBalzer]] ([[Benutzer Diskussion:DBalzer|Diskussion]]) 21:08, 28. Nov. 2017 (CET)
 +
 +
:: Danke für die Erläuterungen. Ich votiere für die Änderung von <code>sourceID</code>/<code>sourceId</code> in <code>nodeID</code>. Damit ist der Elementname aussagekräftiger. --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 15:47, 30. Nov. 2017 (CET)
 +
 +
----
  
 
Das Schema schreibt den Datentyp <code>xs:anyURI</code> für das Attribut <code>scheme</code> vor. In vielen Fällen wird aber kein URI angegeben werden, z.B. ''UUID'' im Element <code>Identifier</code> oder ''ISIL (ISO 15511)'' im Element <code>SourceIdentifier</code>. Gleiches gilt für das Attribut <code>vocSource</code> in <code>HasAgent/Activity</code>, das mit ''local'' als Defaultwert daherkommt.  --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 16:41, 17. Nov. 2017 (CET)
 
Das Schema schreibt den Datentyp <code>xs:anyURI</code> für das Attribut <code>scheme</code> vor. In vielen Fällen wird aber kein URI angegeben werden, z.B. ''UUID'' im Element <code>Identifier</code> oder ''ISIL (ISO 15511)'' im Element <code>SourceIdentifier</code>. Gleiches gilt für das Attribut <code>vocSource</code> in <code>HasAgent/Activity</code>, das mit ''local'' als Defaultwert daherkommt.  --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 16:41, 17. Nov. 2017 (CET)
  
 +
: Betr. <code>Identifier</code>: ''ISIL haben einen LOD-Namensraum: [http://sigel.staatsbibliothek-berlin.de/en/suche/linked-data-service/] ; 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 [http://filmstandards.org/fsc/index.php/Filmstandards.org_root_namespace]), 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.'' --[[Benutzer:DBalzer|DBalzer]] ([[Benutzer Diskussion:DBalzer|Diskussion]]) 21:25, 28. Nov. 2017 (CET)
 +
 +
:: Danke für den Hinweis auf die Namensräume! Sollte das Attribut <code>scheme</code> dann nicht im Fall der UUIDs mit "urn:uuid" und im Fall der ISIL-Nummern mit "http://ld.zdb-services.de/resource/organisations/" belegt werden oder wird das mit den Belegungen "uuid" und "ISIL (ISO 15511)" impliziert?
 +
 +
:: Der RDF-Triplestore für das DIF-Vokabular ist höchst interessant. Solange das aber noch nicht spruchreif ist, sollten wir deinem Vorschlag folgen und das Attribut <code>scheme</code> mit "DIF" belegen und im Anwendungsschema die Wertelisten parat halten. --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 15:47, 30. 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)
 
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)
 +
 +
:: Dem stimme ich zu. Insofern nehme ich meinen ersten Vorschlag zurück und fände es nun besser, wenn es nur noch ein einziges Attribut, also entweder <code>vocabularySource</code> oder und <code>vocSource</code>, gäbe. Für das DIF-Vokabular werden wir, solange es noch keine Vokabular-URIs gibt, das Attribut nicht belegen. --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 15:47, 30. Nov. 2017 (CET)
 +
 +
 +
----
  
 
Wie würde Erweiterungen von festen Wertelisten in der ZDB in das Anwendungsschema übernommen werden? Denkbar z.B. beim Typ <code>AgentActivityType</code>.  --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 16:41, 17. Nov. 2017 (CET)
 
Wie würde Erweiterungen von festen Wertelisten in der ZDB in das Anwendungsschema übernommen werden? Denkbar z.B. beim Typ <code>AgentActivityType</code>.  --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion: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 <code>term</code> und <code>reldef</code> zwischen interner (und damit persistenter) Darstellung und (änderbarer) externer Darstellung für Benutzeroberflächen unterschieden wird.'' --[[Benutzer:DBalzer|DBalzer]] ([[Benutzer Diskussion: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 <code>scheme</code> müsste in diesen Fällen anders belegt sein, aber wie?  --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 16:41, 17. 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 <code>scheme</code> müsste in diesen Fällen anders belegt sein, aber wie?  --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 16:41, 17. Nov. 2017 (CET)
 +
 +
: ''Naiverweise wäre das ein Fall für <code>scheme="local"</code>. 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. <code>scheme="DIF"</code>.''
 +
 +
: ''Mit einer echten LOD-Implementierung wären wir hier besser dran. Dann würde der URI-Namensraum das <code>scheme</code>-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 beides wiederum gleichbedeutend mit [http://www.wikidata.org/entity/Q16957] ist.''--[[Benutzer:DBalzer|DBalzer]] ([[Benutzer Diskussion:DBalzer|Diskussion]]) 08:54, 29. Nov. 2017 (CET)
 +
 +
:: Das sollte das Ziel sein. Bis dahin arbeiten wir, wie oben schon vorgeschlagen, mit <code>scheme="DIF"</code>. --[[Benutzer:Mfreiberg|Mfreiberg]] ([[Benutzer Diskussion:Mfreiberg|Diskussion]]) 15:47, 30. Nov. 2017 (CET)

Aktuelle Version vom 30. November 2017, 14:47 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
Dann wäre ich dafür, das Element ExchangeSet in das Basis-Schema aufnehmen. --Mfreiberg (Diskussion) 15:47, 30. Nov. 2017 (CET)

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)
Danke für die Erläuterungen. Ich votiere für die Änderung von sourceID/sourceId in nodeID. Damit ist der Elementname aussagekräftiger. --Mfreiberg (Diskussion) 15:47, 30. 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)
Danke für den Hinweis auf die Namensräume! Sollte das Attribut scheme dann nicht im Fall der UUIDs mit "urn:uuid" und im Fall der ISIL-Nummern mit "http://ld.zdb-services.de/resource/organisations/" belegt werden oder wird das mit den Belegungen "uuid" und "ISIL (ISO 15511)" impliziert?
Der RDF-Triplestore für das DIF-Vokabular ist höchst interessant. Solange das aber noch nicht spruchreif ist, sollten wir deinem Vorschlag folgen und das Attribut scheme mit "DIF" belegen und im Anwendungsschema die Wertelisten parat halten. --Mfreiberg (Diskussion) 15:47, 30. 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)
Dem stimme ich zu. Insofern nehme ich meinen ersten Vorschlag zurück und fände es nun besser, wenn es nur noch ein einziges Attribut, also entweder vocabularySource oder und vocSource, gäbe. Für das DIF-Vokabular werden wir, solange es noch keine Vokabular-URIs gibt, das Attribut nicht belegen. --Mfreiberg (Diskussion) 15:47, 30. 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 beides wiederum gleichbedeutend mit [4] ist.--DBalzer (Diskussion) 08:54, 29. Nov. 2017 (CET)
Das sollte das Ziel sein. Bis dahin arbeiten wir, wie oben schon vorgeschlagen, mit scheme="DIF". --Mfreiberg (Diskussion) 15:47, 30. Nov. 2017 (CET)