idnits 2.17.1 draft-douglass-link-extension-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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (May 9, 2011) is 4707 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC3688' is defined on line 462, but no explicit reference was found in the text ** Obsolete normative reference: RFC 5988 (Obsoleted by RFC 8288) Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group M. Douglass 3 Internet-Draft RPI 4 Intended status: Standards Track May 9, 2011 5 Expires: November 10, 2011 7 Link Extension to Icalendar 8 draft-douglass-link-extension-01 10 Abstract 12 This specification introduces new iCalendar property LINK to provide 13 ancillary information for iCalendar components and changes RELATED-TO 14 to define temporal relationships. 16 Status of this Memo 18 This Internet-Draft is submitted in full conformance with the 19 provisions of BCP 78 and BCP 79. 21 Internet-Drafts are working documents of the Internet Engineering 22 Task Force (IETF). Note that other groups may also distribute 23 working documents as Internet-Drafts. The list of current Internet- 24 Drafts is at http://datatracker.ietf.org/drafts/current/. 26 Internet-Drafts are draft documents valid for a maximum of six months 27 and may be updated, replaced, or obsoleted by other documents at any 28 time. It is inappropriate to use Internet-Drafts as reference 29 material or to cite them other than as "work in progress." 31 This Internet-Draft will expire on November 10, 2011. 33 Copyright Notice 35 Copyright (c) 2011 IETF Trust and the persons identified as the 36 document authors. All rights reserved. 38 This document is subject to BCP 78 and the IETF Trust's Legal 39 Provisions Relating to IETF Documents 40 (http://trustee.ietf.org/license-info) in effect on the date of 41 publication of this document. Please review these documents 42 carefully, as they describe your rights and restrictions with respect 43 to this document. Code Components extracted from this document must 44 include Simplified BSD License text as described in Section 4.e of 45 the Trust Legal Provisions and are provided without warranty as 46 described in the Simplified BSD License. 48 Table of Contents 50 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 51 1.1. Conventions Used in This Document . . . . . . . . . . . . 3 52 2. Typed References . . . . . . . . . . . . . . . . . . . . . . . 3 53 3. Reference Types . . . . . . . . . . . . . . . . . . . . . . . 4 54 4. Link Relation Types . . . . . . . . . . . . . . . . . . . . . 4 55 5. Redefined Relation Type Value . . . . . . . . . . . . . . . . 4 56 6. New Property Parameters . . . . . . . . . . . . . . . . . . . 6 57 6.1. Rel . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 58 6.2. Gap . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 59 6.3. Title . . . . . . . . . . . . . . . . . . . . . . . . . . 7 60 7. New Parameter Values . . . . . . . . . . . . . . . . . . . . . 7 61 8. New Properties . . . . . . . . . . . . . . . . . . . . . . . . 7 62 8.1. Link . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 63 9. Redefined RELATED-TO Property . . . . . . . . . . . . . . . . 9 64 9.1. RELATED-TO . . . . . . . . . . . . . . . . . . . . . . . . 9 65 10. Security Considerations . . . . . . . . . . . . . . . . . . . 11 66 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 67 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11 68 13. Normative References . . . . . . . . . . . . . . . . . . . . . 11 69 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 12 71 1. Introduction 73 The currently existing iCalendar standard [RFC5545] lacks a general 74 purpose method for referencing additional, external information 75 relating to calendar components. 77 This document proposes a method for referencing typed external 78 information that can provide additional information about an 79 iCalendar component. This new LINK property is closely aligned to 80 the LINK header defined in [RFC5988] 82 In addition the RELTYPE parameter is extended to take new values 83 defining temporal relationships, a GAP parameter is defined to 84 provide lead and lag values and RELATED-TO is extended to allow URI 85 values. These changes allows the RELATED-TO property to define a 86 richer set of relationships useful for project management. 88 1.1. Conventions Used in This Document 90 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 91 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 92 "OPTIONAL" in this document are to be interpreted as described in 93 [RFC2119]. 95 2. Typed References 97 The LINK property defines a typed reference or relation to external 98 meta-data or related resources. By providing type and format 99 information as parameters, clients and servers are able to discover 100 interesting references and make use of them, perhaps for indexing or 101 the presentation of interesting links for the user. 103 It is often necessary to relate calendar components. The current 104 RELATED-TO property only allows for a UID which is inadequate for 105 many purposes. Allowing other types may help but might raise a 106 number of backward compatibility issues. The link property can link 107 components in different collections or even on different servers. 109 When publishing events it is useful to be able to refer back to the 110 source of that information. The actual event may have been consumed 111 from a feed or an ics file on a web site. A LINK property can 112 provide a reference to the originator of the event. 114 Project management tools often need to be able to specify the 115 relationships between the various events and tasks which make up a 116 project. This specification defines relation types for those 117 purposes. 119 3. Reference Types 121 The actual reference value can take three forms specified by the type 122 parameter 124 URI: The default type. This is a URI referring to the target. 126 UID: This allows for linking within a single collection and the 127 value is assumed to be another component within that collection. 129 REFERENCE: An xpointer. In an XML environment it may be necessary 130 to refer to an external XML artifact. The XPointer is defined in 131 [W3C.WD-xptr-xpointer-20021219] and allows addressing portions of 132 XML documents. 134 4. Link Relation Types 136 [RFC5988] defines two form of relation types, registered and 137 extension. Registered relation types are added to a registry defined 138 by [RFC5988] while extension relation types are specified as unique 139 unregistered URIs, (at least unregistered in the [RFC5988] registry). 141 The relation types defined here will be registered with IANA in 142 accordance with the specifications in [RFC5988]. 144 5. Redefined Relation Type Value 146 Relationship parameter type values are defined in section 3.2.15. of 147 [RFC5545]. This specification redefines that type to include the new 148 values FINISHTOSTART, FINISHTOFINISH, STARTTOFINISH and STARTTOSTART. 150 Format Definition: 152 This property parameter is defined by the following notation: 154 reltypeparam = "RELTYPE" "=" 155 ("PARENT" ; Parent relationship - Default 156 / "CHILD" ; Child relationship 157 / "SIBLING" ; Sibling relationship 158 / "FINISHTOSTART" 159 / "FINISHTOFINISH" 160 / "STARTTOFINISH" 161 / "STARTTOSTART" 162 / iana-token ; Some other IANA-registered 163 ; iCalendar relationship type 164 / x-name) ; A non-standard, experimental 165 ; relationship type 167 Description: This parameter can be specified on a property that 168 references another related calendar. The parameter may specify 169 the hierarchical relationship type of the calendar component 170 referenced by the property when the value is PARENT, CHILD or 171 SIBLING. It defines the temporal relationship when the value is 172 one of FINISHTOSTART, FINISHTOFINISH, STARTTOFINISH or 173 STARTTOSTART. If this parameter is not specified on an allowable 174 property, the default relationship type is PARENT. Applications 175 MUST treat x-name and iana-token values they don't recognize the 176 same way as they would the PARENT value. 178 RELTYPE=PARENT: Identifies the referenced calendar component is a 179 superior of calendar component 181 RELTYPE=CHILD: Indicates that the referenced calendar component is a 182 subordinate of the calendar component. 184 RELTYPE=SIBLING: Indicates that the referenced calendar component is 185 a peer of the calendar component. 187 RELTYPE=FINISHTOSTART: As soon as the Predecessor Interval finishes, 188 the Successor Interval starts. For example, when sanding is 189 complete, painting begins. 191 RELTYPE=FINISHTOFINISH: The Successor Interval continues as long as 192 the Predecessor Interval. For example, the concession stand stops 193 serving 20 minutes after the end of the game. 195 RELTYPE=STARTTOFINISH: The start of the Predecessor controls the 196 finish of the Successor. For example, the start of Attendee 197 Check-in controls the end of the interval "Set up registration 198 booth." 200 RELTYPE=STARTTOSTART: The Predecessor Interval triggers the start of 201 the second task. The Gap indicates the lag time. For example, 20 202 minutes after the caterer begins work, the dining lines are open. 204 6. New Property Parameters 206 6.1. Rel 208 Parameter name: REL 210 Purpose: To specify the relationship of data referenced by a LINK 211 property. 213 Format Definition: 215 This parameter is defined by the following notation: 217 relparam = "REL" "=" 218 ("SOURCE" ; Link to source of this component 219 / DQUOTE uri DQUOTE 220 / x-name ; Experimental reference type 221 / iana-token) ; Other IANA registered type 223 Description: This parameter MUST be specified on all LINK 224 properties, and defines the type of reference. This allows 225 programs consuming this data to automatically scan for references 226 they support. In addition to the values defined here any value 227 defined in [RFC5988] may be used. There is no default relation 228 type. 230 REL=SOURCE: identifies the source of the event information. 232 Registration: These relation types are registered in [RFC5988] 234 6.2. Gap 236 Parameter name: GAP 238 Purpose: To specify the length of the gap, positive or negative 239 between two temporally related components. 241 Format Definition: 243 This parameter is defined by the following notation: 245 gapparam = "GAP" "=" dur-value 247 Description: This parameter MAY be specified on the RELATED-TO 248 property, and defines the duration of time between the predecessor 249 and successor in an interval. 251 6.3. Title 253 Parameter name: TITLE 255 Purpose: To provide a human readable title. 257 Format Definition: 259 This parameter is defined by the following notation: 261 titleparam = "TITLE" "=" text 263 Description: This parameter MAY be specified on all LINK properties, 264 and provides a human readable label, perhaps for icons or links.. 266 7. New Parameter Values 268 This specification defines a new value to be used with the VALUE 269 property parameter: 271 UID VALUE=UID indicates that the associated value is the UID for a 272 component. 274 REFERENCE VALUE=REFERENCE indicates that the associated value is an 275 xpointer referencing an associated XML artifact. 277 8. New Properties 279 8.1. Link 281 Property name: LINK 283 Purpose: This property provides a reference to external information 284 about a component. 286 Value type: URI, TEXT or REFERENCE 288 Property Parameters: Non-standard, reference type or format type 289 parameters can be specified on this property. 291 Conformance: This property MAY be specified in any iCalendar 292 component. 294 Description: When used in a component the value of this property 295 points to additional information related to the component. For 296 example, it may reference the originating web server. 298 Format Definition: 300 This property is defined by the following notation: 302 link = "LINK" linkparam ":" ( ":" uri ) / 303 ( 304 ";" "VALUE" "=" "REFERENCE" 305 ":" text 306 ) 307 CRLF 309 linkparam = *( 311 ; the following is MANDATORY 312 ; and MAY occur more than once 314 (";" relparam) / 316 ; the following are MANDATORY 317 ; but MUST NOT occur more than once 319 (";" gapparam) / 320 (";" fmttypeparam) / 321 (";" titleparam) / 323 ; the following is OPTIONAL 324 ; and MAY occur more than once 326 (";" xparam) 328 ) 330 Example: 332 The following is an example of this property. It points to a 333 server acting as the source for the event. 335 LINK;REL=SOURCE;TITLE=The Egg: 336 http://example.com/events 338 9. Redefined RELATED-TO Property 340 9.1. RELATED-TO 342 Property name: RELATED-TO 344 Purpose: This property is used to represent a relationship or 345 reference between one calendar component and another. The 346 definition here extends the definition in Section 3.8.4.5. of 347 [RFC5545] by allowing URI values adn a GAP parameter. 349 Value type: URI or TEXT 351 Property Parameters: Non-standard, reference type, gap, value or 352 format type parameters can be specified on this property. 354 Conformance: This property MAY be specified in any iCalendar 355 component. 357 Description: By default or when VALUE=UID is specified, the property 358 value consists of the persistent, globally unique identifier of 359 another calendar component. This value would be represented in a 360 calendar component by the "UID" property. 362 By default, the property value points to another calendar 363 component that has a PARENT relationship to the referencing 364 object. The "RELTYPE" property parameter is used to either 365 explicitly state the default PARENT relationship type to the 366 referenced calendar component or to override the default PARENT 367 relationship type and specify either a CHILD or SIBLING 368 relationship or a temporal relationship. 370 The PARENT relationship indicates that the calendar component is a 371 subordinate of the referenced calendar component. The CHILD 372 relationship indicates that the calendar component is a superior 373 of the referenced calendar component. The SIBLING relationship 374 indicates that the calendar component is a peer of the referenced 375 calendar component. 377 The FINISHTOSTART, FINISHTOFINISH, STARTTOFINISH or STARTTOSTART 378 relationships define temporal relationships as specified in the 379 reltype parameter definition. 381 Changes to a calendar component referenced by this property can 382 have an implicit impact on the related calendar component. For 383 example, if a group event changes its start or end date or time, 384 then the related, dependent events will need to have their start 385 and end dates changed in a corresponding way. Similarly, if a 386 PARENT calendar component is cancelled or deleted, then there is 387 an implied impact to the related CHILD calendar components. This 388 property is intended only to provide information on the 389 relationship of calendar components. It is up to the target 390 calendar system to maintain any property implications of this 391 relationship. 393 Format Definition: 395 This property is defined by the following notation: 397 related = "RELATED-TO" relparam ( ":" text ) / 398 ( 399 ";" "VALUE" "=" "UID" 400 ":" uid 401 ) 402 ( 403 ";" "VALUE" "=" "URI" 404 ":" uri 405 ) 406 CRLF 408 relparam = *( 409 ; 410 ; The following are OPTIONAL, 411 ; but MUST NOT occur more than once. 412 ; 413 (";" reltypeparam) / 414 (";" gapparam) / 415 ; 416 ; The following is OPTIONAL, 417 ; and MAY occur more than once. 418 ; 419 (";" other-param) 420 ; 421 ) 423 Example: 425 The following are examples of this property. 427 RELATED-TO:jsmith.part7.19960817T083000.xyzMail@example.com 429 RELATED-TO:19960401-080045-4000F192713-0052@example.com 431 RELATED-TO;VALUE=URI;RELTYPE=STARTTOFINISH: 432 http://example.com/caldav/user/jb/cal/ 433 19960401-080045-4000F192713.ics 435 10. Security Considerations 437 Applications using the LINK property need to be aware of the risks 438 entailed in using the URIs provided as values. See [RFC3986] for a 439 discussion of the security considerations relating to URIs. 441 11. IANA Considerations 443 12. Acknowledgements 445 The author would like to thank Chuck Norris of eventful.com for his 446 work which led to the development of this RFC. 448 The author would also like to thank the members of the Calendaring 449 and Scheduling Consortium public events technical committee and the 450 following individuals for contributing their ideas and support: 452 Cyrus Daboo, Dan Mendell 454 The authors would also like to thank the Calendaring and Scheduling 455 Consortium for advice with this specification. 457 13. Normative References 459 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 460 Requirement Levels", BCP 14, RFC 2119, March 1997. 462 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 463 January 2004. 465 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform 466 Resource Identifier (URI): Generic Syntax", STD 66, 467 RFC 3986, January 2005. 469 [RFC5545] Desruisseaux, B., "Internet Calendaring and Scheduling 470 Core Object Specification (iCalendar)", RFC 5545, 471 September 2009. 473 [RFC5988] Nottingham, M., "Web Linking", RFC 5988, October 2010. 475 [W3C.REC-xml-20060816] 476 Yergeau, F., Paoli, J., Sperberg-McQueen, C., Maler, E., 477 and T. Bray, "Extensible Markup Language (XML) 1.0 (Fourth 478 Edition)", World Wide Web Consortium FirstEdition REC-xml- 479 20060816, August 2006, 480 . 482 [W3C.WD-xptr-xpointer-20021219] 483 DeRose, S., Daniel, R., and E. Maler, "XPointer xpointer() 484 Scheme", World Wide Web Consortium WD WD-xptr-xpointer- 485 20021219, December 2002, 486 . 488 Author's Address 490 Michael Douglass 491 Rensselaer Polytechnic Institute 492 110 8th Street 493 Troy, NY 12180 494 USA 496 Email: douglm@rpi.edu 497 URI: http://www.rpi.edu/