Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.learningcommons.org/llms.txt

Use this file to discover all available pages before exploring further.

This tutorial shows you how to use Knowledge Graph to access state standards and apply them to common content-tagging and content-creation workflows. State standards are modeled in Knowledge Graph as two core entities: StandardsFramework and StandardsFrameworkItem. Learn more about these entities in the Academic Standards data reference. Here is how the standards data is modeled.
Data model diagram: StandardsFramework and StandardsFrameworkItem entities linked by hasChild, supports, and hasEducationalAlignment to LearningComponent and Course
The diagram shows only the standards dataset. Other entity types (LearningComponent, Course) appear as connection targets; their models are in Learning components and Curriculum.Example (New York): A StandardsFramework is the root document for a jurisdiction’s standards—e.g. New York State Mathematics Learning Standards. That framework is one node. A domain is an organizational grouping within that framework (a type of StandardsFrameworkItem with statementType such as “Domain” or “Cluster”), e.g. Operations and Algebraic Thinking or Number & Operations—Fractions. Standards are the individual learning expectations (also StandardsFrameworkItem), often with codes like 3.NF.A.1; they may sit under domains or under other groupings. The graph is a tree: framework → top-level items (e.g. domains) → … → leaf items (the actual standards).Edge list (source → relationship → target):
  • StandardsFrameworkhasChildStandardsFrameworkItem (e.g. New York Math framework → its top-level domains or groupings)
  • StandardsFrameworkItemhasChildStandardsFrameworkItem (e.g. domain → cluster, or cluster → standard)
  • LearningComponentsupportsStandardsFrameworkItem (granular skill supports a standard)
  • CoursehasEducationalAlignmentStandardsFrameworkItem (curriculum aligns to a standard)
So: one framework roots a tree of items via hasChild; items can also be linked from learning components (supports) and from curriculum (hasEducationalAlignment). The diagram does not show learning-progression edges (buildsTowards, relatesTo); see Learning progressions.

What you’ll do

  • Using standards identifiers to find deeper-level relationships

What you’ll need

STEP 1: Set up environment variables

  1. Set up your environment variables for your API key and base URL:
# .env

# Knowledge Graph API credentials - get these from the Learning Commons Portal
API_KEY=your_api_key_here
BASE_URL=https://api.learningcommons.org/knowledge-graph/v0

STEP 2: Query for standards data

  1. Use the /standards-frameworks endpoint to get the California math standards framework:
curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  "https://api.learningcommons.org/knowledge-graph/v0/standards-frameworks?jurisdiction=California&academicSubject=Mathematics"
The returned data for California math standards framework should look like this:
{
  "caseIdentifierUUID": "c6487102-d7cb-11e8-824f-0242ac160002",
  "name": "California Common Core State Standards - Mathematics",
  "jurisdiction": "California",
  "academicSubject": "Mathematics"
}
  1. Use the /academic-standards endpoint with filters to get middle school standard groupings within the California math standards framework, using the identifier returned by the previous code block. To show specificity, we’re going to look for middle school standards groupings. The standards groupings are useful if you’re looking to get a set of standards that states tend to group by names like clusters, domains, etc.
# Replace YOUR_FRAMEWORK_UUID with the caseIdentifierUUID from the previous step
curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  "https://api.learningcommons.org/knowledge-graph/v0/academic-standards?standardsFrameworkCaseIdentifierUUID=YOUR_FRAMEWORK_UUID&normalizedStatementType=Standard%20Grouping&gradeLevel=6&gradeLevel=7&gradeLevel=8"
The returned data for California middle school math standard clusters and domains should look like this:
Some StandardsFrameworkItems won’t have a statementCode, depending on how a given state has published its standards framework.
[
  {
    "caseIdentifierUUID": "5ebeb890-d7cc-11e8-824f-0242ac160002",
    "statementCode": "6.RP.A",
    "description": "Understand ratio concepts and use ratio reasoning to solve problems.",
    "normalizedStatementType": "Standard Grouping",
    "statementType": "Cluster",
    "gradeLevel": ["6"]
  }
  //...
]
  1. Use the /academic-standards endpoint to get individual standards for all of middle school math in California:
# Replace YOUR_FRAMEWORK_UUID with the caseIdentifierUUID from Step 2
curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  "https://api.learningcommons.org/knowledge-graph/v0/academic-standards?standardsFrameworkCaseIdentifierUUID=YOUR_FRAMEWORK_UUID&normalizedStatementType=Standard&gradeLevel=6&gradeLevel=7&gradeLevel=8"
If we wanted to, we could also filter on a specific Standard Grouping to specify even further.
The returned data for the standards within cluster 8.G.B should look like this:
[
  {
    "caseIdentifierUUID": "5ec25ed1-d7cc-11e8-824f-0242ac160002",
    "statementCode": "8.EE.B.5",
    "description": "Graph proportional relationships, interpreting the unit rate...",
    "normalizedStatementType": "Standard",
    "gradeLevel": ["8"]
  }
  // ...
]
Try querying additional grades or subjects, swapping in another state, or integrating this data into your content tagging workflow.