UML 2.6 RTF Avatar
  1. OMG Issue

UMLR — BNF notation as given and used is unclear about italics

  • Key: UMLR-408
  • Status: open  
  • Source: Change Vision ( Michael Chonoles)
  • Summary:

    In the description of our BNF format page 9.

    Bullet 1.
    All non-terminals are in italics and enclosed between angle brackets (e.g., <non-terminal>).

    The Angle brackets are given in Roman (non-italic) font, however (almost) all uses have italic angle brackets. See example, indicated below for multiplicity_range

    Bullet 2.
    All terminals (keywords, strings, etc.), are enclosed between single quotes (e.g., ‘or’).
    The example uses Roman font, but almost all uses have the terminals in italic anyway. The quotes are also in Roman

    Bullet 3
    Non-terminal production rule definitions are signified with the ‘::=’ operator.
    The ::= operator is always used in italics.

    Bullet 4
    Repetition of an item is signified by an asterisk placed after that item: ‘*’.
    The * is roman, but it (always?) appears in italic

    Bullet 5
    Alternative choices in a production are separated by the ‘|’ symbol (e.g., <alternative-A> | <alternative-B>).
    The | is in roman, but it is used in italic

    Bullet 6
    Items that are optional are enclosed in square brackets (e.g., [<item-x>]).
    This is in italics, and coincidently, it is always used in italics. However, based on bullet 1, the angle brackets should be in roman.

    This confusion is throughout the spec and makes implementation harder.

    For example in 7.5.4, where the BNF definition of multiplicity range is given at
    <multiplicity-range> ::= [ <lower> ‘..’ ] <upper>

    Bullet 1 rules. The < and > are given in italics violating Bullet 1

    Bullet 2 rules
    In this case, the ".." is given as italics (both the .. and the quotes).
    Does this mean that all multiplicities that use the .. should have them in italics?
    Bullet 3 rules. The ::= is given in italics

    Using the example also on the 7.5.4 for the definition of order-designator
    <order-designator> ::= ‘ordered’ | ‘unordered’
    Bullet 2, As ordered and unordered are terminals this indicates that the terms ordered and unordered should be shown in italics. IN the figure below 7.11 they are shown in roman.
    Rules from Bullet 3 and 5 are also violated.

  • Reported: UML 2.5 — Wed, 14 Jan 2015 21:48 GMT
  • Updated: Fri, 6 Mar 2015 20:57 GMT