hbz / crg

Apache License 2.0
0 stars 0 forks source link

DigiBib-Daten aus der EDB importieren #5

Open acka47 opened 7 years ago

acka47 commented 7 years ago

Folgende Datenbank-Tabellen der EDB bzw. der DigiBib-Instanz der EDB sind relevant:

  1. erwerbungsdb.Teilnehmer: Kunden ("Organisation" al "Customer" in customer relationship) werden hier gemeinsam mit der Gruppe "Digitale Inhalte" verwaltet
  2. erwerbungsdb.Fachbereich: Verlinkung eines Teilnehmer-Sigel (aus 1.)) mit einer Fachbereichs-ID. (Ist ein überflüssiges Relikt aus älteren EDB-Zeiten.)
  3. digibib.Produkt: Produkte/Leistungen ("Offer") (z.B. "DigiLink") allgemein stehen in der Tabelle
  4. digibib.AbrechnungVomHBZ: Leistungen in Bezug auf ein bestimmtes Jahr (z.B. "DigiLink 2016")
  5. digibib.TeilnehmerProdukt: Verlinkung von 3.) mit einem Kunden (Teilnehmer) via Fachbereichs-ID (2.)) unter Angabe des Abrechnungsjahres. ("Service")
  6. [Edit] digibib.Ansprechpartner: ContactPoints
acka47 commented 7 years ago

Siehe auch http://etherpad.lobid.org/p/crg-data

acka47 commented 7 years ago

Mittlerweile weiß ich auch, wo die Informationen zu den Geschäftspartnern stehen. In der Tabelle erwerbungsdb.Teilnehmer gibt es die Spalten RNSigel und RNAdresse. In RNSigel findet sich die Geschäftspartner-ID aus Epos und in RN-Adresse die Adresse als Ganzes.

Beispiel RWTH:

RNSigel: 100025176 RNAdresse: RWTH Aachen<br>Templergraben 55<br>52062 Aachen

Ich schlage vor, dafür Einträge für den Typ "Organisation" anzulegen, sehr ähnlich zu dem Beispiel, das ich bereits angelegt hatte:

{
   "@context": "https://crg.hbz-nrw.de/context.json",
   "@id":"urn:uuid:74a12fe6-81af-11e7-8334-8b7f6cff2252",
   "@type": "Organization",
  "eposId": "100025176",
   "location": {
      "@type":"Place",
      "address":{
         "@type":"PostalAddress",
         "addressLocality":"Aachen",
         "postalCode":"52062",
         "streetAddress":"Templergraben 55",
         "addressCountry": "DE"
      }
   },
   "name":"RWTH Aachen",
   "url":"http://www.rwth-aachen.de"
}

Diese Einträge werden dann mit den entsprechenden Customer Relationships mittels der property businessPartner verknüpft.

To Do: eposId im Schema ergänzen

Für ca. 70 Kunden gibt es auch einen Eintrag in der Spalte DigiBibRNAdresse. Ich frage mal nach, in diesen Fällen entsprechend diese Adresse verwendet werden soll. (Soweit ich weiß, sollen eigentlich für alle Rechnungen die Adressen aus EPOS benutzt werden, weshalb es eigentlich nur eine richtige Adresse geben kann.)

acka47 commented 7 years ago

Die Adresse müsste man doch ganz gut strukturieren können, wenn man das "von hinten" parst. Bsp.: Forschungszentrum Borstel<br>Leibniz-Zentrum für Medizin und Biowissenschaften<br>Parkallee 1-40<br>23845 Borstel

Am Ende ist immer postalCode (manchmal mit "D-" davor + locality, davor streetAddress, davor name (das <br /> sollte bei "name" am besten erstmal drinbleiben.

acka47 commented 7 years ago

In erwerbungsdb.Teilnehmer.Art finden sich kontrollierte Werte, die analog zu DBS und Sigerlverzeichnis auf das libtype-Vokabular gematcht werden können.

acka47 commented 7 years ago

Für ca. 70 Kunden gibt es auch einen Eintrag in der Spalte DigiBibRNAdresse. Ich frage mal nach, in diesen Fällen entsprechend diese Adresse verwendet werden soll.

In der EDB-Oberfläche wird die Adresse aus "DigiBibRNAdresse" angezeigt, d.h. es werden offensichtlich teilweise pro Produkt unterschiedliche Namen und Adressen für den Geschäftspartner verwendet. Zunächst muss ich herausfinden, ob diese Anforderung wirklich umgesetzt werden soll. Wenn ja, dann ließe sich das etwa abbilden, indem man einen eigenen Typ BusinessPartner vergibt, das location-Objekt weglässt, den Namen in die Adresse zieht und eine Aufzählung von Adressen erlaubt, die dann auf ein Produkt verweisen à la:

{
   "@context":"https://crg.hbz-nrw.de/context.json",
   "@id":"urn:uuid:74a12fe6-81af-11e7-8334-8b7f6cff2252",
   "@type":"BusinessPartner",
   "eposId":"100025176",
   "address":[
      {
         "@type":"PostalAddress",
         "additionalType":"EposAdresse",
         "name":"Gemeinde Kriftel",
         "addressLocality":"Kriftel",
         "postalCode":"65830",
         "streetAddress":"Frankfurter Straße 33-37",
         "addressCountry":"DE"
      },
      {
         "@type":"PostalAddress",
         "additionalType":"DigiBibAdresse",
         "name":"Gemeindeverwaltung Kriftel",
         "addressLocality":"Kriftel",
         "postalCode":"65830",
         "streetAddress":"Frankfurter Straße 33-37",
         "addressCountry":"DE"
      }
   ]
}