<?xml version="1.0"?>
<?xml-stylesheet type='text/xsl'
  href='rfc2629.xslt' ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
  <!ENTITY rfc2119 PUBLIC '' 
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>  
  <!ENTITY rfc5222 PUBLIC '' 
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5222.xml'>
        
    ]>
    
<?rfc toc="yes"?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="no" ?>

<rfc category="std" ipr="trust200902" docName="draft-marshall-ecrit-similar-location-03">

<front>

<title abbrev="Returned Location Extensions to LoST">A LoST extension to support return of complete and similar location info</title>
    <author initials="R." surname="Marshall" fullname="Roger Marshall" >
      <organization abbrev="TCS">TeleCommunication Systems, Inc.</organization>
      <address>
        <postal>
          <street>2401 Elliott Avenue</street>
          <street>2nd Floor</street>
          <city>Seattle</city>
          <region>WA</region>
          <code>98121</code>
          <country>US</country>
        </postal>
        <phone>+1 206 792 2424</phone>
        <email>rmarshall@telecomsys.com</email>
        <uri>http://www.telecomsys.com</uri>
      </address>
    </author> 
    <author initials="J." surname="Martin" fullname="Jeff Martin" >
      <organization abbrev="TCS">TeleCommunication Systems, Inc.</organization>
      <address>
        <postal>
          <street>2401 Elliott Avenue</street>
          <street>2nd Floor</street>
          <city>Seattle</city>
          <region>WA</region>
          <code>98121</code>
          <country>US</country>
        </postal>
        <phone>+1 206 792 2584</phone>
        <email>jmartin@telecomsys.com</email>
        <uri>http://www.telecomsys.com</uri>
      </address>
    </author>
    <author initials="B." surname="Rosen" fullname="Brian Rosen" >
      <organization abbrev="">Neustar</organization>
      <address>
        <postal>
          <street>470 Conrad Dr</street>
          <city>Mars</city>
          <region>PA</region>
          <code>16046</code>
          <country>US</country>
        </postal>
        <phone></phone>
        <email>br@brianrosen.net</email>
        <uri></uri>
      </address>
    </author>
    
<date year="2014"/>
<area>RAI</area>
<workgroup>ECRIT</workgroup>
<keyword>Internet-Draft</keyword>
<keyword></keyword>
<keyword>complete similar civic location lost extension</keyword>

<note title="Abstract">

<t>This document introduces a new way to provide returned location information 
in LoST responses that is either of a completed or similar form to the original 
input civic location, based on whether a valid or invalid location is returned  
within the findServiceResponse message.  This document defines a new 
extension to the findServiceResponse message within the LoST protocol 
[RFC5222] that enables the LoST protocol to return a completed civic location 
element set for a valid response, and one or more suggested 
sets of civic location information for invalid LoST responses.  These two types 
of civic addresses are referred to as either "complete" or "similar" locations, 
and are included as compilation of ca type xml elements within the 
existing response message structure.
</t>

</note>

</front>
<middle>

<section title="Introduction">

<t>The LoST protcol [RFC5222] supports the validation of civic location information 
as input, by providing a set of validation result status indicators.  The 
current usefullness of the supported xml elements, "valid", "invalid", and "unchecked", is 
limited, because while they each provide an indication of validity for any one 
element as a part of the whole address, the mechanism is insufficient in providing 
either the complete set of address elements that the LoST server contains, or of 
providing alternate suggestions (hints) as to which civic address is intended.</t>

<t>Whether the input civic location is valid and missing information, or invalid 
due to missing or wrong information during input, this document provides a 
mechanism to return a complete set of location information for those valid or invalid cases.</t>

<t>This enhancement to the validation feature within LoST is required in order to 
ensure a high level of address matching, to overcome user and system input errors, 
and to support the usefulness of location-based systems in general.
</t>

<t>The structure of this document includes terminology, 
<xref target="terminology"/>, followed by a discussion of the basic elements 
involved in location validation.  These use of these elements, by way of 
example, is discussed in an overview section, <xref target="overview"/>, 
with accompanying rationale, and a brief discussion of the impacts to LoST, 
and its current schema.</t>

</section>


<section anchor="terminology" title="Terminology">

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL 
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and 
"OPTIONAL" in this document are to be interpreted as described in 
<xref target="RFC2119">RFC 2119</xref>, with the important 
qualification that, unless otherwise stated, these terms apply to the 
design of the Location Configuration Protocol and the Location 
Dereferencing Protocol, not its implementation or application.</t>
      
