CatDat

Download

CatDat is built on a SQLite database. You can download a snapshot of it below and inspect the data in your terminal or with any database tool of your choice.

This is intended for advanced users. It is useful if you want to explore the data beyond what is available through the web application.

Download CatDat database

Example Queries

-- List of tables
.tables
-- Schema of categories table
.schema categories
-- Number of categories
SELECT COUNT(*) FROM categories;
-- Categories without an nLab link
SELECT id, name FROM categories WHERE nlab_link IS NULL;
-- Categories involving rings
SELECT id, name FROM categories WHERE name LIKE '%ring%';
-- Finite categories
SELECT category_id FROM category_property_assignments
WHERE property_id = 'finite' AND is_satisfied = TRUE;
-- Categories without a generating set
SELECT category_id FROM category_property_assignments
WHERE property_id = 'generating set' AND is_satisfied = FALSE;
-- Abelian categories that are not cocomplete
SELECT a.category_id
FROM category_property_assignments a
CROSS JOIN category_property_assignments b
WHERE a.category_id = b.category_id
AND a.property_id = 'abelian' AND a.is_satisfied = TRUE
AND b.property_id = 'cocomplete' AND b.is_satisfied = FALSE;
-- Number of categories per tag
SELECT tag, count(category_id) AS tagged_categories
FROM category_tag_assignments
GROUP BY tag
ORDER BY tagged_categories DESC;
-- Properties without a dual
SELECT id FROM category_properties WHERE dual_property_id IS NULL;
-- Self-dual properties
SELECT id FROM category_properties WHERE id = dual_property_id;
-- Properties not invariant under equivalences
SELECT id FROM category_properties WHERE invariant_under_equivalences = FALSE;
-- Properties without related properties
SELECT p.id FROM category_properties p
LEFT JOIN related_category_properties r
ON r.property_id = p.id
WHERE r.related_property_id IS NULL;
-- Equivalences
SELECT assumptions, conclusions FROM category_implications_view
WHERE is_equivalence = TRUE;
-- Top 5 implications with the most assumptions
SELECT assumptions, conclusions FROM category_implications_view
ORDER BY json_array_length(assumptions) DESC LIMIT 5;
-- Trivial proofs
SELECT category_id, property_id, is_satisfied, reason
FROM category_property_assignments
WHERE reason = 'This is trivial.';
-- Top 10 longest proofs
SELECT category_id, property_id, is_satisfied, reason
FROM category_property_assignments
ORDER BY length(reason) DESC LIMIT 10;
-- Top 10 properties with the most undecided categories
SELECT p.id AS property_id, COUNT(c.id) AS undecided_categories
FROM category_properties p
CROSS JOIN categories c
LEFT JOIN category_property_assignments cp
ON cp.category_id = c.id AND cp.property_id = p.id
WHERE cp.property_id IS NULL
GROUP BY p.id
ORDER BY undecided_categories DESC LIMIT 10;