<LML /> 2.0 - Prose Markup Module

specification

Author: Dr. O. Hoffmann (German web-page)

This module belongs to the Literature Markup Language Version 2.0

Changes

The elements listoffigures, listoftables, registry, sources and tableofcontents are new in LML 2.0. And there are several new elements for frequently asked questions and tasks.

Element-Index

Complete Element and Attribute Index

Prose

Prose is in general text with no specific requirements for the presentation of rhythmic or rhymed content. On the contrary the presentation should not pronounce accidental rhythmic or rhymed fragments.

prosa

Description

Type: Block

A generic container for prose with no specific requirements for the presentation of rhythmic or rhymed content.

Relations

address

Description

Type: Block

A container for an address, this may include a postal address, fax, email, phone number ...
Depending on the origin or different traditions, there can be specific requirements, how these data are ordered, what is not in the focus of this definition. However, LML provides (mainly in version 2.0) some inline elements to identify several stereotype address substructures like name, forename, surname, naname, street, addrcode, country, email, phone, fax, , homepage.

Relations

Note, that in (X)HTML there is an element with the same name and a more specific meaning as a container for contact information to the author or editor, this is not the case here.

beq

Description

Type: Block

A container for mathematics or in general equations or similar structures from natural science, logic or related areas. Often equations or such abstractions require some advanced presentation or markup from foreign namespaces to provide the functionality. Similar to fig beq can contain the content itself or links to external resources.

Relations

Sample for beq

Examples how to embed equations.

bibliography

Description

Type: Block

Indicates that the content of the element is a bibliography, typically lists of external references with a relation to the content of the current document. Typically a bibliography is a specific type of prose, for the exotic case that this is not true, the author may add an additional role like poetry at the end of the role list to indicate this.

Relations

caption

Description

Type: Block

A caption of a table or fig or beq. Obviously the order, the caption is combined with other children of the parent, determines the position of the caption. Usually for simple structures this is either before other children or behind, typically not between. But if a parent contains more than one structure with a demand of an own , the caption can appear more than once and at different positions within the parent.

Relations

conversation

Description

Type: Block

An element containing a conversation fragment for example in an interview or a stage play or a 'frequently asked questions' section. Typically the content consists of the elements directive, sp, l, p.

Relations

directive

Type: Block

This is the same as directive from dialogue, but appears within the element conversation. It is related to non poetic content, for example in a stage play.

Relations

sp

Type: Block

Description

This is the same as sp from dialogue, but appears within the element conversation. It is related to non poetic content, for example in a stage play or an interview and might be used too to indicate abstractions like 'question' and 'answer' in a 'frequently asked questions' section, even if this does not have real speakers.

The element contains information about the currently speaking person in a conversation fragment. Typically it contains the name of the speaker as text and this element is directly followed by l or p elements containing the text message of this speaker. If an sp element follows directly on an sp element, this indicates the previous speaker to be speechless. If there is no previous speaker for other content except directive in a conversation, this means that the speaker is anonymous from the off, but this should be avoided by the author.

The words spoken by the speaking person can be marked up in a sibling element ds for general direct speech, but within a dialogue this can be implicated as well from the sp indicating a speaker.

Relations

conversation sample

conversation Beispiel (de)

faq (v2)

Description

Type: Block

A container for questions and answers of the type frequently asked questions. The container can contain headings and paragraphs, the usual structures to explain the general task of the section. Specific container elements for the questions and answer structure are elements faqg containing questions and answers for one issue. Usually a faq contains mainly some amount of faqgs.

Relations

faqg (v2)

Description

Type: Block

A container for one issue in a faq. Expected content are elements faqq and faqa. Usually or often one starts with one questions inside faqq followed by one answer in faqa for one issue contained in faqg, but is is not excluded, that there is more than one question for an answer or more than one answer to a question.

Relations

faqq (v2)

Description

Type: Block

A container for the questions within a frequently asked question group faqg. Usually the next element after such a faqq is an element faqa with the related answer.

