Data Graph architecture - Precisely Data Integrity Suite

Data Integrity Suite APIs

Product
Data_Integrity
Spatial_Analytics
Data_Enrichment
geo_addressing_1
Services
Spatial Analytics
Data Enrichment
Geo Addressing
ft:title
Data Integrity Suite APIs
ft:locale
en-US
PublicationType
pt_developer
copyrightfirst
2023
copyrightlast
2026

Data Graph queries are in GraphQL™ format. There is an object type for each Precisely Enrich Data resource (dataset). For any query, metadata and data can be specified to be returned for the requested object type. One or many fields may be selected from the requested object type (dataset).

All queries follow this basic structure:
query name (1) {
  queryAction (2) {
    objectType (3) {
      metadata (4) {
        totalPages
        currentPage
        count
      }
      data (5) {
        field
        field
        field
      }
    }
  }
}

Where:

(1) This is the identifying name of the query and where variables could be introduced and assigned.

(2) This is the parameters of the query.

(3) This is the data set that is being requested from the results in (2).

(4) This is the metadata that indicates the total number of pages and current page that result from the result returned by (3). Note that "count" indicates the total number of records that are available for the current record set.

(5) These are the fields requested from the data (3)

Data Graph uses a "nested" query structure where resulting objects can be used to fetch subordinate objects in the same query. For example, an address input (level 1) can return a resulting object such as a building (level 2). By nesting a request for addresses (level 3) below the requested building object a query can return address records related to the resulting building.
query BuildingsAddressesByAddress {
  getByAddress(address: "10425 E 31st Ave Denver CO") {   #Level 1
    buildings {   #Level 2
      data {
        buildingID
        geometry
        addresses {   #Level 3
          data {
            preciselyID
            addressNumber
            streetName
            unit
          }
        }
      }
    }
  }
}  
For further example, we can add another layer to the query. The query below declares parcel (level 2) to be the first object type to be requested, and subordinate object types buildings (level 3) are returned based on relationship to the same parcel as the input address (level 1). Addresses (level 4) are returned as related to each building identified on the parcel. (Note: addresses object type only includes a request for a metadata count, returning the number of addresses in each building).
query buildingsAddressesByParcel {
  getByAddress(address: "2903 Havana St Denver") {		Level 1
    parcels {							    Level 2
      data {
        parcelID
        geometry
        buildings {						     Level 3
          data {
            buildingID
            geometry
            addresses {						 Level 4
              metadata {
                count
              }
            }
          }
        }
      }
    }
  }
}