MMBase Glossary

Abstract

This glossary tries to provide an overview of the terms used in MMBase and their meaning. As MMBase has evolved during the last years, its language evolved with it. This means that sometimes one term refers to two concepts, whereas in other occasions two terms are synonyms for one and the same thing. Therefore this document tries to describe the meaning of the terms used in MMBase in the different contexts. Next to this, the glossary tries to provide a list preferred terms.


Table of Contents

1. MMBase Glossary
+1

See Also vote.

application

See Also package, bundle, component, contribution.

bidirectional

A value for the `dir' attribute of reldef and insrel nodes. It only says something about the visibility of the relation. Every MMBase relation is bidirectional in the sense that it has a clearly defined source and destination, but that it not meant when we talk about `bidirectional' relations in MMBase.

See Also unidirectional, reldef, insrel.

block

A component can have 1 or more 'blocks', which are actual pieces of markup, which represent a rendering of the component's functionality.

See Also component.

bridge

The bridge is the set of Java interfaces which are to be used to talk to MMBase. If one uses the bridge, all actions are authorized by the security system, which does not happen if one talks to the core of MMBase directly.

Templating languages should communicate through the bridge, and for example the MMBase Taglib is doing this.

There is currently one `basic' implementation of the bridge, and also one alternative implementation which makes it possible to talk to a `remote' MMBase by remote method invocations.

See Also Remote MMBase Cloud Interfaces, MMBase Cloud Interfaces, core, MMBase tag library.

builder

The term builder is used when one speaks about the object cloud and its representation in the database.

See Also node manager, object type.

bundle

See Also package, component.

cloud

See Also node.

cluster node

Complicated database queries do not give back simple nodes, but fields from several tables. A record from such a table join is represented by a 'cluster node'. A cluster node is a special kind of virtual node.

See Also virtual node.

committer

An MMBase developer with CVS committing access.

See Also vote, Concurrent Versions System.

component

It means approximately 'one part of a whole', 'something that can be installed in some program to make it more powerful'. Since MMBase 1.9 and the MMBase Component Framework (MMCF) a component has gathered meaning as a piece of functionality that can be installed using the component framework. A component in the MMCF sence can be a poll, an e-card application or even some more hidden functionality like the e-mail application as long it is 'plugable' within the framework.

See Also application, block.

Concurrent Versions System (CVS)

Open Source version system, which is used to administrate MMBase source codes. Typical for CVS is that it is possible to use it without acquiring locks on files (which is the way it is used for MMBase). This means that files can be edited simultaneously by different people, but also that the risk for 'conflicts' arises (if a patch cannot be made automatically).

The MMBase CVS repository is hosted on the mmbase.org server.

See Also vote, module.

content management

MMBase is described as a 'content managment system', which means that it is used to manage the content of normally web-sites.

context
contribution

In the `contributions' CVS module you find MMBase applicitions and other MMBase related code, which is contributed by third parties to MMBase, and are not maintained by the `community' but individual commitors are responsible.

See Also application, component.

core

See Also bridge.

data type

Since MMBase 1.8, with mmbase values are associated 'data types', which assign restrictions, a default value and processors. Generic data types are specified in the 'datatypes.xml' configuration file, but they can also be defined `on the fly' in builder xmls and editwizard xmls.

See Also restriction.

developers list

The [email protected] mailing list, sometimes shorthanded to dev-list. This is the most active MMBase mailing list, which is used by the developers community to discuss and answer questions about technical issues.

Information about the subscription and about other mmbase mailing lists can be found on the mmbase web-site.

Before november 2004 this list was addressed as [email protected].

See Also vote, Internet Relay Chat.

Don't Panic!

An exception from an edit wizard. It is called like this, because the error page of an editwizard is (was?) introduced with these big friendly letters.

Normally, but a bit unexpectedly, this is read as the completely opposite advice.

This is a reference to the Hitchhiker's guide to the Galaxy which according to the book of Douglas Adams had these words written on the cover.

See Also Editwizards.

Dove

Dove is a protocol to receive a part of the MMBase cloud in XML, make changes to it, and send it back. It was inspired by the SOAP protocol (and hence the name Dove, which is a brand of soap), but sadly is not compatible with it.

It was created for use by the editwizards. There is also a Dove servlet, which is not used by the editwizards, but which one could use for similar purposes.

See Also Editwizards.

Editwizards

Editwizards are `task oriented' content editors. Tasks are defined by XML and could for example be something like `create news articles and relate one author and several images to them'. Editwizards are not `generic' editors, which means that they not automaticly allow for creating all possible types of relations, though some parties have been creating tools to automaticly generate all possible editwizards.

Editwizards communicate with MMBase by the 'dove' protocol.

See Also Dove, Don't Panic!.

extension

Has no MMBase specific meanings. In java you can 'extend' classes, and extensions of classes are therefore specializations of some kind of functionality.

See Also component, application.

function

A function is a piece of functionality, normally implemented in java, which can be attached to objects on several places in MMBase. Functions can be assigned to 'sets', 'nodes', 'nodemanagers' and 'modules'

See Also function set.

function set

A function set is just a set of functions, which are declared in the 'functionsets.xml' resource. These are a kind of public methods which can be called from everywhere, any time.

See Also function.

inheritance

MMBase supports inheritance. This means that every `news' node is also an `object' node. You can also extend your `mynews' builder from the `news' builder. All fields from news are then inherited to mynews, and mynews nodes can be treated as (because they are) news nodes.