Relations

faqa (v2)

Description

Type: Block

A container for the answer within a frequently asked question group faqg. Usually after a question faqq there is an element faqa with the related answer.

Relations

Sample for faq

<faq>
<h>About holes</h>
<p>
Holes are a difficult concept.
Here are answers for frequently asked questions.
</p>
<faqg>
<faqq>How do I create a hole?</faqq>
<faqa>Start with something, that is of the surface type. 
Then remove a fragment of something in such a way, 
that some parts of something remain around the removed part.</faqa>
<faqa>Start with nothing 
and put something of a surface type around.</faqa>
</faqg>
<faqg>
<faqq>How do I create a hole in solid matter?</faqq>
<faqa>This is almost the same as for the surface type. 
You mainly have to care, 
that the nothing is completely surrounded by something.</faqa>
</faqg>
</faq>

fig

Description

Type: Block

A container for a figure. The content may be a caption, more descriptive text, metadata about the figure, images, graphics or some other multimedia content (visual, audible, tactile, smellable, tactile etc) and a text alternative for all this non textual content, see switch for the method to provide alternatives.
link can be used to reference external content or the host language has to provide elements with the functionality of such content or with the functionality to embed this multimedia content, for example the SMIL media object elements or the corresponding elements in SVG or img or object in HTML4 or img in DAISY or imagedata or mediaobject in DocBook.

Relations

Samples for fig

Examples how to embed graphics.

form

Description

Type: Block

A container for a form. The functionality of the form is either provided by the host language or a specific language like XForms can be used.

Relations

Sample for form

Examples how to use XHTML forms.

l

Description

Type: Block

A container for one line of prose text.

It is expected, that text within one line is identifiable to belong to this line. Especially for visual presentation within a limited space this requires some indication of an undesired line break, which appears under some circumstances within a finite view box.

Relations

list

Description

Type: Block

A container for a list.

It is expected, that the content is only list related elements like list items, groups or topics, meta elements. A list may have a heading with the element h on top to provide a heading for the complete list.
The list element can have a list type indicator attribute.

Relations

ltype

Description

Type: attribute

The element list indicates more a technical functionality, not much about the semantic purpose of a list. ltype is a specific attribute of the list or lg element. It indicates the list type of a list. If used with the role approach, a predefined value can be used with the related CURIE.

For example HTML has specific elements for this purpose, ul, ol, dl. Often these elements are more related to styling than semantics and do not cover all types of possible lists. Instead of completing this list of elements, an author can simply specify the list type with this attribute.

Obviously, if the host language does not provide the intended functionality, the author has to simulate it by styling, if possible. If not simulatable, the functionality cannot be used respectively it cannot be expected, that the functionality is available with a user-agent, that does not interpret LML itself. A typical approach might be styling.

Predefined values are:

