mirror of
https://github.com/moparisthebest/xeps
synced 2024-12-23 08:08:53 -05:00
protoXEP events: spelling/grammar fixes
This commit is contained in:
parent
2d0e9a5fab
commit
684168f09c
@ -39,13 +39,13 @@
|
|||||||
<p>Nowadays, it is common to handle all kind of events through desktop computer or phone: it is useful to have them at hand, to easily share them and to have all kind of reminders.</p>
|
<p>Nowadays, it is common to handle all kind of events through desktop computer or phone: it is useful to have them at hand, to easily share them and to have all kind of reminders.</p>
|
||||||
<p>XMPP is a good fit to handle events: it's a communication protocol, and as such it would be useful for it to have tools to handle and share events.</p>
|
<p>XMPP is a good fit to handle events: it's a communication protocol, and as such it would be useful for it to have tools to handle and share events.</p>
|
||||||
<p>The only existing attempt at this point is &xep0097; which describe a way to wrap iCal<note>iCalendar <link url='https://datatracker.ietf.org/doc/html/rfc5545'>https://datatracker.ietf.org/doc/html/rfc5545</link></note> data. However, this XEP never got traction, is not taking advantage of XMPP features, doesn't handle thing such as invitees and RSVP, and it not easily extensible.</p>
|
<p>The only existing attempt at this point is &xep0097; which describe a way to wrap iCal<note>iCalendar <link url='https://datatracker.ietf.org/doc/html/rfc5545'>https://datatracker.ietf.org/doc/html/rfc5545</link></note> data. However, this XEP never got traction, is not taking advantage of XMPP features, doesn't handle thing such as invitees and RSVP, and it not easily extensible.</p>
|
||||||
<p>This XEP propose an alternative which take profit of existing features such as &xep0060;.</p>
|
<p>This XEP proposes an alternative which leverage existing tools such as &xep0060;.</p>
|
||||||
</section1>
|
</section1>
|
||||||
<section1 topic='Requirements' anchor='reqs'>
|
<section1 topic='Requirements' anchor='reqs'>
|
||||||
<p>The design goals of this XEP are:</p>
|
<p>The design goals of this XEP are:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>use pubsub and its access model to be able to have events either private or public, and to take profit of the subscription mechanism</li>
|
<li>use pubsub and its access model to be able to have events either private or public, and to take advantage of the subscription mechanism</li>
|
||||||
<li>being able to specify easily simple events with minimum metadata (e.g. doctor appointment, coffee with a friend)</li>
|
<li>being able to specify simple events with minimum metadata (e.g. doctor appointment, coffee with a friend)</li>
|
||||||
<li>provide optional tools such as RSVP or invitees list for events organization</li>
|
<li>provide optional tools such as RSVP or invitees list for events organization</li>
|
||||||
<li>it should be possible to optionally ask any kind of extra data in RSVP (e.g.: number of people attending, allergy information for dinner, etc.)</li>
|
<li>it should be possible to optionally ask any kind of extra data in RSVP (e.g.: number of people attending, allergy information for dinner, etc.)</li>
|
||||||
<li>group several events of same kind in a pubsub node (e.g. personal agenda, work agenda, events linked to an organization)</li>
|
<li>group several events of same kind in a pubsub node (e.g. personal agenda, work agenda, events linked to an organization)</li>
|
||||||
@ -56,12 +56,12 @@
|
|||||||
</section1>
|
</section1>
|
||||||
<section1 topic='Glossary' anchor='glossary'>
|
<section1 topic='Glossary' anchor='glossary'>
|
||||||
<ul>
|
<ul>
|
||||||
<li><strong>RSVP</strong>: "<link url='https://en.wikipedia.org/wiki/RSVP'>Répondez s'il vous plaît</link>", a way for event invitees to indicate if they plan to participate to the event</li>
|
<li><strong>RSVP</strong>: "<link url='https://en.wikipedia.org/wiki/RSVP'>Répondez s'il vous plaît</link>", a way for event invitees to indicate whether they plan to attend the event</li>
|
||||||
</ul>
|
</ul>
|
||||||
</section1>
|
</section1>
|
||||||
<section1 topic='Use Cases' anchor='usecases'>
|
<section1 topic='Use Cases' anchor='usecases'>
|
||||||
<section2 topic='Creating a Simple Event' anchor='simple-event'>
|
<section2 topic='Creating a Simple Event' anchor='simple-event'>
|
||||||
<p>Juliet and her nurse decide to have a coffee together. Juliet does know the usual place where they're going, and thus doesn't need to add much informations, she just create an event for her agenda on her XMPP client. The client creates an item on Juliet's PEP node `urn:xmpp:events:0` as follow:</p>
|
<p>Juliet and her nurse decide to have a coffee together. Juliet knows the usual place where they're going, and thus doesn't need to add much information, she creates an event for her agenda on her XMPP client. The client creates an item on Juliet's PEP node `urn:xmpp:events:0` as follow:</p>
|
||||||
|
|
||||||
<example caption="Minimal Event"><![CDATA[
|
<example caption="Minimal Event"><![CDATA[
|
||||||
<iq
|
<iq
|
||||||
@ -88,7 +88,7 @@
|
|||||||
</section2>
|
</section2>
|
||||||
<section2 topic='Organizing an Event' anchor='originazing-event'>
|
<section2 topic='Organizing an Event' anchor='originazing-event'>
|
||||||
<p>Juliet is organizing a ball, and to make things easier she uses her XMPP client to manage it. To make the event more appealing, she'll publish a nice image of the ball room as main picture of the event, and she'll publish the list of invitees. She'll also need RSVP to evaluate the number of people attending.</p>
|
<p>Juliet is organizing a ball, and to make things easier she uses her XMPP client to manage it. To make the event more appealing, she'll publish a nice image of the ball room as main picture of the event, and she'll publish the list of invitees. She'll also need RSVP to evaluate the number of people attending.</p>
|
||||||
<p>The event that she's publishing is looking like that:</p>
|
<p>The event she's publishing looks as follows:</p>
|
||||||
|
|
||||||
<example caption="Organising an Event"><![CDATA[
|
<example caption="Organising an Event"><![CDATA[
|
||||||
<iq
|
<iq
|
||||||
@ -197,7 +197,7 @@
|
|||||||
</pubsub>
|
</pubsub>
|
||||||
</iq>]]></example>
|
</iq>]]></example>
|
||||||
<section3 topic='explanation' anchor='simple-event-explanation'>
|
<section3 topic='explanation' anchor='simple-event-explanation'>
|
||||||
<p>Juliet wants to be sure that this event will be a success, thus she provides a lot of informations. The first 3 elements <name/>, <start/> and <end/> are the mandatory one as specified in <link url='#simple-event-explanation'>simple event explanation</link>, all other elements are optionals. The elements used are briefly explained below, and are more detailed in <link url='#events-data'>Events Data</link> section.</p>
|
<p>Juliet wants to be sure that this event will be a success, thus she provides a lot of information. The first 3 elements <name/>, <start/> and <end/> are the mandatory one as specified in <link url='#simple-event-explanation'>simple event explanation</link>, all other elements are optionals. The elements used are briefly explained below, and are more detailed in <link url='#events-data'>Events Data</link> section.</p>
|
||||||
<p>The <head-picture/> element indicate where to find the head picture, or in other terms the main image used to represent the event. This image is used by clients to nicely represent the event to end-user.</p>
|
<p>The <head-picture/> element indicate where to find the head picture, or in other terms the main image used to represent the event. This image is used by clients to nicely represent the event to end-user.</p>
|
||||||
<p><description/> elements contain human readable text to explain what the event is about.</p>
|
<p><description/> elements contain human readable text to explain what the event is about.</p>
|
||||||
<p><category/> elements are used to classify the event. This is useful to quickly give an idea of what the event is about, and for events discovery.</p>
|
<p><category/> elements are used to classify the event. This is useful to quickly give an idea of what the event is about, and for events discovery.</p>
|
||||||
@ -245,7 +245,7 @@
|
|||||||
<p>The only mandatory <online/> child element is <instructions/> which contains a human readable text explaining how to join the online meeting. The <instructions/> element SHOULD have a 'xml:lang' attribute, and several <instructions/> elements MAY be present if they have distinct 'xml:lang' attributes.</p>
|
<p>The only mandatory <online/> child element is <instructions/> which contains a human readable text explaining how to join the online meeting. The <instructions/> element SHOULD have a 'xml:lang' attribute, and several <instructions/> elements MAY be present if they have distinct 'xml:lang' attributes.</p>
|
||||||
<p><online/> MAY have an optional <name/> child with a human readable text, this is notably useful if several online locations are used at the same time for different purpose (e.g.: global announces, lost and found, etc.). The <name/> element SHOULD have a 'xml:lang' attribute.</p>
|
<p><online/> MAY have an optional <name/> child with a human readable text, this is notably useful if several online locations are used at the same time for different purpose (e.g.: global announces, lost and found, etc.). The <name/> element SHOULD have a 'xml:lang' attribute.</p>
|
||||||
<p>If the online location is on an XMPP MUC, an <x/> element qualified by the 'jabber:x:conference' namespace as described in &xep0249; can be used.</p>
|
<p>If the online location is on an XMPP MUC, an <x/> element qualified by the 'jabber:x:conference' namespace as described in &xep0249; can be used.</p>
|
||||||
<p>It may be useful to indicate which software is used for the meeting. This is done with the <software/> element which MUST have a 'name' attribute with the software name, SHOULD have a 'wd' attribute with Wikidata entity ID when available (see <link url='#categories'>Categories section</link> for explanation on Wikidata) as it provides a lot of machine readable useful informations such as where it can be found, on which platforms it is running, etc. The <software/> SHOULD also have an 'url' attribute with the URL to the official software website as value. The 'need_install' attribute MAY be used with a value of either 'true' if the software needs to be installed or 'false' if it's not necessary (i.e. if it's accessible directly via a web resource).</p>
|
<p>It may be useful to indicate which software is used for the meeting. This is done with the <software/> element which MUST have a 'name' attribute with the software name, SHOULD have a 'wd' attribute with Wikidata entity ID when available (see <link url='#categories'>Categories section</link> for explanation on Wikidata) as it provides a lot of machine readable useful information such as where it can be found, on which platforms it is running, etc. The <software/> SHOULD also have an 'url' attribute with the URL to the official software website as value. The 'need_install' attribute MAY be used with a value of either 'true' if the software needs to be installed or 'false' if it's not necessary (i.e. if it's accessible directly via a web resource).</p>
|
||||||
<p>The <url-data/> provide the main URL to be used to join the online meeting. It is specified in &xep0103;</p>
|
<p>The <url-data/> provide the main URL to be used to join the online meeting. It is specified in &xep0103;</p>
|
||||||
|
|
||||||
<example caption="Online Location"><![CDATA[
|
<example caption="Online Location"><![CDATA[
|
||||||
@ -289,7 +289,7 @@
|
|||||||
<p>RSVP is a major tools when an event is organized: it helps to check if invitees have seen the event, and to evaluate the total number of people attending. The <rsvp> element MUST contain form as specified in &xep0004; and &xep0068;. The form must be specified as explained in &xep0068; with <field/> having a 'type' attribute with a value of "hidden", a 'var' with a value of "FORM_TYPE", and the field value MUST be "urn:xmpp:events:rsvp:0".</p>
|
<p>RSVP is a major tools when an event is organized: it helps to check if invitees have seen the event, and to evaluate the total number of people attending. The <rsvp> element MUST contain form as specified in &xep0004; and &xep0068;. The form must be specified as explained in &xep0068; with <field/> having a 'type' attribute with a value of "hidden", a 'var' with a value of "FORM_TYPE", and the field value MUST be "urn:xmpp:events:rsvp:0".</p>
|
||||||
<p>The form is the one which has to be answered by invitees, it SHOULD contain a field with a 'type' attribute of value "list-single" and a 'var' attribute of value "attending" with 3 options of respective value "maybe", "yes" and "no". This is the main field and it's the one which will be used to estimate the number of attendees. However, an event organizer MAY decide to modify the available options, for instance if the "maybe" option is not desired. This element SHOULD have a <required/> child element.</p>
|
<p>The form is the one which has to be answered by invitees, it SHOULD contain a field with a 'type' attribute of value "list-single" and a 'var' attribute of value "attending" with 3 options of respective value "maybe", "yes" and "no". This is the main field and it's the one which will be used to estimate the number of attendees. However, an event organizer MAY decide to modify the available options, for instance if the "maybe" option is not desired. This element SHOULD have a <required/> child element.</p>
|
||||||
<p>An optional field named "participants_number" MAY be used to indicate the number of attendees, including the person answering. This field has the default type of "text-single". If present, it will be used to summarize the expected number of persons participating to the event, otherwise one person per attending invitee will be assumed.</p>
|
<p>An optional field named "participants_number" MAY be used to indicate the number of attendees, including the person answering. This field has the default type of "text-single". If present, it will be used to summarize the expected number of persons participating to the event, otherwise one person per attending invitee will be assumed.</p>
|
||||||
<p>Any other field can be added to request extra informations to invitees. For instance, it may be used to ask if attendees have allergies, or who is bringing what to a picnic. If a new field is added, &xep0068; MUST be followed, and the 'var' attribute MUST be namespaced using &clark;.</p>
|
<p>Any other field can be added to request extra information to invitees. For instance, it may be used to ask if attendees have allergies, or who is bringing what to a picnic. If a new field is added, &xep0068; MUST be followed, and the 'var' attribute MUST be namespaced using &clark;.</p>
|
||||||
<p>The answer is provided by attendees using &xep0470;: an <rsvp/> element qualified by the 'urn:xmpp:events:0' namespace is attached to the event item, containing the submitted data.</p>
|
<p>The answer is provided by attendees using &xep0470;: an <rsvp/> element qualified by the 'urn:xmpp:events:0' namespace is attached to the event item, containing the submitted data.</p>
|
||||||
<p><rsvp/> element SHOULD have a 'xml:lang' attribute set to the language of the labels. Several <rsvp/> elements MAY be present, in which case they MUST have distinct 'xml:lang' attributes.</p>
|
<p><rsvp/> element SHOULD have a 'xml:lang' attribute set to the language of the labels. Several <rsvp/> elements MAY be present, in which case they MUST have distinct 'xml:lang' attributes.</p>
|
||||||
<example caption="RSVP Form"><![CDATA[
|
<example caption="RSVP Form"><![CDATA[
|
||||||
@ -452,10 +452,10 @@
|
|||||||
<p>The <comments/> element link to a &xep0277; comments node holding comments to the event iself.</p>
|
<p>The <comments/> element link to a &xep0277; comments node holding comments to the event iself.</p>
|
||||||
</section3>
|
</section3>
|
||||||
<section3 topic='blog' anchor='linked_blog'>
|
<section3 topic='blog' anchor='linked_blog'>
|
||||||
<p>The <blog/> element link to a &xep0277; node with a blog about the event. It is useful to keep people updated about any news or preparation informations.</p>
|
<p>The <blog/> element link to a &xep0277; node with a blog about the event. It is useful to keep people updated about any news or preparation information.</p>
|
||||||
</section3>
|
</section3>
|
||||||
<section3 topic='schedule' anchor='linked_schedule'>
|
<section3 topic='schedule' anchor='linked_schedule'>
|
||||||
<p>The <schedule/> element link to an events node (i.e. a node using this specification) describing the programation which will happens during the main event. Put another way, it's were informations such as dinner time, talks, workshop, etc. can be added.</p>
|
<p>The <schedule/> element link to an events node (i.e. a node using this specification) describing the programation which will happens during the main event. Put another way, it's were information such as dinner time, talks, workshop, etc. can be added.</p>
|
||||||
<p>Several events in the schedule MAY happen at the same time or overlapping time (for instance: various talks happening in parallel in a conference), in which case the locations SHOULD be specified (e.g. in which room each talk is taking place). Schedule MAY include events with RSVP (e.g. for a workshop needing inscription).</p>
|
<p>Several events in the schedule MAY happen at the same time or overlapping time (for instance: various talks happening in parallel in a conference), in which case the locations SHOULD be specified (e.g. in which room each talk is taking place). Schedule MAY include events with RSVP (e.g. for a workshop needing inscription).</p>
|
||||||
</section3>
|
</section3>
|
||||||
</section2>
|
</section2>
|
||||||
@ -561,4 +561,7 @@
|
|||||||
<section1 topic='XML Schema' anchor='schema'>
|
<section1 topic='XML Schema' anchor='schema'>
|
||||||
<p>TODO</p>
|
<p>TODO</p>
|
||||||
</section1>
|
</section1>
|
||||||
|
<section1 topic='Acknowledgements' anchor='acks'>
|
||||||
|
<p>Thanks to JC Brand for spelling corrections.</p>
|
||||||
|
</section1>
|
||||||
</xep>
|
</xep>
|
||||||
|
Loading…
Reference in New Issue
Block a user