• Nie Znaleziono Wyników

Schemat relacyjnej bazy danych (LBS)

W dokumencie systemu oceny jakości w nauce (Stron 180-194)

Aby móc przetwarzać dane bibliograficzne pobrane z serwisu Scopus, należy wpierw zaprojektować schemat komputerowej bazy danych, w której będą przechowywane informacje o źródłach (ang. sources), dokumentach (ang. do-cuments) i autorach (ang. authors).

Na rys. 6.1 przedstawiamy używany w pakiecie CITAN schemat tabel

LBS

i związków między nimi. Do stworzenia schematu takiej relacyjnej bazy da-nych, zwanej danej w skrócie LBS (ang. local bibliometric storage), używany jest kod SQL zamieszczony w listingach 6.1–6.5.

Ważną cechą LBS jest możliwość grupowania dokumentów w tzw. ba-dania (ang. surveys; niekoniecznie rozłączne) tak, że nie ma potrzeby two-rzenia oddzielnych baz w przypadku przeprowadzania analizy różnych prób.

Dzięki temu można w prosty sposób aktualizować informacje o dokumentach (np. o liczbie ich cytowań). Dane te będą dostępne we wszystkich badaniach.

Utwórzmy zatem LBS na potrzeby przeprowadzanej przez nas analizy.

Najpierw należy załadować bibliotekę CITAN w środowisku R.

> library("CITAN"); # ładowanie biblioteki Loading required package: DBI

Loading required package: RSQLite Loading required package: RGtk2 Loading required package: hash

hash-2.1.0 provided by Decision Patterns Loading required package: ADGofTest

Połączmy się z bazą danych SQLite, która będzie przechowywać wszelkie Połączenie

z bazą danych

informacje w pliku lokalnym Scopus-dr.db.

> conn <- lbsConnect("Scopus-dr.db"); # połączenie z bazą danych Od tej pory obiekt conn reprezentuje nawiązane połączenie i będzie służył do komunikacji z RDBMS.

Aby utworzyć omówiony wyżej schemat tabel oraz widoków pomocni- Tworzenie LBS

czych (ang. views), wywołujemy następującą funkcję.

> lbsCreate(conn); # tworzenie LBS

Creating table ’Biblio_Categories’... DONE.

ANALIZAEMPIRYCZNADANYCHBIBLIOMETRYCZNYCH6.2

Rysunek 6.1: Schemat bazy danych tworzonej przez funkcję lbsCreate().

Proces tworzenia LBS zakończył się powodzeniem. W następnym podroz-dziale omówimy próbę, na której przeprowadzimy przykładowe badanie bi-bliometryczne. Pokażemy także, jak w pakiecie CITAN zaimportować i wstęp-nie przetworzyć dane pobrane z serwisu Scopus.

6.3

Próba badawcza

Próba badawcza, którą poddamy analizie składa się z publikacji w dziedzinie naukometrii i webometrii. Badając taki zbiór prac, rzecz jasna, nie otrzy-mamy pełnego obrazu dorobku autorów, zwłaszcza gdy nie jest to ich pod-stawowy obszar badawczy. Załóżmy jednak, że naszym celem jest określenie grupy osób, które będą kandydatami do uzyskania nagrody za zasługi właśnie w tych dziedzinach. Innymi słowy, w naszym badaniu nie oceniamy całego dorobku osób, które mają jakikolwiek wkład w rozwój naukometrii, lecz tylko naukometryczny podzbiór tego dorobku.

Użyliśmy następujących zapytań (kwerend w wyszukiwarce Scopus): Zapytania

• TITLE(index quantify individual scientific research output)

— 3 publikacje, w tym praca [107],

• 795 publikacji cytujących pracę [107],

• TITLE-ABS-KEY(bibliometric*) OR TITLE-ABS-KEY(scientometric*)

OR TITLE-ABS-KEY(webometric*) — 6870 publikacji; wyszukiwanie na podstawie słów kluczowych,

