--- title: "Seed Module" description: "Seed data management for initializing Knowledge Graphs from trusted, verified sources." icon: "database" --- > Bootstrap Knowledge Graphs with verified taxonomies, reference data, and foundation graphs. --- ## Overview The **Seed Module** provides a system for initializing Knowledge Graphs with verified, structured data from trusted sources — enabling you to start with a reliable foundation rather than an empty graph. Load seed data from CSV, JSON, databases, and APIs. Build a reliable KG foundation to bootstrap extraction. Merge seed data with extracted data using configurable strategies. Validate seed data quality and schema compliance. Manage and track versions of seed data sources. Export seed data to standard formats. **When to use the Seed Module:** - **Bootstrapping** — you have existing structured data (taxonomies, user lists, product catalogs) and want to build on them. - **Reference data** — loading immutable reference information (countries, codes, constants). - **Testing** — loading consistent datasets for development and CI. --- ## SeedDataManager ```python from semantica.seed import SeedDataManager manager = SeedDataManager() manager.register_source("countries", "csv", "data/countries.csv") foundation_kg = manager.create_foundation_graph() ``` | Method | Description | |--------|-------------| | `register_source(name, format, location)` | Add a data source | | `create_foundation_graph()` | Build KG from registered sources | | `validate_quality(seed_data)` | Check data quality | | `integrate_with_extracted(seed, extracted)` | Merge seed and extracted graphs | | `export_seed_data(path, format)` | Export seed data | --- ## SeedDataSource ```python from semantica.seed import SeedDataSource source = SeedDataSource( name="taxonomy", type="json", # "csv" | "json" | "api" | "sql" path="taxonomy.json", config={"encoding": "utf-8"} ) ``` --- ## Merge Strategies ```python final_kg = manager.integrate_seed_extracted( seed_graph=foundation_kg, extracted_data=new_data, strategy="seed_first" # "seed_first" | "extracted_first" | "smart_merge" ) ``` | Strategy | Behavior | |----------|----------| | `seed_first` | Seed data overrides extracted data | | `extracted_first` | Extracted data overrides seed data | | `smart_merge` | Property-level merging with conflict resolution | --- ## Bootstrapping a KG ```python from semantica.seed import SeedDataManager from semantica.ingest import FileIngestor # Load foundation from verified data manager = SeedDataManager() manager.register_source("taxonomy", "json", "taxonomy.json") foundation_kg = manager.create_foundation_graph() # Ingest and merge new data ingestor = FileIngestor() new_data = ingestor.ingest("news_articles.pdf") final_kg = manager.integrate_seed_extracted( seed_graph=foundation_kg, extracted_data=new_data, strategy="seed_first" ) ``` --- ## Configuration ```yaml seed: sources: - name: "employees" type: "csv" path: "./data/employees.csv" merge: strategy: "seed_first" validation: strict: true ``` ```bash export SEED_DATA_DIR=./data/seed export SEED_MERGE_STRATEGY=seed_first ``` --- ## See Also Load unstructured data alongside seed data. The target graph structure. Handle duplicates during merge. Incorporate seed loading in a pipeline.