Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changes to the the GND RDF starting from 2024-02-06 #362

Open
acka47 opened this issue Nov 6, 2023 · 4 comments
Open

Changes to the the GND RDF starting from 2024-02-06 #362

acka47 opened this issue Nov 6, 2023 · 4 comments

Comments

@acka47
Copy link
Contributor

acka47 commented Nov 6, 2023

As published by the DNB.

Additional property in GND ONtology:

Modellierung von Benutzungshinweisen: Ergänzung der Property gndo:originalScriptNameOfThePerson

| Neuerung:
Die neue Property gndo:originalScriptNameOfThePerson vom Typ DatatypeProperty wurde eingerichtet. Sie verweist auf Namensformen in Originalschrift und -sprache. Hierfür werden entsprechende language tags verwendet.

Additional information in the GND RDF:

Änderungen in den GND-Konversionen

| Neuerung:
Für die GND-Entität Person werden Namensformen in Originalschriftund -sprache gekennzeichnet und ausgeliefert. Die language tags werden nach IETF BCP47 gebildet; sie geben wieder, dass die Namensform xx-sprachig und in yy-Schrift vorliegt. Ist die
Sprache nicht bekannt, wird der Code „und“ für nichtdefiniert (undefined) verwendet und zusammen mit dem Code für die Schrift ausgegeben.

Examples

Beispiel in Turtle: Sprache bekannt
<https://d-nb.info/gnd/118839810> gndo:originalScriptNameOfThePerson "מרקה"@he .
Beispiel in Turtle: Sprache unbekannt
<https://d-nb.info/gnd/113448007> gndo:originalScriptNameOfThePerson "กิตติศักดิ์ ปรกติ"@und-Thai .

Beispiele in der Testdatei:
https://d-nb.info/gnd/118839810
https://d-nb.info/gnd/113448007
https://d-nb.info/gnd/102835470
https://d-nb.info/gnd/136163394
https://d-nb.info/gnd/1068497580

Addition of personal relations to nodes without GND ID

Neuerung:
Für die GND-Entität Person werden zur Identifizierung auch solche Beziehungen zu
Personen oder Familien ausgegeben, die nicht mit einer GND-ID referenziert sind. Diese
Entitäten werden in Form von Blank nodes ausgeliefert. Beispiel in Turtle:
<https://d-nb.info/gnd/124537359> gndo:acquaintanceshipOrFriendship _:node123 . _:node123 gndo:forname "Johannes Adam " ; gndo:surname "Lonicer" .

SKOS Relations to other controlled vocabs

Zu diesem Release werden erstmals auch die semantischen Relationen (nur Äquivalenzen) zwischen den Deskriptoren der GND (alle Entitäten) und mehreren weiteren Thesauri (AGROVOC11, EMBNE12, LCSH13, MeSH, NSogg14, RAMEAU15 und TheSoz16) im GND-Dump bereitgestellt und anschließend jährlich im Oktober/November aktualisiert. Für die Beschreibung der Terme und der Beziehungen zwischen den Termen wird SKOS17 (Simple Knowledge Organization System) verwendet. Die SKOS-Relationen zu STW18-Deskriptoren werden in dieser Form bereits für GND- Sachbegriffe ausgeliefert, mit diesem Release auch für alle weiteren GND-Entitäten. Die zugrunde liegenden Crosskonkordanzen zwischen dem normierten Vokabular der GND und den externen Thesauri wurden intellektuell erzeugt, teilweise mit Unterstützung maschineller Verfahren (EMBNE). Die so vernetzten Normdaten ermöglichen (multilinguale) Metasuchen in Bibliothekskatalogen und Portalen und unterstützen Fremddatenübernahmen ebenso wie maschinelle Indexierungsverfahren.

Beispiele in Turtle:

<https://d-nb.info/gnd/4060485-8> skos:exactMatch
<http://aims.fao.org/aos/agrovoc/c_8021> .
<https://d-nb.info/gnd/4040280-0> skos:closeMatch
<http://id.loc.gov/authorities/subjects/sh85087285>,
<http://data.bnf.fr/ark:/12148/cb11982810h>,
<http://datos.bne.es/resource/XX532617> ;
<https://d-nb.info/gnd/118535315> skos:exactMatch
<http://lod.gesis.org/thesoz/concept_10044342> 

