Experiment 1 - The Holy Bible




As a kind of Web Database, Amithings is being designed to facilitate implementation of mobile apps, web applications and the IoT (Internet of Things), by offering features far beyond a traditional database system.

The next slides will uncover all the features of Tables in Amithings.

Let’s start!


Experiment 1 - The Holy Bible



Tables of Information


Below you see an Information of type Table in Amithings.

This table looks like a typical database table.

Its name is “World English Bible”, one of many versions of the Holy Bible, and it has, as expected, columns and rows.

The rows are numbered sequentially, in ascending order, beginning at 1.

In the footer of the table there is a navigation control (Pagination).



Experiment 1 - The Holy Bible



Subdivisions in a Table of Information


Each piece of the table below is a unique Information in Amithings, which can be accessed and manipulated individually, or in groups, as the table itself, its columns, rows and cells.

Try clicking on the name of the table, in a column, in a numbered row or in any cell. A popup will appear with the unique identifiers of the Information clicked.





Experiment 1 - The Holy Bible



Unique Identifiers of Information


Information in Amithings is uniquely identified by three different types of identifiers, as we saw in the previous slide. They are:

Id: Positive integer, sequential, without repetition, equivalent to the known Primary Key in database systems, preceded by the “&” character. Example: &1000000000

Web Id: Representation of the Id in base58 format, preceded by the “@” character. Example: @2wngaj

Webname: Human friendly representation of Information, equivalent to the URN (Uniform Resource Name), or slug in WordPress. Example: bible-versions

When clicking anywhere on the table below, a popup will appear with the unique identifiers of the Information clicked.




Experiment 1 - The Holy Bible



UPL – URL Programming Language


Now it’s time to present the UPL, a programming language oriented to be used in the browser URL.

In a single line of code, you can accomplish everything that a high-level programming language allows. What makes this possible is the Amithings architecture, centered on Information instead of data, where the Information is highly structured, organized and standardized.

The UPL was created to be a simple language, accessible to non-programmers, with a very reduced set of rules, a large number of functions, and without all those punctuation characters such as single quotes, double quotes, escape characters, semi-colons, braces, brackets and the endless if-then-else.

Syntax: //app.amithings.com/function1(parameter).function2().function3(parameter1, parameter2,…)…

The UPL consists of functions with names that are easy to memorize, and each function has usually a reduced number of parameters.

The UPL is the basis of Amithings.




Experiment 1 - The Holy Bible



UPL in action


The UPL //app.amithings.com/information(world-english-bible) has the function information(), which returns an Information from Amithings.

This function takes one parameter that uniquely identifies the Information, and this parameter may be the Id, Web Id or Webname.

In this UPL we are selecting the Information “World English Bible” by its Webname.

You may try to click on it to open the result in a new window.

Now we have another UPL: //app.amithings.com/information(&1000000000).columns(book,text).rows-by-number(1-100).view(json). We are selecting the same Information of the UPL above by its Id, and we chose to show two columns (book and text) by their Webnames, and then, we are loading the first 100 rows and viewing the result in JSON format.

And if we want that same result in tar.gz or zip, we just add to the end of the UPL one of the functions tar-gz() or zip(). Just do not forget the “dot” before the function.




Experiment 1 - The Holy Bible



Cache of UPL


We have a question to the world: Why we’re still using dynamic systems, such as databases, to store and retrieve static information which often will never be modified? The databases are expensive, complex, limited to the standards of the Web and very slow by nature.

We can’t give an estimate even approximately when the table of Information below will be modified. We are dealing with an essentially static Information, and there is no reason to store it in a database, unless this database is targeting the Web, where, for each request, a static and permanent file is created, which will be reused in future requests, except in case of change of Information.

Every time you access an Information in Amithings with a UPL for the first time, before any other user, a static version of the result will be created. Already from the second time, you and any other user will access the same Information in a much shorter time.

For example, in the table below, try browsing the pages using the pagination control at the bottom of the page. For each page loaded, a cached version will be created. You can access it today, tomorrow, in one month and in one year.

Imagine a user doing a search in the column “text” for the word “Jacob”. This result will be submitted to the database of Amithings only in the first time. Other users who do the same search will see the result stored in the Cache, with no database access. This is the UPL: //app.amithings.com/information(world-english-bible).column-filter(text).contains(Jacob).



Experiment 1 - The Holy Bible



Visualizing and exporting Information


The View is a feature of Amithings used to present Information in a variety of standards, formats and shapes.

A table of Information can be retrieved in JSON, XML, CSV, TXT, HTML, PDF, Word, Excel and many other commonly used formats on the Web.



JSON for Datatables


JSON for dhtmlxGrid




HTML Bootstrap


Views can also assume a more visual representation. Here are some suggestions: Bar Chart, Periodic Table, Birth Chart, Playlist, Histogram, Star Map, HTML Form, HTML Login Form, Maps, Calendar, Image, Video, Timeline, Bubble Chart, Braille, Product List, Product Specification, Prescribing Information, ToDo List, Slideshow, Gallery Page, eBook, Mental Map and QR Code.