Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

preamble

On this page we, (Paul, Val, Sam) discuss the form of the address change messages.

The latest proposed revision is "example 11".
This is mostly implemented with a few minor changes proposed (follow links - see TODOs).
Here is a sample xml file.

questions/answers

Q1
From DBI's perspective, we are either going to be inserting addresses or updating addresses with your data. (Addresses are never deleted but retired on our end and yours I believe). How will we tell the difference if it is an address update or a brand new address? via an XML tag?

A1
Agreed. See example 3Q2

Jump ahead to example 3 to see a proposed solution.
We will publish every insert and update.
A retire is a special kind of update.
While addresses can be retired, they cannot be deleted.

Q2
The first example you give below does not have an APN (what DBI refers to as block/lot). DBI cannot make use of any address without an APN (block/lot). These should be excluded until they are complete.

A2.1
This part might be interesting.
MAD addresses can be associated with APNs or not.
By and large I think they are, but read more below. Please read this entire page to get a sense of what we need to do.
In particular, please look at example 3 as well as example 5 along with the questions posed at the end of the example.
MAD addresses can be associated with APNs or not.
By and large I think they are.

A2.2
A MAD address is mostly immutable (if that make sense).
You can retire it, and change it's status, and change it's location.
But you cannot make change 3 things on an address

  • retire
  • status (provisional, offical...)
  • location
    You may not change anything else.
    Once the APNs are set, you cannot change them.
    If you need to change the

...

  • associated APNs, you do a retire/replace.

A2.3
We can use APN or BlkLot for this XML - your choice - most municipalities use APN.

Q3
2655 HYDE ST below has a bunch of APN's associated with it. For convenience, we would like each APN sent to us as a separate complete <address> .

A3
No problem.
See corrected examples below Take a look at example 3 which is fairly close to what I think we want.

Q4
Also, the 2655 Hyde is broken up into units(<number>) (318), but there doesn't seem to be a connection between the unit(<number>) and the APN in the data below, but perhaps I am misreading it.

A4
My apologies, I had it wrong.
See corrected examples below.

We will publish every insert and update.
A retire is a special kind of update.
While addresses can be retired, they cannot be deleted.

First we discuss the XML message layout.

Example 1

A simple example to get us started.
This example is MAD centric.
I suspect that we'll end up with something a alot different at the end of this discussion.
Here is a single family dwelling with one owner:

Code Block

    <address>
        <number>14</number>
        <street>MAPLE ST</street>
        <unit>
            <base>true</base>
            <number></number>
            <disposition>official</disposition>
            <create_tms>2010-07-02 08:18:50.937000</create_tms>
            <retire_tms>None</retire_tms>
            <apns>
                <apn>1234001</apn>
            </apns>
            <action>insert</action>
        </unit>
    </address>

The "action" tag domain is

Code Block

    insert
    update
    retire

I think this addresses Q1.

The "base" tag domain is:

Code Block

    true
    false

This is a MAD artifact - DBI probably won't want it.
But let me explain the purpose.
A MAD "address" is represented using the concept of a base address and a unit address.
A base address always has one corresponding unit address.
There may be additional unit addresses or not.
If the base tag is marked true, then this unit information is directly associated with the base address.
If the base tag is marked false, then this unit information is not directly associated with the base address.

Example 2

Now in the case of an apartment bldg, say
14 MAPLE ST,
apartments a & b
MAD represents the world this way:

Code Block

    <address>
        <number>14</number>
        <street>MAPLE ST</street>
        <unit>
            <base>true</base>
            <number></number>
            ...
            <apns>
                <apn>1234001</apn>
            </apns>
            <action>insert</action>
        </unit>
        <unit>
            <base>false</base>
            <number>a</number>
            ...
            <apns></apns>
            <action>insert</action>
        </unit>
        <unit>
            <base>false</base>
            <number>b</number>
            ...
            <apns></apns>
            <action>insert</action>
        </unit>
    </address>

There is no ownership at the unit level.
The owner is specified at the base address level.

...

What I think we want an instead of the example 2 (apt building) is something like this:

message 1

Code Block

    <address_change>
        <action>insert</action>
        <address>
            <number>14</number>
            <street>MAPLE ST</street>
            <unit_number>a</unit_number>
            ...
            <apn>1234001</apn>
        </address>
    </address_change>

message 2

Code Block

    <address_change>
        <action>insert</action>
        <address>
            <number>14</number>
            <street>MAPLE ST</street>
            <unit_number>b</unit_number>
            ...
            <apn>1234001</apn>
        </address>
    </address_change>

Here, we assume that if a unit does not have an APN, we shall use the APN or APNs assigned at the base level.
Val - Please confirm that this is correct.

Example 4

And reworking example 1 (single family) to fit the model shown in example 3, we have this:

Code Block

    <address_change>
        <action>insert</action>
        <address>
            <number>14</number>
            <street>MAPLE ST</street>
            <unit_number></unit_number>
            ...
            <apn>1234001</apn>
        </address>
    </address_change>

Example 5

Let's move on to a time share, which can be seen at 2655 Hyde St.
In a time share we have a single unit with multiple owners.

message 1