<t>The following terms are defined in this document:</t>

<t><list style="hanging">

<t hangText="Address:"> The term Address is used interchangeably 
with the concept of Civic Location.</t>

<t hangText="Invalid:"> The result of the attempt to match an 
individual input data as part of a larger set of data that has 
already been successfully matched.</t>

<t hangText="Invalid Civic Element:"> An unmatched result of an 
individual civic location element as part of a broader set of 
elements that make up a civic location.</t>

<t hangText="Invalid Civic Location:"> An unmatched result of an 
input civic location, when taken as a whole, based on one or more 
individual unmatched civic address elements.</t>

<t hangText="Complete Location:"> An expanded civic location that 
includes additional address elements in addition to the existing 
validated civic elements provided.</t>

<t hangText="Similar Location:"> A suggested civic location that 
is comparatively close to the civic location which was input, but 
which had one or more invalid element.</t>

<t hangText="Returned Location Information:"> A set of standard 
civic location elements returned in a LoST response.</t>


</list></t>

</section>
<section anchor="overview" title="Overview of Returned Location Information">

<t>This document describes an extension to LoST [RFC5222], to allow additional 
location information to be returned in a findServiceResponse for two 
different use cases.
</t>

<t>When a LoST server is asked to validate a location, its goal is to take the set of elements in the location information in the request, and find a unique location in its database that matches the information in the request.  Uniqueness may not require values for all possible elements in the civic address that the database may hold.  Further, the input location information may not represent the form of location the users of the LoST service prefer to have.  As an example, there are LoST elements that could be used to define a postal location, suitable for delivery mail as well as a municipal location suitable for responding to an emergency call.  While the LoST server may be able to determine the location from the postal elements provided, the emergency services would prefer that the municipal location be used for any subsequent emergency call.  Since validation is often performed well in advance of an emergency call, if the LoST server could return the preferred form of location (or more properly, the municipal elements in addition to the postal elements), those elements could be stored in a LIS and used in a subsequent emergence call. </t>
<t>Since a LoST server often contains more data than what is included 
within a findService request, it is expected that this additional location 
information could be returned within response messages that may be both valid 
and invalid.   
For valid responses, where a LoST server contains additional location information 
relating to that civic address, the findServiceResponse message can return 
additional location information along with the original validated elements in 
order to form a complete civic location.
</t>

<t>On the other hand, for an invalid LoST response that contains address elements 
returned with one or more of them marked as invalid, and constituting an invalid 
location, this document introduces the idea of reusing this same mechanism, but 
for a different purpose - to supply similar location information – again, 
information that is contained within the LoST server, but is provided as a complete 
“similar” civic location put forward as a suggested alternative address that is 
also a valid location.
</t>

<t>In valid location responses, when a LoST server 
returns a response to a findService request that contains a set of CAtype elements 
considered valid, the location information in the findServiceResponse is extended 
to include additional location information specific for that location.  As an example, 
the query may contain a HNO (house number), RD (road name) and A3 (city) but may not 
contain A1, A2, PC (Postal Code) CAtypes.  The RD and PC elements may be sufficient 
to locate the address specified in the request and thus be considered valid.  Yet, 
downstream entities may find it helpful to have the additional A1, A2, and PC location 
elements that exist, and so the mechanism described here supports their inclusion.  
Since [RFC5222] currently does not have a way for this additional location information 
to be returned in the findServiceResponse, this document extends RFC5222 so that it 
can include a completeLocation element within the findServiceResponse message, representing 
a “complete” civic location.
</t>

<t>input address: 
6000 15th Ave NW
Seattle
</t>

<t>completed address: 
6000 15th Ave NW
Seattle, WA 98105 US
</t>

<t>When invalid location responses are received, the same mechanism works as follows: 
when a LoST server returns a response to a findService request that contains a set of 
CAtype elements with one or more that are tagged as invalid, the location information in 
the findServiceResponse is extended to include additional location information specific 
for that location.  Differing results in the same data used in the above example, where 
the RD and PC elements are not sufficient to locate a unique address leads to an “invalid” 
result.  This is the case, despite the fact that the LoST server typically contains 
additional location elements which could have resulted in a uniquely identifiable location 
if additional data had been supplied in the query.  Since [RFC5222] currently does not have 
a way for this additional location information to be returned in the findServiceResponse, 
this document extends RFC5222 so that it can include one or more similarLocation elements within 
the findServiceResponse message representing “similar” civic locations.  
</t>

