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
This post is part of a comprehensive introduction into SRDM, graph languages and Havel.
Continue reading: Havel Assembly Language (H/a)
ความคิดเห็น