text: for an item",    ),    Tool(        name="PropertyLookup",        func=(lambda x: vocab_lookup(x, entity_type="property")),        description="useful for when you need to know the p-number for a property",    ),    Tool(        name="SparqlQueryRunner",        func=run_sparql,        description="useful for getting results from a wikibase",    ),]Promptsâ€‹# Set up the base templatetemplate = """Answer the following questions by running a sparql query against a wikibase where the p and q items are completely unknown to you. You will need to discover the p and q items before you can generate the sparql.Do not assume you know the p and q items for any concepts. Always use tools to find all p and q items.After you generate the sparql, you should run it. The results will be returned in json. Summarize the json results in natural language.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/>When generating sparql:* Try to avoid "count" and "filter" queries if possible* Never enclose the sparql in back-quotesYou have access to the following tools:{tools}Use the following format:Question: the input question for which you must provide a natural language answerThought: you should always think about what to doAction: the action to take, should be one of [{tool_names}]Action Input: the input to the