automatisch verzamelen en samen- voegen van bibliogra · pdf filebachelor informatica...

43
Bachelor Informatica Automatisch verzamelen en samen- voegen van bibliografische gegevens Justin van Wageningen June 16, 2015 Supervisor(s): Raphael ‘kena‘ Poss (UvA) Signed: Informatica — Universiteit van Amsterdam

Upload: vutram

Post on 29-Mar-2018

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

Bachelor Informatica

Automatisch verzamelen en samen-voegen van bibliografische gegevens

Justin van Wageningen

June 16, 2015

Supervisor(s): Raphael ‘kena‘ Poss (UvA)

Signed:

Informatica—

Universiteit

vanAmst

erdam

Page 2: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

2

Page 3: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

Abstract

Het onderhouden van een bibliografie en deze presenteren op een website kost onderzoekers eenhoop tijd. Deze scriptie omschrijft een tool die ontwikkeld is om bibliografische gegevens teverzamelen en waar nodig samen te voegen. Daarnaast zal de tool zoeken naar PDF bestandenen deze samenvoegen met de BibTEX equivalent. Uiteindelijk is het mogelijk met deze gegevenseen website te genereren. Er zal onder andere onderzocht worden wat de beste manier is omPDF bestanden en BibTEX bestanden aan elkaar te linken.

Page 4: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

2

Page 5: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

Contents

1 Inleiding 51.1 Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.1.1 Waar is vraag naar? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 Probleemstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3 Onderzoeksvragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4 Strategie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.5 Uitdagingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.6 Organisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Achtergrondinformatie 92.1 Wat is BibTEX ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2 Gerelateerde tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2.1 Mendeley . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2.2 EndNote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.3 Zotero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.4 RefWorks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3 Gebruikte middelen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3.1 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3.1.1 BibTEX parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3.1.2 LATEX encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3.1.3 Fuzzywuzzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3.2 Dropbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3.3 PDFtoText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3.4 Optioneel: Google Scholar . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3.5 Optioneel: iNotify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Functioneel ontwerp 133.1 Flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2 Configuratie mogelijkheden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2.1 Waar kan de gebruiker de configuratie aanpassen? . . . . . . . . . . . . . 143.3 Vergelijken van BibTEX bestanden . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.3.1 Verschillende soorten ratio vergelijking . . . . . . . . . . . . . . . . . . . . 143.3.2 Normalisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.3.2.1 Normalisatie titel . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.2.2 Normalisatie jaar . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.2.3 Normalisatie citatiesleutel . . . . . . . . . . . . . . . . . . . . . . 153.3.2.4 Normalisatie maand . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.2.5 Normalisatie van namen . . . . . . . . . . . . . . . . . . . . . . . 15

3.4 Samenvoegen BibTEX bestanden . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.4.1 Formele definitie samenvoegen . . . . . . . . . . . . . . . . . . . . . . . . 163.4.2 Specifieke vormen van samenvoegen . . . . . . . . . . . . . . . . . . . . . 16

3.5 Gezamenlijke opslag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3

Page 6: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

3.6 PDF matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.6.1 Google Scholar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.6.2 PDFtoText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4 Implementatie 194.1 Overzicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2 Parseren van de configuratiemogelijkheden . . . . . . . . . . . . . . . . . . . . . . 194.3 Zoeken naar BibTEX en PDF bestanden . . . . . . . . . . . . . . . . . . . . . . . 204.4 Parseren van BibTEX bestanden . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.5 Normaliseren BibTEX bestanden . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.5.1 Normalisatie titel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.5.2 Normalisatie namen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.5.2.1 Zelf ontwikkelde algoritme . . . . . . . . . . . . . . . . . . . . . 214.5.2.2 Pybtex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.6 Bestanden vergelijken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.6.1 Vergelijken van BibTEX bestanden . . . . . . . . . . . . . . . . . . . . . . 224.6.2 Zoeken naar juiste BibTEX voor PDF . . . . . . . . . . . . . . . . . . . . 23

4.6.2.1 Met Google Scholar . . . . . . . . . . . . . . . . . . . . . . . . . 234.6.2.2 Zonder Google Scholar . . . . . . . . . . . . . . . . . . . . . . . 23

4.7 Voorbeeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.8 Genereren van website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.9 Andere toepassing tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.10 Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5 Evaluatie 275.1 Kwantitatieve experimenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5.1.1 Methodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275.1.2 Resultaten experimenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5.2 Gebruikersonderzoek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.2.1 Methodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.2.2 Resultaten gebruikersonderzoek . . . . . . . . . . . . . . . . . . . . . . . . 31

6 Discussie 356.1 Hoe wordt ervoor gezorgd dat er geen duplicaten voorkomen in de gezamenlijke

opslag? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356.2 Hoe wordt ervoor gezorgd dat de tool niet teveel middelen gebruikt? . . . . . . . 356.3 Hoe wordt ervoor gezorgd dat de tool past in de workflow van de gebruikers? . . 366.4 Wat is de beste manier om PDF en BibTEX bestanden matchen? . . . . . . . . . 366.5 Overige discussie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

7 Conclusie 397.1 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397.2 Zal de tool gebruikt worden? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397.3 Richtingen voor de toekomst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4

Page 7: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

CHAPTER 1

Inleiding

Wetenschappers verhuizen vaak van de ene onderzoeksgroep naar de andere tijdens hun carriere.Verhuizen betekent dat er een hoop data meegenomen word. Het werk dat door de onderzoekertot aan de verhuizing is gedaan, wordt meegenomen naar de volgende werkgever. De website diebij de nieuwe onderzoeksgroep verkregen wordt, moet uiteraard opnieuw gevuld en bijgehoudenworden.

1.1 Context

Onderzoekers gebruiken voor het onderhouden van hun bibliografie software naar zijn of haarkeuze of houden dit handmatig bij. Het is wenselijk om een groepswebsite up-to-date te houdenen te zien waar de groep op dit moment mee bezig is.

1.1.1 Waar is vraag naar?

Een gedeelte van het vooronderzoek bestond uit het doen van korte interviews met onderzoekers.Hieruit is gebleken dat er vraag is naar de volgende drie toepassingen die de onderzoekers moethelpen in hun dagelijkse werkzaamheden: verbetering van METIS, gemakkelijker onderhoudenvan hun websites en het inkorten van referenties in hun artikelen. METIS is het systeem datgebruikt wordt op de Universiteit van Amsterdam waarin onderzoekers hun publicaties en pre-sentaties moeten zetten voor de administratie van de Universiteit. Het programma heeft eenhoop nadelen, daarom zouden ze graag wat anders willen zien. Onderhouden van websites kostde onderzoekers op dit moment veel tijd, iedereen doet dit op een andere manier. Onderzoekerskrijgen vaak een maximum aantal pagina’s voor hun artikelen. Meestal zitten ze daar net overheen en moeten ze bijvoorbeeld hun referenties minimaliseren. Dit gebeurd nog vaak met dehand, een standaard hiervoor is welkom.

1.2 Probleemstelling

Het probleem van het bijwerken van de website is dat mensen hun data op verschillende manierenonderhouden. Hiervoor bestaat nog geen gezamenlijke opslag. Het kost de onderzoekers veel tijdom hun website up-to-date te houden. Tijdens het doen van onderzoek wordt er per paperof artikel vaak een bibliografie opgesteld. Hierdoor staat de informatie vaak verspreid op decomputer en zitten er vaak duplicaten tussen. Het kan dus wenselijk zijn dat de data verzameldwordt op een plek en daar gedeeld kan worden met bijvoorbeeld de onderzoeksgroep. Hiervoor

5

Page 8: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

is een tool ontwikkeld. Deze tool zal automatisch, met minimale input van de gebruiker, decomputer doorzoeken voor bibliografische bestanden en deze bestanden gebruiken om een websitete genereren.

1.3 Onderzoeksvragen

De volgende onderzoeksvragen zullen in deze scriptie behandeld worden:

• Hoe wordt ervoor gezorgd dat er geen duplicaten voorkomen in de gezamenlijke opslag?

• Hoe wordt ervoor gezorgd dat de tool niet teveel middelen gebruikt?

• Hoe wordt ervoor gezorgd dat de tool past in de workflow van de gebruikers?

• Wat is de beste manier om PDF en BibTEX bestanden te matchen?

1.4 Strategie

De problemen kunnen opgelost worden door het ontwerpen van een tool die de computer van degebruiker gaat doorzoeken naar BibTEX en PDF bestanden. De bestanden zullen opgeslagen wor-den in een gezamenlijke opslag. Als er duplicate BibTEX entries zijn, zullen deze samengevoegdworden. Ook zal er een link gelegd worden tussen PDF en BibTEX bestanden. Als er een matchgevonden is zal er een veld in de BibTEX entry komen met daarin een link naar de PDF.

1.5 Uitdagingen

Het ontwikkelen van de tool brengt meerdere uitdagingen met zich mee:

1. De gebruiker mag geen last hebben van het programma, het mag niet te veel middelengebruiken.

2. De tool moet in de workflow van de onderzoeker passen.

3. Geındexeerde bestanden mogen niet, zonder veranderd te zijn, nogmaals geındexeerd wor-den.

