:: 23 Jul 2014
 
Is there a formal definition of autonomy?
 

sysbrain.org

This is a community website for users of natural language programming in sEnglish and also for users of the Cognitive Agents Toolbox CAT. Related websites are www.system-english.com and www.cognitive-agent-toolbox.com.
Hi, this website has been down and currently beeing populated with materials, sorry for the current scarcity of what you can find here. Recent research, industry and media interest prompts us to revamp and tidy this up. Use "create and account" in the top right corner if you are interested in new developments and software.
Amongst other things a new Eclipse-based sEnglish authoring and execution environment will soon be available.
Sandor
Page menu: key facts | functionalities | quick start | what is sEnglish? | background/motivation

Some sEnglish webpages understandable by agents

Classical Control Design for Agents

Some Basic Facts

sEnglish stands for system English and it is easy to master it within a day. It is best used jointly with MATLAB (its extension is in preparation to C++, Java, Visual C and Phyton) and is based on the use of a machine ontology language (MOL) that describes conceptual structures in a very simple format using MATLAB types (C++, Java, VC or Phyton classes). See more info in the right hand side menu under the titles Why MOL? and Info on sEnglish .

sysbrain.org is a non-profit organisation to promote the re-use and development of sEnglish/MATLAB code for all kinds of applications. Of particular interest is the development of routines that can be used by intelligent agents. Hence modules for autonomous control systems for various areas of life and industry are especially suitable for submission. Solution ideas, complete solutions or just reusable modules for a wide range of areas from home and garden automation, security through robot pets, warehouse robots to unmanned vehicles can be searched, uploaded and offerred to other developers on this website.

sysbrain.org uses MOL ( = Machine Ontology Language or = MATLAB Ontology Language). to define classes and properties for concepts that can be used as perception objects and also as abstract concepts. MOL uses very simple notations for classes (>..>), properties (@) and constraints (@@). MOL can be used to classify procedures as well as to classify objects that are inputs/outputs of procedures. An object of a procedure describes its input and output classes, its code and its calling conventions.

sysbrain.org is a forum of developers who use the MOL-based system to archive routines to facilitate tremendous code compatibility. For perception processes, data fusion algorithms, inference algorithms, adaptive and learning control algoorithms using model based, fuzzy and artifical neural network type solutions among others.

On the right hand column you find links to further explanations on MATLAB, autonomous cognitive systems, MOL and sEnglish which allows natrual language handling of routine calls. Alternatively the articles section contains more in depth accounts and explanations.

One of our most urgent tasks is to develop MOL ontologies for perception and cognition, so that they provide formats both for objects as well as for sensory and inference procedures. We do not prescibe any single way forward and have created this website as a platform for MATLAB MOL and sEnglish language users to shape the development of advanced systems and their many parts.

Submit your own developments and encourage others to use them. You can offer it for free or if you think it is really powerful you can ask a for a royalty free fee via PayPal.

Functionalities of this website

The aims of this site are fulfilled by a set of functionalities that are easy to use and can be summarised by the following block diagram:




Quick Start Guide

  • To submit ACTbx code components use New.
  • To submit articles use New .
  • To start a new Discussion thread use New.
  • Latest lists all latest submitted articles, codes and comments in threads.
  • Questions of general interest can be raised independently from any threads, files or discussions.
  • Resources can be submitted through either of articles, discussions or code exchange or directly posting it to the webmaster of sysbrain.org.
  • Comments can be made in relation to any article, code or added to a discussion thread.
  • Authors list includes all authors of articles, files or code – not “discussions authors” .
  • Articles mean magazine style articles with illustrations, images and diagrams for anyone to read. Most articles are about innovative solutions describing some hardware and code used. But this is also a great way to translate and communicate deep scientific result to a wide audience. Scientific papers in specialist journals and books (on robotics and automatic control) can and should be referred to in these articles.
  • Code means MATLAB source code or .p (pseudo) code or DLLs of routines with descriptions of their use and their inputs/outputs strictly from the MOL ontology. Use of MOL for the inputs/outputs of routines is important for wide compatibility of routines submitted to sysbrain.org. If some authors wish to charge some fee for their routines than they need to open a PayPal account. Sysbrain.org provides an automated payment service (after official launch of this website).
  • Discussions is a standard discussion forum organised around threads. Only topics within the scope of autonomous control systems are to be discussed here. Cross referencing to articles and code is possible.

Haven't heard about natural language programming?

Look at this simple sentence:
Transform polyhedral object O1 into polyhedral object O2 by matrix M.
it can be expanded in meaning to the following description:
Get property 'facets' of O1 as F1. Transform set of faces F1 into set of faces F2 by matrix M. Get property 'vertices' of O1 as V1. Transform set of points V1 into set of points V2 by matrix M. Combine set of points V2 and set of faces F2 into polyhedral object O2.
with sEnglish this description safely compiles into MATLAB code:
function 02 = transform_polyhedron_by_matrix(O1,M);

