Verfasser in Literaturdatenbank

Hallo miteinander!

Ich arbeite gerade an einer Literaturdatenbank für wissenschaftliche Arbeiten. Dabei stellt sich folgende Frage:

Wie erfasse ich am geschickten die Namen der Verfasser / Herausgeber?

Das Problem ist, dass ich in manchen Reports den Namen in der Form “Vorname Nachname” brauche, in anderen aber wieder als “Nachname, Vorname” oder auch “Nachname” allein. Dazu kommt, dass manche Bücher nicht einen einzelnen Verfasser haben, sondern mehrere. Was kann ich da machen?

Vielen Dank für eure Hilfe!

Sebastian

Hallo Sebastian,

Ich denke, die Flexibilität hat da gewisse Grenzen bzw. es hat wenig Sinn, zu viel Aufwand zu treiben, um alle Eventualitäten abzudecken. Bezeichnend ist ja etwa auch der Fall, dass es eine Konvention gibt, nach der bei zwei Autoren der erste in der Reihenfolge Nachname, Vorname genannt wird, der zweite aber dann in umgekehrter Reihenfolge, z.B.

“Hengeveld, Kees & J. Lachlan Mackenzie”

Und wie werden die beiden getrennt: wie hier mit dem et-Zeichen oder mit Querstrich oder mit Semikolon?

Okay, also ich habe in meiner DB nur ein Feld für Autor(en) und Herausgeber. Reports mit “Vorname Nachname” oder nur “Nachname”: dafür habe ich ehrlich gesagt noch keinen Bedarf gehabt. Aber gut, jetzt wo du’s sagst: Für den Fall würde ich einfach ein weiteres Feld “Kurzautor” anlegen, in dem ich eben nur den oder die Nachnamen reinschreibe/reinkopiere, dann könnte ich beim Report wählen, wonach mir gerade der Sinn steht.

Viel Spaß beim Aufbau deiner Literaturdatenbank! Es ist ja nicht so, dass ich da minimalistisch bin, denn In der Tat fallen einem leicht immer neue Felder zur Erweiterung ein, in meiner sind es mittlerweile über 30.

Gruß, wp.

Hallo Sebastian.

Wer ins Auge fasst, papyrus für seine wissenschaftlichen Projekte zu nutzen, sollte, bevor er anfängt, anhand der ihm bekannt gegebenen Manuskriptrichtlinie (z.B. vom Verlag) u.a. checken, welchem Stil (DIN, Vancouver, Uni-/ Verlagseigener Stil) das Literaturverzeichnis zu folgen hat.

Er sollte nun bereit sein, Zeit zu investieren, um sich in papyrus BASE eine Literaturdatenbank anzulegen, die den Erfordernissen zumindest dieser seiner ersten schriftlichen Arbeit zu 100% entspricht.

Da es aber oft nicht bei einer schriftlichen wissenschaftlichen Arbeit bleibt, sollte ggfs. diese Datenbank von vornherein – und ich spreche hier nur vom Haupt-Eingabeformular – deutlich ‚breiter‘ ausgelegt werden, so dass sie auch anderen Anforderungen (anderen Stilen) an das zu erzeugende Literaturverzeichnis gerecht werden kann.

Eine sehr gute Grundlage für eine solche Datenbank – welche dennoch u.U. einmal aber dann nur geringfügig geändert werden müsste – bietet meiner Meinung nach der Stil nach „DIN“. Man kommt da auf runde 100 DB-Felder.

(Es wird ein unschönes z.T. auch unhandlich langes Eingabeformular.

Aber: „Register“ für papyrus BASE stehen bekanntlich schon auf der Aufgabenliste des Herstellers.)

Es empfiehlt sich ein DB-Feld (nennen wir es einmal Projekt) mit der Funktionalität einer Combobox in die Datenbank einzuführen. Dessen einzige Aufgabe ist es die Zuordnungen zu wiss. Projekten (Leitartikel: Thema A, „Der Chirurg“, Springer, Bln.) festzuhalten. Warum?

Dadurch kann sichergestellt werden, dass alle in papyrus Autor | Office geschriebenen wiss. Projekte auf nur eine Literaturdatenbank zugreifen. Bekanntlich reicht es oft aus, einen einmal angelegten Datensatz (zitierfähige Quellangabe) zu duplizieren und durch wenige Anpassung (z.B. der Seitenzahl(en)) entweder im gleichen Projekt oder in einem Anderen (Leitartikel: Thema B, „Der Chirurg“, Springer, Bln.) erneut zu verwenden.