Code Block

    <address_change>
        <action>insert</action>
        <address>
            <number>2655</number>
            <street>HYDE ST</street>
            <unit_number>1</unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <apn>0026T065A</apn>
        </address>
    </address_change>

message 2

Code Block

    <address_change>
        <action>insert</action>
        <address>
            <number>2655</number>
            <street>HYDE ST</street>
            <unit_number>1</unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <apn>0026T066A</apn>
        </address>
    </address_change>

The only difference here is that the APN is different in message 2.
This much is straight forward.
If a unit address changes, and there are APNs assigned to the unit,
we have one address change message for each of these APNs.
But at 2655 Hyde, there are lots of APNs assigned to the base address.
Val, please take a look at this address and tell me if you think we need to
do anything special here.
http://174.37.80.164/

Example 6

Here is a condo or tennants in common example, where each unit has a single owner, and there
is a "common area" owned by the owners association.

message 1 (base unit or common area, APN is assigned)

Code Block

    <address_change>
        <action>insert</action>
        <address>
            <number>100</number>
            <street>MAIN ST</street>
            <unit_number></unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <apn>12340001</apn>
        </address>
    </address_change>

message 2 (condo unit)

Code Block

    <address_change>
        <action>insert</action>
        <address>
            <number>100</number>
            <street>MAIN ST</street>
            <unit_number>1</unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <apn>1234002</apn>
        </address>
    </address_change>

message 3 (condo unit)

Code Block

    <address_change>
        <action>insert</action>
        <address>
            <number>100</number>
            <street>MAIN ST</street>
            <unit_number>2</unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <apn>1234003</apn>
        </address>
    </address_change>

========================= original email ================================

MAD - address publishing

Val,
Hema,

I think I have a good start on the address publisher.
I am producing the xml you see below.
Of course I will have to work on the format of the xml to fit your requirements.

So from you, I will need the following:
1) a complete example of the xml you would like to receive
2) target web server details: host, port, user, password, path

Regards,
Paul

<address>
<number>1</number>
<street>S VAN NESS AVE</street>

<unit>
<number>400</number>
<disposition>provisional</disposition>
<create_tms>2010-07-02 08:18:50.937000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>221</number>
<street>MAIN ST</street>

<unit>
<number>FL3</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>221</number>
<street>MAIN ST</street>

<unit>
<number>1500</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>221</number>
<street>MAIN ST</street>

<unit>
<number>48</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>490</number>
<street>POST ST</street>

<unit>
<number>1550</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>2655</number>
<street>HYDE ST</street>

<unit>
<number>308</number>
<disposition>provisional</disposition>
<create_tms>2010-07-02 14:11:22.843000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>
<apn>0026028</apn>

<apn>0026T001A</apn>

<apn>0026T001B</apn>

<apn>0026T002A</apn>

<apn>0026T002B</apn>

<apn>0026T003A</apn>

<apn>0026T003B</apn>

<apn>0026T004A</apn>

<apn>0026T004B</apn>

<apn>0026T005A</apn>

<apn>0026T005B</apn>

<apn>0026T006A</apn>

<apn>0026T006B</apn>

<apn>0026T007A</apn>

<apn>0026T007B</apn>

<apn>0026T008A</apn>

<apn>0026T008B</apn>

<apn>0026T009A</apn>

<apn>0026T009B</apn>

<apn>0026T010A</apn>

<apn>0026T010B</apn>

<apn>0026T011A</apn>

<apn>0026T011B</apn>

<apn>0026T012A</apn>

<apn>0026T012B</apn>

<apn>0026T013A</apn>

<apn>0026T013B</apn>

<apn>0026T014A</apn>

<apn>0026T014B</apn>

<apn>0026T015A</apn>

<apn>0026T015B</apn>

<apn>0026T016A</apn>

<apn>0026T016B</apn>

<apn>0026T017A</apn>

<apn>0026T017B</apn>

<apn>0026T018A</apn>

<apn>0026T018B</apn>

<apn>0026T019A</apn>

<apn>0026T019B</apn>

<apn>0026T020A</apn>

<apn>0026T020B</apn>

<apn>0026T021A</apn>

<apn>0026T021B</apn>

<apn>0026T022A</apn>

<apn>0026T022B</apn>

<apn>0026T023A</apn>

<apn>0026T023B</apn>

<apn>0026T024A</apn>

<apn>0026T024B</apn>

<apn>0026T025A</apn>

<apn>0026T025B</apn>

<apn>0026T026A</apn>

<apn>0026T026B</apn>

<apn>0026T027A</apn>

<apn>0026T027B</apn>

<apn>0026T028A</apn>

<apn>0026T028B</apn>

<apn>0026T029A</apn>

<apn>0026T029B</apn>

<apn>0026T030A</apn>

<apn>0026T030B</apn>

<apn>0026T031A</apn>

<apn>0026T031B</apn>

<apn>0026T032A</apn>

<apn>0026T032B</apn>

<apn>0026T033A</apn>

<apn>0026T033B</apn>

<apn>0026T034A</apn>

<apn>0026T034B</apn>

<apn>0026T035A</apn>

<apn>0026T035B</apn>

<apn>0026T036A</apn>

<apn>0026T036B</apn>

<apn>0026T037A</apn>

<apn>0026T037B</apn>

<apn>0026T038A</apn>

<apn>0026T038B</apn>

