# Reproducible science-mapping teaching collection

Retrieved from the official OpenAlex API on 2026-10-15. Metadata is CC0-1.0:
https://help.openalex.org/access/overview/

Twenty deliberately selected real method and software publications support teaching co-citation and title-term co-occurrence. This is not a systematic review or ranking. The CSV identifies every work; works.json retains the exact titles and reference lists used by validation. Full reference lists are retained, but co-citation nodes must belong to the selected twenty-work corpus. No abstracts or paper full text are redistributed. Reference coverage can be incomplete (the frozen Kessler record has only one reference).

## Reproduction

Production analysis baseline: SciMaps revision 9d24f3010cef22ca437686f304186842679a4303. Use the release containing this guide, dataset and ReproducibleBibliometricCaseStudyTest; the fixture and test were added after that baseline. Java 25, Maven and the project's normal installed build prerequisites are required. Run from the repository root after resolving build dependencies:

    mvn -o -q test -Ppublic-site-fast -Dtest=ReproducibleBibliometricCaseStudyTest

This JUnit fixture reads works.json, creates SourceModel/OpenAlexWorkDto records, serves them through a mocked GraphService database boundary, and invokes the real CoCitationAnalysisService and KeywordCoOccurrenceAnalysisService with real KeywordProcessingService/KeywordTermClassifier. Repository and OpenAlex client are mocked. It requires no database or API keys and makes no live metadata requests. Maven's offline option assumes dependencies have already been downloaded; it does not replace initial project setup.

Settings are in manifest.json. Co-citation: papers, resolution 1.0, seed 42, no focal paper, max 1500 nodes/5000 edges. Keywords: Title terms, K-means (3 clusters), minimum frequency 2, minimum co-occurrence 1, quality threshold 1, top 50, no per-node edge cap, isolates hidden, exclude 'between'. This explicit exclusion removes a generic connector which survives the current normalizer. No author keywords or new OpenAlex-generated keywords are used.

The tests check the six downloaded files against SHA256SUMS.txt and compare production output to expected-results.json. Co-citation: 20 nodes, 83 undirected edges; Kessler/Small weight 7, unified mapping/VOSviewer weight 6. Title terms: 20 documents, 4 nodes, 2 edges; science mapping frequency 4, software tools frequency 2, shared-document weight 1. The other edge joins citation (3) and scientific literature (2), weight 1. Minimum co-occurrence 2 produces an empty keyword graph on these titles, which is an intentional documented boundary check.

## Files

- works.json: frozen input projection of OpenAlex metadata.
- collection.csv: identifiers, DOI links, titles and years.
- manifest.json: provenance endpoints, selection criteria and exact settings.
- expected-results.json: complete co-citation edge list and retained title-term evidence.
- analytical-excerpt.svg: accessible diagram of three verified relationships, not an app screenshot.
- SHA256SUMS.txt: SHA-256 digests of the other six files.

## Scope and limitations

The frozen results depend on the selected collection and provider metadata, not the entire literature. They demonstrate relationships, not quality, consensus or research impact. Co-occurrence weight 1 is weak evidence chosen transparently for a small teaching corpus. Graph coordinates, cluster assignments and colors are not asserted. The SVG is an explanatory excerpt and does not represent the actual Sigma.js layout.

For a product walkthrough, create a project, add the DOI records in collection.csv through the supported Sources flow, select the collection and use the documented settings. Live DOI metadata may have changed, so this walkthrough is not guaranteed to reproduce the frozen counts. The downloadable JSON is a developer validation fixture, not a supported production import format. Exact reproduction uses the JUnit fixture above.