Also in aller Kürze - Norm DIN 1505-orientiert:

Du entwirfst die Datenbank (Haupt-Eingabeformular) so, dass sie alle Daten, für ein (Dein) vollständiges wiss. Literaturverzeichnis aufnehmen kann und ggfs. auch für die Zukunft gut gewappnet ist.

Du solltest beachten, dass zwischen zwei Publikationsformen (bibliografisch selbstständig / bibliografisch unselbständig) unterschieden wird. Das bedeutet Du brauchst schon mal ein DB-Feld (nennen wir es Publikationstyp) mit der Funktionalität einer Combobox. Dort kannst Du (später bei der Eingabe auswählbar) einmalig Referenzwerte hinterlegen.

Zum Beispiel:

bsMonografie (bs = steht hier als Information für: ‚bibliografisch selbstständig‘)

buZeitschriftenaufsatz (bu = steht hier als Information für: ‚bibliografisch unselbstständig‘)

→ Eine Monografie ist also bibliografisch selbstständig.

→ Ein Zeitschriftenaufsatz ist also bibliografisch unselbstständig.

Die Referenzwerte (und natürlich weitere) brauchst Du später für Abfragen in der / den Reportvorlage:thumbsdown:.

Also: WENN Publikationstyp = bsMonographie DANN tue dies SONST jenes

Für den geforderten Stil (Manuskriptrichtlinie) erstellst Du die entsprechende BASE-Report-Vorlage, denn der Mindestanspruch an ein solches Literaturverzeichnis (der erzeugte Datenbankreport) muss sein, dass es von Anfang bis Ende treu einem Zitierstil folgt. Da versteht es sich übrigens von selbst, dass die Angaben zu den Urheber-Namen nicht mal so und mal so im erzeugten Datenbankreport (Literaturverzeichnis) auftauchen aber das hast Du ja schon richtig bemerkt. Im Gegenteil, du solltest beachten, ob gewünscht ist ggfs. den zweiten und dritten Vornamen mit anzugeben, und wenn ja, ob diese mit ihren Anfangsbuchstaben abgekürzt oder eben nicht abgekürzt werden können…

Die Anforderungen insbesondere an die BASE-Reportvorlagen sind umfangreich:

So muss u.U. eine Textpassage (das können der Nachname einer Person und der Eigenname bspw. von einer Institution sein) einen festgelegten Schriftstil aufweisen.

Den Kampf, mit korrekt gesetzten Deskriptionszeichen, die als salopp gesagt als Trenner dienen, gilt es zu gewinnen.

Beispiel: Das ist der Titel: Das ist der Untertitel.

Hier noch ein paar Beispiele, wie das mit dem Einsatz von Deskriptionszeichen gemeint ist:

Nach Punkt (. ) und Komma (, ) steht eine Leerstelle.

Vor und nach Gedankenstrich ( - ), Schrägstrich ( / ) und Semikolon ( ; ) steht eine Leerstelle.

Und Weiteres mehr.

Es muss deutlich werden wer in welcher Funktion, am zitierten Buch beteiligt war z.B. Name, Vorname (Mitarb.), Name, Vorname (Illustr.), Name, Vorname (Übers.) …

Und Weiteres mehr.

Ich muss gestehen ich bewege mich hier auf einem ganz anderen, wesentlich niedrigeren, Niveau. Die Literaturdatenbank habe ich für meine Freundin erstellt, als Hilfsmittel beim Schreiben von Hausarbeiten für die Uni: Sie macht eine Kopie der Vorlage für ihr aktuelles Projekt und trägt ihre Bücher ein. Beim Zitieren kann sie dann die notwendigen Angaben bequem per Report einfügen, und das Literaturverzeichnis wird am Ende auch automatisch erstellt.

Ich arbeite mit drei Reports: Der erste ist fürs Literaturverzeichnis, hier werden per Vorgabe der Uni Autor bzw. Herausgeber in der Form “Name, Vorname” verlangt. Der zweite ist für die erste Fußnoten-Literaturangabe, sie muss den Namen als “Vorname Name” enthalten. Die dritte ist für alle Fußnoten-Literaturangaben nach der ersten, es handelt sich dabei um eine verkürzte Variante in der nur noch der “Name” genannt wird.

