# Semantic Types - Project History & Roadmap

Q: What are the goals of this project ?

A: Semantic Types is an experimental platform seeking to understand, and then - if possible - simplify some of the ways in which you describe, interact with, and organize your information in a digital system.

Escher - Relativity

This project began in early 2009 when I realized I was spending too much time focusing on specific technologies and started to reflect on broader observations about programming and system building. I was trying to understand at the time why many projects tend to recreate tools already provided by operating systems or central management systems, such as user/role management, authentication, and feature-based authorization models. Document version management and similar tools were often reconstructed from scratch with varying levels of quality, while reporting, analytics, and business-specific management systems also saw repeated development across projects.

The core question driving this exploration was: How can non-technical components be decoupled from the technical implementation to foster better collaboration among different roles in a dynamic and evolving system?

In 2014, the focus shifted from filling notebooks with list of observations, ideas and diagrams to the first attempt to build an application to test the ideas that have accumulated, which eventually evolved into this project. Between 2014 and 2018, the code was rewritten multiple times, leading to the discovery of many dead ends but also a few aha moments, and with each version new insights into how the various parts of such complex systems interact.

This experimental process has highlighted the intricate challenges involved in designing and evolving real-world programming languages and systems.

Semantic Types (v0.7) - 2018

SemanticTypes

The Semantic Types project is an experimental platform designed to simplify how information is described, organized, and interacted with in digital systems. Its goals include defining comprehensive semantic types for consistent categorization, establishing semantic relationships between types, and creating meaningful events to drive processes. The platform encourages sharing and collaboration, allowing users to build upon existing types, relationships, and events, while developers focus on implementing logic separate from semantics.

It touches on historical efforts in managing data and metadata, such as early markup languages and the evolution to the Semantic Web, which adds semantic layers on top of the existing web to better structure information. The project aims for a system where data and behavior are described declaratively, promoting real-time collaboration and adaptability in a dynamic digital environment.

The latest version is available here: