Initial commit: add .gitignore and README
This commit is contained in:
65
fusionagi/schemas/atomic.py
Normal file
65
fusionagi/schemas/atomic.py
Normal file
@@ -0,0 +1,65 @@
|
||||
"""Atomic semantic units for Super Big Brain: tokenless, addressable context."""
|
||||
|
||||
from enum import Enum
|
||||
from typing import Any
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class AtomicUnitType(str, Enum):
|
||||
"""Type of atomic semantic unit."""
|
||||
|
||||
FACT = "fact"
|
||||
INTENT = "intent"
|
||||
ASSUMPTION = "assumption"
|
||||
CONSTRAINT = "constraint"
|
||||
RELATIONSHIP = "relationship"
|
||||
QUESTION = "question"
|
||||
|
||||
|
||||
class RelationType(str, Enum):
|
||||
"""Type of relation between atomic units."""
|
||||
|
||||
CAUSAL = "causal"
|
||||
TEMPORAL = "temporal"
|
||||
LOGICAL = "logical"
|
||||
ANALOGICAL = "analogical"
|
||||
CONTRADICTS = "contradicts"
|
||||
SUPPORTS = "supports"
|
||||
|
||||
|
||||
class AtomicSemanticUnit(BaseModel):
|
||||
"""Atomic semantic unit: irreducible fact, intent, assumption, or constraint."""
|
||||
|
||||
unit_id: str = Field(..., min_length=1, description="Unique identifier")
|
||||
content: str = Field(..., min_length=1, description="Unit content")
|
||||
type: AtomicUnitType = Field(..., description="Unit type")
|
||||
confidence: float = Field(default=1.0, ge=0.0, le=1.0, description="Confidence in [0, 1]")
|
||||
parent_id: str | None = Field(default=None, description="Parent unit in decomposition tree")
|
||||
source_ref: str | None = Field(default=None, description="Source reference")
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class SemanticRelation(BaseModel):
|
||||
"""Relation between two atomic semantic units."""
|
||||
|
||||
from_id: str = Field(..., min_length=1)
|
||||
to_id: str = Field(..., min_length=1)
|
||||
relation_type: RelationType = Field(...)
|
||||
|
||||
|
||||
class DecompositionResult(BaseModel):
|
||||
"""Result of recursive decomposition: atomic units and relations."""
|
||||
|
||||
units: list[AtomicSemanticUnit] = Field(default_factory=list)
|
||||
relations: list[SemanticRelation] = Field(default_factory=list)
|
||||
depth: int = Field(default=0, ge=0, description="Maximum decomposition depth")
|
||||
|
||||
|
||||
__all__ = [
|
||||
"AtomicUnitType",
|
||||
"RelationType",
|
||||
"AtomicSemanticUnit",
|
||||
"SemanticRelation",
|
||||
"DecompositionResult",
|
||||
]
|
||||
Reference in New Issue
Block a user