Show Triples Associated with Node(s)

datacommons.get_triples(dcids, limit=datacommons.utils._MAX_LIMIT)

Given a list of nodes, return triples which are associated with the specified node(s).

A knowledge graph can be described as a collection of triples which are 3-tuples that take the form (s, p, o). Here, s and o are nodes in the graph called the subject and object respectively, while p is the property label of a directed edge from s to o (sometimes also called the predicate).

Arguments

  • dcids (list of str) - DCIDs to get triples for

  • limit (int, optional) - The maximum number of triples per combination of property and type associated with nodes linked by that property to fetch, ≤ 500.

Returns

A dict mapping DCIDs to a list of triples (s, p, o) where s, p, and o are instances of str and either the subject or object is the specified DCID.

Each DCID is mapped to a list of triples, where a triple is an object with the following fields. Note that not all fields are always included in each triple.

Raises

  • ValueError - If the payload returned by the Data Commons REST API is malformed.

Examples

We would like to get one triple per property and type combination associated with California:

>>> import datacommons as dc
>>> dc.set_api_key(YOUR_API_KEY_HERE)
>>> dc.get_triples(['geoId/06'], limit=1)
{
  'geoId/06': [
    ('geoId/0653', 'containedInPlace', 'geoId/06'),
    ('geoId/06', 'provenance', 'dc/sm3m2w3'),
    ('dc/p/zyjy2jq2xme02', 'location', 'geoId/06'),
    ('geoId/06', 'containedInPlace', 'country/USA'),
    ('geoId/0686440', 'containedInPlace', 'geoId/06'),
    ('geoId/sch0699014', 'containedInPlace', 'geoId/06'),
    ('geoId/0686944', 'containedInPlace', 'geoId/06'),
    ('geoId/sch0699997', 'containedInPlace', 'geoId/06'),
    ('election/2024_S_CA00', 'location', 'geoId/06'),
    ('ipedsId/487597', 'location', 'geoId/06'),
    ('geoId/sch0643380', 'containedInPlace', 'geoId/06'),
    ('geoId/06113011002', 'containedInPlace', 'geoId/06'),
    ('geoId/C49700', 'overlapsWith', 'geoId/06'),
    ('geoId/0611593830', 'containedInPlace', 'geoId/06'),
    ('geoId/06U', 'containedInPlace', 'geoId/06'),
    ('geoId/06115', 'containedInPlace', 'geoId/06'),
    ('965EYosemiteAvenueSuite2MantecaCA95336', 'addressRegion', 'geoId/06'),
    ('geoId/06', 'typeOf', 'State')
  ]
}

If there is no node associated with the given DCID, an empty list is returned:

>>> dc.get_triples(['foo'])
{'foo': []}