Experiment 1 - The Holy Bible

 

Introduction

 

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

//app.amithings.com/information(world-english-bible).search(Luke).view(json)

JSON for Datatables

//app.amithings.com/information(world-english-bible).search(Luke).view(json).layout(datatables)

JSON for dhtmlxGrid

//app.amithings.com/information(world-english-bible).search(Luke).view(json).layout(dhtmlxgrid)

XML

//app.amithings.com/information(world-english-bible).pagination(5,10).view(xml)

HTML Bootstrap

//app.amithings.com/information(world-english-bible).rows-by-number(1-10,15-18,20).view(html).layout(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.