• SRCTITLE(Scientometrics) OR SRCTITLE(Informetrics) OR SRCTITLE(Cybermetrics) OR SRCTITLE("Annual Review of Information Science and Technology")

OR SRCTITLE("Journal of the American Society

for Information Science") — 5969 publikacji; wyszukiwanie na podstawie źródeł, uwzględniające m.in. takie wiodące czasopisma, jak Scientometrics, Journal of Informetrics, Journal of the American So-ciety for Information Science and Technology.

Analizowane przez nas dane bibliograficzne zostały pobrane 27 marca 2011 r. w godz. 13:33–14:05. Dostęp do serwisu Scopus uzyskaliśmy z kom-putera Biblioteki Głównej Politechniki Warszawskiej.

Ze względu na to, iż nasza licencja ogranicza liczbę wyświetlanych re-kordów do 2000, zapytania musiały zostać podzielone na części za pomocą

dyrektywy PUBYEAR. Do eksportowania rezultatów używaliśmy następują-cych ustawień: Export format = "Comma separated file, .csv (e.g.

Excel)"i Output = "Complete format". W wyniku otrzymaliśmy 10 plików CSV o łącznym rozmiarze 77 MB. Zwróćmy uwagę, że powyższe zapytania nie zwracają rozłącznych zbiorów dokumentów. Nie jest to jednak dla nas przeszkodą, ponieważ biblioteka CITAN uwzględnia taką ewentualność.

6.3.1 Importowanie danych pobranych z bazy Scopus

Jako że nasze dane bibliograficzne pochodzą z serwisu Scopus, zaimportujmy

Importowanie źródeł indeksowanych przez Scopus

informacje o źródłach pokrywanych przez tę bazę. Następująca funkcja umieszcza je w LBS.

> Scopus_ImportSources(conn); # importowanie źródeł (Scopus)

Importing Scopus ASJC codes... OK, 334 records added.

Importing country list... OK, 112 records added.

Importing Scopus source list... OK, 29913 of 30017 records added;

53762 ASJC codes processed.

[1] TRUE

Niektóre tytuły (dotyczy to przede wszystkim materiałów konferencyjnych) nie zostały wprowadzone z powodu braku informacji o numerach ISSN. Je-steśmy gotowi do wczytania pobranych plików CSV oraz zaimportowania ich do LBS6.

Importowanie plików CSV

> data <- Scopus_ReadCSV("Hirsch.csv"); # wczytanie pliku (1)

> lbsImportDocuments(conn, data, "DR"); # importowanie do LBS

Importing documents and their authors...

OK, 3 of 3 records added to DR/Hirsch.csv.

Jak widzimy, powyższy plik zawierał dane o 3 dokumentach (wynik zwrócony przez pierwszą kwerendę na s. 183). Zaimportujmy kolejny z nich (druga kwerenda).

> data <- Scopus_ReadCSV("Hirsch_CITE.csv"); # wczytanie pliku (2)

> lbsImportDocuments(conn, data, "DR"); # importowanie do LBS

6W przypadku kilku dokumentów pojawiły się błędy parsera spowodowane nieprze-strzeganiem przez bazę Scopus standardu CSV. Wszystkie wyjątki zostały wychwycone przez funkcję Scopus_ReadCSV()(wraz ze wskazaniem numeru problematycznego wier-sza), dzięki czemu można je było poprawić za pomocą zwykłego edytora tekstowego. Więk-szość z nich dotyczyła niepoprawnie wstawionych cudzysłowów.

Importing documents and their authors...

OK, 794 of 795 records added to DR/Hirsch_CITE.csv.

Jeden z dokumentów nie został dodany, gdyż był już udostępniony przez plik Hirsch.csv. Informacje o nim (w tym liczba cytowań) zostały jednak zaktualizowane. Takie zachowanie jest ważne np. w przypadku pobierania danych bibliograficznych w większych odstępach czasowych.

Zaimportujmy pozostałe pliki.

> ... # ładowanie i importowanie pozostałych plików

Importing documents and their authors...

