Explore both DWP manuals
The combined Reader brings two captured manuals into the same Explorer:
- DMG — Decision makers’ guide: guidance for DWP decision makers, including legacy benefit rules and labelled historical material.
- ADM — Advice for decision making: a separate manual covering areas including Universal Credit and Personal Independence Payment. A source match alone does not establish which manual or rule applies.
The new entry point is combined/okf-explorer.json. It is additive: the earlier DMG release, source PDFs, extracted pages and historical observations retain their original bytes and identifiers.
The earlier dwp-combined-9b85571294b473b9fe6e candidate retained 20,044 records and 21,202 relationships,
including the 15 explicit qualification-support relationships.
The original eight household dependencies remain, with five housing-cost and
two temporary-residence dependencies added. Their forward label is
authored context requirement and their reverse label is is required context
for. Both directions retain the same model-derived, unreviewed assertion and
source provenance. This is a context requirement, not a finding that a legal
rule applies. Staff 012 and 013 require the household and housing-cost paths;
temporary-residence support remains attached to its own summary.
The learning candidate adds 112 teaching records. Current counts and snapshot identity are generated in the build receipt and coverage report. Current bounded-context and public-browser acceptance are separate from the historical public observations linked below. The 513 source PDFs, 19,090 measured pages and 20 additional selected statutory units are unchanged.
Open the checked public combined Reader and read the dated public verification. It covers three browser engines and the five conceptual facets, while retaining the initial loading timeout and the actual context budget.
The first public Chrome attempt exceeded a five-second test wait during facet loading. Bounded sixty-second waits then passed. The timed reruns reached the end of the narrow-screen journey in 10.59–13.52 seconds, including earlier integrity checks and interactions; these are observations, not cold-cache or service-level guarantees. Load the intended route before the meeting demonstration and let its loading state finish.
What to demonstrate
- Load the combined descriptor in Explorer. The overview identifies 513 captured PDFs and 19,090 measured pages across the two manuals.
- Open Source manual, select ADM, then Keep highlighted. The same selection carries across Reader, Graph and Timeline. The source-manual facet also distinguishes project-authored research.
- Try the benefit, circumstance and topic facets. These are literal mentions in source text. They help find material; they do not say a legal rule applies. Not classified means this limited method found no assignment.
- Search P1001 and open
page/adm/adm-chapter-p1/0002. Check the complete extracted text, source hash and official PDF link at page 2. - Open the Personal Independence Payment concept (
staff-domain/pip) in Graph. Its authored source references join directly to the ADM pages. Page-to-document containment works in both navigation directions while retaining one directed assertion. - In Timeline, switch between Source and Audit date roles. ADM capture dates appear in the audit view. They are not silently used as publication or legal commencement dates.
- In Ask OKF, ask the supplied staff question: “What is the interaction between Child DLA and PIP?” Inspect the concepts, source pages, relationships, requirements and remaining gaps. Open the machine-readable package to see exactly what an AI receives.
DLA means Disability Living Allowance. PIP means Personal Independence Payment. The relationship between the benefits depends on matters such as age, transition rules and jurisdiction. This demonstrator assembles evidence and exposes missing requirements; it does not decide an individual’s entitlement.
What was added
The Reader preserves all 15,404 original DMG record identities and adds every ADM document and page, including empty extractions. Source documents and pages carry their captured classification, official URL, PDF hash, page number and date roles. The captured corpus includes 893 pages without extracted text; these remain accounted for and linked to their PDFs.
The staff semantic overlay supplies additional concepts and source-backed relationships. Existing Reader concept narratives remain visible; a separately labelled Current context definition — unreviewed section shows the definition used by Ask. Authored concept references also become inspectable facet assignments, each retaining its assertion identifier. Mention classifications do not generate legal relationships.
Reader relationships are checked against the existing governed assertion schema. Their evidence wrappers bind the authored provenance object and retain the original PDF or metadata URL and hash separately; a provenance object is not presented as a verbatim PDF quotation. The inherited schema requires a numerical confidence field for model-derived assertions. Its fixed 0.5 compatibility indicator is explicitly uncalibrated: it is not a probability, test score or specialist grade.
The semantic bundle also publishes the same relationships as Linked Data. A direct triple says which subject is related to which object. A reified assertion gives that relationship its own identifier, so its evidence, authority, scope and review status can be inspected. Both forms are generated from one assertion set and checked for agreement. The semantic manifest fingerprints small JSON-LD files and their canonical N-Quads representations; N-Quads is a line-based exchange format for these statements. Each file has its own blank-node scope. Complete source-page text remains in the separately bound Reader records and acquisition files, avoiding another copy in the semantic graph.
The combined Ask corpus keeps the exact original source-record and search shards. Its additive base and manifest are separately bound to this Reader snapshot. Snapshot means a specific set of captured or generated bytes. A hash is a fingerprint used to detect a change in those bytes; it does not prove that a legal interpretation is correct.
Reproduce and check
Use the repository’s locked dependencies:
uv sync --locked
uv run --locked python scripts/build_staff_semantic.py
uv run --locked python scripts/build_combined_reader.py
uv run --locked python scripts/build_combined_reader.py --check
uv run --locked python -m unittest discover -s scripts -p test_combined_reader.py
The build receipt lists input and output hashes. The coverage report gives current counts. Tests check every ADM source page, unchanged DMG identifiers, full-text search beyond display snippets, filter parity, both relationship directions, stable locators, source-date separation, exact Ask source-shard preservation, direct-index validity and semantic triple agreement.
The retained browser checks use Explorer commit
f8daf84a4c04afb4839695d38a97cbf21b0ed0a0. Use that revision when reproducing
these observations. A newer Explorer build is a new observation and must have
its own application fingerprint.
For a browser check, serve that built Explorer checkout, then run:
OKF_EXPLORER_CHECKOUT=/path/to/okf-explorer \
OKF_COMBINED_APP_URL=http://127.0.0.1:8014/explore/ \
OKF_COMBINED_BROWSER=chrome \
OKF_COMBINED_OUTPUT=/tmp/combined-reader-check \
node scripts/check_combined_reader_browser.mjs
The script uses the installed Explorer browser dependencies. Repeat with firefox or webkit when those engines are installed. It fingerprints the application, supplies unchanged local corpus bytes, exercises the actual user interface and saves screenshots, the evidence package and a dated observation. It also repeats Ask at a narrow 390-pixel viewport using keyboard navigation, checks the same context is returned, checks that the page fits horizontally, and runs targeted automated accessibility checks. The keyboard route uses Tab to reach the panel controls and Shift+Tab to return into the opened search panel; the installed macOS WebKit uses Alt+Tab/Alt+Shift+Tab (Option on a Mac), recorded explicitly without changing browser preferences. This local check is distinct from checking a public deployment. No physical mobile device, screen-reader session or assistive-technology user acceptance is claimed.
For a public observation, also set OKF_COMBINED_BUNDLE_URL to the exact
https://raw.githubusercontent.com/chris-page-gov/okf-dwp/<40-character-commit>/combined/okf-explorer.json
address, set OKF_COMBINED_APP_URL to the published Explorer URL, and supply the
expected OKF_COMBINED_APP_MANIFEST_SHA256. Public mode rejects mutable branch
URLs, installs no request interception, and checks each observed corpus response
against the local candidate bytes. It records a separate public observation;
running the local fixture never establishes that the public site works.
Set OKF_COMBINED_OUTPUT to a new, non-existent directory for every public run.
The harness reserves that directory before loading browser dependencies or
launching a browser and rejects an existing directory, file or symlink. This
preserves earlier evidence even if a later run fails part-way through. Local
fixture runs retain their existing output-directory behaviour. The offline
combined tests exercise this guard without launching a browser or using a network.
Boundaries
This remains an independent experimental publication. Source acquisition, navigable relationships, useful context assembly, a model’s answer and specialist legal approval are different claims. The household candidate adds selected dated statutory units as unreviewed machine extractions, with separate official links, source-family filtering and requested-version dates. It does not add tribunal judgments or subscriber-only handbook contents. The older recorded public journeys remain tied to their earlier content version; they do not attest this candidate. Capturing an entire manual does not establish complete semantic modelling or current legal applicability.
Household and statutory candidate
The additive household work retains complete qualifying source pages, including the no-partner heading, household exceptions and dated transitional references. Household evidence expansion explains the scope. Selected statutory evidence explains the legal sources and unresolved dependencies. A statutory unit is one selected section, regulation or schedule paragraph; it is not the complete legislation.
The Source family facet separates DMG, ADM, Legislation and Project-authored material. Statutory records keep the exact normalised text, an official dated source link and a second link to the retained extraction. A requested point-in-time version is not a publication or commencement date, so it does not create a publication-timeline event. The extracted text remains derived and unreviewed.
Earlier browser observations are checked against the retained observed source files. The check explicitly reports that it has not checked the current candidate. New public verification must bind the new descriptor and application.