Skip to content

Source references

Every academic claim uwwoe makes carries a source_reference. This page is about how to read those references, what they guarantee, and when to click through.

What a source reference is

A source_reference points to a specific excerpt of the public Kuali catalog that the claim was derived from. Each carries:

  • A source_reference_id — a stable, opaque identifier.
  • A kind — for example course_prerequisite_text, credential_requirement_rule, antirequisite_relation, cross_listing_record.
  • The raw catalog text the claim came from.
  • A timestamp of when the catalog excerpt was captured.
  • A catalog version so you can correlate against your plan’s catalog_version_id.

Where you’ll see them

Source references show up:

  • Next to every course detail view — the prerequisite text shown in uwwoe is the same text shown in Kuali at the snapshot time.
  • Inside every explanation tree node — the leaf condition links to the catalog excerpt that defines it.
  • Inside every Advisory missing-option entry — the missing course is attached to its own source reference, not pooled across the parent requirement.
  • Inside every conflict reason — the antirequisite rule or duplicate-credit policy that fired.
  • In the response envelope’s source_references array — every API response carries the full set of referenced ids so the frontend can render click-throughs consistently.

How to fetch them programmatically

GET /api/v1/source-references/{source_reference_id} returns the full record for one reference. See Catalog API.

When to click through

Click through when:

  • An Advisory answer surprises you. Verify the source text matches Kuali on the catalog’s website.
  • A conflict fires that you don’t agree with. The source reference will show you the exact antirequisite or cross-listing rule.
  • An unknown reports an unresolved fragment. The source reference will show you the raw text the parser could not turn into structured logic.

What source references do not guarantee

  • They do not guarantee Quest’s view matches the catalog. Program overrides, transfer credit, advisor-approved substitutions live in Quest and never make it into the Kuali catalog. See Advisory only.
  • They do not guarantee the catalog itself is current. The index is rebuilt out-of-band — see Scope and coverage.
  • They do not guarantee the parser is right. If the parser misinterprets a requirement, the source reference will still point at the correct catalog excerpt; the bug is in the parsing, not in the reference.

Unparsed requirements

When the parser cannot turn a catalog fragment into structured logic, it preserves the fragment as an UnparsedRequirement record — first-class in the data model per ADR 0005.

UnparsedRequirement always carries a source reference. The Advisory status for the parent requirement becomes unknown with an unknown_reason pointing at the unparsed fragment. Click through to see what the catalog actually says; in many cases the right next step is “ask the department” or “check Quest”.

Manual patches

In rare cases the parser is intentionally overridden by a manual parser patch under data/patches/. Patches are auditable, scoped by catalog slug, and never mutate raw snapshots — see ADR 0008. The patched record still carries a source reference (pointing at the same catalog excerpt the patch corrects), plus a patch-record link explaining the override.