OPUS4 / opus4-import

OPUS 4 Import Library
Other
0 stars 1 forks source link

Automatische Verknüpfung mit Sammlungen in Abhängigkeit vom verwendeten Account #43

Open j3nsch opened 1 year ago

j3nsch commented 1 year ago

Für den Import über die SWORD-Schnittstelle muss ein Account angelegt werden, der Zugriff auf das Sword-Module hat. Alle importierten Dokumente werden bereits mit einer Default-Import-Collection verknüpft. Darüber hinaus soll es in Zukunft möglich sein, für Accounts weitere Sammlungen zu konfigurieren, mit denen Dokumente automatisch verknüpft werden.

Das kann im Zusammenhang mit DeepGreen genutzt werden, wenn ein Repository von mehreren Instituten verwendet wird. Jedes Institut hat einen separaten DeepGreen-Account, der mit einem anderen OPUS4-Account für den Upload über die SWORD-Schnittstelle konfiguriert werden kann. Die Dokumente lassen sich dann für jedes Institut mit unterschiedlichen Sammlungen verknüpfen.

Es geht hier nicht darum, dass Problem zu lösen, dass Dokumente unter Umständen mehrfach für Institute importiert werden.

j3nsch commented 1 year ago

Diese zusätzlichen Import-"Regeln" sollte gleich auf eine möglichst allgemeine Art konfiguriert werden. Folgende Konfiguration würde es erlauben den Typ der Regel anzugeben, die Bedingung für die Ausführung und weitere Optionen, wie die Sammlung, die hinzugefügt werden soll.

import.rules.addCol.type = 'addCollection'
import.rules.addCol.condition.account = 'sword1'
import.rules.addCol.collection.id  = 16345

Eine Sammlung kann auf unterschiedliche Weisen identifiziert werden. Direkt mit der Id der Sammlung.

import.rules.addCol.collection.id = 342

Oder über die CollectionRole und die Number der Sammlung.

import.rules.addCol.collection.roleName = 'import'
import.rules.addCol.collection.number = 'import'

Um eine CollectionRole zu identifizieren kann auch der OaiName verwendet werden. Für eine Sammlung ist auch der Name möglich. Die Number sollte aber bevorzugt werden.

import.rules.addCol.collection.roleOaiName = 'import'
import.rules.addCol.collection.name = 'Import'
j3nsch commented 1 year ago

Gibt es einen Weg den Namen für die Regeln in der Konfiguration zu vermeiden? Wie würde das für mehrere AddCollecion-Regeln aussehen?

Im Augenblick, mit der Konfiguration mit INI-Dateien, wäre das schwierig. Vielleicht lässt sich eine konkretere Regel schaffen, z.B. AddCollectionByAccount, die dann leichter zu konfigurieren wäre.

import.rules.addCol.type = 'AddCollectionByAccount'
import.rules.addCol.swordAccount1.colId = 132
import.rules.addCol.swordAccount2.colId = 3765

Eine setOptions Funktion müsste dann für die neue Regel angepasst werden, um die Account-Namen aus den Optionsschlüsseln herauszulesen. Es kann zu Konflikten kommen, wenn ein Account den Namen "type" hat. Dieser Schlüssel wird bereits verwendet. Das Problem kann vermieden werden, wenn eine weitere Ebene eingeführt wird.

import.rules.addCol.type = 'AddCollectionByAccount'
import.rules.addCol.accounts.swordAccount1.colId = 132
import.rules.addCol.accounts.swordAccount2.colId = 3765
j3nsch commented 1 year ago

FYI @CAWinter Work in progress