See Also builder.

insrel

A relation instance. This is special kind of object type which contains relation objects.

See Also builder, object type, reldef.

Internet Relay Chat (IRC)

The channel #mmbase of the Slashnet IRC network is an active scene which is used by MMBase developers to discuss MMBase in a casual way. It is also much used to get help for installation and implementation issues.

See Also developers list.

MMBase Cloud Interfaces (MMCI)

See bridge.

MMBase Foundation

The MMBase foundation covers the non-technical issues with regard to MMBase. The tasks of the foundation includes organizing MMBase Events, facilitating communication between MMBase users, providing management information about MMBase in presentations and brochures, etc. etc.

MMBase Management Committee (MMC)

This used to be a small group of MMBase committers who are supposed to meet every Thursday to talk about MMBase. Originally it were 4 or 5 people, from which in the last year a few were democraticly elected. In march 2005 the MMC in this form was abolished, and the committors divided the tasks of the MMC among them, so it can be said that the MMC now consists of all committors. It has also be suggested that the subgroup for external communication can be referred to as MMC now.

See Also committer.

MMBase tag library (MMBase taglib)

A taglib implementation for MMBase. Tags to access MMBase data, but also more general tags. It consists more or less a complete (however simple) language. The taglib can be used in combination with pieces of Java in your JSP pages.

See Also tag library.

module
  1. An piece of (MMBase) functionality which is configured by a XML file in <config>/modules/. MMBase itself can be seen as a group of such modules.

    An extension from org.mmbase.module.Module, such as MMBase.java itself. In MMBase modules are started on initizalization, and are configured by an XML in <config>/modules (which contains only key/value properties). Modules were more important in the SCAN era, where they provided all kind of auxiliary functionality. Nowadays they mainly provide a way to plug things in the bootstrap of MMBase accompanied with a convenient way of customization.

  2. When talking about CVS, a 'module' is a kind of main entry of the repository. The MMBase CVS repository currently has the following modules: src (core java classes), documentation (docbook sources), html (general content for the mmbase distro), config (example configuration) and applications (components supported by the community).

  3. An independent piece of software which forms part of one or more larger programs. Different languages have different concepts of a module but there are several common ideas.

    Modules are usually compiled separately (in compiled languages) and provide an abstraction or information hiding mechanism so that a module's implementation can be changed without requiring any change to other modules. In this respect they are similar to objects in an object-oriented language, though a module may contain many procedures and/or functions which would correspond to many objects.

    Definition copied from The Free On-line Dictionary of Computing (09 FEB 02) [foldoc]

See Also Concurrent Versions System.

Multi Media Base (MMBase)
It is not clear whether MMBase really stands for Multi Media Base. The preferred term is MMBase

See Also open source, content management, Everywhere else.

node

MMBase objects are generally referred to as 'node', especially in the bridge. A normal MMBase node corresponds to one record in the database (in the table(s) associated with the builder). We recognize also 'cluster nodes' and 'virtual nodes'.

Every Node is uniquely (inside the MMBase instance) identified by a node number. In editors this number field is sometimes even be indicated with 'Object'.

See Also cluster node, virtual node, bridge, object.

node manager

The term nodemanager is used in when one speaks about the functionality of the bridge.

See Also builder, object type, bridge.

object

See Also node, builder, inheritance.

object cloud

See cloud.

object type

The term is used when one speaks about information analysis.

See Also builder, node manager.

open source

MMBase is open source. This means that the MMBase source code can be downloaded freely. The licence is quite free.

package

See Also application, component.

path

A list of steps. The definition from the bridge's javadoc follows. A comma separated list of node manager names which specifies the path that should be followed. It is possible to explicitly specify a relation manager that should be used to go from one node to an other. If no relation manager is specified between two nodes, all possible relation managers that can be used to go to the next specified node in the path are followed.

See Also Search Query, step.

relation

See Also insrel, reldef, typerel.

reldef

The builder defining relation roles. It has several fields, which are not all equally important. The most important fields are `sname', `dir' and `builder'. `sname' is the identifying name of this role. `dir' specifies if relations with this role are uni- or bidirectional, and `builder' defines the relation builder (so the actual fields the relations has, and in which table the relations will be stored).

`sguiname' and `dguiname' can be used to attribute names to the source and destination sides of the relations, which can be used in GUI interfaces to describe the relations. The remaining field is `dname' which has no real use. It's original idea would be the `role' as seen from the destination node, but this is not used (in stead, to define that relations must be followed in a certain direction the search direction is stated explicitely).

See Also role, unidirectional, bidirectional, typerel, relation, path.