uo
unordered, typically the list items indicated all with the same symbol, the list is not really technically unordered.
oi
increasing order, typically the list items have different indicators like numbers or letters to indicate the order. The indicators have themselves some order from begin to end with increasing order like numbers from small to large.
od
decreasing order, typically the list items have different indicators like numbers or letters to indicate the order. The indicators have themselves some order from begin to end with decreasing order like numbers from large to small.
df
definition, here the lt content is defined by the following li content. This can be used too, if only one object is defined, similar to the element dfn from HTML, what is pretty plurivalent about the question what is defined and what is the explanation. This list type corresponds to the HTML definition list.
law
for law text paragraphs, the lt contains the paragraph identifier, the li the law text of the paragraph. Typically law paragraphs have to be referenced, therefore the paragraph identifiers need to be hard-coded and not generated implicitly with the types oi or od, additionally an author may add an identifier attribute like xml:id to provide a possibility to reference each paragraph separately.
bill
for bills or invoices, the lt contains the amount of money, the li the product.
recipe
for recipes, the lt contains the amount or mass or volume,the li the ingredients.
shop
for shopping lists, lt are inside the li, one for the amount, one maybe for the price, the other content of the li is the product to buy.
none
no indication or numbering of list items (default).
project
if a project is split into several documents, this lists all elements belonging to one project like a book or magazine to ensure, that all documents can be gathered together automatically.
contact
for address books, telephone books etc, listing contact information about persons or organisations. The element lt may indicate an identifier, name, number etc, the li the contact information.
label
for lists structuring for example a simple form, typically then a lt contains a label for some form input elements inside li.
al
this is used for a list of link elements in a meta element for alternative language variants, the language is indicated with the attribute rlang of the element link.
ac
this is used for a list of link elements in a meta element for alternatives in another format (MIME-type), the type is indicated with the attribute type of the element link.
as(*)
this is used for a list of link elements in a meta element for (alternative) stylesheets (or timesheets) applied to the meta element target, (*) is optional with * as a wildcard for an optional string. The default style has no string, alternatives belonging together have the same string. The cascade or the priorities follow the nesting of elements. If there is no style with no string, no style is used as default. The stylesheets are only applied, if the meta element target is inside the current document. If the meta element target is another document, this list has no influence on the appearance of the other document.

Because this list is not exhaustive, it may be extended in the future. If an author wants to extend it with a currently not existing type, the value has to be a safe CURIE: '[' CURIE ']' pointing to a definition of the type.

Relations

none

li

Description

Type: Block

A container for a list item. li appears only in list (or in lg inside list).

Relations

lt

Description

Type: Block or inline depending on the appearance

A container for a list topic. lt appears only in list, lg or in a li. If it appears as direct children of a list or lg, it is a block element, if it appears as direct children of a li, it is an inline element. Authors should not mix these two models. If used inside the li, it should be either before or after any other content of the li. Obviously in such a case the li itself may only contain inline content, alternatively it can contain only block elements but not a mixture.

A list topic or list title or list term or list tag gives something like the heading for the following li elements, respectively the following li elements define or describe the topic. In some types of lists the list topic may be inside the li and it may be only a tag or symbol or number or marginal note like the numbering in law text paragraphs. It may contain the amount of or for the list items in a recipe or bill. Authors may avoid that there is no following list item. If there is no list item is following, it is assumed that the list item is empty.

Relations

lg

Description

Type: Block

A container for a group of listed containers. This can be used to group li elements within a list including lt, but can be used independently from list without li elements inside. The second use case works similarly to the list element, but the children are not explicitly mentioned li or lt elements. li is replaced with another element, for example for a list of authors of the document a creator element can be used with the element lg inside with the corresponding number of elements providing the names of the authors. This is a more weak list indication as the list element. The children can be inline elements too.

Relations

none, but several formats provide specific grouping elements for specific children.

Samples for lists

list type samples.

listoffigures (v2)

Description

Type: Block (meta)

Listing of figures in a work, not necessarily really a list.

listoftables (v2)

Description

Type: Block (meta)

Listing of tables in a work, not necessarily really a list.

tableofcontents (v2)

Description

Type: Block (meta)

List/table of contents.

p

Description

Type: Block

A block container for text indicating a paragraph. A p typically consists of a few sentences representing a completed train of thought. A paragraph has no specific substructure and may not contain other block elements like p itself, but it can contain inline elements. Authors are discouraged to use it as a container for poetry content and may not indicate it as poetry as well.

Relations

registry (v2)

Description

Type: Block (meta)

Registry or index of items discussed in a work.

sources (v2)

Description

Type: Block (meta)

Source references of a work or parts of it, for example authors of supplemental content like graphics, maybe including license conditions for such supplemental content as well.

table

Description

Type: Block

A container for tabular content. Note, that for advanced purposes, some specific attributes or styling might be required for tabular content, not defined here. In doubt it can be more useful, to use explicitly another language like XHTML to markup tables.