<t>To show this, suppose that a similar address as above is inserted within a Lost 
findService request: 
</t>

<t>input address:
6000 15th Ave 
Seattle, WA. 
</t>

<t>Different from the above case, this time we make the assumption that the address is deemed 
"invalid" by the LoST server because there is no plain "15th Ave" in the city of Seattle with 
a house number that matches 6000.  However there are two addresses within the address dataset 
that are "similar", when all parts of the address are taken as a whole.  These similar addresses 
that could be suggested to the user are as follows:
</t>

<t>similar address #1: 
6000 15th Ave NW 
Seattle, WA 98107
</t>

<t>similar address #2: 
6000 15th Ave NE 
Seattle, WA 98105
</t>

<t>This document proposes to include the above similar addresses as 
civicAddress elements in the response to locationValidation.  The next 
section shows examples of the LoST request and response xml message 
fragments for the above valid and invalid scenarios, returning the 
complete or similar addresses, respectively:
</t>

</section>
<section anchor="rli" title="Returned Location Information">

<t>The LoST server knows the data that is available internally, and can 
determine which additional elements can be provided either as part of a 
complete civic location (CCL) or a similar civic location (SCL).  The 
inclusion of either CCL or SCL is not triggered by any message parameter, 
but is triggered based on whether the returned location information is 
valid or invalid.  It is not turned on or off, but is implementation 
specific.
</t>


</section>
<section anchor="example_valid" title="Complete Location returned for Valid response">

<t>
Based on the example input request, returned location information is provided 
in a findServiceResponse message when the original input address is considered 
valid, but is missing some additional data that the LoST server has.
</t>

<figure>
<artwork>

   &lt;!-- =============================================== --&gt;


   &lt;findService xmlns="urn:ietf:params:xml:ns:lost1"
     validateLocation="true"&gt;

     &lt;location id="587cd3880" profile="civic"&gt;
       &lt;civicAddress
         xmlns="urn:ietf:params:mxl:ns:pidf:geopriv10:civicAddr"&gt;
 
         &lt;A3&gt;Seattle&lt;/A3&gt;
         &lt;A6&gt;15th&lt;/A6&gt;
         &lt;STS&gt;Ave&lt;/STS&gt;
         &lt;POD&gt;NW&lt;/POD&gt;
         &lt;HNO&gt;6000&lt;/HNO&gt;

       &lt;/civicAddress&gt;
     &lt;/location&gt;

     &lt;service&gt;urn:service:sos&lt;/service&gt;

   &lt;/findService&gt;


   &lt;!-- =============================================== --&gt;


   &lt;findServiceResponse &gt;
     xmlns="urn:ietf:params:xml:ns:lost1" 
     xmlns:rli="urn:ietf:params:xml:ns:lost-rli1"&gt;
     xmlns:ca="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"&gt;

     &lt;mapping
       expires="NO-CACHE"
       lastUpdated="2006-11-01T01:00:00Z"
       source="authoritative.example"
       sourceId="8799e346000098aa3e"&gt;

       &lt;displayName xml:lang="en"&gt;Seattle 911&lt;/displayName&gt;
       &lt;service&gt;urn:service:sos&lt;/service&gt;
       &lt;uri&gt;sip:seattle-911@example.com&lt;/uri&gt;
       &lt;serviceNumber&gt;911&lt;/serviceNumber&gt;

     &lt;/mapping&gt;

     &lt;locationValidation

       &lt;valid&gt;ca:A3 ca:A6 ca:STS ca:POD ca:HNO&lt;/valid&gt;
       &lt;invalid&gt;&lt;/invalid&gt;
       &lt;unchecked&gt;&lt;/unchecked&gt;

       &lt;rli:completeLocation&gt;  &lt;!-- completed address --&gt;
         &lt;ca:civicAddress&gt;
           &lt;ca:country&gt;US&lt;/ca:country&gt;
           &lt;ca:A1&gt;WA&lt;/ca:A1&gt;
           &lt;ca:A3&gt;SEATTLE&lt;/ca:A3&gt;
           &lt;ca:RD&gt;15TH&lt;/ca:RD&gt;
           &lt;ca:STS&gt;AVE&lt;/ca:STS&gt;
           &lt;ca:POD&gt;NW&lt;/ca:POD&gt;
           &lt;ca:HNO&gt;6000&lt;/ca:HNO&gt;
           &lt;ca:PC&gt;98106&lt;/ca:PC&gt;
           &lt;ca:PCN&gt;SEATTLE&lt;/ca:PCN&gt;
         &lt;/ca:civicAddress&gt;

     &lt;/rli:completeLocation&gt;

   &lt;/locationValidation&gt;

     &lt;path&gt;
       &lt;via source="authoritative.example"/&gt;
     &lt;/path&gt;

     &lt;locationUsed id="587cd3880"/&gt;

   &lt;/findServiceResponse&gt;


   &lt;!-- =============================================== --&gt;