<apn>0026T039A</apn>

<apn>0026T039B</apn>

<apn>0026T040A</apn>

<apn>0026T040B</apn>

<apn>0026T041A</apn>

<apn>0026T041B</apn>

<apn>0026T042A</apn>

<apn>0026T042B</apn>

<apn>0026T043A</apn>

<apn>0026T043B</apn>

<apn>0026T044A</apn>

<apn>0026T044B</apn>

<apn>0026T045A</apn>

<apn>0026T045B</apn>

<apn>0026T046A</apn>

<apn>0026T046B</apn>

<apn>0026T047A</apn>

<apn>0026T047B</apn>

<apn>0026T048A</apn>

<apn>0026T048B</apn>

<apn>0026T049A</apn>

<apn>0026T049B</apn>

<apn>0026T050A</apn>

<apn>0026T050B</apn>

<apn>0026T051A</apn>

<apn>0026T051B</apn>

<apn>0026T052A</apn>

<apn>0026T052B</apn>

<apn>0026T053A</apn>

<apn>0026T053B</apn>

<apn>0026T054A</apn>

<apn>0026T054B</apn>

<apn>0026T055A</apn>

<apn>0026T055B</apn>

<apn>0026T056A</apn>

<apn>0026T056B</apn>

<apn>0026T057A</apn>

<apn>0026T057B</apn>

<apn>0026T058A</apn>

<apn>0026T058B</apn>

<apn>0026T059A</apn>

<apn>0026T059B</apn>

<apn>0026T060A</apn>

<apn>0026T060B</apn>

<apn>0026T061A</apn>

<apn>0026T061B</apn>

<apn>0026T062A</apn>

<apn>0026T062B</apn>

<apn>0026T063A</apn>

<apn>0026T063B</apn>

<apn>0026T064A</apn>

<apn>0026T064B</apn>

<apn>0026T065A</apn>

<apn>0026T065B</apn>

</apns>
</address>

sleeping for 5 seconds
---- 2010-07-02 14:50:21.921000 ----
<address>

<number>1</number>
<street>S VAN NESS AVE</street>
<unit>
<number>400</number>
<disposition>provisional</disposition>
<create_tms>2010-07-02 08:18:50.937000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>221</number>
<street>MAIN ST</street>

<unit>
<number>FL3</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>221</number>
<street>MAIN ST</street>

<unit>
<number>1500</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>221</number>
<street>MAIN ST</street>

<unit>
<number>48</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>490</number>
<street>POST ST</street>

<unit>
<number>1550</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>2655</number>
<street>HYDE ST</street>

<unit>
<number>308</number>
<disposition>provisional</disposition>
<create_tms>2010-07-02 14:11:22.843000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>
<apn>0026028</apn>

<apn>0026T001A</apn>

<apn>0026T001B</apn>

<apn>0026T002A</apn>

<apn>0026T002B</apn>

<apn>0026T003A</apn>

<apn>0026T003B</apn>

<apn>0026T004A</apn>

<apn>0026T004B</apn>

<apn>0026T005A</apn>

<apn>0026T005B</apn>

<apn>0026T006A</apn>

<apn>0026T006B</apn>

<apn>0026T007A</apn>

<apn>0026T007B</apn>

<apn>0026T008A</apn>

<apn>0026T008B</apn>

<apn>0026T009A</apn>

<apn>0026T009B</apn>

<apn>0026T010A</apn>

<apn>0026T010B</apn>

<apn>0026T011A</apn>

<apn>0026T011B</apn>

<apn>0026T012A</apn>

<apn>0026T012B</apn>

<apn>0026T013A</apn>

<apn>0026T013B</apn>

<apn>0026T014A</apn>

<apn>0026T014B</apn>

<apn>0026T015A</apn>

<apn>0026T015B</apn>

<apn>0026T016A</apn>

<apn>0026T016B</apn>

<apn>0026T017A</apn>

<apn>0026T017B</apn>

<apn>0026T018A</apn>

<apn>0026T018B</apn>

<apn>0026T019A</apn>

<apn>0026T019B</apn>

<apn>0026T020A</apn>

<apn>0026T020B</apn>

<apn>0026T021A</apn>

<apn>0026T021B</apn>

<apn>0026T022A</apn>

<apn>0026T022B</apn>

<apn>0026T023A</apn>

<apn>0026T023B</apn>

<apn>0026T024A</apn>

<apn>0026T024B</apn>

<apn>0026T025A</apn>

<apn>0026T025B</apn>

<apn>0026T026A</apn>

<apn>0026T026B</apn>

<apn>0026T027A</apn>

<apn>0026T027B</apn>

<apn>0026T028A</apn>

<apn>0026T028B</apn>

<apn>0026T029A</apn>

<apn>0026T029B</apn>

<apn>0026T030A</apn>

<apn>0026T030B</apn>

<apn>0026T031A</apn>

<apn>0026T031B</apn>

<apn>0026T032A</apn>

<apn>0026T032B</apn>

<apn>0026T033A</apn>

<apn>0026T033B</apn>

<apn>0026T034A</apn>

<apn>0026T034B</apn>

<apn>0026T035A</apn>

<apn>0026T035B</apn>

<apn>0026T036A</apn>

<apn>0026T036B</apn>

