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.
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.
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.