Editing Directives
for WebCGM 1.0 Second Release
Draft: 02 April
2001
Prepared by: Dave
Cruikshank, Lofton Henderson
Herein are editing directives to produce WebCGM 1.0 Second Release.
These include a set of editorial corrections and clarifications that were processed and approved by CGM Open in 1999 and 2000. Also included are a set of corrections and clarifications that have been discussed and approved by the CGM Open Technical committee at its December meeting (and subsequent teleconferences).
Change 1992 reference to 1991
Change reference "CGM:1992 Amendment 2:" to "CGM :1999 Clause 9 "Profiles and conformance"" and change "of the amendment" to "of CGM:1999 Annex I.1, Proforma tables"
Delete references to "grex24" since this is no longer the ATA naming convention
Add new bullet to the end of the bullet list: "Work is in progress on a WebCGM conformance test suite, and is anticipated to be available from CGM Open during the second quarter of 2001."
Add new paragraph at end: "WebCGM contains both static graphics functionality and dynamic behaviors functionality. Viewer conformance to the static graphics functionality can be measured for any kind of WebCGM viewer. Full viewer conformance to the dynamic behaviors specifications can only be measured in an environment of HTML-based documents and Web browsers. Therefore, full conformance of a viewer to all specifications in WebCGM 1.0 can only be measured for a WebCGM browser plugin (or equivalent architecture)."
Change "CGM:1992 AM1, Rules for Profiles" to "CGM:1999, Clause 9, Profiles and conformance"
Change "Editions" to "Editions and Releases" in the title. Add a new final paragraph: "This release is Second Release of WebCGM 1.0. WebCGM 1.0 Second Release is a maintenance and defect correcting release of the functional Edition 1.0."
Change reference to "CGM Amd.2, Rules for Profiles" to "CGM:1999 Annex I"
Change the first occurrence of 1992 to 1999. Insert a "space" in "Part1". Delete the line "Part 2: Character Encoding". Delete the paragraph dealing with republication of the CGM standard. Delete the references to Amd 1 and Amd2 (and all of their Parts).
Add "RFC-2396, Uniform Resource Identifiers (URI): Generic Syntax, URL: http:www.ietf.org/rfc/rfc2396.txt"
Add "www." to the Web address of CGM Open.
Change 1992 to 1999
In the 5th paragraph delete the "|" at the end of the paragraph
Add new paragraph at the end of the section: Note. There is technical discussion of limiting WebCGM instances, in a future functional Edition, to one picture per metafile, symbol library metafiles excepted. Therefore applications should give careful consideration before adopting a multi-picture metafile design."
Change SGML to XML and remove words about tabular form
5th bullet: remove the ":".
Change reference to Figure 1 to figure 2
There are three errors: change "gprm" to "cgmprim" in the 2nd to last sentence; in the figure, change "viewconpxt" to "viewcontxt"; and, the figure lacks a label and title (see next item), and in any case, it is not "Figure 1" ("Figure 1" is already used in section 2.1).
Add 'rep' above the layer box to match XML content model in section 3.
Change 1992 to 1999 in first paragraph, second paragraph under "Smooth curves bullet", and under "Raster capabilities bullet", in the third paragraph, and in the fourth paragraph main body and under second bullet
Change 1992 to 1999 in second paragraph
Change 1992 to 1999 in first paragraph. Change "in registration" to "registered". Change 1992 to 1999 in second paragraph. Change [grex24] to ATA GREXCHANGE.
Change 1992 to 1999 in second bullet of first paragraph. Second paragraph: Remove "Symbol" from default character sets. Change [grexch] to ATA GREXCHANGE.
In clause 3, the figure numbers are 3.1, 3.2, 3.3, and 3.4. In clause 2, the first figure is labeled "Figure 1". The style in clause 2 matches the ISO style (and there doesn't appear to be an over-riding W3C style). Therefore it should be used throughout -the figure in 2.3.5 should be "Figure 2", and the four figures in clause 3 should be "Figure 3",..., "Figure 6".
Imprecise language has been used in many places, for conformance requirements. Specifically, "should" has been used where "shall" is required. These should all be changed:
3.1.2.2, 2nd pgph: "Viewers should...". It should be "Viewers shall..."
3.1.2.2: 7 total occurrences, all should be changed.
3.1.2.4, 1st pgph: 1 occurrence, change it.
3.1.3.1, 1st pgph: 1 occurrence, change it.
3.2.1.1: 6 occurrences, all should be changed.
3.2.2.3: 1st paragraph, change single occurrence.
3.2.2.3: 4th pgph, change "should normally" to "shall".
3.4: 4 occurrences, change all of 'em (note related comment below about sentence containing 1st).
Divide into four subsections. 3.1.1.1 should be "Fragment Definition" and include the existing paragraphs of prose. 3.1.1.2 should contain the EBNF and be "Fragment EBNF". 3.1.1.3 should be right after the EBNF and should be "Fragment Character Repertoire"; 3.1.1.4 should be "Non-ASCII Characters in URIs".
In the EBNF, change each occurrence of (namechar)+ to (Char)+. Delete the production for namechar and the rest of the lines in the grammar after it.
In the new 3.1.1.3 put:
"The productions 'picid', 'target', 'objid', and 'objname' in the fragment grammar are represented by parameters in WebCGM of type non-graphical text (CGM type SF). Their character repertoire shall be restricted as follows.
· objid - corresponds to WebCGM APS 'id' parameter; further restrictions: as the name construct defined in section 2.3 of REC-xml-20001006.
· objname - corresponds to WebCGM APS attribute of type 'name'; no further restrictions.
· picid - corresponds to the 'id' parameter of WebCGM BEGIN PICTURE elements; further restrictions: as objid.
· target - further restrictions: as objid, plus further restricted per "Frame Target Name" of HTML 4.0 (e.g., must begin with a-zA-Z).
Note that these character repertoires allow one or more of the characters ".", ",", "(", and ")". These are significant characters in the syntax of the WebCGM fragment specification. If any of these four significant characters is to appear in a valid id/name string within a fragment instance, then the fragment shall use the unabbreviated long form, which is the first of the five optional forms in the 'webcgmfragment' production of 3.1.1.2."
In the new 3.1.1.4 put:
The URI character repertoires, as defined in the appropriate W3C specifications, basically comprise the alphabetic and numeric characters of ASCII, plus a few punctuations. The character repertoires defined in 3.1.1.3 are potentially much richer. The method for handling this disparity is as defined in section 4.2.2 of XML 1.0, first edition, REC-xml-20001006. That specification is adapted for WebCGM processors as follows.
A WebCGM processor shall handle a non-ASCII character in a URI by representing the character in UTF-8 as one or more bytes, and then escaping these bytes with the URI escaping mechanism (i.e., by converting each byte to %HH, where HH is the hexadecimal notation of the byte value).
In the EBNF production for "behavior", each of the reserved keyword options (_blank through _top, but *not* target), should be quoted, e.g., "_blank".
The production, picseqno ::= [0-9]+ should be (digits)+ instead. Include the definition of digits.
Replace all of 3.1.2.1 with the following:
pictid
- The pictid
keyword indicates that selection of the picture to be viewed is by the id of the picture, which is the id parameter in the BEGIN PICTURE element. The picture id value is the first, required parameter associated with the keyword (see EBNF), and there may be a second associated parameter, which is an optional picture behavior specification. If the metafile does not contain a picture with the specified picture id value, the first picture in the metafile is chosen.
pictseqno
- The pictseqno
keyword indicates that selection of the picture to be viewed is by the sequence number of the picture in the metafile. "1" is the first picture, "2" is the second picture, etc. An all-digit string representing the picture sequence number value is the first, required parameter associated with the keyword (see EBNF), and there may be a second associated parameter, whose value is an optional picture behavior specification. The picture sequence number shall be an integer greater than zero. If the specified picture sequence value exceeds the number of pictures in the metafile, the last picture is displayed.
Replace all of 3.1.2.2 with the following:
Picture behaviors describe to the viewer how to display the picture, which is the target of a hyperlink. Picture behaviors are based on the syntax and semantics of "Frame Target Names" defined in the HTML 4.0 Specification.
The reserved names listed below describe the various picture behaviors. All other Picture Behavior values shall be valid Frame Target Names as described in the HTML 4.0 specification. Frame Target Names must begin with an alphabetic character (a-zA-Z).
In what follows, the following conventions apply:
· "viewer" refers collectively to a browser and/or a CGM viewer (e.g., plugin). The logical result is described, not the method of achieving the result (which in general will require action by browser or viewer or both.)
· "content" refers to either source or destination or a link, and is either a picture (CGM) or a document (HTML), depending upon the formulation of the particular link.
The following Picture Behavior values, except for _replace, are defined per HTML 4.0:
_blank
The viewer should load the designated picture or document in a new, unnamed window.
_self
The viewer should load the picture or document in the same frame as the one containing the CGM picture that refers to this target.
_parent
The viewer should load the picture or document into the immediate FRAMESET parent of the current frame in which the current picture is displayed. This value is equivalent to "_self" if the current frame has no parent.
_replace
The viewer should replace the current CGM picture by the designated CGM picture in the same rectangular area in the same frame as the picture which refers to this target. Applicable only to CGM-to-CGM links (i.e., this is not defined in HTML 4.0), this is the default behavior for such links.
_top
The viewer should load the picture or document into the full, original window (thus canceling all other frames). This value is equivalent to _self if the current frame has no parent.
If the picture behavior value is any valid name string other than the above reserved names, (it begins with an alphabetic character (a-zA-Z)), remove the existing content (picture or document) from the frame whose name matches the string and display the specified content in the specified frame. If no frame exists by the specified name, the viewer shall load the designated content (picture or document) in a new window with the specified name.
In the case that a link is HTML to CGM, the picture behavior should not be included in any fragment specification. Rather, the effect should be achieved with HTML TARGET attribute on the link specification in the HTML, per the specifications in the HTML 4.0 Recommendation. CGM viewers shall ignore picture behavior specifications in URI fragments which are part of links from non-CGM content.
The following table summarizes the rules for other link types, CGM-to-HTML and CGM-to-CGM:
<tbody>Picture behaviors and different source-to-destination types. |
||
|
CGM-to-HTML |
CGM-to-CGM |
_blank |
The viewer shall load the designated document in a new, unnamed window. |
The viewer shall load the designated picture in a new, unnamed window. |
_self |
The viewer shall load the document in the same frame as the one containing the CGM picture that refers to this target. This is the default for CGM-to-HTML links. |
The viewer shall load the picture in the same frame as the one containing the CGM picture that refers to this target. |
_parent |
The viewer shall load the document into the immediate FRAMESET parent of the current frame in which the current picture is displayed. This value is equivalent to "_self" if the current frame has no parent. |
The viewer shall load the picture into the immediate FRAMESET parent of the current frame in which the current picture is displayed. This value is equivalent to "_self" if the current frame has no parent. |
_replace |
Not applicable. Default to_self. |
The viewer shall replace the current picture by the designated picture in the same rectangular area in the same frame or window as the picture which refers to this target. This is the default behavior for CGM-to-CGM links. |
_top |
The viewer shall load the document into the full, original window (thus canceling all other frames). This value is equivalent to _self if the current frame has no parent. |
The viewer shall load the picture into the full, original window (thus canceling all other frames). This value is equivalent to _self if the current frame has no parent. |
Target |
The viewer shall load the document into the frame identified by "target". If no matching frame can be found, the viewer shall load the designated content document in a new window with the specified name. |
The viewer shall load the picture into the frame identified by "target". If no matching frame can be found, the viewer shall load the designated content document in a new window with the specified name.</tbody> |
Figures 3 and 4 below give examples of _self and _replace.
Figure 3.2, the picture in "Example of _replace", is identical to that in Figure 3.1, "Example of _self". Change the LinkURI in Figure 3.2 to: "B.cgm#pictseqno(1,_replace)".
In the 1st line of the example, change "$$new_window" to "_blank".
Replace the paragraph with:
When used as the value of the URI attribute in a object in a CGM file, this URI retrieves engine.cgm cgm file from the cgmopen.org web site and displays the picture named "top" in a new window, highlighting the object with an id of "cyl-hd-t". The existing display remains. The entire picture is displayed, regardless of the existence of a view context for the object "cyl-hd-t". Note that inclusion of the picture behavior, "_blank", in the URI fragment is not the preferred formulation for this link/behavior combination (see 3.2.2.3). The preferred form would place the string "_blank" into the 3rd parameter of the linkURI APS attribute, and the first parameter would be:
http://cgmopen.org/webcgm/engine.cgm#pictid(top).id(cyl-hd-t,highlight)
The first sentence of the description should be changed as follows: "When used as the URL in an OBJECT element in HTML, this example displays the CGM inside a rectangle defined by the width and height parameters of the OBJECT tag, displaying the whole of "top" with the pump highlighted.
Replace the paragraph with:
When used as the value of the URI attribute in a object in a CGM file, this URI retrieves the engine.cgm CGM file from the cgmopen.org web site and displays the fifth picture in the metafile in the frame named "topframe", highlighting the object with an id of "dist-i". The view context (if present) attribute for the object "dist-i" is used to determine the rectangular portion of the picture to display in the frame. Note, as in example 1, that inclusion of the picture behavior, "topframe", in the URI fragment is not the preferred formulation for this link/behavior combination (see 3.2.2.3). The preferred form would place the string "topframe" into the 3rd parameter of the linkURI APS attribute, and the first parameter would be:
http://cgmopen.org/webcgm/engine.cgm#pictseqno(5).id(dist-i,view_context)
Replace the paragraph with:
When used as the value of the URI attribute in a object in a CGM file, this URI retrieves the engine.cgm CGM file from the cgmopen.org web site and displays the second picture in the metafile in the frame named "topframe" Note, as in example 1 and 3, that inclusion of the picture behavior, "topframe", in the URI fragment is not the preferred formulation for this link/behavior combination (see 3.2.2.3). The preferred form would place the string "topframe" into the 3rd parameter of the linkURI APS attribute, and the first parameter would be:
http://cgmopen.org/webcgm/engine.cgm#pictseqno(2)
Add a new paragraph at the end: "Caveat: the CGM standard allows the definition of an APS to be continued in pieces which are disjoint in the file. If an APS occurs which has the same value of the 'id' parameter as an earlier APS occurrence, then that is construed as a continuation of the definition of that object. This has not been prohibited in the WebCGM 1.0 profile. However, it is considered to be problematic, separating the logical structure from the file structure, and allowing non-hierarchical constructs in the latter. Prohibiting continued APS in the next functional Edition of WebCGM is under active discussion, and is considered likely.
There is an ambiguity between the description of 3.1.2.4, Object Behaviors, and the description in the last paragraph ("If a APS is the target of a link...") of 3.2.1.1.
Specifically, the paragraph,
"If the object contains neither a view context nor a region attribute, the viewer should move the object into view and indicate visually that the graphical primitives of the grobject are the target of the link. The manner in which the viewer creates the new display is viewer dependent."
could be interpreted as suggesting a zoomed view of the object. It has been resolved during the Granada interoperability demo that this is not the case.
Therefore, add to the 3rd bullet at the end of 3.2.1.1, and to the descriptions of 'highlight' and 'highlight_all' in 3.1.2.4, the sentence: "The resulting view is a full-picture view, not a zoomed view."
Change "a" to "an" in "If a APS is the target of a link...".
The last word of item #7 should be "navigate", no "negotiate".
2nd pgph, change "identifiing" to "identifying".
Some of the sections 3.2.2.1 through 3.2.2.8 are unclear about attribute multiplicity.
3.2.2.1, add to the end of the first paragraph: "At most one 'region' attribute may be present within a single APS."
3.2.2.4, add to the end of the first paragraph: "At most one 'LayerName' attribute may be present within a single 'layer' APS."
3.2.2.5, add to the end of the first paragraph: "At most one 'LayerDescription' attribute may be present within a single 'layer' APS." (This actually is stated in 3.2.1.2).
3.2.2.7, add to the end of the first paragraph: "Multiple 'name' attributes may be contained within a single APS."
2nd paragraph: "the third string is (possibly null) is the a Behavior parameter" -- delete the first "is" and the "a".
Replace the last 4 paragraphs as follows:
The destination of a link is specified by a Uniform Resource Identifier, or URI. Any valid URL under the specifications of RFC1738 and RFC1808 is a valid value of this parameter. This specification does not constrain the syntax or semantics of a URI in a linkURI that identifies a resource that is not a CGM file (for example, an HTML or XML document).
The Behavior string defines picture behavior associated with the link. The values and meanings are as defined in 3.1.2.2. In cases that the destination is not CGM media type, the 3rd parameter, Behavior, shall be used if picture behavior is to be specified for the link (there is no other option). The Behavior string may also be used for links to CGM media types, and is the preferred method.
In the case that the URI points to CGM media type, the picture behavior may be encoded within the optional fragment identifier in conjunction with the URI structure, per section 3.1.1, "Addressing Pictures and Objects". This form is deprecated, and may be removed in a future edition of this profile. For specifying picture behavior, particular WebCGM linkURI instances shall use either the Behavior string (preferred), or the picture behavior specification embedded in the fragment, but not both.
The content model in 3.3 shows that ScreenTip is not allowed within APS of type 'layer'. However, 3.2.2.6 states "This APS Attribute may occur within any valid APS of WebCGM". The latter is incorrect. Change "any valid APS of WebCGM" to "any graphical object of WebCGM, specifically, within any APS of type 'grobject', 'para', and 'subpara'."
3rd pgph: insert a space in "withobjects".
Attribute Multiplicity & XML Content Model. The use of XML to express the content model in section 3.3 creates some unintended side effects. Specifically, an XML element can contain at most one instance of a particular XML attribute. On the other hand, WebCGM specifically allows multiple occurrences of some APS attributes types within some APS types, specifically 'linkURI' and 'name'.
The best solution would be to switch over to BNF, but this should be deferred to the next functional Edition. For this maintenance release, add a caveat to the end of section 3.3:
"Note: the use of XML to express the content model of WebCGM implies that a particular attribute can have at most one instance within a particular APS instance. This is not the case, and the normative rules are as specified in 3.2.2.1 through 3.2.2.8."
In the 9th line of the comments at the beginning of the content model, change "gprim" to "cgmprim", to match the last line of the content model.
Change three occurrences of 1992 to 1999
Align references to CGM:1999
Remove reference to character encoding
Change 1992 to 1999
There are several mistakes, where the WebCGM rules conflict with the rules in XML, with which they are supposed to align. (These corrections are all forward compatible, in that no existing valid WebCGM content will be invalidated.)
Change "ISO Latin 1, LHS" to "ISO Latin 1 (LHS & RHS) and Symbol". (Not an XML-alignment issue, just a mistake).
Delete the last sentence, after "Other:"
Add to "Other:" the new sentence: "See 3.1.1 for additional restrictions to the character repertoire for those WebCGM non-graphical strings which may be part of the WebCGM URI fragment.
Correct the spelling of "APPLICACION".
Change to "Same as Model Profile"
Under 'other' clause, "Parameter strings are considered case insensitive."
Add to 'other' clause, "Font names are considered case insensitive."
For "Maximum limit for the number of character sets in the character set list", change "5" to "6" (this change was overlooked when UTF-16 was added to the permissible sets during WebCGM development).
Add to 'other' clause, "Parameter values are considered to be case insensitive."
Remove reference to character encoding
Change 1992 to 1999
Change Object to Objects
Change reference to 8632:1999
Replace "Record 7 of the graphics declaration file" (which is from the ATA profile) with "Specified in ISO/IEC 1999 Annex I for the core 13 fonts".
Change reference to 8632:1999
Replace "defect correction" statement with "In CGM:1999, the following information was added to the MP."
In the section about CLIPPING MODEs, "EDGE" should be added to the list "LINE/MARKER/TEXT". A nicer way to write the latter might be something like "<LINE | MARKER | TEXT | EDGE>".
T.16.16 indicates that NAME PRECISION is 'prohibited'. T.13.6, the binary encoding specification for NAME PRECISION, incorrectly indicates 'permitted'. T.13.6 is wrong, and T.16.16 is correct. Change the first line - the permissibility of the element - in T.13.6 so that it matches T.16.16.
Change 1992 to 1999