Das große Problem habe ich ja schon genannt: Viele Bücher haben mehrere Autoren. Wenn dem nicht so wäre könnte ich einfach getrennte Felder für Vorname und Name verwenden, und mir im Report dann die gerade benötigte Kombination zusammenpuzzlen. Da das nicht geht verwende ich momentan eine wenig elegante Notlösung: Es gibt für Autor und für Herausgeber jeweils zwei Felder, eins für “Name, Vorname” und eins für “Vorname, Name”. Ausserdem gibt es ein Feld, in das man beim Erstellen des Datensatzes die verkürzte Fußnote komplett von Hand einträgt.

Ich hatte gehofft es gäbe da vielleicht eine elegantere und flexiblere Lösung, mit weniger Feldern.

[quote title=Sebastian schrieb am So, 07 März 2010 00:28]

Das große Problem habe ich ja schon genannt: Viele Bücher haben mehrere Autoren. Wenn dem nicht so wäre könnte ich einfach getrennte Felder für Vorname und Name verwenden, und mir im Report dann die gerade benötigte Kombination zusammenpuzzlen.

quote]

Hallo Sebastian.

Verstehe ich nicht ganz.

Natürlich könntest Du mehrere DB-Felder für einen Verfasser (Name, Vorname1, Vorname2, Vorname3) in der Datenbank halten.

Natürlich könntest Du Dein Eingabeformular von Anfang an so einrichten, dass es die Daten von mehreren Verfassern aufnehmen kann.

Allerdings kann es sehr wohl passieren, dass aus einer Quelle zitiert wird, in der mehr Verfasser aufgeführt sind, als die Datenbank zum Zeitpunkt womöglich erfassen kann. Dann muss entschieden werden, erweitern, was schnell geht oder belassen.

Was hindert Dich denn daran, das Formular u.a. wie folgt zu bestücken?

Urheber

optional:

<Urheber - Jahr>

Verfasser (ca. 15)

|

|<Vorname2_1>

|<Vorname3_1>

Herausgeber Person (max. 3)

|

|<VornameHrsg2_1>

|<VornameHrsg3_1>

Herausgeber institutionell

|

|

Oder noch einen kleinen Schritt weiter, um etwas besser auf praxisrelevante Erfordernisse reagieren zu können, die auch wichtig aber für Dich offenbar (noch) nicht relevant sind.

Das folgende Formular berücksichtigt die Behandlung von mehreren Vornamen eines Verfassers bzw. Herausgebers in sep. DB-Feldern.

Urheber

optional:

<Urheber - Jahr>

Verfasser (ca. 15)

|||

|<Vorname2_1>|<Vorname2_2>|<Vorname2_3>

|<Vorname3_1>|<Vorname3_2>|<Vorname3_3>

Herausgeber Person (max. 3)

||||

|<VornameHrsg2_1>|<VornameHrsg2_2>|<VornameHrsg2_3 >|

|<VornameHrsg3_1>|<VornameHrsg3_2>|<VornameHrsg3_3 >|

Herausgeber institutionell

|

|

Für den Bereich „Urheber“ sehe ich bei beiden oben dargestellten Eingabeformularen Vorteile gegenüber Deiner Vorgehensweise mit den jeweils 2 DB-Feldern → mal so rum und mal so rum.

In der Hauptsache werden die DB-Felder mit der Funktion IF/THEN/ELSE abgefragt.

Aber auch LTRIM, RTRIM, SPACE:thumbsdown:… wirst Du benötigen.

Das Setzen diverser Zeichen (außer dem Punkt beim abgekürzten Vornamen) also auch ein Leerzeichen erfolgt in der Report-Vorlage.

Überlegung:

Es könnte eine Checkbox geben. Sie deckt eine(1) Besonderheit ab.

Im Formeleditor wird also vorangestellt;

IF Checkbox Stil1 = 1 THEN ‚tritt der Block in Kraft‘ ELSE ‚jener Block‘ ENDIF

So einem DB-Feld (gemeint ist hier z.B. <VornameHrsg2_2>) in der Report-Vorlage wird sehr oft etwas vorangestellt z.B. ein Leerzeichen (wenn die Bedingung erfüllt ist) und hinten angefügt, z.B. ein Leerzeichen (wenn die Bedingung erfüllt ist) oder auch ein Semikolon (wenn die Bedingung erfüllt ist und der Stil es fordert).

Die BASE-Report-Vorlage muss dann oft noch formatiert (z.B.Einzüge) werden. Fertig.

Entschuldigung dafür, dass es etwas mehr geworden ist. Ich möchte es jetzt aus Zeitgründen eigentlich hierbei belassen und bitte um Verständnis.

Man kann auch einfach **ein **Autoren-Feld nehmen und dies dann entsprechend auswerten, mit String-Operatoren.