BeispieleinderTestdatei:
https://d-nb.info/gnd/118535315
https://d-nb.info/gnd/118812432
https://d-nb.info/gnd/4040280-0
https://d-nb.info/gnd/4315200-4
https://d-nb.info/gnd/1265150281
https://d-nb.info/gnd/4060485-8
https://d-nb.info/gnd/4002924-4
https://d-nb.info/gnd/4137380-7

Test data

Folgende Testdaten,die die angekündigten Änderungen beinhalten, sind in den
Serialisierungsformen RDF/XML, Turtle und JSON-LD abrufbar unter https://data.dnb.de/testdat/:
| GNDTestRelease2024_01...“fürdie Normdatender GND

@acka47
Copy link
Contributor Author

acka47 commented Feb 20, 2024

These changes are now coming in and start to make problems so that we received an alert mail "Alert GND: found not compacted field(s)":

Am 20.02.24 um 12:41 schrieb sol:

gnd_20221209.mappings.authority.properties.https://d-nb.properties.info/standards/elementset/gnd#[email protected]
gnd_20221209.mappings.authority.properties.https://d-nb.properties.info/standards/elementset/gnd#originalScriptNameOfThePerson.properties.@language.fields.keyword.type
gnd_20221209.mappings.authority.properties.https://d-nb.properties.info/standards/elementset/gnd#[email protected]
gnd_20221209.mappings.authority.properties.https://d-nb.properties.info/standards/elementset/gnd#originalScriptNameOfThePerson.properties.@value.fields.keyword.type

@fsteeg
Copy link
Member

fsteeg commented Feb 20, 2024

These changes are now coming in and start to make problems [...]

This was just a temporary config issue on the server, statements leading to non-compacted fields are now skipped during processing (see b0c88f6), the alert was for the wrong index (which still contains the non-compacted field).

@acka47
Copy link
Contributor Author

acka47 commented Feb 20, 2024

Regearding

Addition of personal relations to nodes without GND ID

This originates from issue GND-57 we opened at DNB' s JIRA in 2018, see #124. I am not sure whether this will directly work for lobid so that we have it in the index (and the UI).

Example has GND ID 124537359:

The turtle now contains the information:

<https://d-nb.info/gnd/124537359> gndo:acquaintanceshipOrFriendship <https://d-nb.info/gnd/11968568X>,
    <https://d-nb.info/gnd/102831963>, <https://d-nb.info/gnd/119603578>, <https://d-nb.info/gnd/119616572>,
    <https://d-nb.info/gnd/118677446>, <https://d-nb.info/gnd/11968599X>, <https://d-nb.info/gnd/119522403>,
    _:node1hn2nbfoqx3718620 .

_:node1hn2nbfoqx3718620 gndo:forname "Johannes Adam";
  gndo:surname "Lonicer" .

However, this resource was not updated in lobid as the updates are apparently triggered by the modification date in the MARC record which is (as changes have only happened in the transformation to RDF): 2022-03-23

    <controlfield tag="005">20220323003024.0</controlfield>

The RDF/turtle just uses the MARC modification date in dct:modified:

<https://d-nb.info/gnd/124537359/about> dcterms:license <http://creativecommons.org/publicdomain/zero/1.0/>;
  dcterms:modified "2022-03-23T00:30:24.000"^^xsd:dateTime;
  gndo:descriptionLevel <https://d-nb.info/standards/vocab/gnd/description-level#1> .

Thus, we will have to reindex the whole GND to get in those changes and to check whether this works.

However, with this query I found some records that have recently changed and contain blank nodes in acquaintanceshipOrFriendship:

describedBy.dateModified:2024-02-19 AND _exists_:acquaintanceshipOrFriendship.

Example: 12490582X

