Skip to content

Commit ff47195

Browse files
committed
added list of publications and a python script that can fetch new publications from dblp. added a github workflow that will trigger this.
1 parent a5147bb commit ff47195

9 files changed

Lines changed: 1942 additions & 2 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Update publications
2+
3+
on:
4+
schedule:
5+
# Mondays at 04:00 UTC. GitHub may delay scheduled runs under load.
6+
- cron: "0 4 * * 1"
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: write
11+
12+
concurrency:
13+
group: update-publications
14+
cancel-in-progress: false
15+
16+
jobs:
17+
update:
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@v4
21+
22+
- uses: actions/setup-python@v5
23+
with:
24+
python-version: "3.12"
25+
26+
# Needed to read back the manual edits already in _data/publications.yml.
27+
- name: Install dependencies
28+
run: pip install pyyaml
29+
30+
- name: Fetch publications from DBLP
31+
run: python3 scripts/fetch_publications.py
32+
33+
- name: Commit if the list changed
34+
run: |
35+
if git diff --quiet -- _data/publications.yml; then
36+
echo "No new publications."
37+
exit 0
38+
fi
39+
git config user.name "github-actions[bot]"
40+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
41+
git add _data/publications.yml
42+
git commit -m "Update publications from DBLP"
43+
git push

‎README.md‎

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,100 @@ Your content here...
4141

4242
The post will automatically appear on the [/news/](/news/) page. The date in the filename controls the sort order.
4343

44+
45+
## Publications
46+
47+
The list on [/research/publications](/research/publications) is generated from Rafet's DBLP author page, which works as the lab's feed because every lab paper lists him as a co-author. A GitHub Action re-runs `scripts/fetch_publications.py` every Monday and commits `_data/publications.yml` only if something changed, so new papers show up on their own within a week of DBLP indexing them. To pull them in sooner, go to the **Actions** tab -> **Update publications** -> **Run workflow**.
48+
49+
Everything below is done by editing `_data/publications.yml` and committing it to `main`. Your edits are kept on the next refresh, the script merges them back in rather than overwriting the file blindly. Note that YAML comments in that file are *not* preserved, since it gets rewritten on every run.
50+
51+
### Adding a paper
52+
53+
Normally you don't have to: anything on DBLP appears automatically. Only add a paper by hand if DBLP does not index it (a tech report, say). Append an entry with `manual: true` and a `key` of your own that does not look like a DBLP key:
54+
55+
```yaml
56+
- key: "manual/aml/tech-report-2026"
57+
title: "A Paper DBLP Does Not Know About"
58+
authors:
59+
- "Jane Doe"
60+
- "Rafet Sifa"
61+
year: 2026
62+
venue: "AML Lab Technical Report"
63+
type: "inproceedings"
64+
url: "https://example.org/the-paper.pdf"
65+
dblp: ""
66+
manual: true
67+
```
68+
69+
`type:` controls the badge: `inproceedings` or `article` for a normal venue, `preprint`, `book`, or `phdthesis`. The `venue:` string is shown as the blue tag.
70+
71+
### Adding a PhD thesis
72+
73+
Theses always have to be added by hand. A thesis is single-authored, so Rafet is not a co-author and it never shows up in the DBLP feed the rest of the list comes from. Use `type: "phdthesis"` for the **PhD Thesis** badge, and put the awarding university in `venue:`:
74+
75+
```yaml
76+
- key: "manual/thesis/deusser2026"
77+
title: "Hybrid Representation Learning for Information Extraction"
78+
authors:
79+
- "Tobias Deußer"
80+
year: 2026
81+
venue: "University of Bonn"
82+
type: "phdthesis"
83+
url: "https://doi.org/10.48565/bonndoc-823"
84+
dblp: ""
85+
manual: true
86+
```
87+
88+
Prefer the bonndoc DOI for `url:` over the handle, since it is the stable citation target. Leave `dblp: ""` unless the thesis genuinely has a DBLP record. There is no need for a separate `oa_url` here, because the bonndoc record the title already links to *is* the open access version.
89+
90+
### Correcting a paper
91+
92+
If DBLP has something wrong (a mangled title, a bad link), fix the field in place and add `manual: true` to that entry:
93+
94+
```yaml
95+
- key: "conf/exampleconf/authortitle23"
96+
title: "The Correct Title"
97+
...
98+
manual: true
99+
```
100+
101+
That freezes the **whole** entry: it is never overwritten again, and it stays on the page even if DBLP later drops the record. The trade-off is that it also stops receiving legitimate updates, so use it only where DBLP is actually wrong. If a frozen paper is later re-indexed under a new DBLP key — which happens when a preprint gets published — the workflow log warns you, and you will need to update the entry by hand.
102+
103+
### Hiding a superseded preprint
104+
105+
When a preprint is published, the fetch script normally drops the preprint automatically. That only works when both records carry the same title. If the published version renames the paper, both show up and you get the same work listed twice. Set `superseded: true` on the **preprint** to hide it:
106+
107+
```yaml
108+
- key: "journals/corr/abs-2311-15679"
109+
title: "Model-agnostic Body Part Relevance Assessment for Pedestrian Detection"
110+
...
111+
superseded: true
112+
```
113+
114+
The entry stays in the file, so the decision is not quietly re-made the next time DBLP hands the record back, but it no longer appears on the page or in any of the counts. Like `oa_url`, this does not need `manual: true` and does not stop the entry's metadata from refreshing.
115+
116+
### Adding an open access link
117+
118+
Add an `oa_url` pointing at the version in bonndoc or Fraunhofer Publica:
119+
120+
```yaml
121+
- key: "conf/exampleconf/authortitle23"
122+
...
123+
oa_url: "https://bonndoc.ulb.uni-bonn.de/xmlui/handle/20.500.11811/12345"
124+
```
125+
126+
This shows a green **Open Access** badge next to the paper, with the repository named in the tooltip. Do **not** add `manual: true` for this, because `oa_url` is carried over on every refresh on its own, and it follows the paper even if DBLP re-keys it from a preprint to a published record. Adding `manual: true` would needlessly freeze the rest of the metadata as well.
127+
128+
### Running the fetch locally
129+
130+
```bash
131+
pip install pyyaml
132+
python3 scripts/fetch_publications.py
133+
```
134+
135+
This rewrites `_data/publications.yml` in place. The year cut-off and the DBLP author ID are the `START_YEAR` and `DBLP_PID` constants at the top of the script.
136+
137+
44138
## Files
45139

46140
Please *do not* commit files for downloading (like lecture slides or assignments) into this repo. Create a separate repo or use a different hoster for this.

‎_config.yml‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ plugins:
66
- jekyll-paginate
77
paginate: 5
88
paginate_path: "/news/page:num/"
9+
10+
# Every lab paper lists Rafet Sifa as a co-author, so his author pages double as
11+
# the lab's publication feed. See scripts/fetch_publications.py.
12+
dblp_author_url: https://dblp.org/pid/122/7972.html
13+
scholar_author_url: https://scholar.google.com/citations?user=4jBgqpcAAAAJ
914
permalink: /news-entry/:year-:month-:day-:title/
1015
exclude:
1116
- README.md

0 commit comments

Comments
 (0)