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.

SourceTypical strengthMeaning
manual1.0Set by a human in the mapping editor or profile
catalog0.7Set by the AI Librarian after user confirmation
resource_save0.3Inferred when a resource is saved to a library
resource_complete0.6Inferred when a resource is marked completed
course_enroll0.4Inferred when a learner enrolls in a course
course_complete0.8Inferred when a learner completes a course
campus_join0.2Inferred when a learner joins a campus
session_attend0.3Inferred when a learner attends a session
task_complete0.5Inferred when a learner completes a task
child_content0.5 × decayPropagated from a child entity’s DEVELOPS/FOCUSES_ON
member_activity0.15Aggregated 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.


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:

RelationshipMeaning
ENROLLED_INProfile → Course (enrollment)
MEMBER_OFProfile → Campus (membership)
ATTENDEDProfile → Session (attendance)
SAVEDProfile → Resource (saved to library)
COMPLETEDProfile → 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 catalog source.
  • 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