*** 2nd DRAFT ***
WebCGM 2+ Requirements & Use Cases
(Revision: August 15, 2007)


1. Introduction

blah ... blah ... blah ....

WebCGM is a profile for the effective application of CGM in Web electronic technical documents. The latest current version, WebCGM 2.0 [1], was a collaboration of CGMO/OASIS and W3C, and was simultaneously published by both in January 2007. The original WebCGM 1.0 Profile was issued as a W3C Recommendation on 21st January, 1999, followed by a second, errata-correcting release on Dec 17, 2001.

WebCGM represents an important interoperability agreement amongst major users and implementors of CGM, and thereby unifies current diverse approaches to CGM utilization in Web document applications. WebCGM has become the reference profile in the CGM world, and with other profiles referencing WebCGM instead of developing their own profiles.

Most users of the Internet will rarely run into a CGM on a web page, however, WebCGM is used heavily in technical publishing projects around the world. It is both used as an archival format and for distribution purposes using Internet technologies. The deployment mostly happens on CD/DVD, or on private web sites, since most companies do not want to allow for casual access to their technical data.

Now it's time for "2+" (or 2-plus).


2. WebCGM 2+ requirements

2.1 Summary table

CGM Open has recorded and discussed the following requirements for a successor version (or versions) to WebCGM 2.0. The following table summarizes information about all of the potential requirements that have been raised and discussed.

About the table:

Functionality Source/References Status/Disposition Spec Use case
Styling properties (default line cap, etc), XCF solution [3] INACTIVE. (Nothing since Clearwater [3].) 2.1 Forrest Carpenter
Dynamic control of graphical attributes [5]/[4], [11] INACTIVE. (Awaiting use-case input [11]) [???] [???]. Open
Search (text content);

Search (generalized to other pattern matches)

