Xeto is a data-only type system. The name is derived from the phrase "eXtensible Explicitly Typed Objects". Xeto defines a simple plain text format used to declare types and to exchange typed data. It is designed to build and validate Project Haystack data models. But Xeto is general purpose enough to use with any structured data including CSV, JSON, or SQL data.
Core development for Xeto is under the Haxall Repo. This repo provides additional supporting tools and libraries.
The following series of videos provide instructions on how to use this software to validate data:
- Deep Dive: presentation from Haystack Connect in June 2023 (latest information)
Older videos (some information is slightly out of date):
-
Overview: presentation of high level concepts
-
Axon Shell: setting up and getting around Axon shell
-
Axon Basics: brief intro to Axon language
-
Type System: nominal and structural typing via typeof, isa, and fits
-
Queries: name relationship queries
-
Constrained Queries: create equip types with required points
Important changes since videos were recorded:
-
Runtime uses lib/xeto zip files with xetolib file extension
-
Tools all work with src or zip (src is used if available)
-
Run bin/xeto env to see how given xeto lib is loaded
-
New bin/xeto json-pragma command to only parse lib meta into JSON
-
Dist zip file includes HTML docs for specs now
-
Start re-organization and enhancing ph.points
-
Major refactoring of compiler to process inheritance at compile time
-
Enhance instantiate() function with new graph option
-
Add unloadAll() function to Axon shell
-
Axon shell allows you to evaluate new specs on the fly
-
Qualified names now use double colon such as
ph.points::Sensor
-
Can load database from http URIs now too
-
Query slot syntax is now
Equip.points
instead ofEquip->points
-
Functions that have been renamed:
isa -> is/specIs
query -> queryAll
lintFit -> fitsExplain
lintFindAllFits -> fitsMatchAll
-
New xeto command line tool to compile to JSON
-
Subset of docs show data type functions (data lib)
Xeto is packaged as a simple zip file with a command line tool that requires the Java VM to run. Steps to download and run:
-
Make sure you have Java installed
-
Download the latest release
-
Unzip to your local machine
-
You might need to run 'chmod +x' on the bin scripts (OS X)
-
Run 'bin/axon -v' to verify the install
-
Watch the videos above to learn how to use the axon shell to validate your data
Protos is licensed under the Academic Free License 3.0.