Graph explorer

Kleisli Database Instances

We use monads to relax the atomicity requirement for data in a database. Depending on the choice of monad, the database fields may contain generalized values such as lists or sets of values, or they may contain exceptions such as various types of nulls. The return operation for monads ensures that any ordinary database instance will count as one of these generalized instances, and the bind operation ensures that generalized values behave well under joins of foreign key sequences. Different monads allow for vastly different types of information to be stored in the database. For example, we show that classical concepts like Markov chains, graphs, and finite state automata are each perfectly captured by a different monad on the same schema.

4 nodes3 linksoverview mapKleisli Database Instances
4 nodes3 links
Kleisli Database Instances4 visible / 4 total nodes / 3 links
AuthorshipTopic signalTopic signalWKleisli Database Instancespreprint / 2012ADavid I. SpivakResearcherTDatabases1586 worksTmath.CT1150 works
PaperSignal 103 links

Kleisli Database Instances

preprint / 2012

Open