</artwork>
</figure>

</section>
<section anchor="example_invalid" title="Similar Location returned for Invalid Response">

<t>
The following example shows returned location information provided 
in a findServiceResponse message when the original input address is considered 
invalid, because (in this case) of missing data that the LoST server needs to 
provide a unique mapping.
</t>

<figure>
<artwork>

&lt;!-- =============================================== --&gt;


   &lt;findService xmlns="urn:ietf:params:xml:ns:lost1"
     validateLocation="true"&gt;

     &lt;location id="587cd3880" profile="civic"&gt;
       &lt;civicAddress
         xmlns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"&gt;

         &lt;country&gt;US&lt;/country&gt;
         &lt;A1&gt;WA&lt;/A1&gt;
         &lt;A3&gt;Seattle&lt;/A3&gt;
         &lt;A6&gt;15th Ave&lt;/A6&gt;
         &lt;HNO&gt;6000&lt;/HNO&gt;

       &lt;/civicAddress&gt;
     &lt;/location&gt;

     &lt;service&gt;urn:service:sos&lt;/service&gt;

   &lt;/findService&gt;

   &lt;!-- =============================================== --&gt;


   &lt;findServiceResponse&gt;
     xmlns="urn:ietf:params:xml:ns:lost1" 
     xmlns:rli="urn:ietf:params:xml:ns:lost-rli1"&gt;
     xmlns:ca="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"&gt;

     &lt;mapping
       expires="NO-CACHE"
       lastUpdated="2006-11-01T01:00:00Z"
       source="authoritative.example"
       sourceId="8799e346000098aa3e"&gt;

       &lt;displayName xml:lang="en"&gt;Seattle 911&lt;/displayName&gt;
       &lt;service&gt;urn:service:sos&lt;/service&gt;
       &lt;uri&gt;sip:seattle-911@example.com&lt;/uri&gt;
       &lt;serviceNumber&gt;911&lt;/serviceNumber&gt;

     &lt;/mapping&gt;

     &lt;locationValidation

       &lt;valid&gt;ca:country ca:A1 ca:A3&lt;/valid&gt;
       &lt;invalid&gt;ca:A6&lt;/invalid&gt;
       &lt;unchecked&gt;ca:HNO&lt;/unchecked&gt;

       &lt;rli:similarLocation&gt;  &lt;!-- similar location info --&gt;
         &lt;ca:civicAddress&gt;  &lt;!-- similar address #1 --&gt;
           &lt;ca:country&gt;US&lt;/ca:country&gt;
           &lt;ca:A1&gt;WA&lt;/ca:A1&gt;
           &lt;ca:A3&gt;SEATTLE&lt;/ca:A3&gt;
           &lt;ca:RD&gt;15TH&lt;/ca:RD&gt;
           &lt;ca:STS&gt;AVE&lt;/ca:STS&gt;
           &lt;ca:POD&gt;NW&lt;/ca:POD&gt;
           &lt;ca:HNO&gt;6000&lt;/ca:HNO&gt;
           &lt;ca:PC&gt;98106&lt;/ca:PC&gt;
           &lt;ca:PCN&gt;SEATTLE&lt;/ca:PCN&gt;
         &lt;/ca:civicAddress&gt;

         &lt;ca:civicAddress&gt;  &lt;!-- similar address #2 --&gt;
           &lt;ca:country&gt;US&lt;/ca:country&gt;
           &lt;ca:A1&gt;WA&lt;/ca:A1&gt;
           &lt;ca:A3&gt;SEATTLE&lt;/ca:A3&gt;
           &lt;ca:RD&gt;15TH&lt;/ca:RD&gt;
           &lt;ca:STS&gt;AVE&lt;/ca:STS&gt;
           &lt;ca:POD&gt;NE&lt;/ca:POD&gt;
           &lt;ca:HNO&gt;6000&lt;/ca:HNO&gt;
           &lt;ca:PC&gt;98105&lt;/ca:PC&gt;
           &lt;ca:PCN&gt;SEATTLE&lt;/ca:PCN&gt;
         &lt;/ca:civicAddress&gt;
     &lt;/rli:similarLocation&gt;

   &lt;/locationValidation&gt;

     &lt;path&gt;
       &lt;via source="authoritative.example"/&gt;
     &lt;/path&gt;

     &lt;locationUsed id="587cd3880"/&gt;

   &lt;/findServiceResponse&gt;


   &lt;!-- =============================================== --&gt;


