Import-Regeln

Import Regeln sind momentan nur für die SWORD-Schnittstelle verfügbar. Sie erlauben es Regeln zu definieren mit denen importierte Dokumente zusätzlich manipuliert werden können.

Im folgenden werden die Begriffe Keyword und Subject synonym verwendet. Im OPUS 4 Datenmodel werden Schlagwörter als Subject bezeichnet.

Import-Regeln sind unabhängig von Import-Formaten. Sie dienen nicht dazu Daten von einem externen Format in das OPUS 4 Datenmodel zu übersetzen. Dafür ist der Code für das entsprechende Format zuständig. Die Regeln dienen der nachträglichen Verarbeitung und können in einer Reihe von Anwendungsszenarien helfen. Einige davon sind unten beschrieben.

Ideen für die Nutzung oder den weiteren Ausbau der Import-Regeln können gerne auf GitHub festgehalten werden, um anderen Nutzern zu helfen oder die Weiterentwicklung zu unterstützen.

OPUS 4 Discussions (GitHub.com)

Die Regeln werden in Zukunft auch für andere Import-Schnittstellen, wie z.B. den BibTeX-Import anwendbar sein.

Konfiguration

Um die Import-Regeln zu nutzen, müssen sie für SWORD aktiviert werden und es muss eine Konfigurationsdatei mit den Regeln angegeben werden.

sword.enableImportRules = true
import.rulesConfigFile = APPLICATION_PATH "/application/configs/import-rules.ini"

In der INI Datei können dann beliebige Regeln definiert werden. Sie werden in der Reihenfolge ausgeführt, die der sie in der Datei auftauchen.

col1.type = 'AddCollection'
col1.condition.account = 'sword1'
col1.collection.id = 16457

lic1.type = 'AddLicence'
lic1.condition.keyword.value = 'ccby'
lic1.condition.keyword.remove = true
lic1.licenceId = 1

Die Reihenfolge der Regeln kann wichtig sein, wenn wie im Beispiel oben ein Keyword automatisch entfernt wird.

Unterstützte Regeln

Regel Beschreibung
AddCollection Verknüpft Dokumente mit einer Sammmlung
AddKeyword Fügt ein Subject/Keyword zum Dokument hinzu
AddLicence Verknüpft Dokument mit einer Lizenz
RemoveKeywords Entfernt Subjects/Keywords vom Dokument

AddCollection-Regel

Mit der AddCollection Regel lassen sich automatisch Sammlungen zu den importierten Dokumenten hinzufügen. Wenn für die Regel keine Bedingung angeben wurde, wird die angegebene Sammlung zu allen Dokumenten hinzugefügt.

col1.type = 'AddCollection'
col1.condition.account = 'sword1'
col1.collection.id = 16457

Es werden folgende Optionen unterstützt, um die hinzuzufügende Sammlung anzugeben.

Option Beschreibung
id Datenbank-Id einer Sammlung
roleName Name einer CollectionRole
roleOaiName OAI-Name (OaiName) einer CollectionRole
number Number einer Sammlung
name Name einer Sammlung

Die Datenbank-ID einer Sammlung kann direkt angegeben werden.

col1.collection.id = 32453

Für die Optionen name und number muss immer auch mit roleName oder roleOaiName die CollectionRole angegeben werden, der die Sammlung zugeordnet ist.

col1.collection.roleName = 'institutes'
col1.collection.number = 'insitute1'
col1.collection.roleOaiName = 'departments'
col1.collection.number = 'department1'

Der Name einer Sammlung kann auch als Option verwendet werden. Da die Namen von Sammlungen auch für die Anzeige im User Interface verwendet werden, sind sie häufig etwas unhandlicher. Die Option ist case-sensitive. Der Name muss mit der korrekten Groß/Kleinschreibung angegeben werden.

col1.collection.roleName = 'institutes'
col1.collection.name = 'Mathematics'

AddKeyword-Regel

Mit der AddKeyword Regel lassen sich automatisch Subjects/Keywords zu einem Dokument hinzufügen.

Option Beschreibung
value Keyword
type swd (GND), psyndex, uncontrolled (default)
lang Sprache, z.B. deu (default), eng

Wenn die Defaultwerte für Typ und Sprache passen, kann das Keyword auch direkt angegeben werden.

kw1.type = 'AddKeyword'
kw1.keyword = 'Imported'

In Kombination mit einer Keyword-Bedingung, kann die AddKeyword-Regel verwendet werden, um Keywords zu ersetzen.

AddLicence-Regel

Mit der AddLicence Regel lassen sich Dokumente automatisch mit einer Lizenz in OPUS 4 verknüpfen. In Kombination mit einer Keyword-Bedingung lässt sich so die Verknüpfung automatisieren und von außen steuern. Der Sword-Client muss wissen, welche Lizenzen in der OPUS 4-Instanz verfügbar sind, für welche Lizenzen Regeln konfiguriert wurden. Der Client muss aber nicht die Datenbank-IDs der Lizenzen kennen, sondern nur ein festgelegtes Schlüsselwort mitliefern.