Z.B. “Vorname1 Nachname1, Vorname2 Nachname2, Vorname3 Nachname3” als Inhalt der Autoren könnte man, indem man nach den Kommata sucht, wahlweise mit

“Nachname1 et. al.” ausgeben, oder einfach so, wie der Feldinhalt ist, oder auch nur Nachnamen, nur Vornamen - ist halt ein bißchen Programmierung des Datenfeldes, was die Ausgabe im Report macht.

Zauberwort ist hier halt keine direkte Ausgabe, sondern etwas wie folgt muss ein Datenfeld-Platzhalter z.B. aussehen, der das Feld “Autoren” verwurstet:

IF LOCATE(Autoren,‘,’)>0 // ist ein Komma drin? Wenn ja, dann

// sind’s mehrere Autoren

SUBSTRING(Autoren,LOCATE(Autoren,’ '),

       (LOCATE(Autoren,',')-LOCATE(Autoren,' ')))+' et. al.'

// Teil-String: von Pos. des Leerz. ab, Länge Komma-Pos. minus

// Leerz.-Pos., dahinter einfach “et. al.” schreiben

ELSE

Autoren

// Wenn kein Komma → nur ein Autor, alles ausgeben

ENDIF

So ungefähr ins Unreine, abends nach’m Bier oder zwei, ungetestet. Rest vielleicht einfach mal selbst hinfummeln.

Danke, das sollte für meine Zwecke bestens geeignet sein! Ich muss die Formel noch in Ruhe ausprobieren (dafür ists heute schon zu spät), aber ich denke mal das ist der richtige Ansatz.

@dotpap: Es geht mir ja gerade darum, die Anzahl der Felder möglichst gering zu halten - die Datenbank soll so überschaubar wie möglich bleiben, und der Benutzer soll keine Zusatzarbeit haben (also nicht z.B. wie bei meiner Übergangslösung, wo man die Namen zweimal in unterschiedlichen Schreibweisen eingeben muss). Nach dem was Ulli geschrieben hat waren wohl mein Ansatz und damit meine Fragestellung falsch: Nicht das richtige *Erfassen *der Namen ist die Lösung, sondern das richtige Ausgeben. Es tut mir leid, dass ich dir dabei jetzt unnötige Arbeit gemacht habe.

Ok, LOCATE und SUBSTRING sind soweit klar (hab am Wochenende ausführlich damit rumexperimentiert). Wie krieg ich es hin, dass alle Autoren auf diese Art ausgegeben werden, und nicht nur der erste?

Mein Feld soll im Endeffekt so aussehen:

Name(1), Vorname(1); Name(2), Vorname(2);…Name:thumbsdown:, Vorname:thumbsdown:

Ein Semikolon trennt zwei Autoren, und ein Komma trennt Vor- und Nachname (damit es keine Probleme mit umständlichen Doppelnamen u.ä. gibt).

Bis jetzt kann ich den Nachnamen oder den Vornamen von Autor Nummer 1 einzeln oder in einer Beliebigen Kombination ausgeben. Wie kann ich das gleiche mit Autor 2 und 3 machen?

Ich versuch nochmal, die Fragestellung zu konkretisieren, ich bin nämlich immer noch nicht weitergekommen. Das hier sind meine drei Zeilen string-Operation:

Das ganze bewirkt bislang folgendes: Ein Feld mit dem Format “Name1, Vorname1; Name2, Vorname2,…”, bei dem kein Semikolon enthalten ist (sprich: bei dem nur ein Autor verzeichnet ist), wird in der Form “Vorname1 Name1” ausgegeben. Der erste Substring gibt den Text ab dem Leerzeichen aus, der zweite den Text vom Anfang bis zum Leerzeichen.

Wie erweitere ich das nun so, dass es für eine beliebige Anzahl von Autoren funktioniert?

Nehmen wir mal den zweiten Substring - der gibt den Nachnamen aus, indem er den Text vom Anfang bis zum ersten Leerzeichen ausgibt. Wenn ich den nun so ändern will, dass er den Nachnamen von Autor2 ausgibt, dann müsste er den Text vom ersten Semikolon bis zum zweiten Leerzeichen ausgeben - aber wie unterscheide ich zwischen dem ersten und dem zweiten Leerzeichen? Und wie kann ich das so machen, dass das ganze im Endeffekt mit einer nach oben offenen Anzahl von Leerzeichen (und Semikolons) funktioniert?

Vielen Dank!

Sebastian