OK, 1933 of 1941 records added to DR/BibSciWeb_2002-2006.csv.

Importing documents and their authors...

OK, 1353 of 1452 records added to DR/BibSciWeb_2007_2008_2011.csv.

Importing documents and their authors...

OK, 1388 of 1574 records added to DR/BibSciWeb_2009_2010.csv.

Importing documents and their authors...

OK, 1903 of 1903 records added to DR/BibSciWeb_BEF2002.csv.

Importing documents and their authors...

OK, 1492 of 1804 records added to DR/5journals_1998-2005.csv.

Importing documents and their authors...

OK, 291 of 353 records added to DR/5journals_2006.csv.

Importing documents and their authors...

OK, 1355 of 1925 records added to DR/5journals_AFT2006.csv.

Importing documents and their authors...

OK, 1555 of 1887 records added to DR/5journals_BEF1998.csv.

Z powodu mało wydajnej komunikacji z bazą SQLite w środowisku R, w obecnej implementacji proces importowania powyższych danych zajął na referencyjnym komputerze około 21 minut.

6.3.2 Wstępne przetwarzanie i czyszczenie danych

Niestety, dane pobrane z serwisu Scopus, prócz braku ścisłej zgodności z formatem CSV, nie są pozbawione błędów jeszcze innego rodzaju. Czę-sto występuje tu niejednoznaczność reprezentacji przechowywanych obiek-tów. Wiele dokumentów i wielu autorów nie posiada unikalnych identyfika-torów. Na przykład prof. Janina Maria Kowalska-Malinowska może widnieć w bazie jako Kowalska J., Kowalska-Malinowska J.M. czy nawet Kowalska J.M.M.

W celu wykrycia tego typu przypadków zaimplementowaliśmy dwie funk-cje wskazujące użytkownikowi grupy dokumentów i autorów, które poten-cjalnie powinny zostać złączone. Wyniki wyszukiwania prezentowane są w okienku dialogowym, w którym można wybrać identyfikatory obiektów przeznaczone do poprawienia. Następnie, za pomocą innych funkcji, wpro-wadza się stosowne zmiany w LBS.

Uwaga: aktualna wersja biblioteki CITAN zawiera implementacje ekspery-mentalnych wersji algorytmów wyszukiwania niejednoznaczności. Sposób ich użycia został opisany w dokumentacji technicznej biblioteki. Udoskonalenie tych procedur pozostawiamy jako ciekawy temat do przyszłych badań. Jed-nakże, jak zobaczymy za chwilę, uzyskane wyniki już teraz zapowiadają się obiecująco.

Zajmijmy się najpierw wyszukiwaniem duplikatów dokumentów. Zaimple-mentowany przez nas algorytm stosuje w tym celu pewną miarę podobieństwa między tytułami.

Wywołajmy następującą funkcję.

Czyszczenie danych dot.

do-kumentów > ident <- lbsFindDuplicateTitles(conn, aggressiveness=2,

ignoreTitles=c("In this issue%", "%In this issue", "%Editorial",

"%Introduction", "Letter to %", "%Preface"));

Rys. 6.2 przedstawia przykładową, automatycznie wskazaną przez po-wyższą procedurę, grupę powtarzających się dokumentów. Zwróćmy uwagę na problem z polem Authors.

Rysunek 6.2: Jedna z grup powtarzających się dokumentów wskazana przez funkcję lbsFindDuplicateTitles().

Wybraliśmy do usunięcia (ręcznie) 43 dokumenty.

> lbsDeleteDocuments(conn, ident); # usuwanie wybranych dokumentów

> dbCommit(conn); # zatwierdzenie zmian

[1] TRUE

Podobną czynność należy przeprowadzić dla autorów. Możemy tego do- Czyszczenie danych dot.

autorów

konać, wywołując funkcję:

> ident <- lbsFindDuplicateAuthors(conn, aggressiveness=2)

