The Internet is awash with data. Where ten years ago developers had difficulty finding data to power applications, today’s difficulty lies in making sense of its abundance, identifying signal amidst the noise, and understanding its contextual relevance. To address these problems Factual is today launching Resolve — an entity resolution API that makes partial records complete, matches one entity against another, and assists in de-duping and normalizing datasets.

The idea behind Resolve is very straightforward: you tell us what you know about an entity, and we, in turn, tell you everything we know about it. Because data is so commonly fractured and heterogeneous, we accept fragments of an entity and return the matching entity in its entirety. Resolve allows you to do a number of things that will make your data engineering tasks easier:

  • enrich records by populating missing attributes, including category, lat/long, and address
  • de-dupe your own place database
  • convert multiple daily deal and coupon feeds into a single normalized, georeferenced feed
  • identify entities unequivocally by their attributes

For example: you may be integrating data from an app that provides only the name of a place and an imprecise location. Pass what you know to Factual Resolve via a GET request, with the attributes included as JSON-encoded key/value pairs:

http://api.v3.factual.com/places/resolve?values={"name":"ino","latitude":40.73,"longitude":-74.01}

The more attributes you provide Factual Resolve, the better match we can make. Resolve looks at all possible candidates in our canonical dataset, ranks each candidate against a number of criteria, and returns an unambiguous match — if one can be identified — and all available attributes:

You Provide We Return

name: Ino
latitude: 40.73
longitude: -74.01

Resolve

factual_id: 4333b825-8573-422c-89c5-26927e717dac
name: Ino Cafe and Wine Bar
category: Food & Beverage > Restaurants
address: 21 Bedford St
locality: New York
region: NY
country: US
postcode: 10014
tel: (212) 989-5769
latitude: 40.729136
longitude: -74.003534

On the surface Resolve may seem similar to Search, but in fact serves a very different use case: while Search is designed to return multiple items for subsequent disambiguation (usually when a person selects a blue link in the result set), Factual Resolve performs the disambiguation and returns only a single, high-quality match (if we can’t match your input with complete confidence, we will return some options, noting though that the entity was not unequivocally resolved).

We’ve designed Factual Resolve explicitly so that your service can talk to ours continuously, helping to normalize and enrich your data, without the need for ongoing human intervention.

Crosswalk Integration

Not only do we aim to provide excellent attribute enrichment at Factual, but optionally pass the Factual ID onto our Crosswalk API and we’ll tell you the URL and ID of that same place in up to 40 other, third-party namespaces. Crosswalk determines exactly how Ino Cafe and Wine Bar is identified, and where it is found, on:

Foursquare Urbanspoon Citysearch Yellowpages
Yahoo AllMenus Yelp Zagat
Chow Gowalla InsiderPages Menupages
Menupix SimpleGeo Superpages ExploreTo
Fwix and many other sites…

Developers are using this content from Crosswalk to mine Twitter, aggregate content across verticals, and mashup the best content from each.

Check It: Sqoot and OpenMenu

Data APIs are like plumbing: essential for the civilized operation of society, but rarely showy or glamorous. They are, consequently, often hidden under floors and behind walls. We’d encourage you to check out Factual data partners Sqoot and OpenMenu whose use of Resolve and Crosswalk nicely exposes the real-world potential of these products:

Sqoot Daily Deals APIDaily Deal API provider Sqoot helps developers integrate deals into their LBS apps for the purpose of engaging and, ultimately, monetizing their users. Because ‘raw’ daily deals from LivingSocial, Groupon and others are notorious for their poor targeting, Sqoot uses Resolve to convert the business name and address within the deal to a georeferenced entity, and provides users with the most hyperlocal and georelevant deal recommendations possible. Resolve also assists with de-duping Sqoot’s multiple deal feeds, and enriching their business database, while Crosswalk ensures that their developers can easily show Sqoot deals in their app against the third-party places they’re already using.

OpenMenuOur friends at OpenMenu provide the menu markup standard combined with a powerful menu platform for restaurants around the world. They use Resolve to identify restaurants in Factual that match restaurants in the OpenMenu Platform, and push this match onto Crosswalk to ensure that they can show their customer’s menus potentially against any URL found therein.

Currently Beta

Resolve is a beta launch and comes with the usual caveats: we’ll be making quick improvements and modifications, the API may change slightly, and it currently operates only against our US Places.

We are looking for further users to take the API for a road-test and tell us where we can improve before launching globally. However, it is today helping teams like Sqoot and OpenMenu further enrich and cross-integrate their products, and we hope it will have a similar immediate effect on yours: http://developer.factual.com/display/docs/Places+API+-+Resolve

-Tyler Bell
Director of Product