Roadmap

Features & Milestones

Introduction

Project History

This project started in early 2009. From January to September of that year I've decided to take a step back from focusing on specific technology and spend time thinking about some of the observations I've made over the previous years on programming and building systems.

Some of the things I was trying to figure out had to do with noticing that many projects I've seen or worked on were building from scratch very similar tooling that existed in either the OS, or other various central management systems - things like user/role management, authentication, the authorization model based on application features expressed as metadata. Other tools - document version management for example, available to developers - were similarly reinvented by them from scratch to various degrees of quality in many of the projects any developer is probably familiar with. Other functionality included reporting, analytics, the management of the various concepts the business domain required.

The main driver for the things I've set to think about then was this question: To what degree can the business components and the technical implementation of a system be decoupled, allowing different roles to better collaborate on a dynamic, evolving system ?

Then in 2014, I've started to look into Angular and looking for an app to implement to learn Angular I've started to work on what became this project.

In total I have spent a few hundred hours in 2009, and between 2014-2018 rewriting a few times the code from scratch and in the process learned NodeJS, React, Typescript, ES6, webpack and a few other things, and with each steps learned a bit more about how various parts of such a system interact with each other.

This has been a very experimental project and I have enjoyed a lot working on it, and as a result found a new appreciation for the challenges language designers face when designing and evolving the semantics of real world languages.

Features

Searching

There are several ways to manage and interact with the types. The first shown here and probably the most used one is Search. Search will return faceted results, support paging and sorting and linking to the Entity viewer.

Search was introduced in 0.5, however the current version did not port it just yet.

Browsing

Browsing gives the user a way to discover the existing types by navigating the types graph. Browsing was introduced in 0.5.

Currently browsing supports the standard browsing, as well as Dashboard (multi-window) browsing and also visually presenting the graphs.

Timeline

Timeline groups together the types by last updated or last accessed time.

Apps

Apps offers another way of navigating through the types. Apps are based on the compose relation which allows to group together types otherwise unrelated.

Manage types

Apps can be manages directly from the Types browsers or the Type viewers

Milestones

Initial Design - Jan-Sep 2009 (~200h)

The basic building blocks slowly came into focus: entity / type, behavior / relation and some ideas about how to bootstrap the system. This was the first overall design work (probably around 20% of the foundational work so far).

v 0.1 Co-extent - Oct-Nov 2014 (~150h)

v 0.16 Test

v 0.16 Readme

Auto-bootstrapping, isA / hasA, reverse relations, added the concept of lists.

v 0.2 Angular UI - Oct 2015 (~50h)

v 0.3 x10d Test - Sep-Nov 2015 (~200h)

v 0.4 Typescript - Feb-Apr 2016 (~200h)

v 0.5 thingies.io rewrite with React UI - July-Nov 2016 (~400h)

v 0.6.1 start rewriting new UI Dec 2016 - Jan 2017 (~170h)

v 0.7.0 SemanticTypes.com Jun-July 2018 (~90h)

New Browser Dashboard layout organizes better the information visually:

Experimental Graph layout:

Dimmer Message

Dimmer sub-header