Tym razem wybraliśmy 56 grup autorów (spośród kilkuset). Stosując od-powiednie parametry wejściowe powyższej procedury (zob. rozdz. B.4.2), roz-patrywaliśmy m.in. autorów o największej produktywności, największej łącz-nej liczbie cytowań oraz nazwiska występujące w zestawieniach zamieszczo-nych w rozdz. 6.4. Przykładowe dwa zrzuty ekranu przedstawiamy na rys. 6.3.

Na koniec należy wprowadzić zmiany do LBS:

> lbsMergeAuthors(conn, ident); # scalanie grup autorów

> dbCommit(conn); # zatwierdzenie zmian

Rysunek 6.3: Przykładowe grupy powtarzających się autorów wskazane przez funkcję lbsFindDuplicateAuthors().

6.3.3 Opis próby

Dokonajmy wstępnego opisu rozpatrywanej próby. Rys. 6.4–6.7 przedstawiają Statystyki

opisowe

wykresy wygenerowane przez funkcję lbsDescriptiveStats().

> lbsDescriptiveStats(conn, surveyDescription="DR"); # opis próby

Number of sources in the database: 29913.

Number of documents in the database: 12024.

Number of authors in the database: 16282.

Data set restrictions:

Survey: DR.

Document types: <ALL>.

Omówmy pokrótce uzyskane wyniki.

Na rys. 6.4 zamieściliśmy wykres słupkowy typów dokumentów

znajdu-Typy

dokumentów jących się w bazie. Do analizy autorów w następnym podrozdziale wykorzy-stamy tylko niektóre z nich: ar (Article; 8353 dokumentów), re (Review;

1110), no (Note; 194), sh (Short Survey; 90). Z dużą dozą prawdopodo-bieństwa oznaczają one bowiem prace recenzowane (razem 9747 dokumentów i 13953 autorów).

ar re ed cp le no sh ip er bk

02000400060008000

Typy dokumentow

Rysunek 6.4: Próba badawcza: typy dokumentów (which=1).

Przy założeniu, że wszystkie publikacje w ramach jednego czasopisma

Klasyfikacja tematyczna

dokumentów bądź materiałów konferencyjnych wpisują się we wspólną tematykę, możemy spróbować dokonać ich klasyfikacji na podstawie kodów ASJC. Stosowny wy-kres kołowy przedstawiamy na rys. 6.5. Jak widzimy, większość prac w na-szej próbie badawczej pochodzi z następujących dziedzin: informatyka, nauki społeczne, medycyna (gdzie badania bibliometryczne są bardzo popularne) i inżynieria. W naszym zbiorze jest też kilkaset prac w kategorii matematyka oraz wspomaganie podejmowania decyzji.

Mathematics

Social Sci.

Decision Sci.

Medicine Other Engineering

Biochem., Genetics, Molec. Biol.

Computer Sci.

Kategorie ASJC dokumentow

Rysunek 6.5: Próba badawcza: kategorie ASJC dokumentów (which=6).

Rys. 6.6 przedstawia wykresy skrzynkowe liczby stron w zależności od Liczba stron wg typu

typu dokumentu. Z kolei na rys. 6.7 pokazujemy histogram liczby publikacji przypadającej na jednego autora (histogram produktywności). Obserwujemy,

że ok. 78% autorów z naszej próby posiada w dorobku tylko jedną publikację Liczba

publikacji na autora

(rzecz jasna, w rozpatrywanych dziedzinach). Jednak proporcja ta z pew-nością w rzeczywistości jest mniejsza, ponieważ przejrzeliśmy tylko kilka-set potencjalnych duplikatów nazwisk zwróconych przez funkcję lbsFind-DuplicateAuthors().

Wykresy na rys. 6.8 przedstawiają liczbę opublikowanych dokumentów w zależności od roku ukazania się drukiem. Zgodnie z wynikami uzyskanymi przez innych badaczy [por. np. 103], obserwujemy wykładniczy wzrost liczby publikacji w czasie. Dopasowana za pomocą metody najmniejszych kwadra-tów krzywa wykładnicza dla lat 1973–2010 jest postaci

