From 08591aff5a9b44cdf22f6714646346928f31d84d Mon Sep 17 00:00:00 2001
From: Camil Staps
Date: Fri, 30 Jan 2026 10:06:47 +0100
Subject: Split off linguistics and Clean pages
---
resources/pug/finals/clean.pug | 64 +++++
resources/pug/finals/conferences.pug | 250 -------------------
resources/pug/finals/index.pug | 444 ++--------------------------------
resources/pug/finals/linguistics.pug | 179 ++++++++++++++
resources/pug/finals/publications.pug | 89 +------
5 files changed, 258 insertions(+), 768 deletions(-)
create mode 100644 resources/pug/finals/clean.pug
delete mode 100644 resources/pug/finals/conferences.pug
create mode 100644 resources/pug/finals/linguistics.pug
(limited to 'resources/pug/finals')
diff --git a/resources/pug/finals/clean.pug b/resources/pug/finals/clean.pug
new file mode 100644
index 0000000..7dbeee0
--- /dev/null
+++ b/resources/pug/finals/clean.pug
@@ -0,0 +1,64 @@
+extends /layout-main.pug
+
+block set_page
+ - let page = 'clean.html'
+
+block page
+ .container
+ section
+ p
+ | #[a(href="https://clean-lang.org", target="_blank") Clean] is a functional programming language, similar to Haskell.
+ | I have been actively involved with the development of Clean and its ecosystem since 2015.
+ | Here are some of my projects:
+
+ table.main_table
+ tr
+ td: a(href="https://clean-and-itasks.gitlab.io/nitrile") Nitrile
+ td A package manager and build tool.
+ tr
+ td: a(href="https://cloogle.org") Cloogle
+ td A search engine with type search capability.
+ tr
+ td: a(href="https://gitlab.com/clean-and-itasks/abc-interpreter") ABC Interpreter
+ td
+ | A sandboxed Clean runtime, enabling seamless interoperability with a Clean host.
+ | When used in the browser this allows programmers to write a full-stack application entirely in Clean.
+ tr
+ td: a(href="https://gitlab.com/clean-and-itasks/clean-llvm") Clean-LLVM
+ td A new compiler backend using LLVM.
+
+ p ... and more: see #[a(href="https://gitlab.com/users/camilstaps/projects", target="_blank") GitLab].
+
+ section
+ p
+ | My BSc and MSc theses were also on Clean.
+ | The latter was published at IFL:
+
+ table.main_table.publications
+ tr
+ td 2019
+ +pub(2019, 'Lazy interworking of compiled and interpreted code for sandboxing and distributed systems')(authors='Staps, Camil, John van Groningen & Rinus Plasmeijer', booktitle='Implementation and Application of Functional Languages (IFL \'19), September 25–27, 2019, Singapore, Singapore', editors='Jurriën Stutterheim & Wei Ngan Chin', doi='10.1145/3412932.3412941', oa, type='chapter')
+ tr
+ td
+ +pub(2019, 'Lazy interworking of compiled and interpreted code for sandboxing and distributed systems')(misc='Radboud University Nijmegen MSc. thesis', url='https://www.ru.nl/publish/pages/769526/thesis_1.pdf', oa, type='master-thesis')
+ tr
+ td 2017
+ +pub(2017, 'Code generation for the Thumb-2 instruction set')(misc='Radboud University Nijmegen BSc. thesis', url='https://cs.ru.nl/bachelorscripties/2017/Camil_Staps___4498062___Code-generation-for-the-Thumb-2-instruction-set.pdf', oa, type='bachelor-thesis')
+
+ section
+ p
+ | And finally some presentations on Clean:
+
+ table.main_table.presentations
+ tr
+ td 2020
+ td Jan 10, #[a(href="https://sites.google.com/view/nl-fp-day-2020/home", title="Dutch Functional Programming Day", target="_blank") NL-FP day]
+ td With John van Groningen and Rinus Plasmeijer. Lazy interworking of compiled and interpreted code.
+ tr
+ td 2019
+ td Sep 27, #[a(href="https://web.archive.org/web/20201201105043/http://2019.iflconference.org/", title="Implementation and application of Functional Languages", target="_blank") IFL31]
+ td By Rinus Plasmeijer, with John van Groningen. Lazy interworking of compiled and interpreted code for sandboxing and distributed systems.
+ tr
+ td 2018
+ td Jan 5, #[a(href="http://clean.cs.ru.nl/NL-FP_dag_2018", title="Dutch Functional Programming Day", target="_blank") NL-FP day]
+ td #[a(href="https://cloogle.org", target="_blank") Cloogle]: a programming language search engine and its applications (#[a(href="https://clean.cs.ru.nl/NL-FP_dag_2018#Camil_Staps_-_Cloogle:_a_programming_language_search_engine_and_its_applications", target="_blank") abstract & slides]).
diff --git a/resources/pug/finals/conferences.pug b/resources/pug/finals/conferences.pug
deleted file mode 100644
index 498f137..0000000
--- a/resources/pug/finals/conferences.pug
+++ /dev/null
@@ -1,250 +0,0 @@
-extends /layout.pug
-
-block extra_head
- style.
- table.conferences tr.year {
- border-color: black;
- border-style: solid;
- border-width: 1px 0 0 0;
- }
-
- table.conferences tr.spacer {
- height: .8ex;
- }
-
- table.conferences tr.year td {
- padding-bottom: .4ex;
- }
-
- table.conferences tr.entry {
- color: gray;
- }
-
- table.conferences td, table.conferences th {
- white-space: nowrap;
- }
-
- table.conferences td:last-child {
- white-space: normal;
- }
-
- table.conferences i.fas, table.conferences i.fab {
- margin-right: .2ex;
- }
-
-block titleContainer
-
-block content
- -
- const BIKE_CARBON_FOOTPRINT_KM = 30;
- const DOMESTIC_FLIGHT_THRESHOLD = 500;
-
- h1
- a(href='/') #[i.fas.fa-arrow-circle-left]
- | Visited conferences
-
- div.alert.alert-info
- p.
- This page gives an overview of the conferences, workshops, and summer schools I have visited together with the #[strong travel carbon footprint].
- The #[strong accomodation] I used is also listed, but not included in the carbon footprint.
- The calculation is based on averages from #[a.alert-link(href='https://ourworldindata.org/travel-carbon-footprint', target='_blank') Our World in Data].
-
- p.
- For #[strong biking], I counted 30 g CO#[sub 2] / km as a rough estimate based on my diet.
- #[strong Flights] shorter than 500km are counted as 'domestic' (255 g / km), otherwise they are counted as short/long-haul (averaged on 153 g / km).
- #[strong Trains] in the Netherlands probably emit less than the estimate from Our World in Data because #[a.alert-link(href='https://www.ns.nl/over-ns/duurzaamheid/fossielvrij', target='_blank') the NS runs on wind energy].
-
- p.
- The carbon footprint per capita of the Netherlands was #[strong 9.66] t in 2017 (26,448 g / day), according to #[a.alert-link(href='https://ourworldindata.org/co2/country/netherlands?country=NLD~DEU~DNK~SWE~FRA~BEL', target='_blank') Our World in Data].
- The global average was #[strong 4.79] t in 2016 (13,114 g / day), according to #[a.alert-link(href='https://www.worldometers.info/co2-emissions/co2-emissions-per-capita/', target='_blank') Worldometer].
-
- p.
- Transport, aviation, and shipping #[a.alert-link(href='https://ourworldindata.org/grapher/ghg-emissions-by-sector?time=latest&country=~NLD', target='_blank') make up 34% of emissions in the Netherlands].
- For the average Dutch person this is #[strong 3.28] t per year or #[strong 8,992] g per day (but note that this includes more than personal travel).
- Worldwide, we have #[a.alert-link(href='https://ourworldindata.org/emissions-by-sector#transport-16-2', target='_blank') 16.2% of emissions from transport], which makes this figure #[strong 0.78] t per year or #[strong 2,125] g per day per capita.
-
- p.
- Please let me know if you think some of the calculations can be improved!
-
- -
- // Accepts "Y-M-D to [[Y-]M-]D", i.e. you can leave out repeated parts in
- // the second date. "2019-7-8 to 10" means "2019-7-8 to 2019-7-10".
- // You can also give only one date.
- function parse_date_range(s) {
- s = s.split(' to ').map(d => d.split('-'));
-
- let from = {year: s[0][0], month: s[0][1], day: s[0][2]};
-
- // If only day or month-day is given in the second date, add year-month
- // or year from the first date.
- let to;
- if (s.length == 1)
- to = from;
- else if (s[1].length == 1)
- to = {year: from.year, month: from.month, day: s[1][0]};
- else if (s[1].length == 2)
- to = {year: from.year, month: s[1][0], day: s[1][1]};
- else
- to = {year: s[1][0], month: s[1][1], day: s[1][2]};
-
- return {
- from: new Date(from.year, from.month-1, from.day),
- to: new Date(to.year, to.month-1, to.day)
- };
- }
-
- function nr_of_days(conf) {
- return 1 + (conf.to - conf.from) / 24 / 3600 / 1000;
- }
-
- // Computes footprint in grams CO2, according to
- // https://ourworldindata.org/travel-carbon-footprint.
- // See the explanation in the paragraph at the top of the page.
- function compute_carbon_footprint(conf) {
- let footprint = 0;
-
- if (conf.bike)
- footprint += BIKE_CARBON_FOOTPRINT_KM * conf.bike;
- if (conf.ferry)
- footprint += 19 * conf.ferry;
- if (conf.plane)
- footprint += (conf.plane < DOMESTIC_FLIGHT_THRESHOLD ? 255 : 153) * conf.plane;
- if (conf.train)
- footprint += 41 * conf.train;
-
- return footprint * (conf.multiplier || 2);
- }
-
- function year_summary(conferences, year) {
- conferences = conferences.filter(c => c.from.getFullYear() == year);
-
- let summary = {
- conferences: conferences.length,
- total_days: Math.round(conferences.map(nr_of_days).reduce((x,y) => x + y, 0)),
- total_footprint: conferences.map(compute_carbon_footprint).reduce((x,y) => x + y, 0),
- };
- summary.total_footprint_percentage = Math.round(100 * summary.total_footprint / 3284400);
- summary.total_footprint_per_day = summary.total_footprint / summary.total_days;
-
- return summary;
- }
-
- let conferences = [];
-
- mixin conf(dates, location, distance, shorttitle, title)
- -
- let conf = parse_date_range(dates);
- conf.location = location;
- conf.distance = distance;
- conf.shorttitle = shorttitle;
- conf.title = title || shorttitle;
-
- Object.assign(conf, attributes);
-
- conf.footprint = compute_carbon_footprint(conf);
-
- conferences.push(conf);
-
- mixin listconferences()
- -
- conferences.sort((x,y) => y.from - x.from || y.to - x.to);
- let last_year = null;
-
- table.conferences
- thead
- tr
- th Year
- th Month
- th Location
- th Travel modes
- th(colspan=2) Carbon footprint (g CO#[sub 2])
- th Accomodation
- th Title
-
- - for (const conf of conferences)
- if last_year != conf.from.getFullYear()
- - last_year = conf.from.getFullYear();
- - let summary = year_summary(conferences, last_year);
- tr.spacer
- tr.year
- td= conf.from.getFullYear()
- td(colspan=7).
- #[strong= summary.conferences] conference#{summary.conferences == 1 ? '' : 's'}
- over #[strong= summary.total_days] day#{summary.total_days == 1 ? '' : 's'},
- for a total of #[strong= (summary.total_footprint).toLocaleString('en')] g CO#[sub 2]
- (#{summary.total_footprint_percentage.toLocaleString('en')}% of the yearly Dutch average),
- averaging #[strong= (summary.total_footprint_per_day).toLocaleString('en', {maximumFractionDigits: 0})] g CO#[sub 2] / day.
-
- tr.entry
- td
-
- td(title!=conf.from.toDateString() + ' to ' + conf.to.toDateString())
- = conf.from.toLocaleString('default', {month: 'short'})
- if conf.from.getMonth() != conf.to.getMonth()
- | –
- = conf.to.toLocaleString('default', {month: 'short'})
-
- td
- = conf.location
- if conf.distance
- = ' (' + (conf.distance).toLocaleString('en') + 'km)'
-
- td
- if conf.bike
- i.fas.fa-bicycle(alt='Bike', title!='Bike: ' + conf.bike + 'km one-way')
- if conf.ferry
- i.fas.fa-ship(alt='Ferry', title!='Ferry: ' + conf.ferry + 'km one-way')
- if conf.train
- i.fas.fa-train(alt='Train', title!='Train: ' + conf.train + 'km one-way')
- if conf.plane
- i.fas.fa-plane(alt='Plane', title!='Plane: ' + conf.plane + 'km one-way')
-
- td.text-right= (conf.footprint).toLocaleString('en')
-
- td.text-right= (conf.footprint / nr_of_days(conf)).toLocaleString('en', {maximumFractionDigits: 0}) + ' / day'
-
- td
- if conf.airbnb
- i.fab.fa-airbnb(alt='Airbnb', title='Airbnb')
- if conf.hotel
- i.fas.fa-hotel(alt='Hotel', title='Hotel')
- if conf.friendstay
- i.fas.fa-home(alt='With a friend', title='With a friend')
-
- td
- a(href!=conf.url, target='_blank', title!=conf.title)!= conf.shorttitle
-
- +conf('2017-1-6', 'Nijmegen', 45, 'NL-FP Day', 'Dutch Functional Programming Day')(train=40, url='https://clean.cs.ru.nl/NL-FP_dag_2017')
- +conf('2017-7-10 to 21', 'Leiden', 61, 'Summer School in Languages and Linguistics', 'Leiden Summer School in Languages and Linguistics')(train=75, multiplier=20, url='https://www.universiteitleiden.nl/en/education/study-programmes/summer-schools/summer-school-in-languages-and-linguistics')
-
- +conf('2018-1-5', 'Apeldoorn', 41, 'NL-FP Day', 'Dutch Functional Programming Day')(train=61, url='https://clean.cs.ru.nl/NL-FP_dag_2018')
- +conf('2018-1-26', 'Nijmegen', 0, 'CLIN', 'Computational Linguistics in the Netherlands')(url='https://clin28.cls.ru.nl/')
-
- +conf('2019-7-8 to 10', 'Cambridge', 393, 'BHLAP', 'Biblical & Rabbinic Hebrew: New Perspectives in Philology & Linguistics')(bike=305, ferry=200, airbnb, url='https://www.ames.cam.ac.uk/whats-on/events-archive/biblical-rabinic-hebrew-conference')
- +conf('2019-10-7 to 8', 'Utrecht', 59, 'CLSoR', 'Workshop on Cross-Linguistic Semantics of Reciprocals')(train=72, friendstay, url='https://rocky.sites.uu.nl/workshop-on-cross-linguistic-semantics-of-reciprocals/')
-
- +conf('2020-1-10', 'Amsterdam', 88, 'NL-FP Day', 'Dutch Functional Programming Day')(train=100, url='https://sites.google.com/view/nl-fp-day-2020/home')
- +conf('2020-3-31', 'Online', 0, '#SemiticsTwitterCoronaConference')(url='https://www.academia.edu/42297049/')
- +conf('2020-10-11', 'Online', 0, 'Syntax Workshop')(url='https://sites.google.com/view/syntaxworkshop')
- +conf('2020-11-29 to 12-11', 'Online', 0, 'SBL Annual', 'SBL Annual Meeting')(url='https://www.sbl-site.org/meetings/Congresses_Abstracts.aspx?MeetingId=37')
-
- +conf('2021-10-25 to 11-22', 'Online', 0, 'ETT', 'Emerging Topics in Typology')(url='https://www2.helsinki.fi/en/conferences/emerging-topics-in-typology')
-
- +conf('2022-01-12 to 14', 'Online', 0, 'AIL2', 'Agency and Intentions in Language')(url='https://ail-workshop.github.io/AIL2-Workshop/')
- +conf('2022-08-24 to 27', 'Bucharest', 1700, 'SLE 2022', 'Societas Linguistica Europaea')(train=107, plane=1800, airbnb, url='https://societaslinguistica.eu/sle2022/')
- +conf('2022-11-19 to 22', 'Denver', 7840, 'SBL 2022', 'Society of Biblical Literature')(train=107, plane=7748, hotel, url='https://www.sbl-site.org/meetings/AnnualMeeting.aspx')
- +conf('2022-12-8 to 9', 'Tilburg', 62, 'CogLing Days 9', 'CogLing Days 9')(train=68, multiplier=4, url='https://benecla.com/')
-
- +conf('2023-7-10 to 21', 'Leiden', 100, 'Summer School in Languages and Linguistics', 'Leiden Summer School in Languages and Linguistics')(train=115, multiplier=20, url='https://www.universiteitleiden.nl/en/education/study-programmes/summer-schools/summer-school-in-languages-and-linguistics')
- +conf('2023-10-5 to 6', 'Brussels', 174, 'BCGL16', 'Brussels Conference on Generative Linguistics 16')(train=174, airbnb, url='https://www.crissp.be/bcgl-16-the-morphosyntax-of-speaker-and-hearer/')
- +conf('2023-10-11 to 13', 'Nice', 1100, 'SPE12/OASIS3', 'Semantics and Philosophy in Europe 12 / Ontology As Structured by the Interfaces with Semantics 3')(train=1100, airbnb, url='https://spe-uca.sciencesconf.org/')
-
- +conf('2024-2-2', 'Utrecht', 59, 'GTD 2024', 'Grote Taaldag')(train=72, friendstay, url='https://anela.nl/activiteiten/grote-taaldag/')
- +conf('2024-10-24 to 25', 'Online', 0, 'Puzzles of Agreement')(url='https://sites.google.com/view/puzzlesofagreement/')
-
- +conf('2025-1-31', 'Utrecht', 59, 'GTD 2025', 'Grote Taaldag')(train=72, friendstay, url='https://anela.nl/activiteiten/grote-taaldag/')
- +conf('2025-2-8 to 9', 'Online', 0, 'IcoSem3', 'Iconicity Seminar 3')(url='https://ianjoo.github.io/icosem/3.html')
- +conf('2025-8-26 to 29', 'Bordeaux', 912, 'SLE 2025', 'Societas Linguistica Europaea')(train=1050, hotel, url='https://societaslinguistica.eu/sle2025/')
- +conf('2025-11-7', 'Amsterdam', 88, 'CLABH', 'Cognitive Linguistic Approaches to Biblical Hebrew')(train=100, url='https://etcbc.nl/bible/cognitive-linguistic-approaches-to-biblical-hebrew-hybrid-expert-meeting-7-november-2025/')
-
- +listconferences()
diff --git a/resources/pug/finals/index.pug b/resources/pug/finals/index.pug
index 72bb56e..5f822c9 100644
--- a/resources/pug/finals/index.pug
+++ b/resources/pug/finals/index.pug
@@ -1,436 +1,20 @@
-extends /layout.pug
+extends /layout-main.pug
-block extra_head
- meta(name='description', content='PhD candidate in linguistics, representation of agency in language using spatial relations. I do theoretical research and apply it to Biblical Hebrew.')
-
-block titleContainer
-
-block append js
- script(src='/assets/js/bootstrap.min.js')
-
- script new bootstrap.ScrollSpy(document.body, {target: '#sticky-nav'});
-
-block content
- #sticky-nav
- ul.nav.nav-pills
- li.nav-item(role='presentation') #[a.nav-link(href='#introduction') Introduction]
- li.nav-item(role='presentation') #[a.nav-link(href='#publications') Publications]
- li.nav-item(role='presentation') #[a.nav-link(href='#talks') Talks]
- li.nav-item(role='presentation') #[a.nav-link(href='#service-outreach') Service & outreach]
- li.nav-item(role='presentation') #[a.nav-link(href='#statistics') Statistics]
- li.nav-item(role='presentation') #[a.nav-link(href='#projects') Software projects]
- li.nav-item(role='presentation') #[a.nav-link(href='#teaching') Teaching]
- li.nav-item(role='presentation') #[a.nav-link(href='#grants') Grants]
- li.nav-item(role='presentation') #[a.nav-link(href='#employment') Employment]
- li.nav-item(role='presentation') #[a.nav-link(href='#education') Education]
-
- .container#content
- header#introduction
- div
- img#profile(alt="Camil Staps", style="vertical-align:bottom;", src="/assets/img/profile.jpg", width="170")
- div#basicinfo(style="display:table-cell;vertical-align:bottom;")
- h1 Camil Staps
- p.text-muted
- span [kaˈmil stɑps]
- span.opt-break he/his
- br
- span.tt.obfuscate.wrap-anywhere
- | info@c
- span dummy
- | amilst
- span dummy
- | aps.nl
- p(style="margin-bottom:1em;")
- a(href="https://leidenuni.academia.edu/CamilStaps")
- i.ai.ai-lg.ai-academia(title="Academia.edu")
- |
- a(href="https://orcid.org/0000-0003-1164-6838")
- i.ai.ai-lg.ai-orcid(title="ORCiD")
- |
- a(href="https://gitlab.com/camilstaps")
- i.fab.fa-lg.fa-gitlab(title="GitLab")
- |
- a(href="https://github.com/camilstaps")
- i.fab.fa-lg.fa-github(title="GitHub")
- |
- a(href="https://nl.linkedin.com/in/camilstaps")
- i.fab.fa-lg.fa-linkedin(title="LinkedIn")
+block set_page
+ - let page = '/'
+block page
+ .container
section
- p.larger#lead
- | I am a linguist, broadly interested in what language can tell us about human cognition.
- | I am currently working as a postdoctoral researcher at the #[a(href="https://leibniz-zas.de", target="_blank") Leibniz-Zentrum Allgemeine Sprachwissenschaft].
p.larger
- | The Bigger Question I aim to address is how abstract concepts like causation and evidentiality are represented in the mind.
- | In particular, I study the relation between spatial and non-spatial meanings of prepositions, demonstratives, and other function words.
- | I defended my #[a(href='#publications') doctoral dissertation] in June 2024.
-
- section#publications
- h2 Publications
- mixin pub(year, title)
- if attributes.lingbuzz
- - attributes.url = 'https://lingbuzz.net/lingbuzz/' + attributes.lingbuzz
- - attributes.oa = true
- td.icon
- if attributes.type
- if attributes.type == 'phd-thesis'
- i.fa.fa-graduation-cap(title="PhD thesis")
- else if attributes.type == 'master-thesis'
- i.fa.fa-graduation-cap(title="Master thesis")
- else if attributes.type == 'bachelor-thesis'
- i.fa.fa-graduation-cap(title="Bachelor thesis")
- else if attributes.type == 'review'
- i.far.fa-comment(title="Book review")
- else if attributes.type == 'chapter'
- i.fa.fa-book-open(title="Book chapter")
- else
- - throw 'pub: unknown type'
- else
- i.far.fa-file-lines(title="Journal article")
- td.icon
- if attributes.oa
- if attributes.url
- - var oaurl = attributes.url
- else if attributes.doi
- - var oaurl = 'https://doi.org/'+attributes.doi
- else
- - throw 'pub: oa set but no doi or url'
- a.oa(href!=oaurl, target='_blank')
- i.ai.ai-lg.ai-open-access(title="Open Access")
-
- td
- p
- if !attributes.authors
- - attributes.authors = 'Staps, Camil'
- | !{attributes.authors}. #{year}.
- |
- if attributes.url
- a(href!=attributes.url, target='_blank')!= title
- else if attributes.publisher && !attributes.pages
- i!= title
- else
- | !{title}
- |
- if attributes.journal
- |. !{attributes.prejournal}#[em!=attributes.journal]
- if attributes.volume
- | #{attributes.volume}
- if attributes.issue
- | (#{attributes.issue})
- else if attributes.booktitle
- | . In !{attributes.editors} (eds.), #[em!=attributes.booktitle]
- else if attributes.misc
- | . #{attributes.misc}
- if attributes.pages
- - attributes.pages = attributes.pages.replace('-', '–')
- if attributes.journal
- | :!{attributes.pages}
- else
- | , !{attributes.pages}
- | .
- if attributes.address
- | #{attributes.address}:
- if attributes.publisher
- | #{attributes.publisher}.
- if attributes.doi
- | #[span.sc doi]:
- - var doiurl = 'https://doi.org/'+attributes.doi
- a(href!=doiurl, target='_blank')!= attributes.doi
- | .
- if attributes.errata
- | (There are #[a(href!=attributes.errata) errata].)
-
- mixin review(year, author, title)
- - attributes.type = 'review'
- +pub(year, 'Review of: ' + author + ', ' + title)&attributes(attributes)
-
- table.main_table.publications
- tr
- td In preparation
- +pub('In preparation', 'Complementation and Common Ground: Discursive effects in Biblical Hebrew')(lingbuzz='007711')
- tr
- td
- +pub('In preparation', 'Overlap and countability')(authors='Rooryck, Johan & Camil Staps', lingbuzz='009490')
- tr
- td 2026
- +review(2024, 'Grace J. Park', 'Focus Construction with kî ̓im in Biblical Hebrew')(journal='Bibliotheca Orientalis', volume=81, issue='5/6', pages='510-515', url='assets/pdf/bior2026.pdf')
- tr
- td 2025
- +pub(2025, 'Iconic features in nominal reduplication')(journal='Linguistic Typology', doi='10.1515/lingty-2024-0042', oa)
- tr
- td
- +review(2025, 'Alexandra Y. Aikhenvald', 'A guide to gender and classifiers')(journal='LINGUIST List', volume=36, issue=3268, url='https://linguistlist.org/issues/36/3268/', oa)
- tr
- td 2024
- +pub(2024, 'The persistence of space: Formalizing the polysemy of spatial relations in functional elements')(misc='Leiden University dissertation', address='Amsterdam', publisher='LOT', doi='10.48273/LOT0673', oa, errata='/dissertation-errata.html', type='phd-thesis')
- tr
- td
- +pub(2024, 'Large Language Models and Biblical Hebrew: Limitations, pitfalls, opportunities')(journal='HIPHIL Novum', volume=9, issue=1, pages='46-55', doi='10.7146/hn.v9i1.144177', oa)
- tr
- td
- +pub(2024, 'Semantic properties of prepositions: The distinction between causal min ‘from’ and bə ‘in’')(authors='Staps, Camil & Martijn Beukenhorst', journal='Brill\'s Journal of Afroasiatic Languages and Linguistics', volume=16, issue=2, pages='217-250', doi='10.1163/18776930-01602002', oa)
- tr
- td
- +pub(2024, 'Formalizing spatial-causal polysemy of Agent prepositions')(authors='Staps, Camil & Johan Rooryck', journal='Semantics & Pragmatics', volume=17, issue=4, pages='1-47', doi='10.3765/sp.17.4', oa)
- tr
- td 2023
- +pub(2023, 'The interpretation of [+distal] in demonstratives and complementizers')(authors='Staps, Camil & Johan Rooryck', journal='Linguistics', volume=61, issue=5, pages='1195-1231', doi='10.1515/ling-2022-0178', oa)
- tr
- td 2022
- +pub(2022, 'Voice, discourse prominence, and aspect: The niphal and passive qal of yālad')(booktitle='Where is the way to the dwelling of light? Studies in Genesis, Job and linguistics in honor of Ellen van Wolde', editors='Pierre Van Hecke & Hanneke van Loon', pages='387-408', address='Leiden', publisher='Brill', doi='10.1163/9789004536296_020', url='https://hdl.handle.net/1887/3641662', oa, type='chapter')
- tr
- td
- +pub(2022, 'Lip̄nē ‘in the face of’: A Locative preposition with a threatening connotation')(journal='Journal of Hebrew Scriptures', volume=22, issue=1, pages='1-24', doi='10.5508/jhs29582', oa)
- tr
- td 2021
- +review(2021, 'Peter Bekins', 'Inscriptions from the world of the Bible: A reader and introduction to Old Northwest Semitic')(journal='Bibliotheca Orientalis', volume=78, issue='5/6', pages='723-726', url='https://hdl.handle.net/1887/3641664', oa)
- tr
- td
- +review(2021, 'Margaret Winters', 'Historical linguistics')(journal='LINGUIST List', volume=32, issue=1438, url='https://linguistlist.org/issues/32/32-1438/', oa)
- tr
- td 2020
- +pub(2020, '“When dust was poured out”: Creation in Job 38.36–38')(journal='Journal for the Study of the Old Testament', volume=44, issue=3, pages='456-471', doi='10.1177/0309089219862828', oa)
- tr
- td
- +pub(2020, 'Prepositions and the grammaticalization of Ancient Hebrew bipartite reciprocal markers')(journal='Journal of Semitic Studies', volume=65, issue=1, pages='61-84', doi='10.1093/jss/fgz050', oa)
- tr
- td
- +review(2020, 'Elitzur A. Bar-Asher Siegal', 'The NP-strategy for expressing reciprocity')(journal='Bibliotheca Orientalis', volume=77, issue='3/4', pages='318-322', url='https://hdl.handle.net/1887/3142525', oa)
- tr
- td 2019
- +pub(2019, 'Lazy interworking of compiled and interpreted code for sandboxing and distributed systems')(authors='Staps, Camil, John van Groningen & Rinus Plasmeijer', booktitle='Implementation and Application of Functional Languages (IFL \'19), September 25–27, 2019, Singapore, Singapore', editors='Jurriën Stutterheim & Wei Ngan Chin', doi='10.1145/3412932.3412941', oa, type='chapter')
- tr
- td
- +pub(2019, 'Lazy interworking of compiled and interpreted code for sandboxing and distributed systems')(misc='Radboud University Nijmegen MSc. thesis', url='https://www.ru.nl/publish/pages/769526/thesis_1.pdf', oa, type='master-thesis')
- tr
- td
- +pub(2019, 'Tense, aspect and modality in Jewish Palestinian Aramaic')(misc='Leiden University MA. thesis', url='https://hdl.handle.net/1887/77991', oa, type='master-thesis')
- tr
- td 2018
- +pub(2018, 'A case study of reciprocal middles in Biblical Hebrew: The niphal of לחם')(journal='Orientalia', volume=87, issue=2, pages='159-183', url='http://www.academia.edu/37896637')
- tr
- td 2017
- +pub(2017, 'Code generation for the Thumb-2 instruction set')(misc='Radboud University Nijmegen BSc. thesis', url='https://cs.ru.nl/bachelorscripties/2017/Camil_Staps___4498062___Code-generation-for-the-Thumb-2-instruction-set.pdf', oa, type='bachelor-thesis')
-
- section#talks
- h2 Talks
-
- table.main_table.presentations
- //tr
- // td(colspan=3)
- // h4 Upcoming
- //tr
- // td(colspan=3)
- // h4 Past
- tr
- td 2025
- td Feb 9, #[a(href="https://ianjoo.github.io/icosem/3.html", title="Iconicity Seminar", target="_blank") IcoSem3]
- td Iconic features in nominal reduplication (#[a(href="/assets/pdf/icosem2025-abstract.pdf") abstract]; #[a(href="/assets/pdf/icosem2025-slides.pdf") slides]).
- tr
- td
- td Jan 31, #[a(href="https://anela.nl/activiteiten/grote-taaldag/", title="Grote Taaldag / Dutch Annual Linguistics Day", target="_blank") Taaldag]
- td Iconic features in nominal reduplication (#[a(href="/assets/pdf/gtd2025.pdf") slides]).
- tr
- td 2024
- td Feb 2, #[a(href="https://anela.nl/activiteiten/grote-taaldag/", title="Grote Taaldag / Dutch Annual Linguistics Day", target="_blank") Taaldag]
- td With Johan Rooryck. The raadselen/#raadsels ‘riddles’ behind Dutch double plurals (#[a(href="/assets/pdf/gtd2024.pdf") slides]).
- tr
- td 2023
- td Oct 13, #[a(href="https://spe-uca.sciencesconf.org/", title="Semantics and Philosophy in Europe", target="_blank") SPE12/OASIS]
- td With Johan Rooryck. Interpreting [+distal] complementizers as markers of Common Ground (#[a(href="/assets/pdf/spe2023.pdf") slides]; #[a(href="/assets/pdf/spe2023-handout.pdf") handout]).
- tr
- td 2022
- td Dec 9, #[a(href="https://benecla.com/", title="CogLing Days", target="_blank") CogLing Days]
- td With Johan Rooryck. Finite complementizers as demonstratives in the clausal domain (#[a(href="/assets/pdf/coglingdays2022.pdf") slides]; #[a(href="/assets/pdf/coglingdays2022-handout.pdf") handout]).
- tr
- td
- td Nov 21, #[a(href="https://www.sbl-site.org/meetings/AnnualMeeting.aspx", title="Society of Biblical Literature", target="_blank") SBL Annual]
- td With Martijn Beukenhorst. Semantic properties of prepositions: the distinction between causal מן and ב (#[a(href="/assets/pdf/sbl2022.pdf") slides]).
- tr
- td
- td Nov 9, #[a(href="https://bcopley.com/cocoa", title="Converging On Causal Ontology Analyses", target="_blank") COCOA]
- td With Johan Rooryck. Space in the causal chain: The perspective from French and Biblical Hebrew (#[a(href="/assets/pdf/cocoa2022.pdf") handout]).
- tr
- td
- td Aug 25, #[a(href="https://societaslinguistica.eu/sle2022/", title="Societas Linguistica Europaea", target="_blank") SLE2022]
- td With Johan Rooryck. On the demonstratives nature of finite complementizers (#[a(href="/assets/pdf/sle2022.pdf") slides]; #[a(href="/assets/pdf/sle2022-handout.pdf") handout]).
- tr
- td
- td Jan 12, #[a(href="https://ail-workshop.github.io/AIL2-Workshop/", title="Agency and Intentions in Language", target="_blank") AIL2]
- td With Johan Rooryck. French double Agents: a force-theoretic account of #[em de] and #[em par] (#[a(href="/assets/pdf/ail2022.pdf") handout]).
- tr
- td 2020
- td Jan 10, #[a(href="https://sites.google.com/view/nl-fp-day-2020/home", title="Dutch Functional Programming Day", target="_blank") NL-FP day]
- td With John van Groningen and Rinus Plasmeijer. Lazy interworking of compiled and interpreted code.
- tr
- td 2019
- td Sep 27, #[a(href="https://web.archive.org/web/20201201105043/http://2019.iflconference.org/", title="Implementation and application of Functional Languages", target="_blank") IFL31]
- td By Rinus Plasmeijer, with John van Groningen. Lazy interworking of compiled and interpreted code for sandboxing and distributed systems.
- tr
- td 2018
- td Jan 26, #[a(href="http://clin28.cls.ru.nl/", title="Computational Linguistics in the Netherlands", target="_blank") CLIN28]
- td Combining grammatical features for dating texts in small-corpus languages (#[a(href="http://clin28.cls.ru.nl/#abstract-42") abstract & slides]).
- tr
- td
- td Jan 5, #[a(href="http://clean.cs.ru.nl/NL-FP_dag_2018", title="Dutch Functional Programming Day", target="_blank") NL-FP day]
- td #[a(href="https://cloogle.org", target="_blank") Cloogle]: a programming language search engine and its applications (#[a(href="https://clean.cs.ru.nl/NL-FP_dag_2018#Camil_Staps_-_Cloogle:_a_programming_language_search_engine_and_its_applications", target="_blank") abstract & slides]).
-
- section#service-outreach
- h2 Service & outreach
- table.main_table
- tr
- td 2025
- td Reviewer for #[a(href='https://www.mdpi.com/journal/religions', target='_blank') #[i Religions]], #[a(href='https://dgfs.de/en/content/events/annual-conferences', target='_blank') DGfS 2026].
- tr
- td
- td Problem and presentation for the #[a(href='https://linguistikolympiade.de/', target='_blank') Deutsche Linguistik-Olympiade].
- tr
- td 2024–2025
- td Proofreader for #[a(href='https://langsci-press.org/', target='_blank') Language Science Press].
- tr
- td 2024
- td Reviewer for #[a(href='https://www.glossa-journal.org/', target='_blank') #[i Glossa]].
- tr
- td 2023
- td Reviewer for #[a(href='https://www.glossa-journal.org/', target='_blank') #[i Glossa]], #[a(href='https://direct.mit.edu/opmi', target='_blank') #[i Open Mind]], and #[a(href='https://www.thenewscholar.nl/', target='_blank') #[i The New Scholar]].
-
- section#statistics
- h2 Statistics
- p.
- I keep track of #[a(href='/publications.html') time from submission to publication] for my writings,
- as well as #[a(href='/conferences.html') the conferences I visit and how much CO#[sub 2] I emit in doing so].
-
- section#projects
- h2 Software projects
- table.main_table
- tr
- td: a(href="https://gitlab.com/camilstaps/mbqs") Məḇaqqēš
- td A spreadsheet application for scholars of the Hebrew Bible and Biblical Hebrew.
- tr
- td: a(href="https://hebrewtools.org") HebrewTools
- td Several web applications for Biblical Hebrew education (#[a(href="https://github.com/HebrewTools", target="_blank") GitHub]).
- tr
- td: a(href="https://clean-and-itasks.gitlab.io/nitrile") Nitrile
- td A package manager for the functional programming language #[a(href="https://clean-lang.org", target="_blank") Clean].
- tr
- td: a(href="https://cloogle.org") Cloogle
- td A search engine for #[a(href="https://clean-lang.org", target="_blank") Clean] code (#[a(href="https://gitlab.com/cloogle/cloogle-web", target="_blank") GitLab]).
-
- p Find more on #[a(href="https://gitlab.com/camilstaps", target="_blank") GitLab], #[a(href="https://github.com/camilstaps", target="_blank") GitHub], and #[a(href="https://git.camilstaps.nl/", target="_blank") git.camilstaps.nl].
-
- section#teaching
- h2 Teaching
- table.main_table
- tr
- td 2022–2023
- td Hebrew I–II, Radboud University Nijmegen (10 ECTS).
- tr
- td 2021–2022
- td Hebrew I–II, Radboud University Nijmegen (10 ECTS).
- tr
- td 2020–2021
- td Hebrew II, Radboud University Nijmegen (5 ECTS).
- tr
- td
- td Hebrew I–III, Vrije Universiteit Amsterdam (15 ECTS).
- tr
- td 2015–2019
- td.
- Student assistant for various courses in computing science, Radboud University Nijmegen.
- See under #[a(href='#employment') Employment] for a list of courses.
-
- section#grants
- h2 Grants
- table.main_table
- tr
- td 2024–2027
- td #[a(href="https://www.nwo.nl/en/researchprogrammes/rubicon/awarded-grants/awarded-rubicon-grants-2023", target="_blank") NWO Rubicon], €144K (for two years post-doctoral research at ZAS Berlin; grant no. 019.233SG.004).
- tr
- td 2019–2024
- td #[a(href="https://www.nwo.nl/projecten/pgw19015-0", target="_blank") NWO PhDs in the Humanities], €249K (applied for by Holger Gzella; grant no. PGW.19.015).
-
- section#employment
- h2 Employment
- table.main_table
- tr
- td Sep 2024–present
- td Researcher, #[a(href="https://leibniz-zas.de", target="_blank") Leibniz-Zentrum Allgemeine Sprachwissenschaft].
- tr
- td Apr 2024–Aug 2024
- td Compiler engineer, #[a(href="https://tasking.com", target="_blank") TASKING].
- tr
- td Sep 2019–Apr 2024
- td
- | PhD candidate, Leiden University & Radboud University Nijmegen.
- br
- | Supervised by #[a(href="https://www.rooryck.org/", target="_blank") Johan Rooryck] and #[a(href="https://radboud.academia.edu/ellenvanwolde", target="_blank") Ellen van Wolde].
- tr
- td Feb 2023–Jun 2023
- td Lecturer, Radboud University Nijmegen.
- tr
- td Sep 2019–Aug 2021
- td Scientific programmer / software architect, #[a(href="https://top-software.nl", target="_blank") TOP Software].
- tr
- td Feb 2021–Jul 2021
- td Lecturer, Vrije Universiteit Amsterdam.
- tr
- td Sep 2015–Aug 2019
- td
- details
- summary(style='cursor:pointer;') Student assistant, #[a(href="https://www.ru.nl", target="_blank") Radboud University Nijmegen] (click for an overview of activities).
-
- mixin saItem(guide, name)
- | #[a(href=guide, target="_blank")= name],
-
- mixin lastSaItem(guide, name)
- a(href=guide)= name
-
- p 2018–19: work on the #[a(href="http://clean.cs.ru.nl/Clean", target="_blank") Clean] ecosystem
-
- p
- | 2017–18:
- +saItem("https://sis.ru.nl/osiris-student/OnderwijsCatalogusSelect.do?selectie=cursus&collegejaar=2017&cursus=NWI-IBC016", "Combinatorics")
- +lastSaItem("https://sis.ru.nl/osiris-student/OnderwijsCatalogusSelect.do?selectie=cursus&collegejaar=2017&cursus=NWI-IBC015", "Functional Programming for AI")
-
- p
- | 2016–17:
- +saItem("https://studiegids.science.ru.nl/2016/science/prospectus/inf_ba/course/40559/", "Algorithms and Data Structures")
- +saItem("https://studiegids.science.ru.nl/2016/science/course/40511/", "Combinatorics")
- +saItem("https://studiegids.science.ru.nl/2016/en/socsci/course/41452/", "Functional Programming for AI")
- +saItem("https://www.studiegids.science.ru.nl/2016/science/prospectus/inf_ba/course/40568/", "Functional Programming 1")
- +saItem("https://studiegids.science.ru.nl/2016/en/science/course/40564/", "Introduction to Cryptography")
- +lastSaItem("https://studiegids.science.ru.nl/2016/science/prospectus/inf_ba/course/40560/", "Operating Systems")
- p
- | 2015–16:
- +saItem("https://cs.ru.nl/~hubbers/courses/co_1516/", "Combinatorics")
- +saItem("https://studiegids.science.ru.nl/2015/science/prospectus/inf_ba/course/37072/", "Functional Programming 1")
- +saItem("https://studiegids.science.ru.nl/2015/course/37073/", "Functional Programming 2")
- +saItem("https://studiegids.science.ru.nl/2015/science/prospectus/inf_ba/course/37067/", "Introduction to Cryptography")
- +lastSaItem("https://cs.ru.nl/~hubbers/courses/ms_1516/", "Mathematical Structures")
+ | I am a compiler engineer and theoretical linguist.
- tr
- td May 2013–Mar. 2019
- td Owner of ViviSoft.
+ p
+ | As a compiler engineer, I develop software that translates high-level source code to machine-readable instructions.
+ | I have extensive experience developing runtimes for the functional programming language #[a(href='clean.html') Clean],
+ | as well as optimization passes for embedded C compilers.
- section#education
- h2 Education
- table.main_table
- tr
- td 2019–2024
- td
- | PhD. in Linguistics, Leiden University (#[abbr(title="Awarded to ±10% of doctors according to the judgment of the opposition committee") #[em cum laude]]).
- tr
- td 2017–2019
- td
- | Research MA. in #[a(href="https://www.universiteitleiden.nl/en/education/study-programmes/master/classics-and-ancient-civilizations-research/hebrew-and-aramaic-studies-research", target="_blank") Hebrew and Aramaic Studies], Leiden University
- | (#[abbr(title="A weighted average of more than 8/10 points, and a thesis graded with more than 8/10 points") #[em cum laude]]).
- tr
- td 2017–2019
- td
- | MSc. in #[a(href="https://www.ru.nl/english/education/masters/software-science/", target="_blank") Software Science], Radboud University Nijmegen
- | (#[abbr(title="A weighted average of more than 9/10 points") #[em summa cum laude]]).
- tr
- td 2014–2017
- td
- | BSc. in #[a(href="https://www.ru.nl/opleidingen/bachelor/computing-science/", target="_blank") Computing Science], Radboud University Nijmegen
- | (#[abbr(title="A weighted average of more than 8/10 points") #[em cum laude]]).
+ p
+ | As a theoretical linguist, I am broadly interested in what natural language utterances mean, and what this tells us about human cognition.
+ | I have worked on a variety of phenomena, such as Number, reduplication, prepositional polysemy, and grammaticalization.
+ | See #[a(href='linguistics.html') the dedicated page] for more details.
diff --git a/resources/pug/finals/linguistics.pug b/resources/pug/finals/linguistics.pug
new file mode 100644
index 0000000..97010ce
--- /dev/null
+++ b/resources/pug/finals/linguistics.pug
@@ -0,0 +1,179 @@
+extends /layout-main.pug
+
+block set_page
+ - let page = 'linguistics.html'
+
+block page
+ .container
+ section
+ p
+ | As a theoretical linguist, I am broadly interested in what language can tell us about human cognition.
+ | In particular, I study the interaction between the representations of concrete and abstract concepts in the mind.
+ | My earlier work also deals with Biblical Hebrew and the Hebrew Bible.
+
+ div.alert.alert-light
+ | I decided to leave academia in 2026, but may still write something every now and then.
+
+ section
+ h2 Publications
+ table.main_table.publications
+ tr
+ td In preparation
+ +pub('In preparation', 'Complementation and Common Ground: Discursive effects in Biblical Hebrew')(lingbuzz='007711')
+ tr
+ td
+ +pub('In preparation', 'Overlap and countability')(authors='Rooryck, Johan & Camil Staps', lingbuzz='009490')
+ tr
+ td 2026
+ +review(2024, 'Grace J. Park', 'Focus Construction with kî ̓im in Biblical Hebrew')(journal='Bibliotheca Orientalis', volume=81, issue='5/6', pages='510-515', url='assets/pdf/bior2026.pdf')
+ tr
+ td 2025
+ +pub(2025, 'Iconic features in nominal reduplication')(journal='Linguistic Typology', doi='10.1515/lingty-2024-0042', oa)
+ tr
+ td
+ +review(2025, 'Alexandra Y. Aikhenvald', 'A guide to gender and classifiers')(journal='LINGUIST List', volume=36, issue=3268, url='https://linguistlist.org/issues/36/3268/', oa)
+ tr
+ td 2024
+ +pub(2024, 'The persistence of space: Formalizing the polysemy of spatial relations in functional elements')(misc='Leiden University dissertation', address='Amsterdam', publisher='LOT', doi='10.48273/LOT0673', oa, errata='/dissertation-errata.html', type='phd-thesis')
+ tr
+ td
+ +pub(2024, 'Large Language Models and Biblical Hebrew: Limitations, pitfalls, opportunities')(journal='HIPHIL Novum', volume=9, issue=1, pages='46-55', doi='10.7146/hn.v9i1.144177', oa)
+ tr
+ td
+ +pub(2024, 'Semantic properties of prepositions: The distinction between causal min ‘from’ and bə ‘in’')(authors='Staps, Camil & Martijn Beukenhorst', journal='Brill\'s Journal of Afroasiatic Languages and Linguistics', volume=16, issue=2, pages='217-250', doi='10.1163/18776930-01602002', oa)
+ tr
+ td
+ +pub(2024, 'Formalizing spatial-causal polysemy of Agent prepositions')(authors='Staps, Camil & Johan Rooryck', journal='Semantics & Pragmatics', volume=17, issue=4, pages='1-47', doi='10.3765/sp.17.4', oa)
+ tr
+ td 2023
+ +pub(2023, 'The interpretation of [+distal] in demonstratives and complementizers')(authors='Staps, Camil & Johan Rooryck', journal='Linguistics', volume=61, issue=5, pages='1195-1231', doi='10.1515/ling-2022-0178', oa)
+ tr
+ td 2022
+ +pub(2022, 'Voice, discourse prominence, and aspect: The niphal and passive qal of yālad')(booktitle='Where is the way to the dwelling of light? Studies in Genesis, Job and linguistics in honor of Ellen van Wolde', editors='Pierre Van Hecke & Hanneke van Loon', pages='387-408', address='Leiden', publisher='Brill', doi='10.1163/9789004536296_020', url='https://hdl.handle.net/1887/3641662', oa, type='chapter')
+ tr
+ td
+ +pub(2022, 'Lip̄nē ‘in the face of’: A Locative preposition with a threatening connotation')(journal='Journal of Hebrew Scriptures', volume=22, issue=1, pages='1-24', doi='10.5508/jhs29582', oa)
+ tr
+ td 2021
+ +review(2021, 'Peter Bekins', 'Inscriptions from the world of the Bible: A reader and introduction to Old Northwest Semitic')(journal='Bibliotheca Orientalis', volume=78, issue='5/6', pages='723-726', url='https://hdl.handle.net/1887/3641664', oa)
+ tr
+ td
+ +review(2021, 'Margaret Winters', 'Historical linguistics')(journal='LINGUIST List', volume=32, issue=1438, url='https://linguistlist.org/issues/32/32-1438/', oa)
+ tr
+ td 2020
+ +pub(2020, '“When dust was poured out”: Creation in Job 38.36–38')(journal='Journal for the Study of the Old Testament', volume=44, issue=3, pages='456-471', doi='10.1177/0309089219862828', oa)
+ tr
+ td
+ +pub(2020, 'Prepositions and the grammaticalization of Ancient Hebrew bipartite reciprocal markers')(journal='Journal of Semitic Studies', volume=65, issue=1, pages='61-84', doi='10.1093/jss/fgz050', oa)
+ tr
+ td
+ +review(2020, 'Elitzur A. Bar-Asher Siegal', 'The NP-strategy for expressing reciprocity')(journal='Bibliotheca Orientalis', volume=77, issue='3/4', pages='318-322', url='https://hdl.handle.net/1887/3142525', oa)
+ tr
+ td 2019
+ +pub(2019, 'Tense, aspect and modality in Jewish Palestinian Aramaic')(misc='Leiden University MA. thesis', url='https://hdl.handle.net/1887/77991', oa, type='master-thesis')
+ tr
+ td 2018
+ +pub(2018, 'A case study of reciprocal middles in Biblical Hebrew: The niphal of לחם')(journal='Orientalia', volume=87, issue=2, pages='159-183', url='http://www.academia.edu/37896637')
+
+ section
+ h2 Statistics
+ p.
+ #[a(href='/publications.html') Paper processing time by venue].
+
+ section
+ h2 Software projects
+ table.main_table
+ tr
+ td: a(href="https://hebrewtools.org") HebrewTools
+ td Several web applications for Biblical Hebrew education (#[a(href="https://github.com/HebrewTools", target="_blank") GitHub]).
+
+ section
+ h2 Talks
+
+ table.main_table.presentations
+ //tr
+ // td(colspan=3)
+ // h4 Upcoming
+ //tr
+ // td(colspan=3)
+ // h4 Past
+ tr
+ td 2025
+ td Feb 9, #[a(href="https://ianjoo.github.io/icosem/3.html", title="Iconicity Seminar", target="_blank") IcoSem3]
+ td Iconic features in nominal reduplication (#[a(href="/assets/pdf/icosem2025-abstract.pdf") abstract]; #[a(href="/assets/pdf/icosem2025-slides.pdf") slides]).
+ tr
+ td
+ td Jan 31, #[a(href="https://anela.nl/activiteiten/grote-taaldag/", title="Grote Taaldag / Dutch Annual Linguistics Day", target="_blank") Taaldag]
+ td Iconic features in nominal reduplication (#[a(href="/assets/pdf/gtd2025.pdf") slides]).
+ tr
+ td 2024
+ td Feb 2, #[a(href="https://anela.nl/activiteiten/grote-taaldag/", title="Grote Taaldag / Dutch Annual Linguistics Day", target="_blank") Taaldag]
+ td With Johan Rooryck. The raadselen/#raadsels ‘riddles’ behind Dutch double plurals (#[a(href="/assets/pdf/gtd2024.pdf") slides]).
+ tr
+ td 2023
+ td Oct 13, #[a(href="https://spe-uca.sciencesconf.org/", title="Semantics and Philosophy in Europe", target="_blank") SPE12/OASIS]
+ td With Johan Rooryck. Interpreting [+distal] complementizers as markers of Common Ground (#[a(href="/assets/pdf/spe2023.pdf") slides]; #[a(href="/assets/pdf/spe2023-handout.pdf") handout]).
+ tr
+ td 2022
+ td Dec 9, #[a(href="https://benecla.com/", title="CogLing Days", target="_blank") CogLing Days]
+ td With Johan Rooryck. Finite complementizers as demonstratives in the clausal domain (#[a(href="/assets/pdf/coglingdays2022.pdf") slides]; #[a(href="/assets/pdf/coglingdays2022-handout.pdf") handout]).
+ tr
+ td
+ td Nov 21, #[a(href="https://www.sbl-site.org/meetings/AnnualMeeting.aspx", title="Society of Biblical Literature", target="_blank") SBL Annual]
+ td With Martijn Beukenhorst. Semantic properties of prepositions: the distinction between causal מן and ב (#[a(href="/assets/pdf/sbl2022.pdf") slides]).
+ tr
+ td
+ td Nov 9, #[a(href="https://bcopley.com/cocoa", title="Converging On Causal Ontology Analyses", target="_blank") COCOA]
+ td With Johan Rooryck. Space in the causal chain: The perspective from French and Biblical Hebrew (#[a(href="/assets/pdf/cocoa2022.pdf") handout]).
+ tr
+ td
+ td Aug 25, #[a(href="https://societaslinguistica.eu/sle2022/", title="Societas Linguistica Europaea", target="_blank") SLE2022]
+ td With Johan Rooryck. On the demonstratives nature of finite complementizers (#[a(href="/assets/pdf/sle2022.pdf") slides]; #[a(href="/assets/pdf/sle2022-handout.pdf") handout]).
+ tr
+ td
+ td Jan 12, #[a(href="https://ail-workshop.github.io/AIL2-Workshop/", title="Agency and Intentions in Language", target="_blank") AIL2]
+ td With Johan Rooryck. French double Agents: a force-theoretic account of #[em de] and #[em par] (#[a(href="/assets/pdf/ail2022.pdf") handout]).
+ tr
+ td 2018
+ td Jan 26, #[a(href="http://clin28.cls.ru.nl/", title="Computational Linguistics in the Netherlands", target="_blank") CLIN28]
+ td Combining grammatical features for dating texts in small-corpus languages (#[a(href="http://clin28.cls.ru.nl/#abstract-42") abstract & slides]).
+
+ section
+ h2 Service & outreach
+ table.main_table
+ tr
+ td 2025
+ td Reviewer for #[a(href='https://www.mdpi.com/journal/religions', target='_blank') #[i Religions]], #[a(href='https://dgfs.de/en/content/events/annual-conferences', target='_blank') DGfS 2026].
+ tr
+ td
+ td Problem and presentation for the #[a(href='https://linguistikolympiade.de/', target='_blank') Deutsche Linguistik-Olympiade].
+ tr
+ td 2024–2025
+ td Proofreader for #[a(href='https://langsci-press.org/', target='_blank') Language Science Press].
+ tr
+ td 2024
+ td Reviewer for #[a(href='https://www.glossa-journal.org/', target='_blank') #[i Glossa]].
+ tr
+ td 2023
+ td Reviewer for #[a(href='https://www.glossa-journal.org/', target='_blank') #[i Glossa]], #[a(href='https://direct.mit.edu/opmi', target='_blank') #[i Open Mind]], and #[a(href='https://www.thenewscholar.nl/', target='_blank') #[i The New Scholar]].
+
+ section
+ h2 Teaching
+ table.main_table
+ tr
+ td 2022–2023
+ td Hebrew I–II, Radboud University Nijmegen (10 ECTS).
+ tr
+ td 2021–2022
+ td Hebrew I–II, Radboud University Nijmegen (10 ECTS).
+ tr
+ td 2020–2021
+ td Hebrew II, Radboud University Nijmegen (5 ECTS).
+ tr
+ td
+ td Hebrew I–III, Vrije Universiteit Amsterdam (15 ECTS).
+ tr
+ td 2015–2019
+ td.
+ Student assistant for various courses in computing science, Radboud University Nijmegen.
+ See under #[a(href='#employment') Employment] for a list of courses.
diff --git a/resources/pug/finals/publications.pug b/resources/pug/finals/publications.pug
index 86aad1d..8b7e380 100644
--- a/resources/pug/finals/publications.pug
+++ b/resources/pug/finals/publications.pug
@@ -3,11 +3,7 @@ extends /layout.pug
block titleContainer
block content
- h1
- a(href='/') #[i.fas.fa-arrow-circle-left]
- | Publication statistics
-
- h2 Time to publication
+ h1 Time to publication
p.
Inspired by #[a(href='https://mastodon.social/@fussballinguist/111288814708880725', target='_blank') Simon Meier-Vieracker],
@@ -160,86 +156,3 @@ block content
},
series,
});
-
- h2 Time to review
-
- p.
- I also keep track of reviews I have performed for journals.
- The chart below shows how many reviews I have performed/declined for different journals, and how long they took.
- Negative times indicate declined review requests.
-
- #chart-reviews
-
- script.
- function makeSeries(journal, color, data) {
- return {
- name: journal,
- color,
- marker: {
- radius: 10,
- symbol: 'circle',
- },
- data: data.map(entry => ({x: Date.parse(entry[0]), y: entry[1], name: entry[2]})),
- };
- }
-
- Highcharts.chart('chart-reviews', {
- credits: {enabled: false},
- chart: {
- type: 'scatter',
- spacingLeft: 0,
- spacingRight: 0,
- },
- title: null,
- xAxis: [{
- type: 'datetime',
- min: Date.parse('2023-01-01'),
- max: Date.now(),
- labels: {align: 'left', distance: 0, padding: 0},
- crossing: 0,
- tickLength: 0,
- gridLineWidth: 1,
- }],
- yAxis: {
- title: 'days',
- tickInterval: 10
- },
- tooltip: {
- pointFormatter: function(){
- let label = 'Review';
- if (typeof this.name != 'undefined')
- label = `${this.name} reviews`;
- let days = Math.abs(this.y) == 1 ? 'day' : 'days';
- return `${label} ${this.y < 0 ? 'declined' : 'performed'} in ${Math.abs(this.y)} ${days}`;
- },
- },
- series: [
- makeSeries('DGfS (conference)', '#506ba0', [
- ['2025-09-04', 4],
- ['2025-09-04', 7],
- ]),
- makeSeries('Glossa', '#905486', [
- ['2023-03-23', 8],
- ['2024-02-04', 8],
- ['2024-02-17', 5],
- ['2024-07-10', 2],
- ]),
- makeSeries('Lingua', '#fb6032', [
- ['2023-02-22', -1],
- ]),
- makeSeries('Open Mind', '#00aeef', [
- ['2023-07-28', 34],
- ['2023-12-11', 9],
- ]),
- makeSeries('Religions', '#00699e', [
- ['2025-08-29', 3],
- ['2025-10-10', 4],
- ]),
- makeSeries('SLE (conference)', '#8b8baf', [
- ['2026-01-08', 1, 8],
- ]),
- makeSeries('The New Scholar', '#dbbe9e', [
- ['2023-05-05', 1],
- ]),
- ],
- });
--
cgit v1.2.3