<apn>0026T037A</apn>

<apn>0026T037B</apn>

<apn>0026T038A</apn>

<apn>0026T038B</apn>

<apn>0026T039A</apn>

<apn>0026T039B</apn>

<apn>0026T040A</apn>

<apn>0026T040B</apn>

<apn>0026T041A</apn>

<apn>0026T041B</apn>

<apn>0026T042A</apn>

<apn>0026T042B</apn>

<apn>0026T043A</apn>

<apn>0026T043B</apn>

<apn>0026T044A</apn>

<apn>0026T044B</apn>

<apn>0026T045A</apn>

<apn>0026T045B</apn>

<apn>0026T046A</apn>

<apn>0026T046B</apn>

<apn>0026T047A</apn>

<apn>0026T047B</apn>

<apn>0026T048A</apn>

<apn>0026T048B</apn>

<apn>0026T049A</apn>

<apn>0026T049B</apn>

<apn>0026T050A</apn>

<apn>0026T050B</apn>

<apn>0026T051A</apn>

<apn>0026T051B</apn>

<apn>0026T052A</apn>

<apn>0026T052B</apn>

<apn>0026T053A</apn>

<apn>0026T053B</apn>

<apn>0026T054A</apn>

<apn>0026T054B</apn>

<apn>0026T055A</apn>

<apn>0026T055B</apn>

<apn>0026T056A</apn>

<apn>0026T056B</apn>

<apn>0026T057A</apn>

<apn>0026T057B</apn>

<apn>0026T058A</apn>

<apn>0026T058B</apn>

<apn>0026T059A</apn>

<apn>0026T059B</apn>

<apn>0026T060A</apn>

<apn>0026T060B</apn>

<apn>0026T061A</apn>

<apn>0026T061B</apn>

<apn>0026T062A</apn>

<apn>0026T062B</apn>

<apn>0026T063A</apn>

<apn>0026T063B</apn>

<apn>0026T064A</apn>

<apn>0026T064B</apn>

<apn>0026T065A</apn>

<apn>0026T065B</apn>

</apns>
</address>

sleeping for 5 seconds
---- 2010-07-02 14:50:27.656000 ----
<address>

<number>1</number>
<street>S VAN NESS AVE</street>
<unit>
<number>400</number>
<disposition>provisional</disposition>
<create_tms>2010-07-02 08:18:50.937000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>221</number>
<street>MAIN ST</street>

<unit>
<number>FL3</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>221</number>
<street>MAIN ST</street>

<unit>
<number>1500</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>221</number>
<street>MAIN ST</street>

<unit>
<number>48</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>490</number>
<street>POST ST</street>

<unit>
<number>1550</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>2655</number>
<street>HYDE ST</street>

<unit>
<number>308</number>
<disposition>provisional</disposition>
<create_tms>2010-07-02 14:11:22.843000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>
<apn>0026028</apn>

<apn>0026T001A</apn>

<apn>0026T001B</apn>

<apn>0026T002A</apn>

<apn>0026T002B</apn>

<apn>0026T003A</apn>

<apn>0026T003B</apn>

<apn>0026T004A</apn>

<apn>0026T004B</apn>

<apn>0026T005A</apn>

<apn>0026T005B</apn>

<apn>0026T006A</apn>

<apn>0026T006B</apn>

<apn>0026T007A</apn>

<apn>0026T007B</apn>

<apn>0026T008A</apn>

<apn>0026T008B</apn>

<apn>0026T009A</apn>

<apn>0026T009B</apn>

<apn>0026T010A</apn>

<apn>0026T010B</apn>

<apn>0026T011A</apn>

<apn>0026T011B</apn>

<apn>0026T012A</apn>

<apn>0026T012B</apn>

<apn>0026T013A</apn>

<apn>0026T013B</apn>

<apn>0026T014A</apn>

<apn>0026T014B</apn>

<apn>0026T015A</apn>

<apn>0026T015B</apn>

<apn>0026T016A</apn>

<apn>0026T016B</apn>

<apn>0026T017A</apn>

<apn>0026T017B</apn>

<apn>0026T018A</apn>

<apn>0026T018B</apn>

<apn>0026T019A</apn>

<apn>0026T019B</apn>

<apn>0026T020A</apn>

<apn>0026T020B</apn>

<apn>0026T021A</apn>

<apn>0026T021B</apn>

<apn>0026T022A</apn>

<apn>0026T022B</apn>

<apn>0026T023A</apn>

<apn>0026T023B</apn>

<apn>0026T024A</apn>

<apn>0026T024B</apn>

<apn>0026T025A</apn>

<apn>0026T025B</apn>

<apn>0026T026A</apn>

<apn>0026T026B</apn>

<apn>0026T027A</apn>

<apn>0026T027B</apn>

<apn>0026T028A</apn>

<apn>0026T028B</apn>

<apn>0026T029A</apn>

<apn>0026T029B</apn>

<apn>0026T030A</apn>

<apn>0026T030B</apn>

<apn>0026T031A</apn>

<apn>0026T031B</apn>

<apn>0026T032A</apn>

<apn>0026T032B</apn>

<apn>0026T033A</apn>

<apn>0026T033B</apn>

<apn>0026T034A</apn>