Deze uitdagingen komen voort uit de probleemstelling. Zo mag de gebruiker geen last hebbenvan de tool. Als de tool een blok aan het been van de gebruiker is, doordat deze traag is ofniet voldoet aan de verwachting van de gebruiker, zal de tool snel aan de kant geschoven wordenen zal de gebruiker snel overgaan op de oude manier van werken. De gebruiker zou de geheledataset die op dit moment gebruikt wordt aan moeten passen aan de tool. Het is de bedoelingdat de tool meegaat in de workflow van de gebruiker. Om te zorgen dat de tool niet te traagwordt, wordt er onderzocht of de geındexeerde bestanden niet nogmaals geındexeerd dienen teworden.

1.6 Organisatie

Allereerst zal er in hoofstuk 2 achtergrond informatie gegeven worden over wat BibTEX is, welkegerelateerde tools er bestaan en welke middelen gebruikt gaan worden om de tool te ontwikkelen.Daarna zal er in hoofdstuk 3 een ontwerp gegeven worden waarin verder in wordt gegaan op hoe detool werkt en specifiek hoe de normalisatie en het samenvoegen van bestanden werkt. Vervolgenszal er uiteengezet worden in hoofdstuk 4 hoe de tool geımplementeerd is. Daarna zullen er eenaantal experimenten, in de vorm van een kwalitatief en een kwantitatief onderzoek, in hoofdstuk 5

6

Page 9: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

met de tool gedaan worden. In hoofdstuk 6 zullen de resultaten van deze experimenten besprokenworden.

7

Page 10: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

8

Page 11: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

CHAPTER 2

Achtergrondinformatie

De tool gaat op zoek naar zogenaamde BibTEX en PDF bestanden, deze zal de tool samenvoe-gen en opslaan in een map die automatisch gesynchroniseerd zal worden met de rest van deonderzoeksgroep.

2.1 Wat is BibTEX ?

BibTEX [5] is een bestandsformaat en kan gebruikt worden als database voor bibliografischegegevens. Deze bibliografische gegevens kunnen in LATEX gebruikt worden om referenties aanhet gemaakte werk te koppelen. BibTEX bestaat uit een entry, deze entry bestaat uit veldenen de velden bestaan uit records. In het onderstaande voorbeeld is een entry met citatiesleutel’Justin2015’ weergegeven met de records author, title en year. Het veld author bestaat uit, in ditgeval een record met daarin, de naam van de auteur. Het veld title bevat een record met daarinde titel van de publicatie en het veld year bevat het record die het publicatiejaar weergeeft.Uiteraard kan bijvoorbeeld het veld author uit meerdere records bestaan.

@bachelor{ Just in2015 ,author = { Jus t in van Wageningen } .t i t l e = {{G} eautomat i seerde {B} ib {B} ase i n t e r f a c e } ,year = {2015}

}

2.2 Gerelateerde tools

Volgens Wikipedia [1] bestaan er veel tools die behulpzaam kunnen zijn bij het bijhouden vanbibliografische gegevens. De volgende tools zullen behandeld worden: Mendeley, EndNote, Zoteroen RefWorks.

2.2.1 Mendeley

Mendeley is gratis een referentie management programma, met een online en offline interface,en kan meer dan alleen het bijhouden van een bibliografie. Het tracht het onderzoeksprocess testroomlijnen [3]. Hensley claimt dat Mendeley makkelijk te leren is en dat Mendeley een uitge-breide PDF functionaliteit heeft. Zo kan het PDF metadata importen, automatische naamgeving

9

Page 12: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

en opslaan. Ook kunnen er notities gemaakt op papers en artikelen en deze kunnen gedeeld wor-den met collega’s [7]. Nadeel van het importeren van PDF metadata is dat het alleen bij dewebinterface kan. Mendeley kan geen website genereren.

2.2.2 EndNote

EndNote is de meest gebruikte referentie manager in de wetenschap [3]. Het heeft een web- endesktopinterface. EndNote kan een publicatie profiel maken en er kan samengewerkt worden metandere onderzoekers. Nadeel is dat de tool niet intuıtief aanvoelt en het niet gratis is. EndNotekan referenties exporteren in de door jou gekozen style [7].

2.2.3 Zotero

Zotero is een free-to-use referentie manager. Volgens Hensley is het intuıtief in gebruik en blinktuit op het gebied vinden van metadata op het internet. Zotero synchroniseerd data tussencomputers.

2.2.4 RefWorks

RefWorks is een web-based referentie management pakket, waarvoor jaarlijks betaald moet wor-den. Het pakket kan referenties verkrijgen uit andere pakketen, RSS feed en websites. Hensleyclaimt dat het pakket lastig in gebruik is, zo bestaat er voor elk artikel een ander proces om dezete exporteren.

2.3 Gebruikte middelen

In deze paragraaf wordt een opsomming gegeven van de gebruikte middelen. Hoe de middelenwerken en waarvoor ze gebruiken wordt globaal toegelicht.

2.3.1 Python

Voor het ontwikkelen van de tool wordt de programmeertaal Python gebruikt. Python op zichzelfheeft veel features die helpen bij het manipuleren van tekst. De tool past vaak manipulatie vantekst toe. Als aanvulling worden packages gebruikt. Deze packages zijn over het algemeen open-source, hiervan is de code openbaar en kan er precies gezien worden wat de code doet. Eventueleaanpassingen kunnen hierin gemaakt worden. Deze tool maakt hoofdzakelijk gebruik van driepackages: BibTEX parser, Fuzzywuzzy en LATEX encoder.

2.3.1.1 BibTEX parser

De package BibTEX parser zorgt ervoor dat een BibTEX bestand, dan wel niet met meerdereentries, omgezet kan worden naar een zogenaamde BibDatabase. Deze BibDatabase is een Pythondictionary die de records van de BibTEX bestanden representeerd. In de tool worden hiermeeBibTEX bestanden geopend om vergeleken en eventueel samengevoegd te worden. Ook bestaatde mogelijk om de BibDatabase weer om te zetten in een BibTEX bestand.

@ a r t i c l e {Dasdan1999 ,author = {Dasdan , Al i and I ran i , Sandy S . and Gupta , Rajesh K.} ,j o u r n a l = {Annual ACM IEEE Design Automation Conference } ,pages = {37} ,t i t l e = {{ E f f i c i e n t a lgor i thms f o r optimum c y c l e mean and

10

Page 13: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

optimum cos t to time r a t i o problems }} ,year = {1999}

}

Bovenstaande entry zal omgezet worden naar de volgende Python dictionary:

{u ’ t i t l e ’ : u ’ E f f i c i e n t a lgor i thms f o r optimum c y c l e mean and

optimum cos t to time r a t i o problems ’ ,u ’ journa l ’ : u ’ Annual ACM IEEE Design Automation Conference ’ ,u ’ author ’ : u ’ Dasdan , Al i and I ran i , Sandy S . and Gupta , Rajesh K. ’ ,’ id ’ : ’ Dasdan1999 ’ ,u ’ year ’ : u ’ 1999 ’ ,’ type ’ : u ’ a r t i c l e ’ ,u ’ pages ’ : u ’ 3 7 ’

}

2.3.1.2 LATEX encoder

De packages LATEX encoder geeft ons de mogelijkheid om LATEX specifieke symbolen om te zettennaar unicode. Zo wordt bijvoorbeeld ’$\mu$’ omgezet naar de griekse letter µ. Dit is nodigtijdens het normaliseren van een string.

2.3.1.3 Fuzzywuzzy

Fuzzywuzzy is een library ontwikkeld voor Python die de ratio van twee strings kan berekenen.Waarbij een ratio van 100 betekent dat de twee strings identiek zijn en waarbij een ratio van 0betekent dat de strings volledig niet hetzelfde zijn. Een voorbeeld hiervan is bijvoorbeeld:

fuzz . r a t i o (” t h i s i s a t e s t ” , ” t h i s i s a t e s t ! ” )

Dit voorbeeld geeft een ratio van 96, deze strings verschillen dus 4% van elkaar. Naast ratio zijner nog drie methoden geımplementeerd in de package, hierover meer in sectie 4.1.

2.3.2 Dropbox

Dropbox wordt gebruikt als gezamenlijke opslag. Dropbox zorgt ervoor dat gebruikers die eenmap met elkaar delen, dat deze map op elke computer er altijd hetzelfde uitziet en dezelfde inhoudheeft. Deze tool zal helpen met het synchroniseren van de data tussen de gebruikers.

2.3.3 PDFtoText

PDFtoText is een tool die gebruikt wordt om een PDF bestand om te zetten naar platte tekst.Hiervoor wordt het in de tool ook gebruikt.

2.3.4 Optioneel: Google Scholar

Google Scholar is Google’s zoekmachine waar gebuikers naar wetenschappelijke artikelen kunnenzoeken. Hiervoor is een Python library geschreven. Door een query op te bouwen uit de eerste20 woorden van de PDF, kan de library de BibTEX entry ophalen bij Google Scholar. Hetgrootste nadeel van deze tool is dat Google alleen ’menselijke’ gebruikers toelaat en houdt nietvan geautomatiseerde zoekacties. Als Google ontdekt dat het niet een mens maar een computeris die gebruik maakt van Google zal deze computer voor een geringe tijd geblacklist worden. Dit

11

Page 14: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

houdt in dat er tijdelijk niet van de dienst gebruik gemaakt kan worden. Dit is niet wenselijk,vandaar dat het een optionele feature van de tool word. Het idee om Google Scholar te kunnengebruiken om gegevens op te halen komt uit de door Mendeley gebruikte methode. Mendeleymaakt gebruik van de tool PDFMeat [2], wat staat voor PDF Metadata Acquisition Tool. Hierinwordt het idee geopperd om Google Scholar te gebruiken voor incorrecte of ontbrekende metadatavan een PDF.

