π Global Standard: Building upon Shopify's open-source, standardized product taxonomy to create an extended universal language for product classification, empowering merchants and developers alike.
π©πΌβπ» Integration Friendly: Designed with a stable structure and diverse formats for effortless integration into any system.
π Industry Benchmark: Covering a wide array of manufactured products, Open Taxonomy offers extensive categories, attributes, and values, facilitating comprehensive classification.
Learn more about the original project on help.shopify.com
- Open Taxonomy: Bringing LLM Understanding to the World's Products
Ready to dive in? Explore our taxonomy interactively to visualize and discover the extensive categories, attributes, and values.
Open Taxonomy is an open-source extension of Shopify's comprehensive, global standard for product classification. This project aims to provide an enhanced taxonomy for a variety of manufactured products, along with code abstractions that enable LLM agents to interact with and create their own taxonomies.
This repository is the home of Open Taxonomy. It houses the source-of-truth data, distribution files for implementation, and the source code that powers the taxonomy system.
We've structured it to be as user-friendly as possible, whether you're looking to integrate the taxonomy into your system, suggest changes, or delve into how it's developed and maintained.
We also offer a Python SDK to make it easier to interact with the Open Taxonomy project. This SDK provides tools for creating, managing, and querying taxonomy trees, enabling seamless integration with Large Language Models (LLMs).
- Taxonomy Node Management: Create and manage nodes within the taxonomy tree, each representing a category or classification.
- Tree Operations: Perform operations like adding nodes, searching within the tree, and traversing the tree to understand its structure.
- Asynchronous Data Loading: Load taxonomy data asynchronously from a remote JSON source.
- Search and Classification: Utilize natural language processing to classify entries and search within the taxonomy based on a query.
- LLM Integration: Enable Large Language Models to interact with and create taxonomies, making it easier for AI agents to understand and use the classification structure.
To install the Open Taxonomy Project's Python SDK, clone the repository and install the necessary dependencies using pip:
pip install git+https://github.com/Intuitive-Systems/open-taxonomy-python.git
Head over to the Python SDK Repository for more information
Head to the dist
directory to find the files you need and integrate this taxonomy into your system. Currently available in txt
and json
formats, with more on the way. If you need a specific format, please open an issue to let us know!
π΅ Note: While in preview, we are not actively seeking PRs.
All source-of-truth data is located in the data/
directory. Submit PRs here to propose changes to the taxonomy.
Beyond the data, you'll find the tools we use to manage the taxonomy and generate distributions. This is where the system evolves and improves.
This project is built as a simple Ruby app with models and serializers. It parses the data in data/
into a structured format, stored in app/models/category.rb
, and then serializes it to dist/
. The app follows a Rails-like structure and uses ActiveRecord
.
Primary commands include:
make [build] # Build the dist and documentation files
make clean # Remove sentinels and all generated files
make seed # Parse data/ into the local database
make test # Run Ruby tests and cue schema verification
make server # Start the interactive view at http://localhost:4000
For users with minidev
:
- Run
dev up
- Install
ruby
, matching the version in.ruby-version
- Install
cue
, version 0.7.x or higher - Install
make
- Run
bundle install
Note: For users with MacOS, make sure your XCode Command Line Tools are installed and up to date. You can do this by running xcode-select --install
in your terminal.
When editing cue files, run cue fmt
to format them correctly.
If you're diving deeper, here's a quick guide:
./
βββ application.rb # Handles file loading "app-wide"
βββ Makefile # Primary source of useful commands
βββ Rakefile # Only used for testing
βββ app/
β βββ models/ # Simple data object models
β β βββ category.rb # Node-based tree implementation for categories
β βββ serializers/
β βββ source_data/ # For reading/writing source data files
β βββ docs/ # For generating documentation
β βββ dist/ # File-type-centric, one file per distribution type
βββ bin/
β βββ generate_dist # Main entry point for generating dist/
β βββ generate_docs # Main entry point for generating docs/
βββ db/
β βββ schema.rb # Defines tables for models
β βββ seed.rb # Seeds the database from data/
βββ data/
β βββ integrations/ # Integrations and mappings between taxonomies
β βββ localizations/ # Localizations for categories, attributes, and values
β βββ categories/ # Source-of-truth for categories
β βββ attributes.yml # Source-of-truth for attributes
β βββ values.yml # Source-of-truth for values
βββ test/
We welcome contributions! However, PRs will be delayed until the Open Taxonomy approaches a STABLE
release.
You can find the current published version in VERSION
. The changelog is available in CHANGELOG.md
.
We use SemVer for versioning while in the preview stage. Upon stabilization, we'll transition to CalVer in sync with Shopify's API release schedule.
Formal releases are published as GitHub releases and available on the interactive docs site.
Open Taxonomy is released under the MIT License. Explore, play, and build something awesome!
-
Add support attribute descriptions
-
Add support for category descriptions
-
Add basic descriptions for verticals
-
Add Computer Components Category
- Add CPU Category
- Create CPU Attributes
- Add GPU Category
- Create GPU Attributes
-
Standardize and Update Attributes for Computer Systems
- Update Attributes for:
- Barebone Computers
- Computer Servers
- Desktop Computers
- Handheld Devices
- Interactive Kiosks
- Laptops
- Smart Glasses
- Tablet Computers
- Thin & Zero Clients
- Touch Table Computers
- Update Attributes for:
-
Add support for dynamic taxonomy construction based on a list of products from an existing taxonomy
-
Add MVP HP and Lenovo Manufacture Name Taxonomies
-
Add support for disjointed Category Links (for linking to Manufacture naming taxonomies)