root/trunk/Specification/draft-ietf-llup-format-00.xml

Revision 25, 52.8 kB (checked in by m.david, 2 years ago)

this is the most recent state of the XML version of the specification. I will be changing the link on the main page, and at this stage, we should begin to use this as the primary focus for editing.

Line 
1 <?xml version="1.0" encoding="UTF-8"?>
2         <?rfc toc="yes" ?>
3         <?rfc tocdepth="4" ?>
4         <?rfc private="" ?>
5         <!-- <?rfc editing="yes" ?> -->
6 <rfc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
7     xsi:noNamespaceSchemaLocation="http://src.llup.org/vendor/IETF/RFC/2629/rfc2629.xsd"
8     category="exp" ipr="full3978" docName="draft-ietf-llup-format-00">
9     <front>
10         <title abbrev="LLUP Decentralized Messaging Protocol">LLUP Decentralized Messaging Protocol</title>
11         <author initials="R." fullname="Russ Miles" role="editor" surname="Miles">
12             <organization/>
13             <address>
14                 <email>russellmiles@mac.com</email>
15                 <uri>http://www.russmiles.com</uri>
16             </address>
17         </author>
18         <author initials="S." fullname="Sylvain Hellegouarch" role="editor" surname="Hellegouarch">
19             <organization/>
20             <address>
21                     <email>sh@defuze.org</email>
22                     <uri>http://www.defuze.org</uri>
23             </address>
24         </author>
25         <author initials="M.D." fullname="M. David Peterson" surname="Peterson">
26             <organization/>
27             <address>
28                 <email>m.david@xmlhacker.com</email>
29                 <uri>http://xmlhacker.com</uri>
30             </address>
31         </author>
32         <author initials="D." fullname="Don Demsak" surname="Demsak">
33             <organization/>
34             <address>
35                 <email>don@donxml.com</email>
36                 <uri>http://www.donxml.com</uri>
37             </address>
38         </author>
39         <author initials="K." fullname="Kurt Cagle" role="editor" surname="Cagle">
40             <organization/>
41             <address>
42                 <email>kurt.cagle@gmail.com</email>
43                 <uri>http://www.understandingxml.com</uri>
44             </address>
45         </author>
46         <author initials="U." fullname="Uche Ogbuji" surname="Ogbuji">
47             <organization/>
48             <address>
49                 <email>uche.ogbuji@fourthought.com</email>
50                 <uri>http://www.ogbuji.net</uri>
51             </address>
52         </author>
53         <author initials="P." fullname="Peter Saint-Andre" surname="Saint-Andre">
54             <organization/>
55             <address>
56                 <email>stpeter@jabber.org</email>
57                 <uri>http://www.jabber.org/people/stpeter.shtml</uri>
58             </address>
59         </author>
60         <author initials="J." fullname="Jason Kolb" surname="Kolb">
61             <organization/>
62             <address>
63                 <email>jason.kolb@gmail.com</email>
64                 <uri>http://www.jasonkolb.com</uri>
65             </address>
66         </author>
67         <author initials="R." fullname="Ralph Meijer " surname="Meijer">
68             <organization/>
69             <address>
70                 <email>llup@ralphm.ik.nu</email>
71                 <uri>http://ralphm.net/</uri>
72             </address>
73         </author>
74         <author initials="D." fullname="Dan Zambonini" surname="Zambonini">
75             <organization/>
76             <address>
77                 <email>dan.zambonini@boxuk.com</email>
78                 <uri>http://www.boxuk.com/</uri>
79             </address>
80         </author>
81         <date month="July" year="2006"/>
82         <keyword>LLUP</keyword>
83         <keyword>Blip</keyword>
84         <keyword>Decentralized</keyword>
85         <keyword>Messaging</keyword>
86         <abstract>
87             <t>This memo presents a protocol for decentralized messaging communication</t>
88         </abstract>
89     </front>
90     <middle>
91         <section title="Introduction" anchor="introduction">
92             <t>The World Wide Web has grown exponentially for the last decade to become today a
93                 mandatory token in many fields. One of the greatest strength of the World Wild Web
94                 is its capacitiy to let anyone having his word. One issue carried with that freedom
95                 is that it has quickly become hard to look for relevant topic as well as to keep
96                 track of resources.</t>
97             <t>One way to solve that problem is for the end user to make the effort to filter, sort
98                 and organise using tools at hand such as browser bookmarks or email client filters.
99                 However this has partly failed as well because the majority of people now using the
100                 World Wide Web is not computer's litterate but takes the freedom concept behind the
101                 Internet so strongly that they do not want to be forced to make effort to use it.
102                 This explains the success of search engines. Searching a resource is made in a given
103                 context from the user point of view, once found a resource is only interesting to
104                 the user in that particular context. The user could organise and bookmark that
105                 resource but what if the context does not occur for a long time? We believe that the
106                 user would have to go through the process of searching a resource in the given
107                 context all over again. In fact, he could well forget he had already bookmarked a
108                 resource. To sum up users tend to think that the system is there to help them
109                 retrieving what they look for with little effort. </t>
110             <t>As a side point of searching information, the user might want to be updated when a
111                 resource he was interested in has been updated without having to come back to the
112                 resource from time to time. That problem has already been taken into account with
113                 blogs through the use of syndication feeds but we feel we can go further by making
114                 the system simpler. LLUP aims to improve the user's experience of the World Wide Web
115                 with little intrusion in his habits. Basically the user should only need to state
116                 that he wants to hook onto a resource by letting the underlying system do the work
117                 of tracking that resource and in return being pinged when that resource has changed.
118                 One of the LLUP principle is to reduce bandwith pollution as well. For instance
119                 currently the syndication feed system send the complete feed each time an entry has
120                 been modified. LLUP instead would only ping regarding the entry which has changed.</t>
121             <section title="Namespace and Version" anchor="namespace">
122                 <t>The XML namespace URI for the XML data format described in this specification is:</t>
123                 <t>http://www.x2x2x.org/llup</t>
124             </section>
125             <section title="Notational Conventions">
126                 <t>This specification uses the namespace prefix "llup:" for the Namespace URI
127                     identified in the <xref target="namespace">section</xref> above. Note that the
128                     choice of namespace prefix is arbitrary and not semantically significant.</t>
129                 <t>LLUP is specified using terms from the XML Infoset <xref
130                         target="W3C.REC-xml-infoset-20040204">W3C.REC-xml-infoset-20040204</xref>.
131                     However, this specification uses a shorthand for two common terms; the phrase
132                     "Information Item" is omitted when naming Element Information Items and
133                     Attribute Information Items. Therefore, when this specification uses the term
134                     "element," it is referring to an Element Information Item in Infoset terms.
135                     Likewise, when it uses the term "attribute," it is referring to an Attribute
136                     Information Item.</t>
137                 <t>Some sections of this specification are illustrated with fragments of a
138                     non-normative RELAX NG Compact schema [RELAX-NG]. However, the text of this
139                     specification provides the definition of conformance. A complete schema appears
140                     in Appendix</t>
141                 <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
142                     "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
143                     interpreted as described in BCP 14, <xref target="refs.RFC2119">RFC2119</xref>,
144                     as scoped to those conformance targets.</t>
145             </section>
146         </section>
147         <section title="Architecture">
148             <t> In order to meet the full set of concerns identified in the problem statement and
149                 purpose of LLUP (see the previous section of this specification), the architecture
150                 of LLUP needs to be specified at a generic level such that it is not tied to one
151                 particular implementation technology. As such, the high-level architecture of LLUP
152                 can be broken into a distinct set of services. Services provide an ideal means of
153                 concentrating on the functional capabilities of LLUP without having to specify
154                 particular implementation protocols or technologies; the focus is on the breakdown
155                 of concerns rather than how those concerns are actually brought to life in a given
156                 target domain. Each service that makes up part of the high-level LLUP architecture
157                 needs to be described in terms of it's functions, the messages that it supports and
158                 how it then interacts with the other services in order to play it's part in the
159                 overall architecture. </t>
160             <section title="Generic services">
161                 <t> Three key characteristics are essential to the way that the LLUP generic
162                     services are described. The service definitions presented here should provide a
163                     framework by which the services can: <list style="symbols">
164                         <t>Be accurately implemented by a given system such that it can claim to be
165                             implementing LLUP.</t>
166                         <t>Support a myriad of possible presentation techniques and features that
167                             can then be applied to take advantage of LLUP from a user and system
168                             configuration perspective. </t>
169                     </list></t>
170                 <t>The aim is that the following services definitions can be used by any system that
171                     sees a value in adopting LLUP, without unduly constraining the implementation of
172                     the protocol and hence its applicability to a target domain. LLUP contains three
173                     distinct services: <list style="symbols">
174                         <t>The Publication Service: A means of creating new BLIPs.</t>
175                         <t>The Subscription Service: A means of subscribing to specific types of
176                             BLIPs.</t>
177                         <t>The BlogXast Service: A means of routing BLIPS intelligently in order to
178                             create a form of information transmission topology.</t>
179                     </list></t>
180                 <section title="BLIP">
181                     <t>At the heart of any deployment of the LLUP services is the concept of a BLIP.
182                         A BLIP is analogous to an entry in a traditional ATOM new feed. A BLIP
183                         contains enough information to enable the LLUP services to understand and
184                         intelligently route the BLIP to those endpoints that are interested in the
185                         information that the BLIP contains. A BLIP can be used to either wrap the
186                         actual content to which it is referring, or a simple reference to more
187                         complex content that can be retrieved by the receiving end point as and when
188                         they deem it appropriate. The LLUP architecture's whole purpose is to
189                         support the creation, routing and reception of BLIPS. </t>
190                     <section title="Publication service">
191                         <t>The LLUP publication service's core purpose is to provide a means of
192                             creating new LLUP-complicant messages (or BLIPS) in order to inform a
193                             LLUP enabled system that there is either new content available or to
194                             simply intelligently broadcast a notification. A BLIP may reference a
195                             set resource or simply encapsulate a notification, for the purposes of
196                             the publication service either type of BLIP will be accepted. A
197                             publication service may implement BLIP acceptance policies or even user
198                             accounts, this is entirely up to the service implementation. </t>
199                     </section>
200                     <section title="Subscription service">
201                         <t>The LLUP subscription service's core purpose is to provide a means for
202                             systems to express an interest in receiving certain types of BLIP. With
203                             existing news feeds, the entire feed needs to be retrieved to decide
204                             what has changed. Contrasting with this type of approach, a subscription
205                             service only the BLIPs that are of interest will be received and only
206                             when new information has been made available.</t>
207                     </section>
208                     <section title="Blogxast service">
209                         <t>The LLUP blogxast service is the most critical part of the LLUP
210                             architecture. At its most simplest, a blogXast service can accept BLIP's
211                             and the intelligently transmit those BLIPs on depending on BLIP content
212                             and the internal service configuration.</t>
213                         <t>A blogXast service can be thought of as being a combination of a
214                             publication service and a subscription service. It is a subscription
215                             service as it will only forward BLIPSs to further end points according
216                             to subscription information about those end points. It has the
217                             characteristics of a publication service because it can accept new BLIPs
218                             that are transmitted to it.</t>
219                         <t>The power of a blogXast service is in the fact that it offers a form of
220                             intelligent router for BLIPs. In a simple configuration, as shown in
221                             Figure 1 below, a BlogXast service can be chained in-between a
222                             subscription and publication service. [TBD] need to place a figure here
223                             to show a simple blogxast service sitting in-between a publication and
224                             subscriptions service. Although this is the simplest configuration this
225                             does not really demonstrate the real power of the blogxast service.
226                             Remembering that a blogxast service can filter the blips it receives (as
227                             a form of publication service) and route them onto end points that have
228                             expressed an interest on a particular type of BLIP (using the
229                             subscription characteristics), because of the way that bloXast looks
230                             like a combination of these service it can itself be chained together to
231                             form an intelligent network topology; intelligent because it routes
232                             messages based on content and allows full control over the lifecycle of
233                             BLIPs, removing the problems of broadcasting: redundant transmissions
234                             (messages can be recognised and if already received then not
235                             re-transmitted) and transmission of irrelevant content (messages are
236                             targeted to only those end points that have expressed an interest so
237                             that services don't receive messages when they are not required or
238                             interesting).</t>
239                     </section>
240                 </section>
241             </section>
242         </section>
243         <section title="LLUP Elements Definition">
244             <t>This section explains the different elements available to the LLUP messaging
245                 protocol.</t>
246             <section title="Common elements">
247                 <section title="The &quot;llup:sender&quot; element">
248                     <t>(description here)</t>
249                     <figure anchor="llup_sender" title="The llup:sender element">
250                         <artwork><![CDATA[
251         llupSender =
252         element llup:sender {
253                 attribute credentia-id { text },
254                 attribute email { text },
255                 text
256         }
257         ]]>
258                         </artwork>
259                     </figure>
260                 </section>
261                 <section title="The &quot;llup:recipients&quot; element">
262                     <t>(description here)</t>
263                     <figure anchor="llup_recipients" title="The llup:recipients element">
264                         <artwork><![CDATA[
265         llupRecipients =
266         element llup:recipients {
267                 llupRecipient+
268         }
269         ]]>
270                         </artwork>
271                     </figure>
272                     <t>The following child elements are defined by this specification:</t>
273                     <t>
274                         <list style="symbols">
275                             <t>llup:recipients element MUST contain one or more llup:recipient
276                                 element(s)</t>
277                         </list>
278                     </t>
279                 </section>
280                 <section title="The &quot;llup:recipient&quot; element">
281                     <t>(description here)</t>
282                     <figure anchor="llup_recipient" title="The llup:recipient element">
283                         <artwork><![CDATA[
284         llupRecipient =
285         element llup:recipient {
286                 text
287         }
288         ]]>
289                         </artwork>
290                     </figure>
291                 </section>
292                 <section title="The &quot;llup:time-span&quot; element">
293                     <t>(description here)</t>
294                     <figure anchor="llup_time_span" title="The llup:time-span element">
295                         <artwork><![CDATA[
296         llupTimeSpan =
297         element llup:time-span {
298                 attribute start { xsd:dateTime },
299                 attribute expires { xsd:dateTime }
300         }
301         ]]>
302                         </artwork>
303                     </figure>
304                 </section>
305                 <section title="The &quot;llup:keywords&quot; element">
306                     <t>(description here)</t>
307                     <figure anchor="llup_keywords" title="The llup:keywords element">
308                         <artwork><![CDATA[
309         llupKeywords =
310         element llup:keywords {
311                 llupKeyword+
312         }
313         ]]>
314                         </artwork>
315                     </figure>
316                     <t>The following child elements are defined by this specification:</t>
317                     <t>
318                         <list style="symbols">
319                             <t>llup:keywords element MUST contain one or more llup:keyword
320                                 element(s)</t>
321                         </list>
322                     </t>
323                 </section>
324                 <section title="The &quot;llup:keyword&quot; element">
325                     <t>(description here)</t>
326                     <figure anchor="llup_keyword" title="The llup:keyword element">
327                         <artwork><![CDATA[
328         llupKeyword =
329         element llup:keyword {
330                 text
331         }
332         ]]>
333                         </artwork>
334                     </figure>
335                 </section>
336                 <section title="The &quot;llup:home&quot; element">
337                     <t>(description here)</t>
338                     <figure anchor="llup_home" title="The llup:home element">
339                         <artwork><![CDATA[
340         llupHome =
341         element llup:home {
342                 text
343         }
344         ]]>
345                         </artwork>
346                     </figure>
347                 </section>
348                 <section title="The &quot;llup:admin&quot; element">
349                     <t>(description here)</t>
350                     <figure anchor="llup_admin" title="The llup:admin element">
351                         <artwork><![CDATA[
352         llupAdmin =
353         element llup:admin {
354                 text
355         }
356         ]]>
357                         </artwork>
358                     </figure>
359                 </section>
360                 <section title="The &quot;llup:link&quot; element">
361                     <t>(description here)</t>
362                     <figure anchor="llup_link" title="The llup:link element">
363                         <artwork><![CDATA[
364         llupLink =
365         element llup:link {
366                 text
367         }
368         ]]>
369                         </artwork>
370                     </figure>
371                 </section>
372                 <section title="The &quot;llup:subject&quot; element">
373                     <t>(description here)</t>
374                     <figure anchor="llup_subject" title="The llup:subject element">
375                         <artwork><![CDATA[
376         llupSubject =
377         element llup:subject {
378                 text
379         }
380         ]]>
381                         </artwork>
382                     </figure>
383                 </section>
384                 <section title="The &quot;llup:history&quot; element">
385                     <t>(description here)</t>
386                     <figure anchor="llup_history" title="The llup:history element">
387                         <artwork><![CDATA[
388         llupHistory =
389         element llup:history {
390                 attribute created { xsd:dateTime },
391                 attribute last-update { xsd:dateTime }
392         }
393         ]]>
394                         </artwork>
395                     </figure>
396                 </section>
397                 <section title="The &quot;llup:standingblip&quot; element">
398                     <t>(description here)</t>
399                     <figure anchor="llup_standingblip" title="The llup:standingblip element">
400                         <artwork><![CDATA[
401         llupStandingBlip =
402         element llup:standingblip {
403                 llupSender,
404                 llupHome
405         }
406         ]]>
407                         </artwork>
408                     </figure>
409                     <t>The following child elements are defined by this specification:</t>
410                     <t>
411                         <list style="symbols">
412                             <t>llup:standingblip element MUST contain one llup:sender element</t>
413                             <t>llup:standingblip element MUST contain one llup:home element</t>
414                         </list>
415                     </t>
416                 </section>
417                 <section title="The &quot;llup:blipconsumer&quot; element">
418                     <t>(description here)</t>
419                     <figure anchor="llup_blipconsumer" title="The llup:blipconsumer element">
420                         <artwork><![CDATA[
421         llupBlipConsumer =
422         element llup:blipconsumer {
423                 llupSender,
424                 llupHome
425         }
426         ]]>
427                         </artwork>
428                     </figure>
429                     <t>The following child elements are defined by this specification:</t>
430                     <t>
431                         <list style="symbols">
432                             <t>llup:blipconsumer element MUST contain one llup:sender element</t>
433                             <t>llup:blipconsumer element MUST contain one llup:home element</t>
434                         </list>
435                     </t>
436                 </section>
437                 <section title="The &quot;llup:receiveblipendpoint&quot; element">
438                     <t>(description here)</t>
439                     <figure anchor="llup_receiveblipendpoint"
440                         title="The llup:receiveblipendpoint element">
441                         <artwork><![CDATA[
442         llupReceiveBlipEndPoint =
443         element llup:receiveblipendpoint {
444                 text
445         }
446         ]]>
447                         </artwork>
448                     </figure>
449                 </section>
450                 <section title="The &quot;llup:addblipconsumerendpoint&quot; element">
451                     <t>(description here)</t>
452                     <figure anchor="llup_addblipconsumerendpoint"
453                         title="The llup:addblipconsumerendpoint element">
454                         <artwork><![CDATA[
455         llupAddBlipConsumerEndPoint =
456         element llup:addblipconsumerendpoint {
457                 text
458         }
459         ]]>
460                         </artwork>
461                     </figure>
462                 </section>
463                 <section title="The &quot;llup:publicationservice&quot; element">
464                     <t>(description here)</t>
465                     <figure anchor="llup_publicationservice"
466                         title="The llup:publicationservice element">
467                         <artwork><![CDATA[
468         llupPublicationService =
469         element llup:publicationservice {
470                 text
471         }
472         ]]>
473                         </artwork>
474                     </figure>
475                 </section>
476             </section>
477             <section title="Subscription Elements">
478                 <section title="The &quot;llup:subscribe&quot; element">
479                     <t>(description here)</t>
480                     <figure anchor="llup_subscribe" title="The llup:subscribe element">
481                         <artwork><![CDATA[
482         llupSubscribe =
483         element
484                 llup:subscribe {
485                         llupSender,
486                         llupRecipients,
487                         llupTimeSpan
488                 }
489         ]]>
490                         </artwork>
491                     </figure>
492                     <t>The following child elements are defined by this specification:</t>
493                     <t>
494                         <list style="symbols">
495                             <t>llup:subscribe element MUST contain one llup:sender element</t>
496                             <t>llup:subscribe element MUST contain one llup:recipients element</t>
497                             <t>llup:subscribe element MUST contain one llup:timespan element</t>
498                         </list>
499                     </t>
500                 </section>
501                 <section title="The &quot;llup:subscription&quot; element">
502                     <t>(description here)</t>
503                     <figure anchor="llup_subscription" title="The llup:subscription element">
504                         <artwork><![CDATA[
505         llupSubscription =
506         element
507                 llup:subscription {
508                         llupSender,
509                         llupHome
510                 }
511         ]]>
512                         </artwork>
513                     </figure>
514                     <t>The following child elements are defined by this specification:</t>
515                     <t>
516                         <list style="symbols">
517                             <t>llup:subscription element MUST contain a llup:sender element</t>
518                             <t>llup:subscription element MUST contain a llup:home element</t>
519                         </list>
520                     </t>
521                 </section>
522                 <section title="The &quot;llup:cancelsubscription&quot; element">
523                     <t>(description here)</t>
524                     <figure anchor="llup_cancelsubscription"
525                         title="The llup:cancelsubscription element">
526                         <artwork><![CDATA[
527         llupCancelSubscription =
528         element
529                 llup:cancelsubscription {
530                         llupSender,
531                         llupHome
532                 }
533         ]]>
534                         </artwork>
535                     </figure>
536                     <t>The following child elements are defined by this specification:</t>
537                     <t>
538                         <list style="symbols">
539                             <t>llup:cancelsubscription element MUST contain a llup:sender element</t>
540                             <t>llup:cancelsubscription element MUST contain a llup:home element</t>
541                         </list>
542                     </t>
543                 </section>
544                 <section title="The &quot;llup:subscriptioncancelled&quot; element">
545                     <t>(description here)</t>
546                     <figure anchor="llup_subscriptioncancelled"
547                         title="The llup:subscriptioncancelled element">
548                         <artwork><![CDATA[
549         llupSubscriptionCancelled =
550         element
551                 llup:subscriptioncancelled {
552                         llupSender,
553                         llupAdmin
554                 }
555         ]]>
556                         </artwork>
557                     </figure>
558                     <t>The following child elements are defined by this specification:</t>
559                     <t>
560                         <list style="symbols">
561                             <t>llup:cancelsubscription element MUST contain a llup:sender element</t>
562                             <t>llup:cancelsubscription element MUST contain a llup:admin element</t>
563                         </list>
564                     </t>
565                 </section>
566             </section>
567             <section title="Publication elements">
568                 <section title="The &quot;llup:addpublicationservice&quot; element">
569                     <t>(description here)</t>
570                     <figure anchor="llup_addpublicationservice"
571                         title="The llup:addpublicationservice element">
572                         <artwork><![CDATA[
573         llupAddPublicationService =
574         element llup:addpublicationservice {
575                 attribute origin { text },
576                 attribute id { text },
577                 llupSender,
578                 llupTimeSpan,
579                 llupAddBlipConsumerEndPoint
580         }
581         ]]>
582                         </artwork>
583                     </figure>
584                     <t>The following child elements are defined by this specification:</t>
585                     <t>
586                         <list style="symbols">
587                             <t>llup:addpublicationservice element MUST contain a llup:sender element</t>
588                             <t>llup:addpublicationservice element MUST contain a llup:timespan
589                                 element</t>
590                             <t>llup:addpublicationservice element MUST contain a
591                                 llup:addblipconsumerendpoint element</t>
592                         </list>
593                     </t>
594                 </section>
595                 <section title="The &quot;llup:publicationserviceadded&quot; element">
596                     <t>(description here)</t>
597                     <figure anchor="llup_publicationserviceadded"
598                         title="The llup:publicationserviceadded element">
599                         <artwork><![CDATA[
600         llupPublicationServiceAdded =
601         element llup:addpublicationservice {
602                 llupSender,
603                 llupPublicationService
604         }
605         ]]>
606                         </artwork>
607                     </figure>
608                     <t>The following child elements are defined by this specification:</t>
609                     <t>
610                         <list style="symbols">
611                             <t>llup:publicationserviceadded element MUST contain a llup:sender
612                                 element</t>
613                             <t>llup:publicationserviceadded element MUST contain a
614                                 llup:publicationservice element</t>
615                         </list>
616                     </t>
617                 </section>
618                 <section title="The &quot;llup:removepublicationservice&quot; element">
619                     <t>(description here)</t>
620                     <figure anchor="llup_removepublicationservice"
621                         title="The llup:removepublicationservice element">
622                         <artwork><![CDATA[
623         llupRemovePublicationService =
624         element llup:removepublicationservice {
625                 attribute id { text },
626                 llupSender,
627                 llupPublicationService
628         }
629         ]]>
630                         </artwork>
631                     </figure>
632                     <t>The following child elements are defined by this specification:</t>
633                     <t>
634                         <list style="symbols">
635                             <t>llup:removepublicationservice element MUST contain a llup:sender
636                                 element</t>
637                             <t>llup:removepublicationservice element MUST contain a
638                                 llup:publicationservice element</t>
639                         </list>
640                     </t>
641                 </section>
642                 <section title="The &quot;llup:publicationserviceremoved&quot; element">
643                     <t>(description here)</t>
644                     <figure anchor="llup_publicationserviceremoved"
645                         title="The llup:publicationserviceremoved element">
646                         <artwork><![CDATA[
647         llupRemovePublicationService =
648         element llup:removepublicationservice {
649                 llupSender,
650                 llupAdlin
651         }
652         ]]>
653                         </artwork>
654                     </figure>
655                     <t>The following child elements are defined by this specification:</t>
656                     <t>
657                         <list style="symbols">
658                             <t>llup:publicationserviceremoved element MUST contain a llup:sender
659                                 element</t>
660                             <t>llup:publicationserviceremoved element MUST contain a
661                                 llup:publicationservice element</t>
662                         </list>
663                     </t>
664                 </section>
665             </section>
666             <section title="BLIP elements">
667                 <section title="The &quot;llup:createblip&quot; element">
668                     <t>(description here)</t>
669                     <figure anchor="llup_createblip" title="The llup:createblip element">
670                         <artwork><![CDATA[
671         llupCreateBlip =
672         element llup:createblip {
673                 attribute origin { text },
674                 attribute id { text },
675                 llupSender,
676                 llupRecipients,
677                 llupLink,
678                 llupSubject,
679                 llupTimeSpan,
680                 llupKeywords
681         }
682         ]]>
683                         </artwork>
684                     </figure>
685                     <t>The following child elements are defined by this specification:</t>
686                     <t>
687                         <list style="symbols">
688                             <t>llup:createblip element MUST contain a llup:sender element</t>
689                             <t>llup:createblip element MUST contain a llup:recipients element</t>
690                             <t>llup:createblip element MUST contain a llup:link element</t>
691                             <t>llup:createblip element MUST contain a llup:subject element</t>
692                             <t>llup:createblip element MUST contain one llup:timespan element</t>
693                             <t>llup:createblip element SHOULD contain one llup:keywords element</t>
694                         </list>
695                     </t>
696                 </section>
697                 <section title="Standing BLIP elements">
698                     <section title="The &quot;llup:createstandingblip&quot; element">
699                         <t>(description here)</t>
700                         <figure anchor="llup_createstandingblip"
701                             title="The llup:createstandingblip element">
702                             <artwork><![CDATA[
703         llupCreateBlip =
704         element llup:createstandingblip {
705                 attribute origin { text },
706                 attribute id { text },
707                 llupSender,
708                 llupRecipients,
709                 llupLink,
710                 llupSubject,
711                 llupTimeSpan,
712                 llupKeywords
713         }
714         ]]>
715                             </artwork>
716                         </figure>
717                         <t>The following child elements are defined by this specification:</t>
718                         <t>
719                             <list style="symbols">
720                                 <t>llup:createstandingblip element MUST contain a llup:sender
721                                     element</t>
722                                 <t>llup:createstandingblip element MUST contain a llup:recipients
723                                     element</t>
724                                 <t>llup:createstandingblip element MUST contain a llup:link element</t>
725                                 <t>llup:createstandingblip element MUST contain a llup:subject
726                                     element</t>
727                                 <t>llup:createstandingblip element MUST contain one llup:timespan
728                                     element</t>
729                                 <t>llup:createstandingblip element SHOULD contain one llup:keywords
730                                     element</t>
731                             </list>
732                         </t>
733                     </section>
734                     <section title="The &quot;llup:cancelstandingblip&quot; element">
735                         <t>(description here)</t>
736                         <figure anchor="llup_cancelstandingblip"
737                             title="The llup:cancelstandingblip element">
738                             <artwork><![CDATA[
739         llupCancelStandingBlip =
740         element llup:cancelstandingblip {
741                 attribute origin { text },
742                 attribute id { text },
743                 llupSender,
744                 llupStandingBlip
745         }
746         ]]>
747                             </artwork>
748                         </figure>
749                         <t>The following child elements are defined by this specification:</t>
750                         <t>
751                             <list style="symbols">
752                                 <t>llup:cancelstandingblip element MUST contain a llup:sender
753                                     element</t>
754                                 <t>llup:cancelstandingblip element MUST contain a llup:standingblip
755                                     element</t>
756                             </list>
757                         </t>
758                     </section>
759                     <section title="The &quot;llup:standingblipcancelled&quot; element">
760                         <t>(description here)</t>
761                         <figure anchor="llup_standingblipcancelled"
762                             title="The llup:standingblipcancelled element">
763                             <artwork><![CDATA[
764         llupStandingBlipCancelled =
765         element
766                 llup