y = exp (0,0969x− 187,8) ,

gdzie x — rok, y — liczba publikacji (model nieliniowy sprowadzony do modelu liniowego; współczynnik determinacji R2 = 0,9456).

ar bk cp ed er ip le no re sh

125102050200500

Liczba stron

Rysunek 6.6: Próba badawcza: liczba stron dokumentów w zależności od typu (which=5).

1 3 5 7 9 12 15 18 21 24 27 31 36 41 48 59 81 98

02000600010000

Liczba dokumentow na autora

Rysunek 6.7: Próba badawcza: liczba publikacji przypadająca na autora (which=7).

1971 1975 1979 1983 1987 1991 1995 1999 2003 2007 2011

02004006008001000

Rok publikacji

1980 1990 2000 2010

02004006008001000

Bibliometria 1973−2010

Rok

Dokumenty

exp(0.0969x−187.8)

Rysunek 6.8: Próba badawcza: czas publikacji dokumentów (which=2; po-wyżej). Poniżej dopasowana za pomocą MNK krzywa wykładnicza postaci y = exp (0,0969x− 187,8).

Rys. 6.9 przedstawia empiryczny rozkład liczby cytowań wszystkich

roz-Liczba cytowań

patrywanych publikacji. W ostatnim podrozdziale postaramy się zweryfiko-wać hipotezę dotyczącą rozkładu liczby cytowań dla poszczególnych auto-rów, aby uzasadnić dobór rodziny Pareto II rodzaju w rozdziale 4 (zwróćmy uwagę, że mieszanina rozkładów P2 niekoniecznie musi mieć taki rozkład).

Ponadto, na rys. 6.10 prezentujemy wykresy skrzynkowe liczby cytowań prac cytowanych co najmniej raz w zależności od typu dokumentu.

Zweryfikujmy w tym miejscu obiegową opinię [por. 92] głoszącą, że prace przeglądowe są częściej cytowane niż zwykłe artykuły.

> id_ar <- lbsSearchDocuments(conn, surveyDescription="DR", documentTypes="Article"); # pobranie wszystkich artykułów

> info_ar <- lbsGetInfoDocuments(conn, id_ar);

> cit_ar <- sapply(info_ar, function(x) x$Citations);

> summary(cit_ar); # statystyki położenia

Min. 1st Qu. Median Mean 3rd Qu. Max.

0.000 1.000 3.000 8.716 9.000 836.000

> id_re <- lbsSearchDocuments(conn, surveyDescription="DR",

documentTypes="Review"); # pobranie wszystkich prac przeglądowych

> info_re <- lbsGetInfoDocuments(conn, id_re);

> cit_re <- sapply(info_re, function(x) x$Citations);

> summary(cit_re); # statystyki położenia

Min. 1st Qu. Median Mean 3rd Qu. Max.

0.00 1.00 5.00 11.39 12.00 550.00

Zastosujmy test sum rang Wilcoxona.

> wilcox.test(cit_ar, cit_re, alternative="less");

Wilcoxon rank sum test with continuity correction

data: cit_ar and cit_re

W = 4135932, p-value = 1.886e-09

alternative hypothesis: true location shift is less than 0

Widzimy, że na każdym sensownym poziomie istotności powinniśmy odrzucić hipotezę zerową na rzecz hipotezy alternatywnej głoszącej, że artykuły w cza-sopismach są średnio rzadziej cytowane niż prace przeglądowe (W = 4135932, p-wartość ≃ 0).

0 6 13 22 31 40 49 58 67 76 85 95 107 121 149 193 359

050015002500

Liczba cytowan na dokument

Rysunek 6.9: Próba badawcza: liczba cytowań na dokument (which=3).

ar bk cp ed le no re sh

151050500

Liczba cytowan cytowanych dokumentow

Rysunek 6.10: Próba badawcza: liczba cytowań cytowanych dokumentów w zależności od typu (which=4).

6.4

W dokumencie systemu oceny jakości w nauce (Stron 180-194)