Issue 6917: preliminary proposal for Event Tags; filtering

Once we have a way of describing our tags and linking them to the Event 
Types to which they apply (see [1]), it is straightforward to define an 
"Event Tag Filter" that operates over the values of 
/wse:EventDescriptions/wse:eventType/wse:eventTag.

<wse:Subscribe>
  <wse:Delivery>
    <wse:NotifyTo>
      <wsa:Address>http://www.other.example.com/OnStormWarning</wsa:Address>
      <wsa:ReferenceParameters>
        <ew:MySubscription>2597</ew:MySubscription>
      </wsa:ReferenceParameters>
    </wse:NotifyTo>
  </wse:Delivery>
*  <wse:Filter Dialect="http://**www.w3.org/2009/02/ws-evt**/tagFilter">
    <wse:eventTag>wind</wse:eventTag>
  </wse:Filter>*
</wse:Subscribe>

The above request would select the events tagged with "wind" from the 
set of the Event Types supported/produced by the Event Source. We 
/might/ want to allow the tagFilter dialect to include multiple 
wse:eventTag elements to support the selection of multiple tags in a 
single subscription, but things get a bit complicated if we want to 
distinguish between selecting events with "this tag /or/ that tag" and 
"this tag /and/ that tag" (there are use cases for both).

As stated previously (and requested by Ben in the original comment) the 
tags associated with an Event appear as SOAP headers in the Notification.

<s12:Envelope xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
              xmlns:wsa="http://www.w3.org/2005/08/addressing"
              xmlns:ew="http://www.example.com/warnings"
              xmlns:ow="http://www.example.org/oceanwatch" >
  <s12:Header>
    
<wsa:Action>http://www.example.org/oceanwatch/2003/WindReport</wsa:Action>
     
<wsa:MessageID>uuid:568b4ff2-5bc1-4512-957c-0fa545fd8d7f</wsa:MessageID>
     <wsa:To>http://www.other.example.com/OnStormWarning</wsa:To>
     <ew:MySubscription 
wsa:IsReferenceParameter="true">2597</ew:MySubscription>
*     <wse:eventTag>weather</wse:eventTag>*
     *<wse:eventTag>wind</wse:eventTag>*
  </s12:Header>
  <s12:Body>
    <ow:WindReport>
      <ow:Date>030701</ow:Date>
      <ow:Time>0041</ow:Time>
      <ow:Speed>65</ow:Speed>
      <ow:Location>BRADENTON BEACH</ow:Location>
      <ow:County>MANATEE</ow:County>
      <ow:State>FL</ow:State>
      <ow:Lat>2746</ow:Lat>
      <ow:Long>8270</ow:Long>
      <ow:Comments xml:lang="en-US" >
        WINDS 55 WITH GUSTS TO 65. ROOF TORN OFF BOAT HOUSE. REPORTED
        BY STORM SPOTTER. (TBW)
      </ow:Comments>
    </ow:WindReport>
  </s12:Body>
</s12:Envelope>

Among other things, this supports the use of multiple tags in a single 
subscription by providing the Event Sink with the tag information at 
Notification time.

[1] 
http://lists.w3.org/Archives/Public/public-ws-resource-access/2009Jul/0093.html

- gp

Received on Friday, 31 July 2009 20:46:33 UTC