Giter Club home page Giter Club logo

consensus's Introduction

Name
	Consensus

Overview
	The purpose of Consensus is to allow to build Systems of information which are
	sensitive, that is: which subscribe to and rely upon each other's changes
	to inform their own states, as opposed to trying to change the other Systems'
	states to have them align with and preserve their own.

	We believe the sensitive approach to be, not only the only sensible approach
	to represent and understand the way Systems work in reality, but also the only
	approach that gives us the chance to harmonize with our environment.

	Technically, the challenge posed by this objective breaks down into two parts

		1. The Procedural part - aka. Consensus Execution Model
		2. The Descriptive part - aka. Consensus Data Model

	1. Consensus Execution Model
	Consensus programs execute according to the following Design Principles:

	   . A System is entirely defined by the series of its States.
	   . The State of a System is the Vector of States of its Subsystems.
	   . Events and Actions are State changes, i.e.
		event = S:a->b	where S is a System and a, b two of its States
		action = S:a->b	where S is a System and a, b two of its States
	   . The General State Change Propagation Equation is
		[ S: a->b ]=>[ S': a'->b' ]
		where S and S' are two Cosystems, and a, b, a', b' their States.
	     Note: within the same system (S = S' above), the GSCPE translates as
		The Action exerted on a System is the second order derivative of
		the series of its States - cf. Second Law of Motion (Newton)

	Based on these principles, a Consensus program - aka. System's Story, or
	Narrative - takes the following form:

		in current State: Condition1
			on change [ from previous ] to current State: Event1
				do change [ from current ] to next State: Action1
		in current State: Condition2
			on change [ from previous ] to current State: Event2
				do change [ from current ] to next State: Action2
		etc.

	Where
	   . a State represents the contents of [a portion of] the memory, whose
	     differential is tracked at each program step (frame)
	   . external events are mapped into internal events - System's WorldView

	The example source code under the ./Examples/System directory demonstrates how
       	such systems can be architected using linear programming languages such as C.

	The source code under ./Pilot and the documentation under ./Pilot/doc show how
	the Web-enabled Consensus Knowledge Management Platform has been architected
	following these same principles.

	2. Consensus Data Model
	The Consensus data model aims at being simple and universal, and relies on the
	Consensus instance as fundamental building block (record type) of the Consensus
	data base (CNDB).

	One of the key driving objectives of the on-going Consensus development efforts
	is to harmonize Consensus internal and external representations - so that,
	ultimately, the language can implement itself.

	Internally, to date, Consensus relies on the notions of lists, items and instances,
	where:

	. Consensus lists and items address directly the Consensus first Design Principle:
		"A System is entirely defined by the series of its states"
	  where
		. the term 'list' in the implementation stands for the term 'series'
		  in the requirement
		. a list item is a pair whose first element is a pointer to the item's
		  data ('state' in the requirement), and second element a pointer to
		  the next item in the list
		. From a programming perspective, a list is none other than its first item

	. Consensus instances extend the notion of Consensus items to allow multi-dimensional
	  connections and, originally, triple-based aggregation, by incorporating the full
	  topological information related to each entity in the entity definition itself.

	One if not the most important lesson learnt from the Consensus Pilot development is
	that not 'triples', but 'couples', must constitute the basis for our data model.

	The source code under ./Release/Version-1.0 demonstrates a first industrial-quality
	release of the Consensus programming language, where the notion of instance covers
	both the notions of entity (name) and relationship (couple).

	The language itself has been named B%, say B-mod, for Behavioral Modeling.

consensus's People

Contributors

eile avatar pbouchaud avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

eile

consensus's Issues

Cannot link: /usr/bin/ld: cannot find -lcn

Again, running "make" in Release/Version-1.1.

cc -shared -o libbmod.so .ofiles/database.o .ofiles/db_debug.o .ofiles/db_io.o .ofiles/db_op.o .ofiles/context.o .ofiles/expression.o .ofiles/narrative.o .ofiles/operation.o .ofiles/traversal.o -L../../Base -lcn
/usr/bin/ld: cannot find -lcn
collect2: error: ld returned 1 exit status
make: *** [Makefile:38: libbmod.so] Error 1

.ofiles directory assumed to exist before make

Forgive me if I tried something ridiculous, but the first thing I attempted was to cd to Release/Version-1.1 and type "make" on my Kali Linux Linux subsystem on my PC. The first error was:

Assembler messages:
Fatal error: can't create .ofiles/database.o: No such file or directory
make: *** [Makefile:42: .ofiles/database.o] Error 1

Creating the .ofiles directory allowed make to proceed further.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.