Files
semantica/docs/modules.md
T

1138 lines
34 KiB
Markdown

# Modules & Architecture
Semantica is built with a modular architecture, designed to be flexible, extensible, and scalable. This guide provides a comprehensive overview of all modules, their responsibilities, key features, and components.
!!! info "About This Guide"
This guide covers all 20+ core modules in Semantica, organized by their functional layer. Each module can be used independently or combined into powerful pipelines.
---
## Module Overview
Semantica's modules are organized into six logical layers:
| Layer | Modules | Description |
| :--- | :--- | :--- |
| **Input Layer** | [Ingest](#ingest-module), [Parse](#parse-module), [Split](#split-module), [Normalize](#normalize-module) | Data ingestion, parsing, chunking, and cleaning |
| **Core Processing** | [Semantic Extract](#semantic-extract-module), [Knowledge Graph](#knowledge-graph-kg-module), [Ontology](#ontology-module), [Reasoning](#reasoning-module) | Entity extraction, graph construction, inference |
| **Storage** | [Embeddings](#embeddings-module), [Vector Store](#vector-store-module), [Graph Store](#graph-store-module), [Triplet Store](#triplet-store-module) | Vector, graph, and triplet persistence |
| **Quality Assurance** | [Deduplication](#deduplication-module), [Conflicts](#conflicts-module) | Data quality and consistency |
| **Context & Memory** | [Context](#context-module), [Seed](#seed-module) | Agent memory and foundation data |
| **Output & Orchestration** | [Export](#export-module), [Visualization](#visualization-module), [Pipeline](#pipeline-module) | Export, visualization, and workflow management |
---
## Input Layer
These modules handle data ingestion, parsing, chunking, and preparation.
---
### Ingest Module
!!! abstract "Purpose"
The entry point for data ingestion. Connects to various data sources including files, web, databases, and MCP servers.
**Key Features:**
- 50+ file format support (PDF, DOCX, HTML, JSON, CSV, etc.)
- Web scraping with JavaScript rendering
- Database integration (SQL, NoSQL)
- Real-time streaming support
- MCP (Model Context Protocol) server integration
- Batch processing capabilities
- Metadata extraction and preservation
**Components:**
- `FileIngestor` — Read files (PDF, DOCX, HTML, JSON, CSV, etc.)
- `WebIngestor` — Scrape and ingest web pages
- `FeedIngestor` — Process RSS/Atom feeds
- `StreamIngestor` — Real-time data streaming
- `DBIngestor` — Database queries and ingestion
- `EmailIngestor` — Process email messages
- `RepoIngestor` — Git repository analysis
- `MCPIngestor` — Connect to MCP servers for resource and tool-based ingestion
**Quick Example:**
```python
from semantica.ingest import FileIngestor, WebIngestor
# Ingest local files
file_ingestor = FileIngestor()
documents = file_ingestor.ingest("data/", recursive=True)
# Ingest web content
web_ingestor = WebIngestor()
web_docs = web_ingestor.ingest("https://example.com")
```
**API Reference**: [Ingest Module](reference/ingest.md)
---
### Parse Module
!!! abstract "Purpose"
Extracts raw text and metadata from ingested documents. Supports OCR, table extraction, and structured data parsing.
**Key Features:**
- 50+ file format support
- OCR for images and scanned documents
- Table extraction from PDFs and spreadsheets
- Metadata preservation
- Automatic format detection
- Structured data parsing (JSON, CSV, XML)
- Code file parsing with syntax awareness
**Components:**
- `DocumentParser` — Main parser orchestrator
- `PDFParser` — Extract text, tables, images from PDFs
- `DOCXParser` — Parse Word documents
- `HTMLParser` — Extract content from HTML
- `JSONParser` — Parse structured JSON data
- `ExcelParser` — Process spreadsheets
- `ImageParser` — OCR and image analysis
- `CodeParser` — Parse source code files
**Quick Example:**
```python
from semantica.parse import DocumentParser
parser = DocumentParser(ocr_enabled=True)
parsed_docs = parser.parse(documents)
for doc in parsed_docs:
print(f"Content: {doc.content[:100]}...")
print(f"Tables found: {len(doc.tables)}")
```
**API Reference**: [Parse Module](reference/parse.md)
---
### Split Module
!!! abstract "Purpose"
Comprehensive document chunking and splitting for optimal processing. Provides 15+ splitting methods including KG-aware chunking.
**Key Features:**
- Multiple standard splitting methods (recursive, token, sentence, paragraph)
- Semantic-based chunking using NLP and embeddings
- Entity-aware chunking for GraphRAG workflows
- Relation-aware chunking for KG preservation
- Graph-based and ontology-aware chunking
- Hierarchical multi-level chunking
- Community detection-based splitting
- Sliding window chunking with overlap
- Table-specific chunking
- Chunk validation and quality assessment
- Provenance tracking for data lineage
**Components:**
- `TextSplitter` — Unified text splitter with method parameter
- `SemanticChunker` — Semantic-based chunking coordinator
- `StructuralChunker` — Structure-aware chunking (headings, lists)
- `SlidingWindowChunker` — Fixed-size sliding window chunking
- `TableChunker` — Table-specific chunking
- `EntityAwareChunker` — Entity boundary-preserving chunker
- `RelationAwareChunker` — Triplet-preserving chunker
- `GraphBasedChunker` — Graph structure-based chunker
- `OntologyAwareChunker` — Ontology concept-based chunker
- `HierarchicalChunker` — Multi-level hierarchical chunker
- `ChunkValidator` — Chunk quality validation
- `ProvenanceTracker` — Chunk provenance tracking
**Supported Methods:**
| Category | Methods |
| :--- | :--- |
| **Standard** | recursive, token, sentence, paragraph, character, word, semantic_transformer, llm |
| **KG/Ontology** | entity_aware, relation_aware, graph_based, ontology_aware, hierarchical, community_detection, centrality_based |
**Quick Example:**
```python
from semantica.split import TextSplitter
# Standard recursive splitting
splitter = TextSplitter(method="recursive", chunk_size=1000, chunk_overlap=200)
chunks = splitter.split(text)
# Entity-aware for GraphRAG
splitter = TextSplitter(method="entity_aware", ner_method="llm", chunk_size=1000)
chunks = splitter.split(text)
```
---
### Normalize Module
!!! abstract "Purpose"
Cleans, standardizes, and prepares text for semantic extraction. Handles encoding, entity names, dates, and numbers.
**Key Features:**
- Text cleaning and noise removal
- Encoding normalization (Unicode handling)
- Entity name standardization
- Date and number formatting
- Language detection
- Whitespace normalization
- Special character handling
**Components:**
- `TextNormalizer` — Main normalization orchestrator
- `TextCleaner` — Remove noise, fix encoding
- `DataCleaner` — Clean structured data
- `EntityNormalizer` — Normalize entity names
- `DateNormalizer` — Standardize date formats
- `NumberNormalizer` — Normalize numeric values
- `LanguageDetector` — Detect document language
- `EncodingHandler` — Handle character encoding
**Quick Example:**
```python
from semantica.normalize import TextNormalizer
normalizer = TextNormalizer(
normalize_entities=True,
normalize_dates=True,
detect_language=True
)
normalized = normalizer.normalize(parsed_docs)
for doc in normalized:
print(f"Language: {doc.language}")
```
**API Reference**: [Normalize Module](reference/normalize.md)
---
## Core Processing Layer
These modules form the intelligence core—extracting meaning, building relationships, and inferring knowledge.
---
### Semantic Extract Module
!!! abstract "Purpose"
The brain of Semantica. Uses LLMs and NLP to extract entities, relationships, and semantic meaning from text.
**Key Features:**
- Multiple NER methods (rule-based, ML, LLM)
- Relationship extraction with confidence scoring
- Event extraction
- Custom entity type support
- Multi-language support
- Semantic network extraction
- Coreference resolution
**Components:**
- `NERExtractor` — Named Entity Recognition
- `RelationExtractor` — Extract relationships between entities
- `SemanticAnalyzer` — Deep semantic analysis
- `SemanticNetworkExtractor` — Extract semantic networks
- `EventExtractor` — Extract events from text
- `CoreferenceResolver` — Resolve entity coreferences
**Quick Example:**
```python
from semantica.semantic_extract import NERExtractor, RelationExtractor
# Extract entities
extractor = NERExtractor(method="llm", model="gpt-4")
entities = extractor.extract(normalized_docs)
# Extract relationships
relation_extractor = RelationExtractor()
relationships = relation_extractor.extract(normalized_docs, entities=entities)
for rel in relationships[:5]:
print(f"{rel.subject.text} --[{rel.predicate}]--> {rel.object.text}")
```
**API Reference**: [Semantic Extract Module](reference/semantic_extract.md)
---
### Knowledge Graph (KG) Module
!!! abstract "Purpose"
Constructs and manages knowledge graphs from extracted entities and relationships. Supports multiple backends and advanced analytics.
**Key Features:**
- Graph construction from entities/relationships
- Multiple backend support (NetworkX, Neo4j)
- Temporal graph support
- Graph analytics and metrics
- Entity resolution and deduplication
- Community detection
- Centrality calculations
- Path finding algorithms
- Graph validation
**Components:**
- `GraphBuilder` — Construct knowledge graphs
- `GraphAnalyzer` — Analyze graph structure and properties
- `EntityResolver` — Resolve entity conflicts and duplicates
- `ConflictDetector` — Detect conflicting information
- `CentralityCalculator` — Calculate node importance metrics
- `CommunityDetector` — Detect community structure
- `ConnectivityAnalyzer` — Analyze graph connectivity
- `SeedManager` — Manage seed data for KG initialization
- `TemporalQuery` — Query temporal knowledge graphs
- `Deduplicator` — Remove duplicate entities/relationships
**Quick Example:**
```python
from semantica.kg import GraphBuilder, GraphAnalyzer
# Build graph
builder = GraphBuilder(backend="networkx", temporal=True)
kg = builder.build(entities, relationships)
# Analyze graph
analyzer = GraphAnalyzer()
metrics = analyzer.analyze(kg)
print(f"Nodes: {metrics['nodes']}, Edges: {metrics['edges']}")
print(f"Density: {metrics['density']:.3f}")
```
**API Reference**: [Knowledge Graph Module](reference/kg.md)
---
### Ontology Module
!!! abstract "Purpose"
Defines schema and structure for your knowledge domain. Generates and validates ontologies with OWL/RDF export.
**Key Features:**
- Automatic ontology generation (6-stage pipeline)
- OWL/RDF/Turtle export
- Class and property inference
- Ontology validation
- Symbolic reasoning (HermiT, Pellet)
- Version management
- SHACL constraint support
- Ontology merging and alignment
**Components:**
- `OntologyGenerator` — Generate ontologies from knowledge graphs
- `OntologyValidator` — Validate ontology structure
- `OWLGenerator` — Generate OWL format ontologies
- `PropertyGenerator` — Generate ontology properties
- `ClassInferrer` — Infer ontology classes
- `OntologyMerger` — Merge multiple ontologies
- `ReasonerInterface` — Interface with symbolic reasoners
**Quick Example:**
```python
from semantica.ontology import OntologyGenerator
generator = OntologyGenerator(base_uri="https://example.org/ontology/")
ontology = generator.generate_from_graph(kg)
# Export to OWL
owl_content = generator.export_owl(ontology, format="turtle")
print(f"Generated {len(owl_content)} lines of OWL")
```
**API Reference**: [Ontology Module](reference/ontology.md)
---
### Reasoning Module
!!! abstract "Purpose"
Infers new facts and validates existing knowledge using logical rules. Supports forward/backward chaining and explanation generation.
**Key Features:**
- Forward and backward chaining
- Rule-based inference
- Deductive and abductive reasoning
- Explanation generation
- RETE algorithm support
- Custom rule definition
- Conflict detection in inferences
- Temporal reasoning
**Components:**
- `InferenceEngine` — Main inference orchestrator
- `RuleManager` — Manage inference rules
- `DeductiveReasoner` — Deductive reasoning
- `AbductiveReasoner` — Abductive reasoning
- `ExplanationGenerator` — Generate explanations for inferences
- `RETEEngine` — RETE algorithm for rule matching
**Quick Example:**
```python
from semantica.reasoning import InferenceEngine, RuleManager
inference_engine = InferenceEngine()
rule_manager = RuleManager()
rules = [
"IF Person worksFor Company AND Company locatedIn City THEN Person livesIn City",
"IF Person hasFriend Person2 AND Person2 hasFriend Person3 THEN Person knows Person3"
]
rule_manager.add_rules(rules)
new_facts = inference_engine.forward_chain(kg, rule_manager)
print(f"Inferred {len(new_facts)} new facts")
```
**API Reference**: [Reasoning Module](reference/reasoning.md)
---
## Storage Layer
These modules handle persistence and retrieval of vectors, graphs, and triplets.
---
### Embeddings Module
!!! abstract "Purpose"
Generates vector embeddings for text, images, and audio. Supports multiple providers with caching and batch processing.
**Key Features:**
- Multiple provider support (OpenAI, Cohere, HuggingFace, Sentence Transformers)
- Text, image, and audio embeddings
- Multimodal embeddings
- Batch processing
- Caching support
- Custom models
- Similarity calculations
**Components:**
- `EmbeddingGenerator` — Main embedding orchestrator
- `TextEmbedder` — Generate text embeddings
- `ImageEmbedder` — Generate image embeddings
- `AudioEmbedder` — Generate audio embeddings
- `MultimodalEmbedder` — Combine multiple modalities
- `EmbeddingOptimizer` — Optimize embedding quality
- `ProviderAdapters` — Support for OpenAI, Cohere, etc.
**Quick Example:**
```python
from semantica.embeddings import EmbeddingGenerator
generator = EmbeddingGenerator(
provider="openai",
model="text-embedding-3-small"
)
embeddings = generator.generate(documents)
# Calculate similarity
similarity = generator.similarity(embeddings[0], embeddings[1])
print(f"Similarity: {similarity:.3f}")
```
**API Reference**: [Embeddings Module](reference/embeddings.md)
---
### Vector Store Module
!!! abstract "Purpose"
Manages storage and retrieval of high-dimensional vectors. Supports hybrid search combining vector and keyword search.
**Key Features:**
- Multiple backend support (FAISS, Weaviate, Qdrant, Milvus)
- Hybrid search (vector + keyword)
- Metadata filtering
- Batch operations
- Similarity search with scoring
- Index management
- Namespace support
**Components:**
- `VectorStore` — Main vector store interface
- `FAISSAdapter` — FAISS integration
- `WeaviateAdapter` — Weaviate integration
- `HybridSearch` — Combine vector and keyword search
- `VectorRetriever` — Retrieve relevant vectors
**Quick Example:**
```python
from semantica.vector_store import VectorStore, HybridSearch
vector_store = VectorStore(backend="faiss")
vector_store.store(embeddings, documents, metadata)
# Hybrid search
hybrid_search = HybridSearch(vector_store)
results = hybrid_search.search(
query="machine learning",
top_k=10,
filters={"category": "AI"}
)
```
**API Reference**: [Vector Store Module](reference/vector_store.md)
---
### Graph Store Module
!!! abstract "Purpose"
Integration with property graph databases for storing and querying knowledge graphs.
**Key Features:**
- Multiple backend support (Neo4j, FalkorDB)
- Cypher query language
- Graph algorithms and analytics
- Transaction support
- Index management
- High-performance queries
- Batch operations
**Components:**
- `GraphStore` — Main graph store interface
- `Neo4jAdapter` — Neo4j database integration
- `FalkorDBAdapter` — FalkorDB (Redis-based) integration
- `NodeManager` — Node CRUD operations
- `RelationshipManager` — Relationship CRUD operations
- `QueryEngine` — Cypher query execution
- `GraphAnalytics` — Graph algorithms and analytics
**Quick Example:**
```python
from semantica.graph_store import GraphStore
store = GraphStore(backend="neo4j", uri="bolt://localhost:7687")
store.connect()
# Create nodes and relationships
alice = store.create_node(
labels=["Person"],
properties={"name": "Alice", "age": 30}
)
bob = store.create_node(
labels=["Person"],
properties={"name": "Bob", "age": 25}
)
store.create_relationship(
start_node_id=alice["id"],
end_node_id=bob["id"],
rel_type="KNOWS",
properties={"since": 2020}
)
# Query with Cypher
results = store.execute_query("MATCH (p:Person) RETURN p.name")
```
**API Reference**: [Graph Store Module](reference/graph_store.md)
---
### Triplet Store Module
!!! abstract "Purpose"
RDF triplet store integration for semantic web applications. Supports SPARQL queries and multiple backends.
**Key Features:**
- Multi-backend support (Blazegraph, Jena, RDF4J, Virtuoso)
- CRUD operations for RDF triplets
- SPARQL query execution and optimization
- Bulk data loading with progress tracking
- Query caching and optimization
- Transaction support
- Store adapter pattern
**Components:**
- `TripletManager` — Main triplet store management coordinator
- `QueryEngine` — SPARQL query execution and optimization
- `BulkLoader` — High-volume data loading with progress tracking
- `BlazegraphAdapter` — Blazegraph integration
- `JenaAdapter` — Apache Jena integration
- `RDF4JAdapter` — Eclipse RDF4J integration
- `VirtuosoAdapter` — Virtuoso RDF store integration
- `QueryPlan` — Query execution plan dataclass
- `LoadProgress` — Bulk loading progress tracking
**Algorithms:**
| Category | Algorithms |
| :--- | :--- |
| **Query Optimization** | Cost estimation, query rewriting, LIMIT injection |
| **Caching** | MD5-based cache keys, LRU eviction |
| **Bulk Loading** | Batch processing, retry with exponential backoff |
**Quick Example:**
```python
from semantica.triplet_store import TripletManager, execute_query
manager = TripletManager()
store = manager.register_store("main", "blazegraph", "http://localhost:9999/blazegraph")
# Add triplet
result = manager.add_triplet({
"subject": "http://example.org/Alice",
"predicate": "http://example.org/knows",
"object": "http://example.org/Bob"
}, store_id="main")
# Execute SPARQL
query_result = execute_query("SELECT ?s ?p ?o WHERE { ?s ?p ?o } LIMIT 10", store)
```
**API Reference**: [Triplet Store Module](reference/triplet_store.md)
---
## Quality Assurance Layer
These modules ensure data quality, handle duplicates, and resolve conflicts.
---
### Deduplication Module
!!! abstract "Purpose"
Comprehensive entity deduplication and merging. Detects duplicates using multiple similarity methods and merges them intelligently.
**Key Features:**
- Multiple similarity methods (exact, Levenshtein, Jaro-Winkler, cosine, embedding)
- Duplicate detection with confidence scoring
- Entity merging with configurable strategies
- Cluster-based batch deduplication
- Provenance preservation during merges
- Relationship preservation
- Incremental processing support
**Components:**
- `DuplicateDetector` — Detects duplicate entities using similarity metrics
- `EntityMerger` — Merges duplicate entities using configurable strategies
- `SimilarityCalculator` — Multi-factor similarity between entities
- `MergeStrategyManager` — Manages merge strategies and conflict resolution
- `ClusterBuilder` — Builds clusters for batch deduplication
**Merge Strategies:**
| Strategy | Description |
| :--- | :--- |
| `keep_first` | Preserve first entity, merge others |
| `keep_last` | Preserve last entity, merge others |
| `keep_most_complete` | Preserve entity with most properties |
| `keep_highest_confidence` | Preserve entity with highest confidence |
| `merge_all` | Combine all properties and relationships |
**Quick Example:**
```python
from semantica.deduplication import DuplicateDetector, EntityMerger, MergeStrategy
# Detect duplicates
detector = DuplicateDetector(similarity_threshold=0.8)
duplicate_groups = detector.detect_duplicate_groups(entities)
# Merge duplicates
merger = EntityMerger(preserve_provenance=True)
merge_operations = merger.merge_duplicates(
entities,
strategy=MergeStrategy.KEEP_MOST_COMPLETE
)
merged_entities = [op.merged_entity for op in merge_operations]
print(f"Reduced from {len(entities)} to {len(merged_entities)} entities")
```
---
### Conflicts Module
!!! abstract "Purpose"
Detects and resolves conflicts from multiple data sources. Provides investigation guides and source tracking.
**Key Features:**
- Multi-source conflict detection (value, type, relationship, temporal, logical)
- Source tracking and provenance management
- Conflict analysis and pattern identification
- Multiple resolution strategies (voting, credibility-weighted, recency)
- Investigation guide generation
- Source credibility scoring
- Conflict reporting and statistics
**Components:**
- `ConflictDetector` — Detects conflicts from multiple sources
- `ConflictResolver` — Resolves conflicts using various strategies
- `ConflictAnalyzer` — Analyzes conflict patterns and trends
- `SourceTracker` — Tracks source information and provenance
- `InvestigationGuideGenerator` — Generates investigation guides
**Resolution Strategies:**
| Strategy | Algorithm |
| :--- | :--- |
| **Voting** | Majority value selection using frequency counting |
| **Credibility Weighted** | Weighted average using source credibility scores |
| **Temporal Selection** | Newest/oldest value based on timestamps |
| **Confidence Selection** | Maximum confidence value selection |
**Quick Example:**
```python
from semantica.conflicts import detect_and_resolve, ConflictDetector
# Using convenience function
conflicts, results = detect_and_resolve(
entities,
property_name="name",
resolution_strategy="voting"
)
# Using classes directly
detector = ConflictDetector()
conflicts = detector.detect_value_conflicts(entities, "name")
```
---
### KG Quality Assurance Module
!!! abstract "Purpose"
Comprehensive quality assessment, validation, and automated fixes for knowledge graphs.
**Key Features:**
- Quality metrics calculation (overall, completeness, consistency)
- Consistency checking (logical, temporal, hierarchical)
- Completeness validation (entity, relationship, property)
- Automated fixes (duplicates, inconsistencies, missing properties)
- Quality reporting with issue tracking
- Validation engine with rules and constraints
- Improvement suggestions
**Components:**
- `KGQualityAssessor` — Overall quality assessment coordinator
- `ConsistencyChecker` — Consistency validation engine
- `CompletenessValidator` — Completeness validation engine
- `QualityMetrics` — Quality metrics calculator
- `ValidationEngine` — Rule and constraint validation
- `RuleValidator` — Rule-based validation
- `ConstraintValidator` — Constraint-based validation
- `QualityReporter` — Quality report generation
- `IssueTracker` — Issue tracking and management
- `ImprovementSuggestions` — Improvement suggestions generator
- `AutomatedFixer` — Automated issue fixing
- `AutoMerger` — Automatic merging of duplicates
- `AutoResolver` — Automatic conflict resolution
Note: The KG quality assessment module has been temporarily removed and will be reintroduced in a future release.
---
## Context & Memory Layer
These modules provide context engineering for agents and foundation data management.
---
### Context Module
!!! abstract "Purpose"
Context engineering infrastructure for agents. Formalizes context as a graph of connections with RAG-enhanced memory.
**Key Features:**
- Context graph construction from entities, relationships, and conversations
- Agent memory management with RAG integration
- Entity linking across sources with URI assignment
- Hybrid context retrieval (vector + graph + memory)
- Conversation history management
- Context accumulation and synthesis
- Graph-based context traversal
**Components:**
- `ContextGraphBuilder` — Builds context graphs from various sources
- `ContextNode` — Context graph node data structure
- `ContextEdge` — Context graph edge data structure
- `AgentMemory` — Manages persistent agent memory with RAG
- `MemoryItem` — Memory item data structure
- `EntityLinker` — Links entities across sources with URIs
- `ContextRetriever` — Retrieves relevant context from multiple sources
**Algorithms:**
| Category | Algorithms |
| :--- | :--- |
| **Graph Construction** | BFS/DFS traversal, type-based indexing |
| **Memory Management** | Vector embedding, similarity search, retention policies |
| **Context Retrieval** | Vector similarity, multi-hop graph expansion, hybrid scoring |
| **Entity Linking** | Hash-based URI generation, text similarity matching |
**Quick Example:**
```python
from semantica.context import build_context, ContextGraphBuilder, AgentMemory
# Using convenience function
result = build_context(
entities=entities,
relationships=relationships,
vector_store=vs,
knowledge_graph=kg
)
# Using classes directly
builder = ContextGraphBuilder()
graph = builder.build_from_entities_and_relationships(entities, relationships)
memory = AgentMemory(vector_store=vs, knowledge_graph=kg)
memory_id = memory.store("User asked about Python", metadata={"type": "conversation"})
results = memory.retrieve("Python", max_results=5)
```
---
### Seed Module
!!! abstract "Purpose"
Seed data management for initial knowledge graph construction. Builds on verified knowledge from multiple sources.
**Key Features:**
- Multi-source seed data loading (CSV, JSON, Database, API)
- Foundation graph creation from seed data
- Seed data quality validation
- Integration with extracted data using configurable merge strategies
- Version management for seed sources
- Export capabilities (JSON, CSV)
- Schema template validation
**Components:**
- `SeedDataManager` — Main coordinator for seed data operations
- `SeedDataSource` — Seed data source definition
- `SeedData` — Seed data container
**Merge Strategies:**
| Strategy | Description |
| :--- | :--- |
| `seed_first` | Seed data takes precedence, extracted fills gaps |
| `extracted_first` | Extracted data takes precedence, seed fills gaps |
| `merge` | Property merging, seed takes precedence for conflicts |
**Quick Example:**
```python
from semantica.seed import SeedDataManager
manager = SeedDataManager()
manager.register_source("entities", "json", "data/entities.json")
foundation = manager.create_foundation_graph()
validation = manager.validate_quality(foundation)
```
---
## Output & Orchestration Layer
These modules handle export, visualization, and workflow management.
---
### Export Module
!!! abstract "Purpose"
Export knowledge graphs and data to various formats for use in external tools.
**Key Features:**
- Multiple export formats (JSON, RDF, CSV, OWL, GraphML, GEXF)
- Custom export formats
- Batch export
- Metadata preservation
- Streaming export for large graphs
- Vector export support
**Components:**
- `JSONExporter` — Export to JSON
- `RDFExporter` — Export to RDF/XML
- `CSVExporter` — Export to CSV
- `GraphExporter` — Export to graph formats (GraphML, GEXF)
- `OWLExporter` — Export to OWL
- `VectorExporter` — Export vectors
**Quick Example:**
```python
from semantica.export import JSONExporter, RDFExporter, CSVExporter
# Export to multiple formats
JSONExporter().export(kg, "output.json")
RDFExporter().export(kg, "output.rdf")
CSVExporter().export(kg, "output.csv")
```
**API Reference**: [Export Module](reference/export.md)
---
### Visualization Module
!!! abstract "Purpose"
Visual exploration of knowledge graphs, embeddings, and analytics data.
**Key Features:**
- Interactive graph visualization
- Embedding visualization (t-SNE, PCA, UMAP)
- Temporal data visualization
- Ontology visualization
- Multiple output formats (HTML, PNG, SVG)
- Custom styling
**Components:**
- `KGVisualizer` — Visualize knowledge graphs
- `EmbeddingVisualizer` — Visualize embeddings (t-SNE, PCA, UMAP)
- `AnalyticsVisualizer` — Visualize graph analytics
- `TemporalVisualizer` — Visualize temporal data
- `OntologyVisualizer` — Visualize ontology structure
- `SemanticNetworkVisualizer` — Visualize semantic networks
**Quick Example:**
```python
from semantica.visualization import KGVisualizer, EmbeddingVisualizer
# Visualize knowledge graph
KGVisualizer().visualize(kg, output_format="html", output_path="graph.html")
# Visualize embeddings
EmbeddingVisualizer().visualize(embeddings, method="tsne", output_path="embeddings.png")
```
**API Reference**: [Visualization Module](reference/visualization.md)
---
### Pipeline Module
!!! abstract "Purpose"
Orchestrates workflows, connecting modules into robust, executable pipelines.
**Key Features:**
- Pipeline construction DSL
- Parallel execution
- Error handling and recovery
- Resource scheduling
- Pipeline validation
- Monitoring and logging
- Checkpoint support
**Components:**
- `PipelineBuilder` — Build complex pipelines
- `ExecutionEngine` — Execute pipelines
- `FailureHandler` — Handle pipeline failures
- `ParallelismManager` — Enable parallel processing
- `ResourceScheduler` — Schedule resources
- `PipelineValidator` — Validate pipeline configuration
**Quick Example:**
```python
from semantica.pipeline import PipelineBuilder
from semantica.ingest import FileIngestor
from semantica.parse import DocumentParser
from semantica.semantic_extract import NERExtractor
builder = PipelineBuilder()
pipeline = builder \
.add_step("ingest", FileIngestor()) \
.add_step("parse", DocumentParser()) \
.add_step("extract", NERExtractor()) \
.build()
result = pipeline.execute(sources=["data/"], parallel=True)
```
**API Reference**: [Pipeline Module](reference/pipeline.md)
---
## Integration Patterns
### Pattern 1: Complete Knowledge Graph Pipeline
```python
from semantica.core import Semantica
semantica = Semantica()
result = semantica.build_knowledge_base(
sources=["documents/"],
embeddings=True,
graph=True,
normalize=True
)
```
### Pattern 2: Custom Pipeline with Module Selection
```python
from semantica.ingest import FileIngestor
from semantica.parse import DocumentParser
from semantica.split import TextSplitter
from semantica.normalize import TextNormalizer
from semantica.semantic_extract import NERExtractor, RelationExtractor
from semantica.kg import GraphBuilder
from semantica.deduplication import DuplicateDetector, EntityMerger, MergeStrategy
# Ingest and parse
documents = FileIngestor().ingest("data/")
parsed = DocumentParser().parse(documents)
# Split and normalize
chunks = TextSplitter(method="entity_aware").split(parsed)
normalized = TextNormalizer().normalize(chunks)
# Extract and build
entities = NERExtractor().extract(normalized)
relationships = RelationExtractor().extract(normalized, entities)
kg = GraphBuilder().build(entities, relationships)
# Quality assurance - deduplicate entities
detector = DuplicateDetector(similarity_threshold=0.8)
duplicate_groups = detector.detect_duplicate_groups(entities)
merger = EntityMerger()
merge_operations = merger.merge_duplicates(entities, strategy=MergeStrategy.KEEP_MOST_COMPLETE)
deduplicated = [op.merged_entity for op in merge_operations]
```
### Pattern 3: GraphRAG with Hybrid Search
```python
from semantica.core import Semantica
from semantica.vector_store import VectorStore, HybridSearch
from semantica.context import AgentMemory
semantica = Semantica()
result = semantica.build_knowledge_base(["documents/"])
vector_store = VectorStore()
vector_store.store(result["embeddings"], result["documents"])
# Agent memory with RAG
memory = AgentMemory(vector_store=vector_store, knowledge_graph=result["knowledge_graph"])
memory.store("User query about AI", metadata={"type": "query"})
# Hybrid search
hybrid_search = HybridSearch(vector_store)
results = hybrid_search.search(
query="What is the relationship between X and Y?",
graph=result["knowledge_graph"],
top_k=10
)
```
### Pattern 4: Temporal Graph with Reasoning
```python
from semantica.kg import GraphBuilder
from semantica.reasoning import InferenceEngine, RuleManager
# Build temporal graph
builder = GraphBuilder(temporal=True)
kg = builder.build(entities, relationships)
# Add reasoning
inference_engine = InferenceEngine()
rule_manager = RuleManager()
rule_manager.add_rules(["IF A THEN B"])
new_facts = inference_engine.forward_chain(kg, rule_manager)
```
---
## Quick Reference: All Modules
| Module | Import | Main Class | Purpose |
| :--- | :--- | :--- | :--- |
| **Ingest** | `semantica.ingest` | `FileIngestor` | Data ingestion |
| **Parse** | `semantica.parse` | `DocumentParser` | Document parsing |
| **Split** | `semantica.split` | `TextSplitter` | Text chunking |
| **Normalize** | `semantica.normalize` | `TextNormalizer` | Data cleaning |
| **Semantic Extract** | `semantica.semantic_extract` | `NERExtractor` | Entity extraction |
| **KG** | `semantica.kg` | `GraphBuilder` | Graph construction |
| **Ontology** | `semantica.ontology` | `OntologyGenerator` | Ontology generation |
| **Reasoning** | `semantica.reasoning` | `InferenceEngine` | Logical inference |
| **Embeddings** | `semantica.embeddings` | `EmbeddingGenerator` | Vector generation |
| **Vector Store** | `semantica.vector_store` | `VectorStore` | Vector storage |
| **Graph Store** | `semantica.graph_store` | `GraphStore` | Graph database |
| **Triplet Store** | `semantica.triplet_store` | `TripletManager` | RDF storage |
| **Deduplication** | `semantica.deduplication` | `DuplicateDetector` | Duplicate removal |
| **Conflicts** | `semantica.conflicts` | `ConflictDetector` | Conflict resolution |
| **Context** | `semantica.context` | `AgentMemory` | Agent context |
| **Seed** | `semantica.seed` | `SeedDataManager` | Foundation data |
| **Export** | `semantica.export` | `JSONExporter` | Data export |
| **Visualization** | `semantica.visualization` | `KGVisualizer` | Visualization |
| **Pipeline** | `semantica.pipeline` | `PipelineBuilder` | Workflow orchestration |
---
## Next Steps
- **[Core Concepts](concepts.md)** — Understand the fundamental concepts
- **[Use Cases](use-cases.md)** — See real-world applications
- **[Examples](examples.md)** — Practical code examples
- **[API Reference](reference/core.md)** — Detailed API documentation
---
!!! info "Contribute"
Found an issue or want to improve this guide? [Contribute on GitHub](https://github.com/Hawksight-AI/semantica)
**Last Updated**: 2024