[3] (,[5]/[4]), [9], [11],
[12], [13], [14]
OPEN. (Discussed several times, supporting some level of functionality, but more req'ts clarification needed -- TBD.) 2.1;


Harry Whitaker/Scot Swan
(Partial [9], more detail needed.)
Flow text generalized;

Flow text – registered item for Restricted Text Type

[3] (,[5]/[4]), [6] OPEN/INACTIVE. (Use case [6] but no significant discussion yet.) 3.0;


Jack Snapper/Forrest Carpenter
(Done, see [6])
Dynamic annotation, writable DOM at graphical primitive level. (xpath) [3] (,[5]/[4])  INACTIVE. (Nothing since Clearwater [3].) 3.0 Larry Baum
Sprite animation;

Animation generalized

[3] (,[5]/[4]), [7], [11],
[14], [16], [18]
OPEN. (Discussed several times without consensus; agreement that more detailed req'ts needed. Waiting on that.) 2.1;


Andy Dewild/Dave Cruikshank
(Partial [7], more detail needed.)
DRM: Encryption/security (piecewise);

DRM: Encryption/security (blob)

[3] (,[5]/[4]) INACTIVE. (Nothing since Clearwater.) V5;


Don Larson
Z compress, like svg [3] (,[5]/[4]), [11] INACTIVE. (Mentioned once [11] but no conclusive discussion yet.) 2.1 Don Larson
(Pending; passing reference in [11])
Compositing (montage) – meta-language – also redlining [3] (,[5]/[4]), [6] OPEN/INACTIVE. (Use case [6] but no significant discussion yet.) 3.0 Don Larson/Forrest Carpenter
(Done, see [6])
Improved font interchange; embedded fonts svg-like. [3] (,[5]/[4]), [6] OPEN/INACTIVE. (Use case [6] but no significant discussion yet.) V5 Don Larson/Forrest Carpenter
(Done, see [6])
Line visibility [3] (,[5]/[4]) INACTIVE. (Nothing since Clearwater [3].) V5 Allan Tegelberg
Global segments [3] (,[5]/[4]), [11] OPEN/INACTIVE. (Mentioned once [11] but no significant discussion yet.)  2.1 Dave Cruikshank
Fix transparency [3] INACTIVE. (Nothing since Clearwater [3].) 2.1 Lofton Henderson/Benoit Bezaire
Arrowhead attributes – registered Escape - profile [3] (,[5]/[4]), [6] OPEN/INACTIVE. (Use case [6] but no significant discussion yet.) 3.0 Forrest Carpenter (Done, see [6])
Halo line type;

Halo via registration of Escape – possible aux color solution?

[3] (,[5]/[4]), [6] OPEN/INACTIVE. (Use case [6] but no significant discussion yet.) V5;


Forrest Carpenter/Jack Snapper
(Done, see [6])
Sub-string hotspots [5]/[4], [6], [8], [13],
PENDING. Solution pending (ISO defect); examine 2.0 [TBD];  2.0?
Forrest Carpenter/Scott Swan 
(Done, see [6] & [8])
Multiple pictures [17], [3], [15] OPEN. (No conclusive telecon discussion yet.) ??? Andy Dewild/Dave Cruikshank
(Done, see [17].)

2.2 Details

2.2.1 Substring hotspots

From [6]: Requested by S1000D, Boeing, Lockheed Martin. Use Case – a line of text may contain one or more sub-strings that need to be hotspotted to reference another document. The simplest implementation would be to allow apps to occur within not-final text strings.

An ISO defect to allow this is pending, approval expected late summer 2007. Possibly, this defect enables the feature in 2.0, without any change to text required. TBD: examine 2.0 to verify, and to see whether any related changes are required (e.g., to content model).

A different solution to achieving the functionality was proposed [8]: "An optional attribute should be added to the hotspot element to allow the author to specify a range of characters in a text entity that comprise a hotspot. The charrange attribute will specify the start and end range of the characters that make up the hot part of the string. Valid character positions will start at 1 and extend to the length of the string. In order to allow for more than one hotspot per text element, multiple non-overlapping ranges may be specified in multiple hotspot elements." We assume that the APS markup solution is equally acceptable.\

From [13]: State model changes are very much simpler if only need to handle middle-substring case. WebCGM could handle middle case in a straight forward manner with that CGM:1999 defect correction, and add wording in the profile on how to handle the leading and trailing cases. Need to allow elements allowed in TOS in SOS. US graphics subproject indicates that defect report approach to resolution of the CPF is okay [14].

Discussion [14]. [...??? these comments are a mystery...] This only works easily with grobjects. Things would have to be carefully implemented due to content model of para/subpara.

2.2.2 Paragraph flow text

From [6]: Requested by Lockheed Martin and others. Use case – fault isolation diagrams, pasting text from other applications, easier editing of multi line text. The simplest implementation would be to add a width and line spacing attribute to the para.

2.2.3 Improved font interchange

From [3]:

From [6]: Requested by many. Use Case – a CGM may be created on one computer system using a specific font and viewed or printed on another. The specified font may not be available on all systems. Proposed simplest implementation might be to maintain the text both in the form of editable text and closed figures when a non-standard font is specified. The solution could also involve embedded fonts, SVG-like.

2.2.4 Definable arrowhead and halo line styles

From [6]: Requested by Lockheed Martin and others. Use Case – there is no standard defining the shape, aspect ratio or width of an arrow head and other end styles. There is no way to specify an arrow head on a line that is not solid. Halos around lines are used/needed to make callout lines and leader lines more visible. Proposed simplest implementation might be to add two escapes, one that would specify the shape, aspect ratio and width the beginning and/or end of a line, and one that would specify the width of a halo around a line and end style.

2.2.5 Compositing

From [3]: Could we design a composite file format that would describe how multiple CGM files could be combined into a composite picture? This would enable parts to be reused in multiple illustrations – Page layout – enables reuse of art.

From [6]: Requested by many. Use Case – many technical illustrations are made by combining parts of illustrations and adding text and minimal markup. A change in the original drawing requires a change in the derivative illustration. If the derivative CGM contained only a reference to the original drawing and place holder, any change in the original would automatically be included in any CGM derived from that original. Proposed simplest implementation might be to add an escape that specified a file name and a location for the file to me inserted within the CGM.

2.2.6 Animation

From [7], [11]: In general, training materials often use Flash to do animation. But it can be expensive to "program". Use cases might include showing a hydraulic valve opening/closing and then water flowing in/out of a system on a schematic, or powering up an aircraft and the chain of electrical/mechanical events that occur. Currently, CGM V4 is used to create "discount animation" -- it is a bit rough looking, but CGM V4 can be animated using layering/hotspotting techniques and then "played" at runtime by controlling visibility of layers that have the art to be animated.

Telecon discussion [11] concludes: "Need to determine the complexity of animation required."

From [3], "Sprite animation (UAL request) – possible to do with segments? Model in GKS?"

Discussion [14]: Some options:

Is there a requirement for more than transform animation – color, patterns, etc? Dave will clarify requirement with users.

A useful taxonomy of four classes of animation has been identified [18] -- transforms, color, motion along path, points (geometry) -- along with advice regarding the level of effort to achieve animation within WebCGM.

Some questions communicated to animation requestors [16]:

Dieter [16]: declarative animation inside CGM file is only way to get the performance needed, and that the scripted environment is slowest way to try to do this; has serious reservations about whether there are real requirements for WebCGM animation; willing to share what they have learned during their implementation (of SVG animation).

2.2.7 Text search

Use case [11]: locating a particular wire on a wiring diagram

From [9], "There is no standard way to specify text search capability in graphics files. The WebCGM 2.0 capability to load graphic entities into a DOM, the capability to provide keyword and unstructured text search becomes possible. Because there are several methods in which this functionality can be implemented, a standard definition of where in a CGM file and what method to store keywords should be defined. Some raster graphic formats allow metadata tags that will also allow for keyword text searching, and with a companion file for raster formats that do not support metadata, this functionality can be extended to most or all graphics."

And more proposed detail [9], [14]: "A definition for graphic search functionality should be provided to standardize the methods used to search graphics with respect to:

Discussion indicates considerable sympathy with the need, but confusion about the scope of the functionality and exactly what is being requested. TBD -- clarify requirements.

Telecon discussion [12]: Thoughts on "how to":

Why was 'content' not in the original (2.0) XCF? It was probably because it was defined as readonly. The XCF solution was been suggested as an extension to the XCF so people could do their own searching. This could be done via scripting or via a DOM interface for a search string. It would be the equivalent of a getAPS by id (getAPS by content value). How would you deal with substring hits in the search? Provide minimal i/f and build other stuff in script, or provide functionality into i/f. TBD -- Requirements need to be generated.

From [13]: Two implementation approaches:

  1. getAppStructuresByContent
  2. dedicated search interface

Feedback from US S1000D [14] indicated a need for both solutions. Discussion [14]: We don't understand why. Is there really a requirement for both? Additional discussion point: Since the content APS attribute is only available on APS structure types of para and subpara, it would require a change to S1000D to allow those types. Currently S1000D only allows APS structure type of grobject.

2.2.8 Compression

From [3], "Z Compression. Could we specify a way to use Z compression for CGM files in a similar way the SVG does. i.e. like a CGZ file format? Large image files, lots of color image data might gain a 4-5 times compression." From [11], "Use case: reduction of file sizes."

2.2.9 Digital rights management

From [3], "Users have asked for a way to encrypt and password protect CGM files so that they can be securely emailed or exchanged. There are models we could follow for this like PDF. – Also heard this requirement from the US military."

2.2.10 Global segments

From [11]: Global segments. This probably involves more that just allowing global segments. It also involves control of transformations to global segments at run time through the DOM I/F. Use case: could be used instead of visibility to show positions of switches.

From [3]: ·Global segments? Initially eliminated because of poor support.

2.2.11 Multiple pictures

From [17]: "When CGM was first introduced it was to facilitate the exchange of "illustrations" as they were depicted in Maintenance type manuals such as Illustrated Parts Catalogs, Component Maintnenace Manuals, Maintenance Manuals, Wiring Diagram Manuals, System Schematic Manuals, etc. Illustrations inherently are composed of individual figures with each figure being a single picture within a metafile so the curent restriction of one picture per metafile worked fine for maintenance type manuals. Little, if any, attention was paid to engineering drawings. Over the years several CGM viewers have been implemented in systems used to display engineering drawings. Autoview's Cimmetry viewer being one of those. It essentially takes CATIA 2D source data and converts it into a CGM for display purposes, and does a nice job of it up to a point. Engineering drawings are typically made up of mutiple sheets. In CAD systems like CATIA these multiple sheets are stored in a single file. The showstopper being that the CGM viewers can display only one sheet of a multi-sheet drawing. This makes them practically useless at all levels of review and manufacturing, forcing users to print out hard copies. Is this something that one of your committees can take on and help resolve by updating the ATA, CGM Open, and ISO specs to accommodate mutiple pictures per metafile?"

From [15]: Subsequent discussions with Andy indicated that CATIA drawings were saved as multiple sheet files, but exported to CGM as separate CGM files.

From [16]: We will make a final decision on this at the f2f meeting. We had reasons for deprecating this in the first place, such as the burden of larger files at presentation time. It’s really more of a configuration management issue on the CAD side. As such, maybe its really not a WebCGM issue. Could be handled as a cascading industry profile off WebCGM using multi-pictures files through the linkuri.

2.2.12 Dynamic annotation

From [3]: Annotation generation at run-time – To be able to reuse graphical bits and change the labels on them. Generate text callouts on the fly without storing them all in WebCGM – generalized to primitives, too?

2.5 WebCGM Document Object Model (DOM) Requirements

This "out-of-scope" subsection from 2.0 requirements might be interesting to read, and consider whether any of the 2.0 out-of-scope items are in-scope for 2+.

2.5.x Outside of scope

The following capabilities were not included in the WebCGM 2.0 DOM requirements. It is natural to question whether they are in 2.1 or 3.0 or "never".

modifying graphical data:
A user writes a script that controls the attributes of graphical primitives (lines, circles, rectangles, beziers), for example: a user changes the width of a rectangle border; or changes the fill pattern of an ellipse.
drag and drop:
A user clicks on a object and holds down the mouse button, he drags the object to a new location then releases the mouse. The object is now located at the new mouse position.
context sensitive menus:
A user performs a right mouse click on an object, the resulting action displays a popup menu.
modifying text content:
A user writes a script that changes the text content of a para or subpara.
creating a WebCGM document:
A user creates from scratch a WebCGM document using the DOM.
adding new objects:
A user appends new objects to an existing document using the DOM.
removing objects:
A user removes existing objects from a WebCGM document.
A user changes the appearance of an illustration by making changes to the transformation of a given object.

2.7 Internationalization considerations

Discuss any beyond the already-implemented 2.0 requirements (IRI etc).

2.8 Accessibility considerations

We deferred some topics in W3C processing of 2.0, and these will almost certainly come back in any W3C acceptance of follow-on work. (Except: It is conceipvable that we could still defer for a small 2.1 that is scoped as "stuff that should have been in 2.0 but got left out because of timing.")

2.9 Schedule requirements

We should consider whether we still want a fast 2.1, with the possibility of a longer-term 3.0 project. If "yes", that will certainly drive the answer to some questions.

3. Bibliography & references

WebCGM 2.0:

W3C 2.0 Requirements: http://www.cgmopen.org/technical/WebCGM_20_Requirements.html

Clearwater "future thoughts" brainstorming: http://lists.oasis-open.org/archives/cgmo-webcgm/200611/doc00001.doc

DC requirements solicitation (of [5]: http://lists.oasis-open.org/archives/cgmo-webcgm/200703/msg00008.html

Sort 2+ future functionality: http://lists.oasis-open.org/archives/cgmo-webcgm/200704/msg00001.html
[attachment: http://lists.oasis-open.org/archives/cgmo-webcgm/200704/doc00001.doc ]

FC input: http://lists.oasis-open.org/archives/cgmo-webcgm/200704/msg00004.html
[attachment: http://lists.oasis-open.org/archives/cgmo-webcgm/200704/doc00003.doc ]

Animation use case: http://lists.oasis-open.org/archives/cgmo-webcgm/200705/msg00004.html

S1000D CPF for Graphics Text Hotspot:
[PDF attachment: http://lists.oasis-open.org/archives/cgmo-webcgm/200705/bin00001.bin ]

S1000D CPF for Text Search: http://lists.oasis-open.org/archives/cgmo-webcgm/200706/msg00004.html
[DOC attachment: http://lists.oasis-open.org/archives/cgmo-webcgm/200706/doc00000.doc ]

Telecon (20070404) rqts discussion:
minutes: http://www.oasis-open.org/committees/download.php/23386/20070404_WebCGM_TC_Telecon_minutes.doc

Telecon (20070509) rqts discussion:
agenda: [tbd]
minutes: http://www.oasis-open.org/committees/download.php/23961/20070509_WebCGM_TC_Telecon_minutes.pdf

Telecon (20070523) rqts discussion:
agenda: http://lists.oasis-open.org/archives/cgmo-webcgm/200705/doc00000.doc
minutes: http://www.oasis-open.org/committees/download.php/24841/20070523_WebCGM_TC_Telecon_minutes.pdf

Telecon (20070606) rqts discussion:
agenda: http://lists.oasis-open.org/archives/cgmo-webcgm/200706/doc00001.doc
minutes: http://www.oasis-open.org/committees/download.php/24842/20070606_WebCGM_TC_Telecon_minutes.pdf

Telecon (20070620) rqts discussion:
agenda: [tbd]
minutes: http://www.oasis-open.org/committees/download.php/24466/20070620_WebCGM_TC_Telecon_minutes.doc

Telecon (20070711) rqts discussion:
agenda: http://lists.oasis-open.org/archives/cgmo-webcgm/200707/doc00000.doc
minutes: http://www.oasis-open.org/committees/download.php/24843/20070711_WebCGM_TC_Telecon_minutes.pdf

Telecon (20070801) rqts discussion:
agenda: http://lists.oasis-open.org/archives/cgmo-webcgm/200707/msg00008.html
minutes: http://www.oasis-open.org/committees/download.php/24852/20070801_WebCGM_TC_Telecon_minutes.pdf

multi-picture use case: http://lists.oasis-open.org/archives/cgmo-webcgm/200706/msg00027.html

animation discussion thread: http://lists.oasis-open.org/archives/cgmo-webcgm/200706/msg00036.html

4. Revision history