-
Notifications
You must be signed in to change notification settings - Fork 5
/
pubs.py
124 lines (111 loc) · 4.46 KB
/
pubs.py
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
#!/usr/bin/python3
# Security conference abbreviations
# booktitle: AsiaCCS
# booktitle: CCS
# booktitle: CODASPY
# booktitle: WOOT
# booktitle: USENIX Security Symposium
# booktitle: NDSS
# booktitle: EuroS&P
# booktitle: USENIX Annual Technical Conference
# booktitle: RTSS
# booktitle: DIMVA
# booktitle: OSDI
# booktitle: ESORICS
# booktitle: IEEE Symposium on Security and Privacy
# check out https://github.com/emeryberger/CSrankings/blob/gh-pages/filter.xq for conference names
CONFERENCES = {
'sys_arch': ['ASPLOS', 'ASPLOS (1)', 'ASPLOS (2)', 'ASPLOS (3)', 'ISCA', 'MICRO', 'MICRO (1)', 'MICRO (2)', 'HPCA'],
'sys_net': ['SIGCOMM', 'NSDI'],
'sys_sec': ['CCS', 'ACM Conference on Computer and Communications Security', 'USENIX Security', 'USENIX Security Symposium', 'NDSS', 'IEEE Symposium on Security and Privacy', 'SP', 'S&P'], # note: SP added temporarily because Oakland'23 booktitle
#'sys_db': ['SIGMOD Conference', 'VLDB', 'PVLDB', 'Proc. VLDB Endow.', 'ICDE', 'PODS'],
'sys_db': ['SIGMOD Conference', 'VLDB', 'PVLDB', 'Proc. VLDB Endow.'],
'sys_design': ['DAC', 'ICCAD'],
'sys_embed': ['EMSOFT', 'RTAS', 'RTSS'],
'sys_hpc': ['HPDC', 'ICS', 'SC'],
'sys_mob': ['MobiSys', 'MobiCom', 'MOBICOM', 'SenSys'],
'sys_mes': ['IMC', 'Internet Measurement Conference', 'Proc. ACM Meas. Anal. Comput. Syst.'],
'sys_os': ['SOSP', 'OSDI', 'EuroSys', 'USENIX Annual Technical Conference', 'USENIX Annual Technical Conference, General Track', 'USENIX ATC', 'USENIX ATC, General Track', 'FAST'],
'sys_pl': ['PLDI', 'POPL', 'ICFP', 'OOPSLA', 'OOPSLA/ECOOP'],
#'sys_se': ['SIGSOFT FSE', 'ESEC/SIGSOFT FSE', 'ICSE', 'ICSE (1)', 'ICSE (2)', 'ASE', 'ISSTA'],
'sys_se': ['SIGSOFT FSE', 'ESEC/SIGSOFT FSE', 'ICSE', 'ICSE (1)', 'ICSE (2)'],
}
CONFERENCES_NUMBER = {
'sys_arch': {},
'sys_net': {},
'sys_sec': {},
'sys_db': {},
'sys_design': {},
'sys_embed': {},
'sys_hpc': {},
'sys_mob': {},
'sys_mes': {},
'sys_os': {},
'sys_pl': {'Proc. ACM Program. Lang.' : ['POPL', 'OOPSLA', 'ICFP']},
'sys_se': {}
}
CONFERENCES_SHORT = {
'sys_arch': ['ASPLOS', 'ISCA', 'MICRO', 'HPCA'],
'sys_net': ['SIGCOMM', 'NSDI'],
'sys_sec': ['ACM CCS', 'USENIX Security', 'NDSS', 'IEEE SSP (Oakland)'],
#'sys_db': ['SIGMOD', 'VLDB', 'ICDE', 'PODS'],
'sys_db': ['SIGMOD', 'VLDB'],
'sys_design': ['DAC', 'ICCAD'],
'sys_embed': ['EMSOFT', 'RTAS', 'RTSS'],
'sys_hpc': ['HPDC', 'ICS', 'SC'],
'sys_mob': ['MobiSys', 'MobiCom', 'SenSys'],
'sys_mes': ['IMC', 'SIGMETRICS'],
'sys_os': ['SOSP', 'OSDI', 'EuroSys', 'USENIX ATC', 'FAST'],
'sys_pl': ['PLDI', 'POPL', 'ICFP', 'OOPSLA'],
#'sys_se': ['FSE', 'ICSE', 'ASE', 'ISSTA'],
'sys_se': ['FSE', 'ICSE'],
}
AREA_TITLES = {
'sys_arch': 'Systems: Architecture',
'sys_net': 'Systems: Networks',
'sys_sec': 'Systems: Security',
'sys_db': 'Systems: Databases',
'sys_design': 'Systems: Design',
'sys_embed': 'Embedded Systems',
'sys_hpc': 'Systems: HPC',
'sys_mob': 'Mobile Systems',
'sys_mes': 'Systems: Measurements',
'sys_os': 'Systems: OS',
'sys_pl': 'Systems: Programming Languages',
'sys_se': 'Systems: Software Engineering',
'sys': 'All Areas'
}
class Pub():
def __init__(self, venue, title, authors, year):
self.venue = venue
self.title = title
self.authors = authors
self.year = year
#print('{} {} {} {}\n'.format(authors, year, venue, title))
class Author():
def __init__(self, name, aux_data):
self.name = name
self.years = {}
self.nr_authors_year = {}
self.venues = []
self.normalized_pubs = {}
self.pubs = {}
self.affiliation, self.homepage, self.scholar = aux_data
def add_norm_area(self, year, fraction):
if not year in self.normalized_pubs:
self.normalized_pubs[year] = 0
self.normalized_pubs[year] += fraction
def add_publication(self, venue, year, title, authors):
if not year in self.years:
self.years[year] = 0
self.nr_authors_year[year] = []
self.pubs[year] = []
self.years[year] += 1
self.nr_authors_year[year].append(len(authors))
self.pubs[year].append(Pub(venue, title, authors, year))
if not venue in self.venues:
self.venues.append(venue)
def get_total(self):
return sum(self.years.values())
if __name__ == '__main__':
print('Nothing to see here, move along...')