Peter Saint-Andre wrote:
Michael Laukner wrote:
Peter Saint-Andre wrote:
XMPP Extensions Editor wrote:
The XMPP Extensions Editor has received a proposal for a new XEP.

Title: Data Element

Abstract: This document specifies a method for including small bits
of binary data in an XMPP stanza via the data: URL scheme.

URL: http://www.xmpp.org/extensions/inbox/data-element.html

See, that was easy, wasn't it? ;-)

/psa



This XEP seems to get close to what we want to achieve. A challenge for
the message exchange in our environment is the transmission of
structured information within a regular message. This structured
information may be geographic coordinates, date/time groups, or a
references to an data object, for example.

Traditionally, we have not worried very much about the transmission of structured information, since XMPP is pure XML. The challenge has always been to include unstructured (binary) information -- a problem that this proposal seeks to address.

To be able to embed various structured information in a message, the
message shall contain a "SmartTag". This "SmartTag" shall be as close to
text as "Emoticons" are, but structured enough for enhanced clients to
make some sense out of it.

OK. So basically you want a way to include your structured data in the message stanza but define a convention for referring to it in the plaintext message body. Correct?

The example below was drafted before knowing the Data Element XEP:

<message
   to="[EMAIL PROTECTED]/balcony"
   from="[EMAIL PROTECTED]"
   type="chat">
   <body>Juliet, I am at _1[47.8N,9.3E] and feeling kind of dizzy!
      You can find my new picture here _2[PIC-DB,4711].
   </body>
   <TagList xmlns="urn:xmpptag">
      <Tag ref="_1">
         <GeoPosition2D xmlns="urn:common">
            <Latitude units="degrees">47.8123</Latitude>
            <Longitude units="degrees">9.2947</Longitude>
         </GeoPosition2D>
      </Tag>
      <Tag ref="_2">
        <DRef libraryId="PIC-DB" productId="4711"/>
      </Tag>
   </TagList>
</message>

Hmm. We could use the same convention we're talking about using in XHTML-IM, i.e., the cid: URL scheme. So your message would end up looking like this perhaps:

<message
  to="[EMAIL PROTECTED]/balcony"
  from="[EMAIL PROTECTED]/orchard"
  type="chat">
  <body>Juliet, I am at 47.8N,9.3E and feeling kind of dizzy!
     You can find my new picture here.
  </body>
  <html xmlns='http://jabber.org/protocol/xhtml-im'>
    <body xmlns='http://www.w3.org/1999/xhtml'>
      <p>Juliet, I am at <a href='cid:refcid1'>47.8N,9.3E</a>
         and feeling kind of dizzy! You can find my new picture
         <a href='cid:cidref2'>here</a>.</p>
   </body>
  </html>
  <TagList xmlns="urn:xmpptag">
     <Tag ref="cidref1">
        <GeoPosition2D xmlns="urn:common">
           <Latitude units="degrees">47.8123</Latitude>
           <Longitude units="degrees">9.2947</Longitude>
        </GeoPosition2D>
     </Tag>
     <Tag ref="cidref2">
       <DRef libraryId="PIC-DB" productId="4711"/>
     </Tag>
  </TagList>
</message>

I'm not quite seeing the need for the <TagList/> element. Why not just include the markup for each attached data as an extension (it could be MathML, SVG, geodata, or whatever -- each of those has its own special namespace) instead of designing a generic "manifest" format?

Could this XEP be designed to support more than just MIME-types???

It *could*, but I don't quite see the need yet. XMPP can handle all sorts of structured data. All that you seem to need is a way to refer to that structured data from within the message body, and cid: URLs may give you that.

i.e. geo data could be encoded using Geo URI:

   http://www.ietf.org/internet-drafts/draft-mayrhofer-geo-uri-01.txt

   'geo' URIs could (like any other URI scheme) also be embedded as
   hyperlinks in web pages.  A Hyper Text Markup Language (HTML) FIXME:
   ref snippet with such a hyperlink could look like:

   <p>one of Vienna's most popular sights is the <a href=' geo:
   FIXME,FIXME,FIXME'>St. Stephans Cathedral</a>


In case of XMPP:

<message
   to="[EMAIL PROTECTED]/balcony"
   from="[EMAIL PROTECTED]"
   type="chat">
   <body>Juliet, I am at geo:47.123,9.3 and feeling kind of dizzy!
   </body>
   <data xmlns='http:://www.xmpp.org/extensions/xep-xxxx.html#ns'
        alt='A spot'
        cid='[EMAIL PROTECTED]'
        uri='geo'>
        FIXME,FIXME,FIXME
   </data>
</message>

Er, don't you really want this...?

<message
  to="[EMAIL PROTECTED]/balcony"
  from="[EMAIL PROTECTED]/orchard"
  type="chat">
  <body>
    Juliet, I am at 47.8N,9.3E and feeling kind of dizzy!
  </body>
  <html xmlns='http://jabber.org/protocol/xhtml-im'>
    <body xmlns='http://www.w3.org/1999/xhtml'>
      <p>
        Juliet, I am at <a href='geo:some-geo-uri'>47.8N,9.3E</a>
        and feeling kind of dizzy!
      </p>
    </body>
  </html>
</message>

This message supports the consumer side. We can render the URI nicely as an image button and load the map application, but our end-nodes may also be producer. In this case we want to attach the geo-data directly (as gml, kml, geopriv) to a message, store them in the database on the server and send the URI to the MUC participants.


Now, whether the recipient supports the geo: URI scheme is another matter. But I don't see a good reason to complicate the data element when we already have a way to include URIs -- it's called XHTML-IM.

Peter



Reply via email to