Institutionelles Publikationsaufkommen in Open Access Zeitschriften — ein Vorschlag mit R
Das DFG Programm Open Access Publizieren fördert Hochschulen, die dauerhafte und verlässliche Strukturen für die Begleichung von Artikelbearbeitungsgebühren, die für die Veröffentlichung in Open-Access-Zeitschriften erhoben werden, an ihrer Einrichtung etablieren. In diesem Sinne erfordert die Antragstellung belastbare Angaben zum entsprechenden Publikationsaufkommen der Hochschule in OA-Zeitschriften und eine transparente Darlegung der Datenerhebung.
Die Universität Bielefeld beteiligt sich mit ihrem Publikationsfonds bereits seit 2011 an der DFG-Ausschreibung. Um die jährlichen Berichtserfordernisse mit möglichst geringem Aufwand über das Institutionelle Repositorium „PUB — Publikationen an der Universität Bielefeld“ zu beantworten, basiert das Berichtswesen auf Standards der Digital Library Community (SRU, CQL, MODS) und Routinen der statistischen Programmiersprache R. Somit lassen sich Datenerhebung und -auswertung nicht nur transparent nachvollziehen und reproduzieren, sondern, dank der Standardisierung, auch an anderen Hochschulen wiederverwenden.
Eine Beispiel für eine Anforderung der DFG im Programm „Open Access Publizieren“ ist die Darlegung des institutionellen Publikationsaufkommens in Open-Access-Zeitschriften je Verlag.

