execute_sparql
Execute SPARQL queries on Wikidata to retrieve structured data results in JSON format, using predefined prefixes for efficient querying.
Instructions
Execute a SPARQL query on Wikidata.
You may assume the following prefixes:
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
Args:
sparql_query (str): The SPARQL query to execute.
Returns:
str: The JSON-formatted result of the SPARQL query execution. If there are no results, an empty JSON object will be returned.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sparql_query | Yes |
Implementation Reference
- src/server.py:90-115 (handler)The execute_sparql tool handler function, registered via @server.tool() decorator. It sends the SPARQL query to Wikidata's query service, retrieves the JSON results, and returns them as a JSON string.@server.tool() async def execute_sparql(sparql_query: str) -> str: """ Execute a SPARQL query on Wikidata. You may assume the following prefixes: PREFIX wd: <http://www.wikidata.org/entity/> PREFIX wdt: <http://www.wikidata.org/prop/direct/> PREFIX p: <http://www.wikidata.org/prop/> PREFIX ps: <http://www.wikidata.org/prop/statement/> Args: sparql_query (str): The SPARQL query to execute. Returns: str: The JSON-formatted result of the SPARQL query execution. If there are no results, an empty JSON object will be returned. """ url = "https://query.wikidata.org/sparql" async with httpx.AsyncClient() as client: response = await client.get( url, params={"query": sparql_query, "format": "json"} ) response.raise_for_status() result = response.json()["results"]["bindings"] return json.dumps(result)