top of page

Havel

Havel is Project Samarai’s primary semantic graph language. It is a universal computer language inspired by human logic, designed to express and process complex information.

Havel is meant to be an expressive and powerful interface between humans and computers. The target was to design a language that allows humans to communicate with computers similarly as they communicate using natural language amongst each other. However, Havel is not a language humans will ever speak. It is the enabler, an intermediary; computers understand it by means of an interpreter, humans by visualizing information using graphical user interfaces.

Havel is designed to express arbitrary, complex information. Literally anything can be expressed in Havel. It might be an address book, a detailed abstraction of a business plan or a draft for an idea. Or an ERP-like system that manages a community or company. But it could also be an evolution tree of all life forms known to have existed in the history of earth. Or a multi-dimensional, community-driven, dynamic journal of all remarkable events of human history with a dynamic map of all involved places, countries, people and entities.

The same features that allow Havel to be a powerful interface between humans and computers allow it to be an equally powerful interface between multiple computers – Havel supports protocol-free computer-to-computer communication.

Havel has a hierarchical grammar and is customizable down to the most fundamental feature, allowing for very fine-grained semantics in user context. It is based on the semanto-relational data model and is therefore semantic, allows for chaotic information storage and automatic information merging.

Havel is a universal language in the sense that there is no secondary language for any purpose. Information, instructions, schema and ontologies are all expressed in Havel. It is also used as a high-level, protocol-free communications language. Even language-internally, Havel is used to configure itself and describe its grammar to the interpreter.

Havel wants to enable end-users to create new functionality themselves (a.k.a. programming). It has no conceptual difference between information and processing instruction, an idea that we hope will open programming to a wider audience. It has a powerful runtime environment which allows users to create and run advanced information services.

Encryption, information trustworthiness management and data security are integral parts of the language. Havel does not only rely on the low-level features of SRDM in this regard but implements these features itself on top of SRDM, allowing for much finer-grained control.

Havel is a very powerful tool to create, analyze, process and communicate complex information. However, there is more to Havel, something subtler. Havel allows information to have multi-faceted details that can change depending on context, viewpoint or time reference; expressions can alter their interpreted meaning when external factors change. Like in the real world, information can be vague or even blurry, maybe a little more humane.

Havel, the graph language, has been named after Czech writer, philosopher, dissident, peace activist, political prisoner and later president, Vaclav Havel.

Havel has an exhausting feature list. Here is an incomplete list of some of the more important features. Please note that Havel is work in progress:

  • Agents

  • Ancestors and descendants

  • Automatic units of measurement conversions

  • Classifications

  • Composition

  • Connector plug-ins

  • Contextual representations

  • Contextualization

  • Custom events and handlers

  • Custom functions

  • Custom models

  • Dynamic values

  • Encryption key life-cycle management

  • Equalizers

  • Feature customization

  • Feature indirection

  • Governance framework

  • Implied groups

  • Implied relations

  • Information quality expression

  • Information trustworthiness assessment

  • Inheritance

  • Language plug-ins

  • Location framework

  • Multi-dimensional values (spatial and temporal)

  • Semantic arithmetic

  • Single-instance extensions

  • State and flow management framework

  • Temporal and logical sequencing

  • Type translations

  • URIs into Havel

  • Value annotation

  • Value dating, validity and life-cycle management

  • Value denomination

  • Value encryption

  • Value equalization

  • Value indirection

  • Value security

  • Value signing

  • Value variants

  • Wide-range calendar system

 

Comments


RSS Feed

Categories

Recent Posts

bottom of page