Need help? Check our guides or contact support.
Signals & Sources
Not every link between an entity and a topic is created the same way. The graph records where each link came from (the source) and assigns a strength so recommendations and UI can weight and explain them correctly.
Relationship Sources
Every entity-to-ontology link carries a source label. Multiple links from the same entity to the same topic can coexist — for example, a manual interest and a course-completion–inferred interest — so no signal is overwritten.
| Source | Typical strength | Meaning |
|---|---|---|
| manual | 1.0 | Set by a human in the mapping editor or profile |
| catalog | 0.7 | Set by the AI Librarian after user confirmation |
| resource_save | 0.3 | Inferred when a resource is saved to a library |
| resource_complete | 0.6 | Inferred when a resource is marked completed |
| course_enroll | 0.4 | Inferred when a learner enrolls in a course |
| course_complete | 0.8 | Inferred when a learner completes a course |
| campus_join | 0.2 | Inferred when a learner joins a campus |
| session_attend | 0.3 | Inferred when a learner attends a session |
| task_complete | 0.5 | Inferred when a learner completes a task |
| child_content | 0.5 × decay | Propagated from a child entity’s DEVELOPS/FOCUSES_ON |
| member_activity | 0.15 | Aggregated from member actions within the entity |
Strength is derived from the source and is not user-editable. Users manage interests by adding or removing links, not by changing weights.
Recommendation and “My Map” UIs can group and filter by source — e.g. “From Learning Activities” vs “From Library” — and allow users to dismiss inferred mappings without touching manual selections. Deletion can be scoped by source via the API.
Via-Entity Traceability
Activity-inferred links can store a via_entity reference (the platform entity that triggered the inference). For example, an INTERESTED_IN edge from completing a course carries via_entity: course_id. The UI can then explain “Why this topic?” (e.g. “From Course: Python 101”) and support actions like “Remove all topics inferred from this course”.
Behavioral Edges (Profile → Entity)
In addition to INTERESTED_IN (Profile → Topic/Skill), the graph maintains behavioral edges from profiles to platform entities. These support collaborative filtering and provenance:
| Relationship | Meaning |
|---|---|
| ENROLLED_IN | Profile → Course (enrollment) |
| MEMBER_OF | Profile → Campus (membership) |
| ATTENDED | Profile → Session (attendance) |
| SAVED | Profile → Resource (saved to library) |
| COMPLETED | Profile → Resource, Course, or Task (completion) |
Traversals like “users who enrolled in the same courses as me” use these edges. Inferred INTERESTED_IN edges are created when these actions occur, using the topic mappings of the entity (e.g. a course’s DEVELOPS topics) and the appropriate source and strength.
How the Graph Grows From Signals
The graph grows from several mechanisms:
- Manual curation — educators and learners add or remove topic mappings; manual links have the highest trust.
- AI cataloging — the Librarian proposes mappings; committed links use the
catalogsource. - Resource save — saving a resource to a library infers links from the resource’s topics to the saving entity (e.g. profile, course) with source
resource_save. - Activity hooks — completion, enrollment, attendance, and similar events create behavioral edges and inferred INTERESTED_IN (and, where applicable, member_activity on entities).
Together, these keep the graph aligned with both explicit choices and real usage.
Next Steps
- Entity Connections — DEVELOPS, FOCUSES_ON, INTERESTED_IN, and CONTAINS
- Recommendations — how strength is used in scoring
- AI Cataloging — how the Librarian sets
catalogmappings