2.3.5 Optioneel: iNotify

iNotify houdt bij of bestanden gewijzigd zijn of niet. Het kan als het ware bestanden ’tracken’.Als het merkt dat er een bestand gewijzigd is, kan daar een actie aan gehangen worden. Dit iszeer wenselijk, maar gezien het tijdschema een optionele feature geworden.

12

Page 15: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

CHAPTER 3

Functioneel ontwerp

In dit hoofstuk wordt verder ingegaan op hoe de tool werkt en specifiek hoe de normalisatie enhet samenvoegen van bestanden werkt.

3.1 Flowchart

3.2 Configuratie mogelijkheden

De gebruiker krijgt een aantal configuratie mogelijkheden. De gebruiker kan kiezen of ze ge-bruik willen maken van de Google Scholar feature. Daarnaast zal de gebruiker zelf de controlehouden over de bestanden die doorzocht worden. De gebruiker zal hiervoor folders aangeven diedoorzocht mogen worden. Als alle bestanden gevonden en eventueel samengevoegd zijn, zal de

13

Page 16: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

gebruiker een keuze moeten maken welke BibTEX bestanden er getoond moeten worden op depersoonlijke site en welke getoond moeten worden op de groepswebsite.

Een aantal configuratie mogelijkheden zijn voortgekomen uit gesprekken die gevoerd zijn metonderzoekers. Niet alle onderzoekers vonden het fijn dat hun computer zonder hun medewetendoorzocht wordt. Andere configuratie mogelijkheden zijn voortgekomen uit ontwerp beslissingen,zo is het lastig op te maken uit bestanden of het een groepspublicatie was of niet.

3.2.1 Waar kan de gebruiker de configuratie aanpassen?

De tool krijgt een configuratie bestand waarin de configuratie in een geordende manier aangegevenkan worden. Dit bestand wordt opgedeeld in verschillende secties, hierdoor is het makkelijk on-derscheid te maken tussen de verschillende elementen. Zo zal er een sectie bibtex zijn, maarook een sectie pdf. Deze kunnen hierdoor op verschillende plekken opgeslagen of gezocht wor-den.

3.3 Vergelijken van BibTEX bestanden

Entries van BibTEX bestanden moeten vergeleken worden om te kijken of er duplicaten tussenzitten. Deze duplicaten moeten vervolgens samengevoegd worden. Het vergelijken van de entrieswordt gedaan op drie velden: type, title en year. Dit zijn drie factoren die relatief simpelte vergelijken zijn en toch veel zeggen over de gelijkenis van de entries. De velden waaropvergeleken wordt, moeten eerst worden genormaliseerd (met uitzondering van het type van deentry). De velden type en year worden exact vergeleken, maar bij title is een exacte vergelijkingniet mogelijk. Een titel hoeft niet per se precies hetzelfde zijn, hiervan wordt de ratio berekend.De ratio verteld ons hoeveel de strings op elkaar lijken, onderzoek moet nog uitwijzen wat debeste ratio is.

3.3.1 Verschillende soorten ratio vergelijking

Ratio wordt berekend voor twee te vergelijken strings. De uitkomst van de ratio is het percentagevan de hoeveelheid overeenkomsten van de twee strings. Deze ratio kan op vier manieren berekendworden.

• Ratio: Hoeveel procent van de strings komen overeen?

• Partial ratio: Hoeveel procent van de substring zit er in de string?

• Token sort ratio: Gesorteerde woorden vergelijking in plaats van letters vergelijken

• Token set ratio: Unieke woorden vergelijken

• Extract from list: Strings vergelijken met lijst en beste keuze terug geven

3.3.2 Normalisatie

De normalisatie van de te vergelijken velden moet gedaan worden om ervoor te zorgen dat erbijvoorbeeld in de titel geen vreemde tekens staan. BibTEX maakt gebruik van accolades in deopmaak, dit zegt echter niets over de inhoud van de titel. Tevens kan er LATEX opmaak gebruiktworden, deze moet ook gefilterd worden.

14

Page 17: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

3.3.2.1 Normalisatie titel

De titel wordt genormaliseerd door allereerst alle LATEX opmaak om te zetten naar hun unicodeequivalent. Vervolgens worden alle niet ASCII characters uit de string verwijderd. Als laatsteworden alle uppercase letters naar lowercase omgezet.

3.3.2.2 Normalisatie jaar

Tijdens het testen is naar voren gekomen dat de aangeleverde BibTEX bestanden niet altijd goedte parsen zijn. Zo zijn er voorbeelden gevonden waarbij het jaar verkeerd geparseerd wordt. Indit veld wordt naast het jaar ook het volgende veld weergegeven. Deze zal genormaliseerd wordendoor middel van het toepassen van een reguliere expressie. BibTEX velden worden gescheidendoor een komma. Dus alles achter de komma kan verwijderd worden, waardoor alleen het jaartaloverblijft. Voor de zekerheid wordt er daarna gekeken of er alleen maar getallen staan en geenandere karakters meer.

3.3.2.3 Normalisatie citatiesleutel

Elke BibTEX entry heeft een citatiesleutel, hiermee wordt de entry geındentificeerd als het ge-bruikt wordt in bijvoorbeeld LATEX. Deze entry moet uniek zijn, anders weet LATEX niet welkeentry gebruikt moet worden. Het enige wat een unieke combinatie geeft, is een combinatie van degenormaliseerde type, year en title. De id zal er als volgt uitzien ’<year> <type> <title>’.

3.3.2.4 Normalisatie maand

De maand kan op drie verschillende manieren geschreven worden:

1. Voluit: Januari, Februari, etc. . .

2. Afgekort met punt: Jan., Feb., etc. . .

3. Afgekort zonder punt: Jan, Feb, etc. . .

Tijdens het samenvoegen is het nodig dat dit veld er altijd hetzelfde uitziet, daarom zal dezealtijd genormaliseerd worden naar de voluit geschreven variant. Zo zal bijvoorbeeld de maand’Feb.’ omgeschreven worden naar de maand ’February’. Voor de volledige variant worden deEngelse maanden gebruikt, omdat dit voor internationaal gebruik wenselijk is.

3.3.2.5 Normalisatie van namen

Namen kunnen op de volgende manieren weergegeven worden [4]:

• Voornamen/Initialen tussenvoegsel(s) Achternaam/Achternamen

• tussenvoegsel(s) Achternaam/Achternamen, Voornamen/Initialen

• tussenvoegsel(s) Achternaam/Achternamen, Titel(s), Voornamen/Initialen

Het normaliseren van deze entry is niet gemakkelijk. Als eerste zullen de speciale karaktersgefilterd moeten worden. Vervolgens zullen ze worden omgezet naar een gestandaardiseerdevorm, die voor elke naam hetzelfde is. Wat de tool in eerste instantie doet is de achternamenvergelijken, zodat er gezien kan worden of de naam toegevoegd moet worden of al bestaat. Als deachternaam nog niet bestaat wordt de gehele naam toegevoegd. Als de achternaam wel bestaatzal er naar de voornamen of initialen gekeken worden. Het aantal voornamen en initialen moetgeteld worden, voordat ze vergeleken worden. Dit omdat ’Cees Janssen’ wel gelijk is aan ’C. S.M. Janssen’ en ook gelijk moet zijn aan ’Cees Simon Janssen’, maar andersom hoeft dit niet perdefinitie waar te zijn. ’Cees Simon Janssen’ is niet per definitie gelijk aan ’C. Janssen’. Soms

15

Page 18: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

wordt ervoor gekozen om maar een voornaam of initiaal in te vullen in plaats van de volledigenaam. Hieronder staat een tabel met daarin wat meer voorbeelden:

C. S. M. Janssen C. Janssen Cees Janssen Cees Simon JanssenCees JanssenCees Simon JanssenCees S. M. JanssenCees S. JanssenCees van Janssen

Bij het normaliseren van namen worden drie aannames gedaan:

1. In de naam wordt alleen de eerste initiaal of voornaam genoemd, anders alle initialen envoornamen.

2. Er mogen geen tussenvoegsels met hoofdletters geschreven worden, deze moeten beginnenmet een kleine letter, zoals ook in de BibTEX conventie aangeven is. De paper van Bib-TeXing van Patashnik [6] en de paper van Hufflen [4] geven aan dat dit de conventie is.Als dit niet gebeurd, zal het tussenvoegsel als achternaam gerekend worden.

3. Meerdere achter- of voornamen moeten tussen accolades staan, anders kan er niet bepaaldworden of het meerdere voornamen of achternamen zijn. Let wel, dit is alleen noodzakelijkals er van de eerste notatie gebruik gemaakt word.

3.4 Samenvoegen BibTEX bestanden

Als er een BibTEX bestand gevonden wordt die al eens geındexeerd is bij bijvoorbeeld een collega,dan zal deze samengevoegd moeten worden. Er bestaan drie methoden:

• Additie: Het toevoegen van een nog niet bestaand record binnen een veld.

• Combinatie: Het combineren van de records van een veld.

• Nieuw veld: Het toevoegen van een nieuw veld binnen een entry.

3.4.1 Formele definitie samenvoegen

Voor het samenvoegen van twee bestanden wordt een nieuw symbool geıntroduceerd: ⊕

