-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbib.html
456 lines (389 loc) · 16 KB
/
bib.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
<!DOCTYPE HTML>
<html>
<head>
<title>JabRef references</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
<!--
// QuickSearch script for JabRef HTML export
// Version: 3.0
//
// Copyright (c) 2006-2011, Mark Schenk
//
// This software is distributed under a Creative Commons Attribution 3.0 License
// http://creativecommons.org/licenses/by/3.0/
//
// Features:
// - intuitive find-as-you-type searching
// ~ case insensitive
// ~ ignore diacritics (optional)
//
// - search with/without Regular Expressions
// - match BibTeX key
//
// Search settings
var searchAbstract = true; // search in abstract
var searchReview = true; // search in review
var noSquiggles = true; // ignore diacritics when searching
var searchRegExp = false; // enable RegExp searches
if (window.addEventListener) {
window.addEventListener("load",initSearch,false); }
else if (window.attachEvent) {
window.attachEvent("onload", initSearch); }
function initSearch() {
// check for quick search table and searchfield
if (!document.getElementById('qs_table')||!document.getElementById('quicksearch')) { return; }
// load all the rows and sort into arrays
loadTableData();
//find the query field
qsfield = document.getElementById('qs_field');
// previous search term; used for speed optimisation
prevSearch = '';
//find statistics location
stats = document.getElementById('stat');
setStatistics(-1);
// set up preferences
initPreferences();
// shows the searchfield
document.getElementById('quicksearch').style.display = 'block';
document.getElementById('qs_field').onkeyup = quickSearch;
}
function loadTableData() {
// find table and appropriate rows
searchTable = document.getElementById('qs_table');
var allRows = searchTable.getElementsByTagName('tbody')[0].getElementsByTagName('tr');
// split all rows into entryRows and infoRows (e.g. abstract, review, bibtex)
entryRows = new Array(); infoRows = new Array(); absRows = new Array(); revRows = new Array();
// get data from each row
entryRowsData = new Array(); absRowsData = new Array(); revRowsData = new Array();
BibTeXKeys = new Array();
for (var i=0, k=0, j=0; i<allRows.length;i++) {
if (allRows[i].className.match(/entry/)) {
entryRows[j] = allRows[i];
entryRowsData[j] = stripDiacritics(getTextContent(allRows[i]));
allRows[i].id ? BibTeXKeys[j] = allRows[i].id : allRows[i].id = 'autokey_'+j;
j ++;
} else {
infoRows[k++] = allRows[i];
// check for abstract/review
if (allRows[i].className.match(/abstract/)) {
absRows.push(allRows[i]);
absRowsData[j-1] = stripDiacritics(getTextContent(allRows[i]));
} else if (allRows[i].className.match(/review/)) {
revRows.push(allRows[i]);
revRowsData[j-1] = stripDiacritics(getTextContent(allRows[i]));
}
}
}
//number of entries and rows
numEntries = entryRows.length;
numInfo = infoRows.length;
numAbs = absRows.length;
numRev = revRows.length;
}
function quickSearch(){
tInput = qsfield;
if (tInput.value.length == 0) {
showAll();
setStatistics(-1);
qsfield.className = '';
return;
} else {
t = stripDiacritics(tInput.value);
if(!searchRegExp) { t = escapeRegExp(t); }
// only search for valid RegExp
try {
textRegExp = new RegExp(t,"i");
closeAllInfo();
qsfield.className = '';
}
catch(err) {
prevSearch = tInput.value;
qsfield.className = 'invalidsearch';
return;
}
}
// count number of hits
var hits = 0;
// start looping through all entry rows
for (var i = 0; cRow = entryRows[i]; i++){
// only show search the cells if it isn't already hidden OR if the search term is getting shorter, then search all
if(cRow.className.indexOf('noshow')==-1 || tInput.value.length <= prevSearch.length){
var found = false;
if (entryRowsData[i].search(textRegExp) != -1 || BibTeXKeys[i].search(textRegExp) != -1){
found = true;
} else {
if(searchAbstract && absRowsData[i]!=undefined) {
if (absRowsData[i].search(textRegExp) != -1){ found=true; }
}
if(searchReview && revRowsData[i]!=undefined) {
if (revRowsData[i].search(textRegExp) != -1){ found=true; }
}
}
if (found){
cRow.className = 'entry show';
hits++;
} else {
cRow.className = 'entry noshow';
}
}
}
// update statistics
setStatistics(hits)
// set previous search value
prevSearch = tInput.value;
}
// Strip Diacritics from text
// http://stackoverflow.com/questions/990904/javascript-remove-accents-in-strings
// String containing replacement characters for stripping accents
var stripstring =
'AAAAAAACEEEEIIII'+
'DNOOOOO.OUUUUY..'+
'aaaaaaaceeeeiiii'+
'dnooooo.ouuuuy.y'+
'AaAaAaCcCcCcCcDd'+
'DdEeEeEeEeEeGgGg'+
'GgGgHhHhIiIiIiIi'+
'IiIiJjKkkLlLlLlL'+
'lJlNnNnNnnNnOoOo'+
'OoOoRrRrRrSsSsSs'+
'SsTtTtTtUuUuUuUu'+
'UuUuWwYyYZzZzZz.';
function stripDiacritics(str){
if(noSquiggles==false){
return str;
}
var answer='';
for(var i=0;i<str.length;i++){
var ch=str[i];
var chindex=ch.charCodeAt(0)-192; // Index of character code in the strip string
if(chindex>=0 && chindex<stripstring.length){
// Character is within our table, so we can strip the accent...
var outch=stripstring.charAt(chindex);
// ...unless it was shown as a '.'
if(outch!='.')ch=outch;
}
answer+=ch;
}
return answer;
}
// http://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex
// NOTE: must escape every \ in the export code because of the JabRef Export...
function escapeRegExp(str) {
return str.replace(/[-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}
function toggleInfo(articleid,info) {
var entry = document.getElementById(articleid);
var abs = document.getElementById('abs_'+articleid);
var rev = document.getElementById('rev_'+articleid);
var bib = document.getElementById('bib_'+articleid);
if (abs && info == 'abstract') {
abs.className.indexOf('noshow') == -1?abs.className = 'abstract noshow':abs.className = 'abstract show';
} else if (rev && info == 'review') {
rev.className.indexOf('noshow') == -1?rev.className = 'review noshow':rev.className = 'review show';
} else if (bib && info == 'bibtex') {
bib.className.indexOf('noshow') == -1?bib.className = 'bibtex noshow':bib.className = 'bibtex show';
} else {
return;
}
// check if one or the other is available
var revshow; var absshow; var bibshow;
(abs && abs.className.indexOf('noshow') == -1)? absshow = true: absshow = false;
(rev && rev.className.indexOf('noshow') == -1)? revshow = true: revshow = false;
(bib && bib.className.indexOf('noshow') == -1)? bibshow = true: bibshow = false;
// highlight original entry
if(entry) {
if (revshow || absshow || bibshow) {
entry.className = 'entry highlight show';
} else {
entry.className = 'entry show';
}
}
// When there's a combination of abstract/review/bibtex showing, need to add class for correct styling
if(absshow) {
(revshow||bibshow)?abs.className = 'abstract nextshow':abs.className = 'abstract';
}
if (revshow) {
bibshow?rev.className = 'review nextshow': rev.className = 'review';
}
}
function setStatistics (hits) {
if(hits < 0) { hits=numEntries; }
if(stats) { stats.firstChild.data = hits + '/' + numEntries}
}
function getTextContent(node) {
// Function written by Arve Bersvendsen
// http://www.virtuelvis.com
if (node.nodeType == 3) {
return node.nodeValue;
} // text node
if (node.nodeType == 1 && node.className != "infolinks") { // element node
var text = [];
for (var chld = node.firstChild;chld;chld=chld.nextSibling) {
text.push(getTextContent(chld));
}
return text.join("");
} return ""; // some other node, won't contain text nodes.
}
function showAll(){
closeAllInfo();
for (var i = 0; i < numEntries; i++){ entryRows[i].className = 'entry show'; }
}
function closeAllInfo(){
for (var i=0; i < numInfo; i++){
if (infoRows[i].className.indexOf('noshow') ==-1) {
infoRows[i].className = infoRows[i].className + ' noshow';
}
}
}
function clearQS() {
qsfield.value = '';
showAll();
}
function redoQS(){
showAll();
quickSearch(qsfield);
}
function updateSetting(obj){
var option = obj.id;
var checked = obj.value;
switch(option)
{
case "opt_searchAbs":
searchAbstract=!searchAbstract;
redoQS();
break;
case "opt_searchRev":
searchReview=!searchReview;
redoQS();
break;
case "opt_useRegExp":
searchRegExp=!searchRegExp;
redoQS();
break;
case "opt_noAccents":
noSquiggles=!noSquiggles;
loadTableData();
redoQS();
break;
}
}
function initPreferences(){
if(searchAbstract){document.getElementById("opt_searchAbs").checked = true;}
if(searchReview){document.getElementById("opt_searchRev").checked = true;}
if(noSquiggles){document.getElementById("opt_noAccents").checked = true;}
if(searchRegExp){document.getElementById("opt_useRegExp").checked = true;}
if(numAbs==0) {document.getElementById("opt_searchAbs").parentNode.style.display = 'none';}
if(numRev==0) {document.getElementById("opt_searchRev").parentNode.style.display = 'none';}
}
function toggleSettings(){
var togglebutton = document.getElementById('showsettings');
var settings = document.getElementById('settings');
if(settings.className == "hidden"){
settings.className = "show";
togglebutton.innerText = "close settings";
togglebutton.textContent = "close settings";
}else{
settings.className = "hidden";
togglebutton.innerText = "settings...";
togglebutton.textContent = "settings...";
}
}
-->
</script>
<style type="text/css">
body { background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 1.2; padding: 1em; color: #2E2E2E; width: 50em; margin: auto auto; }
form#quicksearch { width: auto; border-style: solid; border-color: gray; border-width: 1px 0px; padding: 0.7em 0.5em; display:none; position:relative; }
span#searchstat {padding-left: 1em;}
div#settings { margin-top:0.7em; /* border-bottom: 1px transparent solid; background-color: #efefef; border: 1px grey solid; */ }
div#settings ul {margin: 0; padding: 0; }
div#settings li {margin: 0; padding: 0 1em 0 0; display: inline; list-style: none; }
div#settings li + li { border-left: 2px #efefef solid; padding-left: 0.5em;}
div#settings input { margin-bottom: 0px;}
div#settings.hidden {display:none;}
#showsettings { border: 1px grey solid; padding: 0 0.5em; float:right; line-height: 1.6em; text-align: right; }
#showsettings:hover { cursor: pointer; }
.invalidsearch { background-color: red; }
input[type="button"] { background-color: #efefef; border: 1px #2E2E2E solid;}
table { border: 1px gray none; width: 100%; empty-cells: show; border-spacing: 0em 0.1em; margin: 1em 0em; }
th, td { border: none; padding: 0.5em; vertical-align: top; text-align: justify; }
td a { color: navy; text-decoration: none; }
td a:hover { text-decoration: underline; }
tr.noshow { display: none;}
tr.highlight td { background-color: #EFEFEF; border-top: 2px #2E2E2E solid; font-weight: bold; }
tr.abstract td, tr.review td, tr.bibtex td { background-color: #EFEFEF; text-align: justify; border-bottom: 2px #2E2E2E solid; }
tr.nextshow td { border-bottom-style: none; }
tr.bibtex pre { width: 100%; overflow: auto; white-space: pre-wrap;}
p.infolinks { margin: 0.3em 0em 0em 0em; padding: 0px; }
@media print {
p.infolinks, #qs_settings, #quicksearch, t.bibtex { display: none !important; }
tr { page-break-inside: avoid; }
}
</style>
</head>
<body>
<form action="" id="quicksearch">
<input type="text" id="qs_field" autocomplete="off" placeholder="Type to search..." /> <input type="button" onclick="clearQS()" value="clear" />
<span id="searchstat">Matching entries: <span id="stat">0</span></span>
<div id="showsettings" onclick="toggleSettings()">settings...</div>
<div id="settings" class="hidden">
<ul>
<li><input type="checkbox" class="search_setting" id="opt_searchAbs" onchange="updateSetting(this)"><label for="opt_searchAbs"> include abstract</label></li>
<li><input type="checkbox" class="search_setting" id="opt_searchRev" onchange="updateSetting(this)"><label for="opt_searchRev"> include review</label></li>
<li><input type="checkbox" class="search_setting" id="opt_useRegExp" onchange="updateSetting(this)"><label for="opt_useRegExp"> use RegExp</label></li>
<li><input type="checkbox" class="search_setting" id="opt_noAccents" onchange="updateSetting(this)"><label for="opt_noAccents"> ignore accents</label></li>
</ul>
</div>
</form>
<table id="qs_table" border="1">
<tbody>
<tr id="10.1007/978-3-030-30796-7_14" class="entry">
<td>Kubitza DO, Böckmann M and Graux D (2019), <i>"SemanGit: A Linked Dataset from git"</i>, In The Semantic Web -- ISWC 2019. Cham , pp. 215-228. Springer International Publishing.
<p class="infolinks">[<a href="javascript:toggleInfo('10.1007/978-3-030-30796-7_14','abstract')">Abstract</a>] [<a href="javascript:toggleInfo('10.1007/978-3-030-30796-7_14','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="abs_10.1007/978-3-030-30796-7_14" class="abstract noshow">
<td><b>Abstract</b>: The growing interest in free and open-source software which occurred over the last decades has accelerated the usage of versioning systems to help developers collaborating together in the same projects. As a consequence, specific tools such as git and specialized open-source on-line platforms gained importance. In this study, we introduce and share SemanGit which provides a resource at the crossroads of both Semantic Web and git web-based version control systems. SemanGit is actually the first collection of linked data extracted from GitHub based on a git ontology we designed and extended to include specific GitHub features. In this article, we present the dataset, describe the extraction process according to the ontology, show some promising analyses of the data and outline how SemanGit could be linked with external datasets or enriched with new sources to allow for more complex analyses.</td>
</tr>
<tr id="bib_10.1007/978-3-030-30796-7_14" class="bibtex">
<td><b>BibTeX</b>:
<pre>
@inproceedings{10.1007/978-3-030-30796-7_14,
author = {Kubitza, Dennis Oliver and Böckmann, Matthias and Graux, Damien},
editor = {Ghidini, Chiara and Hartig, Olaf and Maleshkova, Maria and Svátek, Vojtěch and Cruz, Isabel and Hogan, Aidan and Song, Jie and Lefrançois, Maxime and Gandon, Fabien},
title = {SemanGit: A Linked Dataset from git},
booktitle = {The Semantic Web -- ISWC 2019},
publisher = {Springer International Publishing},
year = {2019},
pages = {215--228}
}
</pre></td>
</tr>
<tr id="Kubitza2019" class="entry">
<td>Kubitza DO, Böckmann M and Graux D (2019), <i>"Towards Semantically Structuring GitHub"</i>
<p class="infolinks"> [<a href="javascript:toggleInfo('Kubitza2019','abstract')">Abstract</a>] [<a href="javascript:toggleInfo('Kubitza2019','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="abs_Kubitza2019" class="abstract noshow">
<td><b>Abstract</b>:
With the recent increase of open-source projects, tools haveemerged to enable developers collaborating. Among these, git has received lots of attention and various on-line platforms have been createdaround this tool, hosting millions of projects. Recently, some of these platforms opened APIs to allow users questioning their public databasesof open-source projects. Despite of the common protocol core, there are for now no common structures someone could use to link those sources of information. To tackle this, we propose the SemanGit ontology, the first ontology dedicated to the git protocol, which also describes GitHub’s features to show how it is extensible to encompass more git-based datasources.</td>
</tr>
<tr id="bib_Kubitza2019" class="bibtex">
<td><b>BibTeX</b>:
<pre>
@article{Kubitza2019,
author = {Kubitza, Dennis Oliver and Böckmann, Matthias and Graux, Damien},
title = {Towards Semantically Structuring GitHub},
url = {http://ceur-ws.org/Vol-2456/paper37.pdf},
year = {2019}
}
</pre></td>
</tr>
</tbody>
</table>
<footer>
<small>Created by <a href="http://jabref.sourceforge.net">JabRef</a> on 27/10/2019.</small>
</footer>
<!-- file generated by JabRef -->
</body>
</html>