</artwork>
</figure>


</section>
<section anchor="relaxNG_schema" title="Relax NG schema">


<t>This section provides the Relax NG schema of LoST extensions in the 
compact form.  The verbose form is included in a later section [TBA].
</t>

<figure>
<artwork>

namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
default namespace ns1 = "urn:ietf:params:xml:ns:lost-similarLocation1"

##
##       Extension to LoST to support returned location information
##
start =
  returnedLocation

div {
  returnedLocationResponse =
    element returnedLocationResponse {
      completeLocation, similarLocation, extensionPoint
    }
}



##
##       completeLocation
##
div {
  completeLocation =
    element location {
      attribute id { xsd:token },
      locationInformation
    }+
}

##
##       similarLocation
##
div {
  similarLocation =
    element location {
      attribute id { xsd:token },
      locationInformation
    }+
}
##
##       Location Information
##
div {
  locationInformation =
    extensionPoint+,
    attribute profile { xsd:NMTOKEN }?
}

##
##       Patterns for inclusion of elements from schemas in
##       other namespaces.
##
div {

  ##
  ##         Any element not in the LoST namespace.
  ##
  notLost = element * - (ns1:* | ns1:*) { anyElement }

  ##
  ##         A wildcard pattern for including any element
  ##         from any other namespace.
  ##
  anyElement =
    (element * { anyElement }
     | attribute * { text }
     | text)*

  ##
  ##         A point where future extensions
  ##         (elements from other namespaces)
  ##         can be added.
  ##
  extensionPoint = notRLI*
}



</artwork>
</figure>

</section>
<section anchor="security" title="Security Considerations">

<t>Whether the input to the LoST server is valid or invalid, the LoST 
server ultimately determines what it considers to be valid.  In the 
case where the input location is valid, the requester still may not 
actually understand where that location is.  For valid location use 
cases, this extension returns more location information than the 
requester may have had which, in turn, may reveal more about the 
location.  While this may be very desirable when, for example, supporting 
an emergency call, it may not be as desirable for other services.  
The LoST server implementation should consider the risk of releasing 
more detail verses the value in doing so.  Generally, we do not believe 
this is a significant problem as the requester must have enough location 
information to be considered valid, which in most cases is enough to 
uniquely locate the address.  Providing more CAtypes generally 
doesn't actually reveal anything more.
</t>

</section>
<section anchor="iana" title="IANA Considerations">

    <section title="Relax NG Schema Registration">
    <figure><artwork><![CDATA[
   URI:  urn:ietf:params:xml:schema:lost-similarLocation1

   Registrant Contact:  IETF ECRIT Working Group, Brian Rosen
      (br@brianrosen.net).

   Relax NG Schema: The Relax NG schema to be registered is contained
      in Section 7.  Its first line is

   default namespace = "urn:ietf:params:xml:ns:lost-similarLocation1

   and its last line is

   }
]]></artwork></figure></section>

<section title="LoST Namespace Registration">
   <figure><artwork><![CDATA[


   URI:  urn:ietf:params:xml:ns:lost-similarLocation1

   Registrant Contact:  IETF ECRIT Working Group, Brian Rosen
      (br@brianrosen.net).

   XML:

BEGIN
<?xml version="2.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
  "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type"
        content="text/html;charset=iso-8859-1"/>
  <title>LoST Planned Change Namespace</title>
</head>
<body>
  <h1>Namespace for LoST Similar Location extension</h1>
  <h2>urn:ietf:params:xml:ns:lost-similarLocation1</h2>
<p>See <a href="http://www.rfc-editor.org/rfc/rfc????.txt">
   RFC????</a>.</p>
</body>
</html>
END
]]></artwork></figure>
   </section>


</section>

<!-- **************************************************************************************** -->

<section title="Acknowledgements">

<t></t>

</section>

<!-- **************************************************************************************** -->

</middle>
<back>
<references title="Normative References">
&rfc2119;
</references>

<references title="Informative References">
&rfc5222;
</references>
</back>
</rfc>