Abbildung 1: Jährliche Verteilung Open Access Zeitschriftenartikel an der Universität Bielefeld auf Verlage
Abbildung 1 stellt die fünf häufigsten Verlage, auf die Open-Access-Veröffentlichungen an der Universität Bielefeld entfallen, dar. Ein solches Diagramm erlaubt die kontinuierliche Prüfung möglicher Mitgliedschaften oder Vorauszahlungen. Solche Angebote der OA-Verlage versprechen eine Verringerung des Verwaltungsaufwands für Forschende und Bibliothek.
Ebenfalls zeigt die Abbildung, dass sich die Publikationsmöglichkeiten deutlich ausdifferenzieren. Zeitschriftenartikel in Verlagen, die zugunsten der Übersichtlichkeit in die Kategorie „other“ zusammengefasst sind, veröffentlichen meistens sehr junge oder kleine Journals. Diese sind häufig (noch) nicht Teil der Master Journal List des Web of Science und lassen sich daher am Besten über eine Erhebung vor Ort eruieren. Am Beispiel der Universität Bielefeld umfasst die Kategorie „other“ OA-Journale wie das Journal of Social Science Education (JSSE), das an der UB Bielefeld gehostet wird, oder die von der DFG geförderte Zeitschrift Social Work and Society.
Im folgenden werden die einzelnen Schritte zur Gewinnung der Abbildung 1 mit R dargelegt:
1. Schritt: Publikationsaufkommen 2007 – 2012
Alle in PUB verzeichneten Publikationen für den Zeitraum 2007 — 2012 lassen sich über SRU/CQL abfragen.
Die standardmäßige Ausgabe der Daten erfolgt in MODS. Relevante Felder lassen sich mit R wie folgt parsen.
require(RCurl) require(XML) #all url <- "http://pub.uni-bielefeld.de/sru?version=1.1&operation=searchRetrieve&query=publishingYear%20%3E%202006%20AND%20publishingYear%20%3C%202013&maximumRecords=1000" id <- c() year <- c() genre <- c() for(i in seq(0, 40000, by = 1000)) { url.d<-paste(url, "&startRecord=", i , sep = "") doc <- xmlTreeParse(url.d, useInternal=T) id.tmp <- xpathSApply(doc,"//r:recordInfo//r:recordIdentifier", namespaces= (c(r="http://www.loc.gov/mods/v3")) ,xmlValue) year.tmp <- xpathSApply(doc,"//r:dateIssued", namespaces= (c(r="http://www.loc.gov/mods/v3")) ,xmlValue) genre.tmp <- xpathSApply(doc,"//r:genre", namespaces= (c(r="http://www.loc.gov/mods/v3")) ,xmlValue) if(length(id.tmp) == 0) break else id <- c(id, id.tmp) year <- c(year,year.tmp) genre <- c(genre,genre.tmp) df.tmp <- data.frame (id, year, genre) }
Hieraus lässt sich sowohl die Gesamtanzahl aller registrierten Publikationsnachweise eruieren wie die Anzahl der Zeitschriftenartikel im Zeitraum 2007 bis 2012.
#gesamt dim(df.tmp) #Zeitschriftenartikel nrow(df.tmp[df.tmp$genre == "article",]) #Anteil in % nrow(df.tmp[df.tmp$genre == "article",]) / nrow(df.tmp) *100
Insgesamt sind zum 31.3.2013 13.393 Publikationen registriert, 5.960 Veröffentlichungen entfallen auf Zeitschriftenartikel, was einen Anteil am Publikationsaufkommen von rund 44,5 % entspricht.
2. Schritt: Gewinnung ISSN
Der zweite Schritt umfasst die Aggregation der ISSN oder EISSN, die für den eindeutigen Abgleich mit der Journalliste des DOAJ benötigt wird:
#subset journal article my.journal <- df.tmp[df.tmp$genre == "article",] #query for issn/eissn df.enrich <- data.frame() u <- "http://pub.uni-bielefeld.de/sru?version=1.1&operation=searchRetrieve&query=id=%22" for (i in unlist(my.journal$id)) { url.t <-paste(u,i,"%22", sep="") doc = xmlTreeParse (url.t, useInternal=T) issn <- xpathSApply(doc,"//r:relatedItem//r:identifier[@type='issn']",namespaces= (c(r="http://www.loc.gov/mods/v3")) ,xmlValue) if (length(issn) == 0) { issn <- "notFound" } else { issn <- issn } df.all.tmp <- data.frame(i, issn) df.enrich <- rbind(df.enrich, df.all.tmp) } #join with data.frame journal.tmp <- merge(df.ernrich, my.journal, by.x="i", by.y="id")
ISSN ist in PUB kein Pflichtfeld, um den Registrierungsaufwand der Forschenden möglichst niedrigschwellig zu gestalten. Fehlende ISSN können jedoch ex post durch den PUB Support nachgepflegt werden.
Eine solche Tabelle zur nachträglichen Datenpflege lässt sich mit R wie folgt generieren:
# exclude records without issn #subset my.miss <- journal.tmp[journal.tmp$issn =="notFound",] nrow(my.miss) # number of records without issn (174) #export csv wirte.csv(my.miss, "missingISSN.csv")
3. Schritt: Abgleich DOAJ
Das Directory of Open Access Journals (DOAJ) bietet eine Liste aller verzeichneten Open-Access-Zeitschriften als csv-Download an:
http://www.doaj.org/doaj?func=csv
Das Laden und der Abgleich über ISSN und EISSN mit R:
#load DOAJ data doaj <- read.csv("http://www.doaj.org/doaj?func=csv", header = TRUE, sep=",") #merge by ISSN/EISSN doaj.issn <- subset(journal.tmp, issn %in% doaj$ISSN) doaj.essn <- subset(journal.tmp, issn %in% doaj$EISSN) #combine doaj.comp <- rbind(doaj.issn, doaj.essn) #add additional doaj info test.1 <- merge(doaj.issn, doaj, by.x="issn",by.y="ISSN") test.2 <- merge(doaj.essn, doaj, by.x="issn",by.y="EISSN") colnames(test.2) <- colnames(test.1) my.comp <- rbind(test.1, test.2) #exclude duplicates my.comp <- my.comp[!duplicated(my.comp$i),]
Insgesamt lassen sich so 496 Artikel in DOAJ-Zeitschriften an der Universität Bielefeld für die Jahre 2007 – 2012 identifizieren.
4. Schritt Datenexploration
Das data.frame my.comp
bildet nun die Datengrundlage für die Visualisierung der Verteilung nach Verlagen, in denen die zuvor identifizierten Zeitschriftenartikel erschienen sind.
require(ggplot2) #normalize year my.comp$year <- as.numeric(format(my.comp$year, format = "%Y")) #relevel Publisher my.comp$Publisher <- factor (my.comp$Publisher, levels = c(rownames(data.frame(rev(sort(table(my.comp$Publisher))))))) levels(my.comp$Publisher)[6:length(levels(my.comp$Publisher))] <- "other" #get data.frame for ggplot2 plotting my.mat <- as.matrix(table(my.comp$Publisher,my.comp$year)) my.publish <- data.frame(my.mat) #plot p <- ggplot(my.publish, aes(as.Date(Var2), Freq, group =Var1)) + geom_line(aes(colour = Var1, show_guide=FALSE)) + geom_point() + theme_bw() + scale_colour_brewer("OA Publisher",palette=2, type="qual") + xlab("Year") + ylab("UNIBI Contributions") + opts(legend.key=theme_rect(fill="white",colour="white")) #save plot ggsave(plot = p, "oapublisher2.png", h = 3.08, w = 7.2)
Zusammenfassung
Die vorgestellte Skizze erhebt Publikationsdaten für die Begleitung des Open-Access-Publizieren in wissenschaftlichen Zeitschriften mittels R. Sie legt das lokale Publikationsaufkommen dar und gleicht es mit dem DOAJ ab. Da die verwendeten Protokolle und Formate auf Digital-Library-Standards beruhen, können Hochschulen und akademische Einrichtungen, deren Repositorien oder Forschungsinformationssysteme diese Standards unterstützen, die vorgestellten Methoden wiederverwenden.
Die R-Routinen, die für das Berichtswesen des Publikationsfonds an der Universität Bielefeld verwendet werden, werden im Laufe des Jahres 2013 als Funktionsaufrufe reformuliert und als Open Source Distribution mit weiteren Auswertungsmöglichkeiten veröffentlicht.
(Najko Jahn)
Najko Jahn ist zugleich an der Universitätsbibliothek Bielefeld tätig
leave a comment