OWB - Name and Adress Operator
Table of Contents
1 - About
The name and address operator is a component of the name and address management.
You say :
- what you know on your data
- what you want as parse data
2 - Articles Related
3 - Options
3.1 - Parsing Type
Select one of the following parsing types:
- Name Only: Select this option when the input data contains only name data. Names can include both personal and business names. Selecting this option instead of the more generic Name and Address option may improve performance and accuracy, depending on the adapter.
- Address Only: Select this option when the input data contains only address data and no name data. Selecting this option instead of the more generic Name and Address option may improve performance and accuracy, depending on the adapter.
- Name and Address: Select this option when the input data contains both name and address data.
3.2 - Primary Country
Select the country that best represents the country distribution of your data. The primary country is used by some providers of name and address cleansing software as a hint for the appropriate parser or parsing rules to use on the initial parse of the record. For other name and address service providers, external configuration of their installation controls this behavior.
3.3 - Dual Address Assignment
A dual address contains both a Post Office (PO) box and a street address for the same address record. For records that have dual addresses, your selection determines which address becomes the normal address and which address becomes the dual address. A sample dual address is:
PO Box 2589 4439 Mormon Coulee Rd La Crosse WI 54601-8231
- Street Assignment: The street address is the normal address and the PO Box address is the dual address. This means that the Address component is assigned the street address. In the preceding example, the Address is 4439 MORMON COULEE RD. This choice corrects the postal code to 54601-8220.
- PO Box Assignment: The PO Box address is the normal address and the street address is the dual address. This means that the Address component is assigned the Post Office (PO) box address. In the preceding example, the Address is PO BOX 2589. This choice corrects the postal code to 54602-2589.
- Closest to Last Line: Whichever address occurs closest to the last line is the normal address; the other is the dual address. This means that the Address component is assigned the address line closest to the last line. In the preceding example, the Address is 4439 MORMON COULEE RD. This choice corrects the postal code to 54601-8220.
This option has no effect for records having a single street or PO box address.
4 - How that works ?
The Name and Address operator generates PL/SQL code, which calls the UTL_NAME_ADDR package installed in the Runtime Schema. A private synonym, NAME_ADDR, is defined in the target schema to reference the UTL_NAME_ADDR package. The UTL_NAME_ADDR package calls Java packages, which send processing requests to an external Name and Address server, which then interfaces with third-party Name and Address processing libraries, such as :
- First Logic
- Data Flux
- Melissa Data
- And more.
Example of Code in a Mapping Package which call the NAME_ADDR synonynm
--------------------------------------------------------------------------- -- Function NA_NAME_AND_ADRESS_TF -- Name/address table function --------------------------------------------------------------------------- FUNCTION NA_NAME_AND_ADRESS_TF(inputCursor IN "INGRP1_cTYPE") RETURN "OUTGRP1_tblTYPE" PIPELINED NA_NAME_AND_ADRESS_CONN := NAME_ADDR.create_group('NA_NAME_AND_ADRESS','NLD',NAME_ADDR.OPTION_ADDRESS,NAME_ADDR.OPTION_STREET); NAME_ADDR.add_output_component(NA_NAME_AND_ADRESS_CONN, NAME_ADDR.create_output_component(NAME_ADDR.OUTPUT_IS_GOOD_GROUP, 1, NAME_ADDR.OPTION_NORMAL)); NAME_ADDR.add_output_component(NA_NAME_AND_ADRESS_CONN, NAME_ADDR.create_output_component(NAME_ADDR.OUTPUT_ADDRESS_CORRECTED, 1, NAME_ADDR.OPTION_NORMAL)); NAME_ADDR.clear_input(parseInput); NAME_ADDR.add_input_value(parseInput, NAME_ADDR.create_input_value(NAME_ADDR.INPUT_LINE_1, inputRec.ADDRESS$)); NAME_ADDR.add_input_value(parseInput, NAME_ADDR.create_input_value(NAME_ADDR.INPUT_LINE_2, inputRec.CITY$)); NAME_ADDR.add_input_value(parseInput, NAME_ADDR.create_input_value(NAME_ADDR.INPUT_LINE_3, inputRec.COUNTRY$)); NAME_ADDR.add_input_value(parseInput, NAME_ADDR.create_input_value(NAME_ADDR.INPUT_LINE_4, inputRec.POSTAL_CODE$)); NAME_ADDR.parse(NA_NAME_AND_ADRESS_CONN, parseInput); outputRec.IS_GOOD_GROUP$ := NAME_ADDR.get_component(NA_NAME_AND_ADRESS_CONN, NAME_ADDR.OUTPUT_IS_GOOD_GROUP, 1, NAME_ADDR.OPTION_NORMAL, 1); outputRec.ADDRESS_CORRECTED$ := NAME_ADDR.get_component(NA_NAME_AND_ADRESS_CONN, NAME_ADDR.OUTPUT_ADDRESS_CORRECTED, 1, NAME_ADDR.OPTION_NORMAL, 1); PIPE ROW (outputRec); NAME_ADDR.destroy_group(NA_NAME_AND_ADRESS_CONN);
5 - Handling Errors in Name and Address Data
Name and Address parsing, like any other type of parsing, depends on identification of keywords and patterns containing those keywords.
5.1 - Free-form
Free-form name and address data difficult to parse because the keyword set is large and it is never 100% complete. Keyword sets are built by analyzing millions of records, but each new data set is likely to contain some undefined keywords.
Because most free-form name and address records contain common patterns of numbers, single letters, and alphanumeric strings, parsing can often be performed based on just the alphanumeric patterns.
However, alphanumeric patterns may be ambiguous or a particular pattern may not be found.
5.2 - Parsing status
Name and Address parsing errors set parsing status codes that you can use to control data mapping. Since the criteria for quality vary among applications, numerous flags are available to help you determine the quality of a particular record.
5.2.1 - Address in Postal Database
|Is Good Group||Verifies that an address is a valid entry in a postal database|
| * for countries with postal matching support
* for U.S. Coding Accuracy Support System (CASS)
* for Canadian Software Evaluation and Recognition Program (SERP) certified mailings
5.2.2 - Address not in Postal Database but acceptable
Unless you specify postal reporting, an address does not have to be found in a postal database to be acceptable. For example :
- street intersection addresses
- building names
may not be in a postal database, but they may still be deliverable.
If the Is Good Group flag indicates failure, additional error flags can help determine the parsing status.
|Is Parsed flag||indicates success or failure of the parsing process.|
|If Is Parsed indicates parsing success, you may still wish to check the parser warning flags|
|parser warning flags||indicate unusual data|
|You may want to check those records manually|
If Is Parsed indicates parsing failure, you must preserve the original data to prevent data loss. Use the Splitter operator to map successful records to one target and failed records to another target.
5.3 - Error Status Output Components
|Subfolders Name and Address|
|Is Good Group|| Indicates whether the name group, address group, or name and address group was processed successfully.
* T = For name groups, the name has been successfully parsed. For address groups, the address has been found in a postal matching database if one is available, or has been successfully parsed if no postal database is installed. For name and address groups, both the name and the address have been successfully processed.
* F = The group was not parsed successfully.
Using this flag in conjunction with another flag, such as the Is Parsed flag, followed by the Splitter operator, enables you to isolate unsuccessfully parsed records in their own target, where you can address them separately.
|Is Parsed|| Indicates whether the name or address was parsed:
* T = The name or address was parsed successfully, although some warning conditions may have been flagged.
* F = The name or address cannot be parsed.
Check the status of warning flags such as Name Warning or City Warning.
|Parse Status||Postal matching software parse status code.|
|Parse Status||Description Text description of the postal matching software parse status.|
|Subfloder Name Only|
|Is Good Name|| Indicates whether the name was parsed successfully:
* T = The name was parsed successfully, although some warning conditions may have been flagged.
* F = The name cannot be parsed.
|Name Warning|| Indicates whether the parser found unusual or possibly erroneous data in a name:
* T = The parser had difficulty parsing a name or found unusual data. Check the Parse Status component for the cause of the warning.
* F = No difficulty parsing name.
|Subfolder Address Only|
|Is Good Address|| Indicates whether the address was processed successfully:
* T = Successfully processed. Either the address was found in the postal matching database or, if no postal matching database is installed for the country indicated by the address, the address was successfully parsed.
* F = Not successfully processed. If a postal matching database is installed for the country indicated by the address, the address was not found in the database. If no postal matching database is available for the country, the address cannot be parsed.
Use this component when you have a mix of records from both postal-matched and non-postal-matched countries.
|Is Found|| Indicates whether the address is listed in the postal matching database for the country indicated by the address:
* T = The address was found in a postal matching database.
* F = The address was not found in a postal matching database.
This status may indicate either that the address is not a legal address, or that postal matching is not available for the country.
This flag is true only if all of the other 'Found' flags are true. If postal matching is available, this flag is the best indicator of record quality.
|Subfolder Address Only: Is Found|
|City Found||T = The postal matcher found the city; otherwise, F.|
|Street Name Found||T = The postal matcher found the street name; otherwise, F.|
|Street Number Found||T = The postal matcher found the street number within a valid range of numbers for the named street, otherwise, F.|
|Street Components Found||T = The postal matcher found the street components, such as the Pre Directional or Post Directional; otherwise, F.|
|Non-ambiguous Match Found|| Indicates whether the postal matcher found a matching address in the postal database:
* T = The postal matcher found a match between the input record and a single entry in the postal database.
* F = The address is ambiguous. The postal matcher found that the address matched several postal database entries and could not make a selection.
For example, if the input address is '100 4th Avenue,' but the postal database contains '100 4th Ave N' and '100 4th Ave S,' the input's missing directional causes the match to fail.
|Subfolder Address Only|
|City Warning||T = The parser found unusual or possibly erroneous data in a city; otherwise, F.|
|Street Warning||T = The parser found unusual or possibly erroneous data in a street address otherwise, F.|
|Is Address Verifiable|| T = Postal matching is available for the country of the address; otherwise, F.
F does not indicate whether or not a postal matching database is installed for the country in the address. It only indicates that matching is not available for a particular address.
|Address Corrected|| Indicates whether the address was corrected in any way during matching.
Standardization is not considered correction in this case.
* T = Some component of the address was changed, aside from standardization. One of the other Corrected flags must also be true.
* F = No components of the address were changed, with the possible exception of standardization.
|Subfolder Address Only : Address Corrected|
|Postal Code Corrected||T = The postal code was corrected during matching, possibly by the addition of a postal extension; otherwise, F.|
|City Corrected|| T = The city name was corrected during matching; otherwise, F.
Postal code input is used to determine the city name preferred by the postal service.
|Street Corrected|| T = The street name was corrected during matching; otherwise, F.
Some correct street names may be changed to an alternate name preferred by the postal service.
|Street Components Corrected||T = One or more street components, such as Pre Directional or Post Directional, were corrected during matching.|
|Subfolder Address Only|
|Address Type|| Type of address. The following are common examples; actual values vary with vendors of postal matching software:
* B= Box
* F = Firm
* G= General Delivery
* H= High-rise apartment or office building
* HD= High-rise default, where a single Zip+4 postal code applies to the entire building. The Name and Address operator can detect a finer level of postal code assignment if a floor or suite address is provided, in which case the record is treated as an H type, with a more specific Zip+4 code for that floor or suite.
* M= Military
* P= Post Office Box
* R= Rural Code
* S= Street
|Parsing Country||Country parser that was used for the final parse of the record.|
6 - Note
Name and Address Server
- For Windows: Start the server by running owb\bin\win32\NAStart.bat. Stop the server by running owb\bin\win32\NAStop.bat.
- For UNIX: Start the server by running owb/bin/unix/NAStart.sh. Stop the server by running owb/bin/unix/NAStop.sh.