Additie:{β = {A, ...}} ⊕ {β = {C, ..}} = {β = {A,C, ...}}

Combinatie:{β = {AB, ...}} ⊕ {β = {ABC, ..}} = {β = {ABC, ...}}

Nieuw veld:{β = {...}, α = {...}} ⊕ {β = {..}, θ{...}} = {β = {...}, α{...}, θ{...}}

3.4.2 Specifieke vormen van samenvoegen

De meeste entries hoeven niet samengevoegd te worden, bij de meeste velden kan degene gekozenworden die de meeste informatie bevat (de langste string). Een van de velden waarbij dit nietkan is het veld author, hierin staat de auteur of staan auteurs. Dit is ook het geval bij het veldeditors.

16

Page 19: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

3.5 Gezamenlijke opslag

Voor de gezamenlijke opslag zal gebruik gemaakt worden van Dropbox. Per BibTEX entry zaler een file aangemaakt worden, omdat het de complexiteit ten goede komt. Het is niet debedoeling dat bestanden doorzocht moeten worden om te kijken of een bestand al bestaat. Hetis wenselijk dit sneller te kunnen doen. Een oplossing hiervoor is het kiezen van een slimmebestandsnaam, deze bestandsnaam zal bestaan uit een combinatie van de genormaliseerde veldenwaarop vergeleken wordt. Dit zijn de velden type, year en title. Alle bestanden zullen eenbestandsnaam krijgen die er als volgt uitziet: ’<year> <type> <title>.bib’

3.6 PDF matching

Naast BibTEX bestanden wordt er ook gezocht naar PDF bestanden. De PDF bestanden wordengelinkt aan een BibTEX bestand door middel van het toevoegen van een nieuw veld met daarinhet pad van de gezamenlijke opslag, waar de PDF opgeslagen is. Veel tools maken gebruik vande metadata van de PDF om bijvoorbeeld de titel en auteurs van de PDF te extraheren. Van hetinternet verkregen PDF’s hebben vaak geen of foutieve metadata, dit is lastig te testen. Hierdooris ervoor gekozen geen gebruik te maken van de metadata.

3.6.1 Google Scholar

In eerste instantie wordt er gekeken of er Google Scholar gebruikt mag worden of niet. AlsGoogle Scholar gebruikt mag worden, zal er gezocht worden naar de bijpassende BibTEX viaGoogle Scholar. Daarna kan de BibTEX samengevoegd worden met een al bestaande BibTEX oftoegevoegd worden als deze nog niet bestaat. Deze methode heeft een groot nadeel, het kan niette vaak achter elkaar gebruikt worden. Als het wel te vaak gebruikt wordt, zal Google Scholar detool tijdelijk buiten spel zetten door deze te blacklisten. Deze blacklisting zal een aantal dagenduren alvorens de feature weer gebruikt kan worden. Dit is niet ideaal, daarom is er beslotendat dit een optionele feature wordt die door de gebruiker aan of uit gezet kan worden. Als degebruiker niet wenst Google Scholar te gebruiken is er een alternatief.

3.6.2 PDFtoText

Gebruikmakend van PDFtoText zullen de eerste vijftien woorden van de PDF, ervan uitgaandedat de titel van het bestand daarin vermeld wordt, gebruikt worden om de bijbehorende BibTEXte vinden. Aan de hand van de titel van het bestand kan, met behulp van de ’Extract from list’methode van Fuzzywuzzy, de beste match gevonden worden. Als deze ratio boven een bepaaldethreshold zit, zal dit als de juiste worden beschouwd. Hoe hoog die threshold moet zijn zalonderzocht worden. Als dit niet het geval is zal er geen bestand bij de PDF gevonden wordenen zal de PDF overgeslagen worden.

17

Page 20: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

18

Page 21: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

CHAPTER 4

Implementatie

In dit hofdstuk van de scriptie zal de implementatie behandeld worden. Het ontwerp, de flow ende gedane aannames zijn behandeld in het hoofdstuk Functioneel Design. Hier zal vooral ophet technische aspect van de tool in worden gegaan.

4.1 Overzicht

De vorm van de tool is een programma gestructureerd in een frontend en een backend. De backenden frontend zijn beiden ontwikkeld in Python. Als het programma start, ziet de gebruiker eenGraphical User Interface (GUI). Hiermee kan er, door de in het configuratie bestand aangegevendirectories, gezocht worden naar de benodigde bestanden. Als de bestanden gevonden zijn eneventueel samengevoegd, komen de nieuwe entries in de lijst te staan. Vanuit die lijst kunnenbestanden geselecteerd worden die op de website gepubliceerd moeten worden. Deze lijst wordtopgeslagen in het daarvoor aangegeven bestand.

Bestand Naam Argumenten Returnmain.py main - -main.py dir to file list dirs, ext lijst paden en be-

standsnamenmain.py bibtex entries, db folder, current file -main.py pdf pdf files, shared pdf, bib-

tex folder, bibtex files, gscholar-

normalize.py normalize title title genormaliseerde ti-tel als string

names.py getnames names, names normgscholar.py convert pdf to txt pdf string met platte

tekst gehele pdf

Table 4.1: Functies met bestandsnaam, naam van de functie, argumenten van de functie enreturn waarde

4.2 Parseren van de configuratiemogelijkheden

Allereerst worden de, door de gebruiker aangegeven, configuraties uit het configuratie bestandgeparseerd. Dit gebeurt in de functie main (Tabel 4.1), deze functie maakt gebruik van de

19

Page 22: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

standaard ConfigParser die in Python zit. Hiervoor is wel een specifieke opmaak van het config-uratiebestand nodig. Het configuratiebestand bestaat uit secties, met daarin opties. Hieronderis het standaard meegeleverde configuratiebestand weergegeven, het bestaat uit drie secties: gen-eral, bibtex en pdf. Deze secties hebben ieder een aantal opties.

[general]

# Use Google Scholar to find the BibTex for a PDF. Caution: Really slow!

google_scholar = False

bibtex_filetypes = .bib, .txt

personal_website_bib = personal.bib

group_website_bib = group.bib

# These URLs are needed to make an website using BibBase.org

# This link is the Dropbox share link of the file, found on Dropbox.com

personal_link = https://www.dropbox.com/s/<some_hash>/justin.bib?dl=0

group_link = https://www.dropbox.com/s/<some_hash>/group.bib?dl=0

[bibtex]

# List of directories who need to be searched for

# bibliographic files (directories = ../bibtex/2* is also possible)

directories = ../bibtex/

# Directory where the bibliographic files must be stored

shared_directory = /home/<username>/Dropbox/afstuderen/prototype/bibtex_normalized/

[pdf]

#Specify if there needs to be searched for PDF files.

search_pdf = False

# List of directories who need to be searched for pdf files

directories = ../pdf/

# Directory where the bibliographic files must be stored

shared_directory = /home/<username>/Dropbox/afstuderen/prototype/pdf_normalized/

Opties als directories kunnen een lijst van entries krijgen, deze entries moeten gesplitst wordendoor een komma. Naast het configuratiebestand is er een bestand mandatory fields.py. Hierinstaan, in de vorm van een dictionary, per entry type de verplichte velden. Deze zouden door degebruiker aangepast kunnen worden. Let wel, deze key-value paren moeten allemaal in kleineletters geschreven worden, aangezien de BibTEX parser dit ook doet.

4.3 Zoeken naar BibTEX en PDF bestanden

Nu de directories waarin gezocht mag worden bekend zijn, kan er begonnen worden met hetzoeken naar BibTEX en PDF bestanden. Allereerst wordt er een lijst van alle BibTEX bestandenopgemaakt door de functie dir to file list (Tabel 4.1). Deze functie heeft als parameters eenlijst van BibTEX bestanden en de extensie van de bestanden waarnaar gezocht moet worden. Erwordt recursief door de directory gelopen, zodat ook alle subdirectories meegenomen worden inde zoekopdracht. Vervolgens wordt er een lijst met paden en bestandsnamen gereturnt. Hetzoeken naar PDF bestanden gebeurt op dezelfde wijze.

20

Page 23: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

4.4 Parseren van BibTEX bestanden

Parseren van BibTEX bestanden wordt gedaan door de package BibTEX parser. Deze zet eenBibTEX bestand om naar een lijst van Python dictionaries, voor elke entry binnen het bestandeen dictionary. Een entry type, zoals article of inproceedings, heeft bepaalde verplichte velden.Als deze verplichte velden niet aanwezig zijn, zal de entry overgeslagen worden.

4.5 Normaliseren BibTEX bestanden

Zoals in het functioneel design uitgelegd wordt, moeten de bestanden genormaliseerd wordenalvorens deze met elkaar vergeleken of zelfs samengevoegd kunnen worden. Voor het normaliserenvan de bestanden is er een library (normalize.py) ontwikkeld. Deze library bestaat uit een aantalfuncties die tezamen de meeste records kunnen normaliseren. Een gedeelte van de normalisatievan de auteur wordt gedaan door de package Pybtex. Dit is een package die volledige BibTEXbestanden kan parsen. De representatie ervan laat alleen te wensen over. Desalniettemin isde mogelijkheid tot het parseren van namen in de package zeer compleet. Zoals beschrevenin sectie 3.3.2 Normalisatie worden de velden titel, jaar, citatiesleutel, maand en de namengenormaliseerd.

4.5.1 Normalisatie titel

Voor het normaliseren van de titel bestaat de functie normalize title (Tabel 4.1) die een stringals parameter meekrijgt. Bij het normaliseren van de titel draait het om het filteren van allespeciale tekens, maar ook om het decoderen van LATEX tags. Deze LATEX tags hoeven niet altijdofficiele LATEX tags te zijn, deze kunnen ook zelf verzonnen en gedefinieerd zijn. Het probleemdaarmee is dat die custom tags niet gedefinieerd zijn binnen het BibTEX bestand. Het decoderenvan LATEX tags wordt gedaan door de package LATEX encoder. Het zet de LATEX tag om naarzijn unicode equivalent. Voor niet bestaande LATEX tags is de volgende oplossing: De tag wordtgedecodeerd en als dat gelukt is blijft de unicode equivalent in de string staan. Als dit niethet geval is zal de tag verwijderd worden, deze heeft voor het vergelijken van de titel geenmeerwaarde. Uiteindelijk ziet het normaliseren van een titel er als volgt uit:

Specifying Loop Transformations for C2$\mu$TC Source to Source Compiler

specifying loop transformations for c2tc source to source compiler

{"U}ber den {Z}ussammenhang der verschiedenen {B}egriffe der rekursiven {F}unktion

uber den zussammenhang der verschiedenen begriffe der rekursiven funktion

4.5.2 Normalisatie namen

In eerste instantie was er voor het normaliseren van de namen, waaruit de velden author eneditor bestaan, gedaan door een zelf ontwikkeld algoritme. Later is er besloten een gevondenpackage, Pybtex, te gebruiken, hierover in het hoofdstuk Discussie meer. De functie heetgetnames (Tabel 4.1). Deze functie heeft als parameters een lijst met namen en een lijst metde genormaliseerde namen. Zoals uitgelegd in sectie 3.3.2.5: Normalisatie van namen, kunnennamen in drie verschillende formaten geschreven worden en is het wenselijk deze naar het tweedeformaat te normaliseren. Deze is het meest makkelijk te parseren.

4.5.2.1 Zelf ontwikkelde algoritme

Allereerst worden de namen gesplitst op de ’ and ’ term, dit is de scheiding die tussen namen voorpublicaties met meerdere auteurs. Daarna worden de namen ontdaan van alle speciale tekens,

21

Page 24: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

behalve de accolades. Deze accolades worden gebruikt om meerdere voor- of achternamen aan tegeven, maar ook om bijvoorbeeld hoofdletters of speciale tekens aan te geven. Vervolgens wordende verschillende formaten geparseerd naar een Name class object. Dit object bestaat uit:

• first: Alle voornamen en initialen van de persoon

• middle: Tussenvoegsels van de persoon

• last: Alle achternamen van de persoon

• title: Alle titels van de persoon

Het algoritme kan goed onderscheid maken tussen voornamen, tussenvoegsels, titels en achter-namen. Hierbij maakt het formaat waar het in geschreven is niet uit, totdat er bijvoorbeeldingewikkelde constructies met accolades in de record zitten.

4.5.2.2 Pybtex

De Pybtex package wordt alleen gebruikt voor het omschrijven van de namen naar het juisteformaat. De package heeft een class genaamd Person, die class splitst de naam op in de volgendeelementen:

• first: De eerste voornaam of initiaal van de persoon

• middle: Rest van de voornamen van de persoon

• prelast: Tussenvoegsels van de persoon

• last: Alle achternamen van de persoon

• lineage: Alle titels van de persoon

Op een klein aantal voorbeelden waar de eigen implementatie ophoudt en de naam niet in hetjuiste formaat kan schrijven, kan de implementatie van dit Pybtex wel. Dit komt het eindresultaatten goede, omdat hierdoor de namen beter samengevoegd kunnen worden. Een voorbeeld vanwaar de eigen implementatie ophoudt en Pybtex verder gaat is:

{\relax J}ustin van {{\relax W}ageningen {\relax O}verwater}

4.6 Bestanden vergelijken

Nu de benodigde velden genormaliseerd zijn, kunnen deze gebruikt worden om te kijken of dezeentry al bestaat. Hiervoor zijn twee functies geschreven bibtex (Tabel 4.1) en pdf (Tabel 4.1).De functie bibtex zorgt ervoor dat de BibTEX bestanden worden vergeleken en samengevoegd oftoegevoegd. De functie krijgt als parameters een lijst van entries, een directory waar de BibTEXbestanden opgeslagen moeten worden en het bestand waarnaar er op dat moment gekeken wordt.De PDF functie zorgt ervoor dat de PDF bestanden als veld in de juiste entry terecht komenen dat de PDF op de juiste wijze opgeslagen wordt in de gezamenlijke opslag (als symlink ofcopy). De functie heeft als parameters de PDF bestanden waarnaar gekeken moet worden,de gezamenlijke opslag directory, de gezamenlijke BibTEX directory, een lijst van alle BibTEXbestanden die in de gezamenlijke directory staan en of er wel of geen gebruik gemaakt magworden van Google Scholar.

4.6.1 Vergelijken van BibTEX bestanden

De functie bibtex (Tabel 4.1) begint met het normaliseren van de benodigde velden en maaktdaar vervolgens een bestandsnaam van. De bestandsnaam ziet eruit als aangegeven in sectie 3.5Gezamelijke opslag. Door de vorm van de bestandsnaam, die uniek is, kan er snel gekekenworden of deze al bestaat door middel van os.path.exists. Als dat het geval is, zal het bestand

22

Page 25: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

samengevoegd worden. Als dit bestand nog niet bestaat wordt deze aangemaakt en opgeslagen.Als het bestand bestaat, wordt er gekeken of er in dit bestand wel echt een entry staat. Als ditniet het geval is, omdat het om een of andere reden bijvoorbeeld een leeg bestand is, zal de entryalsnog zonder samenvoeging weggeschreven worden naar de harde schijf.

4.6.2 Zoeken naar juiste BibTEX voor PDF

De schijf wordt, zoals bekend, ook doorzocht naar PDF bestanden in de daarvoor aangegevendirectories. Als een PDF bestand gevonden is, wordt er gekeken of de gebruiker Google Scholarwenst te gebruiken.

4.6.2.1 Met Google Scholar

Als de gebruiker Google Scholar wenst te gebruiken, wordt er gebruik gemaakt van het bestandgscholar.py. Dit is een package ontwikkeld om een BibTEX bestand op te halen van GoogleScholar. Wat de package doet, is de eerste twintig woorden van de PDF pakken, met behulp vande tool PDFtoText. Deze twiting woorden worden als query in Google Scholar gezet en die geeftuiteindelijk een HTML pagina terug waar de BibTEX entry uitgehaald wordt. Aan deze entrywordt de link naar de PDF toegevoegd en deze entry wordt op dezelfde manier vergeleken alsandere BibTEX entries. Als de entry bestaat wordt hij samengevoegd, bestaat hij niet wordt hijtoegevoegd. Het grootste nadeel van het gebruiken van Google Scholar is dat het de tool heelerg traag maakt, na elke vraag aan Google Scholar moet er een pauze van 1 tot 2 seconden zijnzodat de tool niet geblacklist wordt.

4.6.2.2 Zonder Google Scholar

Als de gebruiker geen gebruik wenst te maken van Google Scholar, worden de eerste vijftienwoorden van de PDF afgeknipt. Dit gebeurt met behulp van de tool PDFtoText en de functieconvert pdf to txt() (Tabel 4.1). Deze functie heeft als argument een PDF bestand en diewordt volledig naar platte tekst omgezet. Hierbij wordt de aanname gedaan dat de titel in deeerste vijftien woorden zit. Deze woorden worden samengevoegd tot een string en deze stringwordt vergeleken met een lijst van alle BibTEX bestanden in de gezamenlijke opslag. Dit gebeurtmet de functie extractBest van de package Fuzzywuzzy. Deze functie gaat de beste matchtussen de opgebouwde string en de bestandsnamen uit de lijst zoeken. De beste match hoeft nietaltijd de juiste match te zijn, er komt naast de match een score uit hoeveel de twee op elkaarlijken. Deze score moet boven een bepaalde threshold zijn. Hierover meer in het hoofdstuk:Resultaten.

23

Page 26: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

4.7 Voorbeeld

In deze sectie wordt er een voorbeeld van het samenvoegen van twee BibTEX entries (BibTEXentry 1 en BibTEX entry 2) getoond, hierbij wordt een PDF toegevoegd.

BibTEX entry 1:

@ a r t i c l e { j u s t i n . 1 5 ,address = { Sc i ence Park , Amsterdam , NLD} ,author = { Jus t in van Wageningen } ,t i t l e = {Automatisch verzamelen en samenvoegen van

b i b i o g r a f i s c h e gegevens } ,year = {2015} ,s choo l = {{U}v{A}}

}

BibTEX entry 2:

@ a r t i c l e { j u s . 1 5 . bib ,author = {J . van Wageningen } ,t i t l e = {Automatisch verzamelen en samenvoegen van

b i b i o g r a f i s c h e gegevens } ,year = {2015} ,s choo l = {{U} n i v e r s i t e i t van {A}msterdam}

}

Samengevoegde BibTEX entries met PDF (citatiesleutel is afgekort):

@ a r t i c l e { a r t i c l e 2 0 1 5 a u t o m a t i s c h ,address = {{S} c i e n c e {P}ark , {A}msterdam , {NLD}} ,author = {van {W}ageningen , Jus t in } ,author norm = {van Wageningen , J} ,s choo l = {{U} n i v e r s i t e i t van {A}msterdam } ,t i t l e = {Automatisch verzamelen en samenvoegen van

b i b i o g r a f i s c h e gegevens } ,t i t l e n o r m = { automatisch verzamelen en samenvoegen van

b i b i o g r a f i s c h e gegevens } ,year = {2015} ,year norm = {2015} ,pdf = {/home/username/Dropbox/ pdf / j u s t i n . 2 0 1 5 . pdf}

}

4.8 Genereren van website

Nadat alle data verzameld is, kan er een website gegenereerd worden. Daarvoor is input van degebruiker nodig. De tool is niet in staat te herkennen of iets een publicatie van een onderzoekerof onderzoeksgroep is. De input wordt gegeven in de GUI, waar een lijst van alle BibTEXbestanden in de gezamenlijke opslag gegeven wordt. Uit de lijst zal de gebruiker moeten selecterenwelke publicaties op de persoonlijke of groepswebsite terecht moeten komen. Hiervoor zijn tweeknoppen Generate personal website en Generate group website. Als op een van die tweeknoppen gedrukt wordt, worden de geselecteerde BibTEX bestanden in een BibTEX bestand gezet.Dit bestand wordt naar BibBase gestuurd en deze geeft een HTML pagina terug. De websiteziet er als volgt uit:

24

Page 27: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

Figure 4.1: Website gegenereerd met BibBase.org

4.9 Andere toepassing tool

Sommige onderzoeksgroepen maken gebruik van een server waarop alle gegevens voor een onder-zoek opgeslagen worden. De tool zou door de groepsleider, die alle bestanden verzameld om dezesamen te voegen, gebruikt kunnen worden alle benodigde bestanden uit de folders te halen. Overhet algemeen kan de groepsleider niet schrijven in de directories van de rest van de groep, maarhij kan er wel lezen. De tool kan dan gebruikt worden om de benodigde bestanden uit de groephun persoonlijke directories te halen en deze samen te voegen in een map waar de groepsleiderwel schrijfrechten heeft. Dit kan een hoop tijd schelen, omdat de groepsleider niet iedereen hoeftte vragen de gegevens door de sturen naar hem of haar.

4.10 Packaging

De tool is beschikbaar als package en is installeerbaar via pip. De naam van de package is:Bib2Web.

25

Page 28: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

26

Page 29: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

CHAPTER 5

Evaluatie

5.1 Kwantitatieve experimenten

5.1.1 Methodologie

Er zijn een serie van experimenten uitgevoerd met de tool. Deze experimenten zullen uiteindelijkkwantitatieve resultaten geven. We zullen de accuracy meten van het vergelijken van BibTEXmet BibTEX bestanden en van PDF met BibTEX bestanden. De vergelijking van PDF metBibTEX bestanden kan in de tool op twee verschillende manieren, met of zonder het gebruik vanGoogle Scholar. Voor de vergelijking van PDF met BibTEX bestanden zal dit zich uiten in eendiagram wat matching score afzet tegen accuracy, met verschillend aantal woorden wat van dePDF geknipt wordt. Ook zal de accuracy van Google Scholar berekend, zodat deze vergelekenkunnen worden. Dit is noodzakelijk om te testen of bijvoorbeeld de titel gevonden wordt en watdit met de accuracy doet.

Voor het experiment voor het vergelijken van BibTEX bestanden zullen het aantal duplicatengeteld worden. Het vergelijken van BibTEX bestanden wordt niet gedaan aan de hand vaneen matching score, maar aan de hand van normalisatie. We gaan er vanuit dat normalisatievoldoende is. Niet matchen aan de hand van een matching score scheelt het een hoop tijd.

Voor deze experimenten wordt er test data geproduceerd. De vergelijking van BibTEX bestandenbestaat uit 3231 entries, waarvan er 437 duplicaten zijn en 357 foutief zijn. Bij het vergelijken vanPDF met BibTEX bestanden wordt er gebruik gemaakt van een test set van 100 PDF bestandenwaarvan er 20 geen BibTEX equivalent hebben in de gezamenlijke opslag. Voor het gebruik vanGoogle Scholar wordt dezelfde dataset gebruikt als voor het eigen ontwikkelde algoritme.

Accuracy wordt als volgt berekent:

Accuracy = goede positieve+ goede negatievegoede positieve+ goede negatieve+ foute positieve + foute negatieve (5.1)

Naast de accuracy is executietijd ook een belangrijk punt dat getest moet worden, de gebruikersmogen immers geen last hebben van de tool. Aangezien dit geen tool is die de onderzoekersdagelijks zullen gebruiken en deze tool niet op de achtergrond draait, is executietijd niet prioriteitnummer een. Toch is het fijn niet een eeuwigheid te hoeven wachten op de resultaten. Devolledig verkregen dataset zal geparseert en waar nodig samengevoegd worden. Dit experimentzal tien maal uitgevoerd worden en van die tien executies zal de gemiddelde executietijd berekentworden.

27

Page 30: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

Om PDF bestanden met BibTEX bestanden te vergelijken en eventueel samen te voegen, moeter een aantal woorden uit de PDF gehaald worden. Aangezien we op zoek zijn naar een titel ineen PDF om deze te kunnen vergelijken met BibTEX bestanden, zal er voor verschillend aantalwoorden gemeten worden welke de hoogste accuracy heeft.

5.1.2 Resultaten experimenten

In figuur 5.1 zijn de resultaten te zien van het experiment waarbij de matching score van eenPDF naar een BibTEX entry weergegeven wordt. De verschillende lijnen zijn het aantal woordendie gepakt worden van de PDF.

0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 1000

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Matching score

Acc

ura

cy

Score vs. Accuracy PDF matching

15 woorden25 woorden35 woorden45 woorden

Figure 5.1: Vergelijken van PDF bestanden met BibTEX bestanden. De matching score is afgezettegen de accuracy.

In figuur 5.1 wordt weergegeven hoe de accuracy zich ontwikkeld ten opzichte van de matchingscore. De matching score bestaat uit een ratio, zoals uitgelegd in sectie 2.3.1.3. In de diagramis te zien dat hoe meer woorden er afgeknipt worden van de PDF, hoe hoger de accuracy word.De accuracy bereikt wel een plafond, het is niet zo dat de accuracy oneindig zal stijgen zolanger meer woorden van de PDF afgeknipt worden. We zien dat vanaf 35 woorden de accuracy nietbeter word. Voor de accuracy maakt het niet uit of er 35 of 45 woorden afgeknipt worden, het isdan wenselijk om zo weinig mogelijk woorden af te knippen. De accuracy van het vinden van dejuiste resultaten op Google Scholar is 0,68, terwijl de hoogste accuracy van het zelf ontwikkelde

28

Page 31: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

algoritme 0,96 is. De verdere interpretatie van deze gegevens staat in hoofdstuk 6.

Het aantal fouten wat gemaakt is tijdens het vergelijken van BibTEX bestanden zijn 9 van 3231entries. De fouten bestaan uit verschillen als:

inproceedings_2013_independence_a_misunderstood_property_of_and_for_probabilistic_real_time_systems.bib

inproceedings_Marc_independence_a_misunderstood_property_of_and_for_probabilistic_real_time_systems.bib

Waarbij de gebruiker de maand ingevuld heeft bij het veld waar het jaar hoort te staan. Eenander voorbeeld is:

inproceedings_2009_specifying_loop_transformations_for_c2tc_source_ro_source_compiler.bib

inproceedings_2009_specifying_loop_transformations_for_c2tc_source_to_source_compiler.bib

Waarbij een typefout gemaakt is in de titel. Zoals eerder verteld wordt het vergelijken vanBibTEX bestanden niet gedaan aan de hand van een ratio, zoals bij PDF matching wel gedaanwordt. Daarom worden deze kleine fouten niet opgepikt.

Er zijn ook voorbeelden die voor de tool geen fouten zijn, maar die voor een mens wel alsfout gezien worden. Dat waren er in totaal 15 van de 3231 BibTEX bestanden. Voorbeeldendaarvan zijn:

inproceedings_1991_towards_a_new_model_of_abstraction_in_software_engineering.bib

inproceedings_1992_towards_a_new_model_of_abstraction_in_software_engineering.bib

article_1973_the_unix_time_sharing_system.bib

article_1974_the_unix_time_sharing_system.bib

Hierbij doet de tool precies wat er gevraagd is. Hij matched ze niet, omdat ze niet van hetzelfdepublicatiejaar zijn. Als er in de entry gekeken wordt zijn ze wel hetzelfde.

29

Page 32: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

0 200 400 600 800 1,000 1,200 1,400 1,600 1,800 2,000 2,200 2,400 2,600 2,800 3,0000

10

20

30

40

50

60

70

80

90

100

Aantal BibTEX entries

Exec

uti

etij

d

Vergelijking van executietijd

Zoeken en samenvoegen van alleen BibTEX bestandenZoeken en samenvoegen van PDF en BibTEX bestanden

Figure 5.2: Vergelijking van executietijd

In figuur 5.2 zijn executietijden van de tool weergegeven. De blauwe lijn bestaat uit het samen-voegen van alleen BibTEX bestanden, er word in deze executie niet gezocht naar PDF bestanden.Deze executie is snel en schaalbaar. Daarentegen is het zoeken en samenvoegen van PDF enBibTEX bestanden traag. De executietijd zit hem vooral in het doorzoeken van alle BibTEXbestanden naar de beste match.

5.2 Gebruikersonderzoek

5.2.1 Methodologie

Deze tool is ontwikkeld om door onderzoekers gebruikt te worden en daarom kan hun mening overde tool niet ontbreken in deze scriptie. De onderzoekers krijgen tijdens het gebruikersonderzoekeen demonstratie van de tool. Nadat ze deze demonstratie hebben gezien, worden de volgendevragen gesteld:

1. Beschrijf in een of twee zinnen wat je van de tool vindt.

2. Wat vind je van de GUI?

3. Denk je deze tool te gaan gebruiken, zo ja waarom, zo nee wat moet er veranderd worden?

30

Page 33: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

4. Noem drie goede dingen.

5. Noem drie dingen die verbeterd kunnen worden.

De derde en de laatste twee vragen hebben veel overeenkomsten. Deze worden toch apart gesteld,zodat er minimaal drie goede en drie verbeteringen naar voren komen. Dit zou een goed kwali-tatief beeld van de tool moeten geven. Als de vragen gesteld zijn, zijn de onderzoekers vrij omnog wat toe te voegen dat volgens hen nog noemenswaardig is.

Voor het gebruikersonderzoek zijn we op zoek naar onderzoekers die voldoen aan het volgendeprofiel:

• Ervaring met het gebruik van bibliografische bestanden.

• Onderhouden van persoonlijke en groepswebsite.

• Ze zijn op de hoogte van de vaardigheden en kennis die nodig zijn om inhoudelijke feedbackte geven.

De demonstratie en kleine vragenlijst zal voorgelegd worden aan de volgende vijf onderzoek-ers:

1. Andy Pimentel

2. Roy Bakker

3. Simon Polstra

4. Clemens Grelck

5. Taddeus Kroes

Tijdens het doen van vooronderzoek voor de scriptie zijn een aantal van bovenstaande onderzoek-ers om hun mening gevraagd. Wat was er volgens hen nodig? Wat miste er aan de tools die nubestaan? Wat is de workflow die nu gebruikt wordt? Deze onderzoekers zijn om deze rede weergeselecteerd om hun mening te vormen over de uiteindelijke tool. Het is een diverse groep, zohebben Andy en Clemens heel veel ervaring en hebben veel gepubliceerd en zijn vaak geciteerd.Daarentegen staan Roy en Roeland aan het begin van hun academische carriere. Taddeus isbezig met het schrijven van zijn masterthesis, zijn masterthesis is een literatuuronderzoek. Hier-voor heeft hij een bibliografie op moeten stellen. Taddeus en Simon voldoen niet aan het profiel,Simon publiceerd op dit moment niets en Taddeus heeft nog niets gepubliceerd. Toch is hetbelangrijk hun te interviewen, omdat er dan diversiteit in de groep zit, zodat er vanuit meerdereinvalshoeken naar de software gekeken wordt.

5.2.2 Resultaten gebruikersonderzoek

In tabel 5.2.2 is terug te vinden wat de antwoorden van de onderzoekers waren op de vragen(hoofstuk 5.2) na de demo. In de antwoorden zijn een aantal punten naar voren gekomen waarmensen enthousiast over zijn en waarvan ze van mening zijn dat verbeterd moeten worden.

Over het algemeen, met uitzondering van C. Grelck, waren ze enthousiast over de tool. Zevonden het handig om hun website op deze manier gemakkelijker bij te kunnen houden.Het zouze een hoop tijd schelen met de hulp van de tool. Ook verzonnen ze zelf toepassingen van hetprogramma, waar het in eerste instantie niet voor bedoeld is, maar wel voor gebruikt kan worden.Zo bedacht R. Bakker dat hij met de hulp van deze tool een overzicht van zijn bibliografischegegevens kan krijgen en zo snel de informatie kan vinden die hij nodig heeft over een bepaaldonderwerp. Allen waren het erover eens dat de GUI simpel is, maar nog niet handig genoegin gebruik. Zo zouden ze graag een filter optie willen zien. Het scrollen door 2000 entries endaaruit op basis van het type, jaar en titel je eigen of groepspublicaties vinden is niet gemakkelijk.Daarnaast is een Control-klik selectie methode niet handig, R. Bakker had een goede suggestiesom daar vinkjes van te maken. De filtering gaat alsnog geımplementeerd worden. C. Grelck was

31

Page 34: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

over het algemeen negatief over de tool, zoals het nu er uitziet zal hij het niet gaan gebruiken.Wanneer er een filtering systeem komt vindt hij de tool het overwegen waard.

32

Page 35: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

Vraag A. Pimentel C. Grelck R. Bakker S. Polstra T. Kroes1 Heel enthousi-

ast, bijzonderhandig

Niet enthousi-ast, was scep-tisch

Enthousiast,handige tool

Nuttig, ookhandig op ditmoment ombestanden tezoeken

Gaat veel tijdschelen, leukproject

2 Iets uitgebrei-dere tabel zouhandig zijn

Simpel, mistfiltering

Lastig selectiemaken metCTRL-klik,een vinkje zoumakkelijkerzijn

Simpel Simpel, mistfiltering eneventueelsortering

3 Ja, dit gaatvooral tijdschelen

Nee, op dit mo-ment te lastigin gebruik

Ja, zeker!Zeker defeaturePDF− >BibTEXmet de hulpvan GoogleScholar isinteressant

Ja, niet per sewaar het voorgemaakt is

Nu nog niet,maar als ik gapubliceren wel

4 Tijd,KISS(KeepIt SimpleStupid)

GUI is simpel Sneloverzichtengenereren vanbestanden ineen directory,blij met GoogleScholar feature

Zoeken pa-pers, website,samengevoegdeBibTEX files

Duplicatenverwijderen,genereren bib+ website ener is een GUI

5 Zoeken opnaam, boom-structuur web-site en meerflexibiliteit inwebsite format

Filteren GUI,groepspubli-catie vindenmet filterenzelfs lastig

Filters, sorter-ing en vinkjesin GUI

Last changed,import oudewebsite, filter-ing

Citatiesleutelte lang, fil-teren GUI enconfig als pa-rameter vanafcommandline

6 Website tedownloadenals PDF zouhandig zijn

Filters com-bineren, bi-jvoorbeeld allearticle tussen2010 en 2012

- - -

Table 5.1: Samenvatting van de antwoorden op de gegeven vragen, vragen zijn terug te vindenin hoofstuk 5.2: Gebruikersonderzoek

33

Page 36: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

34

Page 37: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

CHAPTER 6

Discussie

In dit hoofdstuk zullen de resultaten uit hoofstuk 7: Resultaten experimenten en hoofdstuk8: Resultaten gebruikersonderzoek besproken worden. Aan de hand van deze resultaten zullende volgende onderzoeksvragen, gedefinieerd in sectie 1.4: Onderzoeksvragen, beantwoord wor-den.

• Hoe wordt ervoor gezorgd dat er geen duplicaten voorkomen in de gezamenlijke opslag?

• Hoe wordt ervoor gezorgd dat de tool niet teveel middelen gebruikt?

• Hoe wordt ervoor gezorgd dat de tool past in de workflow van de gebruikers?

• Wat is de beste manier om PDF en BibTEX bestanden te matchen?

6.1 Hoe wordt ervoor gezorgd dat er geen duplicaten voorkomen in degezamenlijke opslag?

De manier waarop bestanden opgeslagen worden is uiteengezet in hoofdstuk 3. Het doel vande tool is om duplicate BibTEX bestanden samen te voegen. Dit wordt gedaan aan de handvan een genormaliseerde unieke bestandsnaam. Deze bestandsnaam is beschreven in sectie 3.5.Er wordt vanuit gegaan dat normaliseren van de benodigde velden voldoende is om duplicateBibTEX bestanden te vinden, hier wordt geen ratio berekening op los gelaten. De resultaten, tezien in sectie 5.1.2, laten zien dat dit voldoende is.

Kortom: Het juist normaliseren van de benodigde velden zorgt ervoor dat er weinig tot geenduplicaten bestanden zijn.

6.2 Hoe wordt ervoor gezorgd dat de tool niet teveel middelen ge-bruikt?

Zoals beschreven in hoofdstuk 3: Functioneel Ontwerp, worden de BibTEX betanden in hetvolgende formaat opgeslagen: ’<year> <type> <title>.bib’. In combinatie met de normalisatievan het jaar, het type en de titel en deze manier van opslag zien we dat er snel gevonden kanworden of er duplicaten zijn. Dit zien we terug in de executietijd van het zoeken en eventueelsamenvoegen van de BibTEX bestanden, zoals te zien in de resultaten. De executietijd van hetvergelijken van PDF en BibTEX bestanden laat te wensen over. Dit komt doordat voor elke PDFde gehele lijst van BibTEX bestanden doorlopen moet worden voordat de beste match gegevenkan worden. Bij een kleine lijst van bijvoorbeeld 500 entries valt de executietijd mee, maar bij

35

Page 38: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

een lijst van bijvoorbeeld 2000 entries begint dit tegen te vallen. Hetzelfde geldt voor het gebruikvan Google Scholar, het omzetten van PDF naar platte tekst door PDFtoText kan verwaarloostworden. De HTTP-Request die gedaan wordt kost tijd en omdat er tijd moet zitten tussen dequeries naar Google Scholar, moet er gepauzeerd worden. Dit komt de executietijd ook niet tengoede. Eer is voor gekozen de optie voor het zoeken van de PDF bestanden een optionele optiete maken, omdat de executietijd anders erg lang is. Het linken van PDF bestanden aan BibTEXbestanden is niet essentieel voor het genereren van de website,. Het kan alleen wenselijk zijn,omdat er dan direct vanaf de website naar de PDF kan worden gegaan.Kortom: Het gebruik van de juiste normalisatie en opslag methode maakt het mogelijk om detools niet teveel middelen te laten gebruiken. Dit geldt alleen voor het vergelijken en samenvoegenvan BibTEX bestanden. De PDF bestanden kunnen niet op een efficiente manier vergelekenworden, omdat alle BibTEX entries doorzocht moeten worden.

6.3 Hoe wordt ervoor gezorgd dat de tool past in de workflow van degebruikers?

In het vooronderzoek zijn een aantal onderzoekers ondervraagd wat ze zouden verwachten vaneen tool die automatisch BibTEX en PDF bestanden zoekt en samengevoegd. Vanuit deze BibTEXbestanden wordt een website gegenereerd worden. Zoals beschreven in sectie 1.2: Waar is vraagnaar?, is er te zien dat er zeker vraag is naar een tool die het makkelijker maakt om de onderzoekerzijn websites bij te houden. Het initiele idee van de tool was dat alles volledig geautomatiseerdzou zijn, dus van het scannen naar bestanden, tot het genereren van een persoonlijke en groep-swebsite. Hier waren niet alle onderzoekers het mee eens. Naast dat het inefficıent is om degehele harde schijf te doorzoeken naar bestanden, vonden de onderzoekers het ook niet fijn. Zehouden liever zelf de controle over hun gegevens. Daarom is ervoor gekozen om de onderzoekers,door middel van de directories in het configuratie bestand, te laten kiezen welke directories welen niet doorzocht mogen worden voor zowel PDF als BibTEX bestanden. Daarnaast moet detool gemakkelijk in gebruik zijn, dit is gedaan door een simpele GUI. In de resultaten van hetgebruikersonderzoek is dit terug te zien, elke onderzoeker vond het simpel of zelfs KISS (KeepIt Simple Stupid). Ook is het gebruik van Dropbox voor het synchroniseren van de bestandenhandig, aangezien de gebruiker, naast de initiele installatie, niks aan hoeft te doen.

Kortom: Het gebruik van gemakkelijke tools als Dropbox en de mate van configuratie zorgtervoor dat het alle in workflows zouden moeten passen. Daarnaast is de tool simpel in gebruik.Hierdoor is de drempel laag om de tool in gebruik te nemen.

6.4 Wat is de beste manier om PDF en BibTEX bestanden matchen?

PDF bestanden en BibTEX bestanden zijn twee verschillende type bestanden, dit maakt hetniet gemakkelijk om gelijkheid tussen deze bestanden te vinden. Google Scholar kan hierbijhelpen. Nadeel van deze tool is dat je snel geblacklist word, soms zelfs met de pauze die inde tool verwerkt is. Daarom is er een alternatief ontwikkeld. Dit alternatief is uiteengezet insectie 4.5.2.2: Zonder Google Scholar. Zoals in de resultaten te zien is, is de accuracy van hetzelf ontwikkelde alternatief zelfs beter dan de accuracy van Google Scholar. Het verschil is teverklaren doordat Google Scholar uit het hele internet kan kiezen om de juiste match terug tegeven en soms helemaal geen match kan vinden. Dit kan voorkomen, omdat er in de eerstetwintig woorden van de PDF bijvoorbeeld koptekst zit en niet de titel, hierdoor heeft GoogleScholar soms helemaal geen match. Bij het zelf ontwikkelde alternatief komt er altijd een bestematch uit, alleen kan deze beste match foutief zijn. Daarom kijken we naar de score. In figuur7.1 is te zien dat de hoogste accuracy is bij een score van 50 als we de eerste 35 woorden van dePDF afknippen.

36

Page 39: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

Kortom: Het afknippen van de eerste 35 woorden van de PDF met behulp van PDFtoText endeze te matchen met de titel van de BibTEX bestanden in de gezamenlijke opslag.

6.5 Overige discussie

In sectie 3.3.2.5: Normalisatie namen staat dat ik eerst een algoritme voor het normaliserenvan namen heb ontwikkeld. Dit werkte redelijk, maar was nooit echt naar mijn zin. Later hebik een package gevonden die eigenlijk precies kan als wat ik wilde. De package Pybtex was iktegengekomen tijdens het doen van vooronderzoek, deze package is heel slecht gedocumenteerden de representatie van de BibTEX entries liet te wensen over. Door later toch de code van depackage door te spitten vond ik dat het parseren van de namen precies is wat ik zocht. Daaromis er later in het ontwikkelproces alsnog besloten de eigen implementatie niet te gebruiken, maarPybtex te gebruiken.

Tijdens het gebruikersonderzoek is naar voren gekomen dat de manier waarop de tool de ci-tatiesleutel opbouwt in de praktijk niet handig te gebruiken is. Hij zou veel te lang zijn. Achterafgezien had daar een best effort minimalisatie op los gelaten moeten worden. Een voorbeeld vaneen best effort minimalisatie zou bijvoorbeeld een lange key alsarticle 1966 flow diagrams turing machines and languages with only two formation rules

kunnen verkleinen naar atc 66 flow diagram turing.

37

Page 40: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

38

Page 41: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

CHAPTER 7

Conclusie

7.1 Samenvatting

In hoofdstuk 1 is de inleiding uiteengezet, bestaande uit de context, probleemstelling, onder-zoeksvragen, strategie, uitdaging en organisatie van deze scriptie. In hoofdstuk 2 is een achter-grond informatie gegeven over wat BibTEX is, de referentie management tools die al bestaanen de middelen die gebruikt worden om het probleem op te lossen. Vervolgens is er in hoofd-stuk 3 een ontwerp gegeven over hoe de tool eruit komt te zien en welke technieken er gebruiktworden. Hierin wordt besproken wat voor configuratie mogelijkheden er zijn en hoe bestandenvergeleken en samengevoegd worden. De implementatie van het ontwerp wordt besproken inhoofdstuk 4, hier wordt verder ingegaan op het technische aspect van de tool. De tool wordtonderworpen aan een aantal experimenten. De experimenten en de resultaten van de experi-menten kunnen gevonden worden in hoofdstuk 5. Naast dat er experimenten uitgevoerd zijn, iser ook een gebruikersonderzoek afgenomen. Het gebruikersonderzoek en de resultaten daarvanzijn ook te vinden in hoofdstuk 5. De, in hoofdstuk 1, onderzoeksvragen worden in hoofdstuk 6beantwoord.

7.2 Zal de tool gebruikt worden?

Ik denk dat de backend van de tool goed genoeg is om in gebruik genomen te worden, de fron-tend laat nog wel wat te wensen over. De frontend is simpel, maar misschien wel iets te simpelwaardoor niet alles even lekker werkt. Hierbij moet er gedacht worden aan bijvoorbeeld hetselecteren van entries die op de persoonlijke of groepswebsite gepubliceerd kunnen worden. Ookis er enige achtergrondkennis nodig om de tool te configureren, dit zou wenselijk zijn om bijvoor-beeld via de GUI te kunnen doen. Voor het sectie Informatica is de tool direct te gebruiken.Zoals in de resultaten van het gebruikersonderzoek te zien is, vinden de meeste onderzoekers diegeınterviewd zijn de tool handig en leuk. Hieruit kunnen we, vind ik, concluderen dat de tooleen succes is.

7.3 Richtingen voor de toekomst

Voor verdere ontwikkeling van de tool zou er allereerst een nieuwe GUI ontwikkeld moetenworden. Deze GUI zou uitgebreider moeten zijn dan de huidige GUI. Om de tool toegankelijkerte maken voor onderzoekers zou het gemakkelijker moeten zijn om de tool te configureren. Verder

39

Page 42: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

zouden toepassingen als annotaties en het binnen de tool aanpassen van BibTEX bestanden detool niet misstaan.

40

Page 43: Automatisch verzamelen en samen- voegen van bibliogra · PDF fileBachelor Informatica Automatisch verzamelen en samen-voegen van bibliogra sche gegevens Justin van Wageningen June

Bibliography

[1] Comparison of reference management software. http://en.wikipedia.org/wiki/

Comparison_of_reference_management_software. Accessed: 2015-03-15.

[2] David Aumuller and Erhard Rahm. PDFMeat. managing publications on the semanticdesktop. Proceedings of the 20th ACM international conference on Information and knowledgemanagement. Doi, 2011.

[3] Merinda Kaye Hensley. Citation management software: Features and futures. ReferenceUser Services Quarterly, 50(3):pp. 204–208, 2011.

[4] Jean-Michel Hufflen. Names in {BibTeX} and {mlBibTeX}. TUGB, pages 243–253, 2006.

[5] Nicolas Markey. Tame the BeaST The B to X of BibTeX, 2009.

[6] Oren Patashnik. Bibtexing. In Hidden Markov Models and Selected Applications in SpeechRecognition. Proceedings of the IEEE 77, pages 257–286, 1988.

[7] Yingting Zhang. Comparison of select reference management tools. Medical reference servicesquarterly, 31(1):45–60, 2012.

41