Direct Answer

The Swoopr Knowledge Center is a structured graph of five node types (articles, glossary terms, tools, learning paths, entities) connected by six relationship categories (parent/child, prerequisite, related, next-step, tool-link, source-link). It is generated at build time from the content registry and the answer-hub registry. The full graph is available as a JSON export at /knowledge-graph-export.json.

Key Takeaways

  • Five node types: articles, glossary terms, tools, learning paths, and cited entities.
  • Six relationship categories, each directional: parent/child, prerequisite, related, next-step, tool-link, source-link.
  • The graph is generated from registry metadata, not hand-curated link lists. Adding a page to the registry and declaring its relationships is sufficient.
  • Unresolved node IDs (a relationship pointing at a page that does not exist) fail validation and block the build.
  • Excluded from the graph: noindex pages, owner-only tools, and redirect stubs.
  • The raw graph data is available at /knowledge-graph-export.json for external consumers, research tools, and AI crawlers.

What Are the Node Types?

The knowledge graph uses five node types. Each node carries a canonical URL, a type label, a title, and a short description. The canonical URL is the stable identifier: if a page moves, the node's URL is updated and any relationship that referenced the old URL is updated with it in the same change.

Node typeExamplesSource registry
ArticleEducational guides, how-to pages, hub pages, case studiesContent registry (scripts/content-registry.mjs)
Glossary termEvery defined entry in the investment glossaryGlossary master data (scripts/glossary-master-data.json)
ToolCalculators, screeners, simulators, interactive toolsWebMCP registry (scripts/webmcp-registry.mjs)
Learning pathCurated multi-page sequences (Stock Market Foundations, Crypto Foundations, etc.)Learning paths registry
EntityOrganizations and regulatory bodies cited as primary sources (SEC, FINRA, CFA Institute, etc.)Entity registry (scripts/entity-registry.mjs)

What Are the Relationship Types?

Every edge in the graph is directional and typed. A relationship from node A to node B has a specific meaning that is not the same when reversed. The six categories are:

parent/child
A hub page is the parent of its sub-pages. A child has exactly one parent. The relationship is declared on the child node: this article's parent is the ETF Investing hub. The parent must exist in the registry.
prerequisite
Content that a reader should understand before arriving at this node. Declared on the node that depends on the prerequisite: the DCF Valuation guide requires the Free Cash Flow definition. Prerequisite chains are validated for cycles at build time.
related
Content that covers an overlapping concept without a strict ordering. Typically between articles in different sections that address the same topic from different angles. The graph browser renders related edges as navigable in both directions even though the relationship is stored directionally.
next-step
The natural continuation after this content. Used to build linear reading sequences within a learning path or a pillar guide cluster. A node can have multiple next-step targets when more than one path is equally appropriate.
tool-link
A pairing between a concept article and an interactive tool that applies that concept. Declared in both directions: the article lists the tool as a tool-link, and the WebMCP registry entry for the tool references the article. Consistency between the two is enforced at build time.
source-link
A relationship between a node and a cited entity or authoritative document. Used to make the provenance of a claim navigable rather than visible only in the References section of an individual page.

How Is the Graph Generated?

The graph is built at build time, not maintained by hand. The pipeline runs in this order:

  1. Registry pass: The content registry walks all HTML files in public/, reads each page's canonical URL, title, description, and JSON-LD metadata, and builds an in-memory index of every page on the site.
  2. Relationship resolution: Each page's answer-hub registry entry and registry-overlay entry declares relationships by referencing canonical concept IDs. The pipeline resolves those IDs against the index from step 1. Any ID that does not resolve to a real page fails the build.
  3. Edge construction: Resolved relationships become typed, directional edges. Each edge records the source node URL, the target node URL, and the relationship type.
  4. Cycle detection: Prerequisite chains are checked for cycles. A cycle is a build failure.
  5. Export: The validated graph is written to public/knowledge-graph-export.json and to an in-memory structure used by the Knowledge Center browser page at /knowledge-graph/.

