OpenNameParser

OpenNameParser breaks down personal and business names and other terms in the name data field into their component parts. These parsed name elements are then subsequently available to other automated operations such as name matching, name standardization, or multiple-record name consolidation.

OpenNameParser does the following:

  • Determines the type of a name in order to describe the function that the name performs. Name entity types are divided into two major groups: personal names and business names. Within each of these major groups are subgroups.
  • Determines the form of a name in order to understand which syntax the parser should follow for parsing. Personal names usually take on a natural (signature) order or a reverse order. Business names are usually ordered hierarchically.
  • Determines and labels the component parts of a name so that the syntactical relationship of each name part to the entire name is identified. The personal name syntax includes prefixes, first, middle, and last name parts, suffixes, and account description terms, among other personal name parts. The business name syntax includes the firm name and suffix terms.
  • Parses conjoined personal and business names and either retains them as one record or splits them into multiple records. Examples of conjoined names include "Mr. and Mrs. John Smith" and "Baltimore Gas & Electric dba Constellation Energy".
  • Parses output as records or as a list.
  • Assigns a parsing score that reflects the degree of confidence that the parsing is correct.

Resource URL

JSON endpoint:

http://server:port/rest/OpenNameParser/results.json

XML endpoint:

http://server:port/rest/OpenNameParser/results.xml

Example with JSON Response

The following example requests a JSON response:

http://myserver:8080/rest/OpenNameParser/results.json?​Data.Name=John+Williams+Smith

The JSON returned by this request would be:

{"output_port": [{
   "Name": "John Williams Smith",
   "CultureCodeUsedToParse": "",
   "FirstName": "John",
   "LastName": "Smith",
   "MiddleName": "Williams",
   "Names": [],
   "IsParsed": true,
   "IsPersonal": true,
   "IsConjoined": false,
   "IsReverseOrder": false,
   "IsFirm": false,
   "NameScore": 100,
   "user_fields": []
}]}

Example with XML Response

The following example requests an XML response:

http://myserver:8080/rest/OpenNameParser/results.xml?​Data.Name=John+Williams+Smith

The XML returned by this request would be:

<ns2:xml.OpenNameParserResponse
xmlns:ns2="http://www.pb.com/spectrum/services/OpenNameParser">
   <ns2:output_port>
      <ns2:Result>
         <ns2:Name>John Williams Smith</ns2:Name>
         <ns2:CultureCodeUsedToParse/>
         <ns2:FirstName>John</ns2:FirstName>
         <ns2:LastName>Smith</ns2:LastName>
         <ns2:MiddleName>Williams</ns2:MiddleName>
         <ns2:Names/>
         <ns2:IsParsed>true</ns2:IsParsed>
         <ns2:IsPersonal>true</ns2:IsPersonal>
         <ns2:IsConjoined>false</ns2:IsConjoined>
         <ns2:IsReverseOrder>false</ns2:IsReverseOrder>
         <ns2:IsFirm>false</ns2:IsFirm>
         <ns2:NameScore>100</ns2:NameScore>
         <ns2:user_fields/>
      </ns2:Result>
   </ns2:output_port>
</ns2:xml.OpenNameParserResponse>