This repository has been archived and is no longer maintained.
All specifications have moved to the unified DataJoint documentation:
All specifications from this repository have been migrated to the unified documentation for DataJoint 2.0+:
| Spec Content | New Location |
|---|---|
| All Specifications | Reference/Specs |
| Table Declaration | Table Declaration Spec |
| Query Algebra | Query Algebra Spec |
| Type System | Type System Spec |
| Data Manipulation | Data Manipulation Spec |
| AutoPopulate | AutoPopulate Spec |
| Codec API | Codec API Spec |
| Semantic Matching | Semantic Matching Spec |
- Location: Specifications now live in
datajoint-docs/src/reference/specs/ - Format: Markdown format for better integration with documentation
- Version: Updated for DataJoint 2.0+ baseline
- Organization: Part of unified Reference section
- Old: DSEP (DataJoint-Specs Enhancement Proposals) process [Deprecated]
- New: RFC (Request for Comments) via GitHub Discussions
See the Contributing Guide for the new RFC process.
The DataJoint documentation follows the Diátaxis framework:
- Tutorials — Learn by building
- How-To Guides — Task-oriented guides
- Explanation — Concepts and design
- Reference — Specifications and API (replaces this repo)
The DataJoint Specs establish the standards, conventions, and best practices for designing and managing DataJoint pipelines. These specifications ensure consistency, scalability, and interoperability across different scientific workflows and computing environments.
By following the DataJoint Specs, users and developers can:
- Maintain structured, reproducible data pipelines
- Ensure compatibility across different DataJoint implementations
- Adopt best practices for schema design, data integrity, and computational workflows
- Provide a foundation for future enhancements while preserving backward compatibility
DataJoint Specs evolve independently from DataJoint implementations.
- Each implementation release states the spec version it supports
- Spec releases include a compatibility table listing compliant implementations
- Deprecations and upcoming changes are announced in advance to allow for smooth adoption
Each implementation aligns with a specific spec version, ensuring compliance while allowing for gradual adoption of new features.
Example:
DataJoint Python v2.0.0 - Supports Spec v2.0
- Introduces unified stores configuration
- Redesigned fetch API
Contributions now go through the unified documentation repository:
- Documentation: github.com/datajoint/datajoint-docs
- Contributing Guide: docs.datajoint.com/about/contributing
- Discussion (RFC): GitHub Discussions
- Open a Discussion in datajoint-python with
[RFC]prefix - Discuss with community and maintainers
- If accepted, submit a PR to datajoint-docs
- Specifications are updated in
src/reference/specs/
If you're using DataJoint 0.14.x or earlier:
📖 See the Migration Guide
For pre-2.0 documentation, visit datajoint.github.io/datajoint-python.
This project, including the DataJoint Specification document, is licensed under the CC BY-SA 4.0 License.
- Documentation: https://docs.datajoint.com
- Community: GitHub Discussions
- Issues: datajoint-docs issues
- Email: [email protected]
Last Updated: January 2026 Archive Date: January 2026