Because relationships are declared in the same files that define page content, they cannot drift silently: editing a page's concept ID updates the relationship, and removing a page that other nodes link to fails the build on the broken edge.

What Is Excluded from the Graph?

Not every URL on the site appears in the knowledge graph. The following are excluded:

  • Noindex pages: Legal pages (Terms, Privacy, Risk Disclosure), redirect stubs, and owner-only tool pages are excluded. The graph is a reader navigation aid, not a crawl inventory.
  • Design-lab pages: The /design-lab/ directory is entirely excluded by the content registry walker and does not enter the pipeline at any stage.
  • Asset files: JavaScript, CSS, image, and JSON files are not nodes. Only HTML pages with a valid canonical URL pointing at https://www.getswoopr.com/ enter the graph.
  • Unresolvable stubs: A page that exists on disk but whose canonical URL points at a different domain (a legacy redirect stub) is excluded.

Tool pages appear in the graph only when a concept article explicitly links to them via a tool-link relationship. A tool that has no educational counterpart in the graph is reachable via the tools directory but is not a graph node.

What Is in the JSON Export?

The file at /knowledge-graph-export.json contains two top-level arrays:

  • nodes: Each entry includes id (the canonical URL), type (one of the five node types), title, description, and sectionKey (the content section the page belongs to).
  • edges: Each entry includes source (the canonical URL of the originating node), target (the canonical URL of the destination node), and relationship (one of the six relationship type strings).

The file is regenerated at every build. If you are consuming it programmatically, treat the canonical URL as the stable node identifier and use the relationship type as the key, not an ordinal position in the arrays.

Frequently Asked Questions

What is the Swoopr Knowledge Center?

The Swoopr Knowledge Center is a browsable graph of how this site's guides, glossary terms, tools, learning paths, and cited entities relate to one another. It maps relationships like parent/child topics, prerequisites, next steps, and tool-to-concept links so readers can navigate from one concept to related content rather than treating each page as a standalone document.

What node types does the knowledge graph contain?

Five node types are currently used: articles (educational guides and how-to pages), glossary terms (defined entries in the investment glossary), tools (interactive calculators and research tools), learning paths (curated sequences of content), and entities (organizations and regulatory bodies cited as sources). Each node carries a canonical URL, a type label, and a short description.

What relationship types exist between nodes?

Six relationship categories are used: parent/child (a hub page and its sub-pages), prerequisite (content that should be read first), related (content that addresses overlapping concepts without a strict hierarchy), next-step (natural continuation after this content), tool-link (a concept paired with a calculator or interactive tool that applies it), and source-link (a cited reference or authoritative document). Each relationship is directional: A is a prerequisite for B is not the same as B is a prerequisite for A.

How is the knowledge graph generated?

The graph is built from the content registry and the answer-hub registry at build time. Each article in the registry declares its relationships in structured metadata. The generation pipeline reads those declarations, resolves the referenced node IDs against the registry, and outputs a validated graph. Relationships that point to node IDs not present in the registry fail validation and block the build, preventing broken edges.

Where can I download the raw knowledge graph data?

The full graph is available as a machine-readable JSON export at /knowledge-graph-export.json. The file lists every node with its type, canonical URL, title, and description, followed by every directional edge with its relationship type. It is regenerated at build time from the same source as the Knowledge Center browser page, so the two are always in sync.

Does every page on the site appear in the knowledge graph?

No. Pages marked noindex (legal pages, owner-only tools, redirect stubs) are excluded. Tool pages without substantial educational content appear only when a concept node explicitly links to them via a tool-link relationship. The graph focuses on content that a reader navigating from concept to concept would find useful, not a complete inventory of every URL on the site.

How are circular relationships handled?

Prerequisite chains are validated for cycles at build time. A cycle (A requires B requires A) fails the build. Related and next-step relationships are directional in the data but the graph browser renders them as navigable in both directions, since those relationship types do not imply an ordering that a cycle would violate. Parent/child relationships cannot be cyclic by construction because a node can have only one parent.

References