<apn>0026T034B</apn>

<apn>0026T035A</apn>

<apn>0026T035B</apn>

<apn>0026T036A</apn>

<apn>0026T036B</apn>

<apn>0026T037A</apn>

<apn>0026T037B</apn>

<apn>0026T038A</apn>

<apn>0026T038B</apn>

<apn>0026T039A</apn>

<apn>0026T039B</apn>

<apn>0026T040A</apn>

<apn>0026T040B</apn>

<apn>0026T041A</apn>

<apn>0026T041B</apn>

<apn>0026T042A</apn>

<apn>0026T042B</apn>

<apn>0026T043A</apn>

<apn>0026T043B</apn>

<apn>0026T044A</apn>

<apn>0026T044B</apn>

<apn>0026T045A</apn>

<apn>0026T045B</apn>

<apn>0026T046A</apn>

<apn>0026T046B</apn>

<apn>0026T047A</apn>

<apn>0026T047B</apn>

<apn>0026T048A</apn>

<apn>0026T048B</apn>

<apn>0026T049A</apn>

<apn>0026T049B</apn>

<apn>0026T050A</apn>

<apn>0026T050B</apn>

<apn>0026T051A</apn>

<apn>0026T051B</apn>

<apn>0026T052A</apn>

<apn>0026T052B</apn>

<apn>0026T053A</apn>

<apn>0026T053B</apn>

<apn>0026T054A</apn>

<apn>0026T054B</apn>

<apn>0026T055A</apn>

<apn>0026T055B</apn>

<apn>0026T056A</apn>

<apn>0026T056B</apn>

<apn>0026T057A</apn>

<apn>0026T057B</apn>

<apn>0026T058A</apn>

<apn>0026T058B</apn>

<apn>0026T059A</apn>

<apn>0026T059B</apn>

<apn>0026T060A</apn>

<apn>0026T060B</apn>

<apn>0026T061A</apn>

<apn>0026T061B</apn>

<apn>0026T062A</apn>

<apn>0026T062B</apn>

<apn>0026T063A</apn>

<apn>0026T063B</apn>

<apn>0026T064A</apn>

<apn>0026T064B</apn>

<apn>0026T065A</apn>

<apn>0026T065B</apn>

</apns>
</address>

sleeping for 5 seconds
---- 2010-07-02 14:50:33.406000 ----
<address>

<number>1</number>
<street>S VAN NESS AVE</street>
<unit>
<number>400</number>
<disposition>provisional</disposition>
<create_tms>2010-07-02 08:18:50.937000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>221</number>
<street>MAIN ST</street>

<unit>
<number>FL3</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>221</number>
<street>MAIN ST</street>

<unit>
<number>1500</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>221</number>
<street>MAIN ST</street>

<unit>
<number>48</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>490</number>
<street>POST ST</street>

<unit>
<number>1550</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>2655</number>
<street>HYDE ST</street>

<unit>
<number>308</number>
<disposition>provisional</disposition>
<create_tms>2010-07-02 14:11:22.843000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>
<apn>0026028</apn>

<apn>0026T001A</apn>

<apn>0026T001B</apn>

<apn>0026T002A</apn>

<apn>0026T002B</apn>

<apn>0026T003A</apn>

<apn>0026T003B</apn>

<apn>0026T004A</apn>

<apn>0026T004B</apn>

<apn>0026T005A</apn>

<apn>0026T005B</apn>

<apn>0026T006A</apn>

<apn>0026T006B</apn>

<apn>0026T007A</apn>

<apn>0026T007B</apn>

<apn>0026T008A</apn>

<apn>0026T008B</apn>

<apn>0026T009A</apn>

<apn>0026T009B</apn>

<apn>0026T010A</apn>

<apn>0026T010B</apn>

<apn>0026T011A</apn>

<apn>0026T011B</apn>

<apn>0026T012A</apn>

<apn>0026T012B</apn>

<apn>0026T013A</apn>

<apn>0026T013B</apn>

<apn>0026T014A</apn>

<apn>0026T014B</apn>

<apn>0026T015A</apn>

<apn>0026T015B</apn>

<apn>0026T016A</apn>

<apn>0026T016B</apn>

<apn>0026T017A</apn>

<apn>0026T017B</apn>

<apn>0026T018A</apn>

<apn>0026T018B</apn>

<apn>0026T019A</apn>

<apn>0026T019B</apn>

<apn>0026T020A</apn>

<apn>0026T020B</apn>

<apn>0026T021A</apn>

<apn>0026T021B</apn>

<apn>0026T022A</apn>

<apn>0026T022B</apn>

<apn>0026T023A</apn>

<apn>0026T023B</apn>

<apn>0026T024A</apn>

<apn>0026T024B</apn>

<apn>0026T025A</apn>

<apn>0026T025B</apn>

<apn>0026T026A</apn>

<apn>0026T026B</apn>

<apn>0026T027A</apn>

<apn>0026T027B</apn>

<apn>0026T028A</apn>

<apn>0026T028B</apn>

<apn>0026T029A</apn>

<apn>0026T029B</apn>

<apn>0026T030A</apn>

<apn>0026T030B</apn>

<apn>0026T031A</apn>

<apn>0026T031B</apn>

<apn>0026T032A</apn>

