We posted  details of our Global Local schema recently: our intention was to make Local development on a global scale easier by abstracting country-specific attributes against a uniform naming convention. On the whole, this move has been very well received — not least for our accentuating simplicity above other concerns. The problem remains, however, that API developers creating global applications are required to know in advance the equivalent table name for each country, and which attributes of the superset are supported for each.

I’m pleased to say that we’re smoothing that speedbump by making available a machine-readable file that provides three things:

  1. A mapping between countries and corresponding table names
  2. An enumeration of which local attributes are supported in each country, and
  3. A mapping between the ‘neutral’ global local attribute name to its equivalent in that country (e.g. “Region’ to ‘Province’).

The file is on Github at https://gist.github.com/1055108 and we’ll keep it updated as we add new tables and content. Each country hash is indexed by its ISO 3166-1 alpha-2 country code. It is pretty self-explanitory and looks something like this:

         "ar": {
            "country": "Argentina",
            "table": "PfldJg",
            "attributes": {
                "factual_id": {
                    "supported": true,
                    "mapping": "Factual ID"
                },
                "name": {
                    "supported": true,
                    "mapping": "Name"
                },
                "po_box": {
                    "supported": false,
                    "mapping": null
                },
                "region": {
                    "supported": true,
                    "mapping": "Province"
                }, [...]

On a final note: we’ve just pushed Malaysia to the Local Page at http://www.factual.com/topic/local, which brings us to 38.7m entities in 44 countries; just one more step towards our goal of world domination coverage.

- Tyler Bell