import PageTemplate, { Breadcrumb, PageTemplateInput } from 'template/page'; interface Input extends PageTemplateInput {} class HomePageTemplate extends PageTemplate { protected getContentTitle(): string { return '9DB dev server'; } protected getBreadcrumbs(): Breadcrumb[] { return [ { label: 'Home' } ]; } protected getContentHtml(): string { return `

Overview

This is a development server that I'm using for testing out my new 9DB database and API specification. You can view the code that powers this site here.

What is 9DB?

9DB is a set of guidelines that make it easier to link between bits of related data on the internet. It draws from a lot of prior art regarding linked data and semantic websites, such as:

... and so on. Suffice it to say that these attempts, while noble, have never really made significant headway into the hearts and minds of your average web user. On the other hand, the early foundations of the web, like hyperlinks, discrete pages and sites, and markup, have been adopted and used much more widely. The goal should be to enable the same kind of adoption of linked data for the average user.

To that end, 9DB is not a tool for developers. Its first goal is to solve real problems for everyday people, the same way that email, websites, and filesystems do. The only way for linked data to become widely adopted is for it to make people's lives easier, not harder.

Nodes and types

In 9DB, everything is a node — a small bundle of related information that describes something. These can be abstract things, like user sessions, or concrete things, like packages in the mail.

Each node points to an abstract type node that defines the attributes that are common to all the instances of that type. So you could have two nodes representing individual packages in the mail, and they would both point to a Package type node that defines the attributes that all packages have in common.

Even type nodes share a common type: the >type generic type. You can view all of the sub-types that inherit from that generic type here.

Open issues

You can view a list of the ongoing issues that I'm tackling as part of this work here.

`; } } export default HomePageTemplate;