**refactor: adjust export formatting for consistency and alignment**

- Reformatted export statements across `index.ts` and related modules for consistent style, improving code readability and maintainability.
- Updated graph types in `graphTypes.ts` to include additional standardized noun and verb categories, enhancing the flexibility of the type system for graph modeling.
- Replaced `Place` with `Location` and merged similar types (e.g., `Group` into `Collection`) to eliminate redundancy in entity definitions.
- Expanded verb types in `VerbType` to cover more comprehensive use cases, including social, temporal, and ownership relationships.

**Purpose**: Streamline code structure with consistent export formatting, simplify type definitions, and enhance the type system for broader modeling capabilities.
This commit is contained in:
David Snelling 2025-07-30 13:18:15 -07:00
parent d015d1a94d
commit 268b591e6c
2 changed files with 601 additions and 274 deletions

View file

@ -13,228 +13,228 @@
import './setup.js' import './setup.js'
// Export main BrainyData class and related types // Export main BrainyData class and related types
import {BrainyData, BrainyDataConfig} from './brainyData.js' import { BrainyData, BrainyDataConfig } from './brainyData.js'
export {BrainyData} export { BrainyData }
export type {BrainyDataConfig} export type { BrainyDataConfig }
// Export distance functions for convenience // Export distance functions for convenience
import { import {
euclideanDistance, euclideanDistance,
cosineDistance, cosineDistance,
manhattanDistance, manhattanDistance,
dotProductDistance, dotProductDistance,
getStatistics getStatistics
} from './utils/index.js' } from './utils/index.js'
export { export {
euclideanDistance, euclideanDistance,
cosineDistance, cosineDistance,
manhattanDistance, manhattanDistance,
dotProductDistance, dotProductDistance,
getStatistics getStatistics
} }
// Export embedding functionality // Export embedding functionality
import { import {
UniversalSentenceEncoder, UniversalSentenceEncoder,
createEmbeddingFunction, createEmbeddingFunction,
createTensorFlowEmbeddingFunction, createTensorFlowEmbeddingFunction,
createThreadedEmbeddingFunction, createThreadedEmbeddingFunction,
defaultEmbeddingFunction defaultEmbeddingFunction
} from './utils/embedding.js' } from './utils/embedding.js'
// Export worker utilities // Export worker utilities
import {executeInThread, cleanupWorkerPools} from './utils/workerUtils.js' import { executeInThread, cleanupWorkerPools } from './utils/workerUtils.js'
// Export environment utilities // Export environment utilities
import { import {
isBrowser, isBrowser,
isNode, isNode,
isWebWorker, isWebWorker,
areWebWorkersAvailable, areWebWorkersAvailable,
areWorkerThreadsAvailable, areWorkerThreadsAvailable,
areWorkerThreadsAvailableSync, areWorkerThreadsAvailableSync,
isThreadingAvailable, isThreadingAvailable,
isThreadingAvailableAsync isThreadingAvailableAsync
} from './utils/environment.js' } from './utils/environment.js'
export { export {
UniversalSentenceEncoder, UniversalSentenceEncoder,
createEmbeddingFunction, createEmbeddingFunction,
createTensorFlowEmbeddingFunction, createTensorFlowEmbeddingFunction,
createThreadedEmbeddingFunction, createThreadedEmbeddingFunction,
defaultEmbeddingFunction, defaultEmbeddingFunction,
// Worker utilities // Worker utilities
executeInThread, executeInThread,
cleanupWorkerPools, cleanupWorkerPools,
// Environment utilities // Environment utilities
isBrowser, isBrowser,
isNode, isNode,
isWebWorker, isWebWorker,
areWebWorkersAvailable, areWebWorkersAvailable,
areWorkerThreadsAvailable, areWorkerThreadsAvailable,
areWorkerThreadsAvailableSync, areWorkerThreadsAvailableSync,
isThreadingAvailable, isThreadingAvailable,
isThreadingAvailableAsync isThreadingAvailableAsync
} }
// Export storage adapters // Export storage adapters
import { import {
OPFSStorage, OPFSStorage,
MemoryStorage, MemoryStorage,
FileSystemStorage, FileSystemStorage,
R2Storage, R2Storage,
S3CompatibleStorage, S3CompatibleStorage,
createStorage createStorage
} from './storage/storageFactory.js' } from './storage/storageFactory.js'
export { export {
OPFSStorage, OPFSStorage,
MemoryStorage, MemoryStorage,
FileSystemStorage, FileSystemStorage,
R2Storage, R2Storage,
S3CompatibleStorage, S3CompatibleStorage,
createStorage createStorage
} }
// Export unified pipeline // Export unified pipeline
import { import {
Pipeline, Pipeline,
pipeline, pipeline,
augmentationPipeline, augmentationPipeline,
ExecutionMode, ExecutionMode,
PipelineOptions, PipelineOptions,
PipelineResult, PipelineResult,
executeStreamlined, executeStreamlined,
executeByType, executeByType,
executeSingle, executeSingle,
processStaticData, processStaticData,
processStreamingData, processStreamingData,
createPipeline, createPipeline,
createStreamingPipeline, createStreamingPipeline,
StreamlinedExecutionMode, StreamlinedExecutionMode,
StreamlinedPipelineOptions, StreamlinedPipelineOptions,
StreamlinedPipelineResult StreamlinedPipelineResult
} from './pipeline.js' } from './pipeline.js'
// Export sequential pipeline (for backward compatibility) // Export sequential pipeline (for backward compatibility)
import { import {
SequentialPipeline, SequentialPipeline,
sequentialPipeline, sequentialPipeline,
SequentialPipelineOptions SequentialPipelineOptions
} from './sequentialPipeline.js' } from './sequentialPipeline.js'
// Export augmentation factory // Export augmentation factory
import { import {
createSenseAugmentation, createSenseAugmentation,
addWebSocketSupport, addWebSocketSupport,
executeAugmentation, executeAugmentation,
loadAugmentationModule, loadAugmentationModule,
AugmentationOptions AugmentationOptions
} from './augmentationFactory.js' } from './augmentationFactory.js'
export { export {
// Unified pipeline exports // Unified pipeline exports
Pipeline, Pipeline,
pipeline, pipeline,
augmentationPipeline, augmentationPipeline,
ExecutionMode, ExecutionMode,
SequentialPipeline, SequentialPipeline,
sequentialPipeline, sequentialPipeline,
// Streamlined pipeline exports (now part of unified pipeline) // Streamlined pipeline exports (now part of unified pipeline)
executeStreamlined, executeStreamlined,
executeByType, executeByType,
executeSingle, executeSingle,
processStaticData, processStaticData,
processStreamingData, processStreamingData,
createPipeline, createPipeline,
createStreamingPipeline, createStreamingPipeline,
StreamlinedExecutionMode, StreamlinedExecutionMode,
// Augmentation factory exports // Augmentation factory exports
createSenseAugmentation, createSenseAugmentation,
addWebSocketSupport, addWebSocketSupport,
executeAugmentation, executeAugmentation,
loadAugmentationModule loadAugmentationModule
} }
export type { export type {
PipelineOptions, PipelineOptions,
PipelineResult, PipelineResult,
SequentialPipelineOptions, SequentialPipelineOptions,
StreamlinedPipelineOptions, StreamlinedPipelineOptions,
StreamlinedPipelineResult, StreamlinedPipelineResult,
AugmentationOptions AugmentationOptions
} }
// Export augmentation registry for build-time loading // Export augmentation registry for build-time loading
import { import {
availableAugmentations, availableAugmentations,
registerAugmentation, registerAugmentation,
initializeAugmentationPipeline, initializeAugmentationPipeline,
setAugmentationEnabled, setAugmentationEnabled,
getAugmentationsByType getAugmentationsByType
} from './augmentationRegistry.js' } from './augmentationRegistry.js'
export { export {
availableAugmentations, availableAugmentations,
registerAugmentation, registerAugmentation,
initializeAugmentationPipeline, initializeAugmentationPipeline,
setAugmentationEnabled, setAugmentationEnabled,
getAugmentationsByType getAugmentationsByType
} }
// Export augmentation registry loader for build tools // Export augmentation registry loader for build tools
import { import {
loadAugmentationsFromModules, loadAugmentationsFromModules,
createAugmentationRegistryPlugin, createAugmentationRegistryPlugin,
createAugmentationRegistryRollupPlugin createAugmentationRegistryRollupPlugin
} from './augmentationRegistryLoader.js' } from './augmentationRegistryLoader.js'
import type { import type {
AugmentationRegistryLoaderOptions, AugmentationRegistryLoaderOptions,
AugmentationLoadResult AugmentationLoadResult
} from './augmentationRegistryLoader.js' } from './augmentationRegistryLoader.js'
export { export {
loadAugmentationsFromModules, loadAugmentationsFromModules,
createAugmentationRegistryPlugin, createAugmentationRegistryPlugin,
createAugmentationRegistryRollupPlugin createAugmentationRegistryRollupPlugin
} }
export type {AugmentationRegistryLoaderOptions, AugmentationLoadResult} export type { AugmentationRegistryLoaderOptions, AugmentationLoadResult }
// Export augmentation implementations // Export augmentation implementations
import { import {
MemoryStorageAugmentation, MemoryStorageAugmentation,
FileSystemStorageAugmentation, FileSystemStorageAugmentation,
OPFSStorageAugmentation, OPFSStorageAugmentation,
createMemoryAugmentation createMemoryAugmentation
} from './augmentations/memoryAugmentations.js' } from './augmentations/memoryAugmentations.js'
import { import {
WebSocketConduitAugmentation, WebSocketConduitAugmentation,
WebRTCConduitAugmentation, WebRTCConduitAugmentation,
createConduitAugmentation createConduitAugmentation
} from './augmentations/conduitAugmentations.js' } from './augmentations/conduitAugmentations.js'
import { import {
ServerSearchConduitAugmentation, ServerSearchConduitAugmentation,
ServerSearchActivationAugmentation, ServerSearchActivationAugmentation,
createServerSearchAugmentations createServerSearchAugmentations
} from './augmentations/serverSearchAugmentations.js' } from './augmentations/serverSearchAugmentations.js'
// Non-LLM exports // Non-LLM exports
export { export {
MemoryStorageAugmentation, MemoryStorageAugmentation,
FileSystemStorageAugmentation, FileSystemStorageAugmentation,
OPFSStorageAugmentation, OPFSStorageAugmentation,
createMemoryAugmentation, createMemoryAugmentation,
WebSocketConduitAugmentation, WebSocketConduitAugmentation,
WebRTCConduitAugmentation, WebRTCConduitAugmentation,
createConduitAugmentation, createConduitAugmentation,
ServerSearchConduitAugmentation, ServerSearchConduitAugmentation,
ServerSearchActivationAugmentation, ServerSearchActivationAugmentation,
createServerSearchAugmentations createServerSearchAugmentations
} }
// LLM augmentations are optional and not imported by default // LLM augmentations are optional and not imported by default
@ -243,142 +243,180 @@ export {
// Export types // Export types
import type { import type {
Vector, Vector,
VectorDocument, VectorDocument,
SearchResult, SearchResult,
DistanceFunction, DistanceFunction,
EmbeddingFunction, EmbeddingFunction,
EmbeddingModel, EmbeddingModel,
HNSWNoun, HNSWNoun,
GraphVerb, HNSWConfig,
HNSWConfig, StorageAdapter
StorageAdapter
} from './coreTypes.js' } from './coreTypes.js'
// Export HNSW index and optimized version // Export HNSW index and optimized version
import {HNSWIndex} from './hnsw/hnswIndex.js' import { HNSWIndex } from './hnsw/hnswIndex.js'
import { import {
HNSWIndexOptimized, HNSWIndexOptimized,
HNSWOptimizedConfig HNSWOptimizedConfig
} from './hnsw/hnswIndexOptimized.js' } from './hnsw/hnswIndexOptimized.js'
export {HNSWIndex, HNSWIndexOptimized} export { HNSWIndex, HNSWIndexOptimized }
export type { export type {
Vector, Vector,
VectorDocument, VectorDocument,
SearchResult, SearchResult,
DistanceFunction, DistanceFunction,
EmbeddingFunction, EmbeddingFunction,
EmbeddingModel, EmbeddingModel,
HNSWNoun, HNSWNoun,
GraphVerb, HNSWConfig,
HNSWConfig, HNSWOptimizedConfig,
HNSWOptimizedConfig, StorageAdapter
StorageAdapter
} }
// Export augmentation types // Export augmentation types
import type { import type {
IAugmentation, IAugmentation,
AugmentationResponse, AugmentationResponse,
IWebSocketSupport, IWebSocketSupport,
ISenseAugmentation, ISenseAugmentation,
IConduitAugmentation, IConduitAugmentation,
ICognitionAugmentation, ICognitionAugmentation,
IMemoryAugmentation, IMemoryAugmentation,
IPerceptionAugmentation, IPerceptionAugmentation,
IDialogAugmentation, IDialogAugmentation,
IActivationAugmentation IActivationAugmentation
} from './types/augmentations.js' } from './types/augmentations.js'
import {AugmentationType, BrainyAugmentations} from './types/augmentations.js' import { AugmentationType, BrainyAugmentations } from './types/augmentations.js'
export type {IAugmentation, AugmentationResponse, IWebSocketSupport} export type { IAugmentation, AugmentationResponse, IWebSocketSupport }
export { export {
AugmentationType, AugmentationType,
BrainyAugmentations, BrainyAugmentations,
ISenseAugmentation, ISenseAugmentation,
IConduitAugmentation, IConduitAugmentation,
ICognitionAugmentation, ICognitionAugmentation,
IMemoryAugmentation, IMemoryAugmentation,
IPerceptionAugmentation, IPerceptionAugmentation,
IDialogAugmentation, IDialogAugmentation,
IActivationAugmentation IActivationAugmentation
} }
// Export combined WebSocket augmentation interfaces // Export combined WebSocket augmentation interfaces
export type { export type {
IWebSocketCognitionAugmentation, IWebSocketCognitionAugmentation,
IWebSocketSenseAugmentation, IWebSocketSenseAugmentation,
IWebSocketPerceptionAugmentation, IWebSocketPerceptionAugmentation,
IWebSocketActivationAugmentation, IWebSocketActivationAugmentation,
IWebSocketDialogAugmentation, IWebSocketDialogAugmentation,
IWebSocketConduitAugmentation, IWebSocketConduitAugmentation,
IWebSocketMemoryAugmentation IWebSocketMemoryAugmentation
} from './types/augmentations.js' } from './types/augmentations.js'
// Export graph types // Export graph types
import type { import type {
GraphNoun, GraphNoun,
EmbeddedGraphVerb, GraphVerb,
Person, EmbeddedGraphVerb,
Place, Person,
Thing, Location,
Event, Thing,
Concept, Event,
Content Concept,
Content,
Collection,
Organization,
Document,
Media,
File,
Message,
Dataset,
Product,
Service,
User,
Task,
Project,
Process,
State,
Role,
Topic,
Language,
Currency,
Measurement
} from './types/graphTypes.js' } from './types/graphTypes.js'
import {NounType, VerbType} from './types/graphTypes.js' import { NounType, VerbType } from './types/graphTypes.js'
export type { export type {
GraphNoun, GraphNoun,
EmbeddedGraphVerb, GraphVerb,
Person, EmbeddedGraphVerb,
Place, Person,
Thing, Location,
Event, Thing,
Concept, Event,
Content Concept,
Content,
Collection,
Organization,
Document,
Media,
File,
Message,
Dataset,
Product,
Service,
User,
Task,
Project,
Process,
State,
Role,
Topic,
Language,
Currency,
Measurement
} }
export {NounType, VerbType} export { NounType, VerbType }
// Export MCP (Model Control Protocol) components // Export MCP (Model Control Protocol) components
import { import {
BrainyMCPAdapter, BrainyMCPAdapter,
MCPAugmentationToolset, MCPAugmentationToolset,
BrainyMCPService BrainyMCPService
} from './mcp/index.js' // Import from mcp/index.js } from './mcp/index.js' // Import from mcp/index.js
import { import {
MCPRequest, MCPRequest,
MCPResponse, MCPResponse,
MCPDataAccessRequest, MCPDataAccessRequest,
MCPToolExecutionRequest, MCPToolExecutionRequest,
MCPSystemInfoRequest, MCPSystemInfoRequest,
MCPAuthenticationRequest, MCPAuthenticationRequest,
MCPRequestType, MCPRequestType,
MCPServiceOptions, MCPServiceOptions,
MCPTool, MCPTool,
MCP_VERSION MCP_VERSION
} from './types/mcpTypes.js' } from './types/mcpTypes.js'
export { export {
// MCP classes // MCP classes
BrainyMCPAdapter, BrainyMCPAdapter,
MCPAugmentationToolset, MCPAugmentationToolset,
BrainyMCPService, BrainyMCPService,
// MCP types // MCP types
MCPRequestType, MCPRequestType,
MCP_VERSION MCP_VERSION
} }
export type { export type {
MCPRequest, MCPRequest,
MCPResponse, MCPResponse,
MCPDataAccessRequest, MCPDataAccessRequest,
MCPToolExecutionRequest, MCPToolExecutionRequest,
MCPSystemInfoRequest, MCPSystemInfoRequest,
MCPAuthenticationRequest, MCPAuthenticationRequest,
MCPServiceOptions, MCPServiceOptions,
MCPTool MCPTool
} }

View file

@ -1,3 +1,166 @@
/**
* 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.
*/
// Common metadata types // Common metadata types
/** /**
* Represents a high-precision timestamp with seconds and nanoseconds * Represents a high-precision timestamp with seconds and nanoseconds
@ -70,8 +233,8 @@ export interface Person extends GraphNoun {
/** /**
* Represents a physical location in the graph * Represents a physical location in the graph
*/ */
export interface Place extends GraphNoun { export interface Location extends GraphNoun {
noun: typeof NounType.Place noun: typeof NounType.Location
} }
/** /**
@ -95,12 +258,80 @@ export interface Concept extends GraphNoun {
noun: typeof NounType.Concept noun: typeof NounType.Concept
} }
export interface Group extends GraphNoun { export interface Collection extends GraphNoun {
noun: typeof NounType.Group noun: typeof NounType.Collection
} }
export interface List extends GraphNoun { export interface Organization extends GraphNoun {
noun: typeof NounType.List noun: typeof NounType.Organization
}
export interface Document extends GraphNoun {
noun: typeof NounType.Document
}
export interface Media extends GraphNoun {
noun: typeof NounType.Media
}
export interface File extends GraphNoun {
noun: typeof NounType.File
}
export interface Message extends GraphNoun {
noun: typeof NounType.Message
}
export interface Dataset extends GraphNoun {
noun: typeof NounType.Dataset
}
export interface Product extends GraphNoun {
noun: typeof NounType.Product
}
export interface Service extends GraphNoun {
noun: typeof NounType.Service
}
export interface User extends GraphNoun {
noun: typeof NounType.User
}
export interface Task extends GraphNoun {
noun: typeof NounType.Task
}
export interface Project extends GraphNoun {
noun: typeof NounType.Project
}
export interface Process extends GraphNoun {
noun: typeof NounType.Process
}
export interface State extends GraphNoun {
noun: typeof NounType.State
}
export interface Role extends GraphNoun {
noun: typeof NounType.Role
}
export interface Topic extends GraphNoun {
noun: typeof NounType.Topic
}
export interface Language extends GraphNoun {
noun: typeof NounType.Language
}
export interface Currency extends GraphNoun {
noun: typeof NounType.Currency
}
export interface Measurement extends GraphNoun {
noun: typeof NounType.Measurement
} }
/** /**
@ -116,15 +347,40 @@ export interface Content extends GraphNoun {
*/ */
export const NounType = { export const NounType = {
Person: 'person', // Person entities // Core Entity Types
Place: 'place', // Physical locations Person: 'person', // Human entities
Thing: 'thing', // Physical or virtual objects Organization: 'organization', // Formal organizations (companies, institutions, etc.)
Event: 'event', // Events or occurrences Location: 'location', // Geographic locations (merges previous Place and Location)
Concept: 'concept', // Abstract concepts or ideas Thing: 'thing', // Physical objects
Content: 'content', // Content items Concept: 'concept', // Abstract ideas, concepts, and intangible entities
Group: 'group', // Groups of related entities Event: 'event', // Occurrences with time and place
List: 'list', // Ordered collections of entities
Category: 'category' // Categories for content items including tags // 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
} as const } as const
export type NounType = (typeof NounType)[keyof typeof NounType] export type NounType = (typeof NounType)[keyof typeof NounType]
@ -133,19 +389,52 @@ export type NounType = (typeof NounType)[keyof typeof NounType]
* Used for categorizing different types of connections * Used for categorizing different types of connections
*/ */
export const VerbType = { export const VerbType = {
AttributedTo: 'attributedTo', // Indicates attribution or authorship // Core Relationship Types
Controls: 'controls', // Indicates control or ownership RelatedTo: 'relatedTo', // Generic relationship (default fallback)
Created: 'created', // Indicates creation or authorship Contains: 'contains', // Containment relationship (parent contains child)
Earned: 'earned', // Indicates achievement or acquisition PartOf: 'partOf', // Part-whole relationship (child is part of parent)
Owns: 'owns', // Indicates ownership LocatedAt: 'locatedAt', // Spatial relationship
MemberOf: 'memberOf', // Indicates membership or affiliation References: 'references', // Reference or citation relationship
RelatedTo: 'relatedTo', // Indicates family relationship
WorksWith: 'worksWith', // Indicates professional relationship // Temporal/Causal Types
FriendOf: 'friendOf', // Indicates friendship Precedes: 'precedes', // Temporal sequence (comes before)
ReportsTo: 'reportsTo', // Indicates reporting relationship Succeeds: 'succeeds', // Temporal sequence (comes after)
Supervises: 'supervises', // Indicates supervisory relationship Causes: 'causes', // Causal relationship (merges Influences and Causes)
Mentors: 'mentors', // Indicates mentorship relationship DependsOn: 'dependsOn', // Dependency relationship
Follows: 'follows', // Indicates the following relationship Requires: 'requires', // Necessity relationship (new)
Likes: 'likes' // Indicates liking relationship
// 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)
} as const } as const
export type VerbType = (typeof VerbType)[keyof typeof VerbType] export type VerbType = (typeof VerbType)[keyof typeof VerbType]