Remote MMBase Cloud Interfaces (RMMCI)

An alternative implementation of the bridge. Can be used to implement life/staging MMBase's, but can also be useful to inspect/test a running MMBase, because it can run stand alone, and talks by remote method calls to an MMBase instance.

See Also bridge, Web in a Box.

resourceloader

MMBase has a 'resourceloader' which loads its configuration files. This uses several strategies, and is like a java class loader.

The effect is that mmbase configuration files can be present in jars, in WEB-INF/config or both. Or even in the database. The admin-pages provide an overview, to check how a certain configuration was loaded.

restriction

The value of a certain field for parameter in MMBase can be `restricted'. It can e.g. have a minimal or maximal value, or be one of the values of an 'enumeration'.

See Also data type.

role

The name of an reldef object. Practicly, it serves as extra way of distinguishing relations, and connects a relation builder to it. One could for example define the role `author' (by creating a reldef object). This role could then be used to allow relations between news and people.

The most often roles are `related' and `posrel', which both lack any real-life semantics.

Two `related' nodes are just that. Two `posrel' related nodes are also just related, but to the posrel role normally the `posrel' relation builder is associated, which allows for one extra field in the relations; the `pos' field with integer type, which makes it possible to order relations.

See Also reldef, typerel.

SCAN

The original MMBase template language. An interpreted language characterized by several parse stages of the source. Commands, parameters and variables are recognized by $-symbols. SCAN HTML pages use to be mapped to `.shtml'.

Use of SCAN is nowadays discouraged in favor of more modern and standardized scripting manner like JSP and (MMBase) taglib.

Because the long history of SCAN, SCAN-specific legacy code can still be found on a lot of places in the MMBase core code. Even the bridge way to handle with `MMBase modules' is influenced by SCAN.

See Also MMBase tag library, core.

Search Query

MMBase has a completely abstract way of querying its storage layer. This allows for a great deal of database independency, and also for efficient and object oriented manipulating of search queries. The other option is to use the String oriented SQL language, and this was tried in MMBase < 1.7, but was abandoned as non-feasible in a database (or even storage) independent product as MMBase is.

See Also Structured Query Language, storage, step.

step

One of the items of a path in a query. You could often read it as `database table' or `builder'. Step is an abstraction of this in the Search Query framework of MMBase.

See Also Search Query, path.

storage

MMBase has an abstract `storage' layer, which is used for persistency of MMBase objects. Currently only database storages are implemented so you can safely read `storage' as `the database which MMBase is using'. There are several types of databases which are supported however, most notably Informix, MySql, Postgresql and HSql.

See Also Search Query.

Structured Query Language (SQL)

This is the `general' language to talk to databases. The common denominator of all databases in SQL is actually very small, which largely limits its use for database independent products like MMBase.

To work around the babylon of SQL dialects, MMBase makes use of Search Query objects.

See Also Search Query.

tag library (taglib)

A Tag Library is a SUN defined way to define extra XML-like tags. A tag library is implemented in Java and currently only available in mixture with JSP-pages.

See Also MMBase tag library.

template

A JSP-file with belonging css, javascript and images, also XSL's are templates. The customized pieces of front-end code which arrange presentation of MMBase data.

temporary cloud project (TCP)

An XML way to add content to an MMBase cloud. It is hardly used anymore.

See Also XML importer, SCAN.

typedef

In MMBase object types are objects too. These nodes are stored in the `typedef' builder. It generates a small chicken/egg problem because the typedef type itself is also present aa a node of itself. (Normally the typedef node will have to have number 1)

typerel

Typerel is the MMBase builder which defines the allowed relations. If for example you want to create a certain relation from news node to an URL node, then a corresponding typerel record, which allows that must exist.

Inheritance is taken into consideration, so if you allow from object to object (with a certain role), then every kind of relation (with that certain role) should be allowed (because all node types extends object). It is by the way usually not very prudent to actually do this, because allowing every relation will often enforce MMBase to do very complicated queries, which can be very bad for performance.

See Also inheritance, relation, role.

unidirectional

A value for the 'dir' attribute of reldef and insrel nodes. It only says something about the visibility of the relation. A unidirectional relation is not visible from the destination node.

See Also bidirectional, reldef, insrel.

virtual node

A non-persistent node, which means that you cannot `commit' such a node. Generally no builder xml is associated witch such a node.

See Also cluster node.

vote

Major decisions on MMBase implementation are done by voting by committer on the developers list.

See Also +1, committer, developers list.

Web in a Box (WIAB)

A packaged content management system based on MMBase. Typical for WIAB is a fixed object model and a distinction between life and staging environments in two separate object clouds. It was developed for the Amsterdam municipal by Framfab but is maintained by Finalist now.

See Also Remote MMBase Cloud Interfaces.

XML importer

A way to synchronize data from another source with MMBase data. This happens in a fuzzy way, to avoid duplications because of minor inconsistencies in the source data.


This is part of the MMBase documentation.

For questions and remarks about this documentation mail to: [email protected]