F1 = get_property_value('facets',O1);
F2 = transform_set_of_faces(F1,M);
V1 = get_property_value('vertices',O1);
V2 = transform_set_of_points(V1,M);
F2 = combinge_faces_and_points(V2,O2);
Empirical and theoretical statements can also be formulated in English. The following theorem is actually an sEnglish code that simply compiles into MATLAB code that can be evaluated:

Pythagoras' Theorem
Let T be a 'triangle'. Let T have 'side lengths' denoted by a,b,c. Let T have 'angles' denoted by α , β , γ . If γ of T is equal to ~90° , then c² = a² + b² within measurement tolerances.
This presentation of 'meaning' is very useful in intelligent agent programming. This representation of Pythagoras Theorem also illustrates that the English based coding system advocated here (called sEnglish) is suitable for writing up scientific results in English. Using sEnglish will enable you to share code with other members, the MOL/sEnglish Toolbox itself is provided free of charge for academic and personal use.

Background/Motivation

As a subset of natural English, sEnglish is suitable to record algorithmic knowledge so that it can be easily shared by researchers and even the public. There are many manucaturers, hobbyists, academics and engineers developing useful and interesting automation solutions throughout the world. The hardware platforms and software systems used by them, and also the underlying principles of operations, can however be widely different. A lot of effort is replicated and wasted and progress is slow: a lot of work is being done "in parallel", instead of building on each other's results: developers build up their specialist hardware and software. This website serves developers by allowing them to share their results and to help them to become more successful with their own development work for employers or for customers. sEnglish can be used as an "upgraded" of MATLAB, i.e. in many applications areas, but it is particularly important to use it by engineers developing autonomous control systems such as robots and autonomous vehicles under water, on water, in the air, in space, on the ground or on the road.

Building "intelligent" systems is now appearing to be a greater challenge to many researchers and engineers than it was anticipated in the 1960s when the use of computers started to spread and expectations were high. Sharing of intelligent systems methodologies and computer code is therefore the only way to speed up development in this important area for our technological future.

Architectures are widely different and this website is promoting the use of a common platform based on:
  • Use of compatible high level code in MATLAB or OCTAVE (abbreviated as M/O) to minimize reliance of low level codes such as C,C++,C# or Java. Use of low level code slows down development because of the tedious nature of programming. Some individual routines, that can be called from M/O, should still be developed in C,C++, C# and Java but compatibility with M/O must be complete. Code exchange on this site is aimed at above the M/O level. Use of a higher-than-M/O computer language is encouraged too. To ensure compatibility of M/O routines a shared ontology is proposed in MOL (= MATLAB Ontology Language) that builds on basic MATLAB types as its lowest level classes. MOL ensures use of classes and properties that can be directly used in M/O programming.
  • There are now ISO standards for autonomous system architectures. This site aims to provide a forum to fill in these standards with reusable code modules that work with various combinations of hardware (processors, sensors and actuators, etc.) Details of the standard architectures are to be made more precise and realised with implementation code.
  • This site is also a forum for cooperation and can make realisation of new ideas for new areas of applications fast. Digital computers have the strength of predictable behaviour compared to higly autonomous animals. Digital computers offer much broader opportunities for new types of applications than what is suggested by nature. We often borrow ideas from nature but we have to recognise that digital computers are fundamentally different and in many respect can offer much more than what biological systems are capable of.
  • The defence and aviation industries are relatively well developed in autonomous systems, this site is aiming to promote civilian applications in everyday life, engineering and science.
The difficulty of developing intelligent machines should not be underestimated. Joint effort of developers is needed. The variety of autonomous digital machines can be far greater than the biological variety of mammals. This makes our job even more labour intensive, hence code sharing is of vital importance.
Keywords: autonomous, control, toolbox, system, MATLAB, routines, m-files, sEnglish, MOL, agent, multiagent, cognitive, computer, developers, realtime, sensor, actuator, robot, AUV, UAV, AGV

IFAC 08

SysBrain Ltd is at the IFAC World Congress in Seoul, Booth No. 7 read more here.

Extending the horizons of MATLAB...

This is a community website to make MATLAB code more compatible. .

Why MATLAB?

World wide use

Engineers all over the world know the logo and written many m-files...

MOL Editing

MATLAB Ontology files can be edited in any ASCII plain text editor.
Why MOL?

sEnglish

A top-up for MATLAB

sEnglish is a convenient way to link your MATLAB programs to natural language and conceptual structures.

A personal message...from Sandy

This site will remain a code reference library for a very long time...
AVD Web Solutions © 2005