Listen to Computerworld's TechCast: Markup Languages. Podcast duration: 7 minutes.
In 1969, three IBM researchers created GML, a formatting language for document publishing. Understood to mean Generalized Markup Language, the letters also happened to be the initials of its creators: Charles Goldfarb, Edward Mosher and Raymond Lorie.
GML allowed text editing and formatting, and it enabled information-retrieval subsystems to share documents. Instead of a simple tagging scheme, however, GML introduced the concept of a formally defined document type containing an explicit hierarchy of structured elements.
Major portions of GML were implemented in mainframe publishing systems, and the language achieved substantial industry acceptance. IBM adopted GML and produces over 90% of its documents with it.
GML was expanded with additional concepts, such as short references, link processes and concurrent document types, into Standard Generalized Markup Language. SGML made inroads in the publishing world, especially at the U.S. Government Printing Office, and it became an international standard in 1986.
Still, SGML was largely unknown until 1990, when Tim Berners-Lee, inventor of the World Wide Web, created Hypertext Markup Language as a subset of SGML. Soon, every type of document and data was being littered with tags at the beginning and end of text elements like this: <:tag>and<:/tag>. Then Extensible Markup Language (XML) came along in the late 1990s, and the IT world hasn't been the same since.
In fact, it seems that hardly a day goes by without a new markup language being announced or described. Indeed, Computerworld has published separate QuickStudies on 10 markup languages, and that just scratches the surface. A Google search on "markup language" returns more than 6 million pages.
Thus we present this shorthand guide to current markup languages. It certainly doesn't cover them all, but it does give an idea of the flexibility and power of the concept and how it is being used. Most are simple extensions of XML or document type definitions specialized for a particular area of interest, but some are quite complex.
• Business Process Execution Language: BPEL is designed to run a series of Web-based transactions and/or characterize interfaces that are needed to complete Web-based transactions. It's used for modeling business processes, with specifications for transactions and compensating transactions, data flow, messages and scheduled events, business rules, security roles, and exceptions. QuickStudy: BPEL
• Cell Markup Language: CellML stores and exchanges computer-based mathematical models, allowing scientists to share models even if they use different model-building software. It also enables them to reuse components from one model in another, thus accelerating model building. CellML includes mathematics and metadata by leveraging existing languages, including MathML. www.cellml.org
• Chemical Markup Language: CML is a new approach to managing molecular information that uses recently developed Internet tools such as XML and Java. Based strictly on SGML, it's capable of holding extremely complex information structures and can therefore act as an interchange mechanism or an archiving tool. It interfaces easily with modern database architectures, such as relational or object-oriented. Most important, a large amount of generic XML software to process and transform it is already available from the community. www.xml-cml.org
• DARPA Agent Markup Language: XML has a limited ability to describe the relationships between objects. DAML extends XML by using ontologies -- explicit formal specifications of how to represent the objects, concepts and other entities in a particular area of interest, along with the relationships among them. www.daml.org/about.html
• Dynamic Markup Language: DML is an XML-based language designed specifically for object-based graphics construction and the development of user interfaces. Similar to HTML, it includes extensions that support calculations, argument-passing and variable storage. www.rocklyte.com/dml
• Directory Services Markup Language: DSML defines the data content and structure of a directory and maintains it on distributed directories. DSML gives developers a simple and convenient way to implement XML-based applications on the Internet. Such support is crucial to e-commerce applications. QuickStudy: Directory Services Markup Language
• Financial Products Markup Language: FPML is a business information exchange standard for electronic trading and processing of financial derivatives instruments. It establishes a protocol for sharing information on and dealing in derivatives and structured products. www.fpml.org/index.html
• Hypertext Markup Language: The backbone of the Web, HTML is based on a dialect of GML that was previously used at CERN. Its primary innovation was to allow simple hypertext links from one document to another. www.w3.org/MarkUp
• Human Markup Language: HML is part of an effort to provide a framework for the overall human communication process, including areas and concepts such as thought, emotions, behaviors, kinesics, beliefs and facial expressions, through graphical or text-based representation. It goes way beyond emoticons! www.humanmarkup.org
• Materials Markup Language: MatML was developed for the interchange of materials information. www.matml.org
• Multimedia Retrieval Markup Language: MRML unifies access to multimedia retrieval and management software components to extend their capabilities. www.mrml.net
• Physical Markup Language: PML is a simple, general language for describing physical objects and environments for industrial, commercial and consumer applications. PML allows modularity and flexibility so it can be used in monitoring and controlling a physical environment. Applications include inventory tracking, automatic transactions, supply chain management, machine control and object-to-object communication. http://web.mit.edu/mecheng/pml/index.htm
• Security Assertion Markup Language: SAML is an XML-based framework for communicating user authentication, entitlement and attribute information. It allows businesses to make assertions regarding the identity, attributes and entitlements of a subject (often a human user) to other entities, such as a partner company or another enterprise application. www.oasis-open.org/committees/security/faq.php
• Services Provisioning Markup Language: SPML is a framework for exchanging user, resource and service provisioning information between applications and organizations. QuickStudy: SPML
• Speech Synthesis Markup Language: SSML assists in the generation of synthetic speech in Web software and other applications by providing a standard way to control speech aspects such as pronunciation, volume, pitch and rate across different platforms. www.w3.org/TR/speech-synthesis
• User Interface Markup Language: UIML permits the creation of user interfaces for any device, target language and operating system on a device. It describes three things: the appearance of a UI, user interaction with the UI and how the UI is connected to the application logic. www.uiml.org
• Voice Extensible Markup Language: Voice-activated applications are increasingly common, and VoiceXML specifies common features to help ensure portability between platforms. www.voicexml.org
• Wireless Markup Language: WML describes content and formats for presenting data on limited-bandwidth devices such as cellular phones and pagers. Rather than attempting to deliver the same Web page content you would see on a PC, WML presents mainly text-based information optimized for mobile devices. QuickStudy: Wireless Markup Language
• Extensible Access Control Markup Language: XACML is an XML-based schema that was designed for creating policies and automating their use to control access to disparate devices and applications on a network. QuickStudy: XSCML
• Extensible Markup Language: XML was created to combine the extensibility of SGML with the simplicity and wide support of HTML. Basically a subset of SGML, it's simpler and easier to implement and allows most of SGML's capabilities. XML was approved as a standard by the World Wide Web Consortium in 1998. http://www.w3.org/XML/
Kay is a Computerworld contributing writer in Worcester, Mass. You can reach him at firstname.lastname@example.org.
See additional Computerworld QuickStudies