Build a comprehensive, open-source Business Data Dictionary stored in SQLite as datadict.db (with schema exported to datadict.sql).
The database should collect standardized business data items across all major industries and functional areas from public/open-source resources only.
CREATE TABLE Categories (
CategoryID INTEGER PRIMARY KEY,
Name TEXT NOT NULL UNIQUE, -- e.g., "Manufacturing", "Finance", "Sales", ...
Description TEXT,
Source TEXT
);
CREATE TABLE DataItems (
DataItemID INTEGER PRIMARY KEY,
CategoryID INTEGER NOT NULL REFERENCES Categories(CategoryID),
Name TEXT NOT NULL, -- e.g., "CustomerID", "OrderDate", "GTIN"
Title TEXT, -- Human readable title
Description TEXT,
DataType TEXT, -- "VARCHAR", "DECIMAL", "DATE", "INTEGER", "BOOLEAN", ...
ByteLength INTEGER, -- max length for strings, or total bytes
DecimalScale INTEGER, -- for numeric/decimal fields
IsRequired BOOLEAN DEFAULT FALSE,
IsNullable BOOLEAN DEFAULT TRUE,
DefaultValue TEXT,
AllowedValues TEXT, -- JSON array or comma-separated list
FormatMask TEXT, -- e.g., "YYYY-MM-DD", "999.99"
SourceStandard TEXT, -- e.g., "ISA-95", "Microsoft CDM", "Odoo", "Schema.org", "EDIFACT", ...
SourceURL TEXT,
Version TEXT,
CreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP,
UpdatedAt DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Indexes
CREATE INDEX idx_dataitems_category ON DataItems(CategoryID);
CREATE INDEX idx_dataitems_name ON DataItems(Name);
- Manufacturing
- Finance / Accounting
- Sales / Order Management
- Inventory / Warehouse
- Procurement / Purchasing
- Human Resources
- Healthcare
- Supply Chain / Logistics
- Customer Relationship Management (CRM)
- Product Master Data
- Quality Management
- Maintenance / Asset Management
B2MML / ISA-95 XML schemas (GitHub) Odoo source code & documentation ERPNext / Frappe DocTypes Tryton models Schema.org Public JSON Schemas, OpenAPI specs from open projects Public domain or openly licensed glossaries
Never use paywalled content, X12 Glass, proprietary SAP tables, or scraped commercial sites.Your Task (Step-by-Step Instructions)
Explore the allowed GitHub repos and documentation. List all major modules/entities found.
For every business object (Customer, Product, Order, WorkOrder, Invoice, Employee, etc.), extract: Field names Data types + lengths/scales Required/Optional flags Descriptions Allowed values / enums Map them to the correct Category
Standardize naming (use camelCase or snake_case consistently) Deduplicate similar items across systems (keep best version with multiple sources) Add meaningful Title and Description
Generate and maintain:datadict.sql (full schema + INSERT statements) datadict.db (actual database) sources.md (list of every source used)
Always show the SQL you are about to run or have run. Provide summary statistics: "X items in Manufacturing, Y in Finance..." Keep a running log of progress. Make the final database easily queryable (SELECT * FROM DataItems WHERE CategoryID = ?).
Use Python + sqlite3 (no external heavy dependencies if possible). Make the script idempotent (can be re-run safely). Include functions like insert_or_update_item(...) Output clean, well-commented code.
Be systematic, thorough, and conservative with data quality. Prefer accuracy over quantity. When in doubt, include the item with its original source noted. Start by exploring the B2MML / ISA-95 XML schemas (GitHub), then Microsoft CDM and Odoo repositories, then expand to others.
Let's begin.