Skip to content

Directory

Alexander Refsum Jensenius edited this page Jul 4, 2026 · 6 revisions

The directory is a Jekyll collection recording people, institutions, and projects associated with MishMash. Entries live under site/_directory/ and are published at clean URLs (/people/…, /institutions/…, /projects/…).

Current scale: 117 people, 36 institutions, 22 projects.

Structure

site/_directory/
├── people/
│   ├── _template/index.md       # Template for new entries
│   └── {slug}/index.md          # One folder per person
├── institutions/
│   ├── _template/index.md
│   └── {slug}/index.md
└── projects/
    └── {slug}/index.md

Each entry is a Markdown file with YAML front matter. Body content is optional.

Published URLs

Type Permalink Legacy redirect
Person /people/{slug}/ /directory/people/{slug}/
Institution /institutions/{slug}/ /directory/institutions/{slug}/
Project /projects/{slug}/

Cross-links

Reference related entries by slug in list fields (people, institutions, projects):

people:
  - alexander-refsum-jensenius
  - eirik-sorbo

Do not use path-style references like /people/alexander-refsum-jensenius/. The validator warns about these; sync_directory_reciprocity.py normalises them on save during the nightly sync.

Links must be bidirectional: if an institution lists a person, that person must list the institution (and likewise for projects).

Person entry (example)

---
type: person
slug: alexander-refsum-jensenius
name: Alexander Refsum Jensenius
position: Professor
institution: university-of-oslo
institutions:
  - university-of-oslo
projects: []
roles:
  - Board Leader
urls:
  nva: https://nva.sikt.no/...
  orcid: https://orcid.org/...
  institutional_website: https://www.uio.no/...
tags: []
search_keywords: []
summary:
layout: person
permalink: /people/alexander-refsum-jensenius/
redirect_from:
  - /directory/people/alexander-refsum-jensenius/
---

Governance roles

The roles field is manually curated and drives filters on /people/network/. Use these canonical labels:

Role Used for
Member Consortium members (not WP leaders)
Work package leader All 21 WP leaders in site/_data/work_packages.yml
Council member Scientific council
Board member, Board Leader Board of directors
Director, Deputy director, Research advisor, Administrative coordinator Centre leadership
Associate member, Affiliate member External stakeholders

Deprecated spellings (Full member, Board Member, Work Package Leader Group member) trigger validator warnings. WP leaders are identified from work_packages.yml, not only from the roles field — every listed WP leader should have Work package leader in roles.

Institution entry (example)

---
type: institution
slug: university-of-oslo
name: University of Oslo
short_name: UiO
people:
  - alexander-refsum-jensenius
projects: []
urls:
  website: https://www.uio.no/english/
  wikipedia: https://en.wikipedia.org/wiki/University_of_Oslo
layout: page
permalink: /institutions/university-of-oslo/
---

Wikidata

python3 scripts/sync_wikidata.py resolves Wikidata QIDs into urls.wikidata — people matched exactly via ORCID (P496), institutions via their English Wikipedia article — and pulls basic institution facts (coordinates, logo, website, inception) into site/_data/wikidata_institutions.yml. Ambiguous ORCID matches (duplicate Wikidata items) are skipped with a warning. Person pages show a Wikidata icon; institution pages link Wikidata next to Wikipedia.

NVA and ORCID sync

Many person fields are refreshed nightly from NVA (and ORCID as fallback) by scripts/enrich_directory_from_nva.py. GitHub Actions workflow: .github/workflows/enrich-directory-people.yml.

Overwritten when urls.nva is set:

  • position, department, institution, institutions, nva_affiliations (active affiliations only)
  • tags, search_keywords, summary, selected_works, other_projects
  • urls.institutional_website, urls.nva, urls.orcid
  • image (portrait download)

Preserved for manual curation:

  • name, title, slug
  • roles, projects, source_mentions
  • Social URLs (github, linkedin, youtube, …)
  • Markdown body

Selected works filtering

selected_works on person profiles excludes:

  • Lectures and conference lectures, media appearances, and letters to the editor
  • Works where the profile holder is listed in NVA as Supervisor, or on theses (master's, PhD, etc.) with any non-author role such as RoleOther

The enrich script scans all NVA results for the person, then keeps the 10 most recent eligible works (not the first 10 in API order).

Other projects

other_projects lists active NVA research projects the person contributes to (excluding MishMash). Ended projects are filtered out during sync.

To add a person: copy site/_directory/people/_template/, set slug, name, and urls.nva or urls.orcid, then run enrich locally or wait for the nightly job.

python3 scripts/enrich_directory_from_nva.py --discover-nva --discover-nva-loose --max-works 10
python3 scripts/enrich_directory_from_nva.py --slug some-person --dry-run

Governance generation

Board, council, and WP leader lists can seed directory entries from organisation pages:

python3 scripts/generate_directory_governance.py

The canonical WP leader membership list lives in site/_data/work_packages.yml (21 members across WP1–WP7).

Validation

python3 scripts/validate_directory.py

Errors (must fix before merge): required fields, slug/folder mismatch, unknown references, broken reciprocity.

Warnings (informational): deprecated or non-standard roles, missing NVA/ORCID (external profiles that won't auto-sync), path-style slug lists, WP leaders missing Work package leader role.

Fix reciprocity automatically:

python3 scripts/sync_directory_reciprocity.py

Tags

Research tags appear in tags and search_keywords on profiles and events. NVA import can introduce spelling variants. Normalise with the tag merge tooling — see Tags and Keywords. The nightly CI runs merge_tags.py after each NVA sync.

People network

/people/network/ visualises connections by institution, tag, or work package.

Role filters:

  • Board — roles containing "Board"
  • Council — roles containing "Council"
  • Members — exact role Member
  • WP Leaders — slugs listed in site/_data/work_packages.yml (all 21)

Tag display groups are defined in site/_data/tag_groups.yml.

Search

Directory entries are indexed in site/search.json with type values person, institution, or project.

Slug rules

Lowercase ASCII letters, digits, and hyphens only. Norwegian characters: æ→ae, ø→oe, å→aa.

Clone this wiki locally