This document outlines the comprehensive knowledge graph schema for the Contextual AI Assistant, focusing on the Neo4j graph database component. The schema is designed to capture rich relationships between entities across different applications while maintaining flexibility for future expansion.
| Node Label | Description | Key Properties |
|---|---|---|
Person |
Represents individuals (users, contacts, team members) | id, name, role, email |
Message |
Communication content across platforms | id, content, timestamp, status |
Document |
Files, notes, and other text content | id, title, content, type |
Task |
Activities, to-dos, and assignments | id, title, description, status, priority, due_date |
Event |
Meetings, deadlines, and calendar items | id, title, description, start_time, end_time |
Team |
Groups of people working together | id, name, description |
Project |
Work initiatives containing tasks | id, name, description, status |
PullRequest |
Code review requests | id, number, title, description, status, repo |
Comment |
Remarks on various entities | id, content, timestamp |
Application |
Software applications being used | id, name, type |
| Node Label | Description | Key Properties |
|---|---|---|
User |
The central user of the system | id, name, preferences |
Context |
Captures situational context | id, type, timestamp, metadata |
ScreenCapture |
Raw screen data point | id, timestamp, content_hash, app_type |
| Relationship Type | Source → Target | Description | Key Properties |
|---|---|---|---|
AUTHORED |
Person → Message |
Person created a message | timestamp |
RECEIVED_BY |
Message → Person |
Message was received by person | read_status, timestamp |
REPLIED_TO |
Message → Message |
Message is a reply to another | timestamp |
MENTIONS |
Message → Person |
Message mentions a person | context |
REFERENCES |
Message → {Document\|Task\|PullRequest} |
Message refers to another entity | context |
| Relationship Type | Source → Target | Description | Key Properties |
|---|---|---|---|
MEMBER_OF |
Person → Team |
Person belongs to team | role, join_date |
WORKS_ON |
Person → Project |
Person works on project | role, start_date |
ASSIGNED_TO |
Task → Person |
Task is assigned to person | assignment_date |
PART_OF |
Task → Project |
Task belongs to project | priority |
REPORTS_TO |
Person → Person |
Reporting relationship | relationship_type |
| Relationship Type | Source → Target | Description | Key Properties |
|---|---|---|---|
CREATED |
Person → {Document\|Task\|PullRequest} |
Person created content | timestamp |
COMMENTED_ON |
Person → {Document\|Task\|PullRequest} |
Person commented on content | timestamp |
MODIFIED |
Person → {Document\|Task\|PullRequest} |
Person modified content | timestamp |
REVIEWED |
Person → PullRequest |
Person reviewed PR | approval_status, timestamp |
RELATED_TO |
{Document\|Task\|PullRequest} → {Document\|Task\|PullRequest} |
Content items are related | relationship_type |
| Relationship Type | Source → Target | Description | Key Properties |
|---|---|---|---|
SCHEDULED |
Person → Event |
Person scheduled event | timestamp |
ATTENDING |
Person → Event |
Person attending event | response_status |
PRECEDES |
{Task\|Event} → {Task\|Event} |
Temporal ordering | gap_duration |
DEADLINE_FOR |
Event → {Task\|Project} |
Event is a deadline | importance |
| Relationship Type | Source → Target | Description | Key Properties |
|---|---|---|---|
CAPTURED_IN |
{Message\|Document\|Task\|PullRequest} → Application |
Entity was observed in app | timestamp |
DERIVED_FROM |
{Any Entity} → ScreenCapture |
Entity extracted from screen | confidence |
INTERACTED_WITH |
Person → Application |
Person used application | timestamp, duration |
| Relationship Type | Source → Target | Description | Key Properties |
|---|---|---|---|
IN_CONTEXT |
{Any Entity} → Context |
Entity appeared in context | relevance_score |
CONTEXT_TRANSITION |
Context → Context |
Sequential contexts | transition_type |
USER_FOCUS |
User → {Any Entity} |
User was focusing on entity | duration, timestamp |