MARC:

    <datafield tag="500" ind1="1" ind2=" ">
      <subfield code="a">Melanchthon, Philipp</subfield>
      <subfield code="4">beza</subfield>
      <subfield code="4">https://d-nb.info/standards/elementset/gnd#acquaintanceshipOrFriendship</subfield>
      <subfield code="w">r</subfield>
      <subfield code="i">Bekanntschaft</subfield>
      <subfield code="e">Bekanntschaft</subfield>
      <subfield code="9">v:VD-16 Mitverf.</subfield>
    </datafield>
    <datafield tag="500" ind1="1" ind2=" ">
      <subfield code="a">Frenzel, Salomon</subfield>
      <subfield code="4">beza</subfield>
      <subfield code="4">https://d-nb.info/standards/elementset/gnd#acquaintanceshipOrFriendship</subfield>
      <subfield code="w">r</subfield>
      <subfield code="i">Bekanntschaft</subfield>
      <subfield code="e">Bekanntschaft</subfield>
      <subfield code="9">v:VD-16 Mitverf.</subfield>
    </datafield>
    <datafield tag="500" ind1="1" ind2=" ">
      <subfield code="a">Sigfrid, Johannes</subfield>
      <subfield code="4">beza</subfield>
      <subfield code="4">https://d-nb.info/standards/elementset/gnd#acquaintanceshipOrFriendship</subfield>
      <subfield code="w">r</subfield>
      <subfield code="i">Bekanntschaft</subfield>
      <subfield code="e">Bekanntschaft</subfield>
      <subfield code="9">v:VD-16 Mitverf.</subfield>
    </datafield>
    <datafield tag="500" ind1="1" ind2=" ">
      <subfield code="a">Dornkreil, Tobias</subfield>
      <subfield code="4">beza</subfield>
      <subfield code="4">https://d-nb.info/standards/elementset/gnd#acquaintanceshipOrFriendship</subfield>
      <subfield code="w">r</subfield>
      <subfield code="i">Bekanntschaft</subfield>
      <subfield code="e">Bekanntschaft</subfield>
      <subfield code="9">v:VD-16 Mitverf.</subfield>
    </datafield>

Turtle:

<https://d-nb.info/gnd/12490582X> gndo:acquaintanceshipOrFriendship <https://d-nb.info/gnd/116617446>,
    <https://d-nb.info/gnd/121563650>, <https://d-nb.info/gnd/116974788>, _:node1hn2nbfoqx3728988 .

_:node1hn2nbfoqx3728988 gndo:forname "Philipp";
  gndo:surname "Melanchthon" .

<https://d-nb.info/gnd/12490582X> gndo:acquaintanceshipOrFriendship _:node1hn2nbfoqx3728989 .

_:node1hn2nbfoqx3728989 gndo:forname "Salomon";
  gndo:surname "Frenzel" .

<https://d-nb.info/gnd/12490582X> gndo:acquaintanceshipOrFriendship _:node1hn2nbfoqx3728990 .

_:node1hn2nbfoqx3728990 gndo:forname "Johannes";
  gndo:surname "Sigfrid" .

<https://d-nb.info/gnd/12490582X> gndo:acquaintanceshipOrFriendship <https://d-nb.info/gnd/119763931>,
    <https://d-nb.info/gnd/103084681>, _:node1hn2nbfoqx3728991 .

_:node1hn2nbfoqx3728991 gndo:forname "Tobias";
  gndo:surname "Dornkreil" .

So, the GND turtle looks fine (at least on first sight) but not the lobid-gnd JSON:

"acquaintanceshipOrFriendship": [

        {
              "surname": [
                    "Sigfrid"
              ]
        },
        {
              "surname": [
                    "Frenzel"
              ]
        },
        {
              "surname": [
                    "Melanchthon"
              ]
        },
        {
              "surname": [
                    "Dornkreil"
              ]
        }

  ]

The forename is lost and this is apparently because of a typo in the transformation as it is delivererd as gndo:forname which does not exist instead of the correct gnd:forename. I will comment accordingly in the GND JIRA.

@acka47
Copy link
Contributor Author

acka47 commented Feb 21, 2024

Regarding

Für die GND-Entität Person werden Namensformen in Originalschriftund -sprache gekennzeichnet und ausgeliefert

We will have to add https://d-nb.info/standards/elementset/gnd#originalScriptNameOfThePerson to the JSON-LD context.

However, there remain some questions:

  1. Can there be several values behind this property? I guess we should use an array anyway.
  2. How will we indicate the language tag? A language maps approach probably does not make sense here.

Example turtle:

 <https://d-nb.info/gnd/118839810> gndo:originalScriptNameOfThePerson "מרקה"@he .

It seems to me that it makes most sense in this case to use the value object approach (which is the default way the JSON-LD library handles this, anyway, see the alert quoted in #362 (comment)):

{
   "id":"https://d-nb.info/gnd/118839810",
   "originalScriptNameOfThePerson":{
      "@value":"מרקה",
      "@language":"he"
   }
}

Why not use another string internationalization approach in JSON-LD?

  • There probably will mostly be only one string in originalScriptNameOfThePerson.
  • Languages/scripts will widely vary.
  • With a value object the original script will always be found at the same place originalScriptNameOfThePerson.@value in the JSON to be shown in an application.

Right?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants