Forum

Thema mit vielen Antworten

Bitte um Test: Export nach Zotero


Autor Nachricht
Verfasst am: 09. 03. 2020 [09:37]
nicolausbusch
Themenersteller
Dabei seit: 26.04.2012
Beiträge: 852
"michhoff" schrieb:

- Ein Eintrag in 'Jahr/Datum' mit dem Inhalt "1987/88" kam nur als "1987" an. Steht in LitLink "1987/1988" funktionierte die Übernahme jedoch.
- Ein bei einer Zeitschrift im Periodikamodul vermerkter Ort tauchte nach der Übertragung im Aufsatzeintrag unter 'Extra' auf, mit vorangestelltem "Place:" - diese Übertragung erscheint mir unnötig.

Bitte schauen Sie einmal den von Litlink erzeugten Code für diesen Datensatz an: Was steht dort in der Zeilen, die mit "PY - " beginnen (Datum) bzw. "CY - " (Ort)?
(Anstatt die Importfunktion von Zotero aufzurufen, einen Texteditor öffnen und "Enfügen" wählen)

"michhoff" schrieb:

- Die Übertragung der 'bibl. Zusätze' aus LitLink in das Zotero-Feld 'Extra' ist jetzt prima gelöst - aber könnte der dort ebenfalls zu findende Herkunftsvermerk (z.B. "Litlink 5 - Titel - Aufsatz") nicht generell entfallen? Dann könnte man den übertragenen Feldinhalt (z.B. Kennzeichnung als Dissertation) in einer Zotero-Zitierform direkt nutzen.

Natürlich, diese Quellenangabe ist mehr für die Testphase gedacht, damit man weiss, welche Daten von Zotero wie einsortiert werden. Wenn man das nicht haben möchte kann man einfach ganz unten in der Zitform, wo alles in die Variable $result zusammengerührt wird, das Element $Quelle herausnehmen.

"michhoff" schrieb:

Ich verstehe die Zurückhaltung, aber oft enthalten diese "Sonderfelder" für die Arbeit mit den Daten wichtige Informationen. Könnten nicht wenigstens die 'Projekte' in 'Tags' überführt werden?

Gute Idee, schaue ich an.

"michhoff" schrieb:

Eine Frage noch: Gibt es Kapazitätsgrenzen für die Sammelübertragung via Zwischenablage? Mit 75 Datensätzen hat es im Test reibungslos funktioniert, aber was ist mit 1500?


Das müsste man erproben, ich würde aber für grössere Datenmengen lieber das Verzeichnis in eine Datei schreiben und dann aus dieser importieren lassen, das ist sicherlich stabiler.

"michhoff" schrieb:

Neben der gelungenen Titelübernahme habe ich mir auch die Übernahme von Objekten angesehen, für die ebenfalls ein RIS-Exportformat erzeugt wird. Dieses ist aber noch rudimentär - wenn da weiterentwickelt wird, teste ich das auch gerne. Ich fände dabei - als Kunsthistoriker - insbesondere die Übertragung von LL-'Objekten' in den Datentyp 'Kunstwerk' in Zotero nützlich, inkl. der bislang noch nicht übertragenen Feldinhalte zu 'Größe', 'Material' bzw. 'Medien'.

Das kann man sicherlich tun, hier müsste aber erst einmal Vorarbeit geleistet werden:
unter https://github.com/aurimasv/translators/wiki/RIS-Tag-Map ist dokumentiert, welche Einträge aus RIS Zotero in welche Felder schreibt. Ich brauche eine Liste die mir exakt sagt, welches Litlink-Feld mit welchem Tag geschrieben werden soll, also wie:

TY - "Art"
AU - Autor
C3 - Grösse
etc. pp.
Verfasst am: 09. 03. 2020 [09:42]
nicolausbusch
Themenersteller
Dabei seit: 26.04.2012
Beiträge: 852
"nikolauslinder" schrieb:

Eine Bitte hätte ich allerdings: Das Feld "Kartentitel" ist bei mir sehr wichtig, weil ich dort jeweils kurze Einzeiler zum Inhalt des exzerpierten Texts (der Karte) hinterlegt habe. Wäre es nicht möglich, den Kartentitel mitzuexportieren?


Das ist kein Problem. Im Moment schreiben wir

Seitenzahl: "Zitat"
Kommentar

Wo gehört der Titel hin, noch vor sie Seitenzahl? Oder besser so?

Seitenzahl: Titel
"Zitat"
Kommentar
Verfasst am: 09. 03. 2020 [10:03]
nikolauslinder
Dabei seit: 16.05.2012
Beiträge: 55
"nicolausbusch" schrieb:

Oder besser so?

Seitenzahl: Titel
"Zitat"
Kommentar


So wäre es perfekt, vielen Dank. (Fett geht leider nicht, aber das macht auch nichts).

Ich kann übrigens von meinen Exporterfahrungen mit rund 23.000 Titeln etc. berichten. Sie wurden jahrgangsweise über die Zwischenablage exportiert, soweit ich sehe, fehlerfrei. In einzelnen Jahrgängen waren über 3.000 Titel dabei. M. a. W.: Der Export über die Zwischenablage funktioniert auch bei größeren Datenmengen zuverlässig. Wichtig ist dabei wohl eine gute Hardwareausstattung (Speicher, CPU).

Herzlich, NL
Verfasst am: 10. 03. 2020 [07:04]
michhoff
Dabei seit: 13.02.2013
Beiträge: 9
"nicolausbusch" schrieb:

"michhoff" schrieb:

- Ein Eintrag in 'Jahr/Datum' mit dem Inhalt "1987/88" kam nur als "1987" an. Steht in LitLink "1987/1988" funktionierte die Übernahme jedoch.
- Ein bei einer Zeitschrift im Periodikamodul vermerkter Ort tauchte nach der Übertragung im Aufsatzeintrag unter 'Extra' auf, mit vorangestelltem "Place:" - diese Übertragung erscheint mir unnötig.

Bitte schauen Sie einmal den von Litlink erzeugten Code für diesen Datensatz an: Was steht dort in der Zeilen, die mit "PY - " beginnen (Datum) bzw. "CY - " (Ort)?
(Anstatt die Importfunktion von Zotero aufzurufen, einen Texteditor öffnen und "Enfügen" wählen)


In dem fraglichen Datensatz (Typ: JOUR) steht "PY - 1987/88". Ich vermute, dass dann Zotero nicht weiß, ob es sich um eine Jahres- oder Tagesdatumsangabe handelt (was es bei eindeutiger Form YYYY/MM/DD o.ä. automatisch erkennt).

Und bei der Ortsangabe steht "CY - Köln". Ich habe nochmal darüber nachgedacht: Für manche Nutzer dürfte der Publikationsort auch von Periodika wichtig sein. An diesem Punkt sollte die Formel also besser nicht geändert werden - ich werde die Publikationsorte in meinen Periodika-Datensätzen einfach vor dem finalen Export löschen.

"nicolausbusch" schrieb:

"michhoff" schrieb:

Neben der gelungenen Titelübernahme habe ich mir auch die Übernahme von Objekten angesehen, für die ebenfalls ein RIS-Exportformat erzeugt wird. Dieses ist aber noch rudimentär - wenn da weiterentwickelt wird, teste ich das auch gerne. Ich fände dabei - als Kunsthistoriker - insbesondere die Übertragung von LL-'Objekten' in den Datentyp 'Kunstwerk' in Zotero nützlich, inkl. der bislang noch nicht übertragenen Feldinhalte zu 'Größe', 'Material' bzw. 'Medien'.

Das kann man sicherlich tun, hier müsste aber erst einmal Vorarbeit geleistet werden:
unter https://github.com/aurimasv/translators/wiki/RIS-Tag-Map ist dokumentiert, welche Einträge aus RIS Zotero in welche Felder schreibt. Ich brauche eine Liste die mir exakt sagt, welches Litlink-Feld mit welchem Tag geschrieben werden soll, also wie:

TY - "Art"
AU - Autor
C3 - Grösse
etc. pp.


Ich mache mich in den nächsten Tagen an solch eine Aufstellung - vielen Dank!



Grüße,

Michael Hoff
Verfasst am: 10. 03. 2020 [07:13]
michhoff
Dabei seit: 13.02.2013
Beiträge: 9
"nikolauslinder" schrieb:


Ich kann übrigens von meinen Exporterfahrungen mit rund 23.000 Titeln etc. berichten. Sie wurden jahrgangsweise über die Zwischenablage exportiert, soweit ich sehe, fehlerfrei. In einzelnen Jahrgängen waren über 3.000 Titel dabei. M. a. W.: Der Export über die Zwischenablage funktioniert auch bei größeren Datenmengen zuverlässig. Wichtig ist dabei wohl eine gute Hardwareausstattung (Speicher, CPU).



Vielen Dank für diesen Erfahrungsbericht!

Mir ist noch ein Punkt aufgefallen, der bei einer eventuellen Anleitung für die Tester berücksichtigt werden sollte: Als ich LitLink neu gestartet habe, war das Exportformat bei den Titeldatensätzen auf v1 zurückgesprungen. Erst als ich diese alte Zitierform gelöscht hatte, funktionierte es wieder mit v2.

Grüße,

Michael Hoff
Verfasst am: 10. 03. 2020 [13:37]
nicolausbusch
Themenersteller
Dabei seit: 26.04.2012
Beiträge: 852
"michhoff" schrieb:

Mir ist noch ein Punkt aufgefallen, der bei einer eventuellen Anleitung für die Tester berücksichtigt werden sollte: Als ich LitLink neu gestartet habe, war das Exportformat bei den Titeldatensätzen auf v1 zurückgesprungen. Erst als ich diese alte Zitierform gelöscht hatte, funktionierte es wieder mit v2.

Ah natürlich: da wir die V1 der Zitform mit ausliefern, gehört diese zu den geschützten Zitierformen, die beim Start des Programms restauriert werden. Bitte legen Sie für die Tests eine eigene Zitierform an, die können Sie dann auch vernünftig bearbeiten und überschreiben.
Die neue Version folgt gleich hier drunter, dazu einige Anmerkungen:
- Neu werden in $KeywordProjects die Projekte als Tags berechnet
- In Zeile 215 bis 223 habe ich Beispiele eingebaut, wie man aus weiteren Feldern Einträge in "Notizen" erzeugen kann. Nach diesem Muster lässt sich hier alles unterbringen, was man möchte. Will man eines dieser Felder nicht mitnehmen, entfernt man einfach in Zeile 223 den entsprechenden Eintrag aus der Aufzählung nach "List(".
- Karteikarten nehmen den Kurztitel mit.

Eine besser lesbare Form der Zitierform habe ich unter https://www.litlink.ch/fileadmin/user_upload/downloads/Zitierform%20Export%20ZoteroRIS.txt abgelegt

Verfasst am: 10. 03. 2020 [13:40]
nicolausbusch
Themenersteller
Dabei seit: 26.04.2012
Beiträge: 852
//Litlink 5 Zitierform RIS Export Titel
//V3, 10.03.2020
//Nicolaus Busch

Let([

//Datentyp festlegen

$Type = Case(
DTitel::d_Datentyp2_t = "Sammelband" ; "BOOK";
DTitel::d_Datentyp2_t = "Monographie" ; "BOOK";
DTitel::d_Datentyp2_t = "Werkausgabe" ; "SER";
DTitel::d_Datentyp2_t = "Artikel" ; "JOUR";
DTitel::d_Datentyp2_t = "Aufsatz" ; "CHAP";
DTitel::d_Datentyp2_t = "Interview" ; "PCOMM";
DTitel::d_Datentyp2_t = "Reihe" ; "SER";
DTitel::d_Datentyp2_t = "Tagung" ; "CONF";
DTitel::d_Datentyp2_t = "Vortrag" ; "CPAPER";
DTitel::d_Datentyp2_t = "Brief" ; "PCOMM";
DTitel::d_Datentyp2_t = "Gerichtsentscheid" ; "CASE";
DTitel::d_Datentyp2_t = "Gutachten" ; "HEAR";
DTitel::d_Datentyp_t = "m" ; "MULTI";
DTitel::d_Datentyp_t = "p" ; "MULTI";
DTitel::d_Datentyp_t = "w" ; "ELEC";
"GEN"
);

//Personendaten vorbereiten¶

$tmp_AutorPerson =
_TryPair ( DTitel::d_AutorNachname_t; DTitel::d_AutorVorname_t; ", "; "" ; "" ) &
DTitel::xCalc_Pseudonym_ctu
;

$tmp_Coautoren =
MBS("list.sort" ;
Substitute(
List( DTitel.Coautor::xCalc_NameAutorKomplett_cti) ;
", ";",")
);

$Autoren =
List( "AU - " & $tmp_Autorperson;
MBS("list.AddPrefix" ; $tmp_Coautoren ; "A1 - ";1)
) ;


//Herausgeber ermitteln

$HrsgStatus =
Case(
/* Autor ist Hg. */
IsEmpty( DTitel::d_HerausgeberName_t ) and DTitel::d_Herausgeber_n = 1 ; 1 ;
/* Kein Autor, aber Hg. */
not IsEmpty( DTitel::d_HerausgeberName_t ) and IsEmpty( DTitel::d_AutorNachname_t ); 2;
/* Autor und separater Hg. */
not IsEmpty( DTitel::d_HerausgeberName_t ) and not IsEmpty( DTitel::d_AutorNachname_t ); 3;
/* Autor und Körperschaft als Hg. */
not IsEmpty( DTitel::d_Körperschaft_t ) and not IsEmpty( DTitel::d_AutorNachname_t ); 4;
/* Kein Autor, Körperschaft als Hg. */
not IsEmpty( DTitel::d_Körperschaft_t ) and IsEmpty( DTitel::d_AutorNachname_t ); 5;
/* Einfacher Autor, kein Hg. (d_Herausgeber_n = 1 bedeutet, der Autor ist Hrsg.) */
IsEmpty( DTitel::d_HerausgeberName_t ) and IsEmpty( DTitel::d_Körperschaft_t )
and DTitel::d_Herausgeber_n <> 1 ; 0
);

//Daten verlinkter Hrsg. holen
//...erstmal die Abfrage vorbereiten...
~queryForm =
"SELECT <Name>
FROM <Autoren>
WHERE <ID_Autor> IN (SELECT <ID_Child> FROM <Relation> WHERE <ID_Parent> = ? AND <Typ> = 'Titel-Herausgeber')
ORDER BY <Name>";

//...Form mit korrekten Feldbezeichnern ergänzen...
~query =
Substitute( ~queryForm;
["<Name>" ; "\"xCalc_NameAutorKomplett_cti\"" ];
["<Typ>" ; "\"d_RelationType_t\"" ];
["<ID_Autor>" ; "\"_pk_GUID\"" ];
["<ID_Child>" ;"\"_fk_IDchild_t\"" ];
["<ID_Parent>" ;"\"_fk_IDparent_t\"" ];
["<Autoren>" ; "DAutor" ];
["<Relation>" ; "DRelation" ]
);

//...SQL-Abfrage ausführen
$tmpHrsg =
ExecuteSQL ( ~query ; "" ; "¶" ; DTitel::_pk_GUID );

$Hrsg=
Case(
not IsEmpty( $tmpHrsg );
$tmpHrsg ;
DTitel::d_HerausgeberName_t
);

//Daten verlinkter Hrsg.des Sammelbandes holen
//...erstmal die Abfrage vorbereiten...
~queryForm = Case(
DTitel.Titel.Sammelband::d_Herausgeber_n=1;
"SELECT <Name>
FROM <Autoren>
WHERE <ID_Autor> IN
(SELECT <ID_Child> FROM <Relation> WHERE <ID_Parent> = ? AND <Typ> IN ( 'Titel-Coautor', 'Titel-Autor'))
ORDER BY <Name>";
"SELECT <Name>
FROM <Autoren>
WHERE <ID_Autor> IN (SELECT <ID_Child> FROM <Relation> WHERE <ID_Parent> = ? AND <Typ> = 'Titel-Herausgeber')
ORDER BY <Name>"
);

//...Form mit korrekten Feldbezeichnern ergänzen...
~query =
Substitute( ~queryForm;
["<Name>" ; "\"xCalc_NameAutorKomplett_cti\"" ];
["<Typ>" ; "\"d_RelationType_t\"" ];
["<ID_Autor>" ; "\"_pk_GUID\"" ];
["<ID_Child>" ;"\"_fk_IDchild_t\"" ];
["<ID_Parent>" ;"\"_fk_IDparent_t\"" ];
["<Autoren>" ; "DAutor" ];
["<Relation>" ; "DRelation" ]
);

//...SQL-Abfrage ausführen
$tmpHrsgSB =
Case( not IsEmpty ( DTitel::_fk_Sammelband_t);
ExecuteSQL ( ~query ; "" ; "¶" ; DTitel.Titel.Sammelband::_pk_GUID );
""
);

$HrsgSB=
Case(
not IsEmpty( $tmpHrsgSB );
$tmpHrsgSB;
DTitel.Titel.Sammelband::d_HerausgeberName_t
);



$Herausgeber =
List(
Case(
$HrsgStatus = 0 ; "" ;
//$HrsgStatus = 1 wird unten abgehandelt
$HrsgStatus = 2 ; MBS("list.AddPrefix" ; $tmpHrsg ; "ED - ";1) ;
$HrsgStatus = 3 ; MBS("list.AddPrefix" ; $tmpHrsg ; "ED - ";1) ;
$HrsgStatus = 4 ; "ED - " & DTitel::d_Körperschaft_t ;
$HrsgStatus = 5 ; "ED - " & DTitel::d_Körperschaft_t
) ;
Case(
not IsEmpty($tmpHrsgSB);
MBS("list.AddPrefix" ; $tmpHrsgSB ; "A2 - ";1);
"A2 - " & DTitel.Titel.Sammelband::xCalc_NameAutorKomplett_cti
)
);

//Bei Autor = Herausgeber gibt es nur Hrsg, keine Autoren

$Autoren =
Case( $HrsgStatus = 1 ;
Substitute( $Autoren; ["AU - "; "ED - "];["A1 - "; "ED - "]);
$Autoren
) ;

//Schlagworte

$Keywords =
MBS("list.AddPrefix" ; DTitel::d_Schlagworte_t ; "KW - ";1) ;

//Schlagworte aus Projekten
$KeywordsProjects =
MBS("list.AddPrefix" ; List ( DTitel.XTitelProj.Projekte::d_Name_t ); "KW - ";1) ;

//Karteikarten, Exzerpt und Kommentar in $LNotes umwandeln

//...erstmal die Abfrage für die Karteikarten vorbereiten...
~queryForm =
"SELECT <Seiten> + CASE WHEN <Seiten> IS NOT NULL THEN ': ' ELSE '' END
+ CASE WHEN <Kurztitel> IS NOT NULL THEN TRIM(<Kurztitel>) + '¶' ELSE '' END
+ CASE WHEN <Zitat> IS NOT NULL THEN '\"'+ TRIM(<Zitat>) + '\"' ELSE '' END
+ CASE WHEN <Kommentar> IS NOT NULL THEN '¶'+ TRIM(<Kommentar>) ELSE '' END
FROM <Kartei>
WHERE <ID_Titel> = ?
ORDER BY <SeiteVon>";

//...Form mit korrekten Feldbezeichnern ergänzen...
~query =
Substitute( ~queryForm;
["<Seiten>" ; "xCalc_AnzeigeSeiten_ctu" ];
["<Kurztitel>" ; "d_Kurztitel_t" ];
["<Zitat>" ; "d_Zitat_t" ];
["<Kommentar>" ; "d_Kommentar_t" ];
["<ID_Titel>" ; "\"_fk_Titel_t\"" ];
["<SeiteVon>" ; "d_SeiteVon_n" ];
["<Kartei>" ; "DKartei" ]
);

//...SQL-Abfrage ausführen
$temp =
Substitute( ExecuteSQL ( ~query ; "" ; "##//##" ; DTitel::_pk_GUID ) ;¶; "<br>");
$Notes=
Substitute( MBS( "List.AddPrefix"; Substitute ( $temp;"##//##";¶) ; "N1 - ";1 ) ; "<br>";¶);

//...Kommentar und Rezension sowie Exzerpt vorbereiten
//...(N1 = Notes, N2 = Abstract)
$KomTemp =
Case (not IsEmpty(DTitel::d_Kommentar_t) ; "N1 - Kommentar:¶" & DTitel::d_Kommentar_t );
$RezTemp=
Case (not IsEmpty(DTitel::d_Rezension_t) ; "N1 - " & DGlobals::d_BezeichnerRezension_tg & ":¶" & DTitel::d_Rezension_t );

$Note1 =
List( $KomTemp; $RezTemp);
$Note2 =
Case (not IsEmpty(DTitel::d_Exzerpt_t) ; "N2 - " & DTitel::d_Exzerpt_t );

//Beliebige weitere Notizen hier erzeugen und unten bei "$LNnotes=" in die Liste einfügen
$NoteES=
Case (not IsEmpty(d_EigeneSignatur_t) ; "N1 - Eigene Signatur:" & d_EigeneSignatur_t );
$NoteKopie=
Case (not IsEmpty(d_KopieIn_t) ; "N1 - Kopie in:" & d_KopieIn_t );

//...und alles verwursten zu $LNotes
$LNotes =
List ( $Note1 ; $Note2 ; $NoteES; $NoteKopie; $Notes ) ;

//Links in $LLinks, Websites in $LSites umwandeln

~websites =
List ( DTitel.Website::d_URL_t );
~links =
List ( DTitel.File::d_Pfad_t );

//UR = URL, L1 = Link ($LSites funktioniert in Zotero derzeit nicht, nur eine URL übergebbar)

$LSites = MBS( "List.AddPrefix"; ~websites ; "UR - ";1 ) ;
$LLinks= MBS( "List.AddPrefix"; ~links ; "L4 - " ;1) ;

//Alle abhängigen Daten in eine gemeinsame Liste zum Anhängen giessen

$Anhang = List($LNotes;$Lsites;$LLinks);

//Den Rest vorbereiten

$StartTag = "TY - " & $type;
$EndTag = "ER - ";
$Titel = "T1 - " & DTitel::d_Titel_t;
//...Datierung kommt vom Sammelband, wenn Titel keine hat
$DatTemp = Case(
not IsEmpty(DTitel::d_Datierung_t );
DTitel::d_Datierung_t;
DTitel.Titel.Sammelband::d_Datierung_t
);
$Date =
"PY - " & Case (
//...Titel enthält ein Datum in den Jahr/Monat/Tag Feldern
not IsEmpty(DTitel::d_DatumJahr_n) ;
DTitel::d_DatumJahr_n & "/" & DTitel::d_DatumMonat_n & "/" & DTitel::d_DatumTag_n ;
// ...Das Feld Datierung enthält eine Jahreszahl, der Rest wird Anmerkung
Length( GetAsNumber ( $DatTemp )) = 4;
GetAsNumber( $DatTemp ) & "//" & Substitute( $DatTemp ;
GetAsNumber ( $DatTemp );"");
//...Das Feld Datierung enthält irgendetwas anderes
not IsEmpty( $DatTemp );
$DatTemp
); //end case

$tmp_Seiten = Substitute(DTitel::d_AusgabeSeite_t;[" ";""];["/";"¶"];["-";"¶"];["bis";"¶"]);
$SeiteVon = "SP - " & GetValue ( $tmp_Seiten ; 1);
$SeiteBis = "EP - " & GetValue ( $tmp_Seiten ; 2);
$PeriodikumSigle = "JO - " & DTitel.Periodikum::d_Sigle_t;

//...RIS T2 wird unterschiedlich interpretiert je nach Datentyp
$Reihe =
"T2 - " & Case(
not IsEmpty(DTitel.Titel.Sammelband::d_Titel_t ) ;
DTitel.Titel.Sammelband::d_Titel_t ;
not IsEmpty(DTitel.Periodikum::d_Titel_t ) ;
DTitel.Periodikum::d_Titel_t ;
DTitel::d_Reihe_t
);

$Nummer = "M1 - " & DTitel::d_AusgabeNr_t;
$Sig = "CN - " & Case(
not IsEmpty(DTitel::d_Signaturen_t );
DTitel::d_Signaturen_t;
DTitel.Titel.Sammelband::d_Signaturen_t
);
$Bib = Case( DTitel::d_Datentyp_t = "d";"DB - "; "DP - ") & DTitel.Bibliothek::d_Kurzname_t;
$Standort = Case( DTitel::d_Datentyp_t = "d";"AN - " & DTitel::d_Archivbestand_t);
$Volume = "VL - " & DTitel::d_AusgabeVol_t;
$Ausgabe = "IS - " & DTitel::d_AusgabeNr_t;
$Auflage = "ET - " & Case(
not IsEmpty(DTitel::d_Auflage_t );
DTitel::d_Auflage_t;
DTitel.Titel.Sammelband::d_Auflage_t
);
$Sprache = "LA - " & DTitel::d_Sprache_t;

$Ort =
"CY - " & Case(
not IsEmpty ( DTitel.Periodikum::d_Ort_t ); DTitel.Periodikum::d_Ort_t;
not IsEmpty ( DTitel.Titel.Sammelband::d_Ort_t ); DTitel.Titel.Sammelband::d_Ort_t;
DTitel::d_Ort_t
); //end case

$Verlag =
"PB - " & Case(
not IsEmpty ( DTitel.Periodikum::d_Verlag_t ); DTitel.Periodikum::d_Verlag_t;
not IsEmpty ( DTitel.Titel.Sammelband::d_Verlag_t ); DTitel.Titel.Sammelband::d_Verlag_t;
DTitel::d_Verlag_t
); //end case

$ISBN =
"SN - " & Case(
not IsEmpty ( DTitel.Periodikum::d_ISSN_t ); DTitel.Periodikum::d_ISSN_t;
not IsEmpty ( DTitel.Titel.Sammelband::d_ISBN_t ); DTitel.Titel.Sammelband::d_ISBN_t;
DTitel::d_ISBN_t
); //end case

$URL = "UR - " & DTitel::d_URL_t;
$Gesichtet = "Y2 - " & DTitel::d_DatumGesichtet_d;
$Zusatz = "M2 - " & Case( not IsEmpty ( DTitel::d_BibliogrZusätze_t ) ; DTitel::d_BibliogrZusätze_t & "¶M2 - ---");
$Quelle = "M2 - " & "Litlink 5 - " & cf.LL_DatentypLangform & " - " & DTitel::d_Datentyp2_t;


//Alles zusammenfügen
$result =
List( $tmphrsg;$tmphrsgSB; $StartTag; $Autoren;$Herausgeber;$Titel;$Date;$SeiteVon;$SeiteBis;$PeriodikumSigle;$Periodikum;$Ort;$Verlag;$ISBN;$Reihe;$Nummer;$URL;$Gesichtet;$Bib;$Sig;$Standort;$Auflage;$Volume;$Ausgabe;$Sprache;$Keywords;$KeywordsProjects; $Anhang;$Zusatz;$Quelle;$EndTag)
]; //ende Berechnungen

$result
) //End let
Verfasst am: 11. 03. 2020 [21:41]
marcsee
Dabei seit: 08.10.2016
Beiträge: 11
Hallo,

bei mir funktioniert das alles bislang bestens. Nur eine Kleinigkeit ist mir aufgefallen: Litlink exportiert zwar Formatierungen in der Titelangabe (ich habe viele Titel mit teilweiser Kursivschreibung), aber in Zotero scheint es das nicht zu geben. Gäbe es die Möglichkeit, die Formatierung mit Codes deutlich zu machen (<i>, oder Unterstrich etc.)? Mir würde das helfen.

Beste Grüße, Marc Seemann
Verfasst am: 16. 03. 2020 [09:39]
michhoff
Dabei seit: 13.02.2013
Beiträge: 9
Die Version 3 arbeitet noch besser, z.B. die Überführung der Projekte in Tags ist sehr gut.

Das Einzige, was für die Titeldatenübernahme m.E. noch fehlt, ist die Übernahme von "Erstausgabe" - also das Textfeld, in dem das Jahr der Originalpublikation und ggf. weitere Informationen dazu verzeichnet werden. Das sollte am besten unter dem RIS-Tag OP (Original Publication) landen.


"nicolausbusch" schrieb:


"michhoff" schrieb:

Neben der gelungenen Titelübernahme habe ich mir auch die Übernahme von Objekten angesehen, für die ebenfalls ein RIS-Exportformat erzeugt wird. Dieses ist aber noch rudimentär - wenn da weiterentwickelt wird, teste ich das auch gerne. Ich fände dabei - als Kunsthistoriker - insbesondere die Übertragung von LL-'Objekten' in den Datentyp 'Kunstwerk' in Zotero nützlich, inkl. der bislang noch nicht übertragenen Feldinhalte zu 'Größe', 'Material' bzw. 'Medien'.

Das kann man sicherlich tun, hier müsste aber erst einmal Vorarbeit geleistet werden:
unter https://github.com/aurimasv/translators/wiki/RIS-Tag-Map ist dokumentiert, welche Einträge aus RIS Zotero in welche Felder schreibt. Ich brauche eine Liste die mir exakt sagt, welches Litlink-Feld mit welchem Tag geschrieben werden soll, also wie:

TY - "Art"
AU - Autor
C3 - Grösse
etc. pp.


Ich habe mal soweit als möglich so eine Zuordnungstabelle zusammengestellt. Dabei bin ich davon ausgegangen, dass in der LitLink-Objektmodul Daten für Kunstwerke erfasst wurden, also in den RIS-Typ "Artwork" konvertiert werden soll.

Da das Einfügen der Tabelle hier im Forum nicht recht klappt, hier der Link zur RTF-Datei:

https://heibox.uni-heidelberg.de/d/d54282de1f544ca580e1/

Es bleiben in der Tabelle aber noch einige Fragen offen, die ich ohne Detailkenntnisse nicht beantworten kann. Vielleicht lässt sich trotzdem damit arbeiten? Vielen Dank!



Viele Grüße

M. Hoff
Verfasst am: 16. 03. 2020 [16:34]
nicolausbusch
Themenersteller
Dabei seit: 26.04.2012
Beiträge: 852
Lieber Herr Hoff
vielen Dank für die Vorarbeiten. Leider scheint es so zu sein, dass Zotero nicht alles tatsächlich annimmt, was in der Spezifikation aufgeführt ist. Die Tags OP, AD, CA und M1 werden völlig ignoriert, ein in CY übergebener Ort landet mit dem Zusatz "Place: " unter "Extras". Auch für den Eintrag L4 ("Figure") sehe ich keine Entsprechung, wenn ich mir einen Datensatz in Zotero anschaue. Von daher komme ich im Moment damit nur so weit wie unten in der V4.

==============================
//Litlink 5 Zitierform RIS Export Titel
//V4, 16.03.2020
//Nicolaus Busch

Let([

//Datentyp festlegen

$Type = Case(
DTitel::d_Datentyp2_t = "Sammelband" ; "BOOK";
DTitel::d_Datentyp2_t = "Monographie" ; "BOOK";
DTitel::d_Datentyp2_t = "Werkausgabe" ; "SER";
DTitel::d_Datentyp2_t = "Artikel" ; "JOUR";
DTitel::d_Datentyp2_t = "Aufsatz" ; "CHAP";
DTitel::d_Datentyp2_t = "Interview" ; "PCOMM";
DTitel::d_Datentyp2_t = "Reihe" ; "SER";
DTitel::d_Datentyp2_t = "Tagung" ; "CONF";
DTitel::d_Datentyp2_t = "Vortrag" ; "CPAPER";
DTitel::d_Datentyp2_t = "Brief" ; "PCOMM";
DTitel::d_Datentyp2_t = "Gerichtsentscheid" ; "CASE";
DTitel::d_Datentyp2_t = "Gutachten" ; "HEAR";
DTitel::d_Datentyp_t = "m" ; "MULTI";
DTitel::d_Datentyp_t = "p" ; "MULTI";
DTitel::d_Datentyp_t = "w" ; "ELEC";
DTitel::d_Datentyp_t = "g" ; "ART";
"GEN"
);

//Personendaten vorbereiten¶

$tmp_AutorPerson =
_TryPair ( DTitel::d_AutorNachname_t; DTitel::d_AutorVorname_t; ", "; "" ; "" ) &
DTitel::xCalc_Pseudonym_ctu
;

$tmp_Coautoren =
MBS("list.sort" ;
Substitute(
List( DTitel.Coautor::xCalc_NameAutorKomplett_cti) ;
", ";",")
);

$Autoren =
List( "AU - " & $tmp_Autorperson;
MBS("list.AddPrefix" ; $tmp_Coautoren ; "A1 - ";1)
) ;


//Herausgeber ermitteln

$HrsgStatus =
Case(
/* Autor ist Hg. */
IsEmpty( DTitel::d_HerausgeberName_t ) and DTitel::d_Herausgeber_n = 1 ; 1 ;
/* Kein Autor, aber Hg. */
not IsEmpty( DTitel::d_HerausgeberName_t ) and IsEmpty( DTitel::d_AutorNachname_t ); 2;
/* Autor und separater Hg. */
not IsEmpty( DTitel::d_HerausgeberName_t ) and not IsEmpty( DTitel::d_AutorNachname_t ); 3;
/* Autor und Körperschaft als Hg. */
not IsEmpty( DTitel::d_Körperschaft_t ) and not IsEmpty( DTitel::d_AutorNachname_t ); 4;
/* Kein Autor, Körperschaft als Hg. */
not IsEmpty( DTitel::d_Körperschaft_t ) and IsEmpty( DTitel::d_AutorNachname_t ); 5;
/* Einfacher Autor, kein Hg. (d_Herausgeber_n = 1 bedeutet, der Autor ist Hrsg.) */
IsEmpty( DTitel::d_HerausgeberName_t ) and IsEmpty( DTitel::d_Körperschaft_t )
and DTitel::d_Herausgeber_n <> 1 ; 0
);

//Daten verlinkter Hrsg. holen
//...erstmal die Abfrage vorbereiten...
~queryForm =
"SELECT <Name>
FROM <Autoren>
WHERE <ID_Autor> IN (SELECT <ID_Child> FROM <Relation> WHERE <ID_Parent> = ? AND <Typ> = 'Titel-Herausgeber')
ORDER BY <Name>";

//...Form mit korrekten Feldbezeichnern ergänzen...
~query =
Substitute( ~queryForm;
["<Name>" ; "\"xCalc_NameAutorKomplett_cti\"" ];
["<Typ>" ; "\"d_RelationType_t\"" ];
["<ID_Autor>" ; "\"_pk_GUID\"" ];
["<ID_Child>" ;"\"_fk_IDchild_t\"" ];
["<ID_Parent>" ;"\"_fk_IDparent_t\"" ];
["<Autoren>" ; "DAutor" ];
["<Relation>" ; "DRelation" ]
);

//...SQL-Abfrage ausführen
$tmpHrsg =
ExecuteSQL ( ~query ; "" ; "¶" ; DTitel::_pk_GUID );

$Hrsg=
Case(
not IsEmpty( $tmpHrsg );
$tmpHrsg ;
DTitel::d_HerausgeberName_t
);

//Daten verlinkter Hrsg.des Sammelbandes holen
//...erstmal die Abfrage vorbereiten...
~queryForm = Case(
DTitel.Titel.Sammelband::d_Herausgeber_n=1;
"SELECT <Name>
FROM <Autoren>
WHERE <ID_Autor> IN
(SELECT <ID_Child> FROM <Relation> WHERE <ID_Parent> = ? AND <Typ> IN ( 'Titel-Coautor', 'Titel-Autor'))
ORDER BY <Name>";
"SELECT <Name>
FROM <Autoren>
WHERE <ID_Autor> IN (SELECT <ID_Child> FROM <Relation> WHERE <ID_Parent> = ? AND <Typ> = 'Titel-Herausgeber')
ORDER BY <Name>"
);

//...Form mit korrekten Feldbezeichnern ergänzen...
~query =
Substitute( ~queryForm;
["<Name>" ; "\"xCalc_NameAutorKomplett_cti\"" ];
["<Typ>" ; "\"d_RelationType_t\"" ];
["<ID_Autor>" ; "\"_pk_GUID\"" ];
["<ID_Child>" ;"\"_fk_IDchild_t\"" ];
["<ID_Parent>" ;"\"_fk_IDparent_t\"" ];
["<Autoren>" ; "DAutor" ];
["<Relation>" ; "DRelation" ]
);

//...SQL-Abfrage ausführen
$tmpHrsgSB =
Case( not IsEmpty ( DTitel::_fk_Sammelband_t);
ExecuteSQL ( ~query ; "" ; "¶" ; DTitel.Titel.Sammelband::_pk_GUID );
""
);

$HrsgSB=
Case(
not IsEmpty( $tmpHrsgSB );
$tmpHrsgSB;
DTitel.Titel.Sammelband::d_HerausgeberName_t
);



$Herausgeber =
List(
Case(
$HrsgStatus = 0 ; "" ;
//$HrsgStatus = 1 wird unten abgehandelt
$HrsgStatus = 2 ; MBS("list.AddPrefix" ; $tmpHrsg ; "ED - ";1) ;
$HrsgStatus = 3 ; MBS("list.AddPrefix" ; $tmpHrsg ; "ED - ";1) ;
$HrsgStatus = 4 ; "ED - " & DTitel::d_Körperschaft_t ;
$HrsgStatus = 5 ; "ED - " & DTitel::d_Körperschaft_t
) ;
Case(
not IsEmpty($tmpHrsgSB);
MBS("list.AddPrefix" ; $tmpHrsgSB ; "A2 - ";1);
"A2 - " & DTitel.Titel.Sammelband::xCalc_NameAutorKomplett_cti
)
);

//Bei Autor = Herausgeber gibt es nur Hrsg, keine Autoren

$Autoren =
Case( $HrsgStatus = 1 ;
Substitute( $Autoren; ["AU - "; "ED - "];["A1 - "; "ED - "]);
$Autoren
) ;

//Schlagworte

$Keywords =
MBS("list.AddPrefix" ; DTitel::d_Schlagworte_t ; "KW - ";1) ;

//Schlagworte aus Projekten
$KeywordsProjects =
MBS("list.AddPrefix" ; List ( DTitel.XTitelProj.Projekte::d_Name_t ); "KW - ";1) ;

//Karteikarten, Exzerpt und Kommentar in $LNotes umwandeln

//...erstmal die Abfrage für die Karteikarten vorbereiten...
~queryForm =
"SELECT <Seiten> + CASE WHEN <Seiten> IS NOT NULL THEN ': ' ELSE '' END
+ CASE WHEN <Kurztitel> IS NOT NULL THEN TRIM(<Kurztitel>) + '¶' ELSE '' END
+ CASE WHEN <Zitat> IS NOT NULL THEN '\"'+ TRIM(<Zitat>) + '\"' ELSE '' END
+ CASE WHEN <Kommentar> IS NOT NULL THEN '¶'+ TRIM(<Kommentar>) ELSE '' END
FROM <Kartei>
WHERE <ID_Titel> = ?
ORDER BY <SeiteVon>";

//...Form mit korrekten Feldbezeichnern ergänzen...
~query =
Substitute( ~queryForm;
["<Seiten>" ; "xCalc_AnzeigeSeiten_ctu" ];
["<Kurztitel>" ; "d_Kurztitel_t" ];
["<Zitat>" ; "d_Zitat_t" ];
["<Kommentar>" ; "d_Kommentar_t" ];
["<ID_Titel>" ; "\"_fk_Titel_t\"" ];
["<SeiteVon>" ; "d_SeiteVon_n" ];
["<Kartei>" ; "DKartei" ]
);

//...SQL-Abfrage ausführen
$temp =
Substitute( ExecuteSQL ( ~query ; "" ; "##//##" ; DTitel::_pk_GUID ) ;¶; "<br>");
$Notes=
Substitute( MBS( "List.AddPrefix"; Substitute ( $temp;"##//##";¶) ; "N1 - ";1 ) ; "<br>";¶);

//...Kommentar und Rezension sowie Exzerpt vorbereiten
//...(N1 = Notes, N2 = Abstract)
$KomTemp =
Case (not IsEmpty(DTitel::d_Kommentar_t) ; "N1 - Kommentar:¶" & DTitel::d_Kommentar_t );
$RezTemp=
Case (not IsEmpty(DTitel::d_Rezension_t) ; "N1 - " & DGlobals::d_BezeichnerRezension_tg & ":¶" & DTitel::d_Rezension_t );

$Note1 =
List( $KomTemp; $RezTemp);
$Note2 =
Case (not IsEmpty(DTitel::d_Exzerpt_t) ; "AB - " & DTitel::d_Exzerpt_t );

//Beliebige weitere Notizen hier erzeugen und unten bei "$LNnotes=" in die Liste einfügen
$NoteES=
Case (not IsEmpty(d_EigeneSignatur_t) ; "N1 - Eigene Signatur:" & d_EigeneSignatur_t );
$NoteKopie=
Case (not IsEmpty(d_KopieIn_t) ; "N1 - Kopie in:" & d_KopieIn_t );

//...und alles verwursten zu $LNotes
$LNotes =
List ( $Note1 ; $Note2 ; $NoteES; $NoteKopie; $Notes ) ;

//Links in $LLinks, Websites in $LSites umwandeln

~websites =
List ( DTitel.Website::d_URL_t );
~links =
List ( DTitel.File::d_Pfad_t );

//UR = URL, L1 = Link ($LSites funktioniert in Zotero derzeit nicht, nur eine URL übergebbar)

$LSites = MBS( "List.AddPrefix"; ~websites ; "UR - ";1 ) ;
$LLinks= MBS( "List.AddPrefix"; ~links ; "L4 - " ;1) ;

//Alle abhängigen Daten in eine gemeinsame Liste zum Anhängen giessen

$Anhang = List($LNotes;$Lsites;$LLinks);

//Den Rest vorbereiten

$StartTag = "TY - " & $type;
$EndTag = "ER - ";
$Titel = "T1 - " & DTitel::d_Titel_t;
//...Datierung kommt vom Sammelband, wenn Titel keine hat
$DatTemp = Case(
not IsEmpty(DTitel::d_Datierung_t );
DTitel::d_Datierung_t;
DTitel.Titel.Sammelband::d_Datierung_t
);
$Date =
"PY - " & Case (
//...Titel enthält ein Datum in den Jahr/Monat/Tag Feldern
not IsEmpty(DTitel::d_DatumJahr_n) ;
DTitel::d_DatumJahr_n & "/" & DTitel::d_DatumMonat_n & "/" & DTitel::d_DatumTag_n ;
// ...Das Feld Datierung enthält eine Jahreszahl, der Rest wird Anmerkung
Length( GetAsNumber ( $DatTemp )) = 4;
GetAsNumber( $DatTemp ) & "//" & Substitute( $DatTemp ;
GetAsNumber ( $DatTemp );"");
//...Das Feld Datierung enthält irgendetwas anderes
not IsEmpty( $DatTemp );
$DatTemp
); //end case

$tmp_Seiten = Substitute(DTitel::d_AusgabeSeite_t;[" ";""];["/";"¶"];["-";"¶"];["bis";"¶"]);
$SeiteVon = "SP - " & GetValue ( $tmp_Seiten ; 1);
$SeiteBis = "EP - " & GetValue ( $tmp_Seiten ; 2);
$PeriodikumSigle = "JO - " & DTitel.Periodikum::d_Sigle_t;

//...RIS T2 wird unterschiedlich interpretiert je nach Datentyp
$Reihe =
"T2 - " & Case(
not IsEmpty(DTitel.Titel.Sammelband::d_Titel_t ) ;
DTitel.Titel.Sammelband::d_Titel_t ;
not IsEmpty(DTitel.Periodikum::d_Titel_t ) ;
DTitel.Periodikum::d_Titel_t ;
DTitel::d_Reihe_t
);

$Nummer = "M1 - " & DTitel::d_AusgabeNr_t;
$Sig = "CN - " & Case(
not IsEmpty(DTitel::d_Signaturen_t );
DTitel::d_Signaturen_t;
DTitel.Titel.Sammelband::d_Signaturen_t
);
$Bib = Case( DTitel::d_Datentyp_t = "d";"DB - "; "DP - ") & DTitel.Bibliothek::d_Kurzname_t;
$Standort = Case( DTitel::d_Datentyp_t = "d";"AN - " & DTitel::d_Archivbestand_t);
$DOI = "DO - " & DTitel::d_DOI_t;
$EA = "OP - " & DTitel::d_DatumEA_T;
$Volume = "VL - " & DTitel::d_AusgabeVol_t;
$Ausgabe = "IS - " & DTitel::d_AusgabeNr_t;
$Auflage = "ET - " & Case(
not IsEmpty(DTitel::d_Auflage_t );
DTitel::d_Auflage_t;
DTitel.Titel.Sammelband::d_Auflage_t
);
$Sprache = "LA - " & DTitel::d_Sprache_t;

$Ort =
"CY - " & Case(
not IsEmpty ( DTitel.Periodikum::d_Ort_t ); DTitel.Periodikum::d_Ort_t;
not IsEmpty ( DTitel.Titel.Sammelband::d_Ort_t ); DTitel.Titel.Sammelband::d_Ort_t;
DTitel::d_Ort_t
); //end case

$Verlag =
"PB - " & Case(
not IsEmpty ( DTitel.Periodikum::d_Verlag_t ); DTitel.Periodikum::d_Verlag_t;
not IsEmpty ( DTitel.Titel.Sammelband::d_Verlag_t ); DTitel.Titel.Sammelband::d_Verlag_t;
DTitel::d_Verlag_t
); //end case

$ISBN =
"SN - " & Case(
not IsEmpty ( DTitel.Periodikum::d_ISSN_t ); DTitel.Periodikum::d_ISSN_t;
not IsEmpty ( DTitel.Titel.Sammelband::d_ISBN_t ); DTitel.Titel.Sammelband::d_ISBN_t;
DTitel::d_ISBN_t
); //end case

$URL = "UR - " & DTitel::d_URL_t;
$Gesichtet = "Y2 - " & DTitel::d_DatumGesichtet_d;
$Zusatz = "M2 - " & Case( not IsEmpty ( DTitel::d_BibliogrZusätze_t ) ; DTitel::d_BibliogrZusätze_t & "¶M2 - ---");
$Quelle = "M2 - " & "Litlink 5 - " & cf.LL_DatentypLangform & " - " & DTitel::d_Datentyp2_t;
$C3 = "C3 - " & _trypair(DTitel::d_Groesse_t ; DTitel::d_Gewicht_t;"/";"";"");
$M3 = "M3 - " & DTitel::d_Material_t;



//Alles zusammenfügen
$result =
List( $tmphrsg;$tmphrsgSB; $StartTag; $Autoren;$Herausgeber;$Titel;$Date;$SeiteVon;$SeiteBis;$PeriodikumSigle;$Periodikum;$Ort;$Verlag;$ISBN;$Reihe;$Nummer;$URL;$Gesichtet;$Bib;$Sig;$DOI;$EA;$Standort;$Auflage;$Volume;$Ausgabe;$Sprache;$Keywords;$KeywordsProjects; $Anhang;$Zusatz;$Quelle;$C3;$M3;$CA;$EndTag)
]; //ende Berechnungen

$result
) //End let



Benutzeranmeldung

Geben Sie Ihren Benutzernamen und Ihr Passwort ein, um sich an der Website anzumelden:
Anmelden

Kennwort vergessen?