Die AddLicence Regel unterstützt nur die Option licenceId. Es muss die Datenbank-ID einer Lizenz angegeben werden.

licence1.type = AddLicence
licence1.condition.keyword = 'CCBY'
licence1.licenceId = 1

licence2.type = AddLicence
licence2.condition.keyword = 'CCBYNA'
licence2.licenceId = 2

Auf diese Weise können alle Lizenzen auf Keywords gemappt werden.

Eine komplett automatische Lizenz-Erkennung wäre vom Import-Format abhängig. An welcher Stelle sind die Lizenz-Informationen gespeichert, in welcher Form? Die Import-Regeln sollen unabhängig von Import-Formaten sein. Sie sind ein Werkzeug für die Automatisierung, wenn Client und Server bekannt sind und konfiguriert werden können.

RemoveKeywords-Regel

Wenn Keywords als Bedingung (Condition) verwendet werden, z.B. für die automatische Verknüpfung von Dokumenten mit Lizenzen, können sie dabei automatisch entfernt werden. Falls für ein Keyword mehrere Regeln definiert oder Keywords gefiltert werden sollen, kann mit RemoveKeywords eine Liste von Keywords konfiguriert werden, die automatisch entfernt werden.

Die Optionen sind ähnlich

Option Beschreibung Default
keywords Keyword, Array oder CSV-Liste von Keywords required
keywordType swd (GND), psyndex, uncontrolled alle
caseSensitive Soll Groß/Kleinschreibung berücksichtigt werden? (bool) false

In folgendem Beispiel werden drei Keywords entfernt, die vorher vielleicht in anderen Regeln verwendet wurden.

remove.type = 'RemoveKeywords'
remove.keywords = 'oa-green,oa-gold,oa-gray' 

Die Keywords können auch als Array angegeben werden.

remove.type = 'RemoveKeywords'
remove.keywords[] = 'oa-green'
remove.keywords[] = 'oa-gold'
remove.keywords[] = 'oa-gray'

Mit den Optionen keywordType und caseSensitive lässt sich einschränken welche Schlüsselwörter entfernt werden.

remove.type = 'RemoveKeywords'
remove.keywords = 'oa-green, oa-gold, oa-gray'
remove.keywordType = 'uncontrolled'
remove.caseSensitive = true 

Unterstützte Bedingungen

Mit einer Condition kann eine Regel von Bedingungen abhängig gemacht werden. Momentan werden die folgenden Bedingungen unterstützt.

Bedingung Beschreibung
Account Prüft den aktiven User Account
Keyword Prüft auf Subject/Keyword

Account-Bedingung

Die Account-Bedingungen unterstützt nur die Option account, um den Namen eines aktiven User-Accounts anzugeben. Damit kann man zum Beispiel in Abhängigkeit von dem Account, mit dem auf die SWORD-Schnittstelle zugegriffen wird, die importierten Dokumente mit einer Sammlung verknüpfen.

department1.type = 'AddColletion'
department1.condition.account = 'dep1sword'
department1.collection.roleName = 'departments'
department1.collection.number = 'opus4dev'

Das kann zum Beispiel im Zusammenhang mit DeepGreen verwendet werden, wenn Dokumente für mehrere Institutionen an eine OPUS 4 Instanz geliefert werden sollen. Jede Institution kann einen anderen OPUS 4-Account verwenden.

Keyword-Bedingung

Die Aufführung der verknüpften Regel hängt davon ab, ob ein Subject bzw. Keyword gefunden wird. Das Keyword kann optional automatisch entfernt werden.

Es werden vier Optionen unterstützt.

Option Beschreibung Default
value Keyword required
type swd (GND), psyndex, uncontrolled alle
remove Soll das Keyword entfernt werden? (bool) false
caseSensitive Soll Groß/Kleinschreibung berücksichtigt werden? (bool) false

Mit folgender Regel würden Dokumente automatisch mit der ersten Lizenz (ID = 1) verknüpft werden, wenn das Keyword ccby auftaucht, egal ob groß oder kleingeschrieben. Wenn die type Option weggelassen wird, kann das Keyword einen beliebigen Typ haben. Das Keyword wird automatisch entfernt.

licence1.type = 'AddLicence'
licence1.condition.keyword.value = 'ccby'
licence1.condition.keyword.type = 'uncontrolled'
licence1.condition.remove = true
licence1.condition.caseSensitive = false
licence1.licenceId = 1

Alternativ kann das Keyword auch direkt angegeben werden. Es gelten dann die oben beschriebenen Default-Optionen. Das heißt die Schreibung wird nicht berücksichtigt und das Keyword wird nicht automatisch entfernt. Der Typ ist egal.

licence1.type = 'AddLicence'
licence1.condition.keyword = 'ccby'
licence1.licenceId = 1

Wenn die automatische Entfernung aktiviert ist und das gleiche Keyword im Dokument für mehrere Typen auftaucht, also z.B. swd und uncontrolled, wird das Schlagwort für alle Typen entfernt, wenn die Option type nicht angegeben wurde.