Webbase Ontology Language (WBOL)

Webos just throw contents at requesters.

WBOL is an XML based language that focuses on contents: defining what they are, how they are organized, and where, how and when they are rendered. WBOL defines contents as data units to be rendered, managed and processed. A content can render its data unit as free text, images, sounds, clips, but also as a form, a table, a plot, a list...; a content can allow insertion, modification or deletion of its data unit; and, a content may transform its data unit into another data unit. Contents need to be organized to be better accessible, WBOL has a hierarchical paradigm for organizing contents among themselves, contents in pages, pages in areas, areas in areas up to the root area termed the site. Contents also need to be protected, because they may contain private, confidential, inappropriate data, WBOL has a group visibility security paradigm.

WBOL adopts Javascript to manage the functional aspects.

This section describes the elements of WBOL as defined with XML Schema Definition XSD, while the web spinners section how the elements should be interpreted.

Structural elements

WBOL structural elements are: content, page, area and site. They all inherit from baseType that is defined as follows:

The name element ...

The slug element is unique in a webbase, it identifies uniquivocally the REST path of a structural element. If it is not defined it is automatically generated based on the ...
The keywords and description elements describe multilingual
The script element

Content

The content is the corner stone of WBOL, the contentType definition is shown below. Contents are all about data, data that can be either explicitly declared or requested. Data is declared by embedding a JSON data structure in the data element; and, requested by setting the data/@src attribute to a referenced data source and embedding in the data element a query intelligible to the data source. If data[preprocess="true"] then the query is preprocessed, see Text preprocessor. The data/@parameters attribute assigns default values, in a query string format, to parameters embedded in data and resolved by the preprocessor.
Whatever data the content points to is rendered; a WBOL content defines rendering in a generic then detailed manner. The @renderas attribute gives a general idea of what to render, for example, a table, a list, a form, a graph..., and the inherited script element describes in details how, see Layout API.
The @section attribute specifies in which section, declared in the page template, the content should be wrapped in, it is a mean of grouping contents; while the @sequence attribute allows not only for the sequential ordering of contents within a section but also a way of controlling content visibilitities, see Security paradigm.


contentEnum = { 
    "text" | "form" | "list" | "table" | "chart" | "dial" | 
    "tabs" | "tree" | "calendar" | "timeline" | "map" | "graph" | 
    "arealinks" | "pagelinks" | "slicer" | "pathlink" | "imagemap" | 
    "serversidecode" | "clientsidecode" | "shortcut" 
}
                    

The following examples show ...

Page

A page is a content holder, it organizes contents possibily in sections, the @template attribute provides a path to an HTML template file. If the template is not specified contents are inserted sequentially in a blank page.

Area

Site

The site is the root area it extended the baseType adding by ...

Trash

A container of contents, pages and areas that will probably be removed from the webbase,

Security elements

Localization elements

WBDL provides for

Customization elements

Client side webbaselet to customize...

Text preprocessor

The text preprocessor introduces statefullness in a stateless context. The text

Layout API