idnits 2.17.1 draft-brownlee-svg-rfc-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 207 has weird spacing: '...he list below...' == Line 208 has weird spacing: '...eft,and their...' == Line 211 has weird spacing: '...bset of the S...' -- The document date (February 11, 2014) is 3720 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Missing Reference: 'SVG' is mentioned on line 76, but not defined Summary: 1 error (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group N. Brownlee (Ed.) 3 Internet-Draft The University of Auckland 4 Intended status: Informational IAB 5 Expires: August 15, 2014 6 February 11, 2014 8 SVG Drawings for RFCs: SVG 1.2 RFC 9 draft-brownlee-svg-rfc-01 11 Abstract 13 This document specifies SVG 1.2 RFC - an SVG profile for use in 14 diagrams that may appear in RFCs - and considers some of the issues 15 concerning the creation and use of such diagrams. 17 Status of This Memo 19 This Internet-Draft is submitted in full conformance with the 20 provisions of BCP 78 and BCP 79. 22 Internet-Drafts are working documents of the Internet Engineering 23 Task Force (IETF). Note that other groups may also distribute 24 working documents as Internet-Drafts. The list of current Internet- 25 Drafts is at http://datatracker.ietf.org/drafts/current/. 27 Internet-Drafts are draft documents valid for a maximum of six months 28 and may be updated, replaced, or obsoleted by other documents at any 29 time. It is inappropriate to use Internet-Drafts as reference 30 material or to cite them other than as "work in progress." 32 This Internet-Draft will expire on August 15, 2014. 34 Copyright Notice 36 Copyright (c) 2014 IETF Trust and the persons identified as the 37 document authors. All rights reserved. 39 This document is subject to BCP 78 and the IETF Trust's Legal 40 Provisions Relating to IETF Documents 41 (http://trustee.ietf.org/license-info) in effect on the date of 42 publication of this document. Please review these documents 43 carefully, as they describe your rights and restrictions with respect 44 to this document. Code Components extracted from this document must 45 include Simplified BSD License text as described in Section 4.e of 46 the Trust Legal Provisions and are provided without warranty as 47 described in the Simplified BSD License. 49 Table of Contents 51 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 52 2. SVG 1.2 RFC: An SVG profile for RFCs . . . . . . . . . . . . 2 53 3. How to create SVG drawings . . . . . . . . . . . . . . . . . 4 54 4. Meta-language for diagrams common in RFCs . . . . . . . . . . 4 55 4.1. State Diagrams . . . . . . . . . . . . . . . . . . . . . 4 56 4.2. Sequence Digrgams . . . . . . . . . . . . . . . . . . . . 4 57 4.3. Packet Layout Diarrams . . . . . . . . . . . . . . . . . 4 58 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 59 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 4 60 7. Revision History [RFC Editor please delete] . . . . . . . . . 4 61 8. Appendix: Elements and attributes allowed in SVG 1.2 RFC . . 5 62 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 63 9.1. Normative References . . . . . . . . . . . . . . . . . . 7 64 9.2. Informative References . . . . . . . . . . . . . . . . . 7 66 1. Introduction 68 Over the last two years the RFC Editor has worked with the Internet 69 community to develop specifications for changes in the format of 70 RFCs. An outline of the resulting specifications was published as 71 [RFC6949] in May 2013. Since then a Design Team has been working 72 with the RFC Editor to flesh out those specifications. One aspect of 73 the changes is to allow line drawings in RFCs; [RFC6949] says 75 "Graphics may include ASCII art and a more complex form to be 76 defined, such as SVG line art [SVG]. Color and grayscale will not 77 be accepted. RFCs must correctly display in monochromatic black- 78 and-white to allow for monochrome displays, black-and- white 79 printing, and support for visual disabilities." 81 SVG (Scalable Vector Graphics) has been developed by W3C, the World 82 Wide Web Consortium; its current standard is SVG 1.1 Full 83 [W3C.REC-SVG11-20110816]. This document defines SVG 1.2 RFC, an SVG 84 profile (i.e. a subset of SVG) that is suitable for RFC line 85 drawings. 87 Note that in RFCs, the text provides normative descriptions of 88 protocols, systems, etc. Diagrams may be used to help explain 89 concepts more clearly, but they are informative, not normative. 91 2. SVG 1.2 RFC: An SVG profile for RFCs 93 As a starting point for SVG 1.2 RFC, the Design Team decided to use 94 SVG 1.2 Tiny [W3C.REC-SVGTiny12-20081222]. SVG 1.2 Tiny is an SVG 95 subset intended to be implemented on small, mobile devices such as 96 cellphones and smartphones. That should allow RFCs to be rendered 97 well on such devices, especially those that have small screens. 98 However, RFCs are self-contained documents that do not change once 99 they are published. The use of SVG drawings in RFCs is intended to 100 allow authors to create drawings that are simple to produce, and 101 easier to understand than our traditional 'ASCII Art' ones. In 102 short, we are also trying to improve access to the content in RFCs, 103 so SVG drawings need to be kept as simple as possible. 105 SVG can provide a complete User Interface, but within RFCs, all we 106 need are simple diagrams that do not change once the RFC is 107 published. Therefore, SVG RFC does not allow anything from the 108 following sections in SVG Tiny 1.2 [W3C.REC-SVGTiny12-20081222]: 110 12 Multimedia 111 13 Interactivity 112 15 Scripting 113 16 Animation 114 18 Metadata 115 19 Extensibility 117 Note that SVG Tiny 1.2 elements may have many properties or 118 attributes that are needed to support aspects of the above sections. 119 Those are not allowed in SVG 1.2 RFC. 121 Considering the other sections in SVG Tiny 1.2 122 [W3C.REC-SVGTiny12-20081222]: 124 9 Basic Shapes 125 10 Text 126 Everything in these sections is allowed in SVG 1.2 RFC. 128 11 Painting: Filling, Stroking, Colors and Paint Servers 129 Anything relating to 'color' is not allowed in SVG 1.2 RFC, 130 everything else is allowed. 132 14 Linking 133 SVG Tiny 1.2 allows internationalized IRIs in references. In 134 SVG 1.2 RFC such links must be ASCII only. That should not 135 cause problems, since one can just use the URI form of any IRI. 136 Authors should try to use links only to URIs that are long-trem 137 stable. 139 17 Fonts 140 SVG 1.2 RFC only allows 'serif', 'sans-serif' and 'monospace' 141 generic font families from the WebFonts facility, described in 142 CSS 2.1 [W3C.REC-CSS2-20110607], section 15, Fonts. In 143 particular, the SVG 'font' element is not allowed. 145 3. How to create SVG drawings 147 Many drawing packages can be used to create SVG drawings, for example 148 Open Source packages Inkscape and Dia. Be aware that such packages 149 may use SVG elements or attributes that are not allowed in SVG 1.2 150 RFC. For example, the 'marker' attribute is often used to place 151 symbols such as arrowheads on lines, but 'marker' is not allowed in 152 SVG 1.2 Tiny or SVG 1.2 RFC. In such cases one has to draw the 153 arrowhead in another, simpler way. 155 We will need to provide a tool to check that a diagram only uses 156 elements and attributes that are allowed in SVG 1.2 RFC. These are 157 listed in the Appendix below. [Need to take the lists from SVG Tiny 158 1.2 and prune them for SVG 1.2 RFC. TBD] 160 Diagrams produced with these packages may produce large SVG files 161 that are hard to read or understand directly. We should provide a 162 tool to strip out unnecccessary attributes; authors could run that 163 tool over their drawings, and see whether such stripping causes any 164 visible changes. 166 Another way to create SVG drawings is to write programs to draw them. 167 For example, using python and its svgwrite module is a pleasant 168 environment (for those who like writing code). 170 4. Meta-language for diagrams common in RFCs 172 4.1. State Diagrams 174 4.2. Sequence Digrgams 176 4.3. Packet Layout Diarrams 178 5. IANA Considerations 180 This document does not create a new registry nor does it register any 181 values in existing registries; no IANA action is required. 183 6. Acknowledgements 185 Thanks to the Design Team members for their helpful comments and 186 suggestions for SVG 1.2 RFC. 188 7. Revision History [RFC Editor please delete] 190 version -00, 29 Jan 14: 191 Initial version, using content from Nevil's 192 emails to the Design Team. 194 version -01, 11 Feb 14: 195 Allow links to 'long-term stable URIs' 196 Link URIs must be ASCII only 197 Need for tools to check SVG 1.2 RFC compatibilty and to strip 198 'unneccessary' attributes explicitly stated. 199 Statement that drawings can't be normative removed; Postscript- 200 only RFCs already exist. 202 8. Appendix: Elements and attributes allowed in SVG 1.2 RFC 204 Elements, properties and attributes selected for SVG 1.2 RFC from 205 [W3C.REC-SVGTiny12-20081222]. 207 In the list below, elements and properties are listed on the 208 left,and their allowed values are given in parentheses on the 209 right. 210 , the list of allowed colours, is a black-and-white 211 subset of the SVG colour names. 213 Elements: 215 rect (x, y, width, height, rx, ry) 216 circle (cx, cy, r) 217 ellipse (cx, cy, rx, ry) 218 line (x1, y1, x2, y2) 219 polyline (points) 220 polygon (points) 222 text (x, y, rotate) 223 tspan 224 textArea (x, y, width, height, auto) 225 tbreak 227 solidcolor 228 linearGradient (gradientUnits, x1, y1, x2, y2) 229 radialGradient (gradientUnits, cx, cy, r) 230 stop (offset) 232 Properties: (most allow inherit as a value) 234 stroke 235 stroke-width 236 stroke-linecap (butt, round, square) 237 stroke-linejoin (miter, round, bevel) 238 stroke-mitrelimit 239 stroke-dasharray 240 stroke-dashoffset 241 stroke-opacity 242 vector-effect (non-scaling-stroke, none) 243 viewport-fill (none, currentColor) 244 viewport-fill-opacity 246 display (inline, block, list-item, run-in, compact, 247 marker, table, inline-table, table-row-group, 248 table-header-group, table-footer-group, 249 table-row, table-column-group, 250 table-column, table-cell, table-caption, 251 none) 252 visibility (visible, hidden, collapse) 253 color-rendering (auto, optimizeSpeed, optimizeQuality) 254 shape-rendering (auto, optimizeSpeed, crispEdges, 255 geometricPrecision) 256 text-rendering (auto, optimizeSpeed, optimizeLegibility, 257 geometricPrecision) 258 buffered-rendering (auto, dynamic, static) 260 (black, grey, darkgrey, dimgrey, lightgrey, 261 gray, darkgray, dimgray, lightgray, white) 262 opacity 263 solid-opacity 264 solid-color (currentColor, ) 265 color (currentColor, ) 267 stop-color (currentColor, ) 268 stop-opacity 270 line-increment (auto) 271 text-align (start,end, center) 272 display-align (auto, before, center, after) 274 font-size 275 font-family (serif, sans-serif, monospace) 276 font-weight (normal, bold, bolder, lighter) 277 font-style (normal, italic, oblique) 278 font-variant (normal, small-caps) 279 direction (ltr, rtl) 280 unicode-bidi (normal, embed, bidi-override) 281 text-anchor (start, middle, end) 282 fill (none, black or grey) 283 fill-rule (nonzero, evenodd) 284 fill-opacity 286 9. References 288 9.1. Normative References 290 [RFC6949] Flanagan, H. and N. Brownlee, "RFC Series Format 291 Requirements and Future Development", RFC 6949, May 2013. 293 [W3C.REC-SVGTiny12-20081222] 294 Grasso, A., Ferraiolo, J., Neumann, A., Jackson, D., 295 Berjon, R., Schepers, D., Lilley, C., McCormack, C., 296 Hardy, V., Emmons, A., Hayman, S., Dahlstroem, E., 297 Shellshear, A., Ramani, N., Northway, C., Andersson, O., 298 and A. Quint, "Scalable Vector Graphics (SVG) Tiny 1.2 299 Specification", World Wide Web Consortium Recommendation 300 REC-SVGTiny12-20081222, December 2008, 301 . 303 [W3C.REC-CSS2-20110607] 304 Celik, T., Hickson, I., Bos, B., and H. Lie, "Cascading 305 Style Sheets Level 2 Revision 1 (CSS 2.1) Specification", 306 World Wide Web Consortium Recommendation REC- 307 CSS2-20110607, June 2011, 308 . 310 9.2. Informative References 312 [W3C.REC-SVG11-20110816] 313 Dahlstroem, E., Dengler, P., Grasso, A., Lilley, C., 314 McCormack, C., Schepers, D., Watt, J., Ferraiolo, J., 315 Fujisawa, J., and D. Jackson, "Scalable Vector Graphics 316 (SVG) 1.1 (Second Edition)", World Wide Web Consortium 317 Recommendation REC-SVG11-20110816, August 2011, 318 . 320 Authors' Addresses 322 Nevil Brownlee 323 The University of Auckland 325 EMail: n.brownlee@auckland.ac.nz 327 Internet Architecture Board 329 EMail: iab@iab.org