WebML

WebML (Web Modeling Language) is a visual notation and a methodology for designing complex data-intensive Web applications. It provides graphical, yet formal, specifications, embodied in a complete design process, which can be assisted by visual design tools.

In 2013 WebML has been extended to cover a wider spectrum of front-end interfaces, thus resulting in the Interaction Flow Modeling Language (IFML), adopted as a standard by the Object Management Group (OMG).

This method has five models: structure, derivation, composition, navigation, and presentation. These models are developed in an iterative process.

Concepts
WebML enables designers to express the core features of a site at a high level without committing to detailed architectural details. WebML concepts are associated with an intuitive graphic representation, which can be easily supported by CASE tools and effectively communicated to the non-technical members of the site development team (e.g., with the graphic designers and the content producers). WebML also supports an XML syntax, which instead can be fed to software generators for automatically producing the implementation of a Web site. The specification of a site in WebML consists of four orthogonal perspectives:

Structural Model: it expresses the data content of the site, in terms of the relevant entities and relationships. WebML does not propose yet another language for data modeling, but is compatible with classical notations like the E/R model, the ODMG object-oriented model, and UML class diagrams.
Hypertext Model: it describes one or more hypertexts that can be published in the site. Each different hypertext defines a so-called site view. Site view descriptions in turn consist of two sub-models.
Composition Model: it specifies which pages compose the hypertext, and which content units make up a page.
Navigation Model: it expresses how pages and content units are linked to form the hypertext. Links are either non-contextual, when they connect semantically independent pages (e.g., the page of an artist to the home page of the site), or contextual, when the content of the destination unit of the link depends on the content of the source unit.
Presentation Model: it expresses the layout and graphic appearance of pages, independently of the output device and of the rendition language, by means of an abstract XML syntax. Presentation specifications are either page-specific or generic.
Personalization Model: users and user groups are explicitly modeled in the structure schema in the form of predefined entities called User and Group. The features of these entities can be used for storing group-specific or individual content, like shopping suggestions, list of favorites, and resources for graphic customization.

Design Process
A typical design process using WebML proceeds by iterating the following steps for each design cycle:

Requirements Collection. Application requirements are gathered, which include the main objectives of the site, its target audience, examples of content, style guidelines, required personalization and constraints due to legacy data.
Data Design. The data expert designs the structural model, possibly by reverse-engineering the existing logical schemas of legacy data sources.
Hypertext Design "in the large". The Web application architect defines the structure "in the large" of the hypertext, by identifying pages and units, linking them, and mapping units to the main entities and relationships of the structure schema. In this way, he develops a "skeleton" site view, and then iteratively improves it.
Hypertext Design "in the small". The Web application architect concentrates next in the design "in the small" of the hypertext, by considering each page and unit individually. At this stage, he may add non-contextual links between pages, consolidate the attributes that should be included within a unit, and introduce novel pages or units for special requirements (e.g., alternative index pages to locate objects, filters to search the desired information, and so on).
Presentation Design. Once all pages are sufficiently stable, the Web style architect adds to each page a presentation style.
User and Group Design. The Web administrator defines the features of user profiles, based on personalization requirements. Potential users and user groups are mapped to WebML users and groups, and possibly a different site view is created for each group. The design cycle is next iterated for each of the identified site views.
Customization Design. The Web administrator identifies profile-driven data derivations and business rules, which may guarantee an effective personalization of the site.

Structural Model
The fundamental elements of WebML structure model are entities, which are containers of data elements, and relationships, which enable the semantic connection of entities. Entities have named attributes, with an associated type; properties with multiple occurrences can be organized by means of multi-valued components, which corresponds to the classical part-of relationship. Entities can be organized in generalization hierarchies. Relationships may be given cardinality constraints and role names.

Derivation Model
In other words, it is similar to VIEWS in databases modelling. Like VIEW in Oracle or MySQL.
For each page there is One abstract Table of data. But it is merged from other tables.
Uses WebML-OQL (WebML-Object Query Language)

HyperText Model
The most important model of the WebML methodology
It models the navigation of user on the web.
HyperText Model is compounded from 2 models: Composition and Navigational model.

Composition Model
The purpose of composition modeling is to define which nodes make up the hypertext contained in the Web site. More precisely, composition modeling specifies content units (units for short), i.e., the atomic information elements that may appear in the Web site, and pages, i.e., containers by means of which information is actually clustered for delivery to the user.  In a concrete setting, e.g., an HTML or WML implementation of a WebML site, pages and units are mapped to suitable constructs in the delivery language, e.g., units may map to HTML files and pages to HTML frames organizing such files on the screen.

WebML supports six types of unit to compose a hypertext:

Data units (show information about a single object).
Multidata units (show information about a set of objects).
Index units (show a list of objects without presenting the detailed information of each object).
Scroller units (show commands for accessing the elements of an ordered set of objects).
Filter units (show edit fields for inputting values used for searching within a set of object(s) those ones that meet a condition).
Direct units (do not display information, but are used to denote the connection to a single object that is semantically related to another object).

Elements
Data unit
MultiData unit
Index unit
Multichoice index unit
Hierarchical unit
Scroller unit
Entry unit

Navigational Model
Units and pages do not exist in isolation, but must be connected to form a hypertext structure. The purpose of navigation modeling is to specify the way in which the units and pages are linked to form a hypertext. To this purpose, WebML provides the notion of link. There are two variants of links:

Contextual links (connect units in a way coherent to the semantics expressed by the structure schema of the application. Carries some information (called context) from the source unit to the destination unit. Context is used to determine the actual object or set of objects to be shown in the destination unit).
Non-contextual links (connect pages in a totally free way, i.e., independently of the units they contain and of the semantic relations between the structural concepts included in those units. Syntactically, contextual and non-contextual links are denoted by element INFOLINK and HYPERLINK, respectively nested within units and pages).

Elements
Web pages
Links between pages
context
noncontext

Personalization Model
Personalization is the definition of content or presentation style based on user profile data. In WebML, units, pages, their presentation styles, and site views can be defined so to take user- or group-specific data into account. This can be done in two complementary ways:
Declarative personalization: the designer defines derived concepts (e.g., entities, attributes, multi-valued components) whose definition depends on user-specific data. In this way, customization is specified declaratively; the system fills in the information relative to each user when computing the content of units.
Procedural personalization: WebML includes an XML syntax for writing business rules that compute and store user-specific information. A business rule is a triple event-condition-action, which specifies the event to be monitored, the precondition to be checked when the event occurs, and the action to be taken when the condition is found true. Typical tasks performed by business rules are the assignment of users to user groups based on dynamically collected information, the notification of messages to users upon the update of the information base (push technology), the logging of user actions into user-specific data structures, and so on.

Presentational Model
Presentation modeling is concerned with the actual look and feel of the pages identified by composition modeling. WebML pages are rendered according to a style sheet. A style sheet dictates the layout of pages and the content elements to be inserted into such layout, and is independent of the actual language used for page rendition. For better reusability, two categories of style sheets are provided: untyped style sheets (also called models) describe the page layout independently of its content, and thus can be applied regardless of the mapping of the page to a given concept; typed style sheets are specified at a finer granularity and thus apply only to pages describing specific concepts.

Other possibilities
 Interaction Flow Modeling Language (IFML)
 UML-based Web Engineering (UWE)
 HDM
 RMM
 EORM
 OOHDM
 WSDM
 Araneus
 OO-H
 UML WAE
 Hera

See also
 Web engineering
 Web modeling

References

Further reading

External links
 

Specification languages