WebML provides graphical, yet formal, specifications, embodied in a complete design process, which can be assisted by visual design tools. The main objectives of the WebML design process are:
- expressing the structure of a Web application with a high-level description, which can be used for querying, evolution, and maintenance;
- Providing multiple views of the same content;
- Separating the information content from its composition into pages, navigation, and presentation, which can be defined and evolved independently;
- Storing the meta-information collected during the design process within a repository, which can be used during the lifetime of the application for dynamically generating Web pages;
- Modelling users and communities explicitly in the repository, to permit the specification of personalization policies and one-to-one applications;
- Enabling the specification of data manipulation operations for updating the site content or interacting with arbitrary external services.
The WebML data model is a suitable adaptation of conceptual models for data design, as already in use in other disciplines, such as database design, software engineering, and knowledge representation. It is compatible with the Entity-Relationship data model, used in conceptual database design, and with UML class diagrams, used in object-oriented modeling. The fundamental elements of data models are entities, defined as containers of data elements, and relationships, defined as semantic connections between entities. Entities have named properties, called attributes, with an associated type. Entities can be organized in generalization hierarchies and relationships can be restricted by means of cardinality constraints. Instances of entities are considered individually addressable by means of a unique identifier (OID). WebML OIDs are abstract concepts, which can be implemented in alternative ways in the underlying storage manager, e.g., primary keys in a relational data store or XML ID attributes in a XML data source.
