Initial commit: Brainy - Multi-Dimensional AI Database

Open source vector database with HNSW indexing, graph relationships,
and metadata facets. Features CLI with professional augmentation registry
integration for discovering extensions and capabilities.
This commit is contained in:
David Snelling 2025-08-18 17:35:06 -07:00
commit f8c45f2d8d
448 changed files with 103294 additions and 0 deletions

247
dist/types/graphTypes.js vendored Normal file
View file

@ -0,0 +1,247 @@
/**
* Graph Types - Standardized Noun and Verb Type System
*
* This module defines a comprehensive, standardized set of noun and verb types
* that can be used to model any kind of graph, semantic network, or data model.
*
* ## Purpose and Design Philosophy
*
* The type system is designed to be:
* - **Universal**: Capable of representing any domain or use case
* - **Hierarchical**: Organized into logical categories for easy navigation
* - **Extensible**: Additional metadata can be attached to any entity or relationship
* - **Semantic**: Types carry meaning that can be used for reasoning and inference
*
* ## Noun Types (Entities)
*
* Noun types represent entities in the graph and are organized into categories:
*
* ### Core Entity Types
* - **Person**: Human entities and individuals
* - **Organization**: Formal organizations, companies, institutions
* - **Location**: Geographic locations, places, addresses
* - **Thing**: Physical objects and tangible items
* - **Concept**: Abstract ideas, concepts, and intangible entities
* - **Event**: Occurrences with time and place dimensions
*
* ### Digital/Content Types
* - **Document**: Text-based files and documents
* - **Media**: Non-text media files (images, videos, audio)
* - **File**: Generic digital files
* - **Message**: Communication content
* - **Content**: Generic content that doesn't fit other categories
*
* ### Collection Types
* - **Collection**: Generic groupings of items
* - **Dataset**: Structured collections of data
*
* ### Business/Application Types
* - **Product**: Commercial products and offerings
* - **Service**: Services and offerings
* - **User**: User accounts and profiles
* - **Task**: Actions, todos, and workflow items
* - **Project**: Organized initiatives with goals and timelines
*
* ### Descriptive Types
* - **Process**: Workflows, procedures, and sequences
* - **State**: States, conditions, or statuses
* - **Role**: Roles, positions, or responsibilities
* - **Topic**: Subjects or themes
* - **Language**: Languages or linguistic entities
* - **Currency**: Currencies and monetary units
* - **Measurement**: Measurements, metrics, or quantities
*
* ## Verb Types (Relationships)
*
* Verb types represent relationships between entities and are organized into categories:
*
* ### Core Relationship Types
* - **RelatedTo**: Generic relationship (default fallback)
* - **Contains**: Containment relationship
* - **PartOf**: Part-whole relationship
* - **LocatedAt**: Spatial relationship
* - **References**: Reference or citation relationship
*
* ### Temporal/Causal Types
* - **Precedes/Succeeds**: Temporal sequence relationships
* - **Causes**: Causal relationships
* - **DependsOn**: Dependency relationships
* - **Requires**: Necessity relationships
*
* ### Creation/Transformation Types
* - **Creates**: Creation relationships
* - **Transforms**: Transformation relationships
* - **Becomes**: State change relationships
* - **Modifies**: Modification relationships
* - **Consumes**: Consumption relationships
*
* ### Ownership/Attribution Types
* - **Owns**: Ownership relationships
* - **AttributedTo**: Attribution or authorship
* - **CreatedBy**: Creation attribution
* - **BelongsTo**: Belonging relationships
*
* ### Social/Organizational Types
* - **MemberOf**: Membership or affiliation
* - **WorksWith**: Professional relationships
* - **FriendOf**: Friendship relationships
* - **Follows**: Following relationships
* - **Likes**: Liking relationships
* - **ReportsTo**: Reporting relationships
* - **Supervises**: Supervisory relationships
* - **Mentors**: Mentorship relationships
* - **Communicates**: Communication relationships
*
* ### Descriptive/Functional Types
* - **Describes**: Descriptive relationships
* - **Defines**: Definition relationships
* - **Categorizes**: Categorization relationships
* - **Measures**: Measurement relationships
* - **Evaluates**: Evaluation or assessment relationships
* - **Uses**: Utilization relationships
* - **Implements**: Implementation relationships
* - **Extends**: Extension relationships
*
* ## Usage with Additional Metadata
*
* While the type system provides a standardized vocabulary, additional metadata
* can be attached to any entity or relationship to capture domain-specific
* information:
*
* ```typescript
* const person: GraphNoun = {
* id: 'person-123',
* noun: NounType.Person,
* data: {
* name: 'John Doe',
* age: 30,
* profession: 'Engineer'
* }
* }
*
* const worksFor: GraphVerb = {
* id: 'verb-456',
* source: 'person-123',
* target: 'org-789',
* verb: VerbType.MemberOf,
* data: {
* role: 'Senior Engineer',
* startDate: '2020-01-01',
* department: 'Engineering'
* }
* }
* ```
*
* ## Modeling Different Graph Types
*
* This type system can model various graph structures:
*
* ### Knowledge Graphs
* Use Person, Organization, Location, Concept entities with semantic relationships
* like AttributedTo, LocatedAt, RelatedTo
*
* ### Social Networks
* Use Person, User entities with social relationships like FriendOf, Follows,
* WorksWith, Communicates
*
* ### Content Networks
* Use Document, Media, Content entities with relationships like References,
* CreatedBy, Contains, Categorizes
*
* ### Business Process Models
* Use Task, Process, Role entities with relationships like Precedes, Requires,
* DependsOn, Transforms
*
* ### Organizational Charts
* Use Person, Role, Organization entities with relationships like ReportsTo,
* Supervises, MemberOf
*
* The flexibility of this system allows it to represent any domain while
* maintaining semantic consistency and enabling powerful graph operations
* and reasoning capabilities.
*/
/**
* Defines valid noun types for graph entities
* Used for categorizing different types of nodes
*/
export const NounType = {
// Core Entity Types
Person: 'person', // Human entities
Organization: 'organization', // Formal organizations (companies, institutions, etc.)
Location: 'location', // Geographic locations (merges previous Place and Location)
Thing: 'thing', // Physical objects
Concept: 'concept', // Abstract ideas, concepts, and intangible entities
Event: 'event', // Occurrences with time and place
// Digital/Content Types
Document: 'document', // Text-based files and documents (reports, articles, etc.)
Media: 'media', // Non-text media files (images, videos, audio)
File: 'file', // Generic digital files (merges aspects of Digital with file-specific focus)
Message: 'message', // Communication content (emails, chat messages, posts)
Content: 'content', // Generic content that doesn't fit other categories
// Collection Types
Collection: 'collection', // Generic grouping of items (merges Group, List, and Category)
Dataset: 'dataset', // Structured collections of data
// Business/Application Types
Product: 'product', // Commercial products and offerings
Service: 'service', // Services and offerings
User: 'user', // User accounts and profiles
Task: 'task', // Actions, todos, and workflow items
Project: 'project', // Organized initiatives with goals and timelines
// Descriptive Types
Process: 'process', // Workflows, procedures, and sequences
State: 'state', // States, conditions, or statuses
Role: 'role', // Roles, positions, or responsibilities
Topic: 'topic', // Subjects or themes
Language: 'language', // Languages or linguistic entities
Currency: 'currency', // Currencies and monetary units
Measurement: 'measurement' // Measurements, metrics, or quantities
};
/**
* Defines valid verb types for relationships
* Used for categorizing different types of connections
*/
export const VerbType = {
// Core Relationship Types
RelatedTo: 'relatedTo', // Generic relationship (default fallback)
Contains: 'contains', // Containment relationship (parent contains child)
PartOf: 'partOf', // Part-whole relationship (child is part of parent)
LocatedAt: 'locatedAt', // Spatial relationship
References: 'references', // Reference or citation relationship
// Temporal/Causal Types
Precedes: 'precedes', // Temporal sequence (comes before)
Succeeds: 'succeeds', // Temporal sequence (comes after)
Causes: 'causes', // Causal relationship (merges Influences and Causes)
DependsOn: 'dependsOn', // Dependency relationship
Requires: 'requires', // Necessity relationship (new)
// Creation/Transformation Types
Creates: 'creates', // Creation relationship (merges Created and Produces)
Transforms: 'transforms', // Transformation relationship
Becomes: 'becomes', // State change relationship
Modifies: 'modifies', // Modification relationship
Consumes: 'consumes', // Consumption relationship
// Ownership/Attribution Types
Owns: 'owns', // Ownership relationship (merges Controls and Owns)
AttributedTo: 'attributedTo', // Attribution or authorship
CreatedBy: 'createdBy', // Creation attribution (new, distinct from Creates)
BelongsTo: 'belongsTo', // Belonging relationship (new)
// Social/Organizational Types
MemberOf: 'memberOf', // Membership or affiliation
WorksWith: 'worksWith', // Professional relationship
FriendOf: 'friendOf', // Friendship relationship
Follows: 'follows', // Following relationship
Likes: 'likes', // Liking relationship
ReportsTo: 'reportsTo', // Reporting relationship
Supervises: 'supervises', // Supervisory relationship
Mentors: 'mentors', // Mentorship relationship
Communicates: 'communicates', // Communication relationship (merges Communicates and Collaborates)
// Descriptive/Functional Types
Describes: 'describes', // Descriptive relationship
Defines: 'defines', // Definition relationship
Categorizes: 'categorizes', // Categorization relationship
Measures: 'measures', // Measurement relationship
Evaluates: 'evaluates', // Evaluation or assessment relationship
Uses: 'uses', // Utilization relationship (new)
Implements: 'implements', // Implementation relationship
Extends: 'extends' // Extension relationship (merges Extends and Inherits)
};
//# sourceMappingURL=graphTypes.js.map