There are different models for the content of a table, common to all are a caption, colgroup and col.
The simplest model is to have only additional tr elements.
The next model is to have thead, tfoot, tbody as children of table additionally and the tr inside of them.

Relations

ttype

Description

Type: attribute

The element table indicates more a technical functionality, not much about the semantic purpose of a table. ttype is a specific attribute of the table element. It indicates the type of a table. If used with the role approach, a predefined value can be used with the related CURIE.

Predefined values are:

bill
for bills or invoices with a more complex structure than the related list type bill.
calendar
for calendars, week, month, complete year, indicating for example a relation between the date of the week and the date, the week number and the date etc
comparison
for comparisons, for example for different products, objects or subjects and their properties and behaviour, appearance etc.
contact
for address books, telephone books etc, listing contact information about persons or organisations in a structured way.
group
for a group or Cayley table defining a binary operation. Sometimes it might be more effective to use MathML for this.
label
for tables structuring for example a more complex form, typically then a th contains a label for some form input elements inside td.
lookup
for tables containing data to look up something, for example numerical data from astronomy for mathematical functions, lists of physical constants, historical events.
matrix
for matrices or vectors and related mathematical structures. Sometimes it might be more effective to use MathML for this.
none
no further indication of the semantic meaning (default).
recipe
for recipes with a more complex structure that the related list type recipe.
scheduler
for tables containing dates and events to organise something, like a personal planner or scheduler or to correlate events, times and the location where and when the event will happen or happened already.
shop
for shopping lists with a more complex structure that the related list type shop.
statistics
for statistical data
timetable
for timetables of busses, trams, subways, air-planes etc

Because this list is not exhaustive, it may be extended in the future. If an author wants to extend it with a currently not existing type, the value has to be a safe CURIE: '[' CURIE ']' pointing to a definition of the type.

tr

Description

Type: Block

A table row. Inside of tr there are td or th.

Relations

td

Description

Type: Block

A table data cell. Due to the complexity of tables, authors may avoid unnecessary complex content inside a td.

Relations

th

Description

Type: Block

A table data cell containing header information. Due to the complexity of tables, authors may avoid unnecessary complex content inside a th.

Relations

thead

Description

Type: Block

A grouping element for table rows tr containing header information.

Relations

tfoot

Description

Type: Block

A grouping element for table rows tr containing footer information.

Relations

tbody

Description

Type: Block

A grouping element for table rows tr containing table data.

Relations

colgroup

Description

Type: Block

A structure element to group table columns, see the HTML4 description for details.

Relations

col

Description

Type: Block

A structure element for tables columns, see the HTML4 description for details.

Relations

task (v2)

Description

Type: Block

A container for a task within a documentation or tutorial to explain how to do something. Typical content is a heading and some general explanations or descriptions about the task, followed by an element taskq containing the task question or challenge to solve. The answer is expected in the following taska.

Relations

taskq (v2)

Description

Type: Block

A container for a task question or challenge to solve. The answer is expected in a following taska.

Relations

taskb (v2)

Description

Type: Block

A container to mention or to reference information one needs to solve the task, the prerequisites.

Relations

taska (v2)

Description

Type: Block

A container for a task answer. The content is either the usual flow content including lists. Alternatively one can construct a specific list structure indicating steps to solve the task using an element tasks for each step, if applicable followed by a taskr for the result of the step.

Relations

tasks (v2)

Description

Type: Block

A container for a task answer step. A tasks may contain substeps as well, using more tasks inside a tasks.

Relations

taskc (v2)

Description

Type: Block

A container for a choice between different possible task answer steps. A taskc contains the tasks to chose between.

Relations

taskr (v2)

Description

Type: Block

A container for a task answer step result. A taskr may contain subresults as well, using more taskr inside a taskr.

Relations

taskp (v2)

Description

Type: Block

A container for a task postrequisites, suggestions what to do after solving the task.

Relations

taskt (v2)

Description

Type: Block

A container for a task troubleshooting. It is expected inside task or task specific subelements

Relations