<apn>0026T032B</apn>

<apn>0026T033A</apn>

<apn>0026T033B</apn>

<apn>0026T034A</apn>

<apn>0026T034B</apn>

<apn>0026T035A</apn>

<apn>0026T035B</apn>

<apn>0026T036A</apn>

<apn>0026T036B</apn>

<apn>0026T037A</apn>

<apn>0026T037B</apn>

<apn>0026T038A</apn>

<apn>0026T038B</apn>

<apn>0026T039A</apn>

<apn>0026T039B</apn>

<apn>0026T040A</apn>

<apn>0026T040B</apn>

<apn>0026T041A</apn>

<apn>0026T041B</apn>

<apn>0026T042A</apn>

<apn>0026T042B</apn>

<apn>0026T043A</apn>

<apn>0026T043B</apn>

<apn>0026T044A</apn>

<apn>0026T044B</apn>

<apn>0026T045A</apn>

<apn>0026T045B</apn>

<apn>0026T046A</apn>

<apn>0026T046B</apn>

<apn>0026T047A</apn>

<apn>0026T047B</apn>

<apn>0026T048A</apn>

<apn>0026T048B</apn>

<apn>0026T049A</apn>

<apn>0026T049B</apn>

<apn>0026T050A</apn>

<apn>0026T050B</apn>

<apn>0026T051A</apn>

<apn>0026T051B</apn>

<apn>0026T052A</apn>

<apn>0026T052B</apn>

<apn>0026T053A</apn>

<apn>0026T053B</apn>

<apn>0026T054A</apn>

<apn>0026T054B</apn>

<apn>0026T055A</apn>

<apn>0026T055B</apn>

<apn>0026T056A</apn>

<apn>0026T056B</apn>

<apn>0026T057A</apn>

<apn>0026T057B</apn>

<apn>0026T058A</apn>

<apn>0026T058B</apn>

<apn>0026T059A</apn>

<apn>0026T059B</apn>

<apn>0026T060A</apn>

<apn>0026T060B</apn>

<apn>0026T061A</apn>

<apn>0026T061B</apn>

<apn>0026T062A</apn>

<apn>0026T062B</apn>

<apn>0026T063A</apn>

<apn>0026T063B</apn>

<apn>0026T064A</apn>

<apn>0026T064B</apn>

<apn>0026T065A</apn>

<apn>0026T065B</apn>

</apns>
</address>

sleeping for 5 seconds
---- 2010-07-02 14:50:39.125000 ----
<address>

<number>1</number>
<street>S VAN NESS AVE</street>
<unit>
<number>400</number>
<disposition>provisional</disposition>
<create_tms>2010-07-02 08:18:50.937000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>221</number>
<street>MAIN ST</street>

<unit>
<number>FL3</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address>

<address>
<number>221</number>
<street>MAIN ST</street>

<unit>
<number>1500</number>
<disposition>official</disposition>
<create_tms>2009-09-01 16:59:51.607000</create_tms>
<retire_tms>None</retire_tms>
</unit>
<apns>

</apns>
</address> Please take a look at example 5.

Q5
Do you have a unique ID on your end for all addresses. We might store your ID on our end and/or use it to make updates easier. Also if we ever eliminate our DBIAVS completely in favor of MAD it will make it easier to transition.

A5
I will add the native primary key to the messages.

[Sam] Can you be more specific here? My understanding is that in the MAD data model, both the base address and unit address tables have "native primary keys". If that's correct, then A5 is ambiguous.

Q6
DBI does not track addresses with no ownership but MAD does.
For example, an apartment build with 10 aprtments will have 10 MAD addresses but only 1 DBI address.
HOw will we handle this?

A6
The publisher will send only addresses that have APNs.

Q7
Parsing the blk lot out of the APN is tedious, can you please just give us the blk, lot?

A7
Agreed and easily done.

Q8
Val,
As of july 28 2010, the EAS will publish address changes like this.
I originally agreed to this because this is easier for AVS consumer.
I'd like to discuss doing it this way.
Here's why. Say that during the xmit the power goes out.
When we come back up, the daemon will retransmit some or all of the messages.
This is because of the transaction scope, which in EAS is naturally at the unit address level.
I'd like to avoid sending out duplicates if at all possible.
Now, if necessary, I can add some extra code (and a table) to handle this completely on my end.
But I'd like to get your feedback.

A8
The final form is here.

Example 1
Anchor
example1
example1

A simple example to get us started.
This example is MAD centric.
I suspect that we'll end up with something a alot different at the end of this discussion.
Here is a single family dwelling with one owner:

Code Block
    <address>
        <number>14</number>
        <street>MAPLE ST</street>
        <unit>
            <base>true</base>
            <number></number>
            <disposition>official</disposition>
            <create_tms>2010-07-02 08:18:50.937000</create_tms>
            <retire_tms>None</retire_tms>
            <apns>
                <apn>1234001</apn>
            </apns>
            <action>insert</action>
        </unit>
    </address>

The "action" tag domain is

Code Block
    insert
    update
    retire

I think this addresses question 1 above.

The "base" tag domain is:

Code Block
    true
    false

This is a MAD artifact - DBI probably won't want it.
But let me explain the purpose.
A MAD "address" is represented using the concept of a base address and a unit address.
A base address always has one corresponding unit address.
There may be additional unit addresses or not.
If the base tag is marked true, then this unit information is directly associated with the base address.
If the base tag is marked false, then this unit information is not directly associated with the base address.

[Sam] Can you elaborate on what is meant by "directly associated" in this context? Are there additional associations possible between a unit address and a base address (besides "not direct")?

Example 2
Anchor
example2
example2

Now in the case of an apartment bldg, say
14 MAPLE ST,
apartments a & b
MAD represents the world this way:

Code Block
    <address>
        <number>14</number>
        <street>MAPLE ST</street>
        <unit>
            <base>true</base>
            <number>100</number>
            ...
            <apns>
                <apn>1234001</apn>
            </apns>
            <action>insert</action>
        </unit>
        <unit>
            <base>false</base>
            <number>a</number>
            ...
            <apns></apns>
            <action>insert</action>
        </unit>
        <unit>
            <base>false</base>
            <number>b</number>
            ...
            <apns></apns>
            <action>insert</action>
        </unit>
    </address>

There is no ownership at the unit level.
The owner is specified at the base address level.

Example 3
Anchor
example3
example3

What I think we want an instead of the example 2 (apt building) is something like this:

message 1

Code Block
<xml>
    <address_change>
        <key>12873</key>
        <action>insert</action>
        <address>
            <number>14</number>
            <street>MAPLE ST</street>
            <unit_number>100</unit_number>
            <block>1234</block>
            <lot>001</lot>
            <apn>1234001</apn>
        </address>
    </address_change>
</xml>

Example 4
Anchor
example4
example4

And reworking example 1 (single family) to fit the model shown in example 3, we have this:

Code Block
<xml>
    <address_change>
        <key>12873</key>
        <action>insert</action>
        <address>
            <number>14</number>
            <street>MAPLE ST</street>
            <unit_number></unit_number>
            ...
            <block>1234</block>
            <lot>001</lot>
            <apn>1234001</apn>
        </address>
    </address_change>
</xml>

Example 5
Anchor
example5
example5

Let's move on to a time share, which can be seen at 2655 Hyde St.
In a time share we have a single unit with multiple owners.

message 1

Code Block
<xml>
    <address_change>
        <key>12873</key>
        <action>insert</action>
        <address>
            <number>2655</number>
            <street>HYDE ST</street>
            <unit_number>1</unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <block>0026T</block>
            <lot>065A</lot>
            <apn>0026T065A</apn>
        </address>
    </address_change>
</xml>

message 2

Code Block
<xml>
    <address_change>
        <key>12873</key>
        <action>insert</action>
        <address>
            <number>2655</number>
            <street>HYDE ST</street>
            <unit_number>1</unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <block>0026T</block>
            <lot>066A</lot>
            <apn>0026T066A</apn>
        </address>
    </address_change>
</xml>

The only difference here is that the APN is different in message 2.
This much is straight forward.
If a unit address changes, and there are APNs assigned to the unit,
we have one address change message for each of these APNs.
But at 2655 Hyde, there are lots of APNs assigned to the base address.

Anchor
apn_question2
apn_question2

Val, please take a look at this address and tell me if you think we need to
do anything special here.
http://174.37.80.164/

Example 6
Anchor
example6
example6

Here is a condo or tenants in common example, where each unit has a single owner, and there
is a "common area" owned by the owners association.

message 1 (base unit or common area, APN is assigned)

Code Block
<xml>
    <address_change>
        <key>12873</key>
        <action>insert</action>
        <address>
            <number>100</number>
            <street>MAIN ST</street>
            <unit_number></unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <block>1234</block>
            <lot>001</lot>
            <apn>1234001</apn>
        </address>
    </address_change>
</xml>

message 2 (condo unit)

Code Block
<xml>
    <address_change>
        <key>12873</key>
        <action>insert</action>
        <address>
            <number>100</number>
            <street>MAIN ST</street>
            <unit_number>1</unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <block>1234</block>
            <lot>002</lot>
            <apn>1234002</apn>
        </address>
    </address_change>
</xml>

message 3 (condo unit)

Code Block
<xml>
    <address_change>
        <key>12873</key>
        <action>insert</action>
        <address>
            <number>100</number>
            <street>MAIN ST</street>
            <unit_number>2</unit_number>
            <disposition>provisional</disposition>
            <create_tms>2010-07-02 14:11:22.843000</create_tms>
            <retire_tms>None</retire_tms>
            <block>1234</block>
            <lot>003</lot>
            <apn>1234003</apn>
        </address>
    </address_change>
<xml>

Example 7
Anchor
example7
example7

Code Block
    <address>
        <key>419692</key>
        <base_number_prefix></base_number_prefix>
        <base_number>1</base_number>
        <base_number_suffix></base_number_suffix>
        <street_name>S VAN NESS</street_name>
        <street_name_suffix>AVE</street_name_suffix>
        <unit_number_prefix></unit_number_prefix>
        <unit_number>600</unit_number>
        <unit_number_suffix></unit_number_suffix>
        <create_tms>2010-08-03 12:05:54.578000</create_tms>
        <retire_tms>2010-08-03 12:38:33</retire_tms>
        <disposition>provisional</disposition>
        <mailing>True</mailing>
        <longitude>-122.418862841</longitude>
        <latitude>37.7747051425</latitude>
        <change_tms>2010-08-03 14:38:33.467492</change_tms>
        <action>retire</action>
        <block>3506</block>
        <lot>001</lot>
        <apn>3506001</apn>
    </address>

Example 8
Anchor
example8
example8

Code Block
<addresses>
    <address>
        <key>419623</key>
        <base_number_prefix></base_number_prefix>
        <base_number>2655</base_number>
        <base_number_suffix></base_number_suffix>
        <street_name>HYDE</street_name>
        <street_name_suffix>ST</street_name_suffix>
        <unit_number_prefix></unit_number_prefix>
        <unit_number>308</unit_number>
        <unit_number_suffix></unit_number_suffix>
        <disposition>provisional</disposition>
        <create_tms>2010-07-02 14:11:22.843000</create_tms>
        <retire_tms></retire_tms>
        <block>0026</block>
        <lot>028</lot>
        <apn>0026028</apn>
    </address>
    ...
</addresses>

Example 9
Anchor
example9
example9

This separates the "history" information,

Code Block
<addressChangeNotification>
    <address>
        <key>419709</key>
        <base_number_prefix></base_number_prefix>
        <base_number>1</base_number>
        <base_number_suffix></base_number_suffix>
        <longitude>-122.418876252</longitude>
        <latitude>37.774694542</latitude>
        <street_name>S VAN NESS</street_name>
        <street_name_suffix>AVE</street_name_suffix>
        <unit_number_prefix>XXX</unit_number_prefix>
        <unit_number>300</unit_number>
        <unit_number_suffix>YYY</unit_number_suffix>
        <create_tms>2010-08-13 12:15:43.828000</create_tms>
        <retire_tms>2010-08-13 18:41:16.149255</retire_tms>
        <disposition>provisional</disposition>
        <mailing>True</mailing>
        <block>3506</block>
        <lot>001</lot>
        <apn>3506001</apn>
    </address>
    <timestamp>2010-08-13 18:41:16.149255</timestamp>
    <action>retire</action>
</addressChangeNotification>

Example 10
Anchor
example10xml
example10xml

DBI may use different street names and street suffixes.
This version accommodates these variations.

Code Block
<addressChangeNotification>
    <address>
        <key>419709</key>
        <base_number_prefix></base_number_prefix>
        <base_number>1</base_number>
        <base_number_suffix></base_number_suffix>
        <jurisdiction>PRESIDIO</jurisdiction>
        <longitude>-122.418876252</longitude>
        <latitude>37.774694542</latitude>
        <street_name>SOUTH VAN NESS</street_name>
        <street_name_suffix>
            <abbreviated>AVE</abbreviated>
            <unabbreviated>AVENUE</unabbreviated>
        </street_name_suffix>
        <unit_number_prefix>XXX</unit_number_prefix>
        <unit_number>300</unit_number>
        <unit_number_suffix>YYY</unit_number_suffix>
        <create_tms>2010-08-13 12:15:43.828000</create_tms>
        <retire_tms>2010-08-13 18:41:16.149255</retire_tms>
        <disposition>provisional</disposition>
        <mailing>True</mailing>
        <block>3506</block>
        <lot>001</lot>
        <apn>3506001</apn>
    </address>
    <timestamp>2010-08-13 18:41:16.149255</timestamp>
    <action>retire</action>
</addressChangeNotification>

Example 11
Anchor
example11xml
example11xml

The purpose of this version is to support the rework of the model precipitated by MAD-156.

Code Block
<?xml version="1.0" encoding="utf-8"?>
<addressChangeNotification>
    <base_address_part>
        <base_address>
            <base_address_id>483699</base_address_id>
            <base_number_prefix></base_number_prefix>
            <base_number>2569</base_number>
            <base_number_suffix></base_number_suffix>
            <jurisdiction>SF MAIN</jurisdiction>
            <longitude>-122.387658226</longitude>
            <latitude>37.756713011</latitude>
            <street_name>03RD</street_name>
            <street_name_suffix>
                <abbreviated>ST</abbreviated>
                <unabbreviated>STREET</unabbreviated>
            </street_name_suffix>
        </base_address>
        <action>insert</action>
    </base_address_part>
    <unit_address_part>
        <unit_address>
            <address_id>725579</address_id>
            <unit_number></unit_number>
            <base_unit_address_flag>True</base_unit_address_flag>
            <disposition>official</disposition>
            <mailing>False</mailing>
            <create_tms>10-16-2012 11:10:35</create_tms>
            <last_change_tms>10-16-2012 11:10:35</last_change_tms>
            <retire_tms></retire_tms>
        </unit_address>
        <action>insert</action>
    </unit_address_part>
    <address_parcel_link_part>
        <address_parcel_link>
            <id>563590</id>
            <create_tms>10-16-2012 11:10:35</create_tms>
            <last_change_tms>10-16-2012 11:10:35</last_change_tms>
            <retire_tms></retire_tms>
            <parcel>
                <block>4173</block>
                <lot>001</lot>
                <apn>4173001</apn>
            </parcel>
        </address_parcel_link>
        <action>insert</action>
    </address_parcel_link_part>
</addressChangeNotification>