Sends a SPARQL query to the Data Commons SPARQL endpoint using a POST request.

dc_post_sparql(
  query,
  api_key = Sys.getenv("DATACOMMONS_API_KEY"),
  base_url = Sys.getenv("DATACOMMONS_BASE_URL", unset =
    "https://api.datacommons.org/v2/"),
  return_type = "json"
)

Arguments

query

A character string containing a valid SPARQL query.

api_key

Your Data Commons API key. If not provided, uses the environment variable DATACOMMONS_API_KEY.

base_url

The base URL of the Data Commons API. Defaults to the public endpoint. For custom deployments, must end with /core/api/v2/.

return_type

Return format: either "list" (parsed R object) or "json" (JSON string).

Value

A list or JSON string, depending on return_type.

Examples

# Get a list of all cities with a particular property
query <- c(
  paste0(
    "SELECT DISTINCT ?subject ",
    "WHERE {?subject unDataLabel ?object . ?subject typeOf City} LIMIT 10"
  )
)
dc_post_sparql(query)
#> [1] "{\"header\":[\"?subject\"],\"rows\":[{\"cells\":[{\"value\":\"wikidataId/Q92212\"}]},{\"cells\":[{\"value\":\"undata-geo/C23400001\"}]},{\"cells\":[{\"value\":\"undata-geo/C16801979\"}]},{\"cells\":[{\"value\":\"undata-geo/C16800786\"}]},{\"cells\":[{\"value\":\"undata-geo/C26500024\"}]},{\"cells\":[{\"value\":\"undata-geo/C07500807\"}]},{\"cells\":[{\"value\":\"undata-geo/C16800843\"}]},{\"cells\":[{\"value\":\"undata-geo/C16800676\"}]},{\"cells\":[{\"value\":\"wikidataId/Q208149\"}]},{\"cells\":[{\"value\":\"wikidataId/Q2933\"}]}]}"

# Get a list of biological specimens
query <- c(
  paste0(
    "SELECT DISTINCT ?name ",
    "WHERE {?biologicalSpecimen typeOf BiologicalSpecimen . ",
    "?biologicalSpecimen name ?name} ",
    "ORDER BY DESC(?name)",
    "LIMIT 10"
  )
)
dc_post_sparql(query)
#> iterating ■■■                                5% | ETA: 23s
#> [1] "{\"header\":[\"?name\"],\"rows\":[{\"cells\":[{\"value\":\"x Triticosecale\"}]},{\"cells\":[{\"value\":\"x Silene\"}]},{\"cells\":[{\"value\":\"x Pseudelymus saxicola (Scribn. & J.G.Sm.) Barkworth & D.R.Dewey\"}]},{\"cells\":[{\"value\":\"x Pleopodium leucosporum (Klotzsch) Mickel & Beitel\"}]},{\"cells\":[{\"value\":\"x Grindelia\"}]},{\"cells\":[{\"value\":\"x Elyleymus ungavensis (Louis-Marie) Barkworth\"}]},{\"cells\":[{\"value\":\"x Elyleymus aristatus (Merr.) Barkworth & D.R.Dewey\"}]},{\"cells\":[{\"value\":\"x Elyhordeum stebbinsianum (Bowden) Bowden\"}]},{\"cells\":[{\"value\":\"x Elyhordeum schaackianum (Bowden) Bowden\"}]},{\"cells\":[{\"value\":\"x Elyhordeum pilosilemma (W.W.Mitch. & H.J.Hodgs.) Barkworth\"}]}]}"