diff --git a/.gitignore b/.gitignore
index 767abb9d..c9c009b4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -155,6 +155,7 @@ venv/
ENV/
env.bak/
venv.bak/
+secret_keys.sh
# Spyder project settings
.spyderproject
@@ -185,4 +186,4 @@ cython_debug/
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
-#.idea/
\ No newline at end of file
+#.idea/
diff --git a/flow_example.py b/flow_example.py
new file mode 100644
index 00000000..948592db
--- /dev/null
+++ b/flow_example.py
@@ -0,0 +1,17 @@
+import os
+from swarms.models import OpenAIChat
+from swarms.structs.flow import Flow, stop_when_repeats
+from dotenv import load_dotenv
+
+load_dotenv()
+
+# Initialize the OpenAIChat model
+openai_api_key = os.getenv("OPENAI_API_KEY")
+llm = OpenAIChat(openai_api_key=openai_api_key)
+
+# Initialize the Flow
+flow = Flow(llm=llm, max_loops=3, stopping_condition=stop_when_repeats)
+
+# Run the Flow with a task
+response = flow.run("")
+print(response)
diff --git a/host_local_tools.py b/host_local_tools.py
new file mode 100644
index 00000000..fe3d21de
--- /dev/null
+++ b/host_local_tools.py
@@ -0,0 +1,173 @@
+from swarms.tools.serve import ToolServer
+
+def run_tool_server():
+ # def load_weather_tool():
+ # WEATHER_API_KEYS = os.environ.get('WEATHER_API_KEYS', None)
+ # if not WEATHER_API_KEYS:
+ # raise RuntimeError("WEATHER_API_KEYS not provided, please register one from https://www.weatherapi.com/ and add it to environment variables.")
+ # server.load_tool("weather", {"subscription_key": WEATHER_API_KEYS})
+
+ # def load_database_tool():
+ # server.load_tool("database")
+
+ # def load_db_diag_tool():
+ # server.load_tool("db_diag")
+
+ def load_chemical_prop_tool():
+ server.load_tool("chemical-prop")
+
+ def load_douban_tool():
+ server.load_tool("douban-film")
+
+ def load_wikipedia_tool():
+ server.load_tool("wikipedia")
+
+ # def load_wikidata_tool():
+ # server.load_tool("wikidata")
+
+ def load_travel_tool():
+ server.load_tool("travel")
+
+ # def load_wolframalpha_tool():
+ # WOLFRAMALPH_APP_ID = os.environ.get("WOLFRAMALPH_APP_ID", None)
+ # if not WOLFRAMALPH_APP_ID:
+ # raise RuntimeError("WOLFRAMALPH_APP_ID not provided, please register one from https://products.wolframalpha.com/api/ and add it to environment variables.")
+ # server.load_tool("wolframalpha", {"subscription_key": WOLFRAMALPH_APP_ID})
+
+ # def load_bing_search_tool():
+ # BING_SUBSCRIPT_KEY = os.environ.get('BING_SUBSCRIPT_KEY', None)
+ # if not BING_SUBSCRIPT_KEY:
+ # raise RuntimeError("Bing search key not provided, please register one from https://www.microsoft.com/en-us/bing/apis/bing-web-search-api and add it to environment variables.")
+ # server.load_tool("bing_search", {"subscription_key": BING_SUBSCRIPT_KEY})
+
+ # def load_office_ppt_tool():
+ # server.load_tool("office-ppt")
+
+ # def load_alpha_vantage_tool():
+ # ALPHA_VANTAGE_KEY = os.environ.get('ALPHA_VANTAGE_KEY', None)
+ # if not ALPHA_VANTAGE_KEY:
+ # raise RuntimeError("Stock key not provided, please register one from https://www.alphavantage.co/support/#api-key and add it to environment variables.")
+ # server.load_tool("stock", {"subscription_key": ALPHA_VANTAGE_KEY})
+
+ # def load_map_tool():
+ # BING_MAP_KEY = os.environ.get('BING_MAP_KEY', None)
+ # if not BING_MAP_KEY:
+ # raise RuntimeError("Bing map key not provided, please register one from https://www.bingmapsportal.com/ and add it to environment variables.")
+ # server.load_tool("bing_map", {"subscription_key": BING_MAP_KEY})
+
+ # baidu map tool
+ # BAIDU_SECRET_KEY = os.environ.get('BAIDU_SECRET_KEY', None)
+ # BAIDU_MAP_KEY = os.environ.get('BAIDU_MAP_KEY', None)
+ # if not BAIDU_SECRET_KEY or not BAIDU_MAP_KEY:
+ # raise RuntimeError("Baidu map key not provided, please register one from https://lbsyun.baidu.com/apiconsole/key and add it to environment variables.")
+ # server.load_tool("baidu_map", {"subscription_key": BAIDU_MAP_KEY, "baidu_secret_key": BAIDU_SECRET_KEY})
+
+ # def load_rapidapi_tool():
+ # RAPIDAPI_KEY = os.environ.get('RAPIDAPI_KEY', None)
+ # if not RAPIDAPI_KEY:
+ # raise RuntimeError("RAPIDAPI_KEY not provided, please register one from https://rapidapi.com/ and add it to environment variables.")
+ # server.load_tool("zillow", {"subscription_key": RAPIDAPI_KEY})
+ # server.load_tool("airbnb", {"subscription_key": RAPIDAPI_KEY})
+ # server.load_tool("job_search", {"subscription_key": RAPIDAPI_KEY})
+
+ # def load_nllb_translation_tool():
+ # server.load_tool("nllb-translation")
+
+ # def load_baidu_translation_tool():
+ # server.load_tool("baidu-translation")
+
+ def load_tutorial_tool():
+ server.load_tool("tutorial")
+
+ def load_file_operation_tool():
+ server.load_tool("file_operation")
+
+ def load_meta_analysis_tool():
+ server.load_tool("meta_analysis")
+
+ def load_code_interpreter_tool():
+ server.load_tool("code_interpreter")
+
+ def load_arxiv_tool():
+ server.load_tool("arxiv")
+
+ # def load_google_places_tool():
+ # GPLACES_API_KEY = os.environ.get('GPLACES_API_KEY', '')
+ # if not GPLACES_API_KEY:
+ # raise RuntimeError("GPLACES_API_KEY not provided, please register one from https://developers.google.com/maps/documentation/elevation/get-api-key and add it to environment variables.")
+ # server.load_tool("google_places", {"subscription_key": GPLACES_API_KEY})
+
+ # def load_google_serper_tool():
+ # SERPER_API_KEY = os.environ.get('SERPER_API_KEY', None)
+ # if not SERPER_API_KEY:
+ # raise RuntimeError("SERPER_API_KEY not provided, please register one from https://serper.dev and add it to environment variables.")
+ # server.load_tool("google_serper", {"subscription_key": SERPER_API_KEY})
+ # server.load_tool("google_scholar", {"subscription_key": SERPER_API_KEY})
+ # server.load_tool("walmart", {"subscription_key": SERPER_API_KEY})
+
+ def load_python_tool():
+ server.load_tool("python")
+
+ # def load_sceneXplain_tool():
+ # SCENEX_API_KEY = os.environ.get('SCENEX_API_KEY', None)
+ # if not SCENEX_API_KEY:
+ # raise RuntimeError("SCENEX_API_KEY is not provided. Please sign up for a free account at https://scenex.jina.ai/, create a new API key, and add it to environment variables.")
+ # server.load_tool("sceneXplain", {"subscription_key": SCENEX_API_KEY})
+
+ def load_shell_tool():
+ server.load_tool("shell")
+
+ # def load_image_generation_tool():
+ # STEAMSHIP_API_KEY = os.environ.get('STEAMSHIP_API_KEY', None)
+ # if not STEAMSHIP_API_KEY:
+ # raise RuntimeError("STEAMSHIP_API_KEY is not provided. Please sign up for a free account at https://steamship.com/account/api, create a new API key, and add it to environment variables.")
+ # server.load_tool("image_generation")
+
+ # def load_hugging_tools():
+ # HUGGINGFACE_API_KEY = os.environ.get('HUGGINGFACE_API_KEY', None)
+ # if not HUGGINGFACE_API_KEY:
+ # raise RuntimeError("Huggingface api key (access tokens) not provided, please register one from https://huggingface.co/ and add it to environment variables.")
+ # server.load_tool("hugging_tools")
+
+ def load_gradio_tools():
+ server.load_tool("gradio_tools")
+
+ server = ToolServer()
+ print(server.list_tools())
+
+ # tool_choice = input("Enter 'ALL' to load all tools, or enter the specific tools you want to load (comma-separated): ")
+
+ # load_weather_tool()
+ # load_database_tool()
+ # load_db_diag_tool()
+ load_chemical_prop_tool()
+ load_douban_tool()
+ load_wikipedia_tool()
+ # load_wikidata_tool()
+ # load_wolframalpha_tool()
+ # load_bing_search_tool()
+ # load_office_ppt_tool()
+ # load_alpha_vantage_tool()
+ # load_map_tool()
+ # load_rapidapi_tool()
+ # load_nllb_translation_tool()
+ # load_baidu_translation_tool()
+ load_tutorial_tool()
+ load_file_operation_tool()
+ load_meta_analysis_tool()
+ load_code_interpreter_tool()
+ load_arxiv_tool()
+ # load_google_places_tool()
+ # load_google_serper_tool()
+ load_python_tool()
+ # load_sceneXplain_tool()
+ load_shell_tool()
+ # load_image_generation_tool()
+ # load_hugging_tools()
+ load_gradio_tools()
+ load_travel_tool()
+
+ server.serve()
+
+if __name__ == "__main__":
+ run_tool_server()
diff --git a/playground/tools/host_local_tools.py b/playground/tools/host_local_tools.py
new file mode 100644
index 00000000..fe3d21de
--- /dev/null
+++ b/playground/tools/host_local_tools.py
@@ -0,0 +1,173 @@
+from swarms.tools.serve import ToolServer
+
+def run_tool_server():
+ # def load_weather_tool():
+ # WEATHER_API_KEYS = os.environ.get('WEATHER_API_KEYS', None)
+ # if not WEATHER_API_KEYS:
+ # raise RuntimeError("WEATHER_API_KEYS not provided, please register one from https://www.weatherapi.com/ and add it to environment variables.")
+ # server.load_tool("weather", {"subscription_key": WEATHER_API_KEYS})
+
+ # def load_database_tool():
+ # server.load_tool("database")
+
+ # def load_db_diag_tool():
+ # server.load_tool("db_diag")
+
+ def load_chemical_prop_tool():
+ server.load_tool("chemical-prop")
+
+ def load_douban_tool():
+ server.load_tool("douban-film")
+
+ def load_wikipedia_tool():
+ server.load_tool("wikipedia")
+
+ # def load_wikidata_tool():
+ # server.load_tool("wikidata")
+
+ def load_travel_tool():
+ server.load_tool("travel")
+
+ # def load_wolframalpha_tool():
+ # WOLFRAMALPH_APP_ID = os.environ.get("WOLFRAMALPH_APP_ID", None)
+ # if not WOLFRAMALPH_APP_ID:
+ # raise RuntimeError("WOLFRAMALPH_APP_ID not provided, please register one from https://products.wolframalpha.com/api/ and add it to environment variables.")
+ # server.load_tool("wolframalpha", {"subscription_key": WOLFRAMALPH_APP_ID})
+
+ # def load_bing_search_tool():
+ # BING_SUBSCRIPT_KEY = os.environ.get('BING_SUBSCRIPT_KEY', None)
+ # if not BING_SUBSCRIPT_KEY:
+ # raise RuntimeError("Bing search key not provided, please register one from https://www.microsoft.com/en-us/bing/apis/bing-web-search-api and add it to environment variables.")
+ # server.load_tool("bing_search", {"subscription_key": BING_SUBSCRIPT_KEY})
+
+ # def load_office_ppt_tool():
+ # server.load_tool("office-ppt")
+
+ # def load_alpha_vantage_tool():
+ # ALPHA_VANTAGE_KEY = os.environ.get('ALPHA_VANTAGE_KEY', None)
+ # if not ALPHA_VANTAGE_KEY:
+ # raise RuntimeError("Stock key not provided, please register one from https://www.alphavantage.co/support/#api-key and add it to environment variables.")
+ # server.load_tool("stock", {"subscription_key": ALPHA_VANTAGE_KEY})
+
+ # def load_map_tool():
+ # BING_MAP_KEY = os.environ.get('BING_MAP_KEY', None)
+ # if not BING_MAP_KEY:
+ # raise RuntimeError("Bing map key not provided, please register one from https://www.bingmapsportal.com/ and add it to environment variables.")
+ # server.load_tool("bing_map", {"subscription_key": BING_MAP_KEY})
+
+ # baidu map tool
+ # BAIDU_SECRET_KEY = os.environ.get('BAIDU_SECRET_KEY', None)
+ # BAIDU_MAP_KEY = os.environ.get('BAIDU_MAP_KEY', None)
+ # if not BAIDU_SECRET_KEY or not BAIDU_MAP_KEY:
+ # raise RuntimeError("Baidu map key not provided, please register one from https://lbsyun.baidu.com/apiconsole/key and add it to environment variables.")
+ # server.load_tool("baidu_map", {"subscription_key": BAIDU_MAP_KEY, "baidu_secret_key": BAIDU_SECRET_KEY})
+
+ # def load_rapidapi_tool():
+ # RAPIDAPI_KEY = os.environ.get('RAPIDAPI_KEY', None)
+ # if not RAPIDAPI_KEY:
+ # raise RuntimeError("RAPIDAPI_KEY not provided, please register one from https://rapidapi.com/ and add it to environment variables.")
+ # server.load_tool("zillow", {"subscription_key": RAPIDAPI_KEY})
+ # server.load_tool("airbnb", {"subscription_key": RAPIDAPI_KEY})
+ # server.load_tool("job_search", {"subscription_key": RAPIDAPI_KEY})
+
+ # def load_nllb_translation_tool():
+ # server.load_tool("nllb-translation")
+
+ # def load_baidu_translation_tool():
+ # server.load_tool("baidu-translation")
+
+ def load_tutorial_tool():
+ server.load_tool("tutorial")
+
+ def load_file_operation_tool():
+ server.load_tool("file_operation")
+
+ def load_meta_analysis_tool():
+ server.load_tool("meta_analysis")
+
+ def load_code_interpreter_tool():
+ server.load_tool("code_interpreter")
+
+ def load_arxiv_tool():
+ server.load_tool("arxiv")
+
+ # def load_google_places_tool():
+ # GPLACES_API_KEY = os.environ.get('GPLACES_API_KEY', '')
+ # if not GPLACES_API_KEY:
+ # raise RuntimeError("GPLACES_API_KEY not provided, please register one from https://developers.google.com/maps/documentation/elevation/get-api-key and add it to environment variables.")
+ # server.load_tool("google_places", {"subscription_key": GPLACES_API_KEY})
+
+ # def load_google_serper_tool():
+ # SERPER_API_KEY = os.environ.get('SERPER_API_KEY', None)
+ # if not SERPER_API_KEY:
+ # raise RuntimeError("SERPER_API_KEY not provided, please register one from https://serper.dev and add it to environment variables.")
+ # server.load_tool("google_serper", {"subscription_key": SERPER_API_KEY})
+ # server.load_tool("google_scholar", {"subscription_key": SERPER_API_KEY})
+ # server.load_tool("walmart", {"subscription_key": SERPER_API_KEY})
+
+ def load_python_tool():
+ server.load_tool("python")
+
+ # def load_sceneXplain_tool():
+ # SCENEX_API_KEY = os.environ.get('SCENEX_API_KEY', None)
+ # if not SCENEX_API_KEY:
+ # raise RuntimeError("SCENEX_API_KEY is not provided. Please sign up for a free account at https://scenex.jina.ai/, create a new API key, and add it to environment variables.")
+ # server.load_tool("sceneXplain", {"subscription_key": SCENEX_API_KEY})
+
+ def load_shell_tool():
+ server.load_tool("shell")
+
+ # def load_image_generation_tool():
+ # STEAMSHIP_API_KEY = os.environ.get('STEAMSHIP_API_KEY', None)
+ # if not STEAMSHIP_API_KEY:
+ # raise RuntimeError("STEAMSHIP_API_KEY is not provided. Please sign up for a free account at https://steamship.com/account/api, create a new API key, and add it to environment variables.")
+ # server.load_tool("image_generation")
+
+ # def load_hugging_tools():
+ # HUGGINGFACE_API_KEY = os.environ.get('HUGGINGFACE_API_KEY', None)
+ # if not HUGGINGFACE_API_KEY:
+ # raise RuntimeError("Huggingface api key (access tokens) not provided, please register one from https://huggingface.co/ and add it to environment variables.")
+ # server.load_tool("hugging_tools")
+
+ def load_gradio_tools():
+ server.load_tool("gradio_tools")
+
+ server = ToolServer()
+ print(server.list_tools())
+
+ # tool_choice = input("Enter 'ALL' to load all tools, or enter the specific tools you want to load (comma-separated): ")
+
+ # load_weather_tool()
+ # load_database_tool()
+ # load_db_diag_tool()
+ load_chemical_prop_tool()
+ load_douban_tool()
+ load_wikipedia_tool()
+ # load_wikidata_tool()
+ # load_wolframalpha_tool()
+ # load_bing_search_tool()
+ # load_office_ppt_tool()
+ # load_alpha_vantage_tool()
+ # load_map_tool()
+ # load_rapidapi_tool()
+ # load_nllb_translation_tool()
+ # load_baidu_translation_tool()
+ load_tutorial_tool()
+ load_file_operation_tool()
+ load_meta_analysis_tool()
+ load_code_interpreter_tool()
+ load_arxiv_tool()
+ # load_google_places_tool()
+ # load_google_serper_tool()
+ load_python_tool()
+ # load_sceneXplain_tool()
+ load_shell_tool()
+ # load_image_generation_tool()
+ # load_hugging_tools()
+ load_gradio_tools()
+ load_travel_tool()
+
+ server.serve()
+
+if __name__ == "__main__":
+ run_tool_server()
diff --git a/playground/tools/multi_test.py b/playground/tools/multi_test.py
new file mode 100644
index 00000000..edd3ad0d
--- /dev/null
+++ b/playground/tools/multi_test.py
@@ -0,0 +1,28 @@
+from bmtools.agent.tools_controller import load_valid_tools, MTQuestionAnswerer
+import jsonlines
+# Choose the tools that you need
+tools_mappings = {
+ #"klarna": "https://www.klarna.com/",
+ #"chemical-prop": "http://127.0.0.1:8079/tools/chemical-prop/",
+ "wolframalpha": "http://127.0.0.1:8079/tools/wolframalpha/",
+ #"meta_analysis": "http://127.0.0.1:8079/tools/meta_analysis/",
+ #"map": "http://127.0.0.1:8079/tools/map/",
+ #"douban": "http://127.0.0.1:8079/tools/douban-film/",
+ #"weather": "http://127.0.0.1:8079/tools/weather/",
+ "office-ppt": "http://127.0.0.1:8079/tools/office-ppt/",
+ "wikipedia": "http://127.0.0.1:8079/tools/wikipedia/",
+ #"nllb-translation": "http://127.0.0.1:8079/tools/nllb-translation/",
+ "file_operation": "http://127.0.0.1:8079/tools/file_operation/",
+ "bing_search": "http://127.0.0.1:8079/tools/bing_search/",
+}
+
+tools = load_valid_tools(tools_mappings)
+qa = MTQuestionAnswerer(all_tools=tools)
+
+agent = qa.build_runner()
+
+
+agent(["Who's the main actress of Titanic? What did she do apart from this film? Help me make slides with this information."])
+#agent(['I want to go to Berkeley for one-week vacation. Please help me recommend some tourisms, restaurants, as well as the recent weather conditions for the place.'])
+#agent(["How many benzene rings are there in 9H-Carbazole-3-carboxaldehyde? and what is sin(x)*exp(x)'s plot, what is it integrated from 0 to 1? "])
+
diff --git a/playground/tools/test.py b/playground/tools/test.py
new file mode 100644
index 00000000..8dc74815
--- /dev/null
+++ b/playground/tools/test.py
@@ -0,0 +1,42 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+# Langchain
+tool_name, tool_url = 'weather', "http://127.0.0.1:8079/tools/weather/"
+tool_name, tool_config = load_single_tools(tool_name, tool_url)
+print(tool_name, tool_config)
+stqa = STQuestionAnswerer()
+
+agent = stqa.load_tools(tool_name, tool_config, prompt_type="react-with-tool-description")
+agent("write a weather report for SF today")
+
+# BabyAGI
+# tool_name, tool_url = 'weather', "http://127.0.0.1:8079/tools/weather/"
+# tool_name, tool_config = load_single_tools(tool_name, tool_url)
+# print(tool_name, tool_config)
+# stqa = STQuestionAnswerer()
+
+# agent = stqa.load_tools(tool_name, tool_config, prompt_type="babyagi")
+# agent("write a weather report for SF today")
+
+# Auto-GPT
+# tool_name, tool_url = 'weather', "http://127.0.0.1:8079/tools/weather/"
+# tool_name, tool_config = load_single_tools(tool_name, tool_url)
+# print(tool_name, tool_config)
+# stqa = STQuestionAnswerer()
+
+# agent = stqa.load_tools(tool_name, tool_config, prompt_type="autogpt")
+# agent.run(["write a weather report for SF today"])
+
+
+"""
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'wikipedia', "http://127.0.0.1:8079/tools/wikipedia/"
+tool_name, tool_config = load_single_tools(tool_name, tool_url)
+print(tool_name, tool_config)
+stqa = STQuestionAnswerer()
+
+agent = stqa.load_tools(tool_name, tool_config, prompt_type="babyagi")
+# agent = stqa.load_tools(tool_name, tool_config, prompt_type="react-with-tool-description")# prompt_type="babyagi")
+agent("Where is Yaoming Born?")
+"""
diff --git a/playground/tools/test_multi.py b/playground/tools/test_multi.py
new file mode 100644
index 00000000..fe1c764b
--- /dev/null
+++ b/playground/tools/test_multi.py
@@ -0,0 +1,13 @@
+from bmtools.agent.tools_controller import load_valid_tools, MTQuestionAnswerer
+tools_mappings = {
+ 'weather': "http://127.0.0.1:8079/tools/weather/",
+ 'file_operation': "http://127.0.0.1:8079/tools/file_operation/",
+}
+
+tools = load_valid_tools(tools_mappings)
+
+qa = MTQuestionAnswerer(openai_api_key='', all_tools=tools)
+
+agent = qa.build_runner()
+
+agent("what is the weather in Beijing?")
\ No newline at end of file
diff --git a/playground/tools/web_demo.py b/playground/tools/web_demo.py
new file mode 100644
index 00000000..9976b413
--- /dev/null
+++ b/playground/tools/web_demo.py
@@ -0,0 +1,184 @@
+import gradio as gr
+from bmtools.agent.tools_controller import MTQuestionAnswerer, load_valid_tools
+from bmtools.agent.singletool import STQuestionAnswerer
+from langchain.schema import AgentFinish
+import os
+import requests
+
+available_models = ["ChatGPT", "GPT-3.5"]
+DEFAULTMODEL = "ChatGPT" # "GPT-3.5"
+
+tools_mappings = {
+ "klarna": "https://www.klarna.com/",
+ "weather": "http://127.0.0.1:8079/tools/weather/",
+ # "database": "http://127.0.0.1:8079/tools/database/",
+ # "db_diag": "http://127.0.0.1:8079/tools/db_diag/",
+ "chemical-prop": "http://127.0.0.1:8079/tools/chemical-prop/",
+ "douban-film": "http://127.0.0.1:8079/tools/douban-film/",
+ "wikipedia": "http://127.0.0.1:8079/tools/wikipedia/",
+ # "wikidata": "http://127.0.0.1:8079/tools/wikidata/",
+ "wolframalpha": "http://127.0.0.1:8079/tools/wolframalpha/",
+ "bing_search": "http://127.0.0.1:8079/tools/bing_search/",
+ "office-ppt": "http://127.0.0.1:8079/tools/office-ppt/",
+ "stock": "http://127.0.0.1:8079/tools/stock/",
+ "bing_map": "http://127.0.0.1:8079/tools/bing_map/",
+ # "baidu_map": "http://127.0.0.1:8079/tools/baidu_map/",
+ "zillow": "http://127.0.0.1:8079/tools/zillow/",
+ "airbnb": "http://127.0.0.1:8079/tools/airbnb/",
+ "job_search": "http://127.0.0.1:8079/tools/job_search/",
+ # "baidu-translation": "http://127.0.0.1:8079/tools/baidu-translation/",
+ # "nllb-translation": "http://127.0.0.1:8079/tools/nllb-translation/",
+ "tutorial": "http://127.0.0.1:8079/tools/tutorial/",
+ "file_operation": "http://127.0.0.1:8079/tools/file_operation/",
+ "meta_analysis": "http://127.0.0.1:8079/tools/meta_analysis/",
+ "code_interpreter": "http://127.0.0.1:8079/tools/code_interpreter/",
+ "arxiv": "http://127.0.0.1:8079/tools/arxiv/",
+ "google_places": "http://127.0.0.1:8079/tools/google_places/",
+ "google_serper": "http://127.0.0.1:8079/tools/google_serper/",
+ "google_scholar": "http://127.0.0.1:8079/tools/google_scholar/",
+ "python": "http://127.0.0.1:8079/tools/python/",
+ "sceneXplain": "http://127.0.0.1:8079/tools/sceneXplain/",
+ "shell": "http://127.0.0.1:8079/tools/shell/",
+ "image_generation": "http://127.0.0.1:8079/tools/image_generation/",
+ "hugging_tools": "http://127.0.0.1:8079/tools/hugging_tools/",
+ "gradio_tools": "http://127.0.0.1:8079/tools/gradio_tools/",
+}
+
+valid_tools_info = load_valid_tools(tools_mappings)
+print(valid_tools_info)
+all_tools_list = sorted(list(valid_tools_info.keys()))
+
+gr.close_all()
+
+MAX_TURNS = 30
+MAX_BOXES = MAX_TURNS * 2
+
+return_msg = []
+chat_history = ""
+
+def show_avatar_imgs(tools_chosen):
+ if len(tools_chosen) == 0:
+ tools_chosen = list(valid_tools_info.keys())
+ img_template = ' {} '
+ imgs = [valid_tools_info[tool]['avatar'] for tool in tools_chosen if valid_tools_info[tool]['avatar'] != None]
+ imgs = ' '.join([img_template.format(img, img, tool ) for img, tool in zip(imgs, tools_chosen) ])
+ return [gr.update(value=''+imgs+'', visible=True), gr.update(visible=True)]
+
+def answer_by_tools(question, tools_chosen, model_chosen):
+ global return_msg
+ return_msg += [(question, None), (None, '...')]
+ yield [gr.update(visible=True, value=return_msg), gr.update(), gr.update()]
+ OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY', '')
+
+ if len(tools_chosen) == 0: # if there is no tools chosen, we use all todo (TODO: What if the pool is too large.)
+ tools_chosen = list(valid_tools_info.keys())
+
+ if len(tools_chosen) == 1:
+ answerer = STQuestionAnswerer(OPENAI_API_KEY.strip(), stream_output=True, llm=model_chosen)
+ agent_executor = answerer.load_tools(tools_chosen[0], valid_tools_info[tools_chosen[0]], prompt_type="react-with-tool-description", return_intermediate_steps=True)
+ else:
+ answerer = MTQuestionAnswerer(OPENAI_API_KEY.strip(), load_valid_tools({k: tools_mappings[k] for k in tools_chosen}), stream_output=True, llm=model_chosen)
+
+ agent_executor = answerer.build_runner()
+
+ global chat_history
+ chat_history += "Question: " + question + "\n"
+ question = chat_history
+ for inter in agent_executor(question):
+ if isinstance(inter, AgentFinish): continue
+ result_str = []
+ return_msg.pop()
+ if isinstance(inter, dict):
+ result_str.append("Answer: {}".format(inter['output']))
+ chat_history += "Answer:" + inter['output'] + "\n"
+ result_str.append("...")
+ else:
+ not_observation = inter[0].log
+ if not not_observation.startswith('Thought:'):
+ not_observation = "Thought: " + not_observation
+ chat_history += not_observation
+ not_observation = not_observation.replace('Thought:', 'Thought: ')
+ not_observation = not_observation.replace('Action:', 'Action: ')
+ not_observation = not_observation.replace('Action Input:', 'Action Input: ')
+ result_str.append("{}".format(not_observation))
+ result_str.append("Action output:\n{}".format(inter[1]))
+ chat_history += "\nAction output:" + inter[1] + "\n"
+ result_str.append("...")
+ return_msg += [(None, result) for result in result_str]
+ yield [gr.update(visible=True, value=return_msg), gr.update(), gr.update()]
+ return_msg.pop()
+ if return_msg[-1][1].startswith("Answer: "):
+ return_msg[-1] = (return_msg[-1][0], return_msg[-1][1].replace("Answer: ", "Final Answer: "))
+ yield [gr.update(visible=True, value=return_msg), gr.update(visible=True), gr.update(visible=False)]
+
+def retrieve(tools_search):
+ if tools_search == "":
+ return gr.update(choices=all_tools_list)
+ else:
+ url = "http://127.0.0.1:8079/retrieve"
+ param = {
+ "query": tools_search
+ }
+ response = requests.post(url, json=param)
+ result = response.json()
+ retrieved_tools = result["tools"]
+ return gr.update(choices=retrieved_tools)
+
+def clear_retrieve():
+ return [gr.update(value=""), gr.update(choices=all_tools_list)]
+
+def clear_history():
+ global return_msg
+ global chat_history
+ return_msg = []
+ chat_history = ""
+ yield gr.update(visible=True, value=return_msg)
+
+with gr.Blocks() as demo:
+ with gr.Row():
+ with gr.Column(scale=14):
+ gr.Markdown("
Swarm Tools
")
+ with gr.Column(scale=1):
+ gr.Image('../../images/swarmslogobanner.png', show_download_button=False, show_label=False )
+ # gr.Markdown('')
+ with gr.Row():
+ with gr.Column(scale=4):
+ with gr.Row():
+ with gr.Column(scale=0.85):
+ txt = gr.Textbox(show_label=False, placeholder="Question here. Use Shift+Enter to add new line.", lines=1).style(container=False)
+ with gr.Column(scale=0.15, min_width=0):
+ buttonChat = gr.Button("Chat")
+
+ chatbot = gr.Chatbot(show_label=False, visible=True).style(height=600)
+ buttonClear = gr.Button("Clear History")
+ buttonStop = gr.Button("Stop", visible=False)
+
+ with gr.Column(scale=1):
+ model_chosen = gr.Dropdown(
+ list(available_models), value=DEFAULTMODEL, multiselect=False, label="Model provided",
+ info="Choose the model to solve your question, Default means ChatGPT."
+ )
+ with gr.Row():
+ tools_search = gr.Textbox(
+ lines=1,
+ label="Tools Search",
+ placeholder="Please input some text to search tools.",
+ )
+ buttonSearch = gr.Button("Reset search condition")
+ tools_chosen = gr.CheckboxGroup(
+ choices=all_tools_list,
+ value=["chemical-prop"],
+ label="Tools provided",
+ info="Choose the tools to solve your question.",
+ )
+
+ tools_search.change(retrieve, tools_search, tools_chosen)
+ buttonSearch.click(clear_retrieve, [], [tools_search, tools_chosen])
+
+ txt.submit(lambda : [gr.update(value=''), gr.update(visible=False), gr.update(visible=True)], [], [txt, buttonClear, buttonStop])
+ inference_event = txt.submit(answer_by_tools, [txt, tools_chosen, model_chosen], [chatbot, buttonClear, buttonStop])
+ buttonChat.click(answer_by_tools, [txt, tools_chosen, model_chosen], [chatbot, buttonClear, buttonStop])
+ buttonStop.click(lambda : [gr.update(visible=True), gr.update(visible=False)], [], [buttonClear, buttonStop], cancels=[inference_event])
+ buttonClear.click(clear_history, [], chatbot)
+
+demo.queue().launch(share=False, inbrowser=True, server_name="127.0.0.1", server_port=7001)
diff --git a/requirements.txt b/requirements.txt
index 56cdfd20..4ce6ad76 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -68,7 +68,6 @@ cohere
torchvision
rich
-
mkdocs
mkdocs-material
-mkdocs-glightbox
\ No newline at end of file
+mkdocs-glightbox
diff --git a/swarms/models/__init__.py b/swarms/models/__init__.py
index 30a37a57..f4e43d02 100644
--- a/swarms/models/__init__.py
+++ b/swarms/models/__init__.py
@@ -20,9 +20,18 @@ from swarms.models.kosmos_two import Kosmos
from swarms.models.vilt import Vilt
from swarms.models.nougat import Nougat
from swarms.models.layoutlm_document_qa import LayoutLMDocumentQA
-from swarms.models.gpt4v import GPT4Vision
-from swarms.models.dalle3 import Dalle3
-from swarms.models.distilled_whisperx import DistilWhisperModel
+
+# from swarms.models.gpt4v import GPT4Vision
+# from swarms.models.dalle3 import Dalle3
+
+# from swarms.models.distilled_whisperx import DistilWhisperModel
+
+# from swarms.models.fuyu import Fuyu # Not working, wait until they update
+import sys
+
+# log_file = open("errors.txt", "w")
+# sys.stderr = log_file
+
__all__ = [
"Anthropic",
diff --git a/swarms/models/cpmbee_model.py b/swarms/models/cpmbee_model.py
new file mode 100644
index 00000000..ac4fad1f
--- /dev/null
+++ b/swarms/models/cpmbee_model.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+# coding=utf-8
+from langchain.llms.base import LLM
+from typing import Optional, List, Mapping, Any
+import torch
+from cpm_live.generation.bee import CPMBeeBeamSearch
+from cpm_live.models import CPMBeeTorch, CPMBeeConfig
+from cpm_live.tokenizers import CPMBeeTokenizer
+
+
+class CpmBeeLLM(LLM):
+
+ model_name : str = ""
+ config: CPMBeeConfig = None
+ tokenizer: CPMBeeTokenizer = None
+ model: CPMBeeTorch = None
+
+ def __init__(self, config_path: str, ckpt_path: str, device: str="cuda") -> None:
+ super().__init__()
+ self.model_name = ckpt_path
+ self.config = CPMBeeConfig.from_json_file(config_path)
+ self.tokenizer = CPMBeeTokenizer()
+ self.model = CPMBeeTorch(config=self.config)
+
+ self.model.load_state_dict(torch.load(ckpt_path))
+ if device == "cuda":
+ self.model.cuda()
+
+ @property
+ def _llm_type(self) -> str:
+ return self.model_name
+
+ def _call(self, prompt, stop: Optional[List[str]] = None) -> str:
+ # use beam search
+ beam_search = CPMBeeBeamSearch(
+ model=self.model,
+ tokenizer=self.tokenizer,
+ )
+ inference_results = beam_search.generate([{"source":prompt, "":""}], max_length=512, repetition_penalty=1.2, beam_size=1)
+ output = inference_results[0][""]
+ return output
+
+ @property
+ def _identifying_params(self) -> Mapping[str, Any]:
+ """Get the identifying parameters."""
+ return {"model_name": self.model_name}
+
+if __name__ == "__main__":
+ llm = CpmBeeLLM(config_path="path/to/cpm-bee/config.json", ckpt_path="path/to/cpm-bee/checkpoint/")
+ print(llm("You are an task creation AI that uses the result of an execution agent to create new tasks with the following objective: What's the weather in Shanghai today? Should I bring an umbrella?, The last completed task has the result: According to the weather report, it is sunny in Shanghai today and there is no precipitation, so you do not need to bring an umbrella.. This result was based on this task description: Make a todo list about this objective: What's the weather in Shanghai today? Should I bring an umbrella?. These are incomplete tasks: . Based on the result, create new tasks to be completed by the AI system that do not overlap with incomplete tasks. Do not generate repetitive tasks (e.g., tasks that have already been completed). If there is not futher task needed to complete the objective, only return NO TASK. Now return the tasks as an array."))
+
diff --git a/swarms/models/lora_model.py b/swarms/models/lora_model.py
new file mode 100644
index 00000000..26d2e850
--- /dev/null
+++ b/swarms/models/lora_model.py
@@ -0,0 +1,68 @@
+#!/usr/bin/env python
+# coding=utf-8
+from langchain.llms.base import LLM
+from typing import Optional, List, Mapping, Any
+from transformers import AutoTokenizer, AutoModelForCausalLM
+from peft import PeftModel
+
+class LoraModel(LLM):
+
+ model_name: str = ""
+ tokenizer: AutoTokenizer = None
+ model: PeftModel = None
+ use_gpu: bool = True
+
+ def __init__(self, base_name_or_path: str, model_name_or_path: str, device: str="cuda", cpu_offloading: bool=False, load_8bit: bool=False) -> None:
+ super().__init__()
+ self.model_name = model_name_or_path
+ self.tokenizer = AutoTokenizer.from_pretrained(base_name_or_path, use_fast=False)
+ model = AutoModelForCausalLM.from_pretrained(
+ base_name_or_path,
+ load_in_8bit=load_8bit,
+ device_map="auto"
+ )
+ self.model = PeftModel.from_pretrained(
+ model,
+ model_name_or_path
+ )
+ if self.tokenizer.pad_token_id == None:
+ self.tokenizer.add_special_tokens({"bos_token": "", "eos_token": "", "pad_token": ""})
+ self.model.resize_token_embeddings(len(self.tokenizer))
+ self.use_gpu = (True if device == "cuda" else False)
+ if (device == "cuda" and not cpu_offloading) or device == "mps":
+ self.model.to(device)
+
+ @property
+ def _llm_type(self) -> str:
+ return self.model_name
+
+ def _call(self, prompt: str, stop: Optional[List[str]] = None) -> str:
+ inputs = self.tokenizer(
+ prompt,
+ padding=True,
+ max_length=self.tokenizer.model_max_length,
+ truncation=True,
+ return_tensors="pt"
+ )
+ inputs_len = inputs["input_ids"].shape[1]
+ generated_outputs = self.model.generate(
+ input_ids=(inputs["input_ids"].cuda() if self.use_gpu else inputs["input_ids"]),
+ attention_mask=(inputs["attention_mask"].cuda() if self.use_gpu else inputs["attention_mask"]),
+ max_new_tokens=512,
+ eos_token_id=self.tokenizer.eos_token_id,
+ bos_token_id=self.tokenizer.bos_token_id,
+ pad_token_id=self.tokenizer.pad_token_id,
+ )
+ decoded_output = self.tokenizer.batch_decode(
+ generated_outputs[..., inputs_len:], skip_special_tokens=True)
+ output = decoded_output[0]
+ return output
+
+ @property
+ def _identifying_params(self) -> Mapping[str, Any]:
+ """Get the identifying parameters."""
+ return {"model_name": self.model_name}
+
+if __name__ == "__main__":
+ llm = LoraModel(base_name_or_path="huggyllama/llama-7b", model_name_or_path="pooruss-lsh/tool-llama7b-single-tool-lora")
+ print(llm("You are an task creation AI that uses the result of an execution agent to create new tasks with the following objective: What's the weather in Shanghai today? Should I bring an umbrella?, The last completed task has the result: According to the weather report, it is sunny in Shanghai today and there is no precipitation, so you do not need to bring an umbrella.. This result was based on this task description: Make a todo list about this objective: What's the weather in Shanghai today? Should I bring an umbrella?. These are incomplete tasks: . Based on the result, create new tasks to be completed by the AI system that do not overlap with incomplete tasks. Do not generate repetitive tasks (e.g., tasks that have already been completed). If there is not futher task needed to complete the objective, only return NO TASK. Now return the tasks as an array."))
\ No newline at end of file
diff --git a/swarms/models/opt_model.py b/swarms/models/opt_model.py
new file mode 100644
index 00000000..9e17c3fb
--- /dev/null
+++ b/swarms/models/opt_model.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+# coding=utf-8
+from langchain.llms.base import LLM
+from typing import Optional, List, Mapping, Any
+from transformers import AutoTokenizer, OPTForCausalLM
+
+
+class OPTModel(LLM):
+ model_name: str = ""
+ tokenizer: AutoTokenizer = None
+ model: OPTForCausalLM = None
+
+ def __init__(self, huggingface_model_name: str) -> None:
+ super().__init__()
+ self.model_name = huggingface_model_name
+ self.tokenizer = AutoTokenizer.from_pretrained(self.model_name)
+ self.model = OPTForCausalLM.from_pretrained(self.model_name)
+
+ @property
+ def _llm_type(self) -> str:
+ return self.model_name
+
+ def _call(self, prompt: str, stop: Optional[List[str]] = None) -> str:
+
+ inputs = self.tokenizer(
+ prompt,
+ padding=True,
+ max_length=512, # 512 by default,tokenizer.model_max_length=1000000000000000019884624838656
+ truncation=True,
+ return_tensors="pt"
+ )
+
+ inputs_len = inputs["input_ids"].shape[1]
+
+ generated_outputs = self.model.generate(
+ inputs['input_ids'],
+ max_new_tokens=512,
+ )
+ decoded_output = self.tokenizer.batch_decode(
+ generated_outputs[..., inputs_len:], skip_special_tokens=True, clean_up_tokenization_spaces=False)
+
+ output = decoded_output[0]
+ return output
+
+ @property
+ def _identifying_params(self) -> Mapping[str, Any]:
+ """Get the identifying parameters."""
+ return {"model_name": self.model_name}
+
+if __name__ == "__main__":
+ llm = OPTModel("facebook/opt-350m")
+ # print(llm("Hey, are you consciours? Can you talk to me?"))
+ print(llm("You are an task creation AI that uses the result of an execution agent to create new tasks with the following objective: What's the weather in Shanghai today? Should I bring an umbrella?, The last completed task has the result: According to the weather report, it is sunny in Shanghai today and there is no precipitation, so you do not need to bring an umbrella.. This result was based on this task description: Make a todo list about this objective: What's the weather in Shanghai today? Should I bring an umbrella?. These are incomplete tasks: . Based on the result, create new tasks to be completed by the AI system that do not overlap with incomplete tasks. Do not generate repetitive tasks (e.g., tasks that have already been completed). If there is not futher task needed to complete the objective, only return NO TASK. Now return the tasks as an array."))
+
diff --git a/swarms/models/t5_model.py b/swarms/models/t5_model.py
new file mode 100644
index 00000000..8b332f76
--- /dev/null
+++ b/swarms/models/t5_model.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+# coding=utf-8
+from langchain.llms.base import LLM
+from typing import Optional, List, Mapping, Any
+from transformers import T5Tokenizer, T5ForConditionalGeneration
+
+
+class T5Model(LLM):
+ model_name: str = ""
+ tokenizer: T5Tokenizer = None
+ model: T5ForConditionalGeneration = None
+
+ def __init__(self, huggingface_model_name: str) -> None:
+ super().__init__()
+ self.model_name = huggingface_model_name
+ self.tokenizer = T5Tokenizer.from_pretrained(self.model_name)
+ self.model = T5ForConditionalGeneration.from_pretrained(self.model_name)
+
+ @property
+ def _llm_type(self) -> str:
+ return self.model_name
+
+ def _call(self, prompt: str, stop: Optional[List[str]] = None) -> str:
+
+ inputs = self.tokenizer(
+ prompt,
+ padding=True,
+ max_length=self.tokenizer.model_max_length,
+ truncation=True,
+ return_tensors="pt"
+ )
+
+ # inputs_len = inputs["input_ids"].shape[1]
+
+ generated_outputs = self.model.generate(
+ inputs["input_ids"],
+ max_new_tokens=512,
+ )
+ decoded_output = self.tokenizer.batch_decode(
+ generated_outputs, skip_special_tokens=True, clean_up_tokenization_spaces=False)
+
+ output = decoded_output[0]
+ return output
+
+
+ @property
+ def _identifying_params(self) -> Mapping[str, Any]:
+ """Get the identifying parameters."""
+ return {"model_name": self.model_name}
+
+if __name__ == "__main__":
+ llm = T5Model("t5-small")
+ # print(llm("translate English to German: The house is wonderful."))
+ print(llm("You are an task creation AI that uses the result of an execution agent to create new tasks with the following objective: What's the weather in Shanghai today? Should I bring an umbrella?, The last completed task has the result: According to the weather report, it is sunny in Shanghai today and there is no precipitation, so you do not need to bring an umbrella.. This result was based on this task description: Make a todo list about this objective: What's the weather in Shanghai today? Should I bring an umbrella?. These are incomplete tasks: . Based on the result, create new tasks to be completed by the AI system that do not overlap with incomplete tasks. Do not generate repetitive tasks (e.g., tasks that have already been completed). If there is not futher task needed to complete the objective, only return NO TASK. Now return the tasks as an array."))
diff --git a/swarms/swarms/__init__.py b/swarms/swarms/__init__.py
index 05ef7491..24eb2207 100644
--- a/swarms/swarms/__init__.py
+++ b/swarms/swarms/__init__.py
@@ -1,16 +1,16 @@
-from swarms.swarms.dialogue_simulator import DialogueSimulator
-from swarms.swarms.autoscaler import AutoScaler
-from swarms.swarms.orchestrate import Orchestrator
-from swarms.swarms.god_mode import GodMode
-from swarms.swarms.simple_swarm import SimpleSwarm
-from swarms.swarms.multi_agent_debate import MultiAgentDebate, select_speaker
+# from swarms.swarms.dialogue_simulator import DialogueSimulator
+# # from swarms.swarms.autoscaler import AutoScaler
+# from swarms.swarms.orchestrate import Orchestrator
+# from swarms.swarms.god_mode import GodMode
+# from swarms.swarms.simple_swarm import SimpleSwarm
+# from swarms.swarms.multi_agent_debate import MultiAgentDebate, select_speaker
-__all__ = [
- "DialogueSimulator",
- "AutoScaler",
- "Orchestrator",
- "GodMode",
- "SimpleSwarm",
- "MultiAgentDebate",
- "select_speaker",
-]
+# __all__ = [
+# "DialogueSimulator",
+# "AutoScaler",
+# "Orchestrator",
+# "GodMode",
+# "SimpleSwarm",
+# "MultiAgentDebate",
+# "select_speaker",
+# ]
diff --git a/swarms/swarms/autoscaler.py b/swarms/swarms/autoscaler.py
index 5f6bedde..488a0b70 100644
--- a/swarms/swarms/autoscaler.py
+++ b/swarms/swarms/autoscaler.py
@@ -1,117 +1,117 @@
-import queue
-import threading
-from time import sleep
-from swarms.utils.decorators import error_decorator, log_decorator, timing_decorator
-from swarms.structs.flow import Flow
-
-
-class AutoScaler:
- """
- The AutoScaler is like a kubernetes pod, that autoscales an agent or worker or boss!
- # TODO Handle task assignment and task delegation
- # TODO: User task => decomposed into very small sub tasks => sub tasks assigned to workers => workers complete and update the swarm, can ask for help from other agents.
- # TODO: Missing, Task Assignment, Task delegation, Task completion, Swarm level communication with vector db
-
-
- Args:
-
- initial_agents (int, optional): Number of initial agents. Defaults to 10.
- scale_up_factor (int, optional): Scale up factor. Defaults to 1.
- idle_threshold (float, optional): Idle threshold. Defaults to 0.2.
- busy_threshold (float, optional): Busy threshold. Defaults to 0.7.
- agent ([type], optional): Agent. Defaults to None.
-
-
- Methods:
- add_task: Add task to queue
- scale_up: Scale up
- scale_down: Scale down
- monitor_and_scale: Monitor and scale
- start: Start scaling
- del_agent: Delete an agent
-
- Usage
- ```
- # usage of usage
- auto_scaler = AutoScaler(agent=YourCustomAgent)
- auto_scaler.start()
-
- for i in range(100):
- auto_scaler.add_task9f"task {I}})
- ```
- """
-
- @log_decorator
- @error_decorator
- @timing_decorator
- def __init__(
- self,
- initial_agents=10,
- scale_up_factor=1,
- idle_threshold=0.2,
- busy_threshold=0.7,
- agent=None,
- ):
- self.agent = agent or Flow
- self.agents_pool = [self.agent() for _ in range(initial_agents)]
- self.task_queue = queue.Queue()
- self.scale_up_factor = scale_up_factor
- self.idle_threshold = idle_threshold
- self.lock = threading.Lock()
-
- def add_task(self, task):
- """Add tasks to queue"""
- self.tasks_queue.put(task)
-
- @log_decorator
- @error_decorator
- @timing_decorator
- def scale_up(self):
- """Add more agents"""
- with self.lock:
- new_agents_counts = len(self.agents_pool) * self.scale_up_factor
- for _ in range(new_agents_counts):
- self.agents_pool.append(Flow())
-
- def scale_down(self):
- """scale down"""
- with self.lock:
- if len(self.agents_pool) > 10: # ensure minmum of 10 agents
- del self.agents_pool[-1] # remove last agent
-
- @log_decorator
- @error_decorator
- @timing_decorator
- def monitor_and_scale(self):
- """Monitor and scale"""
- while True:
- sleep(60) # check minute
- pending_tasks = self.task_queue.qsize()
- active_agents = sum([1 for agent in self.agents_pool if agent.is_busy()])
-
- if pending_tasks / len(self.agents_pool) > self.busy_threshold:
- self.scale_up()
- elif active_agents / len(self.agents_pool) < self.idle_threshold:
- self.scale_down()
-
- @log_decorator
- @error_decorator
- @timing_decorator
- def start(self):
- """Start scaling"""
- monitor_thread = threading.Thread(target=self.monitor_and_scale)
- monitor_thread.start()
-
- while True:
- task = self.task_queue.get()
- if task:
- available_agent = next((agent for agent in self.agents_pool))
- if available_agent:
- available_agent.run(task)
-
- # def del_agent(self):
- # """Delete an agent"""
- # with self.lock:
- # if self.agents_pool:
- # self.agents_poo.pop()
- # del agent_to_remove
+# import queue
+# import threading
+# from time import sleep
+# from swarms.utils.decorators import error_decorator, log_decorator, timing_decorator
+# from swarms.workers.worker import Worker
+
+
+# class AutoScaler:
+# """
+# The AutoScaler is like a kubernetes pod, that autoscales an agent or worker or boss!
+# # TODO Handle task assignment and task delegation
+# # TODO: User task => decomposed into very small sub tasks => sub tasks assigned to workers => workers complete and update the swarm, can ask for help from other agents.
+# # TODO: Missing, Task Assignment, Task delegation, Task completion, Swarm level communication with vector db
+
+
+# Args:
+
+# initial_agents (int, optional): Number of initial agents. Defaults to 10.
+# scale_up_factor (int, optional): Scale up factor. Defaults to 1.
+# idle_threshold (float, optional): Idle threshold. Defaults to 0.2.
+# busy_threshold (float, optional): Busy threshold. Defaults to 0.7.
+# agent ([type], optional): Agent. Defaults to None.
+
+
+# Methods:
+# add_task: Add task to queue
+# scale_up: Scale up
+# scale_down: Scale down
+# monitor_and_scale: Monitor and scale
+# start: Start scaling
+# del_agent: Delete an agent
+
+# Usage
+# ```
+# # usage of usage
+# auto_scaler = AutoScaler(agent=YourCustomAgent)
+# auto_scaler.start()
+
+# for i in range(100):
+# auto_scaler.add_task9f"task {I}})
+# ```
+# """
+
+# @log_decorator
+# @error_decorator
+# @timing_decorator
+# def __init__(
+# self,
+# initial_agents=10,
+# scale_up_factor=1,
+# idle_threshold=0.2,
+# busy_threshold=0.7,
+# agent=None,
+# ):
+# self.agent = agent or Worker
+# self.agents_pool = [self.agent() for _ in range(initial_agents)]
+# self.task_queue = queue.Queue()
+# self.scale_up_factor = scale_up_factor
+# self.idle_threshold = idle_threshold
+# self.lock = threading.Lock()
+
+# def add_task(self, task):
+# """Add tasks to queue"""
+# self.tasks_queue.put(task)
+
+# @log_decorator
+# @error_decorator
+# @timing_decorator
+# def scale_up(self):
+# """Add more agents"""
+# with self.lock:
+# new_agents_counts = len(self.agents_pool) * self.scale_up_factor
+# for _ in range(new_agents_counts):
+# self.agents_pool.append(Worker())
+
+# def scale_down(self):
+# """scale down"""
+# with self.lock:
+# if len(self.agents_pool) > 10: # ensure minmum of 10 agents
+# del self.agents_pool[-1] # remove last agent
+
+# @log_decorator
+# @error_decorator
+# @timing_decorator
+# def monitor_and_scale(self):
+# """Monitor and scale"""
+# while True:
+# sleep(60) # check minute
+# pending_tasks = self.task_queue.qsize()
+# active_agents = sum([1 for agent in self.agents_pool if agent.is_busy()])
+
+# if pending_tasks / len(self.agents_pool) > self.busy_threshold:
+# self.scale_up()
+# elif active_agents / len(self.agents_pool) < self.idle_threshold:
+# self.scale_down()
+
+# @log_decorator
+# @error_decorator
+# @timing_decorator
+# def start(self):
+# """Start scaling"""
+# monitor_thread = threading.Thread(target=self.monitor_and_scale)
+# monitor_thread.start()
+
+# while True:
+# task = self.task_queue.get()
+# if task:
+# available_agent = next((agent for agent in self.agents_pool))
+# if available_agent:
+# available_agent.run(task)
+
+# # def del_agent(self):
+# # """Delete an agent"""
+# # with self.lock:
+# # if self.agents_pool:
+# # self.agents_poo.pop()
+# # del agent_to_remove
diff --git a/swarms/tools/README.md b/swarms/tools.old/README.md
similarity index 100%
rename from swarms/tools/README.md
rename to swarms/tools.old/README.md
diff --git a/swarms/tools.old/__init__.py b/swarms/tools.old/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/swarms/tools/autogpt.py b/swarms/tools.old/autogpt.py
similarity index 100%
rename from swarms/tools/autogpt.py
rename to swarms/tools.old/autogpt.py
diff --git a/swarms/tools.old/exit_conversation.py b/swarms/tools.old/exit_conversation.py
new file mode 100644
index 00000000..d1543e14
--- /dev/null
+++ b/swarms/tools.old/exit_conversation.py
@@ -0,0 +1,22 @@
+from langchain.tools import tool
+
+from swarms.tools.base import BaseToolSet, SessionGetter, ToolScope
+from swarms.utils.logger import logger
+
+
+class ExitConversation(BaseToolSet):
+ @tool(
+ name="Exit Conversation",
+ description="A tool to exit the conversation. "
+ "Use this when you want to exit the conversation. "
+ "The input should be a message that the conversation is over.",
+ scope=ToolScope.SESSION,
+ )
+ def exit(self, message: str, get_session: SessionGetter) -> str:
+ """Run the tool."""
+ _, executor = get_session()
+ del executor
+
+ logger.debug("\nProcessed ExitConversation.")
+
+ return message
diff --git a/swarms/tools/mm_models.py b/swarms/tools.old/mm_models.py
similarity index 100%
rename from swarms/tools/mm_models.py
rename to swarms/tools.old/mm_models.py
diff --git a/swarms/tools.old/requests.py b/swarms/tools.old/requests.py
new file mode 100644
index 00000000..fa60e8e4
--- /dev/null
+++ b/swarms/tools.old/requests.py
@@ -0,0 +1,36 @@
+import requests
+from bs4 import BeautifulSoup
+
+from swarms.tools.base import BaseToolSet, tool
+from swarms.utils.logger import logger
+
+
+class RequestsGet(BaseToolSet):
+ @tool(
+ name="Requests Get",
+ description="A portal to the internet. "
+ "Use this when you need to get specific content from a website."
+ "Input should be a url (i.e. https://www.google.com)."
+ "The output will be the text response of the GET request.",
+ )
+ def get(self, url: str) -> str:
+ """Run the tool."""
+ html = requests.get(url).text
+ soup = BeautifulSoup(html)
+ non_readable_tags = soup.find_all(
+ ["script", "style", "header", "footer", "form"]
+ )
+
+ for non_readable_tag in non_readable_tags:
+ non_readable_tag.extract()
+
+ content = soup.get_text("\n", strip=True)
+
+ if len(content) > 300:
+ content = content[:300] + "..."
+
+ logger.debug(
+ f"\nProcessed RequestsGet, Input Url: {url} " f"Output Contents: {content}"
+ )
+
+ return content
diff --git a/swarms/tools.old/stt.py b/swarms/tools.old/stt.py
new file mode 100644
index 00000000..cfe3e656
--- /dev/null
+++ b/swarms/tools.old/stt.py
@@ -0,0 +1,125 @@
+# speech to text tool
+
+import os
+import subprocess
+
+import whisperx
+from pydub import AudioSegment
+from pytube import YouTube
+
+
+class SpeechToText:
+ def __init__(
+ self,
+ video_url,
+ audio_format="mp3",
+ device="cuda",
+ batch_size=16,
+ compute_type="float16",
+ hf_api_key=None,
+ ):
+ """
+ # Example usage
+ video_url = "url"
+ speech_to_text = SpeechToText(video_url)
+ transcription = speech_to_text.transcribe_youtube_video()
+ print(transcription)
+
+ """
+ self.video_url = video_url
+ self.audio_format = audio_format
+ self.device = device
+ self.batch_size = batch_size
+ self.compute_type = compute_type
+ self.hf_api_key = hf_api_key
+
+ def install(self):
+ subprocess.run(["pip", "install", "whisperx"])
+ subprocess.run(["pip", "install", "pytube"])
+ subprocess.run(["pip", "install", "pydub"])
+
+ def download_youtube_video(self):
+ audio_file = f"video.{self.audio_format}"
+
+ # Download video 📥
+ yt = YouTube(self.video_url)
+ yt_stream = yt.streams.filter(only_audio=True).first()
+ yt_stream.download(filename="video.mp4")
+
+ # Convert video to audio 🎧
+ video = AudioSegment.from_file("video.mp4", format="mp4")
+ video.export(audio_file, format=self.audio_format)
+ os.remove("video.mp4")
+
+ return audio_file
+
+ def transcribe_youtube_video(self):
+ audio_file = self.download_youtube_video()
+
+ device = "cuda"
+ batch_size = 16
+ compute_type = "float16"
+
+ # 1. Transcribe with original Whisper (batched) 🗣️
+ model = whisperx.load_model("large-v2", device, compute_type=compute_type)
+ audio = whisperx.load_audio(audio_file)
+ result = model.transcribe(audio, batch_size=batch_size)
+
+ # 2. Align Whisper output 🔍
+ model_a, metadata = whisperx.load_align_model(
+ language_code=result["language"], device=device
+ )
+ result = whisperx.align(
+ result["segments"],
+ model_a,
+ metadata,
+ audio,
+ device,
+ return_char_alignments=False,
+ )
+
+ # 3. Assign speaker labels 🏷️
+ diarize_model = whisperx.DiarizationPipeline(
+ use_auth_token=self.hf_api_key, device=device
+ )
+ diarize_model(audio_file)
+
+ try:
+ segments = result["segments"]
+ transcription = " ".join(segment["text"] for segment in segments)
+ return transcription
+ except KeyError:
+ print("The key 'segments' is not found in the result.")
+
+ def transcribe(self, audio_file):
+ model = whisperx.load_model("large-v2", self.device, self.compute_type)
+ audio = whisperx.load_audio(audio_file)
+ result = model.transcribe(audio, batch_size=self.batch_size)
+
+ # 2. Align Whisper output 🔍
+ model_a, metadata = whisperx.load_align_model(
+ language_code=result["language"], device=self.device
+ )
+
+ result = whisperx.align(
+ result["segments"],
+ model_a,
+ metadata,
+ audio,
+ self.device,
+ return_char_alignments=False,
+ )
+
+ # 3. Assign speaker labels 🏷️
+ diarize_model = whisperx.DiarizationPipeline(
+ use_auth_token=self.hf_api_key, device=self.device
+ )
+
+ diarize_model(audio_file)
+
+ try:
+ segments = result["segments"]
+ transcription = " ".join(segment["text"] for segment in segments)
+ return transcription
+ except KeyError:
+ print("The key 'segments' is not found in the result.")
diff --git a/swarms/tools.old/tool.py b/swarms/tools.old/tool.py
new file mode 100644
index 00000000..8f01ac0d
--- /dev/null
+++ b/swarms/tools.old/tool.py
@@ -0,0 +1,845 @@
+"""Base implementation for tools or skills."""
+from __future__ import annotations
+
+import asyncio
+import inspect
+import warnings
+from abc import abstractmethod
+from functools import partial
+from inspect import signature
+from typing import Any, Awaitable, Callable, Dict, List, Optional, Tuple, Type, Union
+
+from langchain.callbacks.base import BaseCallbackManager
+from langchain.callbacks.manager import (
+ AsyncCallbackManager,
+ AsyncCallbackManagerForToolRun,
+ CallbackManager,
+ CallbackManagerForToolRun,
+ Callbacks,
+)
+
+from langchain.load.serializable import Serializable
+from langchain.pydantic_v1 import (
+ BaseModel,
+ Extra,
+ Field,
+ create_model,
+ root_validator,
+ validate_arguments,
+)
+from langchain.schema.runnable import Runnable, RunnableConfig, RunnableSerializable
+
+
+class SchemaAnnotationError(TypeError):
+ """Raised when 'args_schema' is missing or has an incorrect type annotation."""
+
+
+def _create_subset_model(
+ name: str, model: BaseModel, field_names: list
+) -> Type[BaseModel]:
+ """Create a pydantic model with only a subset of model's fields."""
+ fields = {}
+ for field_name in field_names:
+ field = model.__fields__[field_name]
+ fields[field_name] = (field.outer_type_, field.field_info)
+ return create_model(name, **fields) # type: ignore
+
+
+def _get_filtered_args(
+ inferred_model: Type[BaseModel],
+ func: Callable,
+) -> dict:
+ """Get the arguments from a function's signature."""
+ schema = inferred_model.schema()["properties"]
+ valid_keys = signature(func).parameters
+ return {k: schema[k] for k in valid_keys if k not in ("run_manager", "callbacks")}
+
+
+class _SchemaConfig:
+ """Configuration for the pydantic model."""
+
+ extra: Any = Extra.forbid
+ arbitrary_types_allowed: bool = True
+
+
+def create_schema_from_function(
+ model_name: str,
+ func: Callable,
+) -> Type[BaseModel]:
+ """Create a pydantic schema from a function's signature.
+ Args:
+ model_name: Name to assign to the generated pydandic schema
+ func: Function to generate the schema from
+ Returns:
+ A pydantic model with the same arguments as the function
+ """
+ # https://docs.pydantic.dev/latest/usage/validation_decorator/
+ validated = validate_arguments(func, config=_SchemaConfig) # type: ignore
+ inferred_model = validated.model # type: ignore
+ if "run_manager" in inferred_model.__fields__:
+ del inferred_model.__fields__["run_manager"]
+ if "callbacks" in inferred_model.__fields__:
+ del inferred_model.__fields__["callbacks"]
+ # Pydantic adds placeholder virtual fields we need to strip
+ valid_properties = _get_filtered_args(inferred_model, func)
+ return _create_subset_model(
+ f"{model_name}Schema", inferred_model, list(valid_properties)
+ )
+
+
+class ToolException(Exception):
+ """An optional exception that tool throws when execution error occurs.
+
+ When this exception is thrown, the agent will not stop working,
+ but will handle the exception according to the handle_tool_error
+ variable of the tool, and the processing result will be returned
+ to the agent as observation, and printed in red on the console.
+ """
+
+ pass
+
+
+class BaseTool(RunnableSerializable[Union[str, Dict], Any]):
+ """Interface LangChain tools must implement."""
+
+ def __init_subclass__(cls, **kwargs: Any) -> None:
+ """Create the definition of the new tool class."""
+ super().__init_subclass__(**kwargs)
+
+ args_schema_type = cls.__annotations__.get("args_schema", None)
+
+ if args_schema_type is not None:
+ if args_schema_type is None or args_schema_type == BaseModel:
+ # Throw errors for common mis-annotations.
+ # TODO: Use get_args / get_origin and fully
+ # specify valid annotations.
+ typehint_mandate = """
+class ChildTool(BaseTool):
+ ...
+ args_schema: Type[BaseModel] = SchemaClass
+ ..."""
+ name = cls.__name__
+ raise SchemaAnnotationError(
+ f"Tool definition for {name} must include valid type annotations"
+ f" for argument 'args_schema' to behave as expected.\n"
+ f"Expected annotation of 'Type[BaseModel]'"
+ f" but got '{args_schema_type}'.\n"
+ f"Expected class looks like:\n"
+ f"{typehint_mandate}"
+ )
+
+ name: str
+ """The unique name of the tool that clearly communicates its purpose."""
+ description: str
+ """Used to tell the model how/when/why to use the tool.
+
+ You can provide few-shot examples as a part of the description.
+ """
+ args_schema: Optional[Type[BaseModel]] = None
+ """Pydantic model class to validate and parse the tool's input arguments."""
+ return_direct: bool = False
+ """Whether to return the tool's output directly. Setting this to True means
+
+ that after the tool is called, the AgentExecutor will stop looping.
+ """
+ verbose: bool = False
+ """Whether to log the tool's progress."""
+
+ callbacks: Callbacks = Field(default=None, exclude=True)
+ """Callbacks to be called during tool execution."""
+ callback_manager: Optional[BaseCallbackManager] = Field(default=None, exclude=True)
+ """Deprecated. Please use callbacks instead."""
+ tags: Optional[List[str]] = None
+ """Optional list of tags associated with the tool. Defaults to None
+ These tags will be associated with each call to this tool,
+ and passed as arguments to the handlers defined in `callbacks`.
+ You can use these to eg identify a specific instance of a tool with its use case.
+ """
+ metadata: Optional[Dict[str, Any]] = None
+ """Optional metadata associated with the tool. Defaults to None
+ This metadata will be associated with each call to this tool,
+ and passed as arguments to the handlers defined in `callbacks`.
+ You can use these to eg identify a specific instance of a tool with its use case.
+ """
+
+ handle_tool_error: Optional[
+ Union[bool, str, Callable[[ToolException], str]]
+ ] = False
+ """Handle the content of the ToolException thrown."""
+
+ class Config(Serializable.Config):
+ """Configuration for this pydantic object."""
+
+ arbitrary_types_allowed = True
+
+ @property
+ def is_single_input(self) -> bool:
+ """Whether the tool only accepts a single input."""
+ keys = {k for k in self.args if k != "kwargs"}
+ return len(keys) == 1
+
+ @property
+ def args(self) -> dict:
+ if self.args_schema is not None:
+ return self.args_schema.schema()["properties"]
+ else:
+ schema = create_schema_from_function(self.name, self._run)
+ return schema.schema()["properties"]
+
+ # --- Runnable ---
+
+ @property
+ def input_schema(self) -> Type[BaseModel]:
+ """The tool's input schema."""
+ if self.args_schema is not None:
+ return self.args_schema
+ else:
+ return create_schema_from_function(self.name, self._run)
+
+ def invoke(
+ self,
+ input: Union[str, Dict],
+ config: Optional[RunnableConfig] = None,
+ **kwargs: Any,
+ ) -> Any:
+ config = config or {}
+ return self.run(
+ input,
+ callbacks=config.get("callbacks"),
+ tags=config.get("tags"),
+ metadata=config.get("metadata"),
+ run_name=config.get("run_name"),
+ **kwargs,
+ )
+
+ async def ainvoke(
+ self,
+ input: Union[str, Dict],
+ config: Optional[RunnableConfig] = None,
+ **kwargs: Any,
+ ) -> Any:
+ config = config or {}
+ return await self.arun(
+ input,
+ callbacks=config.get("callbacks"),
+ tags=config.get("tags"),
+ metadata=config.get("metadata"),
+ run_name=config.get("run_name"),
+ **kwargs,
+ )
+
+ # --- Tool ---
+
+ def _parse_input(
+ self,
+ tool_input: Union[str, Dict],
+ ) -> Union[str, Dict[str, Any]]:
+ """Convert tool input to pydantic model."""
+ input_args = self.args_schema
+ if isinstance(tool_input, str):
+ if input_args is not None:
+ key_ = next(iter(input_args.__fields__.keys()))
+ input_args.validate({key_: tool_input})
+ return tool_input
+ else:
+ if input_args is not None:
+ result = input_args.parse_obj(tool_input)
+ return {k: v for k, v in result.dict().items() if k in tool_input}
+ return tool_input
+
+ @root_validator()
+ def raise_deprecation(cls, values: Dict) -> Dict:
+ """Raise deprecation warning if callback_manager is used."""
+ if values.get("callback_manager") is not None:
+ warnings.warn(
+ "callback_manager is deprecated. Please use callbacks instead.",
+ DeprecationWarning,
+ )
+ values["callbacks"] = values.pop("callback_manager", None)
+ return values
+
+ @abstractmethod
+ def _run(
+ self,
+ *args: Any,
+ **kwargs: Any,
+ ) -> Any:
+ """Use the tool.
+
+ Add run_manager: Optional[CallbackManagerForToolRun] = None
+ to child implementations to enable tracing,
+ """
+
+ async def _arun(
+ self,
+ *args: Any,
+ **kwargs: Any,
+ ) -> Any:
+ """Use the tool asynchronously.
+
+ Add run_manager: Optional[AsyncCallbackManagerForToolRun] = None
+ to child implementations to enable tracing,
+ """
+ return await asyncio.get_running_loop().run_in_executor(
+ None,
+ partial(self._run, **kwargs),
+ *args,
+ )
+
+ def _to_args_and_kwargs(self, tool_input: Union[str, Dict]) -> Tuple[Tuple, Dict]:
+ # For backwards compatibility, if run_input is a string,
+ # pass as a positional argument.
+ if isinstance(tool_input, str):
+ return (tool_input,), {}
+ else:
+ return (), tool_input
+
+ def run(
+ self,
+ tool_input: Union[str, Dict],
+ verbose: Optional[bool] = None,
+ start_color: Optional[str] = "green",
+ color: Optional[str] = "green",
+ callbacks: Callbacks = None,
+ *,
+ tags: Optional[List[str]] = None,
+ metadata: Optional[Dict[str, Any]] = None,
+ run_name: Optional[str] = None,
+ **kwargs: Any,
+ ) -> Any:
+ """Run the tool."""
+ parsed_input = self._parse_input(tool_input)
+ if not self.verbose and verbose is not None:
+ verbose_ = verbose
+ else:
+ verbose_ = self.verbose
+ callback_manager = CallbackManager.configure(
+ callbacks,
+ self.callbacks,
+ verbose_,
+ tags,
+ self.tags,
+ metadata,
+ self.metadata,
+ )
+ # TODO: maybe also pass through run_manager is _run supports kwargs
+ new_arg_supported = signature(self._run).parameters.get("run_manager")
+ run_manager = callback_manager.on_tool_start(
+ {"name": self.name, "description": self.description},
+ tool_input if isinstance(tool_input, str) else str(tool_input),
+ color=start_color,
+ name=run_name,
+ **kwargs,
+ )
+ try:
+ tool_args, tool_kwargs = self._to_args_and_kwargs(parsed_input)
+ observation = (
+ self._run(*tool_args, run_manager=run_manager, **tool_kwargs)
+ if new_arg_supported
+ else self._run(*tool_args, **tool_kwargs)
+ )
+ except ToolException as e:
+ if not self.handle_tool_error:
+ run_manager.on_tool_error(e)
+ raise e
+ elif isinstance(self.handle_tool_error, bool):
+ if e.args:
+ observation = e.args[0]
+ else:
+ observation = "Tool execution error"
+ elif isinstance(self.handle_tool_error, str):
+ observation = self.handle_tool_error
+ elif callable(self.handle_tool_error):
+ observation = self.handle_tool_error(e)
+ else:
+ raise ValueError(
+ f"Got unexpected type of `handle_tool_error`. Expected bool, str "
+ f"or callable. Received: {self.handle_tool_error}"
+ )
+ run_manager.on_tool_end(
+ str(observation), color="red", name=self.name, **kwargs
+ )
+ return observation
+ except (Exception, KeyboardInterrupt) as e:
+ run_manager.on_tool_error(e)
+ raise e
+ else:
+ run_manager.on_tool_end(
+ str(observation), color=color, name=self.name, **kwargs
+ )
+ return observation
+
+ async def arun(
+ self,
+ tool_input: Union[str, Dict],
+ verbose: Optional[bool] = None,
+ start_color: Optional[str] = "green",
+ color: Optional[str] = "green",
+ callbacks: Callbacks = None,
+ *,
+ tags: Optional[List[str]] = None,
+ metadata: Optional[Dict[str, Any]] = None,
+ run_name: Optional[str] = None,
+ **kwargs: Any,
+ ) -> Any:
+ """Run the tool asynchronously."""
+ parsed_input = self._parse_input(tool_input)
+ if not self.verbose and verbose is not None:
+ verbose_ = verbose
+ else:
+ verbose_ = self.verbose
+ callback_manager = AsyncCallbackManager.configure(
+ callbacks,
+ self.callbacks,
+ verbose_,
+ tags,
+ self.tags,
+ metadata,
+ self.metadata,
+ )
+ new_arg_supported = signature(self._arun).parameters.get("run_manager")
+ run_manager = await callback_manager.on_tool_start(
+ {"name": self.name, "description": self.description},
+ tool_input if isinstance(tool_input, str) else str(tool_input),
+ color=start_color,
+ name=run_name,
+ **kwargs,
+ )
+ try:
+ # We then call the tool on the tool input to get an observation
+ tool_args, tool_kwargs = self._to_args_and_kwargs(parsed_input)
+ observation = (
+ await self._arun(*tool_args, run_manager=run_manager, **tool_kwargs)
+ if new_arg_supported
+ else await self._arun(*tool_args, **tool_kwargs)
+ )
+ except ToolException as e:
+ if not self.handle_tool_error:
+ await run_manager.on_tool_error(e)
+ raise e
+ elif isinstance(self.handle_tool_error, bool):
+ if e.args:
+ observation = e.args[0]
+ else:
+ observation = "Tool execution error"
+ elif isinstance(self.handle_tool_error, str):
+ observation = self.handle_tool_error
+ elif callable(self.handle_tool_error):
+ observation = self.handle_tool_error(e)
+ else:
+ raise ValueError(
+ f"Got unexpected type of `handle_tool_error`. Expected bool, str "
+ f"or callable. Received: {self.handle_tool_error}"
+ )
+ await run_manager.on_tool_end(
+ str(observation), color="red", name=self.name, **kwargs
+ )
+ return observation
+ except (Exception, KeyboardInterrupt) as e:
+ await run_manager.on_tool_error(e)
+ raise e
+ else:
+ await run_manager.on_tool_end(
+ str(observation), color=color, name=self.name, **kwargs
+ )
+ return observation
+
+ def __call__(self, tool_input: str, callbacks: Callbacks = None) -> str:
+ """Make tool callable."""
+ return self.run(tool_input, callbacks=callbacks)
+
+
+class Tool(BaseTool):
+ """Tool that takes in function or coroutine directly."""
+
+ description: str = ""
+ func: Optional[Callable[..., str]]
+ """The function to run when the tool is called."""
+ coroutine: Optional[Callable[..., Awaitable[str]]] = None
+ """The asynchronous version of the function."""
+
+ # --- Runnable ---
+
+ async def ainvoke(
+ self,
+ input: Union[str, Dict],
+ config: Optional[RunnableConfig] = None,
+ **kwargs: Any,
+ ) -> Any:
+ if not self.coroutine:
+ # If the tool does not implement async, fall back to default implementation
+ return await asyncio.get_running_loop().run_in_executor(
+ None, partial(self.invoke, input, config, **kwargs)
+ )
+
+ return await super().ainvoke(input, config, **kwargs)
+
+ # --- Tool ---
+
+ @property
+ def args(self) -> dict:
+ """The tool's input arguments."""
+ if self.args_schema is not None:
+ return self.args_schema.schema()["properties"]
+ # For backwards compatibility, if the function signature is ambiguous,
+ # assume it takes a single string input.
+ return {"tool_input": {"type": "string"}}
+
+ def _to_args_and_kwargs(self, tool_input: Union[str, Dict]) -> Tuple[Tuple, Dict]:
+ """Convert tool input to pydantic model."""
+ args, kwargs = super()._to_args_and_kwargs(tool_input)
+ # For backwards compatibility. The tool must be run with a single input
+ all_args = list(args) + list(kwargs.values())
+ if len(all_args) != 1:
+ raise ToolException(
+ f"Too many arguments to single-input tool {self.name}."
+ f" Args: {all_args}"
+ )
+ return tuple(all_args), {}
+
+ def _run(
+ self,
+ *args: Any,
+ run_manager: Optional[CallbackManagerForToolRun] = None,
+ **kwargs: Any,
+ ) -> Any:
+ """Use the tool."""
+ if self.func:
+ new_argument_supported = signature(self.func).parameters.get("callbacks")
+ return (
+ self.func(
+ *args,
+ callbacks=run_manager.get_child() if run_manager else None,
+ **kwargs,
+ )
+ if new_argument_supported
+ else self.func(*args, **kwargs)
+ )
+ raise NotImplementedError("Tool does not support sync")
+
+ async def _arun(
+ self,
+ *args: Any,
+ run_manager: Optional[AsyncCallbackManagerForToolRun] = None,
+ **kwargs: Any,
+ ) -> Any:
+ """Use the tool asynchronously."""
+ if self.coroutine:
+ new_argument_supported = signature(self.coroutine).parameters.get(
+ "callbacks"
+ )
+ return (
+ await self.coroutine(
+ *args,
+ callbacks=run_manager.get_child() if run_manager else None,
+ **kwargs,
+ )
+ if new_argument_supported
+ else await self.coroutine(*args, **kwargs)
+ )
+ else:
+ return await asyncio.get_running_loop().run_in_executor(
+ None, partial(self._run, run_manager=run_manager, **kwargs), *args
+ )
+
+ # TODO: this is for backwards compatibility, remove in future
+ def __init__(
+ self, name: str, func: Optional[Callable], description: str, **kwargs: Any
+ ) -> None:
+ """Initialize tool."""
+ super(Tool, self).__init__(
+ name=name, func=func, description=description, **kwargs
+ )
+
+ @classmethod
+ def from_function(
+ cls,
+ func: Optional[Callable],
+ name: str, # We keep these required to support backwards compatibility
+ description: str,
+ return_direct: bool = False,
+ args_schema: Optional[Type[BaseModel]] = None,
+ coroutine: Optional[
+ Callable[..., Awaitable[Any]]
+ ] = None, # This is last for compatibility, but should be after func
+ **kwargs: Any,
+ ) -> Tool:
+ """Initialize tool from a function."""
+ if func is None and coroutine is None:
+ raise ValueError("Function and/or coroutine must be provided")
+ return cls(
+ name=name,
+ func=func,
+ coroutine=coroutine,
+ description=description,
+ return_direct=return_direct,
+ args_schema=args_schema,
+ **kwargs,
+ )
+
+
+class StructuredTool(BaseTool):
+ """Tool that can operate on any number of inputs."""
+
+ description: str = ""
+ args_schema: Type[BaseModel] = Field(..., description="The tool schema.")
+ """The input arguments' schema."""
+ func: Optional[Callable[..., Any]]
+ """The function to run when the tool is called."""
+ coroutine: Optional[Callable[..., Awaitable[Any]]] = None
+ """The asynchronous version of the function."""
+
+ # --- Runnable ---
+
+ async def ainvoke(
+ self,
+ input: Union[str, Dict],
+ config: Optional[RunnableConfig] = None,
+ **kwargs: Any,
+ ) -> Any:
+ if not self.coroutine:
+ # If the tool does not implement async, fall back to default implementation
+ return await asyncio.get_running_loop().run_in_executor(
+ None, partial(self.invoke, input, config, **kwargs)
+ )
+
+ return await super().ainvoke(input, config, **kwargs)
+
+ # --- Tool ---
+
+ @property
+ def args(self) -> dict:
+ """The tool's input arguments."""
+ return self.args_schema.schema()["properties"]
+
+ def _run(
+ self,
+ *args: Any,
+ run_manager: Optional[CallbackManagerForToolRun] = None,
+ **kwargs: Any,
+ ) -> Any:
+ """Use the tool."""
+ if self.func:
+ new_argument_supported = signature(self.func).parameters.get("callbacks")
+ return (
+ self.func(
+ *args,
+ callbacks=run_manager.get_child() if run_manager else None,
+ **kwargs,
+ )
+ if new_argument_supported
+ else self.func(*args, **kwargs)
+ )
+ raise NotImplementedError("Tool does not support sync")
+
+ async def _arun(
+ self,
+ *args: Any,
+ run_manager: Optional[AsyncCallbackManagerForToolRun] = None,
+ **kwargs: Any,
+ ) -> str:
+ """Use the tool asynchronously."""
+ if self.coroutine:
+ new_argument_supported = signature(self.coroutine).parameters.get(
+ "callbacks"
+ )
+ return (
+ await self.coroutine(
+ *args,
+ callbacks=run_manager.get_child() if run_manager else None,
+ **kwargs,
+ )
+ if new_argument_supported
+ else await self.coroutine(*args, **kwargs)
+ )
+ return await asyncio.get_running_loop().run_in_executor(
+ None,
+ partial(self._run, run_manager=run_manager, **kwargs),
+ *args,
+ )
+
+ @classmethod
+ def from_function(
+ cls,
+ func: Optional[Callable] = None,
+ coroutine: Optional[Callable[..., Awaitable[Any]]] = None,
+ name: Optional[str] = None,
+ description: Optional[str] = None,
+ return_direct: bool = False,
+ args_schema: Optional[Type[BaseModel]] = None,
+ infer_schema: bool = True,
+ **kwargs: Any,
+ ) -> StructuredTool:
+ """Create tool from a given function.
+
+ A classmethod that helps to create a tool from a function.
+
+ Args:
+ func: The function from which to create a tool
+ coroutine: The async function from which to create a tool
+ name: The name of the tool. Defaults to the function name
+ description: The description of the tool. Defaults to the function docstring
+ return_direct: Whether to return the result directly or as a callback
+ args_schema: The schema of the tool's input arguments
+ infer_schema: Whether to infer the schema from the function's signature
+ **kwargs: Additional arguments to pass to the tool
+
+ Returns:
+ The tool
+
+ Examples:
+
+ .. code-block:: python
+
+ def add(a: int, b: int) -> int:
+ \"\"\"Add two numbers\"\"\"
+ return a + b
+ tool = StructuredTool.from_function(add)
+ tool.run(1, 2) # 3
+ """
+
+ if func is not None:
+ source_function = func
+ elif coroutine is not None:
+ source_function = coroutine
+ else:
+ raise ValueError("Function and/or coroutine must be provided")
+ name = name or source_function.__name__
+ description = description or source_function.__doc__
+ if description is None:
+ raise ValueError(
+ "Function must have a docstring if description not provided."
+ )
+
+ # Description example:
+ # search_api(query: str) - Searches the API for the query.
+ sig = signature(source_function)
+ description = f"{name}{sig} - {description.strip()}"
+ _args_schema = args_schema
+ if _args_schema is None and infer_schema:
+ _args_schema = create_schema_from_function(f"{name}Schema", source_function)
+ return cls(
+ name=name,
+ func=func,
+ coroutine=coroutine,
+ args_schema=_args_schema,
+ description=description,
+ return_direct=return_direct,
+ **kwargs,
+ )
+
+
+def tool(
+ *args: Union[str, Callable, Runnable],
+ return_direct: bool = False,
+ args_schema: Optional[Type[BaseModel]] = None,
+ infer_schema: bool = True,
+) -> Callable:
+ """Make tools out of functions, can be used with or without arguments.
+
+ Args:
+ *args: The arguments to the tool.
+ return_direct: Whether to return directly from the tool rather
+ than continuing the agent loop.
+ args_schema: optional argument schema for user to specify
+ infer_schema: Whether to infer the schema of the arguments from
+ the function's signature. This also makes the resultant tool
+ accept a dictionary input to its `run()` function.
+
+ Requires:
+ - Function must be of type (str) -> str
+ - Function must have a docstring
+
+ Examples:
+ .. code-block:: python
+
+ @tool
+ def search_api(query: str) -> str:
+ # Searches the API for the query.
+ return
+
+ @tool("search", return_direct=True)
+ def search_api(query: str) -> str:
+ # Searches the API for the query.
+ return
+ """
+
+ def _make_with_name(tool_name: str) -> Callable:
+ def _make_tool(dec_func: Union[Callable, Runnable]) -> BaseTool:
+ if isinstance(dec_func, Runnable):
+ runnable = dec_func
+
+ if runnable.input_schema.schema().get("type") != "object":
+ raise ValueError("Runnable must have an object schema.")
+
+ async def ainvoke_wrapper(
+ callbacks: Optional[Callbacks] = None, **kwargs: Any
+ ) -> Any:
+ return await runnable.ainvoke(kwargs, {"callbacks": callbacks})
+
+ def invoke_wrapper(
+ callbacks: Optional[Callbacks] = None, **kwargs: Any
+ ) -> Any:
+ return runnable.invoke(kwargs, {"callbacks": callbacks})
+
+ coroutine = ainvoke_wrapper
+ func = invoke_wrapper
+ schema: Optional[Type[BaseModel]] = runnable.input_schema
+ description = repr(runnable)
+ elif inspect.iscoroutinefunction(dec_func):
+ coroutine = dec_func
+ func = None
+ schema = args_schema
+ description = None
+ else:
+ coroutine = None
+ func = dec_func
+ schema = args_schema
+ description = None
+
+ if infer_schema or args_schema is not None:
+ return StructuredTool.from_function(
+ func,
+ coroutine,
+ name=tool_name,
+ description=description,
+ return_direct=return_direct,
+ args_schema=schema,
+ infer_schema=infer_schema,
+ )
+ # If someone doesn't want a schema applied, we must treat it as
+ # a simple string->string function
+ if func.__doc__ is None:
+ raise ValueError(
+ "Function must have a docstring if "
+ "description not provided and infer_schema is False."
+ )
+ return Tool(
+ name=tool_name,
+ func=func,
+ description=f"{tool_name} tool",
+ return_direct=return_direct,
+ coroutine=coroutine,
+ )
+
+ return _make_tool
+
+ if len(args) == 2 and isinstance(args[0], str) and isinstance(args[1], Runnable):
+ return _make_with_name(args[0])(args[1])
+ elif len(args) == 1 and isinstance(args[0], str):
+ # if the argument is a string, then we use the string as the tool name
+ # Example usage: @tool("search", return_direct=True)
+ return _make_with_name(args[0])
+ elif len(args) == 1 and callable(args[0]):
+ # if the argument is a function, then we use the function name as the tool name
+ # Example usage: @tool
+ return _make_with_name(args[0].__name__)(args[0])
+ elif len(args) == 0:
+ # if there are no arguments, then we use the function name as the tool name
+ # Example usage: @tool(return_direct=True)
+ def _partial(func: Callable[[str], str]) -> BaseTool:
+ return _make_with_name(func.__name__)(func)
+
+ return _partial
+ else:
+ raise ValueError("Too many arguments for tool decorator")
diff --git a/swarms/tools/tool_registry.py b/swarms/tools.old/tool_registry.py
similarity index 100%
rename from swarms/tools/tool_registry.py
rename to swarms/tools.old/tool_registry.py
diff --git a/swarms/tools/BabyagiTools.py b/swarms/tools/BabyagiTools.py
new file mode 100644
index 00000000..b32dfc3b
--- /dev/null
+++ b/swarms/tools/BabyagiTools.py
@@ -0,0 +1,317 @@
+from collections import deque
+from typing import Dict, List, Optional, Any
+import re
+
+from langchain import LLMChain, OpenAI, PromptTemplate, SerpAPIWrapper
+from langchain.embeddings import OpenAIEmbeddings
+from langchain.llms import BaseLLM
+from langchain.vectorstores.base import VectorStore
+from pydantic import BaseModel, Field
+from langchain.chains.base import Chain
+
+from langchain.vectorstores import FAISS
+import faiss
+from langchain.docstore import InMemoryDocstore
+from langchain.agents import ZeroShotAgent, Tool, AgentExecutor
+from .executor import Executor, AgentExecutorWithTranslation
+
+class ContextAwareAgent(ZeroShotAgent):
+ def get_full_inputs(
+ self, intermediate_steps, **kwargs: Any
+ ) -> Dict[str, Any]:
+ """Create the full inputs for the LLMChain from intermediate steps."""
+ thoughts = self._construct_scratchpad(intermediate_steps)
+ new_inputs = {"agent_scratchpad": thoughts, "stop": self._stop}
+ full_inputs = {**kwargs, **new_inputs}
+ return full_inputs
+
+ def _construct_scratchpad(self, intermediate_steps):
+ """Construct the scratchpad that lets the agent continue its thought process."""
+ thoughts = ""
+ # only modify the following line, [-2: ]
+ for action, observation in intermediate_steps[-2: ]:
+ thoughts += action.log
+ thoughts += f"\n{self.observation_prefix}{observation}\n{self.llm_prefix}"
+ if "is not a valid tool, try another one" in observation:
+ thoughts += "You should select another tool rather than the invalid one.\n"
+ return thoughts
+
+class TaskCreationChain(LLMChain):
+ """Chain to generates tasks."""
+
+ @classmethod
+ def from_llm(cls, llm: BaseLLM, verbose: bool = True) -> LLMChain:
+ """Get the response parser."""
+ task_creation_template = (
+ "You are an task creation AI that uses the result of an execution agent"
+ " to create new tasks with the following objective: {objective},"
+ " The last completed task has the result: {result}."
+ " This result was based on this task description: {task_description}."
+ " These are incomplete tasks: {incomplete_tasks}."
+ " Based on the result, create new tasks to be completed"
+ " by the AI system that do not overlap with incomplete tasks."
+ " For a simple objective, do not generate complex todo lists."
+ " Do not generate repetitive tasks (e.g., tasks that have already been completed)."
+ " If there is not futher task needed to complete the objective, return NO TASK."
+ " Now return the tasks as an array."
+ )
+ prompt = PromptTemplate(
+ template=task_creation_template,
+ input_variables=["result", "task_description", "incomplete_tasks", "objective"],
+ )
+ return cls(prompt=prompt, llm=llm, verbose=verbose)
+
+class InitialTaskCreationChain(LLMChain):
+ """Chain to generates tasks."""
+
+ @classmethod
+ def from_llm(cls, llm: BaseLLM, verbose: bool = True) -> LLMChain:
+ """Get the response parser."""
+ task_creation_template = (
+ "You are a planner who is an expert at coming up with a todo list for a given objective. For a simple objective, do not generate a complex todo list. Generate the first (only one) task needed to do for this objective: {objective}"
+ )
+ prompt = PromptTemplate(
+ template=task_creation_template,
+ input_variables=["objective"],
+ )
+ return cls(prompt=prompt, llm=llm, verbose=verbose)
+
+class TaskPrioritizationChain(LLMChain):
+ """Chain to prioritize tasks."""
+
+ @classmethod
+ def from_llm(cls, llm: BaseLLM, verbose: bool = True) -> LLMChain:
+ """Get the response parser."""
+ task_prioritization_template = (
+ "You are an task prioritization AI tasked with cleaning the formatting of and reprioritizing"
+ " the following tasks: {task_names}."
+ " Consider the ultimate objective of your team: {objective}."
+ " Do not make up any tasks, just reorganize the existing tasks."
+ " Do not remove any tasks. Return the result as a numbered list, like:"
+ " #. First task"
+ " #. Second task"
+ " Start the task list with number {next_task_id}. (e.g., 2. ***, 3. ***, etc.)"
+ )
+ prompt = PromptTemplate(
+ template=task_prioritization_template,
+ input_variables=["task_names", "next_task_id", "objective"],
+ )
+ return cls(prompt=prompt, llm=llm, verbose=verbose)
+
+def get_next_task(task_creation_chain: LLMChain, result: Dict, task_description: str, task_list: List[str], objective: str) -> List[Dict]:
+ """Get the next task."""
+ incomplete_tasks = ", ".join(task_list)
+ response = task_creation_chain.run(result=result, task_description=task_description, incomplete_tasks=incomplete_tasks, objective=objective)
+ # change the split method to re matching
+ # new_tasks = response.split('\n')
+ task_pattern = re.compile(r'\d+\. (.+?)\n')
+ new_tasks = task_pattern.findall(response)
+
+ return [{"task_name": task_name} for task_name in new_tasks if task_name.strip()]
+
+def prioritize_tasks(task_prioritization_chain: LLMChain, this_task_id: int, task_list: List[Dict], objective: str) -> List[Dict]:
+ """Prioritize tasks."""
+ task_names = [t["task_name"] for t in task_list]
+ next_task_id = int(this_task_id) + 1
+ response = task_prioritization_chain.run(task_names=task_names, next_task_id=next_task_id, objective=objective)
+ new_tasks = response.split('\n')
+ prioritized_task_list = []
+ for task_string in new_tasks:
+ if not task_string.strip():
+ continue
+ task_parts = task_string.strip().split(".", 1)
+ if len(task_parts) == 2:
+ task_id = task_parts[0].strip()
+ task_name = task_parts[1].strip()
+ prioritized_task_list.append({"task_id": task_id, "task_name": task_name})
+ return prioritized_task_list
+
+def _get_top_tasks(vectorstore, query: str, k: int) -> List[str]:
+ """Get the top k tasks based on the query."""
+ results = vectorstore.similarity_search_with_score(query, k=k)
+ if not results:
+ return []
+ sorted_results, _ = zip(*sorted(results, key=lambda x: x[1], reverse=True))
+ return [str(item.metadata['task']) for item in sorted_results]
+
+def execute_task(vectorstore, execution_chain: LLMChain, objective: str, task: str, k: int = 5) -> str:
+ """Execute a task."""
+ context = _get_top_tasks(vectorstore, query=objective, k=k)
+ return execution_chain.run(objective=objective, context=context, task=task)
+
+class BabyAGI(Chain, BaseModel):
+ """Controller model for the BabyAGI agent."""
+
+ task_list: deque = Field(default_factory=deque)
+ task_creation_chain: TaskCreationChain = Field(...)
+ task_prioritization_chain: TaskPrioritizationChain = Field(...)
+ initial_task_creation_chain: InitialTaskCreationChain = Field(...)
+ execution_chain: AgentExecutor = Field(...)
+ task_id_counter: int = Field(1)
+ vectorstore: VectorStore = Field(init=False)
+ max_iterations: Optional[int] = None
+
+ class Config:
+ """Configuration for this pydantic object."""
+ arbitrary_types_allowed = True
+
+ def add_task(self, task: Dict):
+ self.task_list.append(task)
+
+ def print_task_list(self):
+ print("\033[95m\033[1m" + "\n*****TASK LIST*****\n" + "\033[0m\033[0m")
+ for t in self.task_list:
+ print(str(t["task_id"]) + ": " + t["task_name"])
+
+ def print_next_task(self, task: Dict):
+ print("\033[92m\033[1m" + "\n*****NEXT TASK*****\n" + "\033[0m\033[0m")
+ print(str(task["task_id"]) + ": " + task["task_name"])
+
+ def print_task_result(self, result: str):
+ print("\033[93m\033[1m" + "\n*****TASK RESULT*****\n" + "\033[0m\033[0m")
+ print(result)
+
+ @property
+ def input_keys(self) -> List[str]:
+ return ["objective"]
+
+ @property
+ def output_keys(self) -> List[str]:
+ return []
+
+ def _call(self, inputs: Dict[str, Any]) -> Dict[str, Any]:
+ """Run the agent."""
+ # not an elegant implementation, but it works for the first task
+ objective = inputs['objective']
+ first_task = inputs.get("first_task", self.initial_task_creation_chain.run(objective=objective))# self.task_creation_chain.llm(initial_task_prompt))
+
+ self.add_task({"task_id": 1, "task_name": first_task})
+ num_iters = 0
+ while True:
+ if self.task_list:
+ self.print_task_list()
+
+ # Step 1: Pull the first task
+ task = self.task_list.popleft()
+ self.print_next_task(task)
+
+ # Step 2: Execute the task
+ result = execute_task(
+ self.vectorstore, self.execution_chain, objective, task["task_name"]
+ )
+ this_task_id = int(task["task_id"])
+ self.print_task_result(result)
+
+ # Step 3: Store the result in Pinecone
+ result_id = f"result_{task['task_id']}"
+ self.vectorstore.add_texts(
+ texts=[result],
+ metadatas=[{"task": task["task_name"]}],
+ ids=[result_id],
+ )
+
+ # Step 4: Create new tasks and reprioritize task list
+ new_tasks = get_next_task(
+ self.task_creation_chain, result, task["task_name"], [t["task_name"] for t in self.task_list], objective
+ )
+ for new_task in new_tasks:
+ self.task_id_counter += 1
+ new_task.update({"task_id": self.task_id_counter})
+ self.add_task(new_task)
+
+ if len(self.task_list) == 0:
+ print("\033[91m\033[1m" + "\n*****NO TASK, ABORTING*****\n" + "\033[0m\033[0m")
+ break
+
+ self.task_list = deque(
+ prioritize_tasks(
+ self.task_prioritization_chain, this_task_id, list(self.task_list), objective
+ )
+ )
+ num_iters += 1
+ if self.max_iterations is not None and num_iters == self.max_iterations:
+ print("\033[91m\033[1m" + "\n*****TASK ENDING*****\n" + "\033[0m\033[0m")
+ break
+ return {}
+
+ @classmethod
+ def from_llm(
+ cls,
+ llm: BaseLLM,
+ prompt = None,
+ verbose: bool = False,
+ tools = None,
+ stream_output = None,
+ **kwargs
+ ) -> "BabyAGI":
+ embeddings_model = OpenAIEmbeddings()
+ embedding_size = 1536
+ index = faiss.IndexFlatL2(embedding_size)
+ vectorstore = FAISS(embeddings_model.embed_query, index, InMemoryDocstore({}), {})
+
+ task_creation_chain = TaskCreationChain.from_llm(
+ llm, verbose=verbose
+ )
+ initial_task_creation_chain = InitialTaskCreationChain.from_llm(
+ llm, verbose=verbose
+ )
+ task_prioritization_chain = TaskPrioritizationChain.from_llm(
+ llm, verbose=verbose
+ )
+ llm_chain = LLMChain(llm=llm, prompt=prompt)
+ tool_names = [tool.name for tool in tools]
+ agent = ContextAwareAgent(llm_chain=llm_chain, allowed_tools=tool_names)
+
+ if stream_output:
+ agent_executor = Executor.from_agent_and_tools(agent=agent, tools=tools, verbose=True)
+ else:
+ agent_executor = AgentExecutorWithTranslation.from_agent_and_tools(agent=agent, tools=tools, verbose=True)
+
+ return cls(
+ task_creation_chain=task_creation_chain,
+ task_prioritization_chain=task_prioritization_chain,
+ initial_task_creation_chain=initial_task_creation_chain,
+ execution_chain=agent_executor,
+ vectorstore=vectorstore,
+ **kwargs
+ )
+
+if __name__ == "__main__":
+ todo_prompt = PromptTemplate.from_template("You are a planner who is an expert at coming up with a todo list for a given objective. For a simple objective, do not generate a complex todo list. Come up with a todo list for this objective: {objective}")
+ todo_chain = LLMChain(llm=OpenAI(temperature=0), prompt=todo_prompt)
+ search = SerpAPIWrapper()
+ tools = [
+ Tool(
+ name = "Search",
+ func=search.run,
+ description="useful for when you need to answer questions about current events"
+ ),
+ Tool(
+ name = "TODO",
+ func=todo_chain.run,
+ description="useful for when you need to come up with todo lists. Input: an objective to create a todo list for. Output: a todo list for that objective. Please be very clear what the objective is!"
+ )
+ ]
+
+ prefix = """You are an AI who performs one task based on the following objective: {objective}. Take into account these previously completed tasks: {context}."""
+ suffix = """Question: {task}
+ {agent_scratchpad}"""
+ prompt = ZeroShotAgent.create_prompt(
+ tools,
+ prefix=prefix,
+ suffix=suffix,
+ input_variables=["objective", "task", "context","agent_scratchpad"]
+ )
+
+ OBJECTIVE = "Write a weather report for SF today"
+ llm = OpenAI(temperature=0)
+ # Logging of LLMChains
+ verbose=False
+ # If None, will keep on going forever
+ max_iterations: Optional[int] = 10
+ baby_agi = BabyAGI.from_llm(
+ llm=llm,
+ verbose=verbose,
+ max_iterations=max_iterations
+ )
+ baby_agi({"objective": OBJECTIVE})
diff --git a/swarms/tools/__init__.py b/swarms/tools/__init__.py
index e69de29b..c48301dd 100644
--- a/swarms/tools/__init__.py
+++ b/swarms/tools/__init__.py
@@ -0,0 +1,38 @@
+from . import chemical
+from . import film
+from . import kg
+from . import stock
+from . import weather
+from . import wikipedia
+from . import wolframalpha
+from . import office
+from . import bing_search
+from . import map
+from . import translation
+from . import tutorial
+from . import file_operation
+from . import meta_analysis
+from . import database
+from . import db_diag
+from . import code_interpreter
+from . import hugging_tools
+from . import arxiv
+from . import zillow
+from . import google_scholar
+from . import google_places
+from . import google_serper
+from . import python
+from . import sceneXplain
+from . import shell
+from . import image_generation
+from . import airbnb
+from . import job_search
+from . import gradio_tools
+from . import travel
+from . import walmart
+
+
+
+from swarms.tools.tool import Tool
+from swarms.tools.registry import register
+from swarms.tools.serve import ToolServer
diff --git a/swarms/tools/airbnb/__init__.py b/swarms/tools/airbnb/__init__.py
new file mode 100644
index 00000000..8613434e
--- /dev/null
+++ b/swarms/tools/airbnb/__init__.py
@@ -0,0 +1,7 @@
+
+from ..registry import register
+
+@register("airbnb")
+def airbnb():
+ from .api import build_tool
+ return build_tool
diff --git a/swarms/tools/airbnb/api.py b/swarms/tools/airbnb/api.py
new file mode 100644
index 00000000..c88549ba
--- /dev/null
+++ b/swarms/tools/airbnb/api.py
@@ -0,0 +1,305 @@
+import requests
+import json
+from datetime import date, datetime, timedelta
+import os
+from ..tool import Tool
+
+from typing import Optional, Dict, List
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Short-term rental and housing information",
+ "Look up rental and housing information",
+ name_for_model="Airbnb",
+ description_for_model="Plugin for look up rental and housing information",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ BASE_URL = "https://airbnb19.p.rapidapi.com/api/v1"
+ KEY = config["subscription_key"]
+ HEADERS = {
+ "X-RapidAPI-Key": KEY,
+ "X-RapidAPI-Host": "airbnb19.p.rapidapi.com"
+ }
+
+
+ @tool.get("/ssearch_property")
+ def search_property(_id: str, display_name: Optional[str] = None,
+ total_records: Optional[str] = '10', currency: Optional[str] = 'USD',
+ offset: Optional[str] = None, category: Optional[str] = None,
+ adults: Optional[int] = 1, children: Optional[int] = None,
+ infants: Optional[int] = None, pets: Optional[int] = None,
+ checkin: Optional[str] = None, checkout: Optional[str] = None,
+ priceMin: Optional[int] = None, priceMax: Optional[int] = None,
+ minBedrooms: Optional[int] = None, minBeds: Optional[int] = None,
+ minBathrooms: Optional[int] = None, property_type: Optional[List[str]] = None,
+ host_languages: Optional[List[str]] = None, amenities: Optional[List[str]] = None,
+ type_of_place: Optional[List[str]] = None, top_tier_stays: Optional[List[str]] = None,
+ self_check_in: Optional[bool] = None, instant_book: Optional[bool] = None,
+ super_host: Optional[bool] = None, languageId: Optional[str] = None) -> dict:
+ """
+ This function takes various parameters to search properties on Airbnb.
+
+ Parameters:
+ api_key (str): The RapidAPI Key for Airbnb API.
+ id (str): The ID of the destination.
+ display_name (Optional[str]): The name of the destination.
+ total_records (Optional[str]): The number of records to be retrieved per API call.
+ currency (Optional[str]): The currency for the transaction.
+ offset (Optional[str]): The offset for the search result.
+ category (Optional[str]): The category of the properties.
+ adults (Optional[int]): The number of adults.
+ children (Optional[int]): The number of children.
+ infants (Optional[int]): The number of infants.
+ pets (Optional[int]): The number of pets.
+ checkin (Optional[str]): The check-in date.
+ checkout (Optional[str]): The check-out date.
+ priceMin (Optional[int]): The minimum price.
+ priceMax (Optional[int]): The maximum price.
+ minBedrooms (Optional[int]): The minimum number of bedrooms.
+ minBeds (Optional[int]): The minimum number of beds.
+ minBathrooms (Optional[int]): The minimum number of bathrooms.
+ property_type (Optional[List[str]]): The type of the property.
+ host_languages (Optional[List[str]]): The languages that the host can speak.
+ amenities (Optional[List[str]]): The amenities provided by the property.
+ type_of_place (Optional[List[str]]): The type of the place.
+ top_tier_stays (Optional[List[str]]): The list of top-tier stays.
+ self_check_in (Optional[bool]): If the property has self check-in feature.
+ instant_book (Optional[bool]): If the property can be booked instantly.
+ super_host (Optional[bool]): If the host is a super host.
+ languageId (Optional[str]): The ID of the language for the response.
+
+ Returns:
+ dict: A dictionary that contains the search results.
+ """
+
+ params = {
+ 'id': _id,
+ 'display_name': display_name,
+ 'totalRecords': total_records,
+ 'currency': currency,
+ 'offset': offset,
+ 'category': category,
+ 'adults': adults,
+ 'children': children,
+ 'infants': infants,
+ 'pets': pets,
+ 'checkin': checkin,
+ 'checkout': checkout,
+ 'priceMin': priceMin,
+ 'priceMax': priceMax,
+ 'minBedrooms': minBedrooms,
+ 'minBeds': minBeds,
+ 'minBathrooms': minBathrooms,
+ 'property_type': property_type,
+ 'host_languages': host_languages,
+ 'amenities': amenities,
+ 'type_of_place': type_of_place,
+ 'top_tier_stays': top_tier_stays,
+ 'self_check_in': self_check_in,
+ 'instant_book': instant_book,
+ 'super_host': super_host,
+ 'languageId': languageId
+ }
+ response = requests.get(f"{BASE_URL}/searchPropertyByPlace", headers=HEADERS, params=params)
+ return response.json()['data'][0]
+
+ @tool.get("/search_property_by_coordinates")
+ def search_property_by_coordinates(neLat: float, neLng: float, swLat: float, swLng: float,
+ currency: Optional[str] = 'USD', nextPageCursor: Optional[str] = None,
+ totalRecords: Optional[str] = None, infants: Optional[int] = None,
+ adults: Optional[int] = 1, children: Optional[int] = None,
+ pets: Optional[int] = None, checkin: Optional[str] = None,
+ checkout: Optional[str] = None, priceMin: Optional[int] = None,
+ priceMax: Optional[int] = None, minBedrooms: Optional[int] = None,
+ minBeds: Optional[int] = None, minBathrooms: Optional[int] = None,
+ property_type: Optional[List[str]] = None, host_languages: Optional[List[str]] = None,
+ amenities: Optional[List[str]] = None, type_of_place: Optional[List[str]] = None,
+ top_tier_stays: Optional[List[str]] = None, super_host: Optional[bool] = None) -> dict:
+ """
+ This function takes GEO coordinates and various other parameters to search properties on Airbnb.
+
+ Parameters:
+ neLat (float): Latitude of the northeastern corner of the search area.
+ neLng (float): Longitude of the northeastern corner of the search area.
+ swLat (float): Latitude of the southwestern corner of the search area.
+ swLng (float): Longitude of the southwestern corner of the search area.
+ Other parameters are the same as search_property function.
+
+ Returns:
+ dict: A dictionary that contains the search results.
+ """
+
+ params = {
+ 'neLat': neLat,
+ 'neLng': neLng,
+ 'swLat': swLat,
+ 'swLng': swLng,
+ 'currency': currency,
+ 'nextPageCursor': nextPageCursor,
+ 'totalRecords': totalRecords,
+ 'infants': infants,
+ 'adults': adults,
+ 'children': children,
+ 'pets': pets,
+ 'checkin': checkin,
+ 'checkout': checkout,
+ 'priceMin': priceMin,
+ 'priceMax': priceMax,
+ 'minBedrooms': minBedrooms,
+ 'minBeds': minBeds,
+ 'minBathrooms': minBathrooms,
+ 'property_type': property_type,
+ 'host_languages': host_languages,
+ 'amenities': amenities,
+ 'type_of_place': type_of_place,
+ 'top_tier_stays': top_tier_stays,
+ 'super_host': super_host
+ }
+ response = requests.get(f"https://airbnb19.p.rapidapi.com/api/v2/searchPropertyByGEO", headers=HEADERS, params=params)
+ return response.json()['data']['list'][0]
+
+ @tool.get("/search_destination")
+ def search_destination(self, query: str, country: Optional[str] = None) -> dict:
+ """
+ This function performs a destination search given a query and optionally a country. And return positions 'ID' information.
+
+ Parameters:
+ query (str): The search query.
+ country (Optional[str]): The country for the search.
+
+ Returns:
+ dict: A dictionary that contains the search results. including ID information for a destination
+ """
+
+ params = {
+ 'query': query,
+ 'country': country
+ }
+ response = requests.get(f"{BASE_URL}/searchDestination", headers=HEADERS, params=params)
+ return response.json()
+
+ @tool.get("/property_by_coordinates")
+ def property_by_coordinates(long: float, lat: float, d: Optional[float] = None, includeSold: Optional[bool] = None):
+ """
+ Search property by coordinates.
+
+ Args:
+ long (float): Longitude of the property. This is a required parameter.
+ lat (float): Latitude of the property. This is a required parameter.
+ d (float, optional): Diameter in miles. The max and low values are 0.5 and 0.05 respectively. The default value is 0.1.
+ includeSold (bool, optional): Include sold properties in the results. True or 1 to include (default), False or 0 to exclude.
+
+ Returns:
+ A response object from the Zillow API with an array of zpid.
+ """
+ params = {
+ "long": long,
+ "lat": lat,
+ "d": d,
+ "includeSold": includeSold,
+ }
+
+ # Remove parameters that are None
+ params = {k: v for k, v in params.items() if v is not None}
+ url = BASE_URL + '/propertyByCoordinates'
+ # Send GET request to Zillow API endpoint
+ response = requests.get(url, headers=HEADERS, params=params)
+
+ return response.json()
+
+ @tool.get("/get_property_details")
+ def get_property_details(propertyId: int, currency: Optional[str] = 'USD',
+ checkIn: Optional[str] = None, checkOut: Optional[str] = None,
+ adults: Optional[int] = 1, children: Optional[int] = None,
+ infants: Optional[int] = None, pets: Optional[int] = None,
+ languageId: Optional[str] = None) -> dict:
+ """
+ This function retrieves the details of a property given its ID.
+
+ Parameters:
+ propertyId (int): The ID of the property.
+ currency (Optional[str]): The currency for the transaction.
+ checkIn (Optional[str]): The check-in date.
+ checkOut (Optional[str]): The check-out date.
+ adults (Optional[int]): The number of adults.
+ children (Optional[int]): The number of children.
+ infants (Optional[int]): The number of infants.
+ pets (Optional[int]): The number of pets.
+ languageId (Optional[str]): The ID of the language for the response.
+
+ Returns:
+ dict: A dictionary that contains the details of the property.
+ """
+
+ params = {
+ 'propertyId': propertyId,
+ 'currency': currency,
+ 'checkIn': checkIn,
+ 'checkOut': checkOut,
+ 'adults': adults,
+ 'children': children,
+ 'infants': infants,
+ 'pets': pets,
+ 'languageId': languageId
+ }
+ response = requests.get(f"https://airbnb19.p.rapidapi.com/api/v2/getPropertyDetails", headers=HEADERS, params=params)
+ return response.json()
+
+ @tool.get("/check_availability")
+ def check_availability(propertyId: int) -> dict:
+ """
+ This function checks the availability of a property given its ID.
+
+ Parameters:
+ propertyId (int): The ID of the property.
+
+ Returns:
+ dict: A dictionary that contains the availability of the property.
+ """
+ params = {
+ 'propertyId': propertyId,
+ }
+ response = requests.get(f"{BASE_URL}/checkAvailability", headers=HEADERS, params=params)
+ return response.json()
+
+ @tool.get("/get_property_reviews")
+ def get_property_reviews(propertyId: int) -> dict:
+ """
+ This function retrieves the reviews of a property given its ID.
+
+ Parameters:
+ propertyId (int): The ID of the property.
+
+ Returns:
+ dict: A dictionary that contains the reviews of the property.
+ """
+ params = {
+ 'propertyId': propertyId,
+ }
+ response = requests.get(f"{BASE_URL}/getPropertyReviews", headers=HEADERS, params=params)
+ return response.json()
+
+ @tool.get("/get_property_checkout_price")
+ def get_property_checkout_price(propertyId: int, checkIn: str) -> dict:
+ """
+ This function retrieves the checkout cost of a property given its ID and check-in date.
+
+ Parameters:
+ propertyId (int): The ID of the property.
+ checkIn (str): The check-in date.
+
+ Returns:
+ dict: A dictionary that contains the checkout price of the property.
+ """
+ params = {
+ 'propertyId': propertyId,
+ 'checkIn': checkIn
+ }
+ response = requests.get(f"{BASE_URL}/getPropertyCheckoutPrice", headers=HEADERS, params=params)
+ return response.json()
+
+ return tool
diff --git a/swarms/tools/airbnb/readme.md b/swarms/tools/airbnb/readme.md
new file mode 100644
index 00000000..17b7cd40
--- /dev/null
+++ b/swarms/tools/airbnb/readme.md
@@ -0,0 +1,29 @@
+# Airbnb Service
+
+Contributor: [Kunlun Zhu](https://github.com/Kunlun-Zhu)
+
+You can get your RAIPID key here: https://rapidapi.com/hub
+
+You ought to subscribe 'Airbnb API' in your account to use this tool
+
+# Short-term Rental and Housing Information Tool
+
+This tool, named `Short-term Rental and Housing Information`, is designed to interact with the Airbnb API to search for properties, get property details, check availability, get property reviews, and retrieve the checkout price. The tool operates by making HTTP requests to the Airbnb API and formatting the responses into an easily usable form.
+
+## Main Functionality
+
+1. **Search for Properties**: This functionality allows you to search for properties based on a variety of parameters like the number of adults, children, and infants, property type, amenities, check-in and check-out dates, and many more. This is done using the `search_property` function.
+
+2. **Search Property by Coordinates**: This function allows you to search for properties in a specific geographic area defined by the northeast and southwest coordinates of the area. This is done using the `search_property_by_coordinates` function.
+
+3. **Search for Destination**: The `search_destination` function helps to perform a destination search given a query and optionally a country. It returns positions 'ID' information.
+
+4. **Get Property Details**: The `get_property_details` function is used to retrieve detailed information about a specific property. This includes the number of rooms, amenities, location, and other relevant information.
+
+5. **Check Property Availability**: This function, `check_availability`, allows you to check if a property is available for booking.
+
+6. **Get Property Reviews**: You can use the `get_property_reviews` function to retrieve reviews of a property.
+
+7. **Get Property Checkout Price**: The `get_property_checkout_price` function is used to get the checkout cost of a property given its ID and check-in date.
+
+This tool provides a simple and effective way to interact with the Airbnb API, making it easier for developers to incorporate Airbnb data into their applications.
\ No newline at end of file
diff --git a/swarms/tools/airbnb/test.py b/swarms/tools/airbnb/test.py
new file mode 100644
index 00000000..7ff20c8c
--- /dev/null
+++ b/swarms/tools/airbnb/test.py
@@ -0,0 +1,11 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'Airbnb', "http://127.0.0.1:8079/tools/airbnb/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("List some houses to rent in Santa Monica, CA.")
\ No newline at end of file
diff --git a/swarms/tools/apitool.py b/swarms/tools/apitool.py
new file mode 100644
index 00000000..59990d50
--- /dev/null
+++ b/swarms/tools/apitool.py
@@ -0,0 +1,152 @@
+"""Interface for tools."""
+from inspect import signature
+from typing import Any, Awaitable, Callable, Optional, Union
+
+from langchain.agents import Tool as LangChainTool
+from langchain.tools.base import BaseTool
+import requests
+import json
+import aiohttp
+import http.client
+http.client._MAXLINE = 655360
+
+from bmtools import get_logger
+
+logger = get_logger(__name__)
+
+class Tool(LangChainTool):
+ tool_logo_md: str = ""
+
+class RequestTool(BaseTool):
+ """Tool that takes in function or coroutine directly."""
+
+ description: str = ""
+ func: Callable[[str], str]
+ afunc: Callable[[str], str]
+ coroutine: Optional[Callable[[str], Awaitable[str]]] = None
+ max_output_len = 4000
+ tool_logo_md: str = ""
+
+ def _run(self, tool_input: str) -> str:
+ """Use the tool."""
+ return self.func(tool_input)
+
+ async def _arun(self, tool_input: str) -> str:
+ """Use the tool asynchronously."""
+ ret = await self.afunc(tool_input)
+ return ret
+
+ def convert_prompt(self,params):
+ lines = "Your input should be a json (args json schema): {{"
+ for p in params:
+ logger.debug(p)
+ optional = not p['required']
+ description = p.get('description', '')
+ if len(description) > 0:
+ description = "("+description+")"
+
+ lines += '"{name}" : {type}{desc}, '.format(name=p['name'],
+ type= p['schema']['type'],
+ optional=optional,
+ desc=description)
+
+ lines += "}}"
+ return lines
+
+
+
+ def __init__(self, root_url, func_url, method, request_info, **kwargs):
+ """ Store the function, description, and tool_name in a class to store the information
+ """
+ url = root_url + func_url
+
+ def func(json_args):
+ if isinstance(json_args, str):
+ try:
+ json_args = json.loads(json_args)
+ except:
+ return "Your input can not be parsed as json, please use thought."
+ if "tool_input" in json_args:
+ json_args = json_args["tool_input"]
+
+ # if it's post put patch, then we do json
+ if method.lower() in ['post', 'put', 'patch']:
+ response = getattr(requests, method.lower())(url, json=json_args)
+ else:
+ # for other methods, we use get, and use json_args as query params
+ response = requests.get(url, params=json_args)
+ if response.status_code == 200:
+ message = response.text
+ else:
+ message = f"Error code {response.status_code}. You can try (1) Change your input (2) Call another function. (If the same error code is produced more than 4 times, please use Thought: I can not use these APIs, so I will stop. Final Answer: No Answer, please check the APIs.)"
+
+ message = message[:self.max_output_len] # TODO: not rigorous, to improve
+ return message
+
+ def convert_openapi_to_params(request_body):
+ if not request_body:
+ return []
+ params = []
+ for content_type, content in request_body['content'].items():
+ schema = content['schema']
+ properties = schema.get('properties', {})
+ required = schema.get('required', [])
+ for key, value in properties.items():
+ param = {
+ 'name': key,
+ 'schema': value,
+ 'required': key in required,
+ 'description': value.get('description', '')
+ }
+ if content_type == 'multipart/form-data' and value.get('format') == 'binary':
+ param['type'] = 'file'
+ elif content_type in ['application/x-www-form-urlencoded', 'multipart/form-data']:
+ param['type'] = 'form'
+ else:
+ param['type'] = 'json'
+ params.append(param)
+ return params
+
+ async def afunc(json_args):
+ if isinstance(json_args, str):
+ try:
+ json_args = json.loads(json_args)
+ except:
+ return "Your input can not be parsed as json, please use thought."
+ if "tool_input" in json_args:
+ json_args = json_args["tool_input"]
+
+ async with aiohttp.ClientSession() as session:
+ async with session.get(url, params=json_args) as response:
+ if response.status == 200:
+ message = await response.text()
+ else:
+ message = f"Error code {response.status_code}. You can try (1) Change your input (2) Call another function. (If the same error code is produced more than 4 times, please use Thought: I can not use these APIs, so I will stop. Final Answer: No Answer, please check the APIs.)"
+
+ message = message[:self.max_output_len] # TODO: not rigorous, to improve
+ return message
+
+ tool_name = func_url.replace("/", ".").strip(".")
+ str_doc = ''
+ if 'parameters' in request_info[method]:
+ str_doc = self.convert_prompt(request_info[method]['parameters'])
+
+ if 'requestBody' in request_info[method]:
+ str_doc = str_doc + "\n" + self.convert_prompt(
+ convert_openapi_to_params(request_info[method]['requestBody']))
+
+
+ # description = f"- {tool_name}:\n" + \
+ # request_info[method].get('summary', '').replace("{", "{{").replace("}", "}}") \
+ description = request_info[method].get('description','').replace("{", "{{").replace("}", "}}") \
+ + ". " \
+ + str_doc \
+ + f" The Action to trigger this API should be {tool_name} and the input parameters should be a json dict string. Pay attention to the type of parameters."
+
+ logger.info("API Name: {}".format(tool_name))
+ logger.info("API Description: {}".format(description))
+
+ super(RequestTool, self).__init__(
+ name=tool_name, func=func, afunc=afunc, description=description, **kwargs
+ )
+
diff --git a/swarms/tools/arxiv/__init__.py b/swarms/tools/arxiv/__init__.py
new file mode 100644
index 00000000..c34a28af
--- /dev/null
+++ b/swarms/tools/arxiv/__init__.py
@@ -0,0 +1,7 @@
+
+from ..registry import register
+
+@register("arxiv")
+def arxiv():
+ from .api import build_tool
+ return build_tool
diff --git a/swarms/tools/arxiv/api.py b/swarms/tools/arxiv/api.py
new file mode 100644
index 00000000..c88402f4
--- /dev/null
+++ b/swarms/tools/arxiv/api.py
@@ -0,0 +1,53 @@
+from ..tool import Tool
+from typing import Any
+import arxiv
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Arxiv",
+ "Look up for information from scientific articles on arxiv.org",
+ name_for_model="Arxiv",
+ description_for_model=(
+ "Search information from Arxiv.org "
+ "Useful for when you need to answer questions about Physics, Mathematics, "
+ "Computer Science, Quantitative Biology, Quantitative Finance, Statistics, "
+ "Electrical Engineering, and Economics "
+ "from scientific articles on arxiv.org. "
+ "Input should be a search query."
+ ),
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ arxiv_exceptions: Any # :meta private:
+ top_k_results: int = 3
+ ARXIV_MAX_QUERY_LENGTH = 300
+ doc_content_chars_max: int = 4000
+
+ @tool.get("/get_arxiv_article_information")
+ def get_arxiv_article_information(query : str):
+ '''Run Arxiv search and get the article meta information.
+ '''
+ param = {
+ "q": query
+ }
+ try:
+ results = arxiv.Search( # type: ignore
+ query[: ARXIV_MAX_QUERY_LENGTH], max_results = top_k_results
+ ).results()
+ except arxiv_exceptions as ex:
+ return f"Arxiv exception: {ex}"
+ docs = [
+ f"Published: {result.updated.date()}\nTitle: {result.title}\n"
+ f"Authors: {', '.join(a.name for a in result.authors)}\n"
+ f"Summary: {result.summary}"
+ for result in results
+ ]
+ if docs:
+ return "\n\n".join(docs)[: doc_content_chars_max]
+ else:
+ return "No good Arxiv Result was found"
+
+ return tool
diff --git a/swarms/tools/arxiv/readme.md b/swarms/tools/arxiv/readme.md
new file mode 100644
index 00000000..1264bb4b
--- /dev/null
+++ b/swarms/tools/arxiv/readme.md
@@ -0,0 +1,38 @@
+# Arxiv Queries
+
+Contributor: [Sihan Zhao](https://github.com/Sarah816)
+
+## Tool Description
+This Python-based tool offers a streamlined way to look up scientific articles on Arxiv.org. Named "Arxiv", this tool is particularly helpful when you need to answer questions about Physics, Mathematics, Computer Science, Quantitative Biology, Quantitative Finance, Statistics, Electrical Engineering, and Economics based on scientific articles from Arxiv.org.
+
+### Tool Specifications
+
+- **Name**: Arxiv
+- **Purpose**: Look up for information from scientific articles on arxiv.org
+- **Logo**: 
+- **Contact Email**: hello@contact.com
+- **Legal Information**: [Legal Information](hello@legal.com)
+
+### Core Functionality
+
+1. `get_arxiv_article_information`
+
+ This method takes a search query and returns meta-information about the Arxiv articles that match this query. The method uses an API to search articles on Arxiv.org and returns details like the date of publication, title of the article, names of the authors, and the summary of the article.
+
+ The method follows these steps:
+
+ - It takes a query as a string input.
+ - The query is passed to the Arxiv Search API.
+ - The method fetches the top three results.
+ - For each result, it collects information about the publication date, title, authors, and summary.
+ - It returns this information as a string.
+
+ If the search operation encounters an error, the method returns a message describing the Arxiv exception. If no suitable articles are found on Arxiv.org that match the query, it returns a message stating that no good Arxiv result was found.
+
+### Constants
+
+- **ARXIV_MAX_QUERY_LENGTH**: Maximum length of a query that can be passed to the Arxiv Search API. It's set to 300.
+- **doc_content_chars_max**: Maximum characters of the Arxiv results to be returned. It's set to 4000.
+- **top_k_results**: The maximum number of Arxiv Search results to be returned. It's set to 3.
+
+Please note that the parameters can be optional and have their own default values. You should consult the method's documentation to understand the default behavior and the specific role of each parameter.
\ No newline at end of file
diff --git a/swarms/tools/arxiv/test.py b/swarms/tools/arxiv/test.py
new file mode 100644
index 00000000..40fbdc5e
--- /dev/null
+++ b/swarms/tools/arxiv/test.py
@@ -0,0 +1,11 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'arxiv', "http://127.0.0.1:8079/tools/arxiv/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("List some papers written by Timo Schick")
\ No newline at end of file
diff --git a/swarms/tools/bing_search/__init__.py b/swarms/tools/bing_search/__init__.py
new file mode 100644
index 00000000..bafe6111
--- /dev/null
+++ b/swarms/tools/bing_search/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("bing_search")
+def bing_search():
+ from .api import build_tool
+ return build_tool
\ No newline at end of file
diff --git a/swarms/tools/bing_search/api.py b/swarms/tools/bing_search/api.py
new file mode 100644
index 00000000..bbecd936
--- /dev/null
+++ b/swarms/tools/bing_search/api.py
@@ -0,0 +1,181 @@
+
+import requests
+from bs4 import BeautifulSoup
+from ..tool import Tool
+from enum import Enum
+from typing import Tuple
+
+
+# search result list chunk size
+SEARCH_RESULT_LIST_CHUNK_SIZE = 3
+# result target page text chunk content length
+RESULT_TARGET_PAGE_PER_TEXT_COUNT = 500
+
+class BingAPI:
+ """
+ A class for performing searches on the Bing search engine.
+
+ Attributes
+ ----------
+ bing_api : BingAPI
+ The Bing API to use for performing searches.
+
+ Methods
+ -------
+ __init__(self, subscription_key: str) -> None:
+ Initialize the BingSearch instance with the given subscription key.
+ search_top3(self, key_words: str) -> List[str]:
+ Perform a search on the Bing search engine with the given keywords and return the top 3 search results.
+ load_page_index(self, idx: int) -> str:
+ Load the detailed page of the search result at the given index.
+ """
+ def __init__(self, subscription_key : str) -> None:
+ """
+ Initialize the BingSearch instance with the given subscription key.
+
+ Parameters
+ ----------
+ subscription_key : str
+ The subscription key to use for the Bing API.
+ """
+ self._headers = {
+ 'Ocp-Apim-Subscription-Key': subscription_key
+ }
+ self._endpoint = "https://api.bing.microsoft.com/v7.0/search"
+ self._mkt = 'en-US'
+
+ def search(self, key_words : str, max_retry : int = 3):
+ for _ in range(max_retry):
+ try:
+ result = requests.get(self._endpoint, headers=self._headers, params={'q': key_words, 'mkt': self._mkt }, timeout=10)
+ except Exception:
+ # failed, retry
+ continue
+
+ if result.status_code == 200:
+ result = result.json()
+ # search result returned here
+ return result
+ else:
+ # failed, retry
+ continue
+ raise RuntimeError("Failed to access Bing Search API.")
+
+ def load_page(self, url : str, max_retry : int = 3) -> Tuple[bool, str]:
+ for _ in range(max_retry):
+ try:
+ res = requests.get(url, timeout=15)
+ if res.status_code == 200:
+ res.raise_for_status()
+ else:
+ raise RuntimeError("Failed to load page, code {}".format(res.status_code))
+ except Exception:
+ # failed, retry
+ res = None
+ continue
+ res.encoding = res.apparent_encoding
+ content = res.text
+ break
+ if res is None:
+ return False, "Timeout for loading this page, Please try to load another one or search again."
+ try:
+ soup = BeautifulSoup(content, 'html.parser')
+ paragraphs = soup.find_all('p')
+ page_detail = ""
+ for p in paragraphs:
+ text = p.get_text().strip()
+ page_detail += text
+ return True, page_detail
+ except Exception:
+ return False, "Timeout for loading this page, Please try to load another one or search again."
+
+class CONTENT_TYPE(Enum):
+ SEARCH_RESULT = 0
+ RESULT_TARGET_PAGE = 1
+
+class ContentItem:
+ def __init__(self, type: CONTENT_TYPE, data):
+ self.type = type
+ self.data = data
+
+class DigestData:
+ title: str
+ desc: str
+ chunkIndex: int
+
+class Digest:
+ datas: list
+ checked: bool
+
+class SessionData:
+ topic = None
+ content = []
+ digests = []
+ curResultChunk = 0
+ curTargetPageResultChunk = 0
+
+data = SessionData()
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Bing_search",
+ "Bing_search",
+ name_for_model="Bing_search",
+ name_for_human="Bing_search",
+ description_for_model="""Perform Search on Bing Search engine.
+Use search_top3(key: str) to get top 3 search results after input the key to search.
+Use load_page_index(idx: int) to load the detailed page of the search result.""",
+ description_for_human="Bing search API for browsing the internet and search for results.",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ if "debug" in config and config["debug"]:
+ bing_api = config["bing_api"]
+ else:
+ bing_api = BingAPI(config["subscription_key"])
+
+ @tool.get("/search_top3")
+ def search_top3(key_words: str) -> str:
+ """Search key words, return top 3 search results.
+ """
+ top3 = search_all(key_words)[:3]
+ output = ""
+ for idx, item in enumerate(top3):
+ output += "page: " + str(idx+1) + "\n"
+ output += "title: " + item['name'] + "\n"
+ output += "summary: " + item['snippet'] + "\n"
+ return output
+
+ def search_all(key_words: str, data: SessionData = data) -> list:
+ """Search key_words, return a list of class SearchResult.
+ Keyword arguments:
+ key_words -- key words want to search
+ """
+ result = bing_api.search(key_words)
+ data.content = []
+ data.content.append(ContentItem(CONTENT_TYPE.SEARCH_RESULT, result))
+ data.curResultChunk = 0
+ return data.content[-1].data["webPages"]["value"]
+
+ @tool.get("/load_page_index")
+ def load_page_index(idx: str) -> str:
+ """Load page detail of the search result indexed as 'idx', and return the content of the page.
+ """
+ idx = int(idx)
+ href, text = load_page(idx-1)
+ if len(text) > 500:
+ return text[:500]
+ else:
+ return text
+
+ def load_page(idx : int, data: SessionData = data):
+ top = data.content[-1].data["webPages"]["value"]
+ ok, content = bing_api.load_page(top[idx]['url'])
+ if ok:
+ return top[idx]['url'], content
+ else:
+ return " ", "Timeout for loading this page, Please try to load another one or search again."
+
+ return tool
diff --git a/swarms/tools/bing_search/readme.md b/swarms/tools/bing_search/readme.md
new file mode 100644
index 00000000..155a90bb
--- /dev/null
+++ b/swarms/tools/bing_search/readme.md
@@ -0,0 +1,3 @@
+# Bing search tool
+
+Contributor [ChengQian](https://github.com/qiancheng0)
\ No newline at end of file
diff --git a/swarms/tools/bing_search/test_bing.py b/swarms/tools/bing_search/test_bing.py
new file mode 100644
index 00000000..fceae342
--- /dev/null
+++ b/swarms/tools/bing_search/test_bing.py
@@ -0,0 +1,67 @@
+from fastapi.testclient import TestClient
+from .api import build_tool, BingAPI
+from typing import Tuple
+
+BING_TEST_SEARCH = {
+ "webPages": {
+ "value": [
+ {
+ "url": "a",
+ "name": "test a",
+ "snippet": "page a"
+ },
+ {
+ "url": "b",
+ "name": "test b",
+ "snippet": "page b"
+ },
+ {
+ "url": "c",
+ "name": "test c",
+ "snippet": "page c"
+ }
+ ]
+ }
+}
+
+class MockBingAPI(BingAPI):
+ def __init__(self):
+ pass
+
+ def search(self, key_words : str, max_retry : int = 3):
+ return BING_TEST_SEARCH
+
+ def load_page(self, url : str, max_retry : int = 3) -> Tuple[bool, str]:
+ if url == "a":
+ return True, "This is page a"
+ elif url == "b":
+ return True, "This is page b"
+ elif url == "c":
+ return True, "This is page c"
+ else:
+ return False, "Timeout for loading this page, Please try to load another one or search again."
+
+
+app = build_tool({"debug": True, "bing_api": MockBingAPI()})
+client = TestClient(app)
+
+def test_bing():
+ # test search top 3
+ response = client.get("/search_top3", params={"key_words": "test"})
+
+ output = ""
+ for idx, item in enumerate(BING_TEST_SEARCH["webPages"]["value"]):
+ output += "page: " + str(idx+1) + "\n"
+ output += "title: " + item['name'] + "\n"
+ output += "summary: " + item['snippet'] + "\n"
+ assert response.status_code == 200
+ assert response.json() == output
+
+ # test load page
+ response = client.get("/load_page_index", params={"idx": "1"})
+ assert response.status_code == 200
+ assert response.json() == "This is page a"
+
+ response = client.get("/load_page_index", params={"idx": "2"})
+ assert response.status_code == 200
+ assert response.json() == "This is page b"
diff --git a/swarms/tools/chemical/__init__.py b/swarms/tools/chemical/__init__.py
new file mode 100644
index 00000000..3ee4e925
--- /dev/null
+++ b/swarms/tools/chemical/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("chemical-prop")
+def chemical_prop():
+ from .prop import build_tool
+ return build_tool
diff --git a/swarms/tools/chemical/prop/__init__.py b/swarms/tools/chemical/prop/__init__.py
new file mode 100644
index 00000000..bc824f38
--- /dev/null
+++ b/swarms/tools/chemical/prop/__init__.py
@@ -0,0 +1 @@
+from .api import build_tool
\ No newline at end of file
diff --git a/swarms/tools/chemical/prop/api.py b/swarms/tools/chemical/prop/api.py
new file mode 100644
index 00000000..7e36a606
--- /dev/null
+++ b/swarms/tools/chemical/prop/api.py
@@ -0,0 +1,150 @@
+import requests
+from pydantic import BaseModel
+from bs4 import BeautifulSoup
+import json, random
+from ...tool import Tool
+from typing import List, Optional, Union
+
+class ChemicalPropAPI:
+ def __init__(self) -> None:
+ self._endpoint = "https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/"
+
+ def get_name_by_cid(self, cid : str, top_k : Optional[int] = None) -> List[str]:
+ html_doc = requests.get(f"{self._endpoint}cid/{cid}/synonyms/XML").text
+ soup = BeautifulSoup(html_doc, "html.parser", from_encoding="utf-8")
+ syns = soup.find_all('synonym')
+ ans = []
+ if top_k is None:
+ top_k = len(syns)
+ for syn in syns[:top_k]:
+ ans.append(syn.text)
+ return ans
+
+ def get_cid_by_struct(self, smiles : str) -> List[str]:
+ html_doc = requests.get(f"{self._endpoint}smiles/{smiles}/cids/XML").text
+ soup = BeautifulSoup(html_doc,"html.parser",from_encoding="utf-8")
+ cids = soup.find_all('cid')
+ if cids is None:
+ return []
+ ans = []
+ for cid in cids:
+ ans.append(cid.text)
+ return ans
+
+ def get_cid_by_name(self, name : str, name_type : Optional[str] = None) -> List[str]:
+ url = f"{self._endpoint}name/{name}/cids/XML"
+ if name_type is not None:
+ url += f"?name_type={name_type}"
+ html_doc = requests.get(url).text
+ soup = BeautifulSoup(html_doc,"html.parser",from_encoding="utf-8")
+ cids = soup.find_all('cid')
+ if cids is None:
+ return []
+ ans = []
+ for cid in cids:
+ ans.append(cid.text)
+ return ans
+
+ def get_prop_by_cid(self, cid : str) -> str:
+ html_doc = requests.get(f"{self._endpoint}cid/{cid}/property/MolecularFormula,MolecularWeight,CanonicalSMILES,IsomericSMILES,IUPACName,XLogP,ExactMass,MonoisotopicMass,TPSA,Complexity,Charge,HBondDonorCount,HBondAcceptorCount,RotatableBondCount,HeavyAtomCount,CovalentUnitCount/json").text
+ return json.loads(html_doc)['PropertyTable']['Properties'][0]
+
+class GetNameResponse(BaseModel):
+
+ """name list"""
+ names: List[str]
+
+class GetStructureResponse(BaseModel):
+
+ """structure list"""
+ state : int
+ content : Optional[str] = None
+
+class GetIDResponse(BaseModel):
+ state : int
+ content : Union[str, List[str]]
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Chemical Property Plugin",
+ description="looking up a chemical's property",
+ name_for_model="Chemical Property",
+ description_for_model="Plugin for looking up a chemical's property using a chemical knowledge base. All input should be a json like {'input': 'some input'}. Please use the provided questions and search step by step.",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com",
+ )
+
+ if "debug" in config and config["debug"]:
+ chemical_prop_api = config["chemical_prop_api"]
+ else:
+ chemical_prop_api = ChemicalPropAPI()
+
+ @tool.get("/get_name")
+ def get_name( cid: str ):
+ """prints the possible 3 synonyms of the queried compound ID"""
+ ans = chemical_prop_api.get_name_by_cid(cid, top_k=3)
+ return {
+ "names": ans
+ }
+
+ @tool.get("/get_allname")
+ def get_allname( cid: str ):
+ """prints all the possible synonyms (might be too many, use this function carefully).
+ """
+ ans = chemical_prop_api.get_name_by_cid(cid)
+ return {
+ "names": ans
+ }
+
+ @tool.get("/get_id_by_struct")
+ def get_id_by_struct(smiles : str):
+ """prints the ID of the queried compound SMILES. This should only be used if smiles is provided or retrieved in the previous step. The input should not be a string, but a SMILES formula.
+ """
+ cids = chemical_prop_api.get_cid_by_struct(smiles)
+ if len(cids) == 0:
+ return {
+ "state": "no result"
+ }
+ else:
+ return {
+ "state": "matched",
+ "content": cids[0]
+ }
+
+ @tool.get("/get_id")
+ def get_id(name : str):
+ """prints the ID of the queried compound name, and prints the possible 5 names if the queried name can not been precisely matched,
+ """
+ cids = chemical_prop_api.get_cid_by_name(name)
+ if len(cids) > 0:
+ return {
+ "state": "precise",
+ "content": cids[0]
+ }
+
+ cids = chemical_prop_api.get_cid_by_name(name, name_type="word")
+ if len(cids) > 0:
+ if name in get_name(cids[0]):
+ return {
+ "state": "precise",
+ "content": cids[0]
+ }
+
+ ans = []
+ random.shuffle(cids)
+ for cid in cids[:5]:
+ nms = get_name(cid)
+ ans.append(nms)
+ return {
+ "state": "not precise",
+ "content": ans
+ }
+
+ @tool.get("/get_prop")
+ def get_prop(cid : str):
+ """prints the properties of the queried compound ID
+ """
+ return chemical_prop_api.get_prop_by_cid(cid)
+ return tool
diff --git a/swarms/tools/chemical/prop/readme.md b/swarms/tools/chemical/prop/readme.md
new file mode 100644
index 00000000..dd17b32f
--- /dev/null
+++ b/swarms/tools/chemical/prop/readme.md
@@ -0,0 +1,38 @@
+# Chemical Properties
+
+Contributor: [Zheni Zeng](https://github.com/Ellenzzn)
+
+## Tool Description
+The tool, "Chemical Property Plugin," provides the ability to lookup a chemical's properties by querying a chemical knowledge base. The tool accepts the input in a JSON format, like {'input': 'some input'} and guides you to ask questions and search step by step.
+
+### Tool Specifications
+
+- **Name**: Chemical Property Plugin
+- **Purpose**: Plugin for looking up a chemical's property using a chemical knowledge base
+- **Logo**: 
+- **Contact Email**: hello@contact.com
+- **Legal Information**: [Legal Information](hello@legal.com)
+
+### Core Functionality
+
+1. `get_name`
+
+ This method accepts a Compound ID (CID) and returns the top 3 synonyms for the queried compound.
+
+2. `get_allname`
+
+ This method accepts a Compound ID (CID) and returns all the possible synonyms for the queried compound. Be aware that the number of returned names can be large, so use this function with caution.
+
+3. `get_id_by_struct`
+
+ This method accepts a SMILES formula and returns the ID of the queried compound. This method should be used only if the SMILES formula is provided or retrieved in the previous step.
+
+4. `get_id`
+
+ This method accepts a compound name and returns the ID of the queried compound. If the name cannot be precisely matched, it will return the possible names.
+
+5. `get_prop`
+
+ This method accepts a Compound ID (CID) and returns the properties of the queried compound.
+
+The tool is made possible through the use of the ChemicalPropAPI, which interacts with a chemical knowledge base.
\ No newline at end of file
diff --git a/swarms/tools/chemical/prop/test_prop.py b/swarms/tools/chemical/prop/test_prop.py
new file mode 100644
index 00000000..d3835089
--- /dev/null
+++ b/swarms/tools/chemical/prop/test_prop.py
@@ -0,0 +1,62 @@
+from fastapi.testclient import TestClient
+from .api import build_tool, ChemicalPropAPI
+from typing import Tuple, Optional, List
+
+
+class ChemicalPropMock(ChemicalPropAPI):
+ def __init__(self) -> None:
+ self._endpoint = "https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/"
+
+ def get_name_by_cid(self, cid : str, top_k : Optional[int] = None) -> List[str]:
+ ans = ["A", "B", "C", "D", "E"]
+ if top_k is None:
+ top_k = len(ans)
+ return ans[:top_k]
+
+ def get_cid_by_struct(self, smiles : str) -> List[str]:
+ return ["123"]
+
+ def get_cid_by_name(self, name : str, name_type : Optional[str] = None) -> List[str]:
+ return ["123"]
+
+ def get_prop_by_cid(self, cid : str) -> str:
+ return {
+ "works": "well"
+ }
+
+
+app = build_tool({"debug": True, "chemical_prop_api": ChemicalPropMock()})
+client = TestClient(app)
+
+def test_get_name():
+ response = client.get("/get_name", params={"cid": 123})
+ assert response.status_code == 200
+ assert response.json() == {"names": ["A", "B", "C"]}
+
+def test_get_all_names():
+ response = client.get("/get_allname", params={"cid": 123})
+ assert response.status_code == 200
+ assert response.json() == {"names": ["A", "B", "C", "D", "E"]}
+
+def test_get_id_by_struct():
+ response = client.get("/get_id_by_struct", params={"smiles": "C1=CC=CC=C1"})
+ assert response.status_code == 200
+ assert response.json() == {
+ "state": "matched",
+ "content": "123"
+ }
+
+def test_get_id():
+ response = client.get("/get_id", params={"name": "benzene"})
+ assert response.status_code == 200
+ assert response.json() == {
+ "state": "precise",
+ "content": "123",
+ }
+
+def test_get_prop():
+ response = client.get("/get_prop", params={"cid": "123"})
+ assert response.status_code == 200
+ assert response.json() == {
+ "works": "well"
+ }
diff --git a/swarms/tools/code_interpreter/__init__.py b/swarms/tools/code_interpreter/__init__.py
new file mode 100644
index 00000000..b2118710
--- /dev/null
+++ b/swarms/tools/code_interpreter/__init__.py
@@ -0,0 +1,7 @@
+
+from ..registry import register
+
+@register("code_interpreter")
+def code_interpreter():
+ from .api import build_tool
+ return build_tool
diff --git a/swarms/tools/code_interpreter/api.py b/swarms/tools/code_interpreter/api.py
new file mode 100644
index 00000000..1ca396cd
--- /dev/null
+++ b/swarms/tools/code_interpreter/api.py
@@ -0,0 +1,47 @@
+from ..tool import Tool
+
+class CodeInterpreter:
+ def __init__(self, timeout=300):
+ self.globals = {}
+ self.locals = {}
+ self.timeout = timeout
+
+ def execute_code(self, code):
+ try:
+ # Wrap the code in an eval() call to return the result
+ wrapped_code = f"__result__ = eval({repr(code)}, globals(), locals())"
+ exec(wrapped_code, self.globals, self.locals)
+ return self.locals.get('__result__', None)
+ except Exception as e:
+ try:
+ # If eval fails, attempt to exec the code without returning a result
+ exec(code, self.globals, self.locals)
+ return "Code executed successfully."
+ except Exception as e:
+ return f"Error: {str(e)}"
+
+ def reset_session(self):
+ self.globals = {}
+ self.locals = {}
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Python Code Interpreter Tool",
+ "Execute Python Codes",
+ name_for_model="code_interpreter",
+ description_for_model="Plugin for executing python codes",
+ logo_url=None,
+ contact_email=None,
+ legal_info_url=None
+ )
+
+ # Usage example
+ interpreter = CodeInterpreter()
+
+ @tool.get("/execute_code")
+ def execute_python_code(code: str):
+ '''execute Python expressions with Python Interpreter, can be used as a simple calculator e.g., "(123 + 234) / 23 * 19"
+ '''
+ return interpreter.execute_code(code)
+
+ return tool
\ No newline at end of file
diff --git a/swarms/tools/code_interpreter/readme.md b/swarms/tools/code_interpreter/readme.md
new file mode 100644
index 00000000..a1ea6b59
--- /dev/null
+++ b/swarms/tools/code_interpreter/readme.md
@@ -0,0 +1,17 @@
+## Tool Description
+The "Python Code Interpreter Tool" is a handy tool designed to execute Python code. It can be used as a simple Python interpreter or a calculator to compute Python expressions.
+
+### Tool Specifications
+
+- **Name**: Python Code Interpreter Tool
+- **Purpose**: Execute Python codes
+- **Name for Model**: code_interpreter
+- **Model Description**: Plugin for executing python codes
+
+### Core Functionality
+
+1. `execute_code`
+
+ This method accepts a Python code string as input and executes it using a Python interpreter. It can also be used as a simple calculator. For example, sending a request with code `(123 + 234) / 23 * 19` will return the result of this expression.
+
+The tool makes use of the `CodeInterpreter` class which is capable of running Python code.
\ No newline at end of file
diff --git a/swarms/tools/database/__init__.py b/swarms/tools/database/__init__.py
new file mode 100644
index 00000000..4a6cf18e
--- /dev/null
+++ b/swarms/tools/database/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("database")
+def register_database_tool():
+ from .api import build_database_tool
+ return build_database_tool
\ No newline at end of file
diff --git a/swarms/tools/database/api.py b/swarms/tools/database/api.py
new file mode 100644
index 00000000..42c74ea1
--- /dev/null
+++ b/swarms/tools/database/api.py
@@ -0,0 +1,154 @@
+#!/usr/bin/env python
+# coding=utf-8
+
+import json
+import os
+
+from ..tool import Tool
+from bmtools.tools.database.utils.db_parser import get_conf
+from bmtools.tools.database.utils.database import DBArgs, Database
+
+import openai
+
+from typing import Optional, List, Mapping, Any
+import requests, json
+
+
+def build_database_tool(config) -> Tool:
+ tool = Tool(
+ "Data in a database",
+ "Look up user data",
+ name_for_model="Database",
+ description_for_model="Plugin for querying the data in a database",
+ logo_url="https://commons.wikimedia.org/wiki/File:Postgresql_elephant.svg",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ URL_REWRITE= "http://8.131.229.55:5114/rewrite"
+
+ # load db settings
+ script_path = os.path.abspath(__file__)
+ script_dir = os.path.dirname(script_path)
+ config = get_conf(script_dir + '/my_config.ini', 'postgresql')
+ dbargs = DBArgs("postgresql", config=config) # todo assign database name
+
+ # send request to database
+ db = Database(dbargs, timeout=-1)
+ schema = ""
+ query = ""
+
+ @tool.get("/get_database_schema")
+ #def get_database_schema(query : str='select * from customer limit 2;', db_name : str='tpch10x'):
+ def get_database_schema(db_name : str='tpch10x'):
+ global schema
+
+ #todo simplify the schema based on the query
+ print("=========== database name:", db_name)
+ schema = db.compute_table_schema()
+
+ print("========schema:", schema)
+
+ text_output = f"The database schema is:\n" + "".join(str(schema))
+
+ return text_output
+
+
+ @tool.get("/translate_nlp_to_sql")
+ def translate_nlp_to_sql(description : str):
+ global schema, query
+ """translate_nlp_to_sql(description: str) translates the input nlp string into sql query based on the database schema, and the sql query is the input of rewrite_sql and select_database_data API.
+ description is a string that represents the description of the result data.
+ schema is a string that represents the database schema.
+ Final answer should be complete.
+
+ This is an example:
+ Thoughts: Now that I have the database schema, I will use the \\\'translate_nlp_to_sql\\\' command to generate the SQL query based on the given description and schema, and take the SQL query as the input of the \\\'rewrite_sql\\\' and \\\'select_database_data\\\' commands.
+ Reasoning: I need to generate the SQL query accurately based on the given description. I will use the \\\'translate_nlp_to_sql\\\' command to obtain the SQL query based on the given description and schema, and take the SQL query as the input of the \\\'select_database_data\\\' command.
+ Plan: - Use the \\\'translate_nlp_to_sql\\\' command to generate the SQL query. \\\\n- Use the \\\'finish\\\' command to signal that I have completed all my objectives.
+ Command: {"name": "translate_nlp_to_sql", "args": {"description": "Retrieve the comments of suppliers . The results should be sorted in descending order based on the comments of the suppliers."}}
+ Result: Command translate_nlp_to_sql returned: "SELECT s_comment FROM supplier BY s_comment DESC"
+ """
+
+ openai.api_key = os.environ["OPENAI_API_KEY"]
+ # schema = db.compute_table_schema()
+
+ prompt = """Translate the natural language description into an semantic equivalent SQL query.
+ The table and column names used in the sql must exactly appear in the schema. Any other table and column names are unacceptable.
+ The schema is:\n
+ {}
+
+ The description is:\n
+ {}
+
+ The SQL query is:
+ """.format(schema, description)
+
+ # Set up the OpenAI GPT-3 model
+ model_engine = "gpt-3.5-turbo"
+
+ prompt_response = openai.ChatCompletion.create(
+ engine=model_engine,
+ messages=[
+ {"role": "assistant", "content": "The table schema is as follows: " + schema},
+ {"role": "user", "content": prompt}
+ ]
+ )
+ output_text = prompt_response['choices'][0]['message']['content']
+
+ query = output_text
+
+ return output_text
+
+ @tool.get("/select_database_data")
+ def select_database_data(query : str):
+ """select_database_data(query : str) Read the data stored in database based on the SQL query from the translate_nlp_to_sql API.
+ query : str is a string that represents the SQL query outputted by the translate_nlp_to_sql API.
+ Final answer should be complete.
+
+ This is an example:
+ Thoughts: Now that I have the database schema and SQL query, I will use the \\\'select_database_data\\\' command to retrieve the data from the database based on the SQL query
+ Reasoning: I will use the \\\'select_database_data\\\' command to retrieve the data from the database based on the SQL query
+ Plan: - Use the \\\'select_database_data\\\' command to retrieve the data from the database based on the SQL query.\\\\n- Use the \\\'finish\\\' command to signal that I have completed all my objectives.
+ Command: {"name": "select_database_data", "args": {query: "SELECT s_comment FROM supplier BY s_comment DESC"}}
+ Result: Command select_database_data returned: "The number of result rows is: 394"
+ """
+
+ if query == "":
+ raise RuntimeError("SQL query is empty")
+
+ print("=========== database query:", query)
+ res_completion = db.pgsql_results(query) # list format
+
+ if res_completion == "":
+ raise RuntimeError("Database query failed")
+
+ #data = json.loads(str(res_completion).strip())
+ if isinstance(res_completion, list):
+ text_output = f"The number of result rows is: "+"".join(str(len(res_completion)))
+ else:
+ text_output = f"The number of result rows is: "+"".join(str(res_completion))
+
+ return text_output
+
+ @tool.get("/rewrite_sql")
+ def rewrite_sql(sql: str="select distinct l_orderkey, sum(l_extendedprice + 3 + (1 - l_discount)) as revenue, o_orderkey, o_shippriority from customer, orders, lineitem where c_mktsegment = 'BUILDING' and c_custkey = o_custkey and l_orderkey = o_orderkey and o_orderdate < date '1995-03-15' and l_shipdate > date '1995-03-15' group by l_orderkey, o_orderkey, o_shippriority order by revenue desc, o_orderkey;"):
+ '''Rewrite the input sql query
+ '''
+
+ param = {
+ "sql": sql
+ }
+ print("Rewriter param:", param)
+ headers = {'Content-Type': 'application/json'}
+ res_completion = requests.post(URL_REWRITE, data=json.dumps(param), headers=headers)
+
+ #print("============ res_completion", res_completion.text)
+
+ data = json.loads(res_completion.text.strip())
+ data = data.get('data')
+ text_output = f"Rewritten sql is:\n"+data.get('rewritten_sql')
+
+ return text_output
+
+ return tool
\ No newline at end of file
diff --git a/swarms/tools/database/config.ini b/swarms/tools/database/config.ini
new file mode 100644
index 00000000..256fc58a
--- /dev/null
+++ b/swarms/tools/database/config.ini
@@ -0,0 +1,12 @@
+[postgresql]
+host =
+port =
+user =
+password =
+dbname =
+
+[mysql]
+host =
+port =
+user =
+password =
\ No newline at end of file
diff --git a/swarms/tools/database/data/script.py b/swarms/tools/database/data/script.py
new file mode 100644
index 00000000..5b60d7ae
--- /dev/null
+++ b/swarms/tools/database/data/script.py
@@ -0,0 +1,96 @@
+import json
+
+import json
+from difflib import ndiff
+import psycopg2
+import time
+
+'''
+prepare the test samples
+'''
+def execute_sql(sql):
+ conn = psycopg2.connect(database='tpch10x',
+ user='xxx',
+ password='xxx',
+ host='xxx',
+ port=xxx)
+
+ cur = conn.cursor()
+ cur.execute(sql)
+ # res = cur.fetchall()[0][0][0]
+ res = cur.fetchall()
+
+ conn.commit()
+ cur.close()
+ conn.close()
+
+ return len(res)
+
+# Load the JSON file as a dictionary
+data = {}
+with open('text2res_single_table.json', 'r') as f:
+ data = json.load(f)
+
+# Select only the diverse SQL statements
+# Find SQL statements with an edit distance of less than 10
+selected_sql = []
+for sql1 in data:
+
+ if 'sql' in sql1:
+ sql1 = sql1['sql']
+ print("==========sql", sql1)
+ start_time = time.time()
+ res_cnt = execute_sql(sql1)
+ end_time = time.time()
+ elapsed_time = end_time - start_time
+
+ print(res_cnt, elapsed_time)
+
+ selected_sql.append({f"sql": sql1, 'res_cnt': res_cnt, 'execution_time': elapsed_time})
+
+
+# Write the dictionary to a JSON file
+with open("text2res_single_table2.json", "w") as f:
+ json.dump(selected_sql, f)
+
+
+
+'''
+add text descriptions for queries
+'''
+if __name__ == "__main__":
+
+ llm = LLM() # add the def of your llm
+
+ with open('./tpch10x/text2res_single_table2.json', 'r') as json_file:
+ json_data = json.load(json_file)
+
+ new_json_data = []
+ for i,item in enumerate(json_data):
+ sql = item['sql']
+ print("========= ", i, sql)
+ prompt = "Please convert the following sql query into one natural language sentence: \n" + sql + "\n Note. 1) Do not mention any other information other than the natural language sentence; 2) Must use the origin table and column names in the sql query."
+ text = llm(prompt)
+ item['text'] = text
+ new_json_data.append(item)
+ #print(llm("Describe Shanghai in 200 words."))
+
+ with open("text2res_single_table3.json", "w") as f:
+ json.dump(new_json_data, f)
+
+
+
+'''
+calculate total execution time
+'''
+
+with open('text2res_origin.json', 'r') as json_file:
+ json_data = json.load(json_file)
+
+total_time = 0
+
+for i,item in enumerate(json_data):
+ print(item['execution_time'])
+ total_time = total_time + float(item['execution_time'])
+
+print(total_time)
diff --git a/swarms/tools/database/data/tpch10x/text2res_multi_table.json b/swarms/tools/database/data/tpch10x/text2res_multi_table.json
new file mode 100644
index 00000000..7ed0f105
--- /dev/null
+++ b/swarms/tools/database/data/tpch10x/text2res_multi_table.json
@@ -0,0 +1,13 @@
+[{"sql": "SELECT l_tax, o_totalprice FROM lineitem JOIN orders ON o_orderkey = l_orderkey WHERE l_linenumber >= 3 AND o_orderkey <> 784709 AND l_orderkey <= 189383 AND o_clerk < 'Clerk#000000181'", "res_cnt": "1707", "execution_time": "4.83", "text": "Retrieve the tax rate and total price from the lineitem and orders tables where the line number is greater than or equal to 3, the order key is not equal to 784709, the order key is less than or equal to 189383, and the clerk's ID is less than 'Clerk#000000181'."},
+{"sql": "SELECT p_type, ps_availqty, SUM(ps_suppkey) FROM part JOIN partsupp ON ps_partkey = p_partkey WHERE ps_suppkey <> 3804 AND ps_partkey <= 57823 AND ps_availqty < 4781 GROUP BY p_type, ps_availqty HAVING SUM(ps_suppkey) > 1089 ORDER BY SUM(ps_suppkey) ASC", "res_cnt": "100967", "execution_time": "2.25", "text": "Retrieve the part type, available quantity of parts, and the sum of supplier keys from the part and partsupp tables where the supplier key is not equal to 3804, the part key is less than or equal to 57823, and the available quantity of parts is less than 4781. Group the results by part type and available quantity of parts, and only include groups where the sum of supplier keys is greater than 1089. Sort the results in ascending order based on the sum of supplier keys."},
+{"sql": "SELECT c_phone, o_totalprice, n_comment, r_comment FROM orders JOIN customer ON c_custkey = o_custkey JOIN nation ON n_nationkey = c_nationkey JOIN region ON r_regionkey = n_regionkey WHERE n_nationkey < 8 AND o_orderstatus >= 'O' AND o_comment < 'ly around the pending theodo' ORDER BY c_phone ASC, n_comment ASC, o_totalprice ASC, r_comment ASC", "res_cnt": "1249285", "execution_time": "32.55", "text": "Retrieve the phone number of the customer, the total price of the order, the comment of the nation, and the comment of the region from the orders table, customer table, nation table, and region table, respectively, where the nation key is less than 8, the order status is greater than or equal to 'O', and the order comment is less than 'ly around the pending theodo'. Sort the result by customer phone number in ascending order, nation comment in ascending order, order total price in ascending order, and region comment in ascending order."},
+{"sql": "SELECT s_acctbal, ps_supplycost, r_regionkey, n_name FROM region JOIN nation ON n_regionkey = r_regionkey JOIN supplier ON s_nationkey = n_nationkey JOIN partsupp ON ps_suppkey = s_suppkey WHERE r_name <= 'AFRICA' AND n_comment >= 'l platelets. regular accounts x-ray: unusual, regular acco' AND s_nationkey >= 0", "res_cnt": "1272240", "execution_time": "22.09", "text": "Retrieve the account balance, supply cost, region key, and nation name from the region, nation, supplier, and partsupp tables where the region name is less than or equal to 'AFRICA', the nation comment is greater than or equal to 'l platelets. regular accounts x-ray: unusual, regular acco', and the supplier nation key is greater than or equal to 0."},
+{"sql": "SELECT o_orderkey, c_address FROM customer JOIN orders ON o_custkey = c_custkey WHERE c_phone <> '29-716-678-7355' AND o_custkey <= 16201 AND o_totalprice > 29849.7 AND o_clerk <> 'Clerk#000000361' AND o_shippriority >= 0 ORDER BY c_address DESC", "res_cnt": "150302", "execution_time": "2.55", "text": "Retrieve the order key and customer address from the customer and orders tables where the customer phone number is not '29-716-678-7355', the customer key is less than or equal to 16201, the order total price is greater than 29849.7, the order clerk is not 'Clerk#000000361', and the order ship priority is greater than or equal to 0. Sort the results by customer address in descending order."},
+{"sql": "SELECT s_comment, p_size, ps_supplycost FROM part JOIN partsupp ON ps_partkey = p_partkey JOIN supplier ON s_suppkey = ps_suppkey WHERE ps_availqty = 6331 AND p_type > 'LARGE POLISHED NICKEL' AND p_retailprice < 1758.76 ORDER BY s_comment DESC", "res_cnt": "394", "execution_time": "7.79", "text": "Retrieve the comments of suppliers, size of parts, and supply cost of part-supplier combinations where the available quantity of the part is 6331, the type of the part is greater than 'LARGE POLISHED NICKEL', and the retail price of the part is less than 1758.76. The results should be sorted in descending order based on the comments of the suppliers."},
+{"sql": "SELECT l_shipdate FROM lineitem WHERE l_extendedprice >= 50883.12 AND l_linenumber > 1 AND l_shipdate <> '1992-08-30' AND l_returnflag = 'A' ORDER BY l_shipdate DESC", "res_cnt": "3376197", "execution_time": "93.75", "text": "Retrieve the shipment dates from the lineitem table where the extended price is greater than or equal to 50883.12, the linenumber is greater than 1, the shipdate is not equal to '1992-08-30', and the return flag is 'A', and sort the results in descending order based on the shipment date."},
+{"sql": "SELECT c_acctbal, o_orderpriority, n_name FROM nation JOIN customer ON c_nationkey = n_nationkey JOIN orders ON o_custkey = c_custkey WHERE c_comment = 'ar deposits believe special, express foxes. packages cajole slyly e' AND n_name <> 'JAPAN' AND c_mktsegment = 'HOUSEHOLD' AND o_totalprice < 110238.65 AND c_name <= 'Customer#000013191'", "res_cnt": "7", "execution_time": "1.88", "text": "Retrieve the account balance, order priority, and nation name for customers who have a comment of 'ar deposits believe special, express foxes. packages cajole slyly e', are not from Japan, have a market segment of 'HOUSEHOLD', have a total order price less than 110238.65, and have a name less than or equal to 'Customer#000013191'."},
+{"sql": "SELECT p_type, ps_comment FROM part JOIN partsupp ON ps_partkey = p_partkey WHERE ps_availqty <> 1078 AND p_type < 'PROMO BURNISHED NICKEL' AND p_size > 8 AND p_container < 'LG CAN'", "res_cnt": "974546", "execution_time": "13.71", "text": "Retrieve the part type and part supplier comment from the Part and Partsupp tables where the available quantity of the part supplier is not equal to 1078, the part type is less than 'PROMO BURNISHED NICKEL', the part size is greater than 8, and the part container is less than 'LG CAN'."},
+{"sql": "SELECT ps_comment FROM partsupp WHERE ps_availqty >= 9324 AND ps_suppkey <> 1716 AND ps_partkey >= 65143 AND ps_supplycost < 164.19 AND ps_comment <> 's use slyly pending instructions. furiously final ideas shall have to are c'", "res_cnt": "85446", "execution_time": "9.15", "text": "Retrieve the comments from the \"partsupp\" table where the available quantity is greater than or equal to 9324, the supplier key is not equal to 1716, the part key is greater than or equal to 65143, the supply cost is less than 164.19, and the comment is not equal to 's use slyly pending instructions. furiously final ideas shall have to are c'."},
+{"sql": "SELECT r_name, s_suppkey, n_regionkey FROM supplier, nation, region WHERE r_regionkey >= 1 AND s_suppkey <= 9696 AND r_comment <> 'uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl' AND s_name < 'Supplier#000008309' AND s_phone <> '19-247-536-8083' ORDER BY s_suppkey ASC, n_regionkey DESC, r_name ASC", "res_cnt": "623025", "execution_time": "3.5", "text": "Retrieve the supplier name, supplier key, and region key from the supplier, nation, and region tables where the region key is greater than or equal to 1, the supplier key is less than or equal to 9696, the region comment is not equal to 'uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl', the supplier name is less than 'Supplier#000008309', and the supplier phone is not equal to '19-247-536-8083', and sort the results by supplier key in ascending order, region key in descending order, and region name in ascending order."},
+{"sql": "SELECT o_orderpriority FROM orders WHERE o_orderpriority > '3-MEDIUM' AND o_totalprice > 130861.55 AND o_comment < 'inally pending packages sleep along the furiously special' AND o_custkey <= 16480 AND o_shippriority <= 0 AND o_orderdate <> '1997-02-20' ORDER BY o_orderpriority ASC", "res_cnt": "14448", "execution_time": "1.70", "text": "Retrieve the order priority from the \"orders\" table where the order priority is greater than '3-MEDIUM', the total price is greater than 130861.55, the comment is less than 'finally pending packages sleep along the furiously special', the customer key is less than or equal to 16480, the ship priority is less than or equal to 0, and the order date is not equal to '1997-02-20', and sort the results in ascending order based on the order priority."}
+]
\ No newline at end of file
diff --git a/swarms/tools/database/data/tpch10x/text2res_origin.json b/swarms/tools/database/data/tpch10x/text2res_origin.json
new file mode 100644
index 00000000..65b1f314
--- /dev/null
+++ b/swarms/tools/database/data/tpch10x/text2res_origin.json
@@ -0,0 +1 @@
+[{"sql": "SELECT l_tax, o_totalprice FROM lineitem JOIN orders ON o_orderkey = l_orderkey WHERE l_linenumber >= 3 AND o_orderkey <> 784709 AND l_orderkey <= 189383 AND o_clerk < 'Clerk#000000181'", "res_cnt": "1707", "execution_time": "4.83", "text": "Retrieve the tax rate and total price from the lineitem and orders tables where the line number is greater than or equal to 3, the order key is not equal to 784709, the order key is less than or equal to 189383, and the clerk's ID is less than 'Clerk#000000181'."}, {"sql": "SELECT p_type, ps_availqty, SUM(ps_suppkey) FROM part JOIN partsupp ON ps_partkey = p_partkey WHERE ps_suppkey <> 3804 AND ps_partkey <= 57823 AND ps_availqty < 4781 GROUP BY p_type, ps_availqty HAVING SUM(ps_suppkey) > 1089 ORDER BY SUM(ps_suppkey) ASC", "res_cnt": "100967", "execution_time": "2.25", "text": "Retrieve the part type, available quantity of parts, and the sum of supplier keys from the part and partsupp tables where the supplier key is not equal to 3804, the part key is less than or equal to 57823, and the available quantity of parts is less than 4781. Group the results by part type and available quantity of parts, and only include groups where the sum of supplier keys is greater than 1089. Sort the results in ascending order based on the sum of supplier keys."}, {"sql": "SELECT c_phone, o_totalprice, n_comment, r_comment FROM orders JOIN customer ON c_custkey = o_custkey JOIN nation ON n_nationkey = c_nationkey JOIN region ON r_regionkey = n_regionkey WHERE n_nationkey < 8 AND o_orderstatus >= 'O' AND o_comment < 'ly around the pending theodo' ORDER BY c_phone ASC, n_comment ASC, o_totalprice ASC, r_comment ASC", "res_cnt": "1249285", "execution_time": "32.55", "text": "Retrieve the phone number of the customer, the total price of the order, the comment of the nation, and the comment of the region from the orders table, customer table, nation table, and region table, respectively, where the nation key is less than 8, the order status is greater than or equal to 'O', and the order comment is less than 'ly around the pending theodo'. Sort the result by customer phone number in ascending order, nation comment in ascending order, order total price in ascending order, and region comment in ascending order."}, {"sql": "SELECT s_acctbal, ps_supplycost, r_regionkey, n_name FROM region JOIN nation ON n_regionkey = r_regionkey JOIN supplier ON s_nationkey = n_nationkey JOIN partsupp ON ps_suppkey = s_suppkey WHERE r_name <= 'AFRICA' AND n_comment >= 'l platelets. regular accounts x-ray: unusual, regular acco' AND s_nationkey >= 0", "res_cnt": "1272240", "execution_time": "22.09", "text": "Retrieve the account balance, supply cost, region key, and nation name from the region, nation, supplier, and partsupp tables where the region name is less than or equal to 'AFRICA', the nation comment is greater than or equal to 'l platelets. regular accounts x-ray: unusual, regular acco', and the supplier nation key is greater than or equal to 0."}, {"sql": "SELECT o_orderkey, c_address FROM customer JOIN orders ON o_custkey = c_custkey WHERE c_phone <> '29-716-678-7355' AND o_custkey <= 16201 AND o_totalprice > 29849.7 AND o_clerk <> 'Clerk#000000361' AND o_shippriority >= 0 ORDER BY c_address DESC", "res_cnt": "150302", "execution_time": "2.55", "text": "Retrieve the order key and customer address from the customer and orders tables where the customer phone number is not '29-716-678-7355', the customer key is less than or equal to 16201, the order total price is greater than 29849.7, the order clerk is not 'Clerk#000000361', and the order ship priority is greater than or equal to 0. Sort the results by customer address in descending order."}, {"sql": "SELECT o_orderkey, l_comment FROM lineitem JOIN orders ON o_orderkey = l_orderkey WHERE o_orderpriority <= '5-LOW' AND l_shipdate <= '1993-08-01' AND l_suppkey < 701 AND o_custkey <= 64021", "res_cnt": "3880", "execution_time": "104.27", "text": "Retrieve the order key and comment from the lineitem and orders tables where the order priority is less than or equal to '5-LOW', the shipment date is before or on August 1st, 1993, the supplier key is less than 701, and the customer key is less than or equal to 64021."}, {"sql": "SELECT l_linenumber, ps_comment FROM partsupp JOIN lineitem ON l_suppkey = ps_partkey WHERE l_shipmode <> 'FOB' AND l_returnflag <= 'A' AND l_discount < 0.04 AND l_receiptdate > '1993-01-19'", "res_cnt": "13666156", "execution_time": "265.72", "text": "Retrieve the line number and comment from the Parts Supplier table and join it with the Line Item table where the supplier key matches the part key, and the shipment mode is not FOB, the return flag is less than or equal to A, the discount is less than 0.04, and the receipt date is after January 19th, 1993."}, {"sql": "SELECT l_returnflag, s_acctbal, ps_partkey FROM lineitem JOIN partsupp ON ps_partkey = l_suppkey JOIN supplier ON s_suppkey = ps_suppkey WHERE ps_partkey <= 33851 AND ps_comment > 'nts. bold, final theodolites wake after the regular Tiresias. blithely dogged requests are slyly according to the pending, stealt' AND l_suppkey <> 3674 AND l_orderkey > 4099425", "res_cnt": "31697273", "execution_time": "249.76", "text": "Retrieve the return flag, account balance, and part key from the Lineitem, Partsupp, and Supplier tables where the part key is less than or equal to 33851, the comment in Partsupp is greater than 'nts. bold, final theodolites wake after the regular Tiresias. blithely dogged requests are slyly according to the pending, stealt', the supplier key in Lineitem is not equal to 3674, and the order key in Lineitem is greater than 4099425."}, {"sql": "SELECT s_comment, p_size, ps_supplycost FROM part JOIN partsupp ON ps_partkey = p_partkey JOIN supplier ON s_suppkey = ps_suppkey WHERE ps_availqty = 6331 AND p_type > 'LARGE POLISHED NICKEL' AND p_retailprice < 1758.76 ORDER BY s_comment DESC", "res_cnt": "394", "execution_time": "7.79", "text": "Retrieve the comments of suppliers, size of parts, and supply cost of part-supplier combinations where the available quantity of the part is 6331, the type of the part is greater than 'LARGE POLISHED NICKEL', and the retail price of the part is less than 1758.76. The results should be sorted in descending order based on the comments of the suppliers."}, {"sql": "SELECT l_shipdate FROM lineitem WHERE l_extendedprice >= 50883.12 AND l_linenumber > 1 AND l_shipdate <> '1992-08-30' AND l_returnflag = 'A' ORDER BY l_shipdate DESC", "res_cnt": "3376197", "execution_time": "93.75", "text": "Retrieve the shipment dates from the lineitem table where the extended price is greater than or equal to 50883.12, the linenumber is greater than 1, the shipdate is not equal to '1992-08-30', and the return flag is 'A', and sort the results in descending order based on the shipment date."}, {"sql": "SELECT c_acctbal, o_orderpriority, n_name FROM nation JOIN customer ON c_nationkey = n_nationkey JOIN orders ON o_custkey = c_custkey WHERE c_comment = 'ar deposits believe special, express foxes. packages cajole slyly e' AND n_name <> 'JAPAN' AND c_mktsegment <= 'HOUSEHOLD' AND o_totalprice < 110238.65 AND c_name <= 'Customer#000013191'", "res_cnt": "7", "execution_time": "1.88", "text": "Retrieve the account balance, order priority, and nation name for customers who have a comment of 'ar deposits believe special, express foxes. packages cajole slyly e', are not from Japan, have a market segment of 'HOUSEHOLD', have a total order price less than 110238.65, and have a name less than or equal to 'Customer#000013191'."}, {"sql": "SELECT l_shipdate, ps_suppkey FROM lineitem, partsupp WHERE l_suppkey <= 80 AND ps_supplycost <> 334.23 AND l_shipmode = 'FOB' AND ps_availqty = 1178 AND ps_partkey > 198332 ORDER BY ps_suppkey ASC, l_shipdate DESC", "res_cnt": "5029728", "execution_time": "137.32", "text": "Retrieve the shipment date and supplier key from the Lineitem and Partsupp tables where the supplier key is less than or equal to 80, the supply cost is not equal to 334.23, the shipment mode is FOB, the available quantity is 1178, and the part key is greater than 198332. Sort the results by supplier key in ascending order and shipment date in descending order."}, {"sql": "SELECT p_type, ps_comment FROM part JOIN partsupp ON ps_partkey = p_partkey WHERE ps_availqty <> 1078 AND p_type < 'PROMO BURNISHED NICKEL' AND p_size > 8 AND p_container < 'LG CAN'", "res_cnt": "974546", "execution_time": "13.71", "text": "Retrieve the part type and part supplier comment from the Part and Partsupp tables where the available quantity of the part supplier is not equal to 1078, the part type is less than 'PROMO BURNISHED NICKEL', the part size is greater than 8, and the part container is less than 'LG CAN'."}, {"sql": "SELECT c_name, n_nationkey, o_clerk FROM nation JOIN customer ON c_nationkey = n_nationkey JOIN orders ON o_custkey = c_custkey WHERE n_name >= 'INDIA' AND c_phone <> '12-665-235-7505' AND c_nationkey <> 0 AND o_orderdate <> '1994-02-08' AND o_shippriority <= 0", "res_cnt": "9587942", "execution_time": "70.96", "text": "Retrieve the customer name, nation key, and clerk name from the nation, customer, and orders tables where the nation name is greater than or equal to 'INDIA', the customer phone number is not equal to '12-665-235-7505', the customer nation key is not equal to 0, the order date is not equal to '1994-02-08', and the order ship priority is less than or equal to 0."}, {"sql": "SELECT ps_comment FROM partsupp WHERE ps_availqty >= 9324 AND ps_suppkey <> 1716 AND ps_partkey >= 65143 AND ps_supplycost < 164.19 AND ps_comment <> 's use slyly pending instructions. furiously final ideas shall have to are c'", "res_cnt": "85446", "execution_time": "9.15", "text": "Retrieve the comments from the \"partsupp\" table where the available quantity is greater than or equal to 9324, the supplier key is not equal to 1716, the part key is greater than or equal to 65143, the supply cost is less than 164.19, and the comment is not equal to 's use slyly pending instructions. furiously final ideas shall have to are c'."}, {"sql": "SELECT r_name, s_suppkey, n_regionkey FROM supplier, nation, region WHERE r_regionkey >= 1 AND s_suppkey <= 9696 AND r_comment <> 'uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl' AND s_name < 'Supplier#000008309' AND s_phone <> '19-247-536-8083' ORDER BY s_suppkey ASC, n_regionkey DESC, r_name ASC", "res_cnt": "623025", "execution_time": "3.5", "text": "Retrieve the supplier name, supplier key, and region key from the supplier, nation, and region tables where the region key is greater than or equal to 1, the supplier key is less than or equal to 9696, the region comment is not equal to 'uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl', the supplier name is less than 'Supplier#000008309', and the supplier phone is not equal to '19-247-536-8083', and sort the results by supplier key in ascending order, region key in descending order, and region name in ascending order."}, {"sql": "SELECT o_orderpriority FROM orders WHERE o_orderpriority > '3-MEDIUM' AND o_totalprice > 130861.55 AND o_comment < 'inally pending packages sleep along the furiously special' AND o_custkey <= 16480 AND o_shippriority <= 0 AND o_orderdate <> '1997-02-20' ORDER BY o_orderpriority ASC", "res_cnt": "14448", "execution_time": "1.70", "text": "Retrieve the order priority from the \"orders\" table where the order priority is greater than '3-MEDIUM', the total price is greater than 130861.55, the comment is less than 'finally pending packages sleep along the furiously special', the customer key is less than or equal to 16480, the ship priority is less than or equal to 0, and the order date is not equal to '1997-02-20', and sort the results in ascending order based on the order priority."}, {"sql": "SELECT l_linenumber, s_address, ps_availqty FROM supplier JOIN partsupp ON ps_suppkey = s_suppkey JOIN lineitem ON l_suppkey = ps_partkey WHERE s_address > 'amCtx9qD7Dw0D4HkCoBNIpW9ZmM' AND l_comment <> 'ld accounts serve express requests. b' AND l_orderkey <= 2411266 AND s_comment <> 's. blithely regular deposits snooze carefully quickly' AND ps_partkey <> 64064 AND ps_supplycost >= 626.9 ORDER BY l_linenumber ASC", "res_cnt": "2948351", "execution_time": "19.08", "text": "Retrieve the line number, supplier address, and available quantity of parts from the supplier, partsupp, and lineitem tables where the supplier address is greater than 'amCtx9qD7Dw0D4HkCoBNIpW9ZmM', the line comment is not equal to 'ld accounts serve express requests. b', the order key is less than or equal to 2411266, the supplier comment is not equal to 's. blithely regular deposits snooze carefully quickly', the part key is not equal to 64064, and the supply cost is greater than or equal to 626.9, and sort the results by the line number in ascending order."}, {"sql": "SELECT n_name, s_nationkey, ps_comment FROM nation JOIN supplier ON s_nationkey = n_nationkey JOIN partsupp ON ps_suppkey = s_suppkey WHERE ps_suppkey >= 6409 AND ps_availqty <= 5816 AND n_name <> 'ROMANIA' AND s_acctbal > 2175.72", "res_cnt": "2979646", "execution_time": "46.05", "text": "Retrieve the name of the nation, the nation key of the supplier, and the comment of the parts supplier from the Nation, Supplier, and Partsupp tables where the supplier key is greater than or equal to 6409, the available quantity of the parts supplier is less than or equal to 5816, the name of the nation is not Romania, and the account balance of the supplier is greater than 2175.72."}, {"sql": "SELECT l_shipdate, s_acctbal, c_nationkey, ps_partkey, n_nationkey FROM lineitem JOIN partsupp ON ps_partkey = l_suppkey JOIN supplier ON s_suppkey = ps_suppkey JOIN nation ON n_nationkey = s_nationkey JOIN customer ON c_nationkey = n_nationkey WHERE s_address = '2Nf6B5RqqNb,J,Sjhfc2ui3Z' AND l_linestatus = 'F' ORDER BY c_nationkey DESC, s_acctbal DESC", "res_cnt": "71386872", "execution_time": "532.60", "text": "Retrieve the shipment date, supplier account balance, part key of parts supplier, nation key of customer, and nation key of supplier from the Lineitem, Partsupp, Supplier, Nation, and Customer tables, respectively, where the supplier address is '2Nf6B5RqqNb,J,Sjhfc2ui3Z' and the line status is 'F', and sort the result by customer nation key in descending order and supplier account balance in descending order."}, {"sql": "SELECT p_retailprice, ps_comment, s_suppkey, MIN(ps_availqty) FROM supplier JOIN partsupp ON ps_suppkey = s_suppkey JOIN part ON p_partkey = ps_partkey WHERE s_suppkey >= 3266 AND ps_availqty <> 9312 AND s_comment <= 'across the regular theodolites. regula' GROUP BY p_retailprice, ps_comment, s_suppkey HAVING MIN(ps_availqty) >= 2481", "res_cnt": "114465", "execution_time": "34.79", "text": "Retrieve the retail price, comment of the partsupplier, supplier key, and the minimum available quantity of each part, where the supplier key is greater than or equal to 3266, the available quantity is not equal to 9312, and the supplier comment is less than or equal to 'across the regular theodolites. regula', and group the results by retail price, partsupplier comment, and supplier key, and only show the results where the minimum available quantity is greater than or equal to 2481."}, {"sql": "SELECT o_orderstatus FROM orders WHERE o_orderstatus >= 'F' AND o_comment <> 'ts. bold platelets ab' AND o_clerk <= 'Clerk#000000672' AND o_custkey < 62692 ORDER BY o_orderstatus DESC", "res_cnt": "41902", "execution_time": "21.68", "text": "Retrieve the order status from the \"orders\" table where the order status is greater than or equal to 'F', the comment is not 'ts. bold platelets ab', the clerk is less than or equal to 'Clerk#000000672', and the customer key is less than 62692, then sort the results in descending order based on the order status."}, {"sql": "SELECT l_orderkey FROM lineitem WHERE l_discount <= 0.0 AND l_shipinstruct <= 'COLLECT COD' AND l_shipmode < 'REG AIR' AND l_shipdate = '1995-01-11' ORDER BY l_orderkey ASC", "res_cnt": "334", "execution_time": "27.65", "text": "Retrieve the order keys from the lineitem table where the discount is less than or equal to 0.0, the shipping instruction is 'COLLECT COD', the shipping mode is less than 'REG AIR', and the shipping date is '1995-01-11', and sort the results in ascending order by the order key."}, {"sql": "SELECT p_partkey, l_commitdate, o_clerk, ps_supplycost FROM orders JOIN lineitem ON l_orderkey = o_orderkey JOIN partsupp ON ps_partkey = l_suppkey JOIN part ON p_partkey = ps_partkey WHERE o_clerk = 'Clerk#000000551' AND o_shippriority >= 0 AND ps_comment >= 'sh. furiously special deposits nod fluffily. even deposits boost after the quickly ironic ideas. furiou'", "res_cnt": "5890", "execution_time": "32.78", "text": "Retrieve the part key, commit date, clerk, and supply cost from the orders, lineitem, partsupp, and part tables where the clerk is 'Clerk#000000551', the ship priority is greater than or equal to 0, and the comment in the partsupp table is greater than or equal to 'sh. furiously special deposits nod fluffily. even deposits boost after the quickly ironic ideas. furiou'."}, {"sql": "SELECT c_nationkey, o_shippriority, l_tax, n_regionkey, MAX(l_shipdate) FROM lineitem JOIN orders ON o_orderkey = l_orderkey JOIN customer ON c_custkey = o_custkey JOIN nation ON n_nationkey = c_nationkey WHERE o_orderpriority <= '4-NOT SPECIFIED' AND l_partkey <> 19162 GROUP BY c_nationkey, o_shippriority, l_tax, n_regionkey ORDER BY c_nationkey DESC, o_shippriority DESC, l_tax DESC", "res_cnt": "225", "execution_time": "293.07", "text": "Retrieve the maximum shipment date, nation key, ship priority, tax, and region key for each unique combination of customer nation, order ship priority, line item tax, and nation region, where the order priority is less than or equal to '4-NOT SPECIFIED' and the line item part key is not equal to 19162, and sort the results in descending order by customer nation, order ship priority, and line item tax."}, {"sql": "SELECT l_extendedprice, ps_supplycost, o_shippriority FROM orders JOIN lineitem ON l_orderkey = o_orderkey JOIN partsupp ON ps_partkey = l_suppkey WHERE l_returnflag <= 'R' AND o_comment <= 's? deposits sleep carefully according to the foxes. carefully even deposits' AND o_orderstatus > 'F' AND l_comment >= 'key players. regular theodolites'", "res_cnt": "50537296", "execution_time": "360.18", "text": "Retrieve the extended price, supply cost, and shipping priority from the orders, lineitem, and partsupp tables where the return flag is less than or equal to 'R', the order comment is less than or equal to 's? deposits sleep carefully according to the foxes. carefully even deposits', the order status is greater than 'F', and the line item comment is greater than or equal to 'key players. regular theodolites'."}, {"sql": "SELECT c_address, o_shippriority FROM orders JOIN customer ON c_custkey = o_custkey WHERE o_custkey > 147232 AND o_orderkey <= 4846240 AND c_phone > '23-576-689-1958' AND c_mktsegment > 'BUILDING' AND c_nationkey >= 20 AND c_comment <> 'beans hinder blithely sometimes final platele'", "res_cnt": "131253", "execution_time": "17.48", "text": "Retrieve the customer address and order shipping priority from the orders and customer tables where the customer key is greater than 147232, the order key is less than or equal to 4846240, the customer phone number is greater than '23-576-689-1958', the customer market segment is greater than 'BUILDING', the customer nation key is greater than or equal to 20, and the customer comment is not equal to 'beans hinder blithely sometimes final platele'."}, {"sql": "SELECT p_brand, ps_partkey FROM part JOIN partsupp ON ps_partkey = p_partkey WHERE ps_partkey > 92663 AND ps_availqty <= 9312 AND p_name <= 'azure sienna cornflower cyan white' AND p_retailprice < 1728.81 ORDER BY p_brand ASC", "res_cnt": "215865", "execution_time": "24.33", "text": "Retrieve the brand and part key from the \"part\" and \"partsupp\" tables where the part key is greater than 92663, the available quantity is less than or equal to 9312, the name of the part is less than or equal to 'azure sienna cornflower cyan white', and the retail price of the part is less than 1728.81. Sort the result by brand name in ascending order."}, {"sql": "SELECT s_name, ps_partkey, n_nationkey, SUM(s_nationkey) FROM partsupp JOIN supplier ON s_suppkey = ps_suppkey JOIN nation ON n_nationkey = s_nationkey WHERE s_nationkey <> 11 AND s_address < 'B1NwUSk0MfhhyceTtw' AND n_regionkey < 1 GROUP BY s_name, ps_partkey, n_nationkey HAVING SUM(s_nationkey) <> 18 ORDER BY SUM(s_nationkey) ASC", "res_cnt": "311360", "execution_time": "16.27", "text": "Retrieve the supplier name, part key, nation key, and the sum of the supplier nation key from the PartsSupp table joined with the Supplier table on the supplier key and the Nation table on the nation key where the supplier nation key is not equal to 11, the supplier address is less than 'B1NwUSk0MfhhyceTtw', and the nation region key is less than 1. Group the results by supplier name, part key, and nation key, and filter the results where the sum of the supplier nation key is not equal to 18. Finally, sort the results in ascending order based on the sum of the supplier nation key."}, {"sql": "SELECT l_orderkey, o_custkey, MIN(l_tax) FROM lineitem JOIN orders ON o_orderkey = l_orderkey WHERE l_extendedprice >= 13764.4 AND l_comment <> 'cajole carefully-- bold accounts nag blith' AND l_shipmode = 'FOB' AND l_shipinstruct <> 'TAKE BACK RETURN' GROUP BY l_orderkey, o_custkey ORDER BY l_orderkey ASC, o_custkey DESC", "res_cnt": "4432910", "execution_time": "201.59", "text": "Retrieve the minimum value of the \"l_tax\" column for each unique combination of \"l_orderkey\" and \"o_custkey\" from the \"lineitem\" and \"orders\" tables, respectively, where the \"l_extendedprice\" is greater than or equal to 13764.4, \"l_comment\" is not equal to 'cajole carefully-- bold accounts nag blith', \"l_shipmode\" is 'FOB', and \"l_shipinstruct\" is not equal to 'TAKE BACK RETURN', and sort the results in ascending order by \"l_orderkey\" and descending order by \"o_custkey\"."}, {"sql": "SELECT c_mktsegment, o_comment FROM customer JOIN orders ON o_custkey = c_custkey WHERE o_orderdate = '1993-08-06' AND c_phone <> '10-880-620-4229' AND o_totalprice > 112609.58 AND o_orderkey >= 3241411 AND o_orderpriority = '3-MEDIUM' ORDER BY o_comment DESC", "res_cnt": "694", "execution_time": "5.69", "text": "Retrieve the market segment and order comments from the customer and orders tables, respectively, where the order date is August 6th, 1993, the customer phone number is not 10-880-620-4229, the order total price is greater than 112609.58, the order key is greater than or equal to 3241411, and the order priority is 3-MEDIUM, and sort the results by order comments in descending order."}, {"sql": "SELECT l_orderkey FROM lineitem WHERE l_partkey < 31126 AND l_shipdate > '1994-12-26' AND l_suppkey <= 701 AND l_extendedprice <> 17058.56 AND l_shipmode = 'MAIL'", "res_cnt": "855", "execution_time": "67.07", "text": "Retrieve the order key from the line item table where the part key is less than 31126, the ship date is after December 26th, 1994, the supplier key is less than or equal to 701, the extended price is not equal to 17058.56, and the ship mode is 'MAIL'."}, {"sql": "SELECT c_acctbal, o_custkey FROM orders JOIN customer ON c_custkey = o_custkey WHERE c_phone <> '23-576-689-1958' AND c_acctbal <> 982.37 AND c_nationkey < 9 AND o_custkey <= 27481", "res_cnt": "98195", "execution_time": "3.54", "text": "Retrieve the account balance and customer key from the orders and customer tables, respectively, where the customer's phone number is not '23-576-689-1958', the account balance is not equal to 982.37, the customer's nation key is less than 9, and the customer key in the orders table is less than or equal to 27481."}, {"sql": "SELECT o_orderpriority, c_name, l_partkey, n_name, MAX(n_comment) FROM nation JOIN customer ON c_nationkey = n_nationkey JOIN orders ON o_custkey = c_custkey JOIN lineitem ON l_orderkey = o_orderkey WHERE l_shipmode <= 'RAIL' AND o_orderdate < '1998-06-21' GROUP BY o_orderpriority, c_name, l_partkey, n_name ORDER BY l_partkey ASC, c_name ASC, o_orderpriority DESC", "res_cnt": "33664366", "execution_time": "1264.11", "text": "Retrieve the maximum value of the \"n_comment\" column along with \"o_orderpriority\", \"c_name\", \"l_partkey\", and \"n_name\" columns from the \"nation\", \"customer\", \"orders\", and \"lineitem\" tables, where the \"l_shipmode\" column is less than or equal to 'RAIL' and the \"o_orderdate\" column is less than '1998-06-21', group the result by \"o_orderpriority\", \"c_name\", \"l_partkey\", and \"n_name\", and sort the result by \"l_partkey\" in ascending order, \"c_name\" in ascending order, and \"o_orderpriority\" in descending order."}, {"sql": "SELECT n_regionkey, c_custkey, r_name FROM region, nation, customer WHERE n_nationkey <> 6 AND c_mktsegment < 'FURNITURE' AND c_comment >= 'ully unusual packages wake bravely bold packages. unusual requests boost deposits! blithely ironic packages ab' ORDER BY n_regionkey ASC", "res_cnt": "5802120", "execution_time": "28.91", "text": "Retrieve the region key, customer key, and region name from the region, nation, and customer tables where the nation key is not equal to 6, the market segment is less than 'FURNITURE', and the comment is greater than or equal to 'ully unusual packages wake bravely bold packages. unusual requests boost deposits! blithely ironic packages ab', and sort the result by region key in ascending order."}, {"sql": "SELECT s_phone, ps_suppkey, MAX(s_name) FROM partsupp JOIN supplier ON s_suppkey = ps_suppkey WHERE s_suppkey >= 3256 AND s_nationkey >= 6 AND s_phone <= '26-319-194-2678' GROUP BY s_phone, ps_suppkey HAVING MAX(s_name) >= 'Supplier#000005330' ORDER BY MAX(s_name) ASC", "res_cnt": "38930", "execution_time": "62.81", "text": "Retrieve the supplier phone number, supplier key, and maximum supplier name from the partsupp and supplier tables where the supplier key is greater than or equal to 3256, the supplier nation key is greater than or equal to 6, and the supplier phone number is less than or equal to '26-319-194-2678'. Group the results by supplier phone number and supplier key, and filter the results to only include those with a maximum supplier name greater than or equal to 'Supplier#000005330'. Finally, sort the results by the maximum supplier name in ascending order."}, {"sql": "SELECT c_custkey, n_comment, p_size, s_suppkey, ps_suppkey FROM part JOIN partsupp ON ps_partkey = p_partkey JOIN supplier ON s_suppkey = ps_suppkey JOIN nation ON n_nationkey = s_nationkey JOIN customer ON c_nationkey = n_nationkey WHERE n_comment > 'al foxes promise slyly according to the regular accounts. bold requests alon' AND s_name = 'Supplier#000005891' AND ps_suppkey <> 7616 ORDER BY n_comment ASC", "res_cnt": "4786720", "execution_time": "62.81", "text": "Retrieve the customer key, comment, part size, supplier key, and partsupplier supplier key from the part, partsupplier, supplier, nation, and customer tables where the nation comment is greater than 'al foxes promise slyly according to the regular accounts. bold requests alon', the supplier name is 'Supplier#000005891', and the partsupplier supplier key is not equal to 7616, and sort the results in ascending order based on the nation comment."}, {"sql": "SELECT p_container, s_phone, ps_supplycost FROM part JOIN partsupp ON ps_partkey = p_partkey JOIN supplier ON s_suppkey = ps_suppkey WHERE s_phone <= '25-418-344-7176' AND s_address >= 'HdteuyoPpBVg' AND ps_partkey >= 152695 ORDER BY s_phone DESC, p_container DESC", "res_cnt": "2751434", "execution_time": "20.60", "text": "Retrieve the container type, phone number of the supplier, and supply cost of the part, for all parts that have a part key greater than or equal to 152695, and are supplied by a supplier whose phone number is less than or equal to '25-418-344-7176' and whose address is greater than or equal to 'HdteuyoPpBVg'. Sort the results in descending order by supplier phone number and then by container type."}, {"sql": "SELECT o_clerk, c_phone FROM orders JOIN customer ON c_custkey = o_custkey WHERE o_clerk < 'Clerk#000000377' AND o_shippriority = 0 AND o_orderstatus <> 'P' AND c_comment <= 'r, even accounts. fluffily expre' ORDER BY o_clerk DESC", "res_cnt": "392518", "execution_time": "31.61", "text": "Retrieve the clerk name and phone number of customers who have placed orders with a shipping priority of 0 and an order status that is not 'P', and whose clerk name is less than 'Clerk#000000377', and whose customer comment includes the phrase 'r, even accounts. fluffily expre', sorted in descending order by clerk name."}, {"sql": "SELECT o_orderdate, l_comment, MIN(l_orderkey), MIN(o_custkey) FROM orders JOIN lineitem ON l_orderkey = o_orderkey WHERE o_orderstatus >= 'P' AND o_orderpriority = '3-MEDIUM' AND o_clerk <= 'Clerk#000000629' GROUP BY o_orderdate, l_comment ORDER BY l_comment ASC, o_orderdate DESC", "res_cnt": "23591", "execution_time": "60.72", "text": "Retrieve the earliest order date, line item comment, minimum order key, and minimum customer key for orders that have an order status greater than or equal to 'P', an order priority of '3-MEDIUM', and a clerk less than or equal to 'Clerk#000000629', by joining the orders and lineitem tables on the order key, group the results by order date and line item comment, and sort the results by line item comment in ascending order and order date in descending order."}, {"sql": "SELECT l_comment, s_comment, ps_availqty FROM supplier JOIN partsupp ON ps_suppkey = s_suppkey JOIN lineitem ON l_suppkey = ps_partkey WHERE l_comment >= 'odolites along the blithely special a' AND s_nationkey >= 6 AND l_linenumber >= 6 ORDER BY l_comment ASC, s_comment ASC, ps_availqty DESC", "res_cnt": "8045694", "execution_time": "276.79", "text": "Retrieve the comments from the lineitem and supplier tables, along with the available quantity from the partsupp table, where the comment in the lineitem table is greater than or equal to 'odolites along the blithely special a', the nation key in the supplier table is greater than or equal to 6, and the line number in the lineitem table is greater than or equal to 6. Sort the results in ascending order by the comment in the lineitem table, then by the comment in the supplier table, and finally by the available quantity in descending order."}, {"sql": "SELECT c_name, s_phone, ps_supplycost, n_comment FROM customer JOIN nation ON n_nationkey = c_nationkey JOIN supplier ON s_nationkey = n_nationkey JOIN partsupp ON ps_suppkey = s_suppkey WHERE c_custkey > 90696 AND s_acctbal = 1845.54 AND ps_availqty <> 5628 ORDER BY n_comment ASC", "res_cnt": "4462800", "execution_time": "67.78", "text": "Retrieve the customer name, supplier phone number, part supplier supply cost, and nation comment by joining the customer, nation, supplier, and partsupp tables on their respective keys where the customer key is greater than 90696, supplier account balance is 1845.54, and part supplier available quantity is not equal to 5628, and sort the results in ascending order based on the nation comment."}, {"sql": "SELECT o_orderpriority, c_name, l_commitdate, MIN(l_shipdate) FROM customer JOIN orders ON o_custkey = c_custkey JOIN lineitem ON l_orderkey = o_orderkey WHERE l_shipinstruct >= 'TAKE BACK RETURN' AND c_acctbal <= 9242.58 AND o_clerk < 'Clerk#000000336' AND c_custkey >= 43536 AND c_phone < '11-943-882-4236' GROUP BY o_orderpriority, c_name, l_commitdate ORDER BY l_commitdate ASC", "res_cnt": "34564", "execution_time": "241.88", "text": "Retrieve the minimum shipment date, order priority, customer name, and committed date from the lineitem, customer, and orders tables where the shipment instruction is 'TAKE BACK RETURN', the account balance is less than or equal to 9242.58, the clerk is less than 'Clerk#000000336', the customer key is greater than or equal to 43536, and the phone number is less than '11-943-882-4236'. Group the results by order priority, customer name, and committed date, and sort the results by committed date in ascending order."}, {"sql": "SELECT l_receiptdate, p_partkey, ps_partkey, SUM(l_linenumber), MIN(p_type) FROM part JOIN partsupp ON ps_partkey = p_partkey JOIN lineitem ON l_suppkey = ps_partkey WHERE ps_supplycost = 362.95 AND p_container <> 'SM DRUM' GROUP BY l_receiptdate, p_partkey, ps_partkey HAVING SUM(l_linenumber) = 6 ORDER BY MIN(p_type) ASC, SUM(l_linenumber) DESC", "res_cnt": "225", "execution_time": "456.85", "text": "Retrieve the receipt date, part key, partsupp part key, sum of line numbers, and minimum part type from the part, partsupp, and lineitem tables where the partsupp supply cost is 362.95 and the part container is not 'SM DRUM', group the results by receipt date, part key, and partsupp part key, and filter the results to only include those with a sum of line numbers equal to 6, then sort the results by minimum part type in ascending order and sum of line numbers in descending order."}, {"sql": "SELECT o_comment, ps_suppkey, p_mfgr, l_suppkey FROM part JOIN partsupp ON ps_partkey = p_partkey JOIN lineitem ON l_suppkey = ps_partkey JOIN orders ON o_orderkey = l_orderkey WHERE p_comment > 'sleep s' AND l_linenumber <> 1 AND p_brand <= 'Brand#25' ORDER BY p_mfgr DESC", "res_cnt": "16212232", "execution_time": "766.15", "text": "Retrieve the comments of orders, supplier keys of partsupps, manufacturers of parts, and supplier keys of line items by joining the part, partsupp, lineitem, and orders tables where the comment of parts is greater than 'sleep s', the line number of line items is not equal to 1, and the brand of parts is less than or equal to 'Brand#25', and then sort the result by the manufacturer of parts in descending order."}, {"sql": "SELECT l_shipinstruct FROM lineitem WHERE l_linestatus > 'F' AND l_receiptdate >= '1994-07-02' AND l_tax < 0.04 AND l_returnflag > 'A' ORDER BY l_shipinstruct ASC", "res_cnt": "13322500", "execution_time": "138.70", "text": "Retrieve the shipping instructions from the lineitem table where the linestatus is greater than 'F', the receipt date is on or after '1994-07-02', the tax is less than 0.04, and the return flag is greater than 'A', and sort the results in ascending order based on the shipping instructions."}, {"sql": "SELECT s_address, l_shipdate, ps_comment FROM supplier JOIN partsupp ON ps_suppkey = s_suppkey JOIN lineitem ON l_suppkey = ps_partkey WHERE l_shipdate <= '1996-11-15' AND l_shipmode = 'RAIL' AND l_receiptdate < '1994-07-31' ORDER BY ps_comment ASC", "res_cnt": "12332892", "execution_time": "346.44", "text": "Retrieve the supplier's address, line item's shipment date, and part supplier's comment where the line item's shipment mode is 'RAIL', the line item's shipment date is on or before November 15, 1996, and the line item's receipt date is before July 31, 1994. Sort the results in ascending order based on the part supplier's comment."}, {"sql": "SELECT ps_suppkey, SUM(ps_partkey), AVG(ps_availqty), SUM(ps_supplycost) FROM partsupp WHERE ps_partkey < 73880 AND ps_availqty <> 9160 AND ps_supplycost < 892.65 GROUP BY ps_suppkey ORDER BY AVG(ps_availqty) ASC", "res_cnt": "99828", "execution_time": "0.99", "text": "Retrieve the supplier key, the sum of part keys, the average available quantity, and the sum of supply costs from the PartsSupp table where the part key is less than 73880, the available quantity is not equal to 9160, and the supply cost is less than 892.65. Group the results by supplier key and sort them in ascending order based on the average available quantity."}, {"sql": "SELECT c_phone, o_comment FROM customer JOIN orders ON o_custkey = c_custkey WHERE c_custkey < 73501 AND c_nationkey <= 23 AND o_orderpriority < '2-HIGH' AND o_orderstatus >= 'O' AND o_clerk < 'Clerk#000000623'", "res_cnt": "4588", "execution_time": "22.03", "text": "Retrieve the phone number and order comment of customers who have made orders with order priority less than '2-HIGH', order status greater than or equal to 'O', and clerk less than 'Clerk#000000623', and whose customer key is less than 73501 and nation key is less than or equal to 23."}, {"sql": "SELECT l_shipinstruct, s_name, ps_supplycost, MIN(s_name) FROM lineitem JOIN partsupp ON ps_partkey = l_suppkey JOIN supplier ON s_suppkey = ps_suppkey WHERE l_commitdate <= '1993-05-13' AND l_quantity < 6.0 AND s_address > 'pIXH,lXMVPMknhTIXb4owWLtOvOmsdb' GROUP BY l_shipinstruct, s_name, ps_supplycost HAVING MIN(s_name) > 'Supplier#000003443'", "res_cnt": "490286", "execution_time": "116.48", "text": "Retrieve the shipping instructions, supplier name, part supply cost, and the minimum supplier name from the lineitem, partsupp, and supplier tables where the commit date is on or before May 13th, 1993, the quantity is less than 6.0, and the supplier address is greater than 'pIXH,lXMVPMknhTIXb4owWLtOvOmsdb'. Group the results by shipping instructions, supplier name, and part supply cost, and filter the results to only include those with a minimum supplier name greater than 'Supplier#000003443'."}]
\ No newline at end of file
diff --git a/swarms/tools/database/data/tpch10x/text2res_single_table.json b/swarms/tools/database/data/tpch10x/text2res_single_table.json
new file mode 100644
index 00000000..df124b7c
--- /dev/null
+++ b/swarms/tools/database/data/tpch10x/text2res_single_table.json
@@ -0,0 +1,12 @@
+[{"sql": "SELECT o_clerk FROM orders WHERE o_clerk < 'Clerk#000000377' AND o_shippriority = 0 AND o_orderstatus <> 'P' ORDER BY o_clerk DESC", "res_cnt": 548984, "execution_time": 7.67071008682251, "text": "Retrieve the clerk names from the orders table where the clerk name is less than 'Clerk#000000377', the ship priority is 0, and the order status is not 'P', and sort the results in descending order based on the clerk name."},
+{"sql": "SELECT MIN(l_orderkey) FROM lineitem GROUP BY l_comment ORDER BY l_comment ASC", "res_cnt": 34378943, "execution_time": 606.0404827594757, "text": "Find the minimum value of the \"l_orderkey\" column from the \"lineitem\" table, grouped by the values in the \"l_comment\" column, and sort the result in ascending order based on the values in the \"l_comment\" column."},
+{"sql": "SELECT s_comment FROM supplier WHERE s_nationkey >= 6 ORDER BY s_comment ASC", "res_cnt": 76084, "execution_time": 2.5723021030426025, "text": "Retrieve the comments of suppliers whose nation key is greater than or equal to 6, and sort the results in ascending order based on the comments."},
+{"sql": "SELECT ps_supplycost FROM partsupp WHERE ps_availqty <> 5628", "res_cnt": 7999236, "execution_time": 40.69241118431091, "text": "Retrieve the supply cost from the \"partsupp\" table where the available quantity is not equal to 5628."},
+{"sql": "SELECT MIN(l_shipdate) FROM lineitem WHERE l_shipinstruct >= 'TAKE BACK RETURN' GROUP BY l_commitdate ORDER BY l_commitdate ASC", "res_cnt": 2466, "execution_time": 83.76757621765137, "text": "Find the earliest shipment date (minimum l_shipdate) for each unique l_commitdate where the shipping instruction is 'TAKE BACK RETURN', and sort the results by l_commitdate in ascending order."},
+{"sql": "SELECT MIN(p_type) FROM part WHERE p_container <> 'SM DRUM' GROUP BY p_partkey ORDER BY MIN(p_type) ASC", "res_cnt": 1949902, "execution_time": 26.379438877105713, "text": "Find the minimum value of the column \"p_type\" from the table \"part\" for each unique value in the column \"p_partkey\", but only for rows where the value in the column \"p_container\" is not equal to 'SM DRUM', and sort the results in ascending order based on the minimum value of \"p_type\"."},
+{"sql": "SELECT l_suppkey FROM lineitem WHERE l_linenumber <> 1", "res_cnt": 44986052, "execution_time": 262.93306398391724, "text": "Retrieve the supplier keys from the \"lineitem\" table where the line number is not equal to 1."},
+{"sql": "SELECT l_shipinstruct FROM lineitem WHERE l_linestatus > 'F' AND l_receiptdate >= '1994-07-02' AND l_tax < 0.04 AND l_returnflag > 'A' ORDER BY l_shipinstruct ASC", "res_cnt": 13322500, "execution_time": 286.6735632419586, "text": "Retrieve the shipping instructions from the lineitem table where the linestatus is greater than 'F', the receipt date is on or after '1994-07-02', the tax is less than 0.04, and the return flag is greater than 'A', and sort the results in ascending order based on the shipping instructions."},
+{"sql": "SELECT l_shipdate FROM lineitem WHERE l_shipdate <= '1996-11-15' AND l_shipmode = 'RAIL' AND l_receiptdate < '1994-07-31'", "res_cnt": 3083223, "execution_time": 83.14104127883911, "text": "Retrieve the shipment date from the lineitem table where the shipment date is on or before November 15th, 1996, the shipment mode is 'RAIL', and the receipt date is before July 31st, 1994."},
+{"sql": "SELECT ps_suppkey, SUM(ps_partkey), AVG(ps_availqty), SUM(ps_supplycost) FROM partsupp WHERE ps_partkey < 73880 AND ps_availqty <> 9160 AND ps_supplycost < 892.65 GROUP BY ps_suppkey ORDER BY AVG(ps_availqty) ASC", "res_cnt": 99828, "execution_time": 4.685328960418701, "text": "Retrieve the supplier key, the sum of part keys, the average available quantity, and the sum of supply costs from the PartsSupp table where the part key is less than 73880, the available quantity is not equal to 9160, and the supply cost is less than 892.65. Group the results by supplier key and sort them in ascending order based on the average available quantity."},
+{"sql": "SELECT c_phone FROM customer WHERE c_custkey < 73501 AND c_nationkey <= 23", "res_cnt": 70506, "execution_time": 5.223631858825684, "text": "Retrieve the phone numbers of customers whose customer key is less than 73501 and whose nation key is less than or equal to 23 from the \"customer\" table."},
+{"sql": "SELECT MIN(s_name) FROM supplier WHERE s_address > 'pIXH,lXMVPMknhTIXb4owWLtOvOmsdb' GROUP BY s_name HAVING MIN(s_name) > 'Supplier#000003443'", "res_cnt": 32766, "execution_time": 1.8696420192718506, "text": "Retrieve the minimum value of the column \"s_name\" from the table \"supplier\" for those records where the value in the column \"s_address\" is greater than 'pIXH,lXMVPMknhTIXb4owWLtOvOmsdb', group the results by the column \"s_name\", and only include those groups where the minimum value of the column \"s_name\" is greater than 'Supplier#000003443'."}]
\ No newline at end of file
diff --git a/swarms/tools/database/readme.md b/swarms/tools/database/readme.md
new file mode 100644
index 00000000..d3ea115a
--- /dev/null
+++ b/swarms/tools/database/readme.md
@@ -0,0 +1,52 @@
+# Database Tool
+
+Contributor: [Xuanhe Zhou](https://github.com/zhouxh19)
+
+### API Functions
+
+- *get_database_schema*: obtain the information of target tables
+- *select_database_data*: fetch the query results from a database instance
+- *rewrite_sql*: transform a sql query into an semantic-equivalent but execution-efficient sql
+
+### Dataset
+
+- Text2SQL Dataset
+
+ - *./data/tpch10x/text2res_multi_table.json*: relativley complex database queries (2-6 tables)
+ - *./data/tpch10x/text2res_single_table.json*: basic database queries
+
+- SQL Optimization Dataset
+
+ - Samples for *[sql rewrite](https://github.com/TsinghuaDatabaseGroup/lmdb/tree/main/query_rewrite/data)*
+
+ - Samples for *[index tuning](https://github.com/TsinghuaDatabaseGroup/lmdb/tree/main/index_tuning/data)*
+
+### Setup
+
+1. Follow the steps in [main readme](https://github.com/OpenBMB/BMTools/blob/main/README.md)
+
+
+2. Rename config.ini.template into my_config.ini
+
+3. Configure the adopted LLM model in the 84th line of ../../agent/singletool.py, e.g.,
+
+```bash
+ self.llm = OpenAI(model_name="gpt-3.5-turbo", temperature=0.0, openai_api_key=key)
+```
+
+4. Modify database settings in my_config.ini, e.g.,
+
+```bash
+ [{db_system}]
+ host = 127.0.0.1
+ port = 5432
+ user = postgres
+ password = postgres
+ dbname = postgres
+```
+
+And rename *config.ini* into *my_config.ini*.
+
+Note. {db_system} must match with that in ./api.py
+
+4. Modify and run the test.py script to test the tool
diff --git a/swarms/tools/database/test.py b/swarms/tools/database/test.py
new file mode 100644
index 00000000..82ba6772
--- /dev/null
+++ b/swarms/tools/database/test.py
@@ -0,0 +1,148 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'database', "http://127.0.0.1:8079/tools/database/"
+tool_name, tool_config = load_single_tools(tool_name, tool_url)
+print(tool_name, tool_config)
+stqa = STQuestionAnswerer()
+
+agent = stqa.load_tools(tool_name, tool_config, prompt_type="autogpt") # langchain: react-with-tool-description
+
+# 394
+text = "Retrieve the comments of suppliers, size of parts, and supply cost of part-supplier combinations where the available quantity of the part is 6331, the type of the part is greater than 'LARGE POLISHED NICKEL', and the retail price of the part is less than 1758.76. The results should be sorted in descending order based on the comments of the suppliers."
+# 1707
+# text = "Retrieve the tax rate and total price from the lineitem and orders tables where the line number is greater than or equal to 3, the order key is not equal to 784709, the order key is less than or equal to 189383, and the clerk's ID is less than 'Clerk#000000181'."
+# # 100967
+# text = "Retrieve the part type, available quantity of parts, and the sum of supplier keys from the part and partsupp tables where the supplier key is not equal to 3804, the part key is less than or equal to 57823, and the available quantity of parts is less than 4781. Group the results by part type and available quantity of parts, and only include groups where the sum of supplier keys is greater than 1089. Sort the results in ascending order based on the sum of supplier keys."
+# # 1249285 (fail to generate the sql)
+# text = "Retrieve the phone number of the customer, the total price of the order, the comment of the nation, and the comment of the region from the orders table, customer table, nation table, and region table, respectively, where the nation key is less than 8, the order status is greater than or equal to 'O', and the order comment is less than 'ly around the pending theodo'. Sort the result by customer phone number in ascending order, nation comment in ascending order, order total price in ascending order, and region comment in ascending order."
+# # 1272240
+# text = "Retrieve the account balance, supply cost, region key, and nation name from the region, nation, supplier, and partsupp tables where the region name is less than or equal to 'AFRICA', the nation comment is greater than or equal to 'l platelets. regular accounts x-ray: unusual, regular acco', and the supplier nation key is greater than or equal to 0."
+# # 150302
+# text = "Retrieve the order key and customer address from the customer and orders tables where the customer phone number is not '29-716-678-7355', the customer key is less than or equal to 16201, the order total price is greater than 29849.7, the order clerk is not 'Clerk#000000361', and the order ship priority is greater than or equal to 0. Sort the results by customer address in descending order."
+# 3376197
+# text = "Retrieve the shipment dates from the lineitem table where the extended price is greater than or equal to 50883.12, the linenumber is greater than 1, the shipdate is not equal to '1992-08-30', and the return flag is 'A', and sort the results in descending order based on the shipment date." # 7
+# 7
+# text = "Retrieve the account balance, order priority, and nation name for customers who have a comment of 'ar deposits believe special, express foxes. packages cajole slyly e', are not from Japan, have a market segment of 'HOUSEHOLD', have a total order price less than 110238.65, and have a name less than or equal to 'Customer#000013191'." # 8
+# 974546
+# text = "Retrieve the part type and part supplier comment from the Part and Partsupp tables where the available quantity of the part supplier is not equal to 1078, the part type is less than 'PROMO BURNISHED NICKEL', the part size is greater than 8, and the part container is less than 'LG CAN'." # 9
+# 85446
+# text = "Retrieve the comments from the \"partsupp\" table where the available quantity is greater than or equal to 9324, the supplier key is not equal to 1716, the part key is greater than or equal to 65143, the supply cost is less than 164.19, and the comment is not equal to 's use slyly pending instructions. furiously final ideas shall have to are c'." # 10
+# 623025 (wrong results ~ directly call the database tool)
+# text = "Retrieve the supplier name, supplier key, and region key from the supplier, nation, and region tables where the region key is greater than or equal to 1, the supplier key is less than or equal to 9696, the region comment is not equal to 'uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl', the supplier name is less than 'Supplier#000008309', and the supplier phone is not equal to '19-247-536-8083', and sort the results by supplier key in ascending order, region key in descending order, and region name in ascending order." # 11
+# 14448 (wrong results)
+# text = "Retrieve the order priority from the \"orders\" table where the order priority is greater than '3-MEDIUM', the total price is greater than 130861.55, the comment is less than 'finally pending packages sleep along the furiously special', the customer key is less than or equal to 16480, the ship priority is less than or equal to 0, and the order date is not equal to '1997-02-20', and sort the results in ascending order based on the order priority." # 12
+
+# rewrite
+#text = "SELECT s_comment FROM part As p,partsupp As ps,supplier As s WHERE p.p_partkey = ps.ps_partkey AND s.s_suppkey = ps.ps_suppkey AND ps.ps_availqty = 6331 AND p.p_type > 'LARGE POLISHED NICKEL' AND p.p_retailprice < 1758.76 ORDER BY s_comment DESC;"
+# text = "Retrieve the comments of suppliers. The results should be sorted in descending order based on the comments of the suppliers"
+text = "Retrieve the comments in the supplier table where the p\_partkey column in the part table matches the ps\_partkey column in the partsupp table, the ps\_availqty column in the partsupp table equals 6331, the p_type column in the part table is greater than 'LARGE POLISHED NICKEL', and the p\_retailprice column in the part table is less than 1758.76."
+
+agent.run([""" First get the database schema via get_database_schema. Next generate the sql query exactly based on the schema and the following description:
+\"{}\"
+
+Next rewrite the SQL query and output the total number of rows in the database results of the rewritten SQL query.
+
+Note. 1) Only obtain the database schema once;
+2) If an API is successfully called, do not call the same API again;
+3) Do not use any image in the output;
+4) The db_name is tpch10x;
+5) Count the rows of query results by your own and do not output the whole query results.
+""".format(text)])
+
+# # unit test: get_database_schema
+# agent.run(["""
+# Fetch the database schema from a postgresql database named tpch10x.\"
+# """])
+
+
+# # unit test: rewrite_sql
+# agent("Rewrite the input query: select * from customer limit 2")
+
+
+# # unit test: select_database_data
+# agent("""
+# Output the total number of rows in the query results from a postgresql database based on the following description:
+
+# \"Retrieve all the data from the 'customer' table and limit the output to only the first 2 rows.\"
+# """)
+
+''' output (autogpt)
+> Entering new LLMChain chain...
+Prompt after formatting:
+System: You are Tom, Assistant
+Your decisions must always be made independently
+ without seeking user assistance. Play to your strengths
+ as an LLM and pursue simple strategies with no legal complications.
+ If you have completed all your tasks,
+ make sure to use the "finish" command.
+
+GOALS:
+
+{input prompt}
+
+Constraints:
+1. ~4000 word limit for short term memory. Your short term memory is short, so immediately save important information to files.
+2. If you are unsure how you previously did something or want to recall past events, thinking about similar events will help you remember.
+3. No user assistance
+4. Exclusively use the commands listed in double quotes e.g. "command name"
+
+Commands:
+1. get_database_schema: . Your input should be a json (args json schema): {{"db_name" : string, }} The Action to trigger this API should be get_database_schema and the input parameters should be a json dict string. Pay attention to the type of parameters.
+2. select_database_data: Read the data stored in database. Your input should be a json (args json schema): {{"query" : string, }} The Action to trigger this API should be select_database_data and the input parameters should be a json dict string. Pay attention to the type of parameters.
+3. rewrite_sql: Get rewritten sql from rewriter. Your input should be a json (args json schema): {{"sql" : string, }} The Action to trigger this API should be rewrite_sql and the input parameters should be a json dict string. Pay attention to the type of parameters.
+4. finish: use this to signal that you have finished all your objectives, args: "response": "final response to let people know you have finished your objectives"
+
+Resources:
+1. Internet access for searches and information gathering.
+2. Long Term memory management.
+3. GPT-3.5 powered Agents for delegation of simple tasks.
+4. File output.
+
+Performance Evaluation:
+1. Continuously review and analyze your actions to ensure you are performing to the best of your abilities.
+2. Constructively self-criticize your big-picture behavior constantly.
+3. Reflect on past decisions and strategies to refine your approach.
+4. Every command has a cost, so be smart and efficient. Aim to complete tasks in the least number of steps.
+
+You should only respond in JSON format as described below
+Response Format:
+{
+ "thoughts": {
+ "text": "thought",
+ "reasoning": "reasoning",
+ "plan": "- short bulleted\n- list that conveys\n- long-term plan",
+ "criticism": "constructive self-criticism",
+ "speak": "thoughts summary to say to user"
+ },
+ "command": {
+ "name": "command name",
+ "args": {
+ "arg name": "value"
+ }
+ }
+}
+Ensure the response can be parsed by Python json.loads
+System: The current time and date is Wed Apr 26 11:02:25 2023
+System: This reminds you of these events from your past:
+[]
+
+Human: Determine which next command to use, and respond using the format specified above:
+
+> Finished chain.
+{
+ "thoughts": {
+ "text": "Since the 'get_database_schema' command did not work, I will try to retrieve the schema manually. I will use the following SQL query to retrieve the schema: 'SELECT table_name, column_name FROM information_schema.columns WHERE table_schema = 'public' ORDER BY table_name, ordinal_position;'",
+ "reasoning": "If the 'get_database_schema' command is not working, I can manually retrieve the schema using an SQL query. This query will retrieve the names of all the tables and columns in the 'public' schema of the database.",
+ "plan": "- Use the SQL query 'SELECT table_name, column_name FROM information_schema.columns WHERE table_schema = 'public' ORDER BY table_name, ordinal_position;' to retrieve the schema\n- Generate SQL query based on given description\n- Use 'select_database_data' command to retrieve query results\n- Count number of rows in query results using Python code",
+ "criticism": "I need to make sure that I am using the correct table and column names from the schema in the SQL query. I also need to make sure that I am using the correct syntax for the SQL query.",
+ "speak": "I will try to retrieve the schema manually using an SQL query."
+ },
+ "command": {
+ "name": "select_database_data",
+ "args": {
+ "query": "SELECT table_name, column_name FROM information_schema.columns WHERE table_schema = 'public' ORDER BY table_name, ordinal_position;"
+ }
+ }
+}
+
+'''
\ No newline at end of file
diff --git a/swarms/tools/database/utils/__init__.py b/swarms/tools/database/utils/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/swarms/tools/database/utils/data.py b/swarms/tools/database/utils/data.py
new file mode 100644
index 00000000..5b0a123d
--- /dev/null
+++ b/swarms/tools/database/utils/data.py
@@ -0,0 +1,27 @@
+import random
+
+
+def subsample_data(data, subsample_size):
+ """
+ Subsample data. Data is in the form of a tuple of lists.
+ """
+ inputs, outputs = data
+ assert len(inputs) == len(outputs)
+ indices = random.sample(range(len(inputs)), subsample_size)
+ inputs = [inputs[i] for i in indices]
+ outputs = [outputs[i] for i in indices]
+ return inputs, outputs
+
+
+def create_split(data, split_size):
+ """
+ Split data into two parts. Data is in the form of a tuple of lists.
+ """
+ inputs, outputs = data
+ assert len(inputs) == len(outputs)
+ indices = random.sample(range(len(inputs)), split_size)
+ inputs1 = [inputs[i] for i in indices]
+ outputs1 = [outputs[i] for i in indices]
+ inputs2 = [inputs[i] for i in range(len(inputs)) if i not in indices]
+ outputs2 = [outputs[i] for i in range(len(inputs)) if i not in indices]
+ return (inputs1, outputs1), (inputs2, outputs2)
diff --git a/swarms/tools/database/utils/database.py b/swarms/tools/database/utils/database.py
new file mode 100644
index 00000000..43ad2e55
--- /dev/null
+++ b/swarms/tools/database/utils/database.py
@@ -0,0 +1,268 @@
+import psycopg2
+import pymysql
+import json
+import logging
+import os
+from enum import IntEnum
+
+
+class DataType(IntEnum):
+ VALUE = 0
+ TIME = 1
+ CHAR = 2
+
+AGGREGATE_CONSTRAINTS = {
+ DataType.VALUE.value: ['count', 'max', 'min', 'avg', 'sum'],
+ DataType.VALUE.CHAR: ['count', 'max', 'min'],
+ DataType.VALUE.TIME: ['count', 'max', 'min']
+}
+
+def transfer_field_type(database_type, server):
+ data_type = list()
+ if server == 'mysql':
+ data_type = [['int', 'tinyint', 'smallint', 'mediumint', 'bigint', 'float', 'double', 'decimal'],
+ ['date', 'time', 'year', 'datetime', 'timestamp']]
+ database_type = database_type.lower().split('(')[0]
+ elif server == 'postgresql':
+ data_type = [['integer', 'numeric'],
+ ['date']]
+ if database_type in data_type[0]:
+ return DataType.VALUE.value
+ elif database_type in data_type[1]:
+ return DataType.TIME.value
+ else:
+ return DataType.CHAR.value
+
+class DBArgs(object):
+
+ def __init__(self, dbtype, config, dbname=None):
+ self.dbtype = dbtype
+ if self.dbtype == 'mysql':
+ self.host = config['host']
+ self.port = config['port']
+ self.user = config['user']
+ self.password = config['password']
+ self.dbname = dbname if dbname else config['dbname']
+ self.driver = 'com.mysql.jdbc.Driver'
+ self.jdbc = 'jdbc:mysql://'
+ else:
+ self.host = config['host']
+ self.port = config['port']
+ self.user = config['user']
+ self.password = config['password']
+ self.dbname = dbname if dbname else config['dbname']
+ self.driver = 'org.postgresql.Driver'
+ self.jdbc = 'jdbc:postgresql://'
+
+
+class Database():
+ def __init__(self, args, timeout=-1):
+ self.args = args
+ self.conn = self.resetConn(timeout)
+
+ # self.schema = self.compute_table_schema()
+
+ def resetConn(self, timeout=-1):
+ if self.args.dbtype == 'mysql':
+ conn = pymysql.connect(
+ host=self.args.host,
+ user=self.args.user,
+ passwd=self.args.password,
+ database=self.args.dbname,
+ port=int(self.args.port),
+ charset='utf8',
+ connect_timeout=timeout,
+ read_timeout=timeout,
+ write_timeout=timeout)
+ else:
+ if timeout > 0:
+ conn = psycopg2.connect(database=self.args.dbname,
+ user=self.args.user,
+ password=self.args.password,
+ host=self.args.host,
+ port=self.args.port,
+ options='-c statement_timeout={}s'.format(timeout))
+ else:
+ conn = psycopg2.connect(database=self.args.dbname,
+ user=self.args.user,
+ password=self.args.password,
+ host=self.args.host,
+ port=self.args.port)
+
+ return conn
+ '''
+ def exec_fetch(self, statement, one=True):
+ cur = self.conn.cursor()
+ cur.execute(statement)
+ if one:
+ return cur.fetchone()
+ return cur.fetchall()
+ '''
+
+ def execute_sql(self, sql):
+ fail = 1
+ self.conn = self.resetConn()
+ cur = self.conn.cursor()
+ i = 0
+ cnt = 3 # retry times
+ while fail == 1 and i < cnt:
+ try:
+ fail = 0
+ cur.execute(sql)
+ except BaseException:
+ fail = 1
+ res = []
+ if fail == 0:
+ res = cur.fetchall()
+ i = i + 1
+ logging.debug('database {}, return flag {}, execute sql {}\n'.format(self.args.dbname, 1 - fail, sql))
+ if fail == 1:
+ # raise RuntimeError("Database query failed")
+ print("SQL Execution Fatal!!")
+ return 0, ''
+ elif fail == 0:
+ # print("SQL Execution Succeed!!")
+ return 1, res
+
+ def pgsql_results(self, sql):
+ try:
+ #success, res = self.execute_sql('explain (FORMAT JSON, analyze) ' + sql)
+ success, res = self.execute_sql(sql)
+ #print("pgsql_results", success, res)
+ if success == 1:
+ return res
+ else:
+ return ""
+ except Exception as error:
+ logging.error('pgsql_results Exception', error)
+ return ""
+
+
+ def pgsql_cost_estimation(self, sql):
+ try:
+ #success, res = self.execute_sql('explain (FORMAT JSON, analyze) ' + sql)
+ success, res = self.execute_sql('explain (FORMAT JSON) ' + sql)
+ if success == 1:
+ cost = res[0][0][0]['Plan']['Total Cost']
+ return cost
+ else:
+ logging.error('pgsql_cost_estimation Fails!')
+ return 0
+ except Exception as error:
+ logging.error('pgsql_cost_estimation Exception', error)
+ return 0
+
+ def pgsql_actual_time(self, sql):
+ try:
+ #success, res = self.execute_sql('explain (FORMAT JSON, analyze) ' + sql)
+ success, res = self.execute_sql('explain (FORMAT JSON, analyze) ' + sql)
+ if success == 1:
+ cost = res[0][0][0]['Plan']['Actual Total Time']
+ return cost
+ else:
+ return -1
+ except Exception as error:
+ logging.error('pgsql_actual_time Exception', error)
+ return -1
+
+ def mysql_cost_estimation(self, sql):
+ try:
+ success, res = self.execute_sql('explain format=json ' + sql)
+ if success == 1:
+ total_cost = self.get_mysql_total_cost(0, json.loads(res[0][0]))
+ return float(total_cost)
+ else:
+ return -1
+ except Exception as error:
+ logging.error('mysql_cost_estimation Exception', error)
+ return -1
+
+ def get_mysql_total_cost(self, total_cost, res):
+ if isinstance(res, dict):
+ if 'query_cost' in res.keys():
+ total_cost += float(res['query_cost'])
+ else:
+ for key in res:
+ total_cost += self.get_mysql_total_cost(0, res[key])
+ elif isinstance(res, list):
+ for i in res:
+ total_cost += self.get_mysql_total_cost(0, i)
+
+ return total_cost
+
+ def get_tables(self):
+ if self.args.dbtype == 'mysql':
+ return self.mysql_get_tables()
+ else:
+ return self.pgsql_get_tables()
+
+ # query cost estimated by the optimizer
+ def cost_estimation(self, sql):
+ if self.args.dbtype == 'mysql':
+ return self.mysql_cost_estimation(sql)
+ else:
+ return self.pgsql_cost_estimation(sql)
+
+ def compute_table_schema(self):
+ """
+ schema: {table_name: [field_name]}
+ :param cursor:
+ :return:
+ """
+
+ if self.args.dbtype == 'postgresql':
+ # cur_path = os.path.abspath('.')
+ # tpath = cur_path + '/sampled_data/'+dbname+'/schema'
+ sql = 'SELECT table_name FROM information_schema.tables WHERE table_schema = \'public\';'
+ success, res = self.execute_sql(sql)
+ #print("======== tables", res)
+ if success == 1:
+ tables = res
+ schema = {}
+ for table_info in tables:
+ table_name = table_info[0]
+ sql = 'SELECT column_name, data_type FROM information_schema.columns WHERE table_name = \'' + table_name + '\';'
+ success, res = self.execute_sql(sql)
+ #print("======== table columns", res)
+ columns = res
+ schema[table_name] = []
+ for col in columns:
+
+ ''' compute the distinct value ratio of the column
+
+ if transfer_field_type(col[1], self.args.dbtype) == DataType.VALUE.value:
+ sql = 'SELECT count({}) FROM {};'.format(col[0], table_name)
+ success, res = self.execute_sql(sql)
+ print("======== column rows", res)
+ num = res
+ if num[0][0] != 0:
+ schema[table_name].append(col[0])
+ '''
+
+ #schema[table_name].append("column {} is of {} type".format(col[0], col[1]))
+ schema[table_name].append("{}".format(col[0]))
+ '''
+ with open(tpath, 'w') as f:
+ f.write(str(schema))
+ '''
+ #print(schema)
+ return schema
+
+ else:
+ logging.error('pgsql_cost_estimation Fails!')
+ return 0
+
+ def simulate_index(self, index):
+ #table_name = index.table()
+ statement = (
+ "SELECT * FROM hypopg_create_index(E'{}');".format(index)
+ )
+ result = self.execute_sql(statement)
+
+ return result
+
+ def drop_simulated_index(self, oid):
+ statement = f"select * from hypopg_drop_index({oid})"
+ result = self.execute_sql(statement)
+
+ assert result[0] is True, f"Could not drop simulated index with oid = {oid}."
diff --git a/swarms/tools/database/utils/db_parser.py b/swarms/tools/database/utils/db_parser.py
new file mode 100644
index 00000000..a4748145
--- /dev/null
+++ b/swarms/tools/database/utils/db_parser.py
@@ -0,0 +1,71 @@
+import argparse
+import configparser
+import logging
+
+def get_conf(conf_file, server_name):
+ conf = configparser.ConfigParser()
+ conf.read(conf_file)
+ sql_server = conf[server_name]
+ return sql_server
+
+
+def get_parser():
+ parser = argparse.ArgumentParser(
+ description="Instruction Induction.")
+
+ parser.add_argument("--db_conf", type=str,
+ default = '../database/configs/config.ini')
+
+ """
+ parser.add_argument("--train_data", type=str,
+ default="./data/raw/train/rules.json")
+ parser.add_argument("--eval_data", type=str,
+ default="./data/raw/execute/zhenzhi.json")
+
+ parser.add_argument("--data_save", type=str,
+ default="./result/{}/data/")
+
+ parser.add_argument("--seed", type=int, default=42)
+ parser.add_argument("--runlog", type=str,
+ default="./result/{}/exp_runtime.log")
+ parser.add_argument("--logdir", type=str,
+ default="./result/{}/logdir/")
+ parser.add_argument("--model_save", type=str,
+ default="./result/{}/model/")
+
+ parser.add_argument("--gen_sample", type=int, default=20)
+ parser.add_argument("--gen_demo", type=int, default=16)
+ parser.add_argument("--gen_prompt_per_sample", type=int, default=5)
+ parser.add_argument("--gen_model", type=str, default="text-davinci-003")
+ parser.add_argument("--gen_max_tokens", type=int, default=200)
+
+ parser.add_argument("--eval_sample", type=int, default=20)
+ parser.add_argument("--eval_model", type=str, default="text-davinci-003")
+ parser.add_argument("--eval_max_tokens", type=int, default=1000)
+
+ parser.add_argument("--storage_budget", type=int, default=500) # limit storage space of built indexes
+ """
+
+
+ return parser
+
+
+def set_logger(log_file):
+ logger = logging.getLogger()
+ logger.setLevel(logging.DEBUG)
+ formatter = logging.Formatter(
+ '%(asctime)s - %(name)s - %(levelname)s: - %(message)s',
+ datefmt='%Y-%m-%d %H:%M:%S')
+
+ # log to file
+ fh = logging.FileHandler(log_file)
+ fh.setLevel(logging.DEBUG)
+ fh.setFormatter(formatter)
+
+ # log to console
+ ch = logging.StreamHandler()
+ ch.setLevel(logging.DEBUG)
+ ch.setFormatter(formatter)
+
+ logger.addHandler(ch)
+ logger.addHandler(fh)
\ No newline at end of file
diff --git a/swarms/tools/database/utils/db_utils.py b/swarms/tools/database/utils/db_utils.py
new file mode 100644
index 00000000..58f74a08
--- /dev/null
+++ b/swarms/tools/database/utils/db_utils.py
@@ -0,0 +1,36 @@
+import re
+import sqlparse
+
+def remove_create_table(sql):
+ return re.sub(r'(create|CREATE)\s+(table|TABLE).+?\(.+?\)\s*;','',sql, flags=re.DOTALL)
+
+def remove_create_index(sql):
+ return re.sub(r'(create|CREATE)\s+(index|INDEX).+?\(.+?\)\s*;','',sql, flags=re.DOTALL)
+
+def remove_table(sql):
+ return re.sub(r'(table|TABLE).+?\(.+?\)\s*;','',sql, flags=re.DOTALL)
+
+def clean_sql(sql):
+ tmp = []
+ for token in sql.flatten():
+ if not token.is_whitespace and not token.ttype is sqlparse.tokens.Comment.Single:
+ tmp.append(token)
+ return strip_par(' '.join(str(t) for t in tmp))
+
+def strip_par(s):
+ for op in ['(',')',',','>','=','<','>=','<=','!=','<>','.',';']:
+ s = s.replace(' {}'.format(op), op).replace('{} '.format(op), op)
+ return s
+
+def preprocess_execute_sql(sql):
+ sql = remove_create_table(sql)
+ sql = remove_create_index(sql)
+ parsed = sqlparse.parse(sql)
+ if len(parsed) == 0:
+ return [0, '']
+ sql = clean_sql(parsed[0])
+ if not sql:
+ return [0, '']
+ if sql[-1] != ';':
+ sql += ';'
+ return [1, sql]
\ No newline at end of file
diff --git a/swarms/tools/database/utils/llm.py b/swarms/tools/database/utils/llm.py
new file mode 100644
index 00000000..b194aa49
--- /dev/null
+++ b/swarms/tools/database/utils/llm.py
@@ -0,0 +1,355 @@
+"""Contains classes for querying large language models."""
+from math import ceil
+import os
+import time
+from tqdm import tqdm
+from abc import ABC, abstractmethod
+
+import openai
+
+gpt_costs_per_thousand = {
+ 'davinci': 0.0200,
+ 'curie': 0.0020,
+ 'babbage': 0.0005,
+ 'ada': 0.0004
+}
+
+
+def model_from_config(config, disable_tqdm=True):
+ """Returns a model based on the config."""
+ model_type = config["name"]
+ if model_type == "GPT_forward":
+ return GPT_Forward(config, disable_tqdm=disable_tqdm)
+ elif model_type == "GPT_insert":
+ return GPT_Insert(config, disable_tqdm=disable_tqdm)
+ raise ValueError(f"Unknown model type: {model_type}")
+
+
+class LLM(ABC):
+ """Abstract base class for large language models."""
+
+ @abstractmethod
+ def generate_text(self, prompt):
+ """Generates text from the model.
+ Parameters:
+ prompt: The prompt to use. This can be a string or a list of strings.
+ Returns:
+ A list of strings.
+ """
+ pass
+
+ @abstractmethod
+ def log_probs(self, text, log_prob_range):
+ """Returns the log probs of the text.
+ Parameters:
+ text: The text to get the log probs of. This can be a string or a list of strings.
+ log_prob_range: The range of characters within each string to get the log_probs of.
+ This is a list of tuples of the form (start, end).
+ Returns:
+ A list of log probs.
+ """
+ pass
+
+
+class GPT_Forward(LLM):
+ """Wrapper for GPT-3."""
+
+ def __init__(self, config, needs_confirmation=False, disable_tqdm=True):
+ """Initializes the model."""
+ self.config = config
+ self.needs_confirmation = needs_confirmation
+ self.disable_tqdm = disable_tqdm
+
+ def confirm_cost(self, texts, n, max_tokens):
+ total_estimated_cost = 0
+ for text in texts:
+ total_estimated_cost += gpt_get_estimated_cost(
+ self.config, text, max_tokens) * n
+ print(f"Estimated cost: ${total_estimated_cost:.2f}")
+ # Ask the user to confirm in the command line
+ if os.getenv("LLM_SKIP_CONFIRM") is None:
+ confirm = input("Continue? (y/n) ")
+ if confirm != 'y':
+ raise Exception("Aborted.")
+
+ def auto_reduce_n(self, fn, prompt, n):
+ """Reduces n by half until the function succeeds."""
+ try:
+ return fn(prompt, n)
+ except BatchSizeException as e:
+ if n == 1:
+ raise e
+ return self.auto_reduce_n(fn, prompt, n // 2) + self.auto_reduce_n(fn, prompt, n // 2)
+
+ def generate_text(self, prompt, n):
+ if not isinstance(prompt, list):
+ prompt = [prompt]
+ if self.needs_confirmation:
+ self.confirm_cost(
+ prompt, n, self.config['gpt_config']['max_tokens'])
+ batch_size = self.config['batch_size']
+ prompt_batches = [prompt[i:i + batch_size]
+ for i in range(0, len(prompt), batch_size)]
+ if not self.disable_tqdm:
+ print(
+ f"[{self.config['name']}] Generating {len(prompt) * n} completions, "
+ f"split into {len(prompt_batches)} batches of size {batch_size * n}")
+ text = []
+
+ for prompt_batch in tqdm(prompt_batches, disable=self.disable_tqdm):
+ text += self.auto_reduce_n(self.__generate_text, prompt_batch, n)
+ return text
+
+ def complete(self, prompt, n):
+ """Generates text from the model and returns the log prob data."""
+ if not isinstance(prompt, list):
+ prompt = [prompt]
+ batch_size = self.config['batch_size']
+ prompt_batches = [prompt[i:i + batch_size]
+ for i in range(0, len(prompt), batch_size)]
+ if not self.disable_tqdm:
+ print(
+ f"[{self.config['name']}] Generating {len(prompt) * n} completions, "
+ f"split into {len(prompt_batches)} batches of size {batch_size * n}")
+ res = []
+ for prompt_batch in tqdm(prompt_batches, disable=self.disable_tqdm):
+ res += self.__complete(prompt_batch, n)
+ return res
+
+ def log_probs(self, text, log_prob_range=None):
+ """Returns the log probs of the text."""
+ if not isinstance(text, list):
+ text = [text]
+ if self.needs_confirmation:
+ self.confirm_cost(text, 1, 0)
+ batch_size = self.config['batch_size']
+ text_batches = [text[i:i + batch_size]
+ for i in range(0, len(text), batch_size)]
+ if log_prob_range is None:
+ log_prob_range_batches = [None] * len(text)
+ else:
+ assert len(log_prob_range) == len(text)
+ log_prob_range_batches = [log_prob_range[i:i + batch_size]
+ for i in range(0, len(log_prob_range), batch_size)]
+ if not self.disable_tqdm:
+ print(
+ f"[{self.config['name']}] Getting log probs for {len(text)} strings, "
+ f"split into {len(text_batches)} batches of (maximum) size {batch_size}")
+ log_probs = []
+ tokens = []
+ for text_batch, log_prob_range in tqdm(list(zip(text_batches, log_prob_range_batches)),
+ disable=self.disable_tqdm):
+ log_probs_batch, tokens_batch = self.__log_probs(
+ text_batch, log_prob_range)
+ log_probs += log_probs_batch
+ tokens += tokens_batch
+ return log_probs, tokens
+
+ def __generate_text(self, prompt, n):
+ """Generates text from the model."""
+ if not isinstance(prompt, list):
+ text = [prompt]
+ config = self.config['gpt_config'].copy()
+ config['n'] = n
+ # If there are any [APE] tokens in the prompts, remove them
+ for i in range(len(prompt)):
+ prompt[i] = prompt[i].replace('[APE]', '').strip()
+ response = None
+ while response is None:
+ try:
+ response = openai.Completion.create(
+ **config, prompt=prompt)
+ except Exception as e:
+ if 'is greater than the maximum' in str(e):
+ raise BatchSizeException()
+ print(e)
+ print('Retrying...')
+ time.sleep(5)
+
+ return [response['choices'][i]['text'] for i in range(len(response['choices']))]
+
+ def __complete(self, prompt, n):
+ """Generates text from the model and returns the log prob data."""
+ if not isinstance(prompt, list):
+ text = [prompt]
+ config = self.config['gpt_config'].copy()
+ config['n'] = n
+ # If there are any [APE] tokens in the prompts, remove them
+ for i in range(len(prompt)):
+ prompt[i] = prompt[i].replace('[APE]', '').strip()
+ response = None
+ while response is None:
+ try:
+ response = openai.Completion.create(
+ **config, prompt=prompt)
+ except Exception as e:
+ print(e)
+ print('Retrying...')
+ time.sleep(5)
+ return response['choices']
+
+ def __log_probs(self, text, log_prob_range=None):
+ """Returns the log probs of the text."""
+ if not isinstance(text, list):
+ text = [text]
+ if log_prob_range is not None:
+ for i in range(len(text)):
+ lower_index, upper_index = log_prob_range[i]
+ assert lower_index < upper_index
+ assert lower_index >= 0
+ assert upper_index - 1 < len(text[i])
+ config = self.config['gpt_config'].copy()
+ config['logprobs'] = 1
+ config['echo'] = True
+ config['max_tokens'] = 0
+ if isinstance(text, list):
+ text = [f'\n{text[i]}' for i in range(len(text))]
+ else:
+ text = f'\n{text}'
+ response = None
+ while response is None:
+ try:
+ response = openai.Completion.create(
+ **config, prompt=text)
+ except Exception as e:
+ print(e)
+ print('Retrying...')
+ time.sleep(5)
+ log_probs = [response['choices'][i]['logprobs']['token_logprobs'][1:]
+ for i in range(len(response['choices']))]
+ tokens = [response['choices'][i]['logprobs']['tokens'][1:]
+ for i in range(len(response['choices']))]
+ offsets = [response['choices'][i]['logprobs']['text_offset'][1:]
+ for i in range(len(response['choices']))]
+
+ # Subtract 1 from the offsets to account for the newline
+ for i in range(len(offsets)):
+ offsets[i] = [offset - 1 for offset in offsets[i]]
+
+ if log_prob_range is not None:
+ # First, we need to find the indices of the tokens in the log probs
+ # that correspond to the tokens in the log_prob_range
+ for i in range(len(log_probs)):
+ lower_index, upper_index = self.get_token_indices(
+ offsets[i], log_prob_range[i])
+ log_probs[i] = log_probs[i][lower_index:upper_index]
+ tokens[i] = tokens[i][lower_index:upper_index]
+
+ return log_probs, tokens
+
+ def get_token_indices(self, offsets, log_prob_range):
+ """Returns the indices of the tokens in the log probs that correspond to the tokens in the log_prob_range."""
+ # For the lower index, find the highest index that is less than or equal to the lower index
+ lower_index = 0
+ for i in range(len(offsets)):
+ if offsets[i] <= log_prob_range[0]:
+ lower_index = i
+ else:
+ break
+
+ upper_index = len(offsets)
+ for i in range(len(offsets)):
+ if offsets[i] >= log_prob_range[1]:
+ upper_index = i
+ break
+
+ return lower_index, upper_index
+
+
+class GPT_Insert(LLM):
+
+ def __init__(self, config, needs_confirmation=False, disable_tqdm=True):
+ """Initializes the model."""
+ self.config = config
+ self.needs_confirmation = needs_confirmation
+ self.disable_tqdm = disable_tqdm
+
+ def confirm_cost(self, texts, n, max_tokens):
+ total_estimated_cost = 0
+ for text in texts:
+ total_estimated_cost += gpt_get_estimated_cost(
+ self.config, text, max_tokens) * n
+ print(f"Estimated cost: ${total_estimated_cost:.2f}")
+ # Ask the user to confirm in the command line
+ if os.getenv("LLM_SKIP_CONFIRM") is None:
+ confirm = input("Continue? (y/n) ")
+ if confirm != 'y':
+ raise Exception("Aborted.")
+
+ def auto_reduce_n(self, fn, prompt, n):
+ """Reduces n by half until the function succeeds."""
+ try:
+ return fn(prompt, n)
+ except BatchSizeException as e:
+ if n == 1:
+ raise e
+ return self.auto_reduce_n(fn, prompt, n // 2) + self.auto_reduce_n(fn, prompt, n // 2)
+
+ def generate_text(self, prompt, n):
+ if not isinstance(prompt, list):
+ prompt = [prompt]
+ if self.needs_confirmation:
+ self.confirm_cost(
+ prompt, n, self.config['gpt_config']['max_tokens'])
+ batch_size = self.config['batch_size']
+ assert batch_size == 1
+ prompt_batches = [prompt[i:i + batch_size]
+ for i in range(0, len(prompt), batch_size)]
+ if not self.disable_tqdm:
+ print(
+ f"[{self.config['name']}] Generating {len(prompt) * n} completions, split into {len(prompt_batches)} batches of (maximum) size {batch_size * n}")
+ text = []
+ for prompt_batch in tqdm(prompt_batches, disable=self.disable_tqdm):
+ text += self.auto_reduce_n(self.__generate_text, prompt_batch, n)
+ return text
+
+ def log_probs(self, text, log_prob_range=None):
+ raise NotImplementedError
+
+ def __generate_text(self, prompt, n):
+ """Generates text from the model."""
+ config = self.config['gpt_config'].copy()
+ config['n'] = n
+ # Split prompts into prefixes and suffixes with the [APE] token (do not include the [APE] token in the suffix)
+ prefix = prompt[0].split('[APE]')[0]
+ suffix = prompt[0].split('[APE]')[1]
+ response = None
+ while response is None:
+ try:
+ response = openai.Completion.create(
+ **config, prompt=prefix, suffix=suffix)
+ except Exception as e:
+ print(e)
+ print('Retrying...')
+ time.sleep(5)
+
+ # Remove suffix from the generated text
+ texts = [response['choices'][i]['text'].replace(suffix, '') for i in range(len(response['choices']))]
+ return texts
+
+
+def gpt_get_estimated_cost(config, prompt, max_tokens):
+ """Uses the current API costs/1000 tokens to estimate the cost of generating text from the model."""
+ # Get rid of [APE] token
+ prompt = prompt.replace('[APE]', '')
+ # Get the number of tokens in the prompt
+ n_prompt_tokens = len(prompt) // 4
+ # Get the number of tokens in the generated text
+ total_tokens = n_prompt_tokens + max_tokens
+ engine = config['gpt_config']['model'].split('-')[1]
+ costs_per_thousand = gpt_costs_per_thousand
+ if engine not in costs_per_thousand:
+ # Try as if it is a fine-tuned model
+ engine = config['gpt_config']['model'].split(':')[0]
+ costs_per_thousand = {
+ 'davinci': 0.1200,
+ 'curie': 0.0120,
+ 'babbage': 0.0024,
+ 'ada': 0.0016
+ }
+ price = costs_per_thousand[engine] * total_tokens / 1000
+ return price
+
+
+class BatchSizeException(Exception):
+ pass
diff --git a/swarms/tools/db_diag/__init__.py b/swarms/tools/db_diag/__init__.py
new file mode 100644
index 00000000..f433e068
--- /dev/null
+++ b/swarms/tools/db_diag/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("db_diag")
+def register_db_diag_tool():
+ from .api import build_db_diag_tool
+ return build_db_diag_tool
\ No newline at end of file
diff --git a/swarms/tools/db_diag/anomaly_detection.py b/swarms/tools/db_diag/anomaly_detection.py
new file mode 100644
index 00000000..0166722f
--- /dev/null
+++ b/swarms/tools/db_diag/anomaly_detection.py
@@ -0,0 +1,61 @@
+import numpy as np
+import requests
+import json
+
+
+def prometheus(url, params):
+ res = requests.get(url='http://8.131.229.55:9090/' + url, params=params)
+ # print(json.dumps(res.json()))
+
+ #return json.dumps(res.json())
+ return res.json()
+
+
+def detect_anomalies(data, significance_level=0.05):
+
+ # assume the workload is steadily running
+
+ """
+ Detects anomalies in the given data using the KS test algorithm.
+
+ Args:
+ data (numpy.ndarray): 1-D array of data values.
+ significance_level (float): Level of significance for the KS test (default: 0.05).
+
+ Returns:
+ numpy.ndarray: Boolean array indicating anomalies (True) and non-anomalies (False).
+ """
+
+ """
+ sorted_data = np.sort(data)
+ n = len(sorted_data)
+
+ # Calculate the expected CDF assuming a normal distribution
+ expected_cdf = np.arange(1, n + 1) / n
+
+ # Calculate the empirical CDF
+ empirical_cdf = np.searchsorted(sorted_data, sorted_data, side='right') / n
+
+ # Calculate the maximum absolute difference between the expected and empirical CDFs
+ ks_statistic = np.max(np.abs(empirical_cdf - expected_cdf))
+
+ # Calculate the critical value based on the significance level and sample size
+ critical_value = np.sqrt(-0.5 * np.log(significance_level / 2) / n)
+
+ # Compare the KS statistic with the critical value
+ anomalies = np.where(ks_statistic > critical_value, True, False)
+ """
+
+ # Calculate the mean and standard deviation of the data
+ anomalies = False
+
+ mean = np.mean(data)
+ max_value = np.max(data)
+
+ print("mean: ", mean)
+ print("max_value: ", max_value)
+
+ if max_value > mean:
+ anomalies = True
+
+ return anomalies
\ No newline at end of file
diff --git a/swarms/tools/db_diag/api.py b/swarms/tools/db_diag/api.py
new file mode 100755
index 00000000..baf68ad2
--- /dev/null
+++ b/swarms/tools/db_diag/api.py
@@ -0,0 +1,315 @@
+import json
+import os
+import requests
+import numpy as np
+import openai
+import paramiko
+
+from nltk.stem import WordNetLemmatizer
+from nltk.corpus import wordnet, stopwords
+from nltk.tokenize import word_tokenize
+import nltk
+
+from ..tool import Tool
+from bmtools.tools.database.utils.db_parser import get_conf
+from bmtools.tools.database.utils.database import DBArgs, Database
+from bmtools.models.customllm import CustomLLM
+from bmtools.knowledge.knowledge_extraction import KnowledgeExtraction
+from bmtools.tools.db_diag.anomaly_detection import detect_anomalies
+from bmtools.tools.db_diag.anomaly_detection import prometheus
+
+from bmtools.tools.db_diag.example_generate import bm25
+
+import warnings
+
+def obtain_values_of_metrics(start_time, end_time, metrics):
+
+ if end_time - start_time > 11000*3: # maximum resolution of 11,000 points per timeseries
+ #raise Exception("The time range is too large, please reduce the time range")
+ warnings.warn("The time range ({}, {}) is too large, please reduce the time range".format(start_time, end_time))
+
+ required_values = {}
+
+ print(" ====> metrics: ", metrics)
+ for metric in metrics:
+ metric_values = prometheus('api/v1/query_range', {'query': metric, 'start': start_time, 'end': end_time, 'step': '3'})
+ if metric_values["data"]["result"] != []:
+ metric_values = metric_values["data"]["result"][0]["values"]
+ else:
+ raise Exception("No metric values found for the given time range")
+
+ # compute the average value of the metric
+ max_value = np.max(np.array([float(value) for _, value in metric_values]))
+
+ required_values[metric] = max_value
+
+ return required_values
+
+def find_abnormal_metrics(start_time, end_time, monitoring_metrics, resource):
+
+ resource_keys = ["memory", "cpu", "disk", "network"]
+
+ abnormal_metrics = []
+ for metric_name in monitoring_metrics:
+
+ interval_time = 5
+ metric_values = prometheus('api/v1/query_range', {'query': metric_name, 'start': start_time-interval_time*60, 'end': end_time+interval_time*60, 'step': '3'})
+
+ if metric_values["data"]["result"] != []:
+ metric_values = metric_values["data"]["result"][0]["values"]
+ else:
+ continue
+
+ if detect_anomalies(np.array([float(value) for _, value in metric_values])):
+
+ success = True
+ for key in resource_keys:
+ if key in metric_name and key != resource:
+ success = False
+ break
+ if success:
+ abnormal_metrics.append(metric_name)
+
+ return abnormal_metrics
+
+
+def build_db_diag_tool(config) -> Tool:
+ tool = Tool(
+ "Database Diagnosis",
+ "Diagnose the bottlenecks of a database based on relevant metrics",
+ name_for_model="db_diag",
+ description_for_model="Plugin for diagnosing the bottlenecks of a database based on relevant metrics",
+ logo_url="https://commons.wikimedia.org/wiki/File:Postgresql_elephant.svg",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ #URL_CURRENT_WEATHER= "http://api.weatherapi.com/v1/current.json"
+ #URL_FORECAST_WEATHER = "http://api.weatherapi.com/v1/forecast.json"
+
+ URL_PROMETHEUS = 'http://8.131.229.55:9090/'
+ prometheus_metrics = {"cpu_usage": "avg(rate(process_cpu_seconds_total{instance=\"172.27.58.65:9187\"}[5m]) * 1000)",
+ "cpu_metrics": ["node_scrape_collector_duration_seconds{instance=\"172.27.58.65:9100\"}", "node_procs_running{instance=\"172.27.58.65:9100\"}", "node_procs_blocked{instance=\"172.27.58.65:9100\"}", "node_entropy_available_bits{instance=\"172.27.58.65:9100\"}", "node_load1{instance=\"172.27.58.65:9100\"}", "node_load5{instance=\"172.27.58.65:9100\"}", "node_load15{instance=\"172.27.58.65:9100\"}"],
+ "memory_usage": "node_memory_MemTotal_bytes{instance=~\"172.27.58.65:9100\"} - (node_memory_Cached_bytes{instance=~\"172.27.58.65:9100\"} + node_memory_Buffers_bytes{instance=~\"172.27.58.65:9100\"} + node_memory_MemFree_bytes{instance=~\"172.27.58.65:9100\"})",
+ "memory_metrics": ["node_memory_Inactive_anon_bytes{instance=\"172.27.58.65:9100\"}", "node_memory_MemFree_bytes{instance=\"172.27.58.65:9100\"}", "node_memory_Dirty_bytes{instance=\"172.27.58.65:9100\"}", "pg_stat_activity_count{datname=~\"(imdbload|postgres|sysbench|template0|template1|tpcc|tpch)\", instance=~\"172.27.58.65:9187\", state=\"active\"} !=0"],
+ "network_metrics": ["node_sockstat_TCP_tw{instance=\"172.27.58.65:9100\"}", "node_sockstat_TCP_orphan{instance=\"172.27.58.65:9100\"}"]}
+ # "node_sockstat_TCP_tw{instance=\"172.27.58.65:9100\"}",
+
+ # load knowlege extractor
+ knowledge_matcher = KnowledgeExtraction("/bmtools/tools/db_diag/root_causes_dbmind.jsonl")
+
+ # load db settings
+ script_path = os.path.abspath(__file__)
+ script_dir = os.path.dirname(script_path)
+ config = get_conf(script_dir + '/my_config.ini', 'postgresql')
+ dbargs = DBArgs("postgresql", config=config) # todo assign database name
+
+ # send request to database
+ db = Database(dbargs, timeout=-1)
+
+ server_config = get_conf(script_dir + '/my_config.ini', 'benchserver')
+
+ monitoring_metrics = []
+ with open(str(os.getcwd()) + "/bmtools/tools/db_diag/database_monitoring_metrics", 'r') as f:
+ monitoring_metrics = f.read()
+ monitoring_metrics = eval(monitoring_metrics)
+
+ @tool.get("/obtain_start_and_end_time_of_anomaly")
+ def obtain_start_and_end_time_of_anomaly():
+ # Create SSH client
+ ssh = paramiko.SSHClient()
+ ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+ start_time = 0
+ end_time = 0
+
+ try:
+ # Connect to the remote server
+ ssh.connect(server_config["server_address"], username=server_config["username"], password=server_config["password"])
+
+ # Create an SFTP client
+ sftp = ssh.open_sftp()
+
+ # Change to the remote directory
+ sftp.chdir(server_config["remote_directory"])
+
+ # Get a list of files in the directory
+ files = sftp.listdir()
+
+ required_file_name = ""
+ required_tp = -1
+ # Read the contents of each file
+ for filename in files:
+ remote_filepath = server_config["remote_directory"] + '/' + filename
+
+ if "trigger_time_log" not in filename:
+ continue
+
+ tp = filename.split("_")[0]
+
+ if tp.isdigit():
+ tp = int(tp)
+ if required_tp < tp:
+ required_tp = tp
+ required_file_name = filename
+
+ file_content = sftp.open(server_config["remote_directory"] + '/' + required_file_name).read()
+ file_content = file_content.decode()
+ tps = file_content.split("\n")[0]
+ start_time = tps.split(";")[0]
+ end_time = tps.split(";")[1]
+
+ finally:
+ # Close the SFTP session and SSH connection
+ sftp.close()
+ ssh.close()
+
+ return {"start_time": start_time, "end_time": end_time}
+
+ @tool.get("/whether_is_abnormal_metric")
+ def whether_is_abnormal_metric(start_time:int, end_time:int, metric_name : str="cpu_usage"):
+
+ interval_time = 5
+ metric_values = prometheus('api/v1/query_range', {'query': prometheus_metrics[metric_name], 'start': start_time-interval_time*60, 'end': end_time+interval_time*60, 'step': '3'})
+ # prometheus('api/v1/query_range', {'query': '100 - (avg(irate(node_cpu_seconds_total{instance=~"172.27.58.65:9100",mode="idle"}[1m])) * 100)', 'start': '1684412385', 'end': '1684413285', 'step': '3'})
+ # print(" === metric_values", metric_values)
+
+ if metric_values["data"]["result"] != []:
+ metric_values = metric_values["data"]["result"][0]["values"]
+ else:
+ raise Exception("No metric values found for the given time range")
+
+ #is_abnormal = detect_anomalies(np.array([float(value) for _, value in metric_values]))
+ is_abnormal = True
+
+ if is_abnormal:
+ return "The metric is abnormal"
+ else:
+ return "The metric is normal"
+
+
+ @tool.get("/cpu_diagnosis_agent")
+ def cpu_diagnosis_agent(start_time : int, end_time : int):
+
+ # live_tuples\n- dead_tuples\n- table_size
+
+ cpu_metrics = prometheus_metrics["cpu_metrics"]
+ cpu_metrics = cpu_metrics # + find_abnormal_metrics(start_time, end_time, monitoring_metrics, 'cpu')
+
+ print("==== cpu_metrics", cpu_metrics)
+
+
+ detailed_cpu_metrics = obtain_values_of_metrics(start_time, end_time, cpu_metrics)
+
+ docs_str = knowledge_matcher.match(detailed_cpu_metrics)
+
+ prompt = """The CPU metric is abnormal. Then obtain the CPU relevant metric values from Prometheus: {}.
+
+Next output the analysis of potential causes of the high CPU usage based on the CPU relevant metric values,
+
+{}""".format(detailed_cpu_metrics, docs_str)
+
+ print(prompt)
+
+ # response = openai.Completion.create(
+ # model="text-davinci-003",
+ # prompt=prompt,
+ # temperature=0,
+ # max_tokens=1000,
+ # top_p=1.0,
+ # frequency_penalty=0.0,
+ # presence_penalty=0.0,
+ # stop=["#", ";"]
+ # )
+ # output_text = response.choices[0].text.strip()
+
+ # Set up the OpenAI GPT-3 model
+ # model_engine = "gpt-3.5-turbo"
+
+ # prompt_response = openai.ChatCompletion.create(
+ # engine="gpt-3.5-turbo",
+ # messages=[
+ # {"role": "assistant", "content": "The table schema is as follows: " + str(schema)},
+ # {"role": "user", "content": str(prompt)}
+ # ]
+ # )
+ # output_text = prompt_response['choices'][0]['message']['content']
+
+ llm = CustomLLM()
+ output_analysis = llm(prompt)
+
+ return {"diagnose": output_analysis, "knowledge": docs_str}
+
+ @tool.get("/memory_diagnosis_agent")
+ def memory_diagnosis_agent(start_time : int, end_time : int):
+
+ memory_metrics = prometheus_metrics["memory_metrics"]
+
+ memory_metrics = prometheus_metrics["memory_metrics"]
+ memory_metrics = memory_metrics # + find_abnormal_metrics(start_time, end_time, monitoring_metrics, 'memory')
+
+ detailed_memory_metrics = obtain_values_of_metrics(start_time, end_time, memory_metrics)
+
+ openai.api_key = os.environ["OPENAI_API_KEY"]
+
+ db = Database(dbargs, timeout=-1)
+ slow_queries = db.obtain_historical_slow_queries()
+
+ slow_query_state = ""
+ for i,query in enumerate(slow_queries):
+ slow_query_state += str(i+1) + '. ' + str(query) + "\n"
+
+ print(slow_query_state)
+
+ # TODO: need a similarity match function to match the top-K examples
+ # 1. get the categories of incoming metrics. Such as "The abnormal metrics include A, B, C, D"
+ # 2. embedding the metrics
+ # note: 这个metrics的embedding有可能预计算吗?如果metrics的种类(组合数)有限的话
+ # 3. match the top-K examples(embedding)
+ # note: 不用embedding如何有效的筛选出来与当前metrics最相关的example呢?可以枚举吗?比如如果我知道某一个example涉及到哪些metrics?
+ # 该如何判断某一个metrics跟一段文本是相关的呢?能否用一个模型来判断一段文本涉及到哪些metrics呢?重新训练的话感觉需要很多样本才行
+ # 能不能用关键词数量?
+
+ docs_str = knowledge_matcher.match(detailed_memory_metrics)
+
+ prompt = """The memory metric is abnormal. Then obtain the memory metric values from Prometheus: {}. The slow queries are:
+ {}
+
+Output the analysis of potential causes of the high memory usage based on the memory metric values and slow queries, e.g.,
+
+{}
+
+Note: include the important slow queries in the output.
+""".format(detailed_memory_metrics, slow_query_state, docs_str)
+
+ # print(prompt)
+
+ # response = openai.Completion.create(
+ # model="text-davinci-003",
+ # prompt=prompt,
+ # temperature=0,
+ # max_tokens=1000,
+ # top_p=1.0,
+ # frequency_penalty=0.0,
+ # presence_penalty=0.0,
+ # stop=["#", ";"]
+ # )
+ # output_text = response.choices[0].text.strip()
+
+ # Set up the OpenAI GPT-3 model
+ # model_engine = "gpt-3.5-turbo"
+
+ # prompt_response = openai.ChatCompletion.create(
+ # engine="gpt-3.5-turbo",
+ # messages=[
+ # {"role": "assistant", "content": "The table schema is as follows: " + str(schema)},
+ # {"role": "user", "content": str(prompt)}
+ # ]
+ # )
+ # output_text = prompt_response['choices'][0]['message']['content']
+
+ llm = CustomLLM()
+ output_analysis = llm(prompt)
+
+ return {"diagnose": output_analysis, "knowledge": docs_str}
+
+ return tool
\ No newline at end of file
diff --git a/swarms/tools/db_diag/config.ini b/swarms/tools/db_diag/config.ini
new file mode 100644
index 00000000..7116e66a
--- /dev/null
+++ b/swarms/tools/db_diag/config.ini
@@ -0,0 +1,18 @@
+[postgresql]
+host =
+port =
+user =
+password =
+dbname =
+
+[mysql]
+host =
+port =
+user =
+password =
+
+[benchserver]
+server_address =
+username =
+password =
+remote_directory =
\ No newline at end of file
diff --git a/swarms/tools/db_diag/database_monitoring_metrics b/swarms/tools/db_diag/database_monitoring_metrics
new file mode 100644
index 00000000..02c44128
--- /dev/null
+++ b/swarms/tools/db_diag/database_monitoring_metrics
@@ -0,0 +1 @@
+['go_gc_duration_seconds', 'go_gc_duration_seconds_count', 'go_gc_duration_seconds_sum', 'go_goroutines', 'go_memstats_alloc_bytes', 'go_memstats_alloc_bytes_total', 'go_memstats_frees_total', 'go_memstats_gc_cpu_fraction', 'go_memstats_heap_alloc_bytes', 'go_memstats_heap_idle_bytes', 'go_memstats_heap_inuse_bytes', 'go_memstats_heap_objects', 'go_memstats_heap_released_bytes', 'go_memstats_heap_sys_bytes', 'go_memstats_last_gc_time_seconds', 'go_memstats_mallocs_total', 'go_memstats_mspan_inuse_bytes', 'go_memstats_stack_inuse_bytes', 'go_memstats_stack_sys_bytes', 'node_context_switches_total', 'node_cpu_seconds_total', 'node_disk_io_now', 'node_disk_io_time_seconds_total', 'node_disk_io_time_weighted_seconds_total', 'node_disk_read_bytes_total', 'node_disk_read_time_seconds_total', 'node_disk_reads_completed_total', 'node_disk_reads_merged_total', 'node_disk_write_time_seconds_total', 'node_disk_writes_completed_total', 'node_disk_writes_merged_total', 'node_disk_written_bytes_total', 'node_entropy_available_bits', 'node_filefd_allocated', 'node_filesystem_avail_bytes', 'node_filesystem_files_free', 'node_filesystem_free_bytes', 'node_forks_total', 'node_intr_total', 'node_load1', 'node_load15', 'node_load5', 'node_memory_Active_anon_bytes', 'node_memory_Active_bytes', 'node_memory_Active_file_bytes', 'node_memory_AnonHugePages_bytes', 'node_memory_AnonPages_bytes', 'node_memory_Cached_bytes', 'node_memory_Committed_AS_bytes', 'node_memory_Dirty_bytes', 'node_memory_Inactive_anon_bytes', 'node_memory_Inactive_bytes', 'node_memory_Inactive_file_bytes', 'node_memory_KReclaimable_bytes', 'node_memory_KernelStack_bytes', 'node_memory_Mapped_bytes', 'node_memory_MemAvailable_bytes', 'node_memory_MemFree_bytes', 'node_memory_PageTables_bytes', 'node_memory_SReclaimable_bytes', 'node_memory_SUnreclaim_bytes', 'node_memory_Shmem_bytes', 'node_memory_Slab_bytes', 'node_netstat_Icmp_InMsgs', 'node_netstat_Icmp_OutMsgs', 'node_netstat_Ip6_InOctets', 'node_netstat_Ip6_OutOctets', 'node_netstat_IpExt_InOctets', 'node_netstat_IpExt_OutOctets', 'node_netstat_TcpExt_TCPSynRetrans', 'node_netstat_Tcp_ActiveOpens', 'node_netstat_Tcp_CurrEstab', 'node_netstat_Tcp_InSegs', 'node_netstat_Tcp_OutRsts', 'node_netstat_Tcp_OutSegs', 'node_netstat_Tcp_PassiveOpens', 'node_netstat_Tcp_RetransSegs', 'node_netstat_Udp6_InDatagrams', 'node_netstat_Udp6_InErrors', 'node_netstat_Udp6_OutDatagrams', 'node_netstat_Udp6_RcvbufErrors', 'node_netstat_Udp_InDatagrams', 'node_netstat_Udp_OutDatagrams', 'node_network_receive_bytes_total', 'node_network_receive_packets_total', 'node_network_transmit_bytes_total', 'node_network_transmit_packets_total', 'node_procs_blocked', 'node_procs_running', 'node_schedstat_running_seconds_total', 'node_schedstat_timeslices_total', 'node_schedstat_waiting_seconds_total', 'node_scrape_collector_duration_seconds', 'node_sockstat_TCP6_inuse', 'node_sockstat_TCP_alloc', 'node_sockstat_TCP_inuse', 'node_sockstat_TCP_mem', 'node_sockstat_TCP_mem_bytes', 'node_sockstat_TCP_orphan', 'node_sockstat_TCP_tw', 'node_sockstat_UDP_inuse', 'node_sockstat_UDP_mem', 'node_sockstat_UDP_mem_bytes', 'node_sockstat_sockets_used', 'node_softnet_processed_total', 'node_time_seconds', 'node_timex_estimated_error_seconds', 'node_timex_frequency_adjustment_ratio', 'node_timex_maxerror_seconds', 'node_timex_tick_seconds', 'node_vmstat_pgfault', 'node_vmstat_pgmajfault', 'node_vmstat_pgpgin', 'node_vmstat_pgpgout', 'node_xfs_block_mapping_extent_list_deletions_total', 'node_xfs_block_mapping_extent_list_insertions_total', 'node_xfs_block_mapping_extent_list_lookups_total', 'node_xfs_block_mapping_reads_total', 'node_xfs_block_mapping_unmaps_total', 'node_xfs_block_mapping_writes_total', 'node_xfs_directory_operation_create_total', 'node_xfs_directory_operation_getdents_total', 'node_xfs_directory_operation_lookup_total', 'node_xfs_directory_operation_remove_total', 'node_xfs_extent_allocation_blocks_allocated_total', 'node_xfs_extent_allocation_blocks_freed_total', 'node_xfs_extent_allocation_extents_allocated_total', 'node_xfs_extent_allocation_extents_freed_total', 'node_xfs_inode_operation_attempts_total', 'node_xfs_inode_operation_attribute_changes_total', 'node_xfs_inode_operation_found_total', 'node_xfs_inode_operation_missed_total', 'node_xfs_inode_operation_reclaims_total', 'node_xfs_read_calls_total', 'node_xfs_vnode_active_total', 'node_xfs_vnode_reclaim_total', 'node_xfs_vnode_release_total', 'node_xfs_vnode_remove_total', 'node_xfs_write_calls_total', 'process_cpu_seconds_total', 'process_resident_memory_bytes', 'process_start_time_seconds', 'promhttp_metric_handler_requests_total', 'scrape_duration_seconds', 'scrape_samples_post_metric_relabeling', 'scrape_samples_scraped', 'up']
\ No newline at end of file
diff --git a/swarms/tools/db_diag/example_generate.py b/swarms/tools/db_diag/example_generate.py
new file mode 100644
index 00000000..f08ff716
--- /dev/null
+++ b/swarms/tools/db_diag/example_generate.py
@@ -0,0 +1,165 @@
+import numpy as np
+from typing import List
+import heapq
+import openai
+# import editdistance
+from gensim.models import bm25model
+import json
+from nltk import pos_tag
+# from nltk.stem import WordNetLemmatizer
+# from nltk.corpus import wordnet, stopwords
+# from nltk.tokenize import word_tokenize
+# import nltk
+
+
+
+# nltk.download('stopwords')
+# nltk.download('punkt')
+# nltk.download('averaged_perceptron_tagger')
+# nltk.download('wordnet')
+# wnl = WordNetLemmatizer()
+
+# corpus = []
+# with open("/Users/4paradigm/Desktop/work/2023_05_22/root_causes_dbmind.jsonl", 'r') as f:
+# data = json.load(f)
+# corpus = [example["desc"] for example in data]
+# metrics = [example["metrics"] for example in data]
+# stop_words = set(stopwords.words('english'))
+
+# preprocessed_corpus = []
+# for c in corpus:
+# word_tokens = word_tokenize(c)
+# preprocessed_corpus.append([wnl.lemmatize(w,pos='n') for w in word_tokens if not w in stop_words])
+
+
+# def embedding(input:str):
+# response = openai.Embedding.create(
+# input=input,
+# model="text-embedding-ada-002"
+# )
+# embeddings = response['data'][0]['embedding']
+# # print("\n-----\ntext:{}\n embeddings:{}\n-----\n".format(input, embeddings))
+# return embeddings
+
+# def euclidean_distance(target:List[float], sample:List[float]):
+# """
+# return the euclidean distance of two vectors
+# """
+# return np.sqrt(np.sum(np.square(np.asarray(target) - np.asarray(sample))))
+
+# def cosine_distance(target:List[float], sample:List[float]):
+# """
+# return the euclidean distance of two vectors
+# """
+# return 1 - np.dot(target,sample)/(np.linalg.norm(target)*np.linalg.norm(sample))
+
+# def linear_search(k:int, target:List[float], samples:List[List[float]]):
+# """
+# k: the top-k examples
+# target: incoming metrics
+# samples: examples
+# """
+# func_distance = cosine_distance
+# # func_distance = cosine_distance
+# dist = []
+# for s in samples:
+# dist.append(func_distance(target, s))
+# index = heapq.nlargest(k, range(len(dist)), dist.__getitem__)
+# return index
+
+
+# THRESHOLD = 0.5
+
+# def editdis_linear(k:int, target:List[str], samples:List[List[str]]):
+# dist = []
+# for sample in samples:
+# dis = len(target)
+# for t in target:
+# dis_samples = [editdistance.eval(t, s)/max(len(t), len(s)) for s in sample]
+# if min(dis_samples) < THRESHOLD:
+# dis -= 1
+# dist.append(dis)
+# index = heapq.nsmallest(k, range(len(dist)), dist.__getitem__)
+# return index
+
+def simple_tok(sent:str):
+ return sent.split()
+
+# def get_wordnet_pos(tag):
+# if tag.startswith('J'):
+# return wordnet.ADJ
+# elif tag.startswith('V'):
+# return wordnet.VERB
+# elif tag.startswith('N'):
+# return wordnet.NOUN
+# elif tag.startswith('R'):
+# return wordnet.ADV
+# else:
+# return None
+
+def bm25(k, target:List[str], sample:List[List[str]]):
+ tok_corpus = sample
+ bm25 = bm25model(tok_corpus)
+ query = target
+ scores = bm25.get_scores(query)
+
+ best_docs = sorted(range(len(scores)), key=lambda i: scores[i], reverse=True)[:k]
+ best_docs_none_zero = []
+ for d in best_docs:
+ if scores[d] != 0:
+ best_docs_none_zero.append(d)
+ return best_docs_none_zero
+
+
+# if __name__ == "__main__":
+# nltk.download('stopwords')
+# nltk.download('punkt')
+# nltk.download('averaged_perceptron_tagger')
+# nltk.download('wordnet')
+# wnl = WordNetLemmatizer()
+
+# corpus = []
+# with open("/Users/4paradigm/Desktop/work/2023_05_22/root_causes_dbmind.jsonl", 'r') as f:
+# data = json.load(f)
+# corpus = [example["desc"] for example in data]
+# metrics = [example["metrics"] for example in data]
+# stop_words = set(stopwords.words('english'))
+
+# preprocessed_corpus = []
+# for c in corpus:
+# word_tokens = word_tokenize(c)
+# preprocessed_corpus.append([wnl.lemmatize(w,pos='n') for w in word_tokens if not w in stop_words])
+# print(preprocessed_corpus)
+
+# best_docs = bm25(3, "package drop rate threshold", preprocessed_corpus)
+ # for i, b in enumerate(best_docs):
+ # print(f"desc {i+1}: {corpus[b]}")
+ # print(f"metrics {i+1}: {metrics[b]}")
+ # print("\n\n\n\n")
+
+
+
+
+
+
+
+
+ # metrics_str = "the number of active sessions"
+ # examples = [
+ # "If there are many active sessions, high-concurrency sessions can consume significant amounts of memory, especially if they execute memory-intensive operations or hold large result sets in memory. This can lead to memory pressure, increased disk I/O, and potential out-of-memory errors if the system does not have enough available memory to handle the workload.",
+ # "If there are slow queries, they involve large result sets that need to be stored in memory before being sent back to the client application. If the query returns a substantial number of rows or the result set contains large data objects (e.g., images, documents), it can consume a significant amount of memory ...",
+ # ]
+ # metrics_embedding = embedding(metrics_str)
+ # examples_embedding = [embedding(e) for e in examples]
+ # metrics_embedding = [-0.0006464981124736369, 0.0011919541284441948, 0.012529219500720501, -0.015440601855516434, -0.00987129844725132, -0.005535051692277193, -0.039101578295230865, -0.0035553115885704756, -0.0023136925883591175, -0.035566817969083786, 0.018605446442961693, 0.012700477614998817, -0.003983456175774336, -0.008234074339270592, -0.020550934597849846, -0.01579681783914566, 0.014303450472652912, -0.00839163176715374, 0.02501733787357807, -0.02645590342581272, -0.022633429616689682, -0.003805347951129079, -0.025811973959207535, -0.0012887148186564445, -0.018947960808873177, -0.015522805973887444, 0.003020987380295992, -0.00863824225962162, -7.262400322360918e-05, -0.017509395256638527, 0.011645529419183731, -0.019893303513526917, -0.016070829704403877, -0.007624396588653326, -0.0179752167314291, 0.02253752388060093, -0.0007573875482194126, -0.005202811677008867, 0.02027692086994648, 0.01091939676553011, 0.023249957710504532, -0.0035107845906168222, -0.011967494152486324, 0.0087820990011096, 0.010323419235646725, 0.016344843432307243, 0.008960206992924213, -0.008288877084851265, -0.02027692086994648, 0.015481703914701939, 0.0023239681031554937, -0.0008991033537313342, -0.028332887217402458, -0.020824946463108063, 0.0016200985992327332, 0.0031785445753484964, -0.017673803493380547, 0.007843606173992157, 0.0008383068488910794, -0.011385217308998108, 0.005308991298079491, 0.0025979806669056416, -0.011714032851159573, 0.0466369204223156, -0.010268616490066051, 0.006021423730999231, -0.017783408984541893, 0.01157702598720789, 0.022345716133713722, 0.007507941219955683, 0.0007796510471962392, -0.004004007205367088, -0.007261330261826515, -0.010665934532880783, 0.023386962711811066, -0.026551807299256325, -0.011268761940300465, 0.007144874893128872, -0.003233347088098526, 0.006309136748313904, 0.00845328439027071, -0.05313101410865784, -0.012104500085115433, 0.022236110642552376, 0.0037539706099778414, 0.0116592301055789, 0.0043807742185890675, 0.013844478875398636, -0.029812555760145187, 0.0018718475475907326, 0.015563907101750374, 0.004586283583194017, 0.035566817969083786, 0.02266083098948002, -0.005857016425579786, 0.018783554434776306, -0.01702987402677536, 0.0017476857174187899, -0.009583585895597935, -0.00884375162422657, -0.010467275977134705, -0.01485147513449192, -0.020920850336551666, -0.01694766990840435, -0.01859174482524395, -0.011679780669510365, -0.007912109605967999, 0.007583294529467821, 0.013310154899954796, -0.017249083146452904, -0.0005852734902873635, 0.01863284781575203, -0.005288440268486738, -0.015509105287492275, -0.011946942657232285, -0.003911527805030346, 0.011624978855252266, -0.0006713304901495576, -0.009919251315295696, -0.011960643343627453, 0.023797981441020966, 0.00015873456140980124, 0.02677101641893387, -0.01476927101612091, 0.016440747305750847, -0.00630228640511632, -0.007788803894072771, -0.011672930791974068, 0.010111059993505478, -0.013782826252281666, 0.03052498772740364, 0.026592908427119255, 0.00989184994250536, 0.0048294696025550365, -0.014248647727072239, 0.017166880890727043, 0.01764640212059021, 0.02637369930744171, -0.006668778136372566, -0.029401537030935287, -0.017454592511057854, 0.014892577193677425, -0.0025996931362897158, -0.004137588199228048, 0.016892867162823677, 0.05203496664762497, 0.031127814203500748, -0.0003652072336990386, -0.03200465440750122, -0.017084676772356033, -0.0002200662565883249, 0.003836174262687564, 0.00633653812110424, 0.0014514097711071372, -0.011542774736881256, -0.005678907968103886, 0.009145165793597698, 0.006357089150696993, -0.04721234738826752, -0.01690656878054142, -0.03310070559382439, 0.023003345355391502, 0.0010951935546472669, -0.0200303103774786, 0.010515227913856506, 0.04488324001431465, 0.002368495101109147, 0.009563034400343895, 0.01505698449909687, 0.014796672388911247, 0.005219937302172184, 0.01559130847454071, -0.009473980404436588, 0.023907586932182312, 0.0013854755088686943, 0.03403234854340553, -0.008857452310621738, -0.005723434966057539, -0.002853154670447111, -0.025866776704788208, -0.004202666226774454, 0.01702987402677536, 0.011159157380461693, 0.04225271940231323, -0.018742451444268227, 0.037046484649181366, 0.01830403134226799, 0.0035895630717277527, -0.010515227913856506, -0.014276049099862576, -0.0021407222375273705, 0.01096049789339304, -0.015372098423540592, 0.007740851957350969, -0.6720977425575256, -0.00763124693185091, -0.015618709847331047, -0.012268907390534878, 0.01320740021765232, -0.013584167696535587, 0.010994750075042248, -0.008590290322899818, -0.0066824788227677345, 0.007953211665153503, -0.005500799976289272, 0.025195445865392685, 0.011522224172949791, -0.008651942946016788, 0.0028959691990166903, -0.0083710802718997, -0.01089884527027607, 0.007254479918628931, -0.013543065637350082, -0.014221246354281902, -0.015495404601097107, -0.005422021262347698, -0.01974259689450264, 0.02040022797882557, 0.005353518296033144, 0.0007466839160770178, -0.006247484125196934, -0.009960352443158627, -0.024455612525343895, -0.007871007546782494, -0.012727878987789154, 0.0015849907649680972, 0.01678326353430748, -0.00966578908264637, 0.02488033100962639, 0.002469537314027548, -0.016262639313936234, 0.03600523620843887, 0.012734728865325451, 0.06822910159826279, -0.015906423330307007, 0.009241069667041302, 0.003781371982768178, -0.0028017773292958736, 0.02200319990515709, 0.0066824788227677345, 0.020249521359801292, -0.001818757620640099, 0.012097650207579136, -0.03304590284824371, 0.03855355083942413, -0.03219646215438843, -0.009515082463622093, 0.009152015671133995, -0.00418554013594985, 0.0036238147877156734, -0.011707182042300701, -0.011967494152486324, -0.002174973953515291, -0.0006991599220782518, -0.006692754104733467, 0.010398772545158863, -0.005726860370486975, -0.0005493093631230295, -0.0187972541898489, -0.014673367142677307, -0.0027743761893361807, -0.003986881114542484, 0.0008425883133895695, -0.011412618681788445, 0.01015901193022728, 0.02430490404367447, 0.0009145165677182376, 0.0023154052905738354, 0.016317442059516907, 0.00026823251391761005, 0.022647129371762276, -0.010008305311203003, -0.011481122113764286, 0.0012296308996155858, 0.006268034689128399, -0.017166880890727043, -0.013118346221745014, 0.0037916472647339106, 0.015152888372540474, 0.002270878292620182, -0.019468585029244423, -0.026743615046143532, 0.005922093987464905, 0.010761839337646961, 0.031401827931404114, -0.0034439940936863422, 0.002192099578678608, -0.030552389100193977, 0.011446869932115078, 0.03178544342517853, -0.012775830924510956, 0.0055693029426038265, 0.012433315627276897, -0.0233184602111578, -0.016468148678541183, -0.011296163313090801, 0.0014659666921943426, -0.004771241918206215, 0.04776037111878395, 0.023140352219343185, -0.008562888950109482, -0.019016465172171593, 0.03340211883187294, -0.024455612525343895, 0.007686049211770296, -0.021893594413995743, -0.014919978566467762, 0.005500799976289272, 0.005682333372533321, -0.02962074615061283, 0.03151143342256546, 0.006165280472487211, 0.012433315627276897, -0.0104261739179492, 0.01855064369738102, -0.00527473958209157, 0.013803377747535706, -0.03699168190360069, 0.0027589628007262945, 0.03356652706861496, 0.026113387197256088, -0.02645590342581272, 0.009165716357529163, -0.030333178117871284, -0.0019454883877187967, -0.008158721029758453, 0.013638969510793686, -0.019975507631897926, 0.022359415888786316, -0.008412182331085205, 0.013125197030603886, 0.014618564397096634, 0.02298964560031891, -0.002714435802772641, -0.012981340289115906, 0.001340092159807682, -0.03219646215438843, -0.019591890275478363, 0.012227806262671947, -0.03238827362656593, -0.0032076584175229073, -0.005387770012021065, -0.004322546534240246, 0.016838066279888153, -0.004151288885623217, 0.004086210858076811, 0.0013529364950954914, 0.001613248372450471, -0.013104645535349846, -0.014741869643330574, -0.004199240822345018, -0.028853511437773705, 0.005850166082382202, -0.004418450873345137, -0.034361161291599274, 0.024537814781069756, -0.004493804182857275, 0.0017100089462473989, -0.030250975862145424, 0.001477954676374793, -0.017468294128775597, -0.0010001454502344131, 0.0016355118714272976, -0.018701350316405296, -0.0079600615426898, 0.003682042472064495, 0.014714469201862812, 0.004699313547462225, 0.008412182331085205, -0.00418554013594985, -0.03060719184577465, -0.00040031506796367466, 0.02077014371752739, -0.0022451896220445633, 0.0015182002680376172, 0.025400955229997635, 0.005528201349079609, -0.017550498247146606, 0.042800746858119965, 0.011933241970837116, -0.005754261743277311, 0.0024626869708299637, -0.024729624390602112, 0.023578772321343422, 0.0003187535621691495, 0.020742742344737053, -0.0375945083796978, 0.01050837803632021, 0.01949598640203476, -0.005308991298079491, 0.006213232409209013, 0.005432297009974718, 0.01846843957901001, 0.014618564397096634, 0.03403234854340553, 0.002091057598590851, 0.03375833481550217, -0.0009564747451804578, -0.00405195914208889, -0.01744089275598526, -0.006206382066011429, -0.030059166252613068, 0.03578602522611618, 0.005874142050743103, -0.004641085863113403, 0.013419760391116142, 0.00384644977748394, -0.024154197424650192, -0.015522805973887444, 0.01431715115904808, -0.0001084811010514386, 0.01394723355770111, -0.0039389291778206825, 0.0029644721653312445, 0.004219791851937771, -0.01159757748246193, 0.02773006074130535, -0.017468294128775597, 0.0035861379001289606, 0.00968634057790041, 0.024373408406972885, 0.051980163902044296, -0.00321793369948864, 0.01813962496817112, -0.009199968539178371, 0.013200550340116024, -0.004517780151218176, 0.007953211665153503, 0.009097213856875896, -0.014481558464467525, 0.03373093158006668, -0.024044593796133995, 0.02879870869219303, -0.0018804104765877128, 0.02146887592971325, 0.018605446442961693, 0.025921577587723732, -0.036799874156713486, 0.007110623177140951, -0.014741869643330574, 0.0015515955165028572, -0.004531480837613344, -0.01137151662260294, -0.0015216254396364093, 0.020386526361107826, 0.02220870926976204, -0.004880846943706274, 0.010727588087320328, 0.00921366922557354, 0.023715777322649956, 0.01924937590956688, -0.01343346107751131, 0.007172275800257921, 0.040499042719602585, 0.009946651756763458, 0.005024703219532967, 0.024524115025997162, -0.0015892722876742482, 0.0071243238635361195, -0.0053021409548819065, -0.024729624390602112, -0.0023462316021323204, 0.0073366835713386536, -0.008494386449456215, 0.015495404601097107, -0.006268034689128399, -0.006473544053733349, -0.006144729442894459, -0.004897972568869591, -0.012707327492535114, 0.0077066002413630486, -0.011035851202905178, -0.011542774736881256, 0.006822910159826279, -0.0233184602111578, -0.017125777900218964, -0.0016295177629217505, -0.002443848643451929, 0.004312270786613226, -0.028442492708563805, -0.014097941108047962, 0.015289895236492157, -0.007110623177140951, -0.02471592277288437, 0.0009213668527081609, -0.010241215117275715, -0.025359852239489555, -0.011912691406905651, -0.0036957429256290197, -0.013714323751628399, -0.0003144720976706594, -0.014536361210048199, -0.011145456694066525, 0.009693190455436707, 0.011446869932115078, -0.005134308245033026, -0.02442821115255356, -0.024894030764698982, 0.04118407145142555, -0.004822619259357452, -0.023797981441020966, -0.02846989408135414, -0.039101578295230865, 0.014008887112140656, -0.0031066162046045065, 0.0033429518807679415, -0.008549188263714314, -0.0059255193918943405, 0.010316569358110428, 0.01575571671128273, 0.009330123662948608, -0.02715463377535343, 0.03710128739476204, 0.021441474556922913, -0.015550206415355206, -0.030305776745080948, -0.002818903187289834, 0.006812634877860546, 0.02114006131887436, 0.004346522502601147, 0.009741142392158508, -0.002567154122516513, -0.015344697050750256, -0.01781081035733223, -0.036060038954019547, 0.011131756007671356, 0.015344697050750256, -0.01382392831146717, -0.02159218117594719, -0.0063262623734772205, 0.008967057801783085, -0.0003482955216895789, 0.02475702576339245, -0.0054528480395674706, 0.008679344318807125, -0.027661558240652084, -0.022016901522874832, -0.024839229881763458, -0.017742305994033813, -0.01624893769621849, -0.010679635219275951, 0.03277188912034035, 0.03216906264424324, -0.0012073674006387591, 0.02377058006823063, 0.018687648698687553, -0.004658211953938007, -0.017660101875662804, 0.0036443655844777822, 0.042307522147893906, -0.001510493690147996, 0.006771532818675041, -0.004928798880428076, 0.020167317241430283, 0.016440747305750847, -0.01394723355770111, -0.0053329672664403915, -0.018728751689195633, 0.008980758488178253, 0.011686631478369236, 0.015509105287492275, 0.005493949633091688, -0.00016751151997596025, -0.021523678675293922, 0.0009059536969289184, 0.0005561596481129527, 0.001138864317908883, -0.013707472942769527, 0.03384053707122803, 0.010446724481880665, -0.039348188787698746, 0.005411745980381966, -0.009206818416714668, 0.013632119633257389, -0.003706018440425396, 0.00024532678071409464, -0.02327735722064972, -0.057158999145030975, -0.05803583934903145, -0.006822910159826279, 0.03129222244024277, -0.0046958886086940765, -0.01813962496817112, -0.03145663067698479, -0.0007620971300639212, -0.02430490404367447, -0.010624833405017853, 0.014043138362467289, -0.006487244740128517, -0.00680920947343111, -0.023058148100972176, 0.002274303464218974, 0.015495404601097107, 0.002741837175562978, 0.004476678557693958, 0.0038533001206815243, -0.003849874949082732, 0.018235528841614723, -0.005428871605545282, -0.009384926408529282, -0.009837047196924686, -0.012467566877603531, -0.01485147513449192, 0.02060573734343052, 0.003952629864215851, -0.028497295454144478, -0.004110186826437712, 0.011022151447832584, -0.009884999133646488, -0.015330997295677662, 0.020098812878131866, -0.044444821774959564, 0.016564052551984787, -0.002298279432579875, 0.0037676712963730097, 0.015933824703097343, 0.017413491383194923, 0.0017810809658840299, 0.01785191148519516, -0.025277648121118546, 0.00783675629645586, -0.007590144872665405, -0.01431715115904808, -0.005815914366394281, 0.025031037628650665, 0.00287884334102273, -0.033511724323034286, -0.013741724193096161, 0.008254624903202057, -0.013310154899954796, 0.004675337579101324, 0.004452702589333057, 0.016851766034960747, 0.01990700513124466, 0.004774666856974363, -0.01559130847454071, 0.027620455250144005, -0.003229921916499734, 0.00791896041482687, -0.020509831607341766, 0.007651797961443663, 0.006901688873767853, 0.010522078722715378, 0.0014865176053717732, 0.02335956133902073, 0.00246782461181283, -0.00818612240254879, 0.013296454213559628, -0.021167462691664696, 0.00656944839283824, -0.00046924632624723017, -0.027798563241958618, -0.030086567625403404, -0.01867394894361496, -0.012912836857140064, 0.016591453924775124, -0.012741578742861748, 0.00506923021748662, -0.04192390665411949, -0.009426028467714787, -0.010124760679900646, 0.006137879099696875, 0.02627779357135296, -0.021564779803156853, -0.01953708752989769, -0.000962468737270683, -0.00011945230653509498, 0.02196209877729416, -0.016070829704403877, -0.018893158063292503, -0.00789840891957283, -0.017920413985848427, -0.019920704886317253, -0.01957819052040577, -0.017139479517936707, 0.008727296255528927, 0.012289458885788918, 0.017290186136960983, 0.015221391804516315, 0.00582961505278945, -0.011933241970837116, -0.00411361176520586, -0.0020311172120273113, -0.012220955453813076, 0.0023856209591031075, 0.002188674407079816, -0.01834513433277607, 0.0026921723037958145, 0.010515227913856506, -0.0035929882433265448, 0.019797399640083313, -0.003986881114542484, 0.02805887535214424, 0.015426901169121265, 0.011350966058671474, -0.0014505534199997783, -0.026387399062514305, -0.03153883293271065, 0.0040725101716816425, -0.02871650457382202, -0.006363939493894577, 0.014070539735257626, -0.03422415629029274, -0.005699458997696638, -0.005250763613730669, 0.006552322767674923, -0.013474562205374241, 0.004346522502601147, 0.025044739246368408, -0.008487535640597343, 0.01846843957901001, 0.007370934821665287, 0.0036888925824314356, -0.019852202385663986, -0.03331991285085678, -0.011755133979022503, 0.007850456982851028, 0.018947960808873177, 0.0025945554953068495, 0.04258153587579727, 0.003942354116588831, 0.017386090010404587, -0.00913146510720253, 0.00212873425334692, -0.02040022797882557, -0.03449816629290581, 0.001137151732109487, -0.00884375162422657, 0.0066345264203846455, -0.01735868863761425, -0.009357525035738945, -0.01116600725799799, -0.007240779232233763, -0.004188965540379286, 0.005264464300125837, 0.02677101641893387, -0.013070394285023212, -0.0056891837157309055, 0.015988627448678017, -0.014618564397096634, 0.027784863486886024, -0.0022828662768006325, 0.006487244740128517, 0.01620783656835556, 0.01945488341152668, -0.010480976663529873, -0.025606464594602585, -0.011248211376369, -0.008610841818153858, 0.0363614521920681, 0.01116600725799799, -0.008494386449456215, -0.018824655562639236, 0.015070685185492039, 0.007172275800257921, 0.006079651415348053, -0.032306067645549774, 0.02563386596739292, 0.030798999592661858, 0.005028128623962402, -0.01707097515463829, 0.0038978271186351776, -0.018783554434776306, 0.023784281685948372, -0.006692754104733467, 0.008809500373899937, 0.01320740021765232, 0.008932805620133877, -0.004089635796844959, 0.015824219211935997, -0.03151143342256546, 0.013399208895862103, -0.010857743211090565, -0.012775830924510956, -0.013056693598628044, -0.0014137329999357462, 0.006572873797267675, 0.013988335616886616, -0.02298964560031891, 0.013173148967325687, -0.009658939205110073, -0.008419033139944077, -0.003743695095181465, -0.006627676077187061, 0.0012844334123656154, 0.02150997705757618, -0.014878876507282257, 0.029812555760145187, -0.01822182908654213, -0.0005445997812785208, 0.015851620584726334, 0.00431912112981081, 0.00736408494412899, -0.0002763672382570803, -0.008446433581411839, -0.00987129844725132, -0.009967203252017498, -0.0016757574630901217, 0.0237294789403677, -0.0030449633486568928, -0.008097068406641483, 0.015344697050750256, -0.004038258455693722, -0.023989791050553322, -0.019769998267292976, 0.00028985380777157843, 0.013241651467978954, -0.02657920867204666, -0.011953793466091156, -0.009391777217388153, -0.0014368528500199318, 0.027140934020280838, -0.0005882704863324761, -0.004747265949845314, 0.01157702598720789, 0.027661558240652084, -0.029757753014564514, 0.017002472653985023, -0.006274885032325983, 0.0033155507408082485, 0.0008348816772922873, -0.0013272478245198727, -0.004774666856974363, -0.016440747305750847, 0.004065659828484058, -0.004192390479147434, -0.03723829239606857, 0.005833039991557598, 0.010782389901578426, 0.0013452299172058702, 0.023880185559391975, 0.0187972541898489, 0.02315405197441578, 0.017016174271702766, -0.0017776557942852378, -0.007939510978758335, -0.00736408494412899, 0.04137587919831276, -0.0237294789403677, -0.009583585895597935, 0.0355394147336483, 0.004226642195135355, 0.020222119987010956, -0.008542338386178017, 0.015522805973887444, 0.025277648121118546, -0.0020413927268236876, -0.015577607788145542, -0.011029001325368881, 0.019386380910873413, -0.020345425233244896, 0.002882268512621522, 0.014344551600515842, -0.02229091338813305, -0.015892721712589264, 0.02311295084655285, -0.0005784231470897794, 0.022921141237020493, -0.015426901169121265, -0.015098086558282375, -0.01600232720375061, 0.023921286687254906, -0.01030286867171526, -0.0035553115885704756, -0.009199968539178371, -0.01994810625910759, -0.03559421747922897, -0.007768253330141306, -0.00664137676358223, -0.004846595227718353, 0.029237128794193268, -0.00927532184869051, -0.013597868382930756, -0.013269052840769291, -0.032443076372146606, 0.016714759171009064, 0.0040416838601231575, 0.035840827971696854, 0.019139770418405533, 0.002952484181150794, 0.0004465546808205545, -0.0029713225085288286, -0.01526249386370182, 0.003801922779530287, -0.028250684961676598, -0.01702987402677536, 0.023948688060045242, -0.018290331587195396, 0.043622784316539764, 0.0017391227884218097, -0.011296163313090801, -0.003015849506482482, 0.024483012035489082, -0.0029011068399995565, 0.008158721029758453, -0.012679926119744778, -0.014865175820887089, -0.01629004068672657, 0.01850954070687294, 0.008878003805875778, -0.0013889006804674864, 0.007638097275048494, 0.02159218117594719, -0.03633405268192291, 0.0042780195362865925, 0.012988190166652203, 0.025483157485723495, -0.0035176349338144064, -0.0010361096356064081, -0.004093061201274395, 0.007398336194455624, -0.010063107125461102, -0.01069333590567112, -0.019674094393849373, 0.01077554002404213, -0.007795654237270355, 0.0384165458381176, 0.009090363048017025, -0.0025654416531324387, 0.031484030187129974, 0.025565361604094505, -0.0008498667739331722, 0.009658939205110073, 0.02662030979990959, -0.047650765627622604, -0.0001372202968923375, 0.019139770418405533, -0.025113241747021675, -0.020002909004688263, 0.0010934809688478708, 0.00106436712667346, -0.011145456694066525, 0.006120753008872271, -0.009974053129553795, 0.0021544229239225388, -0.02409939467906952, -0.011508523486554623, 0.010433023795485497, -0.04652731493115425, 0.018413636833429337, -0.006706454791128635, -0.008645093068480492, 0.03660806268453598, 0.02520914562046528, -0.00031725503504276276, -0.007295581512153149, -0.005836465395987034, 0.012693626806139946, -0.016468148678541183, -0.026798417791724205, -0.0046479362063109875, 0.00698046712204814, 0.010296017862856388, 0.02822328358888626, 0.18786293268203735, 0.006901688873767853, -0.017372390255331993, 0.040910057723522186, -0.006518071051687002, 0.004490379244089127, 0.006298861466348171, -0.01563241146504879, -0.004651361610740423, 0.021126359701156616, -0.0016911706188693643, -0.0237294789403677, -0.00962468795478344, 0.002294854260981083, -0.000928217195905745, -0.0050178528763353825, -0.04414340481162071, -0.023674676194787025, -0.03178544342517853, 0.0100151551887393, 0.018167026340961456, -0.011529074050486088, 0.010172712616622448, 0.0041033364832401276, 0.024373408406972885, -0.0011748283868655562, 0.004415025468915701, 0.008097068406641483, 0.020948251709342003, 0.024935133755207062, -0.015002181753516197, 0.014207545667886734, -0.00602484866976738, 0.02488033100962639, -0.020126214250922203, -0.015152888372540474, -0.017413491383194923, 0.011892140842974186, 0.02118116244673729, -0.0006486388738267124, -0.014344551600515842, 0.015235092490911484, -0.010145311243832111, -0.0233184602111578, -0.004826044198125601, -0.0025842799805104733, -0.0012741578975692391, -0.013467712327837944, 0.024524115025997162, 0.026332596316933632, -0.024688521400094032, 0.0008532918873243034, 0.01361841894686222, 0.004778092261403799, -0.013741724193096161, -0.008823201060295105, 0.023907586932182312, 0.008145020343363285, 0.003426868235692382, -0.0020790696144104004, -0.010063107125461102, 0.019441183656454086, -0.023428065702319145, 0.03449816629290581, -0.01559130847454071, 0.019071266055107117, -0.010330269113183022, 0.04225271940231323, -0.019468585029244423, -0.02879870869219303, 0.019194573163986206, 0.004836319945752621, -0.01678326353430748, -0.02616818994283676, -0.00715857557952404, -0.017797108739614487, 0.0026647711638361216, 0.012858034111559391, 0.0076449476182460785, 0.004425301216542721, -0.004486953839659691, -0.007055820897221565, -0.0034953714348375797, -0.01139206811785698, 0.001437709084711969, -0.0035621619317680597, 0.004099911544471979, -0.00452463049441576, -0.026634011417627335, 0.030223574489355087, 0.003267598571255803, -0.02781226485967636, -0.006196106784045696, -0.018701350316405296, -0.014591163024306297, -0.0008130463538691401, 0.008117618970572948, 0.014700768515467644, -0.007939510978758335, -0.014166443608701229, -0.028195882216095924, 0.07206527888774872, 0.03260748088359833, -0.016714759171009064, -0.004538331180810928, -0.005257613956928253, 0.005850166082382202, 0.024948833510279655, 0.02261972799897194, -0.012659375555813313, -0.008220373652875423, -0.03781371936202049, 0.012357961386442184, -0.01287173479795456, -0.03304590284824371, -0.017372390255331993, -0.022345716133713722, -0.006733856163918972, 0.0030809275340288877, 0.0009693190804682672, -8.141434591379948e-06, -0.015426901169121265, -0.0037676712963730097, -0.021496277302503586, -0.013303305022418499, -0.014344551600515842, -0.031895048916339874, -0.02068793959915638, -0.01665995642542839, -0.022236110642552376, 0.016427047550678253, -0.008124468848109245, 0.0163311418145895, -0.016851766034960747, 0.0035895630717277527, -0.015330997295677662, -0.0028617174830287695, 0.007004443556070328, -0.0026065434794873, 0.02662030979990959, -0.011070103384554386, -0.0030449633486568928, -0.01036452129483223, -0.005661782342940569, 0.006011148449033499, -0.025195445865392685, 0.02508584037423134, 0.01624893769621849, -0.018989063799381256, -0.008076516911387444, 0.006065950728952885, -0.019304176792502403, -0.007864157669246197, -0.0029370710253715515, 0.030004363507032394, 0.006987317465245724, -0.01789301261305809, -0.011912691406905651, 0.0051993862725794315, 0.020222119987010956, -0.026757316663861275, -0.021660683676600456, 0.022811537608504295, -0.009097213856875896, -0.031210018321871758, 0.0012655950849875808, -0.17734086513519287, 0.0029387834947556257, 0.012577171437442303, -0.011035851202905178, 0.00192322488874197, -0.01355676632374525, 0.016975071281194687, 0.005219937302172184, -0.020249521359801292, 0.012303159572184086, 0.03208685666322708, 0.018125923350453377, -0.03589563071727753, -0.020181016996502876, 0.03792332485318184, 0.003534760558977723, 0.041978709399700165, 0.0163311418145895, 0.052637793123722076, -0.0018136199796572328, 0.04852760583162308, -0.0006914532859809697, 0.00021867478790227324, -0.013255352154374123, 0.007829905487596989, -0.0029644721653312445, -0.011118055321276188, 0.018372535705566406, 0.023126650601625443, -0.009227368980646133, -0.014262348413467407, 0.017947815358638763, 0.01690656878054142, 0.01260457281023264, -0.004486953839659691, 0.01916717179119587, -0.022838938981294632, -0.015221391804516315, 0.01313889678567648, 0.024414509534835815, -0.006333112716674805, 0.012618273496627808, 0.008179271593689919, -0.010330269113183022, 0.007651797961443663, -0.0005801357328891754, 0.021934697404503822, 0.01493367925286293, 0.005576153285801411, -0.0060282740741968155, 0.011535923928022385, -0.0267025139182806, -0.00701471883803606, 5.7585428294260055e-05, 0.010604281909763813, 0.006792083848267794, 0.017947815358638763, 0.00575768668204546, -0.008672494441270828, -0.011816787533462048, 0.008055966347455978, -0.019030164927244186, -0.009186267852783203, 0.0037471202667802572, -0.006853736471384764, 0.008693045005202293, 0.007905259728431702, 0.01538579910993576, -0.027551952749490738, 0.019441183656454086, -0.018358834087848663, -0.013090944848954678, -0.0067133051343262196, -0.022236110642552376, 0.014180144295096397, -0.008480685763061047, -0.01698877289891243, -0.0010386784560978413, 0.020509831607341766, 0.003699168097227812, -0.009042411111295223, 0.02381168305873871, -0.017536796629428864, 0.006637951824814081, -0.004767816513776779, -0.004408175591379404, 0.0026887471321970224, 0.001094337203539908, 0.004733565263450146, -0.018454737961292267, 0.015974925830960274, -0.04989766702055931, 0.03110041283071041, -0.013399208895862103, 0.034333761781454086, 0.009473980404436588, -0.009802795946598053, 0.013323855586349964, 0.001820470206439495, -0.01904386654496193, -0.02937413565814495, -0.010316569358110428, -0.020907150581479073, 0.007206527516245842, 0.004079360514879227, -0.013775976374745369, 0.01822182908654213, 0.009152015671133995, 0.038115132600069046, -0.0077477023005485535, -0.016605155542492867, 0.010254915803670883, 0.02007141150534153, 0.0167421605437994, -0.004027983173727989, 0.02608598582446575, 0.01007680781185627, 0.006113903131335974, -0.0014291461557149887, 0.0018393086502328515, 0.07151725143194199, -0.005322691984474659, -0.007795654237270355, 0.006685903761535883, 0.01620783656835556, -0.015098086558282375, -0.09771284461021423, -0.017756007611751556, 0.010700186714529991, 0.008549188263714314, 0.0057748123072087765, 0.04299255460500717, 0.020920850336551666, 0.011734583415091038, -0.02575717121362686, -0.008816351182758808, -0.01464596576988697, -0.013323855586349964, -0.021907296031713486, 0.006339963059872389, 0.009289022535085678, -0.0014514097711071372, -0.006237208377569914, -0.004918523598462343, 0.008967057801783085, 0.034991391003131866, 0.004548606928437948, -0.019427483901381493, 0.012474416755139828, -0.010453575290739536, -0.02446931228041649, -0.028086276724934578, -0.007501090876758099, 0.012858034111559391, -0.008199823088943958, 0.02438710816204548, 0.035840827971696854, -0.009617837145924568, 0.0014950804179534316, -0.009775394573807716, -0.018893158063292503, 0.0030466760508716106, -0.029428938403725624, 0.004301995504647493, 0.02822328358888626, -0.01118655875325203, -0.0010446724481880665, 0.0023188304621726274, -0.0011756847379729152, -0.0049013979732990265, -0.0022811535745859146, -0.018358834087848663, -0.013125197030603886, 0.01986590214073658, -0.0037676712963730097, -0.02994956076145172, -0.008316278457641602, -0.009610987268388271, 0.0011157444678246975, -0.024236401543021202, -0.019358979538083076, -0.007987462915480137, 0.01444045640528202, 0.033265113830566406, -0.006959916558116674, 0.016933970153331757, 0.017043575644493103, 0.002991873538121581, 0.01538579910993576, 0.022058002650737762, 0.008967057801783085, -0.0004427013627719134, -0.03290889412164688, -0.018824655562639236, 0.019715195521712303, 0.02192099578678608, 0.0003356652450747788, 0.009912400506436825, -0.035840827971696854, -0.01261142361909151, -0.017372390255331993, -0.0014205833431333303, -0.006935940124094486, -0.016687357798218727, -0.010309718549251556, 0.0070832218043506145, -0.026332596316933632, -0.007535342592746019, -0.0043088458478450775, 0.014878876507282257, 0.019139770418405533, 0.011878440156579018, 0.016933970153331757, -0.013988335616886616, -0.020824946463108063, 0.007877858355641365, -0.006757832132279873, -0.0005959770642220974, 0.005439147353172302, -0.016728460788726807, -0.01546800322830677, 0.010063107125461102, 0.009583585895597935, -0.030634593218564987, 0.02514064311981201, 0.014865175820887089, 0.003582712961360812, -0.012960788793861866, -0.029511140659451485, 0.02381168305873871, 0.0036649166140705347, 0.02175658941268921, 0.0029678973369300365, -0.020222119987010956, -0.005805639084428549, -0.03532020375132561, -0.0054665482603013515, 0.0065488978289067745, -0.0018358834786340594, -0.018605446442961693, -0.002430147957056761, 0.010296017862856388, -0.028853511437773705, -0.012207254767417908, 0.03562162071466446, 0.0012073674006387591, 0.008350529707968235, -0.00033523712772876024, 0.015084385871887207, 0.005651507060974836, 0.013899281620979309, 0.015550206415355206, 0.008610841818153858, -0.00453490624204278, -0.01048782654106617, 0.014413055032491684, 0.012296308763325214, -0.003125454531982541, 0.0050349789671599865, -0.018523242324590683, -0.005517925601452589, 0.01456376165151596, -0.016879167407751083, -0.015043283812701702, 0.006086501758545637, 0.016564052551984787, 0.01604342833161354, -0.014824073761701584, -0.021619582548737526, -0.016180435195565224, 0.013995186425745487, 0.0027846514713019133, -0.007720300927758217, 0.017756007611751556, -0.009645238518714905, -0.007932660169899464, -0.007686049211770296, 0.008124468848109245, 0.01402943767607212, 0.0030963406898081303, 0.013974634930491447, -0.019961807876825333, -0.004236917477101088, -0.015618709847331047, 0.017043575644493103, -0.005833039991557598, 0.003123742062598467, -0.02541465498507023, 0.0196192916482687, -0.012022296898066998, 0.028606900945305824, -0.009138314984738827, -0.0007937798509374261, -0.006802359130233526, -0.007686049211770296, -0.005329542327672243, 0.014495259150862694, -0.02723683789372444, 0.02929193153977394, 0.0018307457212358713, 0.019221974536776543, 0.025770870968699455, 0.013666370883584023, -0.017632702365517616, 0.0012630261480808258, 0.01670105941593647, -0.02520914562046528, 0.020578335970640182, 0.014139042235910892, -0.022838938981294632, -0.00589126767590642, 0.001983165042474866, 0.024661121889948845, 0.013789677061140537, -0.013036142103374004, 0.017591599375009537, -0.007453138940036297, 0.014755570329725742, -0.014043138362467289, 0.0005398901412263513, 0.0022794411052018404, -0.018002618104219437, -0.003193957731127739, 0.01793411560356617, 0.009467130526900291, -0.012378512881696224, 0.020304322242736816, 0.003051813691854477, 0.002097907941788435, 0.017166880890727043, -0.0014702480984851718, -0.009158866479992867, 0.0030466760508716106, -0.0037916472647339106, 0.016550352796912193, -0.02616818994283676, -0.010707036592066288, -0.0167421605437994, 0.0031665563583374023, 0.0025928427930921316, 0.0027315616607666016, 0.023291058838367462, -0.0073914858512580395, 0.014508959837257862, -0.002344519132748246, -0.010453575290739536, -0.019632993265986443, 0.0073914858512580395, -0.0021475725807249546, 0.0016200985992327332, -0.003293287241831422, 0.0006931658717803657, 0.03652586042881012, -0.00350735941901803, 0.00582961505278945, -0.015865320339798927, 0.00350735941901803, 0.02970295026898384, -0.00015916270785965025, -0.011851038783788681, -0.027483448386192322, -0.02467482164502144, -0.00042193636181764305, -0.018167026340961456, -0.006939365528523922, 0.05622735619544983, -0.008740996941924095, 0.06927035003900528, 0.020057711750268936, -0.02097565308213234, 0.008610841818153858, 0.015933824703097343, 0.010357670485973358, 0.01266622543334961, 0.03011396899819374, -0.014248647727072239, -0.027962971478700638, 0.039265986531972885, 0.0005167703493498266, -0.004236917477101088, -0.044362615793943405, 0.023578772321343422, -0.006199531722813845, -0.006237208377569914, 0.0009162291535176337, 0.013275903649628162, -0.03334731608629227, 0.019632993265986443, -0.0314292274415493, 0.032306067645549774, -0.014837774448096752, -0.00011228088260395452, -0.010104209184646606, 0.018646547570824623, -0.01267307624220848, -0.01313889678567648, -0.02760675549507141, 0.006449568085372448, -0.021523678675293922, -0.023291058838367462, -0.0074394382536411285, -0.0009324986604042351, 0.004312270786613226, -0.013775976374745369, -0.041978709399700165, 0.023866483941674232, 0.025606464594602585, -0.014043138362467289, 0.005884417332708836, -0.00654204748570919, -0.0036649166140705347, 0.013693772256374359, -0.013426610268652439, -0.014043138362467289, 0.00637421477586031, -0.04696573317050934]
+ # examples_embedding = [
+ # [-0.006955452263355255, 0.005811463575810194, 0.01963738538324833, -0.018630675971508026, -0.015741286799311638, 0.028449369594454765, -0.03271154314279556, 0.006363846827298403, -0.009995194151997566, -0.03718290850520134, 0.012799601070582867, 0.03250235691666603, 0.006527273450046778, -0.014211609959602356, -0.016826441511511803, -0.005863760132342577, 0.0342542938888073, 0.006023918744176626, 0.029103076085448265, -0.0227359626442194, -0.014224684797227383, 0.0010581896640360355, -0.016525736078619957, -0.003958201501518488, -0.0015541906468570232, 0.0007133587496355176, 0.0004010089614894241, -0.02162465825676918, -0.0013221242697909474, -0.020408760756254196, 0.018905233591794968, -0.02353348582983017, 0.012864972464740276, -0.01354482863098383, -0.021676955744624138, 0.011296072974801064, 0.021467767655849457, -0.0036574958357959986, 0.007537252269685268, 0.005968353245407343, 0.022369885817170143, 0.0009233624441549182, -0.0066645522601902485, -0.0004314472316764295, 0.0178070031106472, 0.01642114296555519, 0.008034070022404194, -0.027847956866025925, 0.008360924199223518, -0.00830209068953991, 0.0388825461268425, 0.017467075958848, -0.017323259264230728, 0.001789525500498712, 0.010498549789190292, 0.012629637494683266, -0.025037012994289398, 0.016787219792604446, 0.008524351753294468, -0.03025360219180584, 0.008727001026272774, 0.01206744834780693, -0.005500952247530222, 0.03574474900960922, -0.009145373478531837, 0.002289612079039216, -0.013132992200553417, 0.015139875933527946, 0.0115379448980093, -0.020997099578380585, 0.003011959372088313, 0.013845534063875675, -0.007583011873066425, 0.002721059136092663, 0.005494415294378996, -0.04521043971180916, -0.019415125250816345, -0.004824364557862282, 0.022788258269429207, 0.000873517245054245, 0.007726827636361122, -0.011426814831793308, -0.01785930059850216, 0.029286114498972893, -0.010054027661681175, 0.020513353869318962, 0.016434216871857643, -0.007210398558527231, -0.005445387214422226, -0.00567091628909111, 0.006955452263355255, 0.00421968474984169, 0.024056451395154, -0.00016853406850714236, 0.005219857674092054, 0.010975755751132965, 0.01173405721783638, 0.007314991671591997, -0.004124897066503763, -0.0001574006164446473, -0.017898522317409515, 0.011211090721189976, -0.032136280089616776, -0.010001731105148792, -0.03158716857433319, 0.000674544891808182, 0.012211264111101627, -0.002454673172906041, 0.011943243443965912, -0.03511719033122063, 0.013296418823301792, 0.042543310672044754, 0.002250389428809285, -0.012100134044885635, -0.021402398124337196, 0.006066409405320883, 0.016172735020518303, -0.015584397129714489, 0.0003141883644275367, -0.02010805532336235, -0.005213320720940828, -0.021703103557229042, 0.011067274957895279, 0.0006778134265914559, -0.012812674976885319, -0.004536733031272888, -0.010073639452457428, -0.03020130656659603, 0.007622234523296356, -0.015257542952895164, 0.014015497639775276, 0.04241257160902023, 0.007060045842081308, 0.005559785757213831, -0.018513008952140808, -0.0002455490466672927, -0.010021342895925045, 0.011394129134714603, 0.008838131092488766, -0.021794622763991356, -0.008236720226705074, 0.02813558839261532, -0.019232086837291718, -0.02596527896821499, 0.016787219792604446, 0.05668955296278, -0.0077987355180084705, 0.00728230644017458, 0.0008179520373232663, -0.008210571482777596, -0.009158448316156864, -0.0010467497631907463, -0.008792371489107609, -0.003984349779784679, 0.010256676934659481, 0.010413567535579205, -0.01838226616382599, -0.003546365536749363, -0.037287499755620956, -0.024056451395154, 0.0037163295783102512, 0.02920767106115818, 0.010243603028357029, 0.009517987258732319, 0.0257037952542305, 0.03310376778244972, 0.0023566170129925013, 0.005334256682544947, 0.011296072974801064, -0.009138836525380611, 0.006850859150290489, 0.025939131155610085, -0.023441966623067856, 0.021650806069374084, 0.008256331086158752, 0.03974544256925583, -0.01294995378702879, -0.0013335641706362367, -0.010034416802227497, -0.051250699907541275, 0.014865318313241005, -0.008602796122431755, 0.019035974517464638, 0.013309493660926819, -0.028187885880470276, 0.000693747540935874, 0.030149009078741074, -0.01387168187648058, -0.011668686755001545, -0.008360924199223518, -0.010694662109017372, 0.011825576424598694, -0.021572360768914223, -0.02855396270751953, -0.6647948026657104, -0.0019251698395237327, -0.014747651293873787, -0.01120455376803875, -0.005350599531084299, -0.00032276829006150365, 0.021114766597747803, 0.009138836525380611, 0.0034711891785264015, -0.0051152645610272884, 0.013041472993791103, 0.03129953518509865, 0.002137624891474843, -0.015466729179024696, 0.0015827902825549245, -0.0032799795735627413, 0.004108554217964411, 0.007210398558527231, -0.03676453232765198, 0.01456461288034916, 0.0036673014983534813, 0.04238642379641533, -0.025886833667755127, 0.003595393616706133, -0.0010794352274388075, -0.009733711369335651, -0.008798908442258835, -0.005020476877689362, -0.01588510349392891, 0.025677647441625595, 0.000911922543309629, 0.012446599081158638, 0.02420026808977127, 0.00027231022249907255, 0.04976024851202965, -0.0050172084011137486, -0.029652191326022148, 0.029181521385908127, 0.004589029587805271, 0.05841534212231636, -0.02392571046948433, -0.0019692950882017612, 0.013937053270637989, -0.0030446446035057306, 0.030279751867055893, 0.01687873899936676, 0.008557036519050598, -0.011178405955433846, -0.0031181867234408855, -0.015924325212836266, -0.008936187252402306, 0.005223126150667667, -0.017257889732718468, -0.0002426890714559704, -0.02123243361711502, -0.012446599081158638, 0.009864452295005322, -0.006778951268643141, 0.007138490676879883, 0.000790578022133559, -0.002546192379668355, 0.02314126119017601, -0.004102017264813185, -0.007236546836793423, -0.04772067815065384, 0.0006917046848684549, 0.007262695115059614, -0.023311223834753036, 0.0006675992044620216, -0.01899675279855728, 0.025690721347928047, 0.025350794196128845, 0.012884583324193954, -0.029495302587747574, 0.029547598212957382, -0.006713580340147018, 0.03652919828891754, -0.010217455215752125, -0.025403089821338654, 0.010858088731765747, 0.005762435495853424, -0.013505605980753899, -0.03676453232765198, -0.016787219792604446, 0.03224087506532669, 0.002758647548034787, -0.013276807963848114, -0.02761262282729149, -0.0007276586256921291, -0.014917614869773388, 0.03488185629248619, -0.00965526606887579, 0.00015607276873197407, -0.046779338270425797, 0.01406779419630766, -0.0025527295656502247, -0.019611237570643425, 0.007922939956188202, 0.01865682378411293, 0.006406337488442659, -0.02136317454278469, -0.017637040466070175, -0.024213341996073723, -0.0021359906531870365, 0.035509414970874786, 0.018957529217004776, -0.015113727189600468, -0.005507489200681448, 0.047563787549734116, -0.0062527162954211235, 0.016460366547107697, -0.018839862197637558, 0.004151045344769955, -0.009073466062545776, 0.006693969015032053, -0.018813714385032654, 0.011381055228412151, -0.01538828480988741, -0.006863933056592941, -0.0017061777180060744, 0.02108861692249775, 0.004984523169696331, 0.00023472199973184615, -0.009884064085781574, 0.0025053357239812613, -0.008295553736388683, 0.027115805074572563, -0.011675223708152771, 0.0038928308058530092, -0.011923632584512234, 0.009034243412315845, -0.010093250311911106, 0.0030479133129119873, -0.010217455215752125, 0.016904886811971664, -0.005399627611041069, 0.025743018835783005, 0.011479111388325691, 0.015505951829254627, -0.013100306503474712, -0.00807982962578535, -0.008759685792028904, 0.0017339602345600724, -0.019271310418844223, -0.021768473088741302, -0.0021752130705863237, -0.000567091628909111, -0.00746534438803792, -0.0029743709601461887, -0.0002424847916699946, -0.0008596259285695851, 0.006635135505348444, -0.016826441511511803, 0.017506297677755356, 0.001032041385769844, -0.013257197104394436, 0.016708774492144585, -0.029155373573303223, -0.005625156685709953, -0.032136280089616776, -0.00359212514013052, 0.007164638955146074, -0.03323451057076454, 0.025324644520878792, -0.02682817354798317, -0.015205246396362782, -0.018643749877810478, 0.014080869033932686, -0.03545711934566498, -0.0184476375579834, 0.01173405721783638, -0.015022207982838154, 0.02629213221371174, 0.024958569556474686, 0.003628079080954194, -0.0036542273592203856, -0.013767088763415813, 0.004356963559985161, 0.023912636563181877, -0.004572686739265919, 0.026331355795264244, 0.027978699654340744, 0.017231741920113564, -0.022644443437457085, 0.021376248449087143, 0.02084020897746086, 0.008890427649021149, 0.02268366515636444, -0.01963738538324833, 0.018892159685492516, 0.021990735083818436, 0.021127840504050255, -0.031090348958969116, -0.020251872017979622, 0.015532100573182106, -0.017231741920113564, -0.004928957670927048, -0.008524351753294468, 0.009570283815264702, 0.03145642578601837, 0.030933458358049393, -0.01872219517827034, -0.008328239433467388, -0.0038830251432955265, 0.015767434611916542, -0.0012698275968432426, -0.010354734025895596, -0.048217497766017914, 0.009622580371797085, -0.004324277862906456, 0.005272154230624437, -0.00800792220979929, 0.004383111838251352, -0.007622234523296356, -0.003961469978094101, 0.027272695675492287, 0.00771375373005867, 0.02056565135717392, -0.009812155738472939, -0.008596259169280529, 0.006340967025607824, -0.010818866081535816, 0.040373001247644424, -0.0027798928786069155, -0.003928784746676683, 0.007922939956188202, 0.0448443628847599, 0.0474591962993145, 0.0188006404787302, 0.007399973925203085, -0.003070792881771922, 0.0323193185031414, 0.02650132030248642, -0.002369691152125597, 0.012407376430928707, 0.005350599531084299, 0.03775817155838013, -0.029887527227401733, 0.03611082583665848, -0.01740170456469059, 0.015283691696822643, 0.013584050349891186, 0.02216069959104061, -0.020330317318439484, 0.017388630658388138, 0.0230758897960186, 0.02050027996301651, -0.001492905430495739, -0.015139875933527946, -0.000346873770467937, -0.02149391733109951, 0.022173773497343063, -0.01265578530728817, 0.01022399216890335, 0.008334776386618614, 0.0047099655494093895, 0.012407376430928707, -0.008838131092488766, 0.011158794164657593, 0.024618640542030334, 0.011060738004744053, 0.00761569757014513, 0.026082945987582207, -0.0178070031106472, -0.00025923605426214635, -0.0014700257452204823, -0.004039914812892675, -0.018081560730934143, 0.007504567038267851, -0.004111822694540024, -0.00756340054795146, -0.006141585763543844, -0.005971621721982956, -0.023350447416305542, -0.005566323176026344, 0.010988830588757992, 0.002701448043808341, 0.005713407415896654, 0.012956490740180016, 0.008642018772661686, -0.01642114296555519, -0.02886774204671383, 0.010531234554946423, 0.024945493787527084, 0.007726827636361122, -0.020068833604454994, -0.012943416833877563, 0.0005813915049657226, 0.025363868102431297, 0.006389995105564594, -0.004549807403236628, 0.008472055196762085, -0.008517813868820667, -0.016917960718274117, -0.0028583379462361336, -0.004530196078121662, 0.029103076085448265, 0.009877527132630348, -0.01971583068370819, 0.011544481851160526, 0.03396666422486305, -0.006942378357052803, -0.021049395203590393, -0.0014422431122511625, 0.042281828820705414, 0.008602796122431755, 0.0007603440317325294, -0.022827479988336563, -0.008485129103064537, -0.015074504539370537, 0.0046053724363446236, 0.0027390362229198217, -0.011877872981131077, -0.009236892685294151, 0.004105285741388798, 0.029547598212957382, -0.003637884510681033, -0.00814520101994276, 0.02946915291249752, 0.008883890695869923, 0.01647344045341015, -0.0164865143597126, -0.00703389709815383, -0.010034416802227497, 0.0322931706905365, 0.014682279899716377, 0.01391090452671051, 0.002350080059841275, -0.017323259264230728, 0.0032309514936059713, -0.014512316323816776, -0.00010673824726836756, 0.03770587220788002, -0.008053681813180447, -0.008092904463410378, -0.0028436295688152313, 0.022435255348682404, -0.020984023809432983, 0.010943070985376835, 0.014813021756708622, 0.011433351784944534, -0.03336525335907936, -0.007837957702577114, -0.005961816292256117, 0.007203861139714718, -0.008988483808934689, 0.01984657347202301, 0.007092731073498726, 0.028449369594454765, -0.002546192379668355, 0.021480843424797058, 0.020984023809432983, -0.014473093673586845, -0.015349062159657478, -0.006890081334859133, 0.018160006031394005, -0.0031606778502464294, 0.012440062128007412, -0.003817654214799404, 0.0428309440612793, 0.005330988205969334, -0.027926402166485786, 0.013950127176940441, 0.008811983279883862, 0.010498549789190292, -0.006115437485277653, 0.009374171495437622, 0.004020303953438997, 0.010681587271392345, -0.02886774204671383, 0.015296765603125095, 0.01653880998492241, -0.010877699591219425, 0.015466729179024696, 0.012603488750755787, -0.0008261234033852816, -0.015453655272722244, 0.001538665033876896, -0.014133165590465069, -0.01666955277323723, 0.005308108404278755, 0.004781873431056738, -0.024762457236647606, -0.03059353120625019, -0.030358195304870605, 0.00018314036424271762, 0.016695700585842133, -0.0026295401621609926, -0.006707043386995792, -0.003582319477573037, -0.00018702175293583423, 0.005527100525796413, -0.0270373597741127, 0.021310878917574883, 0.017637040466070175, -0.023441966623067856, -0.05227048695087433, -7.788317452650517e-05, 0.011263387277722359, 0.00906692910939455, 8.865913696354255e-05, -0.014093942940235138, -0.010786180384457111, 0.0063082813285291195, -0.0038928308058530092, -0.008347850292921066, -0.007759513333439827, -0.04073907807469368, -0.013937053270637989, 0.016133511438965797, 0.001841822057031095, 5.8833713410422206e-05, -0.011851725168526173, 0.005804926622658968, -0.00949837639927864, -0.011413739994168282, 0.026618987321853638, -0.012910731136798859, 0.009171522222459316, 0.003356790170073509, 0.012799601070582867, 0.015858953818678856, 0.009236892685294151, -0.012708081863820553, -0.014486167579889297, -0.007249620743095875, -0.012590414844453335, -0.0016138413920998573, -0.010929996147751808, -0.01622503064572811, -0.005723212845623493, -0.006066409405320883, 0.012230874970555305, -0.015636693686246872, 0.008197497576475143, -0.00698813796043396, 0.005582665558904409, 0.003549634013324976, 0.006399800535291433, 0.028423219919204712, 0.0033862071577459574, 0.02821403369307518, 0.0375489816069603, 0.01289112027734518, 0.0015492878155782819, -0.015911251306533813, 0.031168794259428978, 0.0013989349827170372, 0.00037853774847462773, 0.0020412029698491096, 0.036032382398843765, -0.03237161785364151, -0.023507338017225266, 0.006792025174945593, -0.03739209473133087, 0.03046279028058052, 0.007916403003036976, -0.012172041460871696, -0.018160006031394005, -0.0012493992689996958, -0.0046021039597690105, 0.005206783767789602, -0.006579570472240448, 0.0033829384483397007, -0.023834191262722015, -0.023324299603700638, 0.004092211835086346, -0.018748342990875244, 0.034568075090646744, -0.02583453804254532, -0.011570630595088005, -0.008053681813180447, 0.0035136800725013018, 0.04623022302985191, -0.03085501492023468, -0.00726923206821084, -0.0323193185031414, -0.005246005952358246, -0.00814520101994276, -0.02155928686261177, -0.015872027724981308, 0.010969218797981739, 0.013008788228034973, 0.006844322197139263, 0.021938437595963478, -0.023651152849197388, 0.012668859213590622, 0.008073292672634125, -0.0029237086419016123, -0.016107363626360893, 0.010962681844830513, -0.010106324218213558, -0.0022144357208162546, -0.014394648373126984, 0.01865682378411293, 0.010413567535579205, 0.025926057249307632, -0.009112688712775707, 0.03663379326462746, 0.008589722216129303, 0.00441579706966877, -0.015100653283298016, -0.020081907510757446, -0.020552577450871468, 0.002189921448007226, -0.008478592149913311, -0.009818692691624165, 0.01245967298746109, -0.001003441633656621, -0.01570206508040428, 0.009419931098818779, -0.0066089872270822525, -0.004255638457834721, -0.005157755687832832, 0.009727174416184425, -0.0058866399340331554, 0.014433871023356915, 0.015741286799311638, -0.006053335499018431, -0.008589722216129303, -0.01779392920434475, -0.02478860504925251, 0.020722541958093643, 0.005193709395825863, -0.007138490676879883, 0.03386206924915314, 0.01351867988705635, 0.0204479843378067, -0.003409086959436536, 0.010472401045262814, -0.02103632129728794, -0.01805541291832924, -0.00021919644495937973, -0.02782180905342102, -0.005592471454292536, -0.028789296746253967, 0.003647690173238516, -0.00936109758913517, -0.023023592308163643, 0.004102017264813185, -0.005677453242242336, 0.020984023809432983, -0.013329104520380497, 0.00955720990896225, -0.004546538460999727, -0.0126950079575181, 0.011158794164657593, -0.0094003202393651, 0.030933458358049393, -0.00771375373005867, 0.004951837472617626, -0.014512316323816776, -0.019925016909837723, 0.023716524243354797, 0.00081182352732867, 0.02196458727121353, 0.01314606610685587, -0.004144508391618729, -0.019271310418844223, -0.007301917765289545, -0.01110649760812521, 0.012309320271015167, -0.030541233718395233, 0.02695891447365284, 0.020918654277920723, -0.005690527614206076, -0.00426871282979846, -0.0098906010389328, -0.021533139050006866, -0.0025151411537081003, -0.03046279028058052, 0.002067351248115301, 0.02050027996301651, 0.004729576874524355, 0.006527273450046778, 0.01714022271335125, -0.005602276884019375, 0.029965970665216446, -0.033652883023023605, -0.0017862569075077772, -0.02010805532336235, -0.0021850187331438065, -0.0038307283539325, 0.0054846093989908695, -0.012060911394655704, 0.014669205993413925, -0.012015151791274548, -0.02676280215382576, -0.012773453257977962, 0.019415125250816345, 0.011126109398901463, 0.00421968474984169, 0.005981427617371082, 0.028004847466945648, -0.012649248354136944, 0.004435408394783735, 0.0191144198179245, -0.016721848398447037, -0.011989003047347069, -0.019872721284627914, -0.017702409997582436, -0.008034070022404194, 0.013067621737718582, 0.016041992232203484, 0.014721502549946308, 0.0018777759978547692, 0.012910731136798859, 0.007530715316534042, 0.003768626134842634, -0.04356309771537781, -0.028004847466945648, -0.0008588088094256818, 0.013237585313618183, -0.018669897690415382, -0.014525390230119228, -0.004311203956604004, -0.0027161564212292433, 0.021925363689661026, -0.005585934035480022, -0.015492877922952175, 0.008811983279883862, 0.02980908192694187, -0.01925823464989662, 0.028449369594454765, 0.020317241549491882, -0.005281960126012564, -0.00985137838870287, 0.01727096363902092, -0.02069639228284359, -0.00807982962578535, 0.00042205018689855933, -4.583616100717336e-05, -0.021114766597747803, -0.010080176405608654, 0.015519026666879654, 0.006713580340147018, -0.002003614790737629, 0.009544136002659798, 0.037339795380830765, -0.01406779419630766, 0.003549634013324976, -0.0008261234033852816, -0.0011913826456293464, 0.03587549179792404, -0.050466250628232956, -0.022121476009488106, 0.027115805074572563, -0.01562361977994442, -0.029495302587747574, -0.01846071146428585, 0.01984657347202301, 0.004745919723063707, -0.006324624177068472, -0.028318626806139946, -0.016107363626360893, 0.03618926927447319, -0.013636347837746143, 0.00300705642439425, -0.0077987355180084705, -0.03158716857433319, -0.011792890727519989, 0.03237161785364151, -0.0026507857255637646, 0.01865682378411293, 0.0004036646569147706, 0.006086020730435848, 0.01523139514029026, 0.00949837639927864, -0.016774145886301994, 0.0026998138055205345, 0.0017143490258604288, -0.023899562656879425, -0.04536733031272888, -0.0006761791300959885, -0.0054323128424584866, -0.012021688744425774, -0.004906077869236469, 0.00962911732494831, -0.010433178395032883, -0.00363461603410542, -0.045445773750543594, -0.011760205961763859, 0.02306281588971615, 0.013329104520380497, 0.04476591944694519, 0.009171522222459316, 0.004772068001329899, 0.0029237086419016123, 0.0043471576645970345, 0.014643057249486446, -0.038934845477342606, 0.0015411163913086057, -0.01898367889225483, -0.0010557383066043258, 0.056584957987070084, -0.002936782781034708, -0.02444867603480816, 0.0021278192289173603, -0.005089116282761097, -0.0019464154029265046, 0.012806138023734093, 0.018696047365665436, 0.0034744576551020145, -0.02286670356988907, 0.007628771476447582, 0.009053855203092098, 0.0036215418949723244, 0.004977985750883818, 0.009080003015697002, -0.04871431365609169, 0.0015313108451664448, 0.029939822852611542, -0.002461210358887911, 0.0021735788322985172, 0.006354040931910276, 0.012590414844453335, -0.01621195673942566, -0.010439715348184109, -0.009014632552862167, -0.006288670469075441, 0.01937590353190899, -0.006510931067168713, -0.0007546240813098848, 0.00985137838870287, -0.014263907447457314, -0.0012101768516004086, 0.010779643431305885, -0.008190960623323917, -0.0037195980548858643, -0.013937053270637989, -0.01538828480988741, 0.017519371584057808, 0.00827594194561243, -0.01938897743821144, -0.04521043971180916, 0.006520736496895552, 0.02267059125006199, -0.02671050652861595, 3.2276828278554603e-05, -0.01699640601873398, 0.021075543016195297, -0.03462037071585655, -0.009772933088243008, -0.018225377425551414, -0.023559633642435074, 0.016525736078619957, -0.004111822694540024, -0.011851725168526173, -0.007040434516966343, 0.006383458152413368, -0.004572686739265919, -0.01904904842376709, 0.005902982782572508, 0.02695891447365284, -0.007445733528584242, -0.017440928146243095, -0.01653880998492241, 0.001053286949172616, 0.012087059207260609, 0.027403436601161957, 0.17927286028862, 0.00936109758913517, -0.008923113346099854, 0.03801965340971947, -0.009701025672256947, -0.0017699141753837466, 0.014629983343183994, -0.007321528624743223, -0.0037065239157527685, 0.02925996668636799, -0.0021245507523417473, -0.004723039921373129, 0.008347850292921066, -0.003856876865029335, 0.0038862936198711395, -0.010949607938528061, -0.05292419344186783, -0.013636347837746143, -0.006877007428556681, -0.0027668187394738197, -0.0008391975425183773, -0.014407722279429436, -0.0054813409224152565, 0.005987964570522308, 0.03527408093214035, -0.01681336760520935, 0.003177020465955138, 0.0050139399245381355, 0.0227359626442194, 0.009145373478531837, -0.00804714486002922, -0.01733633503317833, -0.011387592181563377, 0.00955720990896225, -0.01635577157139778, -0.012309320271015167, 0.006831247825175524, -0.0055369059555232525, 0.012708081863820553, -0.017833152785897255, -0.03276384249329567, 0.0204479843378067, 7.854709110688418e-05, -0.002640980063006282, -0.01479994785040617, 0.00324729410931468, 0.001982369227334857, -0.0013883122010156512, 0.005455192644149065, 0.02387341298162937, -0.015505951829254627, -0.009112688712775707, 0.007968699559569359, -0.0005544260493479669, 0.0030936726834625006, 0.0018892158987000585, 0.007962162606418133, -0.004729576874524355, 0.004448482301086187, -0.005677453242242336, -0.011139183305203915, 0.008615870960056782, -0.002408913802355528, 0.02196458727121353, -0.007530715316534042, 0.02412182278931141, -0.024344082921743393, 0.04241257160902023, -0.0055303690023720264, -0.023651152849197388, -0.009302264079451561, 0.001507613924331963, 0.005824537482112646, -0.004801484756171703, 0.015584397129714489, 0.0016383555484935641, 0.00804714486002922, 0.005105459131300449, -0.002436696318909526, 0.021873068064451218, 0.013754014857113361, -0.007308454718440771, -0.011668686755001545, -0.007857569493353367, -0.013950127176940441, -0.008269404992461205, 0.034646518528461456, -0.004428871441632509, -0.03247620910406113, 0.012904194183647633, 0.003598662093281746, -0.004412528593093157, -0.024801678955554962, -0.042020346969366074, -0.018290746957063675, -0.000815092062111944, -0.0007092730957083404, -0.002938417252153158, -0.022029956802725792, -0.02386033907532692, -0.017689336091279984, 0.09141451865434647, 0.02563842572271824, -0.024893198162317276, -0.008367461152374744, -0.019480496644973755, -0.006004307419061661, 0.029443005099892616, 0.013316030614078045, -0.0025331182405352592, -0.0019709293264895678, -0.05028321221470833, -0.004435408394783735, -0.017257889732718468, -0.024357156828045845, 0.009720636531710625, 0.004739382304251194, -0.01674799621105194, 0.0037195980548858643, -0.008988483808934689, 0.00285997218452394, -0.00037302207783795893, 0.007864106446504593, -0.011511796154081821, 0.0027357677463442087, -0.032528504729270935, -0.0200949814170599, 0.014577686786651611, -0.022958222776651382, -0.05119840428233147, 0.022892851382493973, -0.01872219517827034, 0.012407376430928707, -0.013727866113185883, -0.0057820468209683895, -0.011080349795520306, 0.013688644394278526, -0.007256158161908388, -0.018434563651680946, 0.025795314460992813, -0.012348542921245098, -0.0092238187789917, 0.020814061164855957, -0.010858088731765747, -0.0009960874449461699, -0.0013164043193683028, 0.012106670998036861, 0.01516602374613285, -0.028397072106599808, -0.0031361638102680445, 0.01971583068370819, 0.00305608450435102, -0.0033110305666923523, 0.0058997138403356075, 0.025037012994289398, -0.020278019830584526, -0.021833844482898712, -0.014656132087111473, -0.02821403369307518, 0.012825749814510345, -0.057264816015958786, -0.005762435495853424, 0.016107363626360893, -0.018839862197637558, -0.020683318376541138, -0.015937399119138718, -0.1647343933582306, 0.009243430569767952, -0.007667994126677513, -0.03663379326462746, 0.018473785370588303, 0.010374344885349274, 0.006576301530003548, -0.004785141907632351, -0.006370383780449629, 0.0005237834993749857, 0.00820403452962637, -0.008936187252402306, -0.02070946805179119, -0.026736654341220856, 0.0178070031106472, 0.004739382304251194, 0.05179981514811516, 0.00017874826153274626, 0.03864721208810806, 0.007524178363382816, 0.027534177526831627, -0.027272695675492287, 0.017192518338561058, -0.017571669071912766, 0.014486167579889297, -0.015649767592549324, -0.020617948845028877, 0.015335988253355026, 0.015741286799311638, -0.012603488750755787, -0.005046625155955553, 0.0027619160246104, 0.023258928209543228, 0.011557555757462978, 0.0009249967406503856, 0.007478418760001659, -0.0037882374599575996, -0.001256753457710147, -0.009446079842746258, 0.003239122685045004, 0.004968180321156979, 0.00785103254020214, 0.017114073038101196, 0.008040607906877995, 0.008334776386618614, 0.0035071431193500757, 0.010217455215752125, 3.235343683627434e-05, -0.002647517016157508, 0.010956144891679287, 0.02306281588971615, -0.028397072106599808, -0.0008637115824967623, -0.000764021126087755, -0.00038384911022149026, -0.0026148317847400904, 0.0066710892133414745, -0.009550672955811024, -0.028632408007979393, -0.012564266100525856, -0.003961469978094101, -0.012257023714482784, 0.0025609007570892572, 0.00726923206821084, 0.0018091367091983557, 0.0005818000645376742, 0.032136280089616776, 0.02425256371498108, -0.022500626742839813, 0.014211609959602356, -0.018146932125091553, 0.010505086742341518, 0.013355253264307976, 9.494086407357827e-05, 0.010197843424975872, 0.01456461288034916, 0.0030691586434841156, 0.01199554093182087, -0.0003603564982768148, 0.0042948611080646515, -0.017885448411107063, 0.013021862134337425, -0.04173271358013153, 0.0023370059207081795, -0.01538828480988741, -0.001552556292153895, -0.0026998138055205345, 0.006546884775161743, 0.00636057835072279, -0.008158274926245213, 0.04450443759560585, -0.040765225887298584, 0.0074391961097717285, 0.010727346874773502, 0.013531753793358803, 8.120277925627306e-06, 0.009249967522919178, -0.0008498203242197633, 0.013172214850783348, 0.002000346314162016, -0.019689682871103287, 0.002856703707948327, -0.027874106541275978, -0.013132992200553417, 0.021310878917574883, 0.0023794968146830797, 0.0077399020083248615, 0.005507489200681448, 0.03245006129145622, -0.021245507523417473, -0.013688644394278526, 0.011256850324571133, 0.004386380314826965, 0.015349062159657478, 0.00046862688031978905, 0.011570630595088005, 0.026514394208788872, 0.006327892653644085, -0.003765357658267021, 0.005661110859364271, 0.04837438836693764, -0.02341581881046295, -0.031874798238277435, 0.020068833604454994, 0.011668686755001545, -0.02341581881046295, -0.12331546097993851, -0.0322931706905365, 0.001936609740369022, 0.004164119716733694, 0.008844668045639992, 0.027403436601161957, 0.00807982962578535, 0.013950127176940441, -0.01800311543047428, 0.00726923206821084, -0.032005541026592255, -0.006955452263355255, -0.0336005873978138, -0.009707562625408173, -0.014708428643643856, -0.003353521693497896, -0.008360924199223518, 0.010191306471824646, -0.030149009078741074, 0.02729884348809719, 0.005242737475782633, -0.02433100901544094, 0.009321874938905239, -0.023625005036592484, -0.029652191326022148, -0.018277673050761223, -0.007720290683209896, 0.009661803022027016, 0.010825403034687042, 0.009759859181940556, 0.03380977362394333, -0.0028681436087936163, 0.009236892685294151, -0.009877527132630348, 0.011276462115347385, 0.0005103007424622774, -0.028266331180930138, -0.01512680109590292, 0.018813714385032654, 0.00305608450435102, -0.010256676934659481, 0.018565304577350616, 0.0062461793422698975, -0.004324277862906456, -0.0006504394114017487, -0.01406779419630766, -0.025363868102431297, 0.011551018804311752, 0.018225377425551414, -0.010583531111478806, -0.01774163357913494, -0.005357136484235525, -0.016329623758792877, -0.016238104552030563, -0.0034221610985696316, -0.00703389709815383, 0.01919286511838436, 0.025076236575841904, -0.010753495618700981, 0.021127840504050255, 0.003598662093281746, -0.009583358652889729, 0.020526429638266563, 0.030018268153071404, 0.02761262282729149, -0.006955452263355255, -0.0059454734437167645, -0.022905925288796425, 0.006981600541621447, -0.021454693749547005, -0.015244469046592712, 4.141852696193382e-05, -0.032737694680690765, 0.004667474422603846, -0.02214762382209301, 0.007831420749425888, -0.022905925288796425, -0.023703450337052345, 0.0008596259285695851, 0.02188614197075367, -0.02656668983399868, -0.0010541040683165193, -0.0018745075212791562, -0.013106844387948513, 0.01640806905925274, 0.0066057187505066395, 0.006733191665261984, -0.004690354224294424, 0.00093316804850474, -0.015806658193469048, -0.035300228744745255, 0.019075198099017143, -0.020343391224741936, -0.01473457645624876, -0.023350447416305542, 0.02478860504925251, -0.010040953755378723, -0.003064255928620696, 0.0243833065032959, 0.0050139399245381355, 0.00364115322008729, -0.009897137992084026, -0.031351830810308456, 0.029626043513417244, 0.002057545818388462, 0.014982985332608223, 0.017610890790820122, -0.015022207982838154, -0.0009478764841333032, -0.020251872017979622, -0.002031397307291627, 0.0126950079575181, -0.024291787296533585, 0.00014432644820772111, 0.002420353703200817, 0.0008240805473178625, -0.03046279028058052, 0.020251872017979622, 0.011943243443965912, 0.007517640944570303, 0.008557036519050598, -0.0011153891682624817, -0.002729230560362339, 0.01970275677740574, -0.0001373808045173064, 0.021310878917574883, -0.0031361638102680445, -0.015414432622492313, -0.005543443374335766, 0.023964932188391685, 0.011230702511966228, -0.014643057249486446, 0.010367807932198048, -0.03124723955988884, 0.0009715734049677849, 0.004517121706157923, -0.022239143028855324, -0.009256504476070404, 0.004879929590970278, 0.0007681068382225931, 0.02623983658850193, 0.0220953281968832, -0.015139875933527946, -0.016055066138505936, 0.0071711759082973, -0.004906077869236469, 0.0037457463331520557, 0.006036992650479078, -0.0026507857255637646, 0.004271981306374073, -0.011819039471447468, 0.005344062112271786, 0.026592837646603584, 0.012760378420352936, -0.0005409432924352586, -0.026357503607869148, -0.012518506497144699, 0.007138490676879883, 0.021899215877056122, 0.011335295625030994, -0.016787219792604446, -0.01714022271335125, 0.0010402126936241984, 0.0010639096144586802, 0.034175850450992584, 0.002278172178193927, 0.03333910554647446, -0.014041646383702755, -0.007556863594800234, -0.015309839509427547, 0.014041646383702755, -0.027011211961507797, 0.012910731136798859, -0.011904021725058556, 0.0031296266242861748, -0.00295802834443748, -0.005111996084451675, -0.0011783085064962506, 0.03673838451504707, 0.025220051407814026, -0.022644443437457085, -0.011139183305203915, 0.01635577157139778, -0.022396033629775047, -0.024017229676246643, 0.012897657230496407, 0.052767302840948105, -0.014002423733472824, 0.0077921985648572445, 0.020134204998612404, 0.014786873012781143, 0.008746611885726452, -0.008393609896302223, 0.014590760692954063, -0.00066719064489007, -0.005726481322199106, 0.013819385319948196, 0.009635655209422112, -0.019925016909837723, 0.022448331117630005, 0.021938437595963478, 0.013832460157573223, 0.029286114498972893, 0.014917614869773388, 0.0007681068382225931, -0.025154681876301765, -0.01832997053861618, -0.011374518275260925, -0.014120091684162617, -0.03749668598175049, -0.016251178458333015, 0.00955720990896225, -0.0001525999396108091, 0.01989886909723282, 0.005929131060838699, -2.4884311642381363e-05, -0.010603142902255058, 0.022657517343759537, -0.023376595228910446, -0.015741286799311638, 0.004095480311661959, 0.015492877922952175, 0.015074504539370537, 0.014290055260062218, 0.01720559224486351, 0.007164638955146074, 0.03132568299770355, 0.004066063091158867, 0.02281440608203411, -0.022827479988336563, 0.0013572610914707184, 0.01825152523815632, 0.01061621680855751, -0.02855396270751953, -0.004821096081286669, 0.002420353703200817, 0.005046625155955553, -0.03699987009167671, -0.02912922576069832, 0.03739209473133087, -0.0007795466808602214, 0.05122455209493637, 0.008367461152374744, -0.014773799106478691, -0.004196804948151112, 0.01674799621105194, -0.0033322761300951242, 0.017976967617869377, 0.0005188806680962443, 0.016865665093064308, -0.03284228593111038, 0.030881162732839584, -0.007772587239742279, -0.004507316276431084, -0.039327070116996765, 0.020591799169778824, 0.01792467199265957, 0.005942204967141151, -0.003533291397616267, 0.010949607938528061, -0.008576648309826851, 0.003961469978094101, -0.021781548857688904, 0.0289984829723835, -0.02274903655052185, -0.027586475014686584, -0.008759685792028904, 0.022029956802725792, -0.008805445395410061, 0.002101670950651169, -0.0336267352104187, -0.002701448043808341, -0.007609160151332617, -0.014590760692954063, -0.0037947744131088257, -0.01285189762711525, 0.010099787265062332, -0.013342178426682949, -0.018343044444918633, -0.014551538042724133, 0.017584742978215218, -0.014446944929659367, -0.0027733559254556894, -0.007576474919915199, -0.012963028624653816, -0.0051152645610272884, -0.010916922241449356, -0.007929476909339428, 0.006154660135507584, -0.011021515354514122],
+ # [-0.004517620895057917, 0.015371212735772133, 0.011116205714643002, -0.017698170617222786, -0.024998165667057037, 0.012166661210358143, 0.0012897989945486188, -0.015863198786973953, -0.016155729070305824, -0.031114738434553146, 0.012299629859626293, 0.028668109327554703, 0.017379043623805046, -0.011029776185750961, -0.009108374826610088, -0.016767386347055435, 0.014759555459022522, 0.005438430700451136, 0.006994167808443308, -0.03212530165910721, 0.010863564908504486, -0.022750990465283394, -0.008922218345105648, 0.006668393965810537, -0.003999041859060526, 0.002230554586276412, 0.006974222604185343, -0.023641882464289665, -0.02006501704454422, 0.0017751357518136501, 0.012485786341130733, -0.009979321621358395, -0.012399356812238693, -0.031327489763498306, -0.025663010776042938, 0.0011053045745939016, 0.017791248857975006, 0.001979575492441654, 0.016567934304475784, -0.007831872440874577, 0.03864078223705292, -0.009081780910491943, -0.015025493688881397, -0.001570696011185646, 0.01354953832924366, 0.012771669775247574, 0.0016679295804351568, -0.025064650923013687, -0.012525676749646664, -0.013323490507900715, 0.04076828807592392, 0.02705918624997139, -0.02800326608121395, -0.0003054130938835442, 0.0017069891327992082, 0.008782600052654743, -0.03207211568951607, 0.028056452050805092, 0.011309010908007622, -0.01386866346001625, 0.01331019401550293, 0.014453726820647717, -0.005312110297381878, -0.02022458054125309, -0.015477588400244713, -0.016700902953743935, -0.014334054663777351, 0.015318025834858418, 0.018522577360272408, -0.009966024197638035, 0.023455725982785225, 0.03842803090810776, -0.004753640852868557, 0.015530776232481003, -0.004909879062324762, -0.02779051475226879, 0.001751866191625595, 0.0003706510178744793, 0.0038993151392787695, 0.0006232920568436384, 0.016036057844758034, -0.029492517933249474, -0.012499082833528519, 0.03201892971992493, -0.004584105219691992, 0.031726397573947906, 0.004201819654554129, 0.00011936042574234307, -0.008869030512869358, -0.0010354958940297365, 0.011694621294736862, 0.014400539919734001, 0.01928050071001053, -0.00509603600949049, 0.02015809528529644, 0.0190411563962698, -0.0022571482695639133, 0.016408370807766914, -0.0206367839127779, -0.005481645930558443, -0.010105641558766365, 0.004969715140759945, -0.04201819375157356, -0.006751499604433775, -0.028668109327554703, 0.02652730979025364, -0.014653180725872517, -0.008829140104353428, 0.005262246821075678, -0.025436963886022568, 0.00504949688911438, 0.03877375274896622, 0.024599259719252586, -0.0064190770499408245, -0.012991068884730339, 0.013104092329740524, 0.02643423154950142, -0.014653180725872517, 0.012366114184260368, -0.02094261348247528, -0.0006486392812803388, -0.007506098598241806, 0.02671346627175808, -0.028694704174995422, 0.0035137049853801727, 0.005647857207804918, -0.017977405339479446, -0.006927683483809233, -0.004484378732740879, -0.017458826303482056, 0.009154913946986198, 0.03401346132159233, -0.011774402111768723, -0.005538157653063536, -0.00518578989431262, 0.006206326652318239, -0.02011820487678051, 0.017698170617222786, -0.00130725116468966, -0.014879227615892887, -0.006448994856327772, 0.029199985787272453, -0.01917412504553795, -0.0002233463164884597, -0.007978138513863087, 0.037603624165058136, -0.0012681916123256087, 0.0009507281356491148, -0.0101854233071208, -0.010165478102862835, 0.005122629459947348, -0.004068850539624691, -0.011827589944005013, 0.018230045214295387, -0.0037630219012498856, 0.015264838002622128, -0.001023861113935709, 0.004923176020383835, -0.022431865334510803, -0.02787029556930065, 0.029439330101013184, 0.0408746600151062, 0.012027043849229813, 0.021288331598043442, 0.005009606014937162, 0.02685973234474659, 0.006282784044742584, 0.012173308990895748, -0.0027890242636203766, -0.022897256538271904, -0.01999853365123272, 0.02658049762248993, -0.012106824666261673, 0.013709100894629955, 0.0005671957624144852, -0.002292052609845996, -0.011156097054481506, -0.013709100894629955, -0.007526043802499771, -0.03268377482891083, 0.010052453726530075, -0.011648082174360752, -0.0018299854127690196, -0.005814068019390106, -0.02018469013273716, -0.001466813962906599, 0.03382730484008789, 0.005285516381263733, -0.007293348200619221, -0.012219848111271858, 0.011069666594266891, 0.022445162758231163, -0.011122854426503181, -0.03284333646297455, -0.6556965708732605, 0.004983012098819017, 0.015810010954737663, -0.024439696222543716, 0.012199902907013893, 0.006169760134071112, 0.023296164348721504, 0.009454093873500824, 0.00331425154581666, 0.001815026393160224, 0.008456826210021973, 0.01377558521926403, 0.0043979487381875515, -0.009281233884394169, -0.001911428989842534, -0.003729779738932848, 0.00045167896314524114, 0.011269120499491692, -0.03816209360957146, 0.01307749841362238, 0.011628136038780212, 0.03438577428460121, 0.009301179088652134, 0.02588905766606331, -0.011767754331231117, 0.006296080537140369, -0.010630869306623936, -0.028216015547513962, -0.011927316896617413, 0.024346617981791496, -0.005973631050437689, 0.005358649417757988, 0.0274713896214962, 0.024838604032993317, 0.044331856071949005, -0.007951544597744942, -0.017831139266490936, 0.009959375485777855, 0.005474997218698263, 0.02755117043852806, -0.02784370258450508, -0.011880777776241302, 0.0017635009717196226, -0.015823308378458023, -0.011255823075771332, 0.030503081157803535, -0.010491251945495605, -0.002798996865749359, -0.012665294110774994, -0.00985964946448803, -0.002272107172757387, 0.019253907725214958, -0.022498350590467453, -0.013097443617880344, 0.02672676369547844, 0.006874495651572943, 0.012013746425509453, -0.00494644558057189, 0.004171901382505894, 0.015424400568008423, 0.01050454843789339, 0.010770486667752266, -0.031034957617521286, -0.015291431918740273, -0.04473076015710831, 0.01055773627012968, 0.001791756832972169, -0.004491026978939772, 0.015570666640996933, -0.013948445208370686, 0.021993067115545273, 0.023562101647257805, 0.01995864324271679, -0.002609516028314829, 0.007067300844937563, 0.006718257442116737, 0.037098344415426254, 0.008636334910988808, -0.014706368558108807, 0.0027823757845908403, 0.01922731287777424, -0.019160829484462738, -0.04321491718292236, -0.016647715121507645, 0.01978578232228756, 0.001816688571125269, -0.0096203051507473, -0.023562101647257805, -0.00984635204076767, -0.008616389706730843, 0.006212975364178419, 0.00981311034411192, 0.010949994437396526, -0.03560908883810043, 0.005644532851874828, 0.003030030522495508, -0.011860832571983337, 0.02010490745306015, -0.010484603233635426, 0.0074662077240645885, -0.006621854845434427, -0.018961375579237938, 0.007413019891828299, 0.022006364539265633, 0.036513280123472214, 0.010305095463991165, -0.007798630278557539, -0.0014119643019512296, 0.008403639309108257, -0.002795672509819269, 0.0012814884539693594, -0.006043439731001854, 0.011056370101869106, -0.02687302976846695, -0.02076975256204605, -0.023615289479494095, 0.016554636880755424, -0.003402343485504389, -0.023974305018782616, 0.0030084229074418545, 0.015889791771769524, 0.0003180867061018944, 0.01981237716972828, -0.03231145814061165, -0.0009050200460478663, 0.014201086014509201, 0.000771220016758889, -0.0002975180686917156, -0.0020543707069009542, -0.022804178297519684, 0.01014553289860487, 0.00700746476650238, 0.02755117043852806, -0.01019207201898098, 0.011754456907510757, -0.023854633793234825, 0.024519478902220726, -0.008091161958873272, 0.006947628688067198, -0.022458458319306374, 0.016169026494026184, -0.009174859151244164, -0.009926133789122105, -0.03502402827143669, -0.0021474489476531744, 0.015025493688881397, -0.02106228470802307, 0.004653913900256157, -0.03449214994907379, 0.014108007773756981, -0.011614839546382427, 2.9281741262821015e-06, -0.00695427693426609, 0.018482686951756477, 0.03358796238899231, 0.00019384382176212966, 0.01080372929573059, -0.04217775911092758, -0.018495984375476837, -0.03388049453496933, -0.005824041087180376, 0.023628586903214455, -0.016687605530023575, 0.0012415978126227856, -0.01928050071001053, -0.04704442247748375, -0.0009997604647651315, 0.009008647873997688, -0.044331856071949005, -0.0194400642067194, 0.024187056347727776, -0.010012563318014145, 0.02146119251847267, 0.04651254415512085, -0.003919260576367378, 0.008922218345105648, -0.017618387937545776, -0.011116205714643002, 0.023389242589473724, -0.004943121690303087, 0.017578497529029846, 0.02795007824897766, 0.01004580594599247, -0.009028593078255653, 0.03786956146359444, 0.0193070936948061, -0.008237428031861782, 0.02013150230050087, -0.037763189524412155, 0.008144349791109562, 0.025822574272751808, 0.01321711577475071, -0.01965281367301941, -0.03310927376151085, -0.003111473983153701, 0.014307461678981781, -0.00494644558057189, 0.008018028922379017, 0.0037397523410618305, 0.018695436418056488, 0.006568667013198137, 0.01292458362877369, -0.016793981194496155, 0.006425725296139717, 0.015570666640996933, -0.03279014676809311, 0.00019093512673862278, -0.028481952846050262, 0.013011014088988304, -0.003836154704913497, 0.011914019472897053, -0.007991435006260872, 0.004361382219940424, 0.00018002752040047199, -0.0015540748136118054, 0.030715832486748695, -0.007725497242063284, 0.025623120367527008, -0.006704960484057665, -0.022232411429286003, 0.0259422454982996, -0.008935514837503433, 0.03180617839097977, 0.003158013103529811, 0.006515479646623135, 0.00481015257537365, 0.0263411533087492, 0.029545705765485764, 0.00696092564612627, 0.010398173704743385, 0.0009922808967530727, 0.01362931914627552, 0.004720398690551519, 0.006382510531693697, 0.031327489763498306, 0.02781710773706436, 0.04693804681301117, -0.017432231456041336, 0.01345646008849144, -0.0035968106240034103, -0.010923400521278381, 0.030556268990039825, -0.0015341294929385185, -0.012731779366731644, 0.01912093721330166, 0.028162827715277672, 0.02789689041674137, 0.018402906134724617, -0.005531509406864643, -0.0076856063678860664, -0.009294531308114529, 0.006894441321492195, -0.02002512663602829, 0.011182690039277077, -0.004524269141256809, -0.013270303606987, 0.0070805978029966354, 0.013183873146772385, 0.03326883539557457, 0.012538974173367023, 0.014865931123495102, 0.004354733973741531, 0.0011792685836553574, -0.0030167335644364357, 0.01004580594599247, 0.002888750983402133, 0.024093978106975555, -0.014094711281359196, 0.023774851113557816, 0.013243709690868855, -0.012425950728356838, -0.03414643183350563, -0.004936472978442907, -0.03140727058053017, 0.012691888026893139, 0.016567934304475784, 0.0008052933262661099, 0.01945335976779461, 0.02010490745306015, 0.019067751243710518, -0.017644982784986496, -0.0137356948107481, 0.0011277430457994342, 0.023588694632053375, -0.0019130910513922572, -0.01297777146100998, -0.018416201695799828, 0.005069442093372345, 0.011528410017490387, 0.002907034009695053, -0.011262471787631512, 0.0019430090906098485, -0.007200269959867001, -0.017777951434254646, -0.01331019401550293, 0.016355182975530624, 0.04239050671458244, 0.028481952846050262, 0.015490884892642498, -0.008975405246019363, -0.014666477218270302, 0.006648448761552572, -0.024758823215961456, 0.011847535148262978, 0.04917192459106445, 0.008656280115246773, 0.01962622068822384, -0.02635445073246956, 0.007712200284004211, 0.004235061816871166, -0.016780683770775795, -0.023455725982785225, -0.011215932667255402, -0.00015353760682046413, -0.0040555535815656185, 0.012804911471903324, -0.01051784586161375, 0.015810010954737663, 0.023934414610266685, 0.009640250355005264, 0.010790431872010231, -0.044783949851989746, -0.00648888573050499, -0.004118714015930891, 0.021567566320300102, 0.016036057844758034, -0.006688339170068502, 0.00037397522828541696, -0.02061019092798233, 0.011408737860620022, -0.017871029675006866, -0.018761921674013138, 0.03837484493851662, -0.003377411747351289, -0.011521761305630207, 0.004597402177751064, 0.011794347316026688, -0.009221398271620274, 0.012917935848236084, 0.02668687328696251, 0.022963741794228554, -0.029944611713290215, -0.013057553209364414, -0.0033691013231873512, 0.0023352676071226597, -0.006143166217952967, 0.0038295064587146044, 0.016235511749982834, 0.017392341047525406, -0.018136966973543167, 0.016355182975530624, 0.007585879880934954, 0.011362198740243912, 0.008057919330894947, -0.018828406929969788, -0.008144349791109562, 0.00523232901468873, 0.010351634584367275, -0.011681323871016502, 0.050927117466926575, -0.0076856063678860664, -0.028801079839468002, 0.0008269007666967809, 0.010777135379612446, 0.002840549685060978, -0.017113106325268745, -0.0016646053409203887, -0.001441882224753499, 0.021727129817008972, -0.017671575769782066, 0.019147532060742378, 0.029572298750281334, 0.00971338339149952, 0.010298446752130985, 0.010983237065374851, -0.023788148537278175, -0.004514296539127827, -0.006036791484802961, 0.0032577398233115673, -0.003753049299120903, 0.001237442484125495, -0.005641208495944738, -0.02001182921230793, -0.03864078223705292, 0.001748541952110827, 0.015504182316362858, 0.006605233531445265, -0.02005172148346901, 0.0017551904311403632, -0.018429499119520187, -0.009427499957382679, -0.013529593124985695, -0.0201713927090168, 0.014094711281359196, 0.04231072589755058, -0.029545705765485764, -0.03271036595106125, -0.02045062743127346, 0.012871396727859974, 0.023841336369514465, 0.004231737460941076, 0.013522944413125515, -0.012166661210358143, 0.012273035943508148, -0.012153363786637783, -0.02604862116277218, 0.0018117022700607777, -0.04824114218354225, -0.03340180590748787, -0.015185056254267693, 0.007871762849390507, -0.004720398690551519, -0.024226946756243706, -0.02059689350426197, -0.025277402251958847, -0.00017358684272039682, 0.016966840252280235, -0.005252274218946695, 0.018017295747995377, 3.4748532925732434e-05, 0.009287882596254349, 0.002155759371817112, -0.01027185283601284, -0.025569932535290718, -0.00961365643888712, -0.006123221013695002, -0.0061531392857432365, -0.00019425935170147568, 0.008496717549860477, -0.016913652420043945, 0.00537527073174715, 0.0012557257432490587, 0.02014479972422123, -0.02802985906600952, 0.016328589990735054, -0.028960641473531723, 0.00951392948627472, -0.00033117583370767534, 0.017285965383052826, 0.017059918493032455, 0.00951392948627472, 0.036672841757535934, 0.025729496031999588, 0.037417467683553696, -0.0021042339503765106, -0.01913423463702202, 0.02755117043852806, 0.0013770598452538252, 0.005016254261136055, 0.00042446187580935657, 0.007379777729511261, -0.023987602442502975, -0.0011377157643437386, 0.006608557887375355, -0.0263411533087492, 0.025729496031999588, -0.008516662754118443, 0.014413836412131786, -0.024240244179964066, 0.008084513247013092, 0.015690337866544724, 0.0013296897523105145, -0.02119525335729122, -0.007399723399430513, -0.0030782315880060196, -0.014161195605993271, 0.009274586103856564, -0.01959962584078312, 0.006568667013198137, -0.024000899866223335, -0.011162744835019112, -0.005388567689806223, -0.004018987063318491, 0.023242976516485214, -0.0012981095351278782, -0.009779867716133595, -0.030396707355976105, -0.006159787531942129, 0.017113106325268745, -0.00686784740537405, 0.004886609502136707, -0.008789248764514923, 0.02015809528529644, 0.0009922808967530727, 0.017591794952750206, -0.007911654189229012, 0.014839337207376957, -0.008948811329901218, 0.007765388116240501, 0.008476771414279938, -0.0036533225793391466, -0.013389975763857365, -0.006246217526495457, -0.030901988968253136, 0.02068997174501419, 0.013197170570492744, 0.014174492098391056, -0.017538607120513916, 0.01994534581899643, 0.024226946756243706, 0.0006827125325798988, 0.009361015632748604, -0.014294164255261421, -0.022498350590467453, -0.023708367720246315, 0.02651401236653328, -0.0016596189234405756, 0.025982137769460678, -0.024373212829232216, -0.007931599393486977, 0.005611290689557791, -0.016634417697787285, 0.00026427581906318665, -0.0003334612410981208, 0.009733328595757484, -0.023096710443496704, -0.004075498785823584, -0.009540523402392864, -0.00967349298298359, -0.019094344228506088, 0.002338591730222106, -0.02610180899500847, -0.0020593570079654455, -0.01929379813373089, 0.0006158125470392406, 0.01003915723413229, 0.008097810670733452, 0.029120204970240593, 0.012239793315529823, -0.004896582569926977, -0.024772118777036667, -0.02643423154950142, -0.008536607958376408, -0.005651181098073721, -0.017099808901548386, -0.014440430328249931, -0.010670759715139866, -0.013330139219760895, -0.008051271550357342, 0.029439330101013184, -0.0012000449933111668, 0.004278276581317186, -0.02011820487678051, -0.018655546009540558, -0.014919118955731392, -0.028348984196782112, 0.024572664871811867, -0.016754090785980225, 0.028322391211986542, 0.0030499757267534733, 0.007087246049195528, -0.02723204530775547, 0.009886243380606174, 0.043534040451049805, 0.0015947965439409018, 0.022205818444490433, 0.0213016290217638, -0.007818575017154217, -0.02139470726251602, 0.003975772298872471, -0.003433923702687025, 0.015331322327256203, -0.04172566160559654, 0.02591565251350403, -0.006901089567691088, -0.014786149375140667, -0.004168577026575804, -0.005192438140511513, -0.02725863829255104, 0.0029402764048427343, -0.025516744703054428, 0.007885060273110867, 0.018921485170722008, -0.009301179088652134, 0.0016321941511705518, 0.03302949294447899, -0.011395440436899662, 0.018655546009540558, -0.030210550874471664, -0.007532692048698664, -0.002837225329130888, -0.003972447942942381, -0.012239793315529823, 0.011149448342621326, -0.00130725116468966, 0.022657912224531174, -0.01392185129225254, -0.03140727058053017, 0.008310561068356037, 0.03348158672451973, 0.011023127473890781, 0.0002051669725915417, 0.011202636174857616, 0.02741820178925991, -0.03321564942598343, -0.024226946756243706, 0.017990700900554657, 0.006246217526495457, 0.01330354530364275, -0.030050987377762794, -0.011189338751137257, -0.00653210049495101, 0.016328589990735054, 0.012565568089485168, 0.037683404982089996, -0.014613290317356586, -0.009540523402392864, -0.003269374603405595, 0.0013670872431248426, -0.03550271689891815, -0.03345499187707901, -0.006881144363433123, 0.024918384850025177, -0.013948445208370686, -0.0067581478506326675, 0.0012956163845956326, 0.016953542828559875, 0.022684507071971893, 0.007459559477865696, -0.017405638471245766, 0.015158462338149548, 0.008144349791109562, -0.010730596259236336, 0.03276355564594269, -0.002024452667683363, -0.010817025788128376, -0.018043888732790947, 0.02009161189198494, -0.03233805298805237, 0.008064568042755127, 0.017325857654213905, -0.013190521858632565, -0.01921401545405388, -0.012804911471903324, 0.017379043623805046, 0.014240976423025131, -0.02787029556930065, -0.009972672909498215, 0.016222214326262474, 0.007233512122184038, 0.01947995461523533, 0.01009899377822876, -0.01994534581899643, 0.030396707355976105, -0.02721874788403511, -0.008463474921882153, 0.004657238256186247, -0.036726031452417374, -0.007905005477368832, -0.01311738882213831, 0.02022458054125309, 0.010664111003279686, -0.025676308199763298, -0.029944611713290215, -0.017006730660796165, 0.030636051669716835, -0.016740793362259865, 0.0014103021239861846, -0.012512380257248878, -0.011262471787631512, -0.001929712132550776, 0.016926949843764305, 0.02074315957725048, 0.018722031265497208, 0.0006926852511242032, 0.00960700772702694, 0.01348970178514719, 0.009055186994373798, -0.01934698596596718, -0.0008148505003191531, -0.0066850148141384125, -0.03917266055941582, -0.036726031452417374, -0.015663744881749153, -0.028801079839468002, -0.001751866191625595, -0.003560244105756283, -0.0010014225263148546, -0.01957303285598755, 0.022711100056767464, -0.04669870063662529, -0.00258957059122622, 0.014786149375140667, 0.012711833231151104, 0.030901988968253136, 0.03292311728000641, -0.0002725863887462765, 0.030901988968253136, -0.010577681474387646, 0.018150264397263527, -0.037231311202049255, 0.008057919330894947, -0.016222214326262474, -0.006149814929813147, 0.018602358177304268, 0.0074462625198066235, -0.015158462338149548, -0.006927683483809233, -0.005970306694507599, -0.029492517933249474, 0.009646899066865444, 0.028614923357963562, -0.0028355633839964867, -0.024014195427298546, -0.012578864581882954, 0.01947995461523533, 0.02007831446826458, 0.004973039496690035, 0.005242301616817713, -0.044278666377067566, -0.0027823757845908403, 0.01369580440223217, -0.016754090785980225, -0.018296530470252037, 0.022790880873799324, 0.007486152928322554, 0.0006257852073758841, -0.028721297159790993, -0.005415161140263081, 0.004574132617563009, 0.022099442780017853, -0.02135481685400009, 0.03244442865252495, -0.001522494712844491, -0.001680395333096385, 0.018136966973543167, -0.004869988653808832, -0.005697720218449831, -0.021953176707029343, -0.0061032758094370365, -0.006571991369128227, 0.005451727658510208, -0.01035828236490488, -0.007712200284004211, -0.03321564942598343, -0.009414203464984894, 0.002749133389443159, -0.01966611109673977, -0.009321125224232674, 0.009460742585361004, 0.01959962584078312, -0.025583229959011078, 0.000226878299145028, -0.007299996446818113, -0.014772852882742882, 0.017472121864557266, 0.016222214326262474, -0.008908920921385288, -0.016793981194496155, 0.007765388116240501, -0.015012197196483612, -0.016541339457035065, 0.005036199931055307, 0.007359832525253296, -0.004693804774433374, -0.02652730979025364, -0.021341519430279732, -0.012186606414616108, -0.011309010908007622, 0.003902639262378216, 0.19487932324409485, 0.017325857654213905, -0.004966391250491142, 0.03185936436057091, -0.003932557534426451, -0.005980279296636581, 0.02709907665848732, 0.0038095610216259956, -0.015570666640996933, 0.021647348999977112, -0.01958633027970791, -0.004075498785823584, 0.0009889567736536264, 0.003520353464409709, 0.01014553289860487, -0.015756823122501373, -0.042576663196086884, -0.02679324708878994, -0.0016936922911554575, 0.0003820780257228762, -0.012100175954401493, -0.01031839195638895, -0.01061092410236597, -0.004647265654057264, 0.036779217422008514, -0.02693951316177845, -0.0030134092085063457, 0.0010886834934353828, 0.014280867762863636, 0.024452993646264076, 0.0032228354830294847, -0.024918384850025177, 0.005225680768489838, 0.004514296539127827, -0.0195065476000309, 0.02035754919052124, -0.00696092564612627, -0.009779867716133595, 0.014879227615892887, 0.0007803616463206708, -0.0067082843743264675, 0.006568667013198137, 0.007931599393486977, 0.011953910812735558, 0.008875679224729538, 0.0038328305818140507, -0.010152180679142475, -0.007725497242063284, -0.0008559877751395106, 0.0027591062244027853, -0.0030383409466594458, -0.012286332435905933, -0.0013006028020754457, -0.0022155954502522945, -0.007858466356992722, 0.004707101732492447, 0.004338112659752369, 0.012618754990398884, -0.0036466741003096104, -0.010677408427000046, 0.004477730020880699, -0.004258331377059221, -0.007359832525253296, 0.02818942256271839, -0.018961375579237938, 0.018628953024744987, -0.022804178297519684, 0.0396779403090477, -0.005159195978194475, 0.010963291861116886, -0.00994607899338007, 0.016514746472239494, 0.005720989778637886, 0.0025413695257157087, 0.012745075859129429, -0.0015557369915768504, 0.004843394737690687, 0.0034173026215285063, 0.018323123455047607, 0.018615655601024628, -0.00700746476650238, -0.021687239408493042, -0.02797667123377323, 0.005850634537637234, -0.018123671412467957, -0.008257373236119747, 0.0402098149061203, -0.008888975717127323, -0.01978578232228756, 0.007765388116240501, 0.004627319984138012, 0.0029635459650307894, -0.012000449933111668, -0.030981769785284996, 0.004268303979188204, 0.004268303979188204, 0.004411245696246624, 0.0020826265681535006, -0.029572298750281334, -0.04520944878458977, -0.018761921674013138, 0.04292238503694534, 0.03478468209505081, -0.01987886056303978, -0.006292756646871567, -0.0036001349799335003, -0.011461925692856312, 0.03308267891407013, 0.018017295747995377, 0.003656646702438593, 0.010584330186247826, -0.030210550874471664, -0.003044989425688982, -0.017232779413461685, -0.0274713896214962, -0.005202411208301783, -0.005195762496441603, -0.018655546009540558, 0.024891791865229607, -0.006452319212257862, 0.01023196242749691, -0.008217482827603817, 0.018150264397263527, -0.005122629459947348, 0.005976955406367779, -0.016009464859962463, -0.023070115596055984, 0.008902272209525108, -0.011594894342124462, -0.044172290712594986, 0.013655913062393665, -0.03858759626746178, 0.012651997618377209, 0.000521903217304498, -0.024333322420716286, 0.006688339170068502, 0.00041635907837189734, 0.006505507044494152, -0.017219481989741325, 0.007791981566697359, 0.010052453726530075, 0.001981237670406699, 0.03271036595106125, 0.012838154099881649, 0.004534241743385792, -0.0032594020012766123, 0.014493618160486221, 0.029306361451745033, -0.028668109327554703, -0.008908920921385288, 0.003570216940715909, -0.01959962584078312, 0.023149898275732994, -0.014214382506906986, 0.029199985787272453, -0.00522900465875864, -0.0028754540253430605, -0.014267570339143276, -0.018176857382059097, 0.005963658448308706, -0.044278666377067566, -0.0036998616997152567, 0.025476854294538498, 0.012645348906517029, -0.0006557032465934753, -0.025636417791247368, -0.1683918982744217, 0.02608851157128811, -0.007778684608638287, -0.04124697297811508, 0.028880860656499863, 0.012166661210358143, 0.01321046706289053, -0.002388455206528306, -0.016328589990735054, -9.162392962025478e-05, -0.03185936436057091, -0.006801363080739975, -0.02075645700097084, -0.01921401545405388, 0.004720398690551519, -0.023442430421710014, 0.024546071887016296, 0.008310561068356037, 0.02671346627175808, 0.01336338184773922, 0.04685826599597931, -0.05406518280506134, 0.03260399028658867, -0.01335008442401886, 8.4975479694549e-05, -0.004118714015930891, 0.009480687789618969, -0.00022812488896306604, -0.006183057092130184, -0.029652079567313194, -0.004208467900753021, 0.0005838169017806649, 0.044597793370485306, 0.0028073072899132967, -0.011568300426006317, 0.013290248811244965, -0.004587429575622082, 0.001296447473578155, -0.008682874031364918, 0.016767386347055435, 0.0076856063678860664, 0.03893331438302994, 0.009733328595757484, 0.030237143859267235, 0.007612473797053099, 0.01027850154787302, 0.023136600852012634, -0.030636051669716835, 0.003570216940715909, -0.007459559477865696, 0.0023020252119749784, -0.02628796547651291, -0.003839479060843587, -0.025928949937224388, -0.015557369217276573, -0.00654207356274128, 0.015504182316362858, 0.010251907631754875, -0.02600873075425625, -0.02070326916873455, -0.00022355408873409033, -0.018735328689217567, 0.017817841842770576, 0.008097810670733452, 0.0004778572474606335, -0.0022604723926633596, -0.0008709467365406454, 0.013516295701265335, -0.0024416428059339523, 0.024546071887016296, -0.03196574002504349, 0.014054819941520691, -0.0040056901052594185, 0.02779051475226879, 0.01031839195638895, 0.02716556005179882, 0.009208100847899914, 0.02588905766606331, -0.016860464587807655, 0.010059102438390255, -0.015464290976524353, 0.02620818465948105, -0.011814293451607227, 0.008736060932278633, -0.0038660727441310883, 0.003003436606377363, 0.004314843099564314, 0.010790431872010231, -0.0025646390859037638, -0.016115838661789894, 0.03465171530842781, -0.03507721424102783, 0.007319941651076078, 0.025450261309742928, 0.011428683064877987, 0.008004732429981232, 0.006089978851377964, -0.005917119327932596, 0.010763837955892086, 0.021899988874793053, -0.01934698596596718, -0.01945335976779461, -0.03353477269411087, -0.006266162730753422, 0.011734511703252792, 0.008037974126636982, -0.0013911878922954202, -0.0035569199826568365, 0.03284333646297455, -0.00946739036589861, -0.010644165799021721, 0.013669210486114025, 0.015903089195489883, 0.021727129817008972, 0.0009781529661267996, 0.002902047708630562, 0.02034425176680088, -0.0013338449643924832, 0.017897622659802437, -0.006552046164870262, 0.049251705408096313, -0.03595481067895889, -0.017312560230493546, 0.0213016290217638, 0.0392790324985981, 0.008317208848893642, -0.11105568706989288, -0.025463558733463287, 0.023362647742033005, 0.008516662754118443, 0.002272107172757387, 0.011741160415112972, 0.002253824146464467, 0.018894890323281288, 0.0007633250206708908, 0.018801812082529068, -0.02656720019876957, -0.016262104734778404, 0.0011975518427789211, -0.012406004592776299, -0.009141616523265839, 0.012824857607483864, -0.005910470616072416, -0.001820012810640037, -0.029093610122799873, 0.030024394392967224, 0.009168210439383984, -0.023110007867217064, 0.009088428691029549, -0.017671575769782066, -0.010783783160150051, 0.010251907631754875, -0.005624587647616863, 0.02118195779621601, 0.015291431918740273, 0.0193070936948061, 0.012346168980002403, -0.0053918915800750256, -0.004554187413305044, -0.01986556500196457, 0.01913423463702202, -0.0029419385828077793, -0.04760289192199707, -0.02084953524172306, 0.04098103567957878, -0.0021258413325995207, 0.014865931123495102, 0.011395440436899662, 0.007306645158678293, -0.0021291656885296106, -0.007260105572640896, -0.02108887955546379, -0.029093610122799873, 0.014759555459022522, 0.017578497529029846, -0.014280867762863636, -0.015730230137705803, -0.0026510688476264477, -0.021886693313717842, -0.018363015726208687, 0.011608190834522247, -0.008443529717624187, 0.013948445208370686, 0.030210550874471664, -0.015118571929633617, 0.02596884034574032, -0.00995272770524025, -0.007599176838994026, 0.017206184566020966, 0.014653180725872517, 0.010983237065374851, 0.002388455206528306, -0.016674308106303215, -0.024625852704048157, -0.022152630612254143, -0.024014195427298546, -0.02107558213174343, -0.007526043802499771, -0.02136811427772045, 0.0010961629450321198, -0.018243342638015747, 0.01918742246925831, -0.007652364205569029, -0.017618387937545776, 0.0028538466431200504, 0.00019093512673862278, -0.022604724392294884, -0.0033009545877575874, -0.028481952846050262, -0.009460742585361004, 0.014932415448129177, 0.017565200105309486, 0.018495984375476837, -0.012771669775247574, 0.0012133418349549174, -0.03231145814061165, -0.004281600937247276, 0.012598809786140919, -0.00010196019138675183, -0.01989215798676014, -0.0006295249913819134, 0.01893478073179722, -0.021753722801804543, -0.008111107163131237, 0.013429866172373295, 0.002479871269315481, 0.005109332501888275, -0.01989215798676014, -0.03316245973110199, 0.012286332435905933, -0.002341916086152196, -0.002995125949382782, 0.011249175295233727, -0.015371212735772133, 0.007432965561747551, -0.01993204839527607, -0.02787029556930065, 0.00995272770524025, -0.017844436690211296, 0.01969270408153534, -0.005159195978194475, -0.004191846586763859, -0.03786956146359444, 0.028109639883041382, -0.007998083718121052, -0.007931599393486977, 0.010484603233635426, -0.004537566099315882, -0.0019363606115803123, 0.001999520929530263, -0.010531142354011536, 0.025184322148561478, -0.0058107441291213036, -0.005205735098570585, -0.017352450639009476, 0.022937146946787834, -0.016714200377464294, -0.0036965373437851667, 0.017950810492038727, -0.04278941452503204, 0.016355182975530624, -0.011501816101372242, 0.0008825815166346729, -0.013529593124985695, -0.0021873395889997482, 0.012678591534495354, 0.028295796364545822, 0.017259372398257256, -0.030104175209999084, -0.02112876996397972, 0.00014678527077194303, -0.024067383259534836, 0.011382143944501877, 0.012066934257745743, 0.0031430539675056934, -0.0009149927063845098, 0.0006482237367890775, 0.0010836970759555697, 0.028774484992027283, 0.02033095620572567, -0.013436514884233475, -0.016328589990735054, -0.006658421363681555, -0.011741160415112972, 0.011441979557275772, 0.009267937391996384, -0.023628586903214455, -0.008736060932278633, 0.017299262806773186, 0.005651181098073721, 0.01973259449005127, 0.001751866191625595, 0.006555370055139065, -0.019147532060742378, -0.018615655601024628, 0.0027640925254672766, 0.0194400642067194, -0.0203708466142416, -0.0008701157057657838, -0.01362931914627552, 0.01009899377822876, -0.013669210486114025, 0.02784370258450508, 0.0010886834934353828, 0.015703635290265083, -0.006342620123177767, -0.006229596212506294, -0.0019646165892481804, 0.018283233046531677, -0.016368480399250984, -0.013463107869029045, 0.01962622068822384, 0.05199086666107178, 0.009015296585857868, 0.016940247267484665, 0.036167558282613754, 0.003344169585034251, 0.006798038724809885, -0.006276135332882404, 0.0024931682273745537, -0.015996167436242104, 0.005544805899262428, 0.00981311034411192, 0.00518246553838253, -0.02070326916873455, 0.04239050671458244, 0.0194400642067194, 0.002110882429406047, 0.0026211508084088564, 0.012120122089982033, -0.008942163549363613, -0.021926583722233772, -0.03853440657258034, -0.006362565327435732, -0.023721665143966675, -0.03653987497091293, -0.018057186156511307, 0.02709907665848732, -0.007765388116240501, 0.006645124405622482, 0.02160745859146118, -0.0031746341846883297, -0.024532774463295937, 0.024160461500287056, -0.024452993646264076, -0.008616389706730843, -0.0106508145108819, -0.006113248411566019, -7.136694330256432e-05, 0.012791614979505539, 0.02615499682724476, 0.0036965373437851667, 0.030449895188212395, 0.007878411561250687, 0.001511691021732986, -0.03515699505805969, 0.01898796856403351, 0.003836154704913497, 0.00499630905687809, -0.024320024996995926, -0.01315727923065424, -0.008822491392493248, -0.014533508569002151, -0.02626137249171734, -0.007266754284501076, 0.0034405721817165613, -0.011036424897611141, 0.07398393750190735, 0.015663744881749153, 0.0014551791828125715, -0.004245034419000149, -0.002790686208754778, -0.003975772298872471, 0.01315727923065424, -0.009886243380606174, 0.01051119714975357, -0.023349350318312645, 0.029652079567313194, 0.017418935894966125, -0.00677476916462183, -0.03592821583151817, 0.012253090739250183, -0.0043946243822574615, -0.007000816520303488, 0.0013313518138602376, -0.008583147078752518, -0.0036965373437851667, 0.008310561068356037, -0.0012083555338904262, 0.004338112659752369, -0.018416201695799828, -0.000921641185414046, -0.007931599393486977, 0.00532873161137104, -0.017698170617222786, -0.002135814167559147, -0.028641516342759132, 0.0106508145108819, 0.012080230750143528, -0.02079634740948677, -0.005863931495696306, 0.02146119251847267, -0.0017369071720167994, -0.003839479060843587, -0.018203452229499817, 0.006794714368879795, 0.03441236913204193, -0.011747808195650578, 0.0025995434261858463, -0.016421668231487274, 0.0005996069521643221, -0.029226580634713173, 0.0015075356932356954, -0.011874129064381123, -0.012479137629270554, -0.017033325508236885]
+ # ]
+ # index = linear_search(1,metrics_embedding,examples_embedding)
+ # print(index)
+
+
+ # str1 = "n_bad_tup"
+ # str2 = "many bad tuples"
+ # print(editdistance.eval('n_bad_tup', 'many_bad_tuples')/max(len(str1), len(str2)))
diff --git a/swarms/tools/db_diag/prometheus.py b/swarms/tools/db_diag/prometheus.py
new file mode 100644
index 00000000..9ec1f237
--- /dev/null
+++ b/swarms/tools/db_diag/prometheus.py
@@ -0,0 +1,28 @@
+import requests
+import json
+import datetime
+import numpy as np
+
+def prometheus(url, params):
+ output = requests.get(url='http://8.131.229.55:9090/' + url, params=params)
+ output = output.json()
+ print(output)
+ #output = json.dumps(res.json())
+ output = output["data"]["result"][0]["values"]
+ output = np.array([float(value) for _, value in output])
+ print(output)
+ print(type(output))
+
+if __name__ == '__main__':
+ #prometheus('api/v1/query_range', {'query': '100 - (avg(irate(node_cpu_seconds_total{instance=~"123.56.63.105:9100",mode="idle"}[1m])) * 100)', 'start': '1684412385', 'end': '1684412485', 'step': '3'})
+ start_timestamp_str = "2023-05-19 22:21:30"
+ dt = datetime.datetime.strptime(start_timestamp_str, "%Y-%m-%d %H:%M:%S")
+ timestamp = dt.timestamp()
+ start_time = timestamp
+
+ end_timestamp_str = "2023-05-19 22:23:30"
+ dt = datetime.datetime.strptime(end_timestamp_str, "%Y-%m-%d %H:%M:%S")
+ timestamp = dt.timestamp()
+ end_time = timestamp
+
+ prometheus('api/v1/query_range', {'query': "node_memory_MemTotal_bytes{instance=~\"123.56.63.105:9100\"} - (node_memory_Cached_bytes{instance=~\"123.56.63.105:9100\"} + node_memory_Buffers_bytes{instance=~\"123.56.63.105:9100\"} + node_memory_MemFree_bytes{instance=~\"123.56.63.105:9100\"})", 'start': start_time, 'end': end_time, 'step': '3'})
\ No newline at end of file
diff --git a/swarms/tools/db_diag/readme.md b/swarms/tools/db_diag/readme.md
new file mode 100644
index 00000000..f8118990
--- /dev/null
+++ b/swarms/tools/db_diag/readme.md
@@ -0,0 +1,24 @@
+# db_diag Tool
+
+Contributor: [Xuanhe Zhou](https://github.com/zhouxh19)
+
+### API Functions
+
+- *obtain_start_and_end_time_of_anomaly*: fetch the time period of an anomaly
+- *whether_is_abnormal_metric*: examine whether the values of the input metric appear to be abnormal. //todo: add classic anomaly detection algorithms
+- *xxx_diagnosis_agent*: diagnose the root causes of the abnormal metrics in specific region (e.g., memory/cpu problems)
+
+
+### Setup
+
+1. Follow the steps in [main readme](https://github.com/OpenBMB/BMTools/blob/main/README.md)
+
+2. Configure the adopted LLM model in the 84th line of ../../agent/singletool.py, e.g.,
+
+```bash
+ self.llm = OpenAI(model_name="gpt-3.5-turbo", temperature=0.0, openai_api_key=key)
+```
+
+3. Modify the settings in *config.ini*, and rename *config.ini* into *my_config.ini*
+
+4. Modify and run the test.py script to test the tool
\ No newline at end of file
diff --git a/swarms/tools/db_diag/root_causes_dbmind.jsonl b/swarms/tools/db_diag/root_causes_dbmind.jsonl
new file mode 100644
index 00000000..c0553157
--- /dev/null
+++ b/swarms/tools/db_diag/root_causes_dbmind.jsonl
@@ -0,0 +1,147 @@
+[
+ {
+ "cause_name": "large_table",
+ "desc": "This function checks whether the query related table is a root cause of performance issues. It considers two aspects: the size of the table and the number of tuples in the table. If the number of live and dead tuples in a table exceeds the tuple_number_threshold or the table size exceeds the table_total_size_threshold, then the table is considered large and added to the detail dictionary. If there are any large tables, then they are considered a root cause of performance issues. If there are no large tables, then they are not a root cause of performance issues.",
+ "metrics": "- live_tuples\n- dead_tuples\n- table_size"
+ },
+ {
+ "cause_name": "many_dead_tuples",
+ "desc": "This function checks whether the query related table has too many dead tuples, which can cause bloat-table and affect query performance. If the table structure is not available or the insert type is not supported, it is not a root cause. The function then collects information about the dead rate, live tuples, dead tuples, and table size of each table and checks if they exceed certain thresholds. If the dead rate of a table exceeds the dead rate threshold, it is considered a root cause. The function also provides suggestions to clean up dead tuples in time to avoid affecting query performance.",
+ "metrics": "- dead_rate\n- live_tuples\n- dead_tuples\n- table_size"
+ },
+ {
+ "cause_name": "heavy_scan_operator",
+ "desc": "This function diagnoses whether there is a heavy scan operator in the query related table. If the table has too many fetched tuples and the hit rate is low, it is considered a root cause. Additionally, if there are expensive sequential scans, index scans, or heap scans, it is also considered a root cause. The function provides details on the heavy scan operator, including the number of fetched tuples, returned rows, and hit rate. It also suggests adjustments to avoid large scans. If there are expensive scans, the function suggests confirming whether the inner table has an index, avoiding count operations, and considering the index filter ability. If there is a heavy scan operator, the function provides details on the operator and suggests adjustments according to business needs. If there are no suggestions, it suggests avoiding heavy scans.",
+ "metrics": "- hit_rate\n- n_tuples_fetched\n- n_tuples_returned\n- n_returned_rows\n- total_cost\n- table\n- name\n- parent\n- cost rate"
+ },
+ {
+ "cause_name": "abnormal_plan_time",
+ "desc": "This function checks for abnormal execution plan generation in slow SQL instances. It calculates the ratio of plan time to execution time and compares it to the plan time rate threshold. If the ratio is greater than or equal to the threshold and the number of hard parses is greater than the number of soft parses, it indicates abnormal plan time. This could be due to the lack of support for PBE in the business. The function suggests modifying the business to support PBE. If the condition is met, it is a root cause of the issue. If not, it is not a root cause.",
+ "metrics": "- n_soft_parse\n- n_hard_parse\n- plan_time\n- exc_time"
+ },
+ {
+ "cause_name": "unused_and_redundant_index",
+ "desc": "This function checks for the presence of unused or redundant indexes in a table that is related to a query. Unused indexes are those that have not been used for a long time, while redundant indexes are those that are not needed for the query. If the table is not large or there are no unused or redundant indexes, or if the query involves a select operation, then the function is not a root cause. Otherwise, the function identifies the unused and redundant indexes and provides suggestions to clean them up. The threshold for identifying unused indexes is not specified in the code.",
+ "metrics": "- Large table\n- Unused index info\n- Redundant index info\n- Select type"
+ },
+ {
+ "cause_name": "update_large_data",
+ "desc": "This function checks whether a table has a large number of tuples updated. If the number of updated tuples is greater than or equal to the specified threshold, it is considered a root cause. The function then provides details on the number of updated tuples and suggests making adjustments to the business. If the number of updated tuples is not above the threshold or if there is no plan parse information available, it is not a root cause.",
+ "metrics": "- n_tuples_updated\n- updated_tuples_threshold\n- live_tuples\n- rows"
+ },
+ {
+ "cause_name": "insert_large_data",
+ "desc": "This function checks whether a query related table has a large number of inserted tuples. If the number of inserted tuples is greater than or equal to the specified threshold (stored in the variable \"inserted_tuples_threshold\"), it is considered a root cause. The function then calculates the ratio of inserted tuples to live tuples and provides a suggestion to make adjustments to the business. If the number of inserted tuples is less than the threshold, the function checks for insert operators and if any of them have a large number of rows inserted (greater than the threshold), it is considered a root cause and a suggestion is provided. If neither of these conditions are met, it is not a root cause.",
+ "metrics": "- n_tuples_inserted\n- inserted_tuples_threshold\n- live_tuples\n- table_structure\n- plan_parse_info\n- rows"
+ },
+ {
+ "cause_name": "delete_large_data",
+ "desc": "This function checks whether a table has too many tuples to be deleted. If the number of deleted tuples is greater than or equal to the specified threshold, it is considered a root cause and will be deleted in the future. If the number of deleted tuples is less than the threshold, the function checks whether there is a delete operation on a table with a large number of tuples. If so, it is also considered a root cause and the suggestion is to make adjustments to the business. If neither condition is met, it is not a root cause.",
+ "metrics": "- n_tuples_deleted\n- deleted_tuples_threshold\n- live_tuples\n- deleted_tuples_rate\n- rows"
+ },
+ {
+ "cause_name": "too_many_index",
+ "desc": "This function checks for the presence of too many indexes in a table, which can negatively impact the performance of insert and update operations. If the table structure is not available or the select type is not appropriate, this is not a root cause. If there are a large number of indexes in the table, the function identifies the related tables and provides details on the number of indexes. In this case, the function is a root cause and suggests that too many indexes can slow down insert, delete, and update statements. The threshold for the number of indexes is determined by the variable \"index_number_threshold\".",
+ "metrics": "- index_number_threshold\n- len(table.index)"
+ },
+ {
+ "cause_name": "disk_spill",
+ "desc": "This is a function that checks whether there is a possibility of disk spill during the execution of SQL. If the plan parse information is not available, it checks whether the sort spill count or hash spill count exceeds the sort rate threshold. If the plan parse information is available, it calculates the total cost of the plan and checks whether the cost rate of the sort or hash operators exceeds the cost rate threshold. If abnormal operator details are found and the sort or hash spill count is greater than 0, it indicates that the SORT/HASH operation may spill to disk. The suggestion is to analyze whether the business needs to adjust the size of the work_mem parameter. If disk spill is detected, it is a root cause, otherwise it is not a root cause.",
+ "metrics": "1. sort_spill_count\n2. hash_spill_count\n3. sort_rate_threshold\n4. cost_rate_threshold\n5. plan_total_cost\n6. rows\n7. _get_operator_cost"
+ },
+ {
+ "cause_name": "vacuum_event",
+ "desc": "This function checks whether the query related table has undergone a vacuum operation, which could potentially be a root cause of slow SQL queries. It first retrieves the probable time interval for an analyze operation from the monitoring module. Then, it creates a dictionary of vacuum information for each table in the table structure, including the schema name, table name, and the time of the last vacuum operation. The function then checks whether the vacuum time falls within the time range of the slow SQL query execution or whether the slow SQL query execution starts within a certain time interval after the vacuum operation. If any table meets these conditions, it is considered a root cause and added to the detail dictionary. If no table meets these conditions, it is not a root cause.",
+ "metrics": "- table_structure\n- slow_sql_param\n- vacuum_delay\n- start_at\n- duration_time"
+ },
+ {
+ "cause_name": "analyze_event",
+ "desc": "This function checks whether the query related table has undergone an analyzing operation. If the table structure is not available, it is not a root cause. Otherwise, it calculates the probable time interval for the analyzing operation and creates a dictionary of table names and their corresponding analyze times. It then checks whether the analyze time falls within the slow SQL instance's start and end time or within the probable time interval before or after the slow SQL instance. If any table satisfies these conditions, it is considered a root cause and added to the 'analyze' key in the detail dictionary. Finally, the function returns True if there is at least one table in the 'analyze' key, otherwise it is not a root cause.",
+ "metrics": "- table_structure\n- slow_sql_param\n- analyze_delay\n- start_at\n- duration_time"
+ },
+ {
+ "cause_name": "workload_contention",
+ "desc": "This code is designed to diagnose workload contention issues in a database system. The function checks for several potential causes of contention, including abnormal CPU and memory resource usage, insufficient space in the database data directory, and excessive connections or thread pool usage. If any of these issues are detected, the function provides a detailed report of the problem and suggests potential solutions. If no issues are found, the function returns \"not a root cause\".",
+ "metrics": "- process_used_memory\n- max_process_memory\n- dynamic_used_memory\n- max_dynamic_memory\n- other_used_memory\n- tps\n- max_connections\n- db_cpu_usage\n- db_mem_usage\n- disk_usage\n- connection\n- thread_pool_rate"
+ },
+ {
+ "cause_name": "cpu_resource_contention",
+ "desc": "This function checks whether there is contention for CPU resources by other processes outside the database. If the maximum CPU usage of these processes exceeds the threshold specified in the variable \"cpu_usage_threshold\", the function sets the \"system_cpu_contention\" key in the \"detail\" dictionary to indicate the current user CPU usage. If this key is set, the function suggests handling exception processes in the system as a solution. If the \"system_cpu_contention\" key is not set, this issue is not a root cause.",
+ "metrics": "- user_cpu_usage\n- system_cpu_contention"
+ },
+ {
+ "cause_name": "io_resource_contention",
+ "desc": "This piece of code checks for IO resource contention in the system. It does so by iterating through the IO utils of each device and checking if the maximum IO utils exceed the disk_ioutils_threshold. If there is contention, the function provides details on the device and the IO utils that exceed the threshold. It also suggests two possible causes of contention: competing processes outside the database and long transactions within the database. If there is contention, it is considered a root cause of the issue. If there is no contention, it is not a root cause.",
+ "metrics": "- IO utilization (IO-Utils)"
+ },
+ {
+ "cause_name": "memory_resource_contention",
+ "desc": "This function checks whether there is contention for memory resources by other processes outside the database. If the maximum system memory usage exceeds the detection threshold specified in the variable \"mem_usage_threshold\", the function sets the \"system_mem_contention\" key in the \"detail\" dictionary to indicate that the current system memory usage is significant. If the \"system_mem_contention\" key exists in the \"detail\" dictionary, the function suggests checking for external processes that may be consuming resources. If the function returns True, it indicates that memory resource contention is a root cause of the problem. If the function returns False, it means that memory resource contention is not a root cause.",
+ "metrics": "- system_mem_usage\n- system_mem_contention"
+ },
+ {
+ "cause_name": "abnormal_network_status",
+ "desc": "This piece of code checks for abnormal network status by analyzing packet loss rate and bandwidth usage. It first checks the receive and transmit drop rates for each device and appends any abnormal rates to a list of details. It then checks the bandwidth usage for each device and appends any abnormal rates to the same list of details. If any abnormal rates are found, the function sets the detail and suggestion attributes accordingly and returns True, indicating that abnormal network status is a root cause. If no abnormal rates are found, the function returns False, indicating that abnormal network status is not a root cause. The thresholds for abnormal packet loss rate and network bandwidth usage are obtained from the monitoring module.",
+ "metrics": "- package_drop_rate_threshold\n- network_bandwidth_usage_threshold"
+ },
+ {
+ "cause_name": "os_resource_contention",
+ "desc": "This function checks for a potential issue where other processes outside the database may be occupying too many handle resources. If the system file descriptor (fds) occupation rate exceeds the detection threshold, it is considered a root cause and the function returns a boolean value of True. The system fds occupation rate is recorded in the diagnosis report along with a suggestion to determine whether the handle resource is occupied by the database or other processes. If the system fds occupation rate is below the tuple_number_threshold, it is not a root cause and the function returns a boolean value of False.",
+ "metrics": "- process_fds_rate\n- handler_occupation_threshold"
+ },
+ {
+ "cause_name": "database_wait_event",
+ "desc": "This function checks if there is a wait event in the database. If there is a wait event, it retrieves the wait status and wait event information and stores it in the detail dictionary. If the detail dictionary already has wait event information, it suggests that there is no root cause for the issue. Otherwise, it suggests that the wait event may be a root cause for the issue. If there is no wait event information, it suggests that there is no root cause for the issue. Therefore, the presence of wait event information is a root cause for the issue, while the absence of wait event information is not a root cause.",
+ "metrics": "- wait_event_info\n- wait_status\n- wait_event\n- detail\n- suggestion"
+ },
+ {
+ "cause_name": "lack_of_statistics",
+ "desc": "This piece of code checks for the presence of updated statistics in the business table. If the statistics have not been updated for a long time, it may lead to a serious decline in the execution plan. The code identifies abnormal tables by comparing the difference in tuples with the tuple_number_threshold. If any abnormal tables are found, the code suggests updating the statistics in a timely manner to help the planner choose the most suitable plan. If no abnormal tables are found, lack of statistics is not a root cause.",
+ "metrics": "- data_changed_delay\n- tuples_diff\n- schema_name\n- table_name"
+ },
+ {
+ "cause_name": "missing_index",
+ "desc": "This function checks for the presence of a required index using a workload-index-recommend interface. If the recommended index information is available, it indicates that a required index is missing and provides a suggestion for the recommended index. If the information is not available, it is not a root cause for the issue.",
+ "metrics": ""
+ },
+ {
+ "cause_name": "poor_join_performance",
+ "desc": "This code diagnoses poor performance in join operations. There are four main situations that can cause poor join performance: 1) when the GUC parameter 'enable_hashjoin' is set to 'off', which can result in the optimizer choosing NestLoop or other join operators even when HashJoin would be more suitable; 2) when the optimizer incorrectly chooses the NestLoop operator, even when 'set_hashjoin' is on; 3) when the join operation involves a large amount of data, which can lead to high execution costs; and 4) when the cost of the join operator is expensive. \n\nIn general, NestLoop is suitable when the inner table has a suitable index or when the tuple of the outer table is small (less than 10000), while HashJoin is suitable for tables with large amounts of data (more than 10000), although index will reduce HashJoin performance to a certain extent. Note that HashJoin requires high memory consumption.\n\nThe code checks for abnormal NestLoop, HashJoin, and MergeJoin operators, and identifies inappropriate join nodes based on the number of rows and cost rate. It also provides suggestions for optimization, such as setting 'enable_hashjoin' to 'on', optimizing SQL structure to reduce JOIN cost, and using temporary tables to filter data. \n\nIf the code finds any poor join performance, it is considered a root cause of the problem. Otherwise, it is not a root cause.",
+ "metrics": "- total_cost\n- cost_rate_threshold\n- nestloop_rows_threshold\n- large_join_threshold"
+ },
+ {
+ "cause_name": "complex_boolean_expression",
+ "desc": "This function checks for a specific issue in SQL queries that can lead to poor performance. The issue occurs when the \"in\" clause in a query is too long, which can cause the query to execute slowly. The function looks for instances of this issue in the SQL query and if it finds one where the length of the \"in\" clause exceeds a certain threshold, it returns a message indicating the issue and provides a suggestion for how to fix it. If the function does not find any instances of this issue, it is not a root cause of the performance problem.",
+ "metrics": "- slow_sql_instance.query\n- expression_number\n- len(expression)\n- monitoring.get_slow_sql_param('large_in_list_threshold')"
+ },
+ {
+ "cause_name": "string_matching",
+ "desc": "This function checks for certain conditions that may cause index columns to fail. These conditions include selecting columns using certain functions or regular expressions, and using the \"order by random()\" operation. If any of these conditions are detected, the function provides suggestions for how to rewrite the query to avoid index failure. If abnormal functions or regulations are detected, the function suggests avoiding using functions or expression operations on indexed columns or creating expression index for it. If the \"order by random()\" operation is detected, the function suggests confirming whether the scene requires this operation. If any of these conditions are detected, the function is a root cause of the index failure. Otherwise, it is not a root cause.",
+ "metrics": "- existing_functions\n- matching_results\n- seq_scan_properties\n- sort_operators"
+ },
+ {
+ "cause_name": "complex_execution_plan",
+ "desc": "This is a function that checks for complex execution plans in SQL statements. The function identifies two cases that may cause complex execution plans: (1) a large number of join or group operations, and (2) a very complex execution plan based on its height. If the function identifies either of these cases, it sets the corresponding details and suggestions for the user. If the number of join operators exceeds the \"complex_operator_threshold\" or the plan height exceeds the \"plan_height_threshold\", the function considers it a root cause of the problem. Otherwise, it is not a root cause.",
+ "metrics": "- complex_boolean_expression\n- plan_parse_info\n- plan_parse_info.height\n- join_operator\n- len(join_operator)"
+ },
+ {
+ "cause_name": "correlated_subquery",
+ "desc": "This piece of code checks for the presence of sub-queries in SQL execution that cannot be promoted. If the execution plan contains the keyword 'SubPlan' and the SQL structure does not support Sublink-Release, the user needs to rewrite the SQL. The function checks for the existence of such sub-queries and provides suggestions for rewriting the statement to support sublink-release. If there are subqueries that cannot be promoted, it is a root cause of the issue. Otherwise, it is not a root cause.",
+ "metrics": "- SubPlan\n- exists_subquery"
+ },
+ {
+ "cause_name": "poor_aggregation_performance",
+ "desc": "This code diagnoses poor aggregation performance in SQL queries. It identifies four potential root causes: (1) when the GUC parameter 'enable_hashagg' is set to 'off', resulting in a higher tendency to use the GroupAgg operator; (2) when the query includes scenarios like 'count(distinct col)', which makes HashAgg unavailable; (3) when the cost of the GroupAgg operator is expensive; and (4) when the cost of the HashAgg operator is expensive. The code checks for these conditions and provides detailed information and suggestions for each potential root cause. If none of these conditions are met, poor aggregation performance is not a root cause.",
+ "metrics": "- total_cost\n- cost_rate_threshold\n- enable_hashagg\n- GroupAggregate\n- HashAggregate\n- Group By Key\n- NDV"
+ },
+ {
+ "cause_name": "abnormal_sql_structure",
+ "desc": "This function checks for a specific issue in the SQL structure that can lead to poor performance. If the rewritten SQL information is present, it indicates that the SQL structure is abnormal and can be a root cause of performance issues. The function provides a detailed description of the issue and suggests a solution to address it. If the rewritten SQL information is not present, it is not a root cause of the performance issue.",
+ "metrics": "\n- rewritten_sql_info"
+ },
+ {
+ "cause_name": "timed_task_conflict",
+ "desc": "This is a function that analyzes various features related to SQL execution and returns a feature vector, system cause details, and suggestions. The features include lock contention, heavy scan operator, abnormal plan time, unused and redundant index, and many others. The function checks if each feature can be obtained and appends the feature value to the feature vector. If a feature cannot be obtained, it logs an error message and appends 0 to the feature vector. The function also sets the system cause and plan details to empty dictionaries. The \"timed_task_conflict\" feature is not a root cause of the issue being diagnosed.",
+ "metrics": "\n- lock_contention\n- many_dead_tuples\n- heavy_scan_operator\n- abnormal_plan_time\n- unused_and_redundant_index\n- update_large_data\n- insert_large_data\n- delete_large_data\n- too_many_index\n- disk_spill\n- vacuum_event\n- analyze_event\n- workload_contention\n- cpu_resource_contention\n- io_resource_contention\n- memory_resource_contention\n- abnormal_network_status\n- os_resource_contention\n- database_wait_event\n- lack_of_statistics\n- missing_index\n- poor_join_performance\n- complex_boolean_expression\n- string_matching\n- complex_execution_plan\n- correlated_subquery\n- poor_aggregation_performance\n- abnormal_sql_structure\n- timed_task_conflict"
+ }
+]
\ No newline at end of file
diff --git a/swarms/tools/db_diag/test.py b/swarms/tools/db_diag/test.py
new file mode 100644
index 00000000..6293aebe
--- /dev/null
+++ b/swarms/tools/db_diag/test.py
@@ -0,0 +1,63 @@
+
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+import datetime
+
+tool_name, tool_url = 'db_diag', "http://127.0.0.1:8079/tools/db_diag/"
+tool_name, tool_config = load_single_tools(tool_name, tool_url)
+print(tool_name, tool_config)
+stqa = STQuestionAnswerer()
+
+# langchain
+agent = stqa.load_tools(tool_name, tool_config, prompt_type="react-with-tool-description") # langchain: react-with-tool-description autogpt: autogpt
+
+# database on 123.56.63.105
+
+'''
+start_timestamp_str = "2023-05-19 22:21:30"
+dt = datetime.datetime.strptime(start_timestamp_str, "%Y-%m-%d %H:%M:%S")
+timestamp = dt.timestamp()
+start_time = timestamp
+
+end_timestamp_str = "2023-05-19 22:23:30"
+dt = datetime.datetime.strptime(end_timestamp_str, "%Y-%m-%d %H:%M:%S")
+timestamp = dt.timestamp()
+end_time = timestamp
+
+print(" ===== time period: ", start_time, end_time)
+'''
+
+#text = "The database performance is bad during {} to {}.".format(start_timestamp_str, end_timestamp_str) # trigger database diagnosis
+
+text = "Here is a database performance problem. Please help me to diagnose the causes and give some optimization suggestions."
+
+agent(""" {}
+
+First, obtain_start_and_end_time_of_anomaly and memorize the start and end time of the anomaly.
+
+Second, you need to diagnose the causes of the anomaly from the following two aspects:
+
+ - call the whether_is_abnormal_metric API and examine whether CPU usage is high (or abnormal). Next, if the CPU usage is high (or abnormal), cpu_diagnosis_agent and obtain the diagnosis results.
+
+ - call the whether_is_abnormal_metric API and examine whether memory usage is high (or abnormal). Next, if the memory usage is high (or abnormal), memory_diagnosis_agent and obtain the diagnosis results.
+
+Third, you need to match each cause with potential solutions cached in the vector database.
+
+Finally, list the above diagnosed causes and their matched solutions in easy-to-understand format using bullet points.
+
+================================
+A Demonstration example:
+
+Thought: I need to check whether the CPU usage is high or abnormal during the given time period.
+
+Action: whether_is_abnormal_metric
+
+Action Input: {{"start_time": xxxx, "end_time": xxxx, "metric_name": "cpu_usage"}}
+
+Note. 1) The first action must be obtain_start_and_end_time_of_anomaly;
+2) Do not use any image in the output;
+3) Give some optimization suggestions based on the diagnosis results.
+""".format(text))
+
+'''
+1) Action can only be one of the following API names: obtain_start_and_end_time_of_anomaly, whether_is_abnormal_metric, obtain_values_of_metrics, cpu_diagnosis_agent, memory_diagnosis_agent. Any other content in Action is unacceptable;
+'''
\ No newline at end of file
diff --git a/swarms/tools/db_diag/utils/data.py b/swarms/tools/db_diag/utils/data.py
new file mode 100644
index 00000000..5b0a123d
--- /dev/null
+++ b/swarms/tools/db_diag/utils/data.py
@@ -0,0 +1,27 @@
+import random
+
+
+def subsample_data(data, subsample_size):
+ """
+ Subsample data. Data is in the form of a tuple of lists.
+ """
+ inputs, outputs = data
+ assert len(inputs) == len(outputs)
+ indices = random.sample(range(len(inputs)), subsample_size)
+ inputs = [inputs[i] for i in indices]
+ outputs = [outputs[i] for i in indices]
+ return inputs, outputs
+
+
+def create_split(data, split_size):
+ """
+ Split data into two parts. Data is in the form of a tuple of lists.
+ """
+ inputs, outputs = data
+ assert len(inputs) == len(outputs)
+ indices = random.sample(range(len(inputs)), split_size)
+ inputs1 = [inputs[i] for i in indices]
+ outputs1 = [outputs[i] for i in indices]
+ inputs2 = [inputs[i] for i in range(len(inputs)) if i not in indices]
+ outputs2 = [outputs[i] for i in range(len(inputs)) if i not in indices]
+ return (inputs1, outputs1), (inputs2, outputs2)
diff --git a/swarms/tools/db_diag/utils/database.py b/swarms/tools/db_diag/utils/database.py
new file mode 100644
index 00000000..506d5198
--- /dev/null
+++ b/swarms/tools/db_diag/utils/database.py
@@ -0,0 +1,291 @@
+import psycopg2
+import pymysql
+import json
+import logging
+import os
+from enum import IntEnum
+import time
+
+class DataType(IntEnum):
+ VALUE = 0
+ TIME = 1
+ CHAR = 2
+
+AGGREGATE_CONSTRAINTS = {
+ DataType.VALUE.value: ['count', 'max', 'min', 'avg', 'sum'],
+ DataType.VALUE.CHAR: ['count', 'max', 'min'],
+ DataType.VALUE.TIME: ['count', 'max', 'min']
+}
+
+def transfer_field_type(database_type, server):
+ data_type = list()
+ if server == 'mysql':
+ data_type = [['int', 'tinyint', 'smallint', 'mediumint', 'bigint', 'float', 'double', 'decimal'],
+ ['date', 'time', 'year', 'datetime', 'timestamp']]
+ database_type = database_type.lower().split('(')[0]
+ elif server == 'postgresql':
+ data_type = [['integer', 'numeric'],
+ ['date']]
+ if database_type in data_type[0]:
+ return DataType.VALUE.value
+ elif database_type in data_type[1]:
+ return DataType.TIME.value
+ else:
+ return DataType.CHAR.value
+
+class DBArgs(object):
+
+ def __init__(self, dbtype, config, dbname=None):
+ self.dbtype = dbtype
+ if self.dbtype == 'mysql':
+ self.host = config['host']
+ self.port = config['port']
+ self.user = config['user']
+ self.password = config['password']
+ self.dbname = dbname if dbname else config['dbname']
+ self.driver = 'com.mysql.jdbc.Driver'
+ self.jdbc = 'jdbc:mysql://'
+ else:
+ self.host = config['host']
+ self.port = config['port']
+ self.user = config['user']
+ self.password = config['password']
+ self.dbname = dbname if dbname else config['dbname']
+ self.driver = 'org.postgresql.Driver'
+ self.jdbc = 'jdbc:postgresql://'
+
+
+class Database():
+ def __init__(self, args, timeout=-1):
+ self.args = args
+ self.conn = self.resetConn(timeout)
+
+ # self.schema = self.compute_table_schema()
+
+ def resetConn(self, timeout=-1):
+ if self.args.dbtype == 'mysql':
+ conn = pymysql.connect(
+ host=self.args.host,
+ user=self.args.user,
+ passwd=self.args.password,
+ database=self.args.dbname,
+ port=int(self.args.port),
+ charset='utf8',
+ connect_timeout=timeout,
+ read_timeout=timeout,
+ write_timeout=timeout)
+ else:
+ if timeout > 0:
+ conn = psycopg2.connect(database=self.args.dbname,
+ user=self.args.user,
+ password=self.args.password,
+ host=self.args.host,
+ port=self.args.port,
+ options='-c statement_timeout={}s'.format(timeout))
+ else:
+ conn = psycopg2.connect(database=self.args.dbname,
+ user=self.args.user,
+ password=self.args.password,
+ host=self.args.host,
+ port=self.args.port)
+
+ return conn
+ '''
+ def exec_fetch(self, statement, one=True):
+ cur = self.conn.cursor()
+ cur.execute(statement)
+ if one:
+ return cur.fetchone()
+ return cur.fetchall()
+ '''
+
+ def execute_sql(self, sql):
+ fail = 1
+ self.conn = self.resetConn(timeout=2)
+ cur = self.conn.cursor()
+ i = 0
+ cnt = 5 # retry times
+ while fail == 1 and i < cnt:
+ try:
+ fail = 0
+ print("========== start execution time:", time.time())
+ cur.execute(sql)
+ except BaseException:
+ fail = 1
+ time.sleep(1)
+ res = []
+ if fail == 0:
+ res = cur.fetchall()
+ i = i + 1
+ logging.debug('database {}, return flag {}, execute sql {}\n'.format(self.args.dbname, 1 - fail, sql))
+
+ cur.close()
+ self.conn.close()
+
+ print("========== finish time:", time.time())
+
+ if fail == 1:
+ # raise RuntimeError("Database query failed")
+ print("SQL Execution Fatal!!")
+
+ return 0, ''
+ elif fail == 0:
+ # print("SQL Execution Succeed!!")
+
+ return 1, res
+
+ def pgsql_results(self, sql):
+ try:
+ #success, res = self.execute_sql('explain (FORMAT JSON, analyze) ' + sql)
+ success, res = self.execute_sql(sql)
+ #print("pgsql_results", success, res)
+ if success == 1:
+ return res
+ else:
+ return ""
+ except Exception as error:
+ logging.error('pgsql_results Exception', error)
+ return ""
+
+ def pgsql_query_plan(self, sql):
+ try:
+ #success, res = self.execute_sql('explain (FORMAT JSON, analyze) ' + sql)
+ success, res = self.execute_sql('explain (FORMAT JSON) ' + sql)
+ if success == 1:
+ plan = res[0][0][0]['Plan']
+ return plan
+ else:
+ logging.error('pgsql_query_plan Fails!')
+ return 0
+ except Exception as error:
+ logging.error('pgsql_query_plan Exception', error)
+ return 0
+
+ def pgsql_cost_estimation(self, sql):
+ try:
+ #success, res = self.execute_sql('explain (FORMAT JSON, analyze) ' + sql)
+ success, res = self.execute_sql('explain (FORMAT JSON) ' + sql)
+ if success == 1:
+ cost = res[0][0][0]['Plan']['Total Cost']
+ return cost
+ else:
+ logging.error('pgsql_cost_estimation Fails!')
+ return 0
+ except Exception as error:
+ logging.error('pgsql_cost_estimation Exception', error)
+ return 0
+
+ def pgsql_actual_time(self, sql):
+ try:
+ #success, res = self.execute_sql('explain (FORMAT JSON, analyze) ' + sql)
+ success, res = self.execute_sql('explain (FORMAT JSON, analyze) ' + sql)
+ if success == 1:
+ cost = res[0][0][0]['Plan']['Actual Total Time']
+ return cost
+ else:
+ return -1
+ except Exception as error:
+ logging.error('pgsql_actual_time Exception', error)
+ return -1
+
+ def mysql_cost_estimation(self, sql):
+ try:
+ success, res = self.execute_sql('explain format=json ' + sql)
+ if success == 1:
+ total_cost = self.get_mysql_total_cost(0, json.loads(res[0][0]))
+ return float(total_cost)
+ else:
+ return -1
+ except Exception as error:
+ logging.error('mysql_cost_estimation Exception', error)
+ return -1
+
+ def get_mysql_total_cost(self, total_cost, res):
+ if isinstance(res, dict):
+ if 'query_cost' in res.keys():
+ total_cost += float(res['query_cost'])
+ else:
+ for key in res:
+ total_cost += self.get_mysql_total_cost(0, res[key])
+ elif isinstance(res, list):
+ for i in res:
+ total_cost += self.get_mysql_total_cost(0, i)
+
+ return total_cost
+
+ def get_tables(self):
+ if self.args.dbtype == 'mysql':
+ return self.mysql_get_tables()
+ else:
+ return self.pgsql_get_tables()
+
+ # query cost estimated by the optimizer
+ def cost_estimation(self, sql):
+ if self.args.dbtype == 'mysql':
+ return self.mysql_cost_estimation(sql)
+ else:
+ return self.pgsql_cost_estimation(sql)
+
+ def compute_table_schema(self):
+ """
+ schema: {table_name: [field_name]}
+ :param cursor:
+ :return:
+ """
+
+ if self.args.dbtype == 'postgresql':
+ # cur_path = os.path.abspath('.')
+ # tpath = cur_path + '/sampled_data/'+dbname+'/schema'
+ sql = 'SELECT table_name FROM information_schema.tables WHERE table_schema = \'public\';'
+ success, res = self.execute_sql(sql)
+ #print("======== tables", res)
+ if success == 1:
+ tables = res
+ schema = {}
+ for table_info in tables:
+ table_name = table_info[0]
+ sql = 'SELECT column_name, data_type FROM information_schema.columns WHERE table_name = \'' + table_name + '\';'
+ success, res = self.execute_sql(sql)
+ #print("======== table columns", res)
+ columns = res
+ schema[table_name] = []
+ for col in columns:
+
+ ''' compute the distinct value ratio of the column
+
+ if transfer_field_type(col[1], self.args.dbtype) == DataType.VALUE.value:
+ sql = 'SELECT count({}) FROM {};'.format(col[0], table_name)
+ success, res = self.execute_sql(sql)
+ print("======== column rows", res)
+ num = res
+ if num[0][0] != 0:
+ schema[table_name].append(col[0])
+ '''
+
+ #schema[table_name].append("column {} is of {} type".format(col[0], col[1]))
+ schema[table_name].append("{}".format(col[0]))
+ '''
+ with open(tpath, 'w') as f:
+ f.write(str(schema))
+ '''
+ #print(schema)
+ return schema
+
+ else:
+ logging.error('pgsql_cost_estimation Fails!')
+ return 0
+
+ def simulate_index(self, index):
+ #table_name = index.table()
+ statement = (
+ "SELECT * FROM hypopg_create_index(E'{}');".format(index)
+ )
+ result = self.execute_sql(statement)
+
+ return result
+
+ def drop_simulated_index(self, oid):
+ statement = f"select * from hypopg_drop_index({oid})"
+ result = self.execute_sql(statement)
+
+ assert result[0] is True, f"Could not drop simulated index with oid = {oid}."
diff --git a/swarms/tools/db_diag/utils/db_parser.py b/swarms/tools/db_diag/utils/db_parser.py
new file mode 100644
index 00000000..a4748145
--- /dev/null
+++ b/swarms/tools/db_diag/utils/db_parser.py
@@ -0,0 +1,71 @@
+import argparse
+import configparser
+import logging
+
+def get_conf(conf_file, server_name):
+ conf = configparser.ConfigParser()
+ conf.read(conf_file)
+ sql_server = conf[server_name]
+ return sql_server
+
+
+def get_parser():
+ parser = argparse.ArgumentParser(
+ description="Instruction Induction.")
+
+ parser.add_argument("--db_conf", type=str,
+ default = '../database/configs/config.ini')
+
+ """
+ parser.add_argument("--train_data", type=str,
+ default="./data/raw/train/rules.json")
+ parser.add_argument("--eval_data", type=str,
+ default="./data/raw/execute/zhenzhi.json")
+
+ parser.add_argument("--data_save", type=str,
+ default="./result/{}/data/")
+
+ parser.add_argument("--seed", type=int, default=42)
+ parser.add_argument("--runlog", type=str,
+ default="./result/{}/exp_runtime.log")
+ parser.add_argument("--logdir", type=str,
+ default="./result/{}/logdir/")
+ parser.add_argument("--model_save", type=str,
+ default="./result/{}/model/")
+
+ parser.add_argument("--gen_sample", type=int, default=20)
+ parser.add_argument("--gen_demo", type=int, default=16)
+ parser.add_argument("--gen_prompt_per_sample", type=int, default=5)
+ parser.add_argument("--gen_model", type=str, default="text-davinci-003")
+ parser.add_argument("--gen_max_tokens", type=int, default=200)
+
+ parser.add_argument("--eval_sample", type=int, default=20)
+ parser.add_argument("--eval_model", type=str, default="text-davinci-003")
+ parser.add_argument("--eval_max_tokens", type=int, default=1000)
+
+ parser.add_argument("--storage_budget", type=int, default=500) # limit storage space of built indexes
+ """
+
+
+ return parser
+
+
+def set_logger(log_file):
+ logger = logging.getLogger()
+ logger.setLevel(logging.DEBUG)
+ formatter = logging.Formatter(
+ '%(asctime)s - %(name)s - %(levelname)s: - %(message)s',
+ datefmt='%Y-%m-%d %H:%M:%S')
+
+ # log to file
+ fh = logging.FileHandler(log_file)
+ fh.setLevel(logging.DEBUG)
+ fh.setFormatter(formatter)
+
+ # log to console
+ ch = logging.StreamHandler()
+ ch.setLevel(logging.DEBUG)
+ ch.setFormatter(formatter)
+
+ logger.addHandler(ch)
+ logger.addHandler(fh)
\ No newline at end of file
diff --git a/swarms/tools/db_diag/utils/db_utils.py b/swarms/tools/db_diag/utils/db_utils.py
new file mode 100644
index 00000000..58f74a08
--- /dev/null
+++ b/swarms/tools/db_diag/utils/db_utils.py
@@ -0,0 +1,36 @@
+import re
+import sqlparse
+
+def remove_create_table(sql):
+ return re.sub(r'(create|CREATE)\s+(table|TABLE).+?\(.+?\)\s*;','',sql, flags=re.DOTALL)
+
+def remove_create_index(sql):
+ return re.sub(r'(create|CREATE)\s+(index|INDEX).+?\(.+?\)\s*;','',sql, flags=re.DOTALL)
+
+def remove_table(sql):
+ return re.sub(r'(table|TABLE).+?\(.+?\)\s*;','',sql, flags=re.DOTALL)
+
+def clean_sql(sql):
+ tmp = []
+ for token in sql.flatten():
+ if not token.is_whitespace and not token.ttype is sqlparse.tokens.Comment.Single:
+ tmp.append(token)
+ return strip_par(' '.join(str(t) for t in tmp))
+
+def strip_par(s):
+ for op in ['(',')',',','>','=','<','>=','<=','!=','<>','.',';']:
+ s = s.replace(' {}'.format(op), op).replace('{} '.format(op), op)
+ return s
+
+def preprocess_execute_sql(sql):
+ sql = remove_create_table(sql)
+ sql = remove_create_index(sql)
+ parsed = sqlparse.parse(sql)
+ if len(parsed) == 0:
+ return [0, '']
+ sql = clean_sql(parsed[0])
+ if not sql:
+ return [0, '']
+ if sql[-1] != ';':
+ sql += ';'
+ return [1, sql]
\ No newline at end of file
diff --git a/swarms/tools/db_diag/utils/llm.py b/swarms/tools/db_diag/utils/llm.py
new file mode 100644
index 00000000..b194aa49
--- /dev/null
+++ b/swarms/tools/db_diag/utils/llm.py
@@ -0,0 +1,355 @@
+"""Contains classes for querying large language models."""
+from math import ceil
+import os
+import time
+from tqdm import tqdm
+from abc import ABC, abstractmethod
+
+import openai
+
+gpt_costs_per_thousand = {
+ 'davinci': 0.0200,
+ 'curie': 0.0020,
+ 'babbage': 0.0005,
+ 'ada': 0.0004
+}
+
+
+def model_from_config(config, disable_tqdm=True):
+ """Returns a model based on the config."""
+ model_type = config["name"]
+ if model_type == "GPT_forward":
+ return GPT_Forward(config, disable_tqdm=disable_tqdm)
+ elif model_type == "GPT_insert":
+ return GPT_Insert(config, disable_tqdm=disable_tqdm)
+ raise ValueError(f"Unknown model type: {model_type}")
+
+
+class LLM(ABC):
+ """Abstract base class for large language models."""
+
+ @abstractmethod
+ def generate_text(self, prompt):
+ """Generates text from the model.
+ Parameters:
+ prompt: The prompt to use. This can be a string or a list of strings.
+ Returns:
+ A list of strings.
+ """
+ pass
+
+ @abstractmethod
+ def log_probs(self, text, log_prob_range):
+ """Returns the log probs of the text.
+ Parameters:
+ text: The text to get the log probs of. This can be a string or a list of strings.
+ log_prob_range: The range of characters within each string to get the log_probs of.
+ This is a list of tuples of the form (start, end).
+ Returns:
+ A list of log probs.
+ """
+ pass
+
+
+class GPT_Forward(LLM):
+ """Wrapper for GPT-3."""
+
+ def __init__(self, config, needs_confirmation=False, disable_tqdm=True):
+ """Initializes the model."""
+ self.config = config
+ self.needs_confirmation = needs_confirmation
+ self.disable_tqdm = disable_tqdm
+
+ def confirm_cost(self, texts, n, max_tokens):
+ total_estimated_cost = 0
+ for text in texts:
+ total_estimated_cost += gpt_get_estimated_cost(
+ self.config, text, max_tokens) * n
+ print(f"Estimated cost: ${total_estimated_cost:.2f}")
+ # Ask the user to confirm in the command line
+ if os.getenv("LLM_SKIP_CONFIRM") is None:
+ confirm = input("Continue? (y/n) ")
+ if confirm != 'y':
+ raise Exception("Aborted.")
+
+ def auto_reduce_n(self, fn, prompt, n):
+ """Reduces n by half until the function succeeds."""
+ try:
+ return fn(prompt, n)
+ except BatchSizeException as e:
+ if n == 1:
+ raise e
+ return self.auto_reduce_n(fn, prompt, n // 2) + self.auto_reduce_n(fn, prompt, n // 2)
+
+ def generate_text(self, prompt, n):
+ if not isinstance(prompt, list):
+ prompt = [prompt]
+ if self.needs_confirmation:
+ self.confirm_cost(
+ prompt, n, self.config['gpt_config']['max_tokens'])
+ batch_size = self.config['batch_size']
+ prompt_batches = [prompt[i:i + batch_size]
+ for i in range(0, len(prompt), batch_size)]
+ if not self.disable_tqdm:
+ print(
+ f"[{self.config['name']}] Generating {len(prompt) * n} completions, "
+ f"split into {len(prompt_batches)} batches of size {batch_size * n}")
+ text = []
+
+ for prompt_batch in tqdm(prompt_batches, disable=self.disable_tqdm):
+ text += self.auto_reduce_n(self.__generate_text, prompt_batch, n)
+ return text
+
+ def complete(self, prompt, n):
+ """Generates text from the model and returns the log prob data."""
+ if not isinstance(prompt, list):
+ prompt = [prompt]
+ batch_size = self.config['batch_size']
+ prompt_batches = [prompt[i:i + batch_size]
+ for i in range(0, len(prompt), batch_size)]
+ if not self.disable_tqdm:
+ print(
+ f"[{self.config['name']}] Generating {len(prompt) * n} completions, "
+ f"split into {len(prompt_batches)} batches of size {batch_size * n}")
+ res = []
+ for prompt_batch in tqdm(prompt_batches, disable=self.disable_tqdm):
+ res += self.__complete(prompt_batch, n)
+ return res
+
+ def log_probs(self, text, log_prob_range=None):
+ """Returns the log probs of the text."""
+ if not isinstance(text, list):
+ text = [text]
+ if self.needs_confirmation:
+ self.confirm_cost(text, 1, 0)
+ batch_size = self.config['batch_size']
+ text_batches = [text[i:i + batch_size]
+ for i in range(0, len(text), batch_size)]
+ if log_prob_range is None:
+ log_prob_range_batches = [None] * len(text)
+ else:
+ assert len(log_prob_range) == len(text)
+ log_prob_range_batches = [log_prob_range[i:i + batch_size]
+ for i in range(0, len(log_prob_range), batch_size)]
+ if not self.disable_tqdm:
+ print(
+ f"[{self.config['name']}] Getting log probs for {len(text)} strings, "
+ f"split into {len(text_batches)} batches of (maximum) size {batch_size}")
+ log_probs = []
+ tokens = []
+ for text_batch, log_prob_range in tqdm(list(zip(text_batches, log_prob_range_batches)),
+ disable=self.disable_tqdm):
+ log_probs_batch, tokens_batch = self.__log_probs(
+ text_batch, log_prob_range)
+ log_probs += log_probs_batch
+ tokens += tokens_batch
+ return log_probs, tokens
+
+ def __generate_text(self, prompt, n):
+ """Generates text from the model."""
+ if not isinstance(prompt, list):
+ text = [prompt]
+ config = self.config['gpt_config'].copy()
+ config['n'] = n
+ # If there are any [APE] tokens in the prompts, remove them
+ for i in range(len(prompt)):
+ prompt[i] = prompt[i].replace('[APE]', '').strip()
+ response = None
+ while response is None:
+ try:
+ response = openai.Completion.create(
+ **config, prompt=prompt)
+ except Exception as e:
+ if 'is greater than the maximum' in str(e):
+ raise BatchSizeException()
+ print(e)
+ print('Retrying...')
+ time.sleep(5)
+
+ return [response['choices'][i]['text'] for i in range(len(response['choices']))]
+
+ def __complete(self, prompt, n):
+ """Generates text from the model and returns the log prob data."""
+ if not isinstance(prompt, list):
+ text = [prompt]
+ config = self.config['gpt_config'].copy()
+ config['n'] = n
+ # If there are any [APE] tokens in the prompts, remove them
+ for i in range(len(prompt)):
+ prompt[i] = prompt[i].replace('[APE]', '').strip()
+ response = None
+ while response is None:
+ try:
+ response = openai.Completion.create(
+ **config, prompt=prompt)
+ except Exception as e:
+ print(e)
+ print('Retrying...')
+ time.sleep(5)
+ return response['choices']
+
+ def __log_probs(self, text, log_prob_range=None):
+ """Returns the log probs of the text."""
+ if not isinstance(text, list):
+ text = [text]
+ if log_prob_range is not None:
+ for i in range(len(text)):
+ lower_index, upper_index = log_prob_range[i]
+ assert lower_index < upper_index
+ assert lower_index >= 0
+ assert upper_index - 1 < len(text[i])
+ config = self.config['gpt_config'].copy()
+ config['logprobs'] = 1
+ config['echo'] = True
+ config['max_tokens'] = 0
+ if isinstance(text, list):
+ text = [f'\n{text[i]}' for i in range(len(text))]
+ else:
+ text = f'\n{text}'
+ response = None
+ while response is None:
+ try:
+ response = openai.Completion.create(
+ **config, prompt=text)
+ except Exception as e:
+ print(e)
+ print('Retrying...')
+ time.sleep(5)
+ log_probs = [response['choices'][i]['logprobs']['token_logprobs'][1:]
+ for i in range(len(response['choices']))]
+ tokens = [response['choices'][i]['logprobs']['tokens'][1:]
+ for i in range(len(response['choices']))]
+ offsets = [response['choices'][i]['logprobs']['text_offset'][1:]
+ for i in range(len(response['choices']))]
+
+ # Subtract 1 from the offsets to account for the newline
+ for i in range(len(offsets)):
+ offsets[i] = [offset - 1 for offset in offsets[i]]
+
+ if log_prob_range is not None:
+ # First, we need to find the indices of the tokens in the log probs
+ # that correspond to the tokens in the log_prob_range
+ for i in range(len(log_probs)):
+ lower_index, upper_index = self.get_token_indices(
+ offsets[i], log_prob_range[i])
+ log_probs[i] = log_probs[i][lower_index:upper_index]
+ tokens[i] = tokens[i][lower_index:upper_index]
+
+ return log_probs, tokens
+
+ def get_token_indices(self, offsets, log_prob_range):
+ """Returns the indices of the tokens in the log probs that correspond to the tokens in the log_prob_range."""
+ # For the lower index, find the highest index that is less than or equal to the lower index
+ lower_index = 0
+ for i in range(len(offsets)):
+ if offsets[i] <= log_prob_range[0]:
+ lower_index = i
+ else:
+ break
+
+ upper_index = len(offsets)
+ for i in range(len(offsets)):
+ if offsets[i] >= log_prob_range[1]:
+ upper_index = i
+ break
+
+ return lower_index, upper_index
+
+
+class GPT_Insert(LLM):
+
+ def __init__(self, config, needs_confirmation=False, disable_tqdm=True):
+ """Initializes the model."""
+ self.config = config
+ self.needs_confirmation = needs_confirmation
+ self.disable_tqdm = disable_tqdm
+
+ def confirm_cost(self, texts, n, max_tokens):
+ total_estimated_cost = 0
+ for text in texts:
+ total_estimated_cost += gpt_get_estimated_cost(
+ self.config, text, max_tokens) * n
+ print(f"Estimated cost: ${total_estimated_cost:.2f}")
+ # Ask the user to confirm in the command line
+ if os.getenv("LLM_SKIP_CONFIRM") is None:
+ confirm = input("Continue? (y/n) ")
+ if confirm != 'y':
+ raise Exception("Aborted.")
+
+ def auto_reduce_n(self, fn, prompt, n):
+ """Reduces n by half until the function succeeds."""
+ try:
+ return fn(prompt, n)
+ except BatchSizeException as e:
+ if n == 1:
+ raise e
+ return self.auto_reduce_n(fn, prompt, n // 2) + self.auto_reduce_n(fn, prompt, n // 2)
+
+ def generate_text(self, prompt, n):
+ if not isinstance(prompt, list):
+ prompt = [prompt]
+ if self.needs_confirmation:
+ self.confirm_cost(
+ prompt, n, self.config['gpt_config']['max_tokens'])
+ batch_size = self.config['batch_size']
+ assert batch_size == 1
+ prompt_batches = [prompt[i:i + batch_size]
+ for i in range(0, len(prompt), batch_size)]
+ if not self.disable_tqdm:
+ print(
+ f"[{self.config['name']}] Generating {len(prompt) * n} completions, split into {len(prompt_batches)} batches of (maximum) size {batch_size * n}")
+ text = []
+ for prompt_batch in tqdm(prompt_batches, disable=self.disable_tqdm):
+ text += self.auto_reduce_n(self.__generate_text, prompt_batch, n)
+ return text
+
+ def log_probs(self, text, log_prob_range=None):
+ raise NotImplementedError
+
+ def __generate_text(self, prompt, n):
+ """Generates text from the model."""
+ config = self.config['gpt_config'].copy()
+ config['n'] = n
+ # Split prompts into prefixes and suffixes with the [APE] token (do not include the [APE] token in the suffix)
+ prefix = prompt[0].split('[APE]')[0]
+ suffix = prompt[0].split('[APE]')[1]
+ response = None
+ while response is None:
+ try:
+ response = openai.Completion.create(
+ **config, prompt=prefix, suffix=suffix)
+ except Exception as e:
+ print(e)
+ print('Retrying...')
+ time.sleep(5)
+
+ # Remove suffix from the generated text
+ texts = [response['choices'][i]['text'].replace(suffix, '') for i in range(len(response['choices']))]
+ return texts
+
+
+def gpt_get_estimated_cost(config, prompt, max_tokens):
+ """Uses the current API costs/1000 tokens to estimate the cost of generating text from the model."""
+ # Get rid of [APE] token
+ prompt = prompt.replace('[APE]', '')
+ # Get the number of tokens in the prompt
+ n_prompt_tokens = len(prompt) // 4
+ # Get the number of tokens in the generated text
+ total_tokens = n_prompt_tokens + max_tokens
+ engine = config['gpt_config']['model'].split('-')[1]
+ costs_per_thousand = gpt_costs_per_thousand
+ if engine not in costs_per_thousand:
+ # Try as if it is a fine-tuned model
+ engine = config['gpt_config']['model'].split(':')[0]
+ costs_per_thousand = {
+ 'davinci': 0.1200,
+ 'curie': 0.0120,
+ 'babbage': 0.0024,
+ 'ada': 0.0016
+ }
+ price = costs_per_thousand[engine] * total_tokens / 1000
+ return price
+
+
+class BatchSizeException(Exception):
+ pass
diff --git a/swarms/tools/executor.py b/swarms/tools/executor.py
new file mode 100644
index 00000000..56085cf3
--- /dev/null
+++ b/swarms/tools/executor.py
@@ -0,0 +1,114 @@
+import time
+import types
+from typing import Any, Dict, List, Tuple, Union
+from langchain.agents import AgentExecutor
+from langchain.input import get_color_mapping
+from langchain.schema import AgentAction, AgentFinish
+from .translator import Translator
+
+class AgentExecutorWithTranslation(AgentExecutor):
+
+ translator: Translator = Translator()
+
+ def prep_outputs(
+ self,
+ inputs: Dict[str, str],
+ outputs: Dict[str, str],
+ return_only_outputs: bool = False,
+ ) -> Dict[str, str]:
+ try:
+ outputs = super().prep_outputs(inputs, outputs, return_only_outputs)
+ except ValueError as e:
+ return outputs
+ else:
+ if "input" in outputs:
+ outputs = self.translator(outputs)
+ return outputs
+
+class Executor(AgentExecutorWithTranslation):
+ def _call(self, inputs: Dict[str, str]) -> Dict[str, Any]:
+ """Run text through and get agent response."""
+ # Construct a mapping of tool name to tool for easy lookup
+ name_to_tool_map = {tool.name: tool for tool in self.tools}
+ # We construct a mapping from each tool to a color, used for logging.
+ color_mapping = get_color_mapping(
+ [tool.name for tool in self.tools], excluded_colors=["green"]
+ )
+ intermediate_steps: List[Tuple[AgentAction, str]] = []
+ # Let's start tracking the iterations the agent has gone through
+ iterations = 0
+ time_elapsed = 0.0
+ start_time = time.time()
+ # We now enter the agent loop (until it returns something).
+ while self._should_continue(iterations, time_elapsed):
+ next_step_output = self._take_next_step(
+ name_to_tool_map, color_mapping, inputs, intermediate_steps
+ )
+ if isinstance(next_step_output, AgentFinish):
+ yield self._return(next_step_output, intermediate_steps)
+ return
+
+ for i, output in enumerate(next_step_output):
+ agent_action = output[0]
+ tool_logo = None
+ for tool in self.tools:
+ if tool.name == agent_action.tool:
+ tool_logo = tool.tool_logo_md
+ if isinstance(output[1], types.GeneratorType):
+ logo = f"{tool_logo}" if tool_logo is not None else ""
+ yield (AgentAction("", agent_action.tool_input, agent_action.log), f"Further use other tool {logo} to answer the question.")
+ for out in output[1]:
+ yield out
+ next_step_output[i] = (agent_action, out)
+ else:
+ for tool in self.tools:
+ if tool.name == agent_action.tool:
+ yield (AgentAction(tool_logo, agent_action.tool_input, agent_action.log), output[1])
+
+ intermediate_steps.extend(next_step_output)
+ if len(next_step_output) == 1:
+ next_step_action = next_step_output[0]
+ # See if tool should return directly
+ tool_return = self._get_tool_return(next_step_action)
+ if tool_return is not None:
+ yield self._return(tool_return, intermediate_steps)
+ return
+ iterations += 1
+ time_elapsed = time.time() - start_time
+ output = self.agent.return_stopped_response(
+ self.early_stopping_method, intermediate_steps, **inputs
+ )
+ yield self._return(output, intermediate_steps)
+ return
+
+ def __call__(
+ self, inputs: Union[Dict[str, Any], Any], return_only_outputs: bool = False
+ ) -> Dict[str, Any]:
+ """Run the logic of this chain and add to output if desired.
+
+ Args:
+ inputs: Dictionary of inputs, or single input if chain expects
+ only one param.
+ return_only_outputs: boolean for whether to return only outputs in the
+ response. If True, only new keys generated by this chain will be
+ returned. If False, both input keys and new keys generated by this
+ chain will be returned. Defaults to False.
+
+ """
+ inputs = self.prep_inputs(inputs)
+ self.callback_manager.on_chain_start(
+ {"name": self.__class__.__name__},
+ inputs,
+ verbose=self.verbose,
+ )
+ try:
+ for output in self._call(inputs):
+ if type(output) is dict:
+ output = self.prep_outputs(inputs, output, return_only_outputs)
+ yield output
+ except (KeyboardInterrupt, Exception) as e:
+ self.callback_manager.on_chain_error(e, verbose=self.verbose)
+ raise e
+ self.callback_manager.on_chain_end(output, verbose=self.verbose)
+ # return self.prep_outputs(inputs, output, return_only_outputs)
+ return output
diff --git a/swarms/tools/file_operation/README.md b/swarms/tools/file_operation/README.md
new file mode 100644
index 00000000..17b23a1b
--- /dev/null
+++ b/swarms/tools/file_operation/README.md
@@ -0,0 +1,3 @@
+# File operation tool
+
+Contributor: [Yujia Qin](https://github.com/thuqinyj16)
\ No newline at end of file
diff --git a/swarms/tools/file_operation/__init__.py b/swarms/tools/file_operation/__init__.py
new file mode 100644
index 00000000..af296bf3
--- /dev/null
+++ b/swarms/tools/file_operation/__init__.py
@@ -0,0 +1,7 @@
+
+from ..registry import register
+
+@register("file_operation")
+def file_operation():
+ from .api import build_tool
+ return build_tool
diff --git a/swarms/tools/file_operation/api.py b/swarms/tools/file_operation/api.py
new file mode 100644
index 00000000..62bd4eda
--- /dev/null
+++ b/swarms/tools/file_operation/api.py
@@ -0,0 +1,45 @@
+from pathlib import Path
+from ..tool import Tool
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "File Operation Tool",
+ "Write / read file to / from disk",
+ name_for_model="file_operation",
+ description_for_model="Plugin for operating files",
+ logo_url=None,
+ contact_email=None,
+ legal_info_url=None
+ )
+
+ @tool.get("/write_file")
+ def write_file(file_path: str, text: str) -> str:
+ '''write file to disk
+ '''
+ write_path = (
+ Path(file_path)
+ )
+ try:
+ write_path.parent.mkdir(exist_ok=True, parents=False)
+ with write_path.open("w", encoding="utf-8") as f:
+ f.write(text)
+ return f"File written successfully to {file_path}."
+ except Exception as e:
+ return "Error: " + str(e)
+
+ @tool.get("/read_file")
+ def read_file(file_path: str) -> str:
+ '''read file from disk
+ '''
+ read_path = (
+ Path(file_path)
+ )
+ try:
+ with read_path.open("r", encoding="utf-8") as f:
+ content = f.read()
+ return content
+ except Exception as e:
+ return "Error: " + str(e)
+
+ return tool
diff --git a/swarms/tools/file_operation/test.py b/swarms/tools/file_operation/test.py
new file mode 100644
index 00000000..bdbfe7b7
--- /dev/null
+++ b/swarms/tools/file_operation/test.py
@@ -0,0 +1,9 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'file_operation', "http://127.0.0.1:8079/tools/file_operation/"
+tool_name, tool_config = load_single_tools(tool_name, tool_url)
+print(tool_name, tool_config)
+stqa = STQuestionAnswerer()
+
+agent = stqa.load_tools(tool_name, tool_config)
+agent("write hello world to test.txt")
\ No newline at end of file
diff --git a/swarms/tools/film/__init__.py b/swarms/tools/film/__init__.py
new file mode 100644
index 00000000..20ad0786
--- /dev/null
+++ b/swarms/tools/film/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("douban-film")
+def douban_film():
+ from .douban import build_tool
+ return build_tool
diff --git a/swarms/tools/film/douban/__init__.py b/swarms/tools/film/douban/__init__.py
new file mode 100644
index 00000000..aead338d
--- /dev/null
+++ b/swarms/tools/film/douban/__init__.py
@@ -0,0 +1 @@
+from .api import build_tool
diff --git a/swarms/tools/film/douban/api.py b/swarms/tools/film/douban/api.py
new file mode 100644
index 00000000..82903214
--- /dev/null
+++ b/swarms/tools/film/douban/api.py
@@ -0,0 +1,299 @@
+import requests
+from lxml import etree
+import pandas as pd
+import re
+from ...tool import Tool
+from typing import List
+from typing_extensions import TypedDict
+
+class ComingMovieInfo(TypedDict):
+ date : str
+ title : str
+ cate : str
+ region : str
+ wantWatchPeopleNum : str
+ link : str
+
+class PlayingMovieInfo(TypedDict):
+ title : str
+ score : str
+ region : str
+ director : str
+ actors : str
+ link : str
+
+class DoubanAPI:
+ def __init__(self) -> None:
+ self._endpoint = "https://movie.douban.com"
+ self._headers = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
+ 'Chrome/108.0.0.0 Safari/537.36'
+ }
+
+ def fetch_page(self, url: str):
+ """fetch_page(url: str) print html text of url
+ """
+ s = requests.session()
+ s.keep_alive = False
+ response = s.get(url, headers=self._headers, verify=False)
+
+ return response
+
+ def get_coming(self) -> List[ComingMovieInfo]:
+ response = self.fetch_page(f"{self._endpoint}/coming")
+ ret : List[ComingMovieInfo] = []
+
+ parser = etree.HTMLParser(encoding='utf-8')
+ tree = etree.HTML(response.text, parser=parser)
+
+ movies_table_path = '//*[@id="content"]/div/div[1]/table/tbody'
+ movies_table = tree.xpath(movies_table_path)
+ for filmChild in movies_table[0].iter('tr'):
+ filmTime = filmChild.xpath('td[1]/text()')[0].strip()
+ filmName = filmChild.xpath('td[2]/a/text()')[0]
+ filmType = filmChild.xpath('td[3]/text()')[0].strip()
+ filmRegion = filmChild.xpath('td[4]/text()')[0].strip()
+ filmWantWatching = filmChild.xpath('td[5]/text()')[0].strip()
+ filmLink = filmChild.xpath('td[2]/a/@href')[0]
+ ret.append(ComingMovieInfo(
+ date=filmTime,
+ title=filmName,
+ cate=filmType,
+ region=filmRegion,
+ wantWatchPeopleNum=filmWantWatching,
+ link=filmLink
+ ))
+ return ret
+
+ def get_now_playing(self) -> List[PlayingMovieInfo]:
+ # Get the movie list currently on show, the movie list of different cities is the same
+ response = self.fetch_page(f"{self._endpoint}/cinema/nowplaying/beijing/")
+ ret : List[PlayingMovieInfo] = []
+
+ parser = etree.HTMLParser(encoding='utf-8')
+ tree = etree.HTML(response.text, parser=parser)
+
+ movies_table_path = './/div[@id="nowplaying"]/div[2]/ul'
+ movies_table = tree.xpath(movies_table_path)
+ for filmChild in movies_table[0]:
+ filmName = filmChild.xpath('@data-title')[0]
+ filmScore = filmChild.xpath('@data-score')[0]
+ filmRegion = filmChild.xpath('@data-region')[0]
+ filmDirector = filmChild.xpath('@data-director')[0]
+ filmActors = filmChild.xpath('@data-actors')[0]
+ filmLink = filmChild.xpath('ul/li[1]/a/@href')[0]
+ ret.append(PlayingMovieInfo(
+ title=filmName,
+ score=filmScore,
+ region=filmRegion,
+ director=filmDirector,
+ actors=filmActors,
+ link=filmLink
+ ))
+ return ret
+
+ def get_movie_detail(self, url : str) -> str:
+ response = self.fetch_page(url)
+ parser = etree.HTMLParser(encoding='utf-8')
+ tree = etree.HTML(response.text, parser=parser)
+ info_path = './/div[@class="subject clearfix"]/div[2]'
+
+ director = tree.xpath(f'{info_path}/span[1]/span[2]/a/text()')[0]
+
+ actors = []
+ actors_spans = tree.xpath(f'{info_path}/span[3]/span[2]')[0]
+ for actors_span in actors_spans:
+ actors.append(actors_span.text)
+ actors = '、'.join(actors[:3])
+
+ types = []
+ spans = tree.xpath(f'{info_path}')[0]
+ for span in spans.iter('span'):
+ if 'property' in span.attrib and span.attrib['property']=='v:genre':
+ types.append(span.text)
+ types = '、'.join(types)
+
+ for span in spans:
+ if span.text=='制片国家/地区:':
+ region = span.tail.strip()
+ break
+ Synopsis = tree.xpath('.//div[@class="related-info"]/div/span')[0].text.strip()
+ detail = f'是一部{region}的{types}电影,由{director}导演,{actors}等人主演.\n剧情简介:{Synopsis}'
+ return detail
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Film Search Plugin",
+ "search for up-to-date film information.",
+ name_for_model="Film Search",
+ description_for_model="Plugin for search for up-to-date film information.",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ if "debug" in config and config["debug"]:
+ douban_api = config["douban_api"]
+ else:
+ douban_api = DoubanAPI()
+
+ @tool.get("/coming_out_filter")
+ def coming_out_filter(args : str):
+ """coming_out_filter(args: str) prints the details of the filtered [outNum] coming films now according to region, cate and outNum.
+ args is a list like 'str1, str2, str3, str4'
+ str1 represents Production country or region. If you cannot find a region, str1 is 全部
+ str2 represents movie's category. If you cannot find a category, str2 is 全部
+ str3 can be a integer number that agent want to get. If you cannot find a number, str2 is 100. If the found movie's num is less than str2, Final Answer only print [the found movie's num] movies.
+ str4 can be a True or False that refluct whether agent want the result sorted by people number which look forward to the movie.
+ Final answer should be complete.
+
+ This is an example:
+ Thought: I need to find the upcoming Chinese drama movies and the top 2 most wanted movies
+ Action: coming_out_filter
+ Action Input: {"args" : "中国, 剧情, 2, True"}
+ Observation: {"date":{"23":"04月28日","50":"07月"},"title":{"23":"长空之王","50":"热烈"},"cate":{"23":"剧情 / 动作","50":"剧情 / 喜剧"},"region":{"23":"中国大陆","50":"中国大陆"},"wantWatchPeopleNum":{"23":"39303人","50":"26831人"}}
+ Thought: I now know the top 2 upcoming Chinese drama movies
+ Final Answer: 即将上映的中国剧情电影有2部:长空之王、热烈,大家最想看的前2部分别是:长空之王、热烈。
+ """
+ args = re.findall(r'\b\w+\b', args)
+ region = args[0]
+ if region=='全部':
+ region = ''
+ cate = args[1]
+ if cate=='全部':
+ cate = ''
+ outNum = int(args[2])
+ WantSort = True if args[3]=='True' else False
+
+ coming_movies = []
+ for movie in douban_api.get_coming():
+ if (cate in movie["cate"]) and (region in movie["region"]):
+ coming_movies.append({
+ "date": movie["date"],
+ "title": movie["title"],
+ "cate": movie["cate"],
+ "region": movie["region"],
+ "wantWatchPeopleNum": int(movie["wantWatchPeopleNum"].replace("人", "")),
+ "link": movie["link"]
+ })
+
+ # Sort by people that are looking forward to the movie
+ if WantSort:
+ coming_movies = sorted(coming_movies, key=lambda x: x["wantWatchPeopleNum"], reverse=True)
+
+ ret = {
+ "date": {},
+ "title": {},
+ "cate": {},
+ "region": {},
+ "wantWatchPeopleNum": {},
+ }
+ for i, movie in enumerate(coming_movies[:outNum]):
+ i = str(i)
+ ret["date"][i] = movie["date"]
+ ret["title"][i] = movie["title"]
+ ret["cate"][i] = movie["cate"]
+ ret["region"][i] = movie["region"]
+ ret["wantWatchPeopleNum"][i] = "{}人".format(movie["wantWatchPeopleNum"])
+ return ret
+
+
+ @tool.get("/now_playing_out_filter")
+ def now_playing_out_filter(args : str):
+ """NowPlayingOutFilter(args: str) prints the details of the filtered [outNum] playing films now according to region, scoreSort
+ args is a list like 'str1, str2, str3'
+ str1 can be '中国','日本' or other Production country or region. If you cannot find a region, str1 is 全部
+ str2 can be a integer number that agent want to get. If you cannot find a number, str2 is 100. If the found movie's num is less than str2, Final Answer only print [the found movie's num] movies.
+ str3 can be a True or False that refluct whether agent want the result sorted by score.
+ Final answer should be complete.
+
+ This is an example:
+ Input: 您知道现在有正在上映中国的电影吗?请输出3部
+ Thought: I need to find the currently playing movies with the highest scores
+ Action: now_playing_out_filter
+ Action Input: {"args" : "全部, 3, True"}
+ Observation: {"title":{"34":"切腹","53":"吉赛尔","31":"小森林 夏秋篇"},"score":{"34":"9.4","53":"9.2","31":"9.0"},"region":{"34":"日本","53":"西德","31":"日本"},"director":{"34":"小林正树","53":"Hugo Niebeling","31":"森淳一"},"actors":{"34":"仲代达矢 / 石浜朗 / 岩下志麻","53":"卡拉·弗拉奇 / 埃里克·布鲁恩 / Bruce Marks","31":"桥本爱 / 三浦贵大 / 松冈茉优"}}
+ Thought: I now know the currently playing movies with the highest scores
+ Final Answer: 现在上映的评分最高的3部电影是:切腹、吉赛尔、小森林 夏秋篇
+
+ """
+ args = re.findall(r'\b\w+\b', args)
+ region = args[0]
+ if region=='全部':
+ region = ''
+ outNum = int(args[1])
+ scoreSort = True if args[2]=='True' else False
+
+ playing_movies = []
+ for movie in douban_api.get_now_playing():
+ if region in movie["region"]:
+ playing_movies.append({
+ "title": movie["title"],
+ "score": float(movie["score"]),
+ "region": movie["region"],
+ "director": movie["director"],
+ "actors": movie["actors"],
+ "link": movie["link"]
+ })
+
+ # Sort by score
+ if scoreSort:
+ playing_movies = sorted(playing_movies, key=lambda x: x["score"], reverse=True)
+
+ ret = {
+ "title": {},
+ "score": {},
+ "region": {},
+ "director": {},
+ "actors": {},
+ }
+ for i, movie in enumerate(playing_movies[:outNum]):
+ i = str(i)
+ ret["title"][i] = movie["title"]
+ ret["score"][i] = "{}".format(movie["score"])
+ ret["region"][i] = movie["region"]
+ ret["director"][i] = movie["director"]
+ ret["actors"][i] = movie["actors"]
+ return ret
+
+ @tool.get("/print_detail")
+ def print_detail(args : str):
+ """parsing_detail_page(args) prints the details of a movie, giving its name.
+ args is a list like 'str1'
+ str1 is target movie's name.
+ step1: apply function parse_coming_page and parse_nowplaying_page and get all movie's links and other infomation.
+ step2: get the target movie's link from df_coming or df_nowplaying
+ step3: get detail from step2's link
+
+ This is an example:
+ Input: "电影流浪地球2怎么样?"
+ Thought: I need to find the movie's information
+ Action: print_detail
+ Action Input: {"args" : "流浪地球2"}
+ Observation: "是一部中国大陆的科幻、冒险、灾难电影,由郭帆导演,吴京、刘德华、李雪健等人主演.\n剧情简介:太阳即将毁灭,人类在地球表面建造出巨大的推进器,寻找新的家园。然而宇宙之路危机四伏,为了拯救地球,流浪地球时代的年轻人再次挺身而出,展开争分夺秒的生死之战。"
+ Thought: I now know the final answer
+ Final Answer: 流浪地球2是一部中国大陆的科幻、冒险、灾难电影,由郭帆导演,吴京、刘德华、李雪健等人主演,剧情简介是太阳即将毁灭,人类在地球表面建造出巨大的推进器,寻找新的家园,然而宇宙之路危机四伏,为了拯救地球,流浪地球时代的年轻人再次挺身而出,
+
+ """
+ args = re.findall(r'\b\w+\b', args)
+ filmName = args[0]
+
+ link = None
+
+ if link is None:
+ for movie in douban_api.get_coming():
+ if movie["title"] == filmName:
+ link = movie["link"]
+ break
+
+ if link is None:
+ for movie in douban_api.get_now_playing():
+ if movie["title"] == filmName:
+ link = movie["link"]
+ break
+
+ if link is None:
+ return "没有找到该电影"
+
+ return "{}{}".format(filmName, douban_api.get_movie_detail(link))
+ return tool
diff --git a/swarms/tools/film/douban/readme.md b/swarms/tools/film/douban/readme.md
new file mode 100644
index 00000000..011d04da
--- /dev/null
+++ b/swarms/tools/film/douban/readme.md
@@ -0,0 +1,34 @@
+# Douban Film Search
+
+Contributor: [Jing Yi](https://github.com/yijing16)
+
+## Tool Description
+The "Film Search Plugin" is a robust tool that allows you to access up-to-date film information, filter through this information, and retrieve detailed descriptions of specific films. It utilizes a fictional API called "DoubanAPI" to pull information on films.
+
+### Tool Specifications
+
+- **Name**: Film Search Plugin
+- **Purpose**: Search for up-to-date film information.
+- **Name for Model**: Film Search
+- **Model Description**: Plugin for search for up-to-date film information.
+- **Logo URL**: [logo](https://your-app-url.com/.well-known/logo.png)
+- **Contact Email**: hello@contact.com
+- **Legal Information URL**: hello@legal.com
+
+### Core Functionality
+
+1. `coming_out_filter`
+
+ This method accepts a string argument that contains details about the desired region, category, number of films, and a flag indicating if sorting is needed based on the number of people looking forward to the movie. It filters through the upcoming films based on these details and provides the information.
+
+2. `now_playing_out_filter`
+
+ This method accepts a string argument that contains details about the desired region, the number of films, and a flag indicating if sorting is needed based on the film score. It filters through the currently playing films based on these details and provides the information.
+
+3. `print_detail`
+
+ This method accepts a string argument that contains the name of a specific film. It provides detailed information about the film, including the genre, director, actors, and a brief synopsis of the film's plot.
+
+All methods use the `DoubanAPI` to retrieve and filter information on films.
+
+**Note**: This tool's functionality is hypothetical and relies on the existence and proper functioning of a fictional API, DoubanAPI, which is not included in the provided code. In a real-world application, replace DoubanAPI with a functional API that can retrieve film data.
\ No newline at end of file
diff --git a/swarms/tools/film/douban/test.py b/swarms/tools/film/douban/test.py
new file mode 100644
index 00000000..5ec2c219
--- /dev/null
+++ b/swarms/tools/film/douban/test.py
@@ -0,0 +1,15 @@
+
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'douban', "http://127.0.0.1:8079/tools/douban-film/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+# tools_name, tools_config = load_single_tools()
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("有哪些即将上映的中国喜剧电影?哪些是大家最想看的前5部?")
+agent("想去电影院看一些国产电影,有评分高的吗?输出3部")
+agent("帮我介绍下《深海》这部电影")
diff --git a/swarms/tools/film/douban/test_douban.py b/swarms/tools/film/douban/test_douban.py
new file mode 100644
index 00000000..8ce4e42b
--- /dev/null
+++ b/swarms/tools/film/douban/test_douban.py
@@ -0,0 +1,97 @@
+from fastapi.testclient import TestClient
+from .api import build_tool, DoubanAPI, ComingMovieInfo, PlayingMovieInfo
+from typing import List
+
+
+class DoubanMock(DoubanAPI):
+ def __init__(self) -> None:
+ pass
+
+ def get_coming(self) -> List[ComingMovieInfo]:
+ return [
+ ComingMovieInfo(date="2020-12-12", title="test1", cate="test1", region="test1", wantWatchPeopleNum="1", link="test1"),
+ ComingMovieInfo(date="2021-12-12", title="test2", cate="test2", region="test2", wantWatchPeopleNum="2", link="test2"),
+ ComingMovieInfo(date="2022-12-12", title="test3", cate="test3", region="test3", wantWatchPeopleNum="3", link="test3"),
+ ]
+
+ def get_now_playing(self) -> List[PlayingMovieInfo]:
+ return [
+ PlayingMovieInfo(title="test1", score="1.1", region="test1", director="test1", actors="test1", link="test1"),
+ PlayingMovieInfo(title="test2", score="2.2", region="test2", director="test2", actors="test2", link="test2"),
+ PlayingMovieInfo(title="test3", score="3.3", region="test3", director="test3", actors="test3", link="test3"),
+ ]
+
+ def get_movie_detail(self, url : str) -> str:
+ return url
+
+
+app = build_tool({"debug": True, "douban_api": DoubanMock()})
+client = TestClient(app)
+
+def test_get_coming():
+ response = client.get("/coming_out_filter", params={
+ "args": "全部, 全部, 2, True"
+ })
+ assert response.status_code == 200
+ assert response.json() == {
+ "date": {
+ "1": "2021-12-12",
+ "0": "2022-12-12",
+ },
+ "title": {
+ "1": "test2",
+ "0": "test3",
+ },
+ "cate": {
+ "1": "test2",
+ "0": "test3",
+ },
+ "region": {
+ "1": "test2",
+ "0": "test3",
+ },
+ "wantWatchPeopleNum": {
+ "1": "2人",
+ "0": "3人",
+ },
+ }
+
+def test_get_playing():
+ response = client.get("/now_playing_out_filter", params={
+ "args": "全部, 3, False"
+ })
+ assert response.status_code == 200
+ assert response.json() == {
+ "title": {
+ "0": "test1",
+ "1": "test2",
+ "2": "test3",
+ },
+ "score": {
+ "0": "1.1",
+ "1": "2.2",
+ "2": "3.3",
+ },
+ "region": {
+ "0": "test1",
+ "1": "test2",
+ "2": "test3",
+ },
+ "director": {
+ "0": "test1",
+ "1": "test2",
+ "2": "test3",
+ },
+ "actors": {
+ "0": "test1",
+ "1": "test2",
+ "2": "test3",
+ },
+ }
+
+def test_detail():
+ response = client.get("/print_detail", params={
+ "args": "test1"
+ })
+ assert response.status_code == 200
+ assert response.json() == "test1test1"
diff --git a/swarms/tools/google_places/__init__.py b/swarms/tools/google_places/__init__.py
new file mode 100644
index 00000000..0957ecb5
--- /dev/null
+++ b/swarms/tools/google_places/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("google_places")
+def google_places():
+ from .api import build_tool
+ return build_tool
\ No newline at end of file
diff --git a/swarms/tools/google_places/api.py b/swarms/tools/google_places/api.py
new file mode 100644
index 00000000..150c235b
--- /dev/null
+++ b/swarms/tools/google_places/api.py
@@ -0,0 +1,93 @@
+import requests
+import json
+from ..tool import Tool
+import os
+
+from typing import Any, Dict, List, Optional
+
+import googlemaps
+
+class GooglePlacesAPIWrapper:
+ def __init__(self, subscription_key) -> None:
+ self.gplaces_api_key: str = subscription_key
+ self.google_map_client = googlemaps.Client(self.gplaces_api_key)
+ self.top_k_results: Optional[int] = None
+
+ def run(self, query: str) -> str:
+ """Run Places search and get k number of places that exists that match."""
+ search_results = self.google_map_client.places(query)["results"]
+ num_to_return = len(search_results)
+
+ places = []
+
+ if num_to_return == 0:
+ return "Google Places did not find any places that match the description"
+
+ num_to_return = (
+ num_to_return
+ if self.top_k_results is None
+ else min(num_to_return, self.top_k_results)
+ )
+
+ for i in range(num_to_return):
+ result = search_results[i]
+ details = self.fetch_place_details(result["place_id"])
+
+ if details is not None:
+ places.append(details)
+
+ return "\n".join([f"{i+1}. {item}" for i, item in enumerate(places)])
+
+ def fetch_place_details(self, place_id: str) -> Optional[str]:
+ try:
+ place_details = self.google_map_client.place(place_id)
+ formatted_details = self.format_place_details(place_details)
+ return formatted_details
+ except Exception as e:
+ logging.error(f"An Error occurred while fetching place details: {e}")
+ return None
+
+ def format_place_details(self, place_details: Dict[str, Any]) -> Optional[str]:
+ try:
+ name = place_details.get("result", {}).get("name", "Unkown")
+ address = place_details.get("result", {}).get(
+ "formatted_address", "Unknown"
+ )
+ phone_number = place_details.get("result", {}).get(
+ "formatted_phone_number", "Unknown"
+ )
+ website = place_details.get("result", {}).get("website", "Unknown")
+
+ formatted_details = (
+ f"{name}\nAddress: {address}\n"
+ f"Phone: {phone_number}\nWebsite: {website}\n\n"
+ )
+ return formatted_details
+ except Exception as e:
+ logging.error(f"An error occurred while formatting place details: {e}")
+ return None
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "google_places",
+ "Look up for information about places and locations",
+ name_for_model="google_places",
+ description_for_model=(
+ "A tool that query the Google Places API. "
+ "Useful for when you need to validate or "
+ "discover addressed from ambiguous text. "
+ "Input should be a search query."
+ ),
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+ api_wrapper = GooglePlacesAPIWrapper(config["subscription_key"])
+
+ @tool.get("/search_places")
+ def search_places(query : str):
+ """Run Places search."""
+ return str(api_wrapper.run(query))
+
+ return tool
\ No newline at end of file
diff --git a/swarms/tools/google_places/readme.md b/swarms/tools/google_places/readme.md
new file mode 100644
index 00000000..5a2ec64c
--- /dev/null
+++ b/swarms/tools/google_places/readme.md
@@ -0,0 +1,25 @@
+# Google Places Queries
+
+Contributor: [Sihan Zhao](https://github.com/Sarah816)
+
+## Tool Description
+The "Google Places" tool allows you to fetch information about places and locations by querying the Google Places API. This tool can be especially useful when you need to validate or discover addresses from ambiguous text.
+
+### Tool Specifications
+
+- **Name**: Google Places
+- **Purpose**: Look up for information about places and locations
+- **Name for Model**: google_places
+- **Model Description**: A tool that query the Google Places API. Useful for when you need to validate or discover addressed from ambiguous text. Input should be a search query.
+- **Contact Email**: hello@contact.com
+- **Legal Information URL**: hello@legal.com
+
+### Core Functionality
+
+1. `search_places`
+
+ This method accepts a string argument that contains a search query. It queries the Google Places API with the given input and returns information about the corresponding places and locations.
+
+The tool leverages a fictional wrapper class called `GooglePlacesAPIWrapper` to interact with the Google Places API and execute the required functionalities.
+
+**note**: The GooglePlacesAPIWrapper is a placeholder here and in a real-world scenario, this should be replaced with a properly implemented class that can fetch data from the Google Places API. The Google Places API itself requires an API key for access, which is not provided in this code.
\ No newline at end of file
diff --git a/swarms/tools/google_places/test.py b/swarms/tools/google_places/test.py
new file mode 100644
index 00000000..4e3b3bb8
--- /dev/null
+++ b/swarms/tools/google_places/test.py
@@ -0,0 +1,12 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'google_places', "http://127.0.0.1:8079/tools/google_places/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("Where is Tsinghua University?")
+agent("List a few locations of KFC in Beijing.")
\ No newline at end of file
diff --git a/swarms/tools/google_scholar/__init__.py b/swarms/tools/google_scholar/__init__.py
new file mode 100644
index 00000000..ed5762ff
--- /dev/null
+++ b/swarms/tools/google_scholar/__init__.py
@@ -0,0 +1,7 @@
+
+from ..registry import register
+
+@register("google_scholar")
+def google_scholar():
+ from .api import build_tool
+ return build_tool
diff --git a/swarms/tools/google_scholar/api.py b/swarms/tools/google_scholar/api.py
new file mode 100644
index 00000000..ee2daf53
--- /dev/null
+++ b/swarms/tools/google_scholar/api.py
@@ -0,0 +1,223 @@
+import requests
+import json
+from datetime import date, datetime, timedelta
+import os
+from ..tool import Tool
+from typing import Optional, List, Dict, Any
+from serpapi import GoogleSearch
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Google Scholar Info",
+ "Look up google scholar information",
+ name_for_model="Google_Scholar",
+ description_for_model="Plugin for look up Google Scholar information",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ KEY = config["subscription_key"]
+
+ @tool.get("/search_google_scholar")
+ def search_google_scholar(
+ query: str,
+ engine: str = "google_scholar",
+ cites: Optional[str] = None,
+ as_ylo: Optional[int] = None,
+ as_yhi: Optional[int] = None,
+ scisbd: Optional[int] = None,
+ cluster: Optional[str] = None,
+ hl: Optional[str] = None,
+ lr: Optional[str] = None,
+ start: Optional[int] = None,
+ num: Optional[int] = None,
+ as_sdt: Optional[str] = None,
+ safe: Optional[str] = None,
+ filter: Optional[str] = None,
+ as_vis: Optional[str] = None,
+ ):
+ """
+ Search for scholarly articles based on a query according to the google scholar
+ :param query: The query to search for.
+ :param engine: The search engine to use, default is "google_scholar"
+ :param cites: The unique ID of an article for triggering "Cited By" searches
+ :param as_ylo: The starting year for results (e.g., if as_ylo=2018, results before this year will be omitted)
+ :param as_yhi: The ending year for results (e.g., if as_yhi=2018, results after this year will be omitted)
+ :param scisbd: Defines articles added in the last year, sorted by date. It can be set to 1 to include only abstracts, or 2 to include everything
+ :param cluster: The unique ID of an article for triggering "All Versions" searches
+ :param hl: The language to use for the Google Scholar search
+ :param lr: One or multiple languages to limit the search to
+ :param start: The result offset for pagination (0 is the first page of results, 10 is the 2nd page, etc.)
+ :param num: The maximum number of results to return, limited to 20
+ :param as_sdt: Can be used either as a search type or a filter
+ :param safe: The level of filtering for adult content
+ :param filter: Defines if the filters for 'Similar Results' and 'Omitted Results' are on or off
+ :param as_vis: Defines whether to include citations or not
+ :return: Return a list of dictionaries of the papers
+ """
+ params = {
+ "q": query,
+ "engine": engine,
+ "api_key": KEY,
+ "cites": cites,
+ "as_ylo": as_ylo,
+ "as_yhi": as_yhi,
+ "scisbd": scisbd,
+ "cluster": cluster,
+ "hl": hl,
+ "lr": lr,
+ "start": start,
+ "num": num,
+ "as_sdt": as_sdt,
+ "safe": safe,
+ "filter": filter,
+ "as_vis": as_vis
+ }
+
+ search = GoogleSearch(params)
+ results = search.get_dict()
+ organic_results = results["organic_results"]
+
+ return organic_results
+
+ @tool.get("/search_author")
+ def search_author(
+ author_id: str,
+ hl: Optional[str] = None,
+ view_op: Optional[str] = None,
+ sort: Optional[str] = None,
+ citation_id: Optional[str] = None,
+ start: Optional[int] = None,
+ num: Optional[int] = None,
+ no_cache: Optional[bool] = None,
+ async_req: Optional[bool] = None,
+ output: Optional[str] = None
+ ):
+ """
+ Search for an author using the Google Scholar Author API.
+ :param author_id: Required. The ID of an author.
+ :param hl: Optional. The language to use for the Google Scholar Author search. Default is 'en'.
+ :param view_op: Optional. Used for viewing specific parts of a page.
+ :param sort: Optional. Used for sorting and refining articles.
+ :param citation_id: Optional. Used for retrieving individual article citation.
+ :param start: Optional. Defines the result offset. Default is 0.
+ :param num: Optional. Defines the number of results to return. Default is 20.
+ :param no_cache: Optional. Forces SerpApi to fetch the results even if a cached version is already present. Default is False.
+ :param async_req: Optional. Defines the way you want to submit your search to SerpApi. Default is False.
+ :param output: Optional. Defines the final output you want. Default is 'json'.
+ :return: Returns the search results of the author basic information.
+ """
+ params = {
+ "engine": "google_scholar_author",
+ "author_id": author_id,
+ "api_key": KEY,
+ "hl": hl,
+ "view_op": view_op,
+ "sort": sort,
+ "citation_id": citation_id,
+ "start": start,
+ "num": num,
+ "no_cache": no_cache,
+ "async": async_req,
+ "output": output
+ }
+
+
+ search = GoogleSearch(params)
+ results = search.get_dict()
+ author = results["author"]
+
+ return author
+
+ @tool.get("/get_citation")
+ def get_citation(
+ q: str,
+ no_cache: Optional[bool] = None,
+ async_: Optional[bool] = None,
+ output: Optional[str] = 'json') -> Dict[str, Any]:
+ """
+ Function to get citation results from the Google Scholar organic results using the Google Scholar Cite API.
+
+ Parameters:
+ q (str): ID of an individual Google Scholar organic search result.
+ engine (str, optional): Set to 'google_scholar_cite' to use the Google Scholar API engine. Defaults to 'google_scholar_cite'.
+ no_cache (bool, optional): If set to True, will force SerpApi to fetch the Google Scholar Cite results even if a cached version is already present. Defaults to None.
+ async_ (bool, optional): If set to True, will submit search to SerpApi and retrieve results later. Defaults to None.
+ api_key (str): SerpApi private key to use.
+ output (str, optional): Final output format. Set to 'json' to get a structured JSON of the results, or 'html' to get the raw html retrieved. Defaults to 'json'.
+
+ Returns:
+ Dict[str, Any]: Returns the search results in the specified format.
+ """
+
+ params = {
+ "q": q,
+ "engine": 'google_scholar_cite',
+ "no_cache": no_cache,
+ "async": async_,
+ "api_key": KEY,
+ "output": output
+ }
+
+ search = GoogleSearch(params)
+ results = search.get_dict()
+ citation = results["citations"]
+
+ return citation
+
+ @tool.get("/get_profile")
+ def get_profile(self,
+ mauthors: str,
+ hl: Optional[str] = 'en',
+ after_author: Optional[str] = None,
+ before_author: Optional[str] = None,
+ no_cache: Optional[bool] = False,
+ _async: Optional[bool] = False,
+ output: Optional[str] = 'json'
+ ) -> Dict:
+ """
+ The getProfile function is used to scrape profile results from the Google Scholar Profiles search page.
+
+ Args:
+ mauthors (str): Defines the author you want to search for.
+ hl (str, optional): Defines the language to use for the Google Scholar Profiles search.
+ It's a two-letter language code. (e.g., 'en' for English, 'es' for Spanish, or 'fr' for French).
+ Defaults to 'en'.
+ after_author (str, optional): Defines the next page token.
+ It is used for retrieving the next page results.
+ The parameter has the precedence over before_author parameter. Defaults to None.
+ before_author (str, optional): Defines the previous page token.
+ It is used for retrieving the previous page results. Defaults to None.
+ no_cache (bool, optional): Will force SerpApi to fetch the Google Scholar Profiles results even if a cached version is already present.
+ Defaults to False.
+ _async (bool, optional): Defines the way you want to submit your search to SerpApi. Defaults to False.
+ api_key (str): Defines the SerpApi private key to use.
+ output (str, optional): Defines the final output you want.
+ It can be set to 'json' (default) to get a structured JSON of the results,
+ or 'html' to get the raw html retrieved. Defaults to 'json'.
+
+ Returns:
+ Dict: The Google Scholar Profiles search results.
+ """
+ params = {
+ 'mauthors': mauthors,
+ 'engine':'google_scholar_profiles',
+ 'hl': hl,
+ 'after_author': after_author,
+ 'before_author': before_author,
+ 'engine': 'google_scholar_profiles',
+ 'no_cache': no_cache,
+ 'async': _async,
+ 'api_key': KEY,
+ 'output': output
+ }
+
+ search = GoogleSearch(params)
+ results = search.get_dict()
+ profile = results['profiles']
+
+ return profile
+
+ return tool
diff --git a/swarms/tools/google_scholar/readme.md b/swarms/tools/google_scholar/readme.md
new file mode 100644
index 00000000..c99f5de6
--- /dev/null
+++ b/swarms/tools/google_scholar/readme.md
@@ -0,0 +1,7 @@
+# Google Scholar Service
+
+Contributor: [Kunlun Zhu](https://github.com/Kunlun-Zhu)
+
+Before you use this tool: pip install google-serp-api
+
+You can get your SerpAPI key here: https://serpapi.com/
\ No newline at end of file
diff --git a/swarms/tools/google_scholar/test.py b/swarms/tools/google_scholar/test.py
new file mode 100644
index 00000000..fad47de7
--- /dev/null
+++ b/swarms/tools/google_scholar/test.py
@@ -0,0 +1,11 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'Google_Scholar', "http://127.0.0.1:8079/tools/google_scholar/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("Search the profile of Jeffery Hinton?")
\ No newline at end of file
diff --git a/swarms/tools/google_serper/__init__.py b/swarms/tools/google_serper/__init__.py
new file mode 100644
index 00000000..b7c6dfb8
--- /dev/null
+++ b/swarms/tools/google_serper/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("google_serper")
+def google_serper():
+ from .api import build_tool
+ return build_tool
\ No newline at end of file
diff --git a/swarms/tools/google_serper/api.py b/swarms/tools/google_serper/api.py
new file mode 100644
index 00000000..ac27ed39
--- /dev/null
+++ b/swarms/tools/google_serper/api.py
@@ -0,0 +1,124 @@
+import requests
+import json
+from ..tool import Tool
+import os
+
+from typing import Any, Dict, List, Optional
+import aiohttp
+from pydantic.main import BaseModel
+from pydantic.class_validators import root_validator
+
+class GoogleSerperAPIWrapper:
+ def __init__(self, subscription_key) -> None:
+ self.k: int = 10
+ self.gl: str = "us"
+ self.hl: str = "en"
+ self.type: str = "search" # type: search, images, places, news
+ self.tbs: Optional[str] = None
+ self.serper_api_key: str = subscription_key
+ self.aiosession: Optional[aiohttp.ClientSession] = None
+
+ def results(self, query: str, **kwargs: Any) -> Dict:
+ """Run query through GoogleSearch."""
+ return self._google_serper_search_results(
+ query,
+ gl=self.gl,
+ hl=self.hl,
+ num=self.k,
+ tbs=self.tbs,
+ search_type=self.type,
+ **kwargs,
+ )
+
+ def run(self, query: str, **kwargs: Any) -> str:
+ """Run query through GoogleSearch and parse result."""
+ results = self._google_serper_search_results(
+ query,
+ gl=self.gl,
+ hl=self.hl,
+ num=self.k,
+ tbs=self.tbs,
+ search_type=self.type,
+ **kwargs,
+ )
+ return self._parse_results(results)
+
+ def _parse_snippets(self, results: dict) -> List[str]:
+ snippets = []
+
+ if results.get("answerBox"):
+ answer_box = results.get("answerBox", {})
+ if answer_box.get("answer"):
+ return [answer_box.get("answer")]
+ elif answer_box.get("snippet"):
+ return [answer_box.get("snippet").replace("\n", " ")]
+ elif answer_box.get("snippetHighlighted"):
+ return answer_box.get("snippetHighlighted")
+
+ if results.get("knowledgeGraph"):
+ kg = results.get("knowledgeGraph", {})
+ title = kg.get("title")
+ entity_type = kg.get("type")
+ if entity_type:
+ snippets.append(f"{title}: {entity_type}.")
+ description = kg.get("description")
+ if description:
+ snippets.append(description)
+ for attribute, value in kg.get("attributes", {}).items():
+ snippets.append(f"{title} {attribute}: {value}.")
+
+ for result in results["organic"][: self.k]:
+ if "snippet" in result:
+ snippets.append(result["snippet"])
+ for attribute, value in result.get("attributes", {}).items():
+ snippets.append(f"{attribute}: {value}.")
+
+ if len(snippets) == 0:
+ return ["No good Google Search Result was found"]
+ return snippets
+
+ def _parse_results(self, results: dict) -> str:
+ return " ".join(self._parse_snippets(results))
+
+ def _google_serper_search_results(
+ self, search_term: str, search_type: str = "search", **kwargs: Any
+ ) -> dict:
+ headers = {
+ "X-API-KEY": self.serper_api_key or "",
+ "Content-Type": "application/json",
+ }
+ params = {
+ "q": search_term,
+ **{key: value for key, value in kwargs.items() if value is not None},
+ }
+ response = requests.post(
+ f"https://google.serper.dev/{search_type}", headers=headers, params=params
+ )
+ response.raise_for_status()
+ search_results = response.json()
+ return search_results
+
+
+def build_tool(config) -> Tool:
+
+ tool = Tool(
+ "google_serper",
+ "Look up for information from Serper.dev Google Search API",
+ name_for_model="google_serper",
+ description_for_model=(
+ "A low-cost Google Search API."
+ "Useful for when you need to answer questions about current events."
+ "Input should be a search query. Output is a JSON object of the query results"
+ ),
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+ api_wrapper = GoogleSerperAPIWrapper(config["subscription_key"])
+
+ @tool.get("/search_general")
+ def search_general(query : str):
+ """Run query through GoogleSearch and parse result."""
+ return str(api_wrapper.run(query))
+
+ return tool
\ No newline at end of file
diff --git a/swarms/tools/google_serper/readme.md b/swarms/tools/google_serper/readme.md
new file mode 100644
index 00000000..6d15b899
--- /dev/null
+++ b/swarms/tools/google_serper/readme.md
@@ -0,0 +1,26 @@
+# Google Serper Queries
+
+Contributor: [Sihan Zhao](https://github.com/Sarah816)
+
+## Tool Description
+The "google_serper" tool allows you to fetch information using the Serper.dev Google Search API. This is a low-cost Google Search API, highly useful when you need to answer questions about current events. The input should be a search query and the output is a JSON object of the query results.
+
+### Tool Specification
+
+- **Name**: google_serper
+- **Purpose**: Fetch information using the Serper.dev Google Search API
+- **Model Name**: google_serper
+- **Model Description**: A tool for querying the Serper.dev Google Search API
+- **Logo URL**: [logo](https://your-app-url.com/.well-known/logo.png)
+- **Contact Email**: hello@contact.com
+- **Legal Information URL**: hello@legal.com
+
+### Core Functionality
+
+1. `search_general`
+
+ This method runs the query through GoogleSearch and parses the result. The result is a JSON object of the query results.
+
+This tool uses a fictional `GoogleSerperAPIWrapper` class to interact with the Google Search API and perform the desired functionality. The actual implementation might need an API wrapper that can interact with the Google Search API.
+
+It's important to note that although the Google Search API wrapper used in this example is fictional, in reality, you would need to find an actual API that can perform Google searches and provide search results. As of my knowledge cutoff in September 2021, Google does not publicly provide its Search API, so you might need to explore alternative methods to retrieve this information while ensuring compliance with Google's terms of service.
\ No newline at end of file
diff --git a/swarms/tools/google_serper/test.py b/swarms/tools/google_serper/test.py
new file mode 100644
index 00000000..0409e18c
--- /dev/null
+++ b/swarms/tools/google_serper/test.py
@@ -0,0 +1,12 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'google_serper', "http://127.0.0.1:8079/tools/google_serper/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("Where was the current US President born?")
+agent("List 5 well-known Chinese restaurants in New York and their location.")
\ No newline at end of file
diff --git a/swarms/tools/gradio_tools/__init__.py b/swarms/tools/gradio_tools/__init__.py
new file mode 100644
index 00000000..40b8f0f1
--- /dev/null
+++ b/swarms/tools/gradio_tools/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("gradio_tools")
+def gradio():
+ from .api import build_tool
+ return build_tool
\ No newline at end of file
diff --git a/swarms/tools/gradio_tools/api.py b/swarms/tools/gradio_tools/api.py
new file mode 100644
index 00000000..0df6a438
--- /dev/null
+++ b/swarms/tools/gradio_tools/api.py
@@ -0,0 +1,72 @@
+from xml.dom.pulldom import SAX2DOM
+from ..tool import Tool
+from gradio_tools.tools import BarkTextToSpeechTool,StableDiffusionTool,DocQueryDocumentAnsweringTool,ImageCaptioningTool,StableDiffusionPromptGeneratorTool,TextToVideoTool,ImageToMusicTool,WhisperAudioTranscriptionTool,ClipInterrogatorTool
+from gradio_client.client import Job
+from gradio_client.utils import QueueError
+import time
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "GradioTool",
+ "Gradio_tools Converter",
+ name_for_model="gradio_tool",
+ description_for_model="Python library for converting Gradio apps into tools that can be leveraged by a large language model (LLM)-based agent to complete its task.",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+ @tool.get("/get_bark")
+ def bark(input : str)-> str:
+ '''Converting text into sounds that sound like a human read it.
+ '''
+ bk = BarkTextToSpeechTool()
+ return bk.run(input)
+ @tool.get("/get_qa")
+ def qa(input : str)-> str:
+ '''Answering questions from the image of the document.
+ '''
+ qa = DocQueryDocumentAnsweringTool()
+ return qa.run(input)
+ @tool.get("/get_imagecaption")
+ def imagecaption(input : str)-> str:
+ '''Creating a caption for an image.
+ '''
+ ic = ImageCaptioningTool()
+ return ic.run(input)
+ @tool.get("/get_promptgenerator")
+ def promptgenerator(input : str)-> str:
+ '''Generating a prompt for stable diffusion and other image and video generators based on text input.
+ '''
+ pg = StableDiffusionPromptGeneratorTool()
+ return pg.run(input)
+ @tool.get("/get_stablediffusion")
+ def stablediffusion(input : str)-> str:
+ '''generate images based on text input.
+ '''
+ sd = StableDiffusionTool()
+ return sd.run(input)
+ @tool.get("/get_texttovideo")
+ def texttovideo(input : str)-> str:
+ '''Creating videos from text.
+ '''
+ tv = TextToVideoTool()
+ return tv.run(input)
+ @tool.get("/get_imgtomsc")
+ def imgtomsc(input : str)-> str:
+ '''Creating music from images.
+ '''
+ im = ImageToMusicTool()
+ return im.run(input)
+ @tool.get("/get_audiotrans")
+ def imgtomsc(input : str)-> str:
+ '''Transcribing an audio file track into text transcript.
+ '''
+ at = WhisperAudioTranscriptionTool()
+ return at.run(input)
+ @tool.get("/get_imgprompt")
+ def imgprompt(input : str)-> str:
+ '''Creating a prompt for StableDiffusion that matches the input image.
+ '''
+ ci = ClipInterrogatorTool()
+ return ci.run(input)
+ return tool
\ No newline at end of file
diff --git a/swarms/tools/gradio_tools/florida-drivers-license.jpeg b/swarms/tools/gradio_tools/florida-drivers-license.jpeg
new file mode 100644
index 00000000..07c44fa4
Binary files /dev/null and b/swarms/tools/gradio_tools/florida-drivers-license.jpeg differ
diff --git a/swarms/tools/gradio_tools/readme.md b/swarms/tools/gradio_tools/readme.md
new file mode 100644
index 00000000..5d3b457d
--- /dev/null
+++ b/swarms/tools/gradio_tools/readme.md
@@ -0,0 +1,16 @@
+# Gradio Tool
+`gradio_tools` provides a collection of pre-built tools that can be used immediately. These tools include:
+1. get_stablediffusion - Generate an image from a given prompt using the open source stable diffusion demo hosted on [HuggingFace spaces](https://huggingface.co/spaces/stabilityai/stable-diffusion)
+2. get_imagecaption - Caption an image by providing a filepath based on Niels Rogge's [HuggingFace Space](https://huggingface.co/spaces/nielsr/comparing-captioning-models)
+3. get_imgtomsc - Create an audio clip that matches the style of a given image file based on Sylvain Filoni's [HuggingFace Space](https://huggingface.co/spaces/fffiloni/img-to-music)
+4. get_promptgenerator - Use this tool to improve a prompt for stable diffusion and other image generators based on this [HuggingFace Space](https://huggingface.co/spaces/microsoft/Promptist)
+5. get_texttovideo - A tool for creating short videos from text. Based on this [HuggingFace Space](https://huggingface.co/spaces/damo-vilab/modelscope-text-to-video-synthesis)
+6. get_audiotrans - A tool for transcribing audio with Whisper. Based on this [HuggingFace Space](https://huggingface.co/spaces/abidlabs/whisper)
+7. get_imgprompt - A tool for reverse engineering a prompt from a source image. Based on this [HuggingFace Space](https://huggingface.co/spaces/pharma/CLIP-Interrogator)
+8. get_qa - A tool for answering questions about a document from the from the image of the document. Based on this [HuggingFace Space](https://huggingface.co/spaces/abidlabs/docquery)
+9. get_bark - A tool for text-to-speech. Based on this [HuggingFace Space](https://huggingface.co/spaces/suno/bark)
+
+Contributor: [Junxi Yan](https://github.com/yanjx2021)
+
+### Acknowledgments
+- [Gradio Tools](https://github.com/freddyaboulton/gradio-tools)
\ No newline at end of file
diff --git a/swarms/tools/gradio_tools/test.py b/swarms/tools/gradio_tools/test.py
new file mode 100644
index 00000000..33f765ed
--- /dev/null
+++ b/swarms/tools/gradio_tools/test.py
@@ -0,0 +1,24 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+import pathlib
+# Langchain
+tool_name, tool_url = 'gradio_tools', "http://127.0.0.1:8079/tools/gradio_tools/"
+
+tool_name, tool_config = load_single_tools(tool_name, tool_url)
+
+print(tool_name, tool_config)
+stqa = STQuestionAnswerer()
+
+agent = stqa.load_tools(tool_name, tool_config)
+
+#test ToVideoTool
+agent("Create a video for a panda eating bamboo on a rock.")
+
+#test BarkTextToSpeechTool, StableDiffusionTool, StableDiffusionPromptGeneratorTool
+# agent("Please create a jingle for a spanish company called 'Chipi Chups' that makes lollipops. "
+# "The jingle should be catchy and playful and meant to appeal to all ages.")
+
+#test DocQueryDocumentAnsweringTool,ImageCaptioningTool
+IMG_PATH = pathlib.Path(__file__).parent / "florida-drivers-license.jpeg"
+agent(f"Captioning the picture in {IMG_PATH}?The Action in langchain should follow the format:'Action:API's name'.For example,'Action:get_imagecaption.'")
+# agent(f"Create music from picture in {IMG_PATH}?The Action in langchain should follow the format:'Action:API's name'.For example,'Action:get_imgtomsc.'")
+# agent(f"What is the date of birth the driver in {IMG_PATH}?The Action in langchain should follow the format:'Action:API's name'.For example,'Action:get_qa.'")
\ No newline at end of file
diff --git a/swarms/tools/gradio_tools/tools/__init__.py b/swarms/tools/gradio_tools/tools/__init__.py
new file mode 100644
index 00000000..7088b79a
--- /dev/null
+++ b/swarms/tools/gradio_tools/tools/__init__.py
@@ -0,0 +1,26 @@
+from gradio_tools.tools.bark import BarkTextToSpeechTool
+from gradio_tools.tools.clip_interrogator import ClipInterrogatorTool
+from gradio_tools.tools.document_qa import DocQueryDocumentAnsweringTool
+from gradio_tools.tools.gradio_tool import GradioTool
+from gradio_tools.tools.image_captioning import ImageCaptioningTool
+from gradio_tools.tools.image_to_music import ImageToMusicTool
+from gradio_tools.tools.prompt_generator import \
+ StableDiffusionPromptGeneratorTool
+from gradio_tools.tools.stable_diffusion import StableDiffusionTool
+from gradio_tools.tools.text_to_video import TextToVideoTool
+from gradio_tools.tools.whisper import WhisperAudioTranscriptionTool
+from gradio_tools.tools.sam_with_clip import SAMImageSegmentationTool
+
+__all__ = [
+ "GradioTool",
+ "StableDiffusionTool",
+ "ClipInterrogatorTool",
+ "ImageCaptioningTool",
+ "ImageToMusicTool",
+ "WhisperAudioTranscriptionTool",
+ "StableDiffusionPromptGeneratorTool",
+ "TextToVideoTool",
+ "DocQueryDocumentAnsweringTool",
+ "BarkTextToSpeechTool",
+ "SAMImageSegmentationTool"
+]
diff --git a/swarms/tools/gradio_tools/tools/bark.py b/swarms/tools/gradio_tools/tools/bark.py
new file mode 100644
index 00000000..2b2ca2c5
--- /dev/null
+++ b/swarms/tools/gradio_tools/tools/bark.py
@@ -0,0 +1,87 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+from gradio_client.client import Job
+
+from gradio_tools.tools.gradio_tool import GradioTool
+
+if TYPE_CHECKING:
+ import gradio as gr
+
+SUPPORTED_LANGS = [
+ ("English", "en"),
+ ("German", "de"),
+ ("Spanish", "es"),
+ ("French", "fr"),
+ ("Hindi", "hi"),
+ ("Italian", "it"),
+ ("Japanese", "ja"),
+ ("Korean", "ko"),
+ ("Polish", "pl"),
+ ("Portuguese", "pt"),
+ ("Russian", "ru"),
+ ("Turkish", "tr"),
+ ("Chinese", "zh"),
+]
+
+SUPPORTED_LANGS = {lang: code for lang, code in SUPPORTED_LANGS}
+VOICES = ["Unconditional", "Announcer"]
+SUPPORTED_SPEAKERS = VOICES + [p for p in SUPPORTED_LANGS]
+
+NON_SPEECH_TOKENS = [
+ "[laughter]",
+ "[laughs]",
+ "[sighs]",
+ "[music]",
+ "[gasps]",
+ "[clears throat]",
+ "'♪' for song lyrics. Put ♪ on either side of the the text",
+ "'…' for hesitations",
+]
+
+
+class BarkTextToSpeechTool(GradioTool):
+ """Tool for calling bark text-to-speech llm."""
+
+ def __init__(
+ self,
+ name="BarkTextToSpeech",
+ description=(
+ "A tool for text-to-speech. Use this tool to convert text "
+ "into sounds that sound like a human read it. Input will be a two strings separated by a |: "
+ "the first will be the text to read. The second will be the desired speaking language. "
+ f"It MUST be one of the following choices {','.join(SUPPORTED_SPEAKERS)}. "
+ f"Additionally, you can include the following non speech tokens: {NON_SPEECH_TOKENS}"
+ "The output will the text transcript of that file."
+ ),
+ src="suno/bark",
+ hf_token=None,
+ duplicate=False,
+ ) -> None:
+ super().__init__(name, description, src, hf_token, duplicate)
+
+ def create_job(self, query: str) -> Job:
+ try:
+ text, speaker = (
+ query[: query.rindex("|")],
+ query[(query.rindex("|") + 1) :].strip(),
+ )
+ except ValueError:
+ text, speaker = query, "Unconditional"
+ if speaker in VOICES:
+ pass
+ elif speaker in SUPPORTED_LANGS:
+ speaker = f"Speaker 0 ({SUPPORTED_LANGS[speaker]})"
+ else:
+ speaker = "Unconditional"
+ return self.client.submit(text, speaker, fn_index=3)
+
+ def postprocess(self, output: str) -> str:
+ return output
+
+ def _block_input(self, gr) -> "gr.components.Component":
+ return gr.Textbox()
+
+ def _block_output(self, gr) -> "gr.components.Component":
+ return gr.Audio()
diff --git a/swarms/tools/gradio_tools/tools/clip_interrogator.py b/swarms/tools/gradio_tools/tools/clip_interrogator.py
new file mode 100644
index 00000000..c8f2fa92
--- /dev/null
+++ b/swarms/tools/gradio_tools/tools/clip_interrogator.py
@@ -0,0 +1,35 @@
+from typing import TYPE_CHECKING
+
+from gradio_client.client import Job
+
+from gradio_tools.tools.gradio_tool import GradioTool
+
+if TYPE_CHECKING:
+ import gradio as gr
+
+
+class ClipInterrogatorTool(GradioTool):
+ def __init__(
+ self,
+ name="ClipInterrogator",
+ description=(
+ "A tool for reverse engineering a prompt from a source image. "
+ "Use this tool to create a prompt for StableDiffusion that matches the "
+ "input image. The imput is a path to an image. The output is a text string."
+ ),
+ src="pharma/CLIP-Interrogator",
+ hf_token=None,
+ duplicate=True,
+ ) -> None:
+ super().__init__(name, description, src, hf_token, duplicate)
+
+ def create_job(self, query: str) -> Job:
+ return self.client.submit(
+ query, "ViT-L (best for Stable Diffusion 1.*)", "best", fn_index=3
+ )
+
+ def postprocess(self, output: str) -> str:
+ return output
+
+ def _block_input(self, gr) -> "gr.components.Component":
+ return gr.Image()
diff --git a/swarms/tools/gradio_tools/tools/document_qa.py b/swarms/tools/gradio_tools/tools/document_qa.py
new file mode 100644
index 00000000..6ee41e51
--- /dev/null
+++ b/swarms/tools/gradio_tools/tools/document_qa.py
@@ -0,0 +1,33 @@
+from typing import TYPE_CHECKING
+
+from gradio_client.client import Job
+
+from gradio_tools.tools.gradio_tool import GradioTool
+
+if TYPE_CHECKING:
+ import gradio as gr
+
+
+class DocQueryDocumentAnsweringTool(GradioTool):
+ def __init__(
+ self,
+ name="DocQuery",
+ description=(
+ "A tool for answering questions about a document from the from the image of the document. Input will be a two strings separated by a comma: the first will be the path or URL to an image of a document. The second will be your question about the document."
+ "The output will the text answer to your question."
+ ),
+ src="abidlabs/docquery",
+ hf_token=None,
+ duplicate=True,
+ ) -> None:
+ super().__init__(name, description, src, hf_token, duplicate)
+
+ def create_job(self, query: str) -> Job:
+ img, question = query.split(",")
+ return self.client.submit(img.strip(), question.strip(), api_name="/predict")
+
+ def postprocess(self, output: str) -> str:
+ return output
+
+ def _block_input(self, gr) -> "gr.components.Component":
+ return gr.Image()
diff --git a/swarms/tools/gradio_tools/tools/gradio_tool.py b/swarms/tools/gradio_tools/tools/gradio_tool.py
new file mode 100644
index 00000000..40c365e3
--- /dev/null
+++ b/swarms/tools/gradio_tools/tools/gradio_tool.py
@@ -0,0 +1,126 @@
+from __future__ import annotations
+
+import time
+from abc import abstractmethod
+from typing import Any, Tuple, Union
+
+import gradio_client as grc
+import huggingface_hub
+from gradio_client.client import Job
+from gradio_client.utils import QueueError
+
+try:
+ import langchain as lc
+
+ LANGCHAIN_INSTALLED = True
+except (ModuleNotFoundError, ImportError):
+ LANGCHAIN_INSTALLED = False
+
+
+class GradioTool:
+ def __init__(
+ self,
+ name: str,
+ description: str,
+ src: str,
+ hf_token: str | None = None,
+ duplicate: bool = True,
+ ) -> None:
+ self.name = name
+ self.description = description
+ if hf_token and self._is_space(src) and duplicate:
+ self.client = grc.Client.duplicate(from_id=src, hf_token=hf_token)
+ self.src = self.client.space_id
+ else:
+ self.src = src
+ self.client = grc.Client(self.src, hf_token=hf_token)
+ self.description += (
+ "If the output is the string QUEUE_FULL you "
+ "should try this action again and never stop until you "
+ "don't see this message."
+ )
+ self._block = None
+
+ @staticmethod
+ def _is_space(src: str) -> bool:
+ try:
+ huggingface_hub.get_space_runtime(src)
+ return True
+ except huggingface_hub.hf_api.RepositoryNotFoundError:
+ return False
+
+ @abstractmethod
+ def create_job(self, query: str) -> Job:
+ pass
+
+ @abstractmethod
+ def postprocess(self, output: Union[Tuple[Any], Any]) -> str:
+ pass
+
+ def run(self, query: str):
+ job = self.create_job(query)
+ while not job.done():
+ status = job.status()
+ print(f"\nJob Status: {str(status.code)} eta: {status.eta}")
+ time.sleep(30)
+ try:
+ output = self.postprocess(job.result())
+ except QueueError:
+ output = "QUEUE_FULL"
+ return output
+
+ # Optional gradio functionalities
+ def _block_input(self, gr) -> "gr.components.Component":
+ return gr.Textbox()
+
+ def _block_output(self, gr) -> "gr.components.Component":
+ return gr.Textbox()
+
+ def block_input(self) -> "gr.components.Component":
+ try:
+ import gradio as gr
+
+ GRADIO_INSTALLED = True
+ except (ModuleNotFoundError, ImportError):
+ GRADIO_INSTALLED = False
+ if not GRADIO_INSTALLED:
+ raise ModuleNotFoundError("gradio must be installed to call block_input")
+ else:
+ return self._block_input(gr)
+
+ def block_output(self) -> "gr.components.Component":
+ try:
+ import gradio as gr
+
+ GRADIO_INSTALLED = True
+ except (ModuleNotFoundError, ImportError):
+ GRADIO_INSTALLED = False
+ if not GRADIO_INSTALLED:
+ raise ModuleNotFoundError("gradio must be installed to call block_output")
+ else:
+ return self._block_output(gr)
+
+ def block(self):
+ """Get the gradio Blocks of this tool for visualization."""
+ try:
+ import gradio as gr
+ except (ModuleNotFoundError, ImportError):
+ raise ModuleNotFoundError("gradio must be installed to call block")
+ if not self._block:
+ self._block = gr.load(name=self.src, src="spaces")
+ return self._block
+
+ # Optional langchain functionalities
+ @property
+ def langchain(self) -> "langchain.agents.Tool": # type: ignore
+ if not LANGCHAIN_INSTALLED:
+ raise ModuleNotFoundError(
+ "langchain must be installed to access langchain tool"
+ )
+
+ return lc.agents.Tool( # type: ignore
+ name=self.name, func=self.run, description=self.description
+ )
+
+ def __repr__(self) -> str:
+ return f"GradioTool(name={self.name}, src={self.src})"
diff --git a/swarms/tools/gradio_tools/tools/image_captioning.py b/swarms/tools/gradio_tools/tools/image_captioning.py
new file mode 100644
index 00000000..f5bc4ecf
--- /dev/null
+++ b/swarms/tools/gradio_tools/tools/image_captioning.py
@@ -0,0 +1,40 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+from gradio_client.client import Job
+
+from gradio_tools.tools.gradio_tool import GradioTool
+
+if TYPE_CHECKING:
+ import gradio as gr
+
+
+class ImageCaptioningTool(GradioTool):
+ """Tool for captioning images."""
+
+ def __init__(
+ self,
+ name="ImageCaptioner",
+ description=(
+ "An image captioner. Use this to create a caption for an image. "
+ "Input will be a path to an image file. "
+ "The output will be a caption of that image."
+ ),
+ src="taesiri/BLIP-2",
+ hf_token=None,
+ duplicate=True,
+ ) -> None:
+ super().__init__(name, description, src, hf_token, duplicate)
+
+ def create_job(self, query: str) -> Job:
+ return self.client.submit(query.strip("'"), "Beam Search", fn_index=0)
+
+ def postprocess(self, output: str) -> str:
+ return output # type: ignore
+
+ def _block_input(self, gr) -> "gr.components.Component":
+ return gr.Image()
+
+ def _block_output(self, gr) -> "gr.components.Component":
+ return gr.Textbox()
diff --git a/swarms/tools/gradio_tools/tools/image_to_music.py b/swarms/tools/gradio_tools/tools/image_to_music.py
new file mode 100644
index 00000000..37cfd8e7
--- /dev/null
+++ b/swarms/tools/gradio_tools/tools/image_to_music.py
@@ -0,0 +1,38 @@
+from typing import TYPE_CHECKING, Any, Tuple, Union
+
+from gradio_client.client import Job
+
+from gradio_tools.tools.gradio_tool import GradioTool
+
+if TYPE_CHECKING:
+ import gradio as gr
+
+
+class ImageToMusicTool(GradioTool):
+ def __init__(
+ self,
+ name="ImagetoMusic",
+ description=(
+ "A tool for creating music from images. Use this tool to create a musical "
+ "track from an image. Input will be a path to an image file. "
+ "The output will be an audio file generated from that image."
+ ),
+ src="fffiloni/img-to-music",
+ hf_token=None,
+ duplicate=False,
+ ) -> None:
+ super().__init__(name, description, src, hf_token, duplicate)
+
+ def create_job(self, query: str) -> Job:
+ return self.client.submit(
+ query.strip("'"), 15, "medium", "loop", None, fn_index=0
+ )
+
+ def postprocess(self, output: Union[Tuple[Any], Any]) -> str:
+ return output[1] # type: ignore
+
+ def _block_input(self, gr) -> "gr.components.Component":
+ return gr.Image()
+
+ def _block_output(self, gr) -> "gr.components.Component":
+ return gr.Audio()
diff --git a/swarms/tools/gradio_tools/tools/prompt_generator.py b/swarms/tools/gradio_tools/tools/prompt_generator.py
new file mode 100644
index 00000000..5e10b504
--- /dev/null
+++ b/swarms/tools/gradio_tools/tools/prompt_generator.py
@@ -0,0 +1,28 @@
+from __future__ import annotations
+
+from gradio_client.client import Job
+
+from gradio_tools.tools.gradio_tool import GradioTool
+
+
+class StableDiffusionPromptGeneratorTool(GradioTool):
+ def __init__(
+ self,
+ name="StableDiffusionPromptGenerator",
+ description=(
+ "Use this tool to improve a prompt for stable diffusion and other image and video generators. "
+ "This tool will refine your prompt to include key words and phrases that make "
+ "stable diffusion and other art generation algorithms perform better. The input is a prompt text string "
+ "and the output is a prompt text string"
+ ),
+ src="microsoft/Promptist",
+ hf_token=None,
+ duplicate=False,
+ ) -> None:
+ super().__init__(name, description, src, hf_token, duplicate)
+
+ def create_job(self, query: str) -> Job:
+ return self.client.submit(query, api_name="/predict")
+
+ def postprocess(self, output: str) -> str:
+ return output
diff --git a/swarms/tools/gradio_tools/tools/sam_with_clip.py b/swarms/tools/gradio_tools/tools/sam_with_clip.py
new file mode 100644
index 00000000..a29ac34b
--- /dev/null
+++ b/swarms/tools/gradio_tools/tools/sam_with_clip.py
@@ -0,0 +1,55 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+from gradio_client.client import Job
+
+from gradio_tools.tools.gradio_tool import GradioTool
+
+if TYPE_CHECKING:
+ import gradio as gr
+
+
+
+class SAMImageSegmentationTool(GradioTool):
+ """Tool for segmenting images based on natural language queries."""
+
+ def __init__(
+ self,
+ name="SAMImageSegmentation",
+ description=(
+ "A tool for identifying objects in images. "
+ "Input will be a five strings separated by a |: "
+ "the first will be the full path or URL to an image file. "
+ "The second will be the string query describing the objects to identify in the image. "
+ "The query string should be as detailed as possible. "
+ "The third will be the predicted_iou_threshold, if not specified by the user set it to 0.9. "
+ "The fourth will be the stability_score_threshold, if not specified by the user set it to 0.8. "
+ "The fifth is the clip_threshold, if not specified by the user set it to 0.85. "
+ "The output will the a path with an image file with the identified objects overlayed in the image."
+ ),
+ src="curt-park/segment-anything-with-clip",
+ hf_token=None,
+ duplicate=False,
+ ) -> None:
+ super().__init__(name, description, src, hf_token, duplicate)
+
+ def create_job(self, query: str) -> Job:
+ try:
+ image, query, predicted_iou_threshold, stability_score_threshold, clip_threshold = query.split("|")
+ except ValueError as e:
+ raise ValueError("Not enough arguments passed to the SAMImageSegmentationTool! "
+ "Expected 5 (image, query, predicted_iou_threshold, stability_score_threshold, clip_threshold)") from e
+ return self.client.submit(float(predicted_iou_threshold),
+ float(stability_score_threshold),
+ float(clip_threshold),
+ image, query.strip(), api_name="/predict")
+
+ def postprocess(self, output: str) -> str:
+ return output
+
+ def _block_input(self, gr) -> "gr.components.Component":
+ return gr.Textbox()
+
+ def _block_output(self, gr) -> "gr.components.Component":
+ return gr.Audio()
diff --git a/swarms/tools/gradio_tools/tools/stable_diffusion.py b/swarms/tools/gradio_tools/tools/stable_diffusion.py
new file mode 100644
index 00000000..d91c37c5
--- /dev/null
+++ b/swarms/tools/gradio_tools/tools/stable_diffusion.py
@@ -0,0 +1,46 @@
+from __future__ import annotations
+
+import os
+from typing import TYPE_CHECKING, Any, Tuple
+
+from gradio_client.client import Job
+
+from gradio_tools.tools.gradio_tool import GradioTool
+
+if TYPE_CHECKING:
+ import gradio as gr
+
+
+class StableDiffusionTool(GradioTool):
+ """Tool for calling stable diffusion from llm"""
+
+ def __init__(
+ self,
+ name="StableDiffusion",
+ description=(
+ "An image generator. Use this to generate images based on "
+ "text input. Input should be a description of what the image should "
+ "look like. The output will be a path to an image file."
+ ),
+ src="gradio-client-demos/stable-diffusion",
+ hf_token=None,
+ duplicate=False,
+ ) -> None:
+ super().__init__(name, description, src, hf_token, duplicate)
+
+ def create_job(self, query: str) -> Job:
+ return self.client.submit(query, "", 9, fn_index=1)
+
+ def postprocess(self, output: Tuple[Any] | Any) -> str:
+ assert isinstance(output, str)
+ return [
+ os.path.join(output, i)
+ for i in os.listdir(output)
+ if not i.endswith("json")
+ ][0]
+
+ def _block_input(self, gr) -> "gr.components.Component":
+ return gr.Textbox()
+
+ def _block_output(self, gr) -> "gr.components.Component":
+ return gr.Image()
diff --git a/swarms/tools/gradio_tools/tools/text_to_video.py b/swarms/tools/gradio_tools/tools/text_to_video.py
new file mode 100644
index 00000000..cead3a0e
--- /dev/null
+++ b/swarms/tools/gradio_tools/tools/text_to_video.py
@@ -0,0 +1,34 @@
+from typing import TYPE_CHECKING
+
+from gradio_client.client import Job
+
+from gradio_tools.tools.gradio_tool import GradioTool
+
+if TYPE_CHECKING:
+ import gradio as gr
+
+
+class TextToVideoTool(GradioTool):
+ def __init__(
+ self,
+ name="TextToVideo",
+ description=(
+ "A tool for creating videos from text."
+ "Use this tool to create videos from text prompts. "
+ "Input will be a text prompt describing a video scene. "
+ "The output will be a path to a video file."
+ ),
+ src="damo-vilab/modelscope-text-to-video-synthesis",
+ hf_token=None,
+ duplicate=False,
+ ) -> None:
+ super().__init__(name, description, src, hf_token, duplicate)
+
+ def create_job(self, query: str) -> Job:
+ return self.client.submit(query, -1, 16, 25, fn_index=1)
+
+ def postprocess(self, output: str) -> str:
+ return output
+
+ def _block_output(self, gr) -> "gr.components.Component":
+ return gr.Video()
diff --git a/swarms/tools/gradio_tools/tools/whisper.py b/swarms/tools/gradio_tools/tools/whisper.py
new file mode 100644
index 00000000..853a78f7
--- /dev/null
+++ b/swarms/tools/gradio_tools/tools/whisper.py
@@ -0,0 +1,35 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+from gradio_client.client import Job
+
+from gradio_tools.tools.gradio_tool import GradioTool
+
+if TYPE_CHECKING:
+ import gradio as gr
+
+
+class WhisperAudioTranscriptionTool(GradioTool):
+ def __init__(
+ self,
+ name="WhisperAudioTranscription",
+ description=(
+ "A tool for transcribing audio. Use this tool to transcribe an audio file. "
+ "track from an image. Input will be a path to an audio file. "
+ "The output will the text transcript of that file."
+ ),
+ src="abidlabs/whisper",
+ hf_token=None,
+ duplicate=False,
+ ) -> None:
+ super().__init__(name, description, src, hf_token, duplicate)
+
+ def create_job(self, query: str) -> Job:
+ return self.client.submit(query, api_name="/predict")
+
+ def postprocess(self, output: str) -> str:
+ return output
+
+ def _block_input(self, gr) -> "gr.components.Component":
+ return gr.Audio()
diff --git a/swarms/tools/hugging_tools/__init__.py b/swarms/tools/hugging_tools/__init__.py
new file mode 100644
index 00000000..5e81c144
--- /dev/null
+++ b/swarms/tools/hugging_tools/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("hugging_tools")
+def hugging_tools():
+ from .api import build_tool
+ return build_tool
diff --git a/swarms/tools/hugging_tools/api.py b/swarms/tools/hugging_tools/api.py
new file mode 100644
index 00000000..1c4dc49d
--- /dev/null
+++ b/swarms/tools/hugging_tools/api.py
@@ -0,0 +1,339 @@
+from functools import wraps
+import io
+import json
+import os
+import random
+import requests
+from ..tool import Tool
+from huggingface_hub.inference_api import InferenceApi
+import base64
+from io import BytesIO
+import os
+import random
+import uuid
+import requests
+from PIL import Image, ImageDraw
+from diffusers.utils import load_image
+from pydub import AudioSegment
+from huggingface_hub.inference_api import InferenceApi
+from huggingface_hub.utils._errors import RepositoryNotFoundError
+
+DIRPATH = os.path.dirname(os.path.abspath(__file__))
+
+CONFIG = {
+ "debug": False,
+ "log_file": None,
+ "huggingface": {
+ "token":os.environ.get("HUGGINGFACE_API_KEY")
+ },
+ "proxy": None,
+ "inference_mode": "huggingface",
+ "local_inference_endpoint": {
+ "host": "localhost",
+ "port": 8005
+ },
+ "huggingface_inference_endpoint": {
+ "host": "api-inference.huggingface.co",
+ "port": 443
+ },
+}
+
+HUGGINGFACE_HEADERS = {}
+if CONFIG["huggingface"]["token"] and CONFIG["huggingface"]["token"].startswith("hf_"): # Check for valid huggingface token in config file
+ HUGGINGFACE_HEADERS = {
+ "Authorization": f"Bearer {CONFIG['huggingface']['token']}",
+ }
+elif "HUGGINGFACE_ACCESS_TOKEN" in os.environ and os.getenv("HUGGINGFACE_API_KEY").startswith("hf_"): # Check for environment variable HUGGINGFACE_ACCESS_TOKEN
+ HUGGINGFACE_HEADERS = {
+ "Authorization": f"Bearer {os.getenv('HUGGINGFACE_API_KEY')}",
+ }
+else:
+ raise ValueError(f"Incrorrect HuggingFace token. Please check your file.")
+
+PROXY = None
+if CONFIG["proxy"]:
+ PROXY = {
+ "https": CONFIG["proxy"],
+ }
+
+INFERENCE_MODE = CONFIG["inference_mode"]
+
+DOCS_PATH = "sources/docs.json"
+
+INPUT_PATH = "files"
+OUTPUT_PATH = "files"
+
+MODEL_SERVER = None
+if INFERENCE_MODE!="huggingface":
+ MODEL_SERVER = "http://" + CONFIG["local_inference_endpoint"]["host"] + ":" + str(CONFIG["local_inference_endpoint"]["port"])
+ message = f"The server of local inference endpoints is not running, please start it first. (or using `inference_mode: huggingface` in for a feature-limited experience)"
+ try:
+ r = requests.get(MODEL_SERVER + "/running")
+ if r.status_code != 200:
+ raise ValueError(message)
+ except:
+ raise ValueError(message)
+
+def get_model_status(model_id, url, headers):
+ # endpoint_type = "huggingface" if "huggingface" in url else "local"
+ if "huggingface" in url:
+ r = requests.get(url + f"/{model_id}", headers=headers, proxies=PROXY)
+ else:
+ r = requests.get(url)
+ return r.status_code == 200 and "loaded" in r.json() and r.json()["loaded"]
+
+def image_to_bytes(img_url):
+ img_byte = io.BytesIO()
+ load_image(img_url).save(img_byte, format="png")
+ img_data = img_byte.getvalue()
+ return img_data
+
+def build_tool(conf) -> Tool:
+ task_list = []
+ tool = Tool(
+ tool_name="hugging_tools",
+ description="API interface for HuggingGPT-like applications.",
+ name_for_model="hugging_tools",
+ description_for_model='''This API interface provides easy access to popular models available on the Huggingface model hub. You MUST check model_docs to fetch the available models FIRST:
+ Action: model_docs
+ Action Input: {"task" : }
+ After that you can choose an available models. ''' ,
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="test@123.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ # set the get route to /func.__name__ and format docs
+ def task(func):
+ func.__doc__ = '''You MUST check model_docs to fetch the available models FIRST:
+ Action: model_docs
+ Action Input: {"task" : "%s"}
+ After that you can choose an available models in the list.
+ ''' % func.__name__
+ @wraps(func)
+ def try_run_task(*args, **kwargs):
+ try:
+ return func(*args, **kwargs)
+ except RepositoryNotFoundError as e:
+ return '''The model with model_id you input is not available. Plese check the model_docs to get other available models:
+ Action: model_docs
+ Action Input: {"task" : "%s"}
+ After that you can choose an available models in the list.
+ '''
+ path = "/" + func.__name__
+ try_run_task.route = path
+ task_list.append(func.__name__)
+ return tool.get(path)(try_run_task)
+
+ def format_docs(str):
+ def set_docs(func):
+ func.__doc__ = func.__doc__ % str
+ @wraps(func)
+ def original_func(*args, **kwargs):
+ return func(*args, **kwargs)
+ return original_func
+ return set_docs
+
+ @task
+ def question_answering(model_id: str, question: str, context: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ return str(inference({"question": question, "context" : (context if context else "")}))
+ @task
+ def sentence_similarity(model_id: str, text: str, context: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ return str(inference({"source_sentence": text, "sentences" : [(context if context else "")]}))
+ @task
+ def text_classification(model_id: str, text: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ return str(inference(text))
+ @task
+ def token_classification(model_id: str, text: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ return str(inference(text))
+ @task
+ def text2text_generation(model_id: str,text: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ return str(inference(text))
+ @task
+ def summarization(model_id: str, text: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ return str(inference(text))
+ @task
+ def translation(model_id: str, text: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ return str(inference(text))
+ @task
+ def conversational(model_id: str, text: str, past_user_inputs: str, generated_responses: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ input = {
+ "past_user_inputs": [past_user_inputs],
+ "generated_responses": [generated_responses],
+ "text": text,
+ }
+ return str(inference(input))
+ @task
+ def text_generation(model_id: str, text: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ return str(inference(text))
+ # CV tasks
+ @task
+ def visual_question_answering(model_id: str, image_file_name: str, text: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ img_data = image_to_bytes(f"{DIRPATH}/{INPUT_PATH}/{image_file_name}")
+ img_base64 = base64.b64encode(img_data).decode("utf-8")
+ return str(inference({"question": text, "image": img_base64}))
+ @task
+ def document_question_answering(model_id: str, image_file_name: str, text: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ img_data = image_to_bytes(f"{DIRPATH}/{INPUT_PATH}/{image_file_name}")
+ img_base64 = base64.b64encode(img_data).decode("utf-8")
+ return str(inference({"question": text, "image": img_base64}))
+ @task
+ def image_to_image(model_id: str, image_file_name: str) -> str:
+ img_data = image_to_bytes(f"{DIRPATH}/{INPUT_PATH}/{image_file_name}")
+ # result = inference(data=img_data) # not support
+ HUGGINGFACE_HEADERS["Content-Length"] = str(len(img_data))
+ task_url = f"https://api-inference.huggingface.co/models/{model_id}"
+ r = requests.post(task_url, headers=HUGGINGFACE_HEADERS, data=img_data)
+ name = str(uuid.uuid4())[:4]
+ result = f"{name}.jpeg"
+ with open(f"{DIRPATH}/{OUTPUT_PATH}/{result}", "wb") as f:
+ f.write(r.content)
+ return result
+ @task
+ def text_to_image(model_id: str, text: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ img = inference(text)
+ name = str(uuid.uuid4())[:4]
+ print(img.format)
+ image_type = "jpg" if img.format == "JPEG" else "png"
+ img.save(f"{DIRPATH}/{OUTPUT_PATH}/{name}.{image_type}")
+ result = f"{name}.{image_type}"
+ return result
+ @task
+ def image_segmentation(model_id: str, image_file_name: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ img_data = image_to_bytes(f"{DIRPATH}/{INPUT_PATH}/{image_file_name}")
+ image = Image.open(BytesIO(img_data))
+ predicted = inference(data=img_data)
+ colors = []
+ for i in range(len(predicted)):
+ colors.append((random.randint(100, 255), random.randint(100, 255), random.randint(100, 255), 155))
+ for i, pred in enumerate(predicted):
+ mask = pred.pop("mask").encode("utf-8")
+ mask = base64.b64decode(mask)
+ mask = Image.open(BytesIO(mask), mode='r')
+ mask = mask.convert('L')
+
+ layer = Image.new('RGBA', mask.size, colors[i])
+ image.paste(layer, (0, 0), mask)
+ name = str(uuid.uuid4())[:4]
+ image.save(f"{DIRPATH}/{OUTPUT_PATH}/{name}.jpg")
+ result = {}
+ result["generated image"] = f"{name}.jpg"
+ result["predicted"] = predicted
+ return str(result)
+ @task
+ def object_detection(model_id: str, image_file_name: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ img_data = image_to_bytes(f"{DIRPATH}/{INPUT_PATH}/{image_file_name}")
+ predicted = inference(data=img_data)
+ image = Image.open(BytesIO(img_data))
+ draw = ImageDraw.Draw(image)
+ labels = list(item['label'] for item in predicted)
+ color_map = {}
+ for label in labels:
+ if label not in color_map:
+ color_map[label] = (random.randint(0, 255), random.randint(0, 100), random.randint(0, 255))
+ for label in predicted:
+ box = label["box"]
+ draw.rectangle(((box["xmin"], box["ymin"]), (box["xmax"], box["ymax"])), outline=color_map[label["label"]], width=2)
+ draw.text((box["xmin"]+5, box["ymin"]-15), label["label"], fill=color_map[label["label"]])
+ name = str(uuid.uuid4())[:4]
+ image.save(f"{DIRPATH}/{OUTPUT_PATH}/{name}.jpg")
+ result = {}
+ result["generated image"] = f"{name}.jpg"
+ result["predicted"] = predicted
+ return str(result)
+ @task
+ def image_classification(model_id: str, image_file_name: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ img_data = image_to_bytes(f"{DIRPATH}/{INPUT_PATH}/{image_file_name}")
+ result = inference(data=img_data)
+ return str(result)
+ @task
+ def image_to_text(model_id: str, image_file_name: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ img_data = image_to_bytes(f"{DIRPATH}/{INPUT_PATH}/{image_file_name}")
+ result = inference(data=img_data)
+ return str(result)
+ # AUDIO tasks
+ @task
+ def text_to_speech(model_id: str, text: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ response = inference(text, raw_response=True)
+ name = str(uuid.uuid4())[:4]
+ with open(f"{DIRPATH}/{OUTPUT_PATH}/{name}.flac", "wb") as f:
+ f.write(response.content)
+ result = f"{name}.flac"
+ return result
+ @task
+ def automatic_speech_recognition(model_id: str, audio_file_name: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ with open(f"{DIRPATH}/{INPUT_PATH}/{audio_file_name}", "rb") as f:
+ audio = f.read()
+ text = inference(data=audio, raw_response=True)
+ result = text.content
+ return str(result)
+ @task
+ def audio_to_audio(model_id: str, audio_file_name: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ with open(f"{DIRPATH}/{INPUT_PATH}/{audio_file_name}", "rb") as f:
+ audio = f.read()
+ response = inference(data=audio, raw_response=True)
+ result = response.json()
+ content = None
+ type = None
+ for k, v in result[0].items():
+ if k == "blob":
+ content = base64.b64decode(v.encode("utf-8"))
+ if k == "content-type":
+ type = "audio/flac".split("/")[-1]
+ audio = AudioSegment.from_file(BytesIO(content))
+ name = str(uuid.uuid4())[:4]
+ audio.export(f"{DIRPATH}/{OUTPUT_PATH}/{name}.{type}", format=type)
+ result = f"{name}.{type}"
+ return result
+ @task
+ def audio_classification(model_id: str, audio_file_name: str) -> str:
+ inference = InferenceApi(repo_id=model_id, token=CONFIG["huggingface"]["token"])
+ with open(f"{DIRPATH}/{INPUT_PATH}/{audio_file_name}", "rb") as f:
+ audio = f.read()
+ response = inference(data=audio, raw_response=True)
+ result = response.json()
+ return str(result)
+
+ @tool.get("/model_docs")
+ @format_docs(str(task_list))
+ def model_docs(task: str) -> str:
+ '''returns a document about the usage, examples, and available models of existing API.
+
+ Every time before you use the API, you should get the document of EXISTING API ONLY and ONLY use the available models in the document.
+
+ task: the name of API, includes %s
+
+ return the document of the API.
+
+ example:
+ Action: model_docs
+ Action Input: {"task" : "question_answering"}
+ Observation: "question_answering is a function that uses a pre-trained language model to answer questions based on a given context.\n You can choose one model from: 'distilbert-base-uncased-distilled-squad', 'deepset/minilm-uncased-squad2', 'etalab-ia/camembert-base-squadFR-fquad-piaf'.\n\n Action Input: {\"model_id\" : \"distilbert-base-uncased-distilled-squad\", \"question\" : \"When did the first moon landing occur?\", \"context\" : \"The first manned moon landing was achieved by the United States on July 20, 1969, in the Apollo 11 mission.\"}\n "
+ '''
+ with open(f'{DIRPATH}/{DOCS_PATH}', 'r') as f:
+ docs = json.load(f)
+ if task in docs.keys():
+ return docs[task]
+ else:
+ return "The function doesn't exist. Please input the valid function name."
+
+ return tool
diff --git a/swarms/tools/hugging_tools/files/boat.png b/swarms/tools/hugging_tools/files/boat.png
new file mode 100644
index 00000000..401d5b56
Binary files /dev/null and b/swarms/tools/hugging_tools/files/boat.png differ
diff --git a/swarms/tools/hugging_tools/files/doc.jpg b/swarms/tools/hugging_tools/files/doc.jpg
new file mode 100644
index 00000000..4e037a31
Binary files /dev/null and b/swarms/tools/hugging_tools/files/doc.jpg differ
diff --git a/swarms/tools/hugging_tools/files/test.flac b/swarms/tools/hugging_tools/files/test.flac
new file mode 100644
index 00000000..5d3e61d0
Binary files /dev/null and b/swarms/tools/hugging_tools/files/test.flac differ
diff --git a/swarms/tools/hugging_tools/readme.md b/swarms/tools/hugging_tools/readme.md
new file mode 100644
index 00000000..84b6d5a6
--- /dev/null
+++ b/swarms/tools/hugging_tools/readme.md
@@ -0,0 +1,3 @@
+# Tutorial Service
+
+Contributor: [Shizuo Tian](https://github.com/BlitherBoom812)
\ No newline at end of file
diff --git a/swarms/tools/hugging_tools/sources/audio_models.txt b/swarms/tools/hugging_tools/sources/audio_models.txt
new file mode 100644
index 00000000..d9c56713
--- /dev/null
+++ b/swarms/tools/hugging_tools/sources/audio_models.txt
@@ -0,0 +1,4 @@
+tts: ['speechbrain/tts-tacotron2-ljspeech', 'facebook/fastspeech2-en-ljspeech', 'espnet/kan-bayashi_ljspeech_joint_finetune_conformer_fastspeech2_hifigan', 'facebook/fastspeech2-en-200_speaker-cv4', 'Voicemod/fastspeech2-en-200_speaker-cv4', 'espnet/english_male_ryanspeech_fastspeech2', 'Voicemod/fastspeech2-en-male1', 'espnet/kan-bayashi_ljspeech_vits', 'Voicemod/fastspeech2-en-ljspeech', 'espnet/kan-bayashi_ljspeech_tacotron2', 'mio/tokiwa_midori', 'mio/amadeus', 'mio/Artoria']
+automatic-speech-recognition:['openai/whisper-large-v2', 'openai/whisper-base', 'jonatasgrosman/wav2vec2-large-xlsr-53-english', 'openai/whisper-medium', 'facebook/wav2vec2-base-960h', 'facebook/wav2vec2-large-960h-lv60-self', 'facebook/s2t-small-librispeech-asr', 'openai/whisper-tiny', 'openai/whisper-tiny.en']
+audio-to-audio:['JorisCos/DCCRNet_Libri1Mix_enhsingle_16k', 'speechbrain/sepformer-wham', 'facebook/xm_transformer_unity_hk-en', 'facebook/xm_transformer_sm_all-en']
+audio-classification: ['ehcalabres/wav2vec2-lg-xlsr-en-speech-emotion-recognition', 'harshit345/xlsr-wav2vec-speech-emotion-recognition', 'speechbrain/lang-id-voxlingua107-ecapa', 'anton-l/sew-mid-100k-ft-keyword-spotting', 'anton-l/wav2vec2-base-lang-id', 'anton-l/wav2vec2-random-tiny-classifier', 'superb/wav2vec2-base-superb-er', 'superb/hubert-large-superb-er', 'superb/wav2vec2-base-superb-sid', 'speechbrain/spkrec-xvect-voxceleb', 'MIT/ast-finetuned-audioset-10-10-0.4593', 'audeering/wav2vec2-large-robust-12-ft-emotion-msp-dim', 'TalTechNLP/voxlingua107-epaca-tdnn', 'speechbrain/lang-id-commonlanguage_ecapa', 'speechbrain/urbansound8k_ecapa', 'sahita/language-identification', 'bookbot/wav2vec2-adult-child-cls', 'anton-l/wav2vec2-base-ft-keyword-spotting', 'hackathon-pln-es/wav2vec2-base-finetuned-sentiment-mesd', 'superb/wav2vec2-base-superb-ks', 'superb/hubert-base-superb-er', 'hackathon-pln-es/wav2vec2-base-finetuned-sentiment-classification-MESD']
\ No newline at end of file
diff --git a/swarms/tools/hugging_tools/sources/cv_models.txt b/swarms/tools/hugging_tools/sources/cv_models.txt
new file mode 100644
index 00000000..a7e69f4e
--- /dev/null
+++ b/swarms/tools/hugging_tools/sources/cv_models.txt
@@ -0,0 +1,8 @@
+visual-question-answering:['dandelin/vilt-b32-finetuned-vqa', 'azwierzc/vilt-b32-finetuned-vqa-pl', 'Bingsu/temp_vilt_vqa', 'tufa15nik/vilt-finetuned-vqasi']
+document-question-answering:['impira/layoutlm-document-qa', 'tiennvcs/layoutlmv2-base-uncased-finetuned-infovqa', 'pardeepSF/layoutlm-vqa', 'jinhybr/OCR-DocVQA-Donut', 'impira/layoutlm-invoices', 'faisalraza/layoutlm-invoices', 'xhyi/layoutlmv3_docvqa_t11c5000', 'tiennvcs/layoutlmv2-large-uncased-finetuned-infovqa', 'tiennvcs/layoutlmv2-large-uncased-finetuned-vi-infovqa', 'tiennvcs/layoutlmv2-base-uncased-finetuned-vi-infovqa', 'naver-clova-ix/donut-base-finetuned-docvqa', 'tiennvcs/layoutlmv2-base-uncased-finetuned-docvqa', 'MariaK/layoutlmv2-base-uncased_finetuned_docvqa_v2']
+image-to-image: ['lambdalabs/sd-image-variations-diffusers']
+text-to-image:['prompthero/openjourney-v4', 'hakurei/waifu-diffusion', 'gsdf/Counterfeit-V2.0', 'runwayml/stable-diffusion-v1-5', 'wavymulder/Analog-Diffusion', 'andite/pastel-mix', 'andite/anything-v4.0', 'gsdf/Counterfeit-V2.5', 'CompVis/stable-diffusion-v1-4', 'prompthero/openjourney', 'stabilityai/stable-diffusion-2', 'stabilityai/stable-diffusion-2-1', 'nitrosocke/Ghibli-Diffusion', 'nitrosocke/Arcane-Diffusion', 'nitrosocke/mo-di-diffusion', 'DGSpitzer/Cyberpunk-Anime-Diffusion', 'dreamlike-art/dreamlike-diffusion-1.0', 'riffusion/riffusion-model-v1', 'Linaqruf/anything-v3.0', 'Envvi/Inkpunk-Diffusion', 'hassanblend/hassanblend1.4', 'nitrosocke/redshift-diffusion']
+image-segmentation:['nvidia/segformer-b5-finetuned-ade-640-640', 'nvidia/segformer-b1-finetuned-cityscapes-1024-1024', 'facebook/detr-resnet-50-panoptic', 'facebook/maskformer-swin-base-coco', 'nvidia/segformer-b0-finetuned-ade-512-512']
+object-detection:['facebook/detr-resnet-50', 'hustvl/yolos-tiny']
+image-classification: ['google/vit-base-patch16-224', 'facebook/deit-base-distilled-patch16-224', 'microsoft/dit-base-finetuned-rvlcdip']
+image-to-text: ['nlpconnect/vit-gpt2-image-captioning', 'ydshieh/vit-gpt2-coco-en', 'microsoft/trocr-small-handwritten', 'Salesforce/blip-image-captioning-large', 'microsoft/trocr-small-printed', 'microsoft/trocr-large-printed', 'kha-white/manga-ocr-base', 'microsoft/trocr-base-handwritten', 'microsoft/trocr-base-printed', 'microsoft/trocr-large-handwritten', 'naver-clova-ix/donut-base']
\ No newline at end of file
diff --git a/swarms/tools/hugging_tools/sources/docs.json b/swarms/tools/hugging_tools/sources/docs.json
new file mode 100644
index 00000000..048fa86b
--- /dev/null
+++ b/swarms/tools/hugging_tools/sources/docs.json
@@ -0,0 +1 @@
+{"question_answering": "question_answering is a function that uses a pre-trained language model to answer questions based on a given context.\n You can choose one model from: 'distilbert-base-uncased-distilled-squad', 'deepset/minilm-uncased-squad2', 'etalab-ia/camembert-base-squadFR-fquad-piaf'.\n\n Action Input: {\"model_id\" : \"distilbert-base-uncased-distilled-squad\", \"question\" : \"When did the first moon landing occur?\", \"context\" : \"The first manned moon landing was achieved by the United States on July 20, 1969, in the Apollo 11 mission.\"}\n ", "sentence_similarity": "sentence_similarity is a function that uses a pre-trained language model to calculate the similarity between two sentences.\n You can choose one model from: 'sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2', 'sentence-transformers/paraphrase-multilingual-mpnet-base-v2', 'sentence-transformers/paraphrase-MiniLM-L6-v2'.\n\n Action Input: {\"model_id\" : \"sentence-transformers/paraphrase-multilingual-mpnet-base-v2\", \"text\" : \"The cat is sitting on the mat.\", \"context\" : \"The dog is sleeping on the couch.\"}\n ", "text_classification": "text_classification is a function that uses a pre-trained language model to classify text into pre-defined categories.\n You can choose one model from: 'roberta-base-openai-detector', 'cardiffnlp/twitter-xlm-roberta-base-sentiment', 'nlptown/bert-base-multilingual-uncased-sentiment'.\n\n Action Input: {\"model_id\" : \"roberta-base-openai-detector\", \"text\" : \"This movie was amazing. The acting was great and the plot was interesting.\"}\n ", "token_classification": "token_classification is a function that uses a pre-trained language model to classify tokens in a text into pre-defined categories such as named entities, part-of-speech, or punctuation marks.\n You can choose one model from: 'StanfordAIMI/stanford-deidentifier-base', 'Jean-Baptiste/camembert-ner-with-dates', 'yanekyuk/bert-uncased-keyword-extractor'.\n\n Action Input: {\"model_id\" : \"StanfordAIMI/stanford-deidentifier-base\", \"text\" : \"Steve Jobs was the CEO of Apple Inc.\"}\n ", "text2text_generation": "text2text_generation is a function that uses a pre-trained language model to generate text based on a given prompt or input text.\n You can choose one model from: 'tuner007/pegasus_paraphrase', 'Salesforce/codet5-base', 'Babelscape/rebel-large'.\n\n Action Input: {\"model_id\" : \"tuner007/pegasus_paraphrase\", \"text\" : \"In recent years, there has been a growing concern over the impact of technology on society. Some argue that technology has made our lives better, while others believe that it has caused more harm than good.\"}\n ", "summarization": "summarization is a function that uses a pre-trained language model to summarize a long piece of text into a shorter version.\n You can choose one model from: 'sshleifer/distilbart-cnn-6-6', 'sshleifer/distilbart-cnn-12-6', 'google/pegasus-cnn_dailymail'.\n\n Action Input: {\"model_id\" : \"sshleifer/distilbart-cnn-6-6\", \"text\" : \"In a press conference held today, the government announced a new policy to reduce carbon emissions by 50% over the next decade. The policy includes a range of measures such as investing in renewable energy, incentivizing businesses to reduce their carbon footprint, and introducing a carbon tax.\"}\n ", "translation": "translation is a function that uses a pre-trained language model to translate text from one language to another.\n You can choose one model from: 'Helsinki-NLP/opus-mt-mul-en', 'Helsinki-NLP/opus-mt-zh-en', 'Helsinki-NLP/opus-mt-en-zh', 'Helsinki-NLP/opus-mt-fr-en'.\n\n Action Input: {\"model_id\" : \"Helsinki-NLP/opus-mt-mul-en\", \"text\" : \"El clima est\u00e1 agradable hoy.\"}\n ", "conversational": "conversational is a function that uses a pre-trained language model to generate responses to a given input text in a conversational manner, while also taking into account past user inputs and generated responses.\n You can choose one model from: 'facebook/blenderbot-400M-distill ', 'microsoft/DialoGPT-large', 'deepparag/Aeona'.\n\n Action Input: {\"model_id\" : \"microsoft/DialoGPT-large\", \"text\" : \"What did you think of the movie?\", \"past_user_inputs\": \"I really enjoyed the movie. It had a great plot and interesting characters.\", \"generated_responses\": \"I'm glad you liked it. I thought the acting was really good.\"}\n ", "text_generation": "text_generation is a function that uses a pre-trained language model to generate text based on a given prompt or input text.\n You can choose one model from: 'bigscience/bloomz', \"bigscience/bloom-560m\", \"EleutherAI/gpt-neox-20b\".\n\n Action Input: {\"model_id\" : \"bigscience/bloomz\", \"text\" : \"Artificial intelligence is\"}\n ", "visual_question_answering": "visual_question_answering is a function that uses a pre-trained visual question answering model to answer a question based on a given image and text.\n\n - dandelin/vilt-b32-finetuned-vqa\n - azwierzc/vilt-b32-finetuned-vqa-pl\n - Bingsu/temp_vilt_vqa\n - tufa15nik/vilt-finetuned-vqasi\n\n Action Input: {\"model_id\" : \"dandelin/vilt-b32-finetuned-vqa\", \"image_file_name\" : \"sample_image.jpg\", \"text\" : \"What is the color of the car?\"}\n ", "document_question_answering": "document_question_answering is a function that uses a pre-trained document question answering model to answer a question based on a given document image and text.\n\n - impira/layoutlm-document-qa\n - tiennvcs/layoutlmv2-base-uncased-finetuned-infovqa\n - pardeepSF/layoutlm-vqa\n\n Action Input: {\"model_id\" : \"tiennvcs/layoutlmv2-base-uncased-finetuned-docvqa\", \"image\" : \"document_image.jpg\", \"text\" : \"What is the date of the invoice?\"}\n ", "image_to_image": "image_to_image is a function that uses a pre-trained image-to-image translation model to transform an input image into an output image.\n\n - lambdalabs/sd-image-variations-diffusers\n\n Action Input: {\"model_id\" : \"lambdalabs/sd-image-variations-diffusers\", \"image\" : \"input_image.jpg\"}\n ", "text_to_image": "text_to_image is a function that uses a pre-trained text-to-image generation model to generate an image based on a given text description.\n\n - prompthero/openjourney-v4\n - hakurei/waifu-diffusion\n - gsdf/Counterfeit-V2.0\n\n Action Input: {\"model_id\" : \"andite/pastel-mix\", \"text\" : \"A beautiful sunset over the ocean with palm trees in the foreground.\"}\n ", "image_segmentation": "image_segmentation is a function that uses a pre-trained image segmentation model to segment an input image into different objects or regions.\n\n - nvidia/segformer-b5-finetuned-ade-640-640\n - nvidia/segformer-b1-finetuned-cityscapes-1024-1024\n - facebook/detr-resnet-50-panoptic\n\n Action Input: {\"model_id\" : \"nvidia/segformer-b5-finetuned-ade-640-640\", \"image\" : \"input_image.jpg\"}\n ", "object_detection": "object_detection is a function that uses a pre-trained object detection model to detect objects in an input image.\n\n - facebook/detr-resnet-50\n - hustvl/yolos-tiny\n\n Action Input: {\"model_id\" : \"facebook/detr-resnet-50\", \"image\" : \"input_image.jpg\"}\n ", "image_classification": "image_classification is a function that uses a pre-trained image classification model to classify an input image into different categories.\n\n - google/vit-base-patch16-224\n - facebook/deit-base-distilled-patch16-224\n - microsoft/dit-base-finetuned-rvlcdip\n\n Action Input: {\"model_id\" : \"google/vit-base-patch16-224\", \"image\" : \"input_image.jpg\"}\n ", "image_to_text": "image_to_text is a function that uses a pre-trained OCR (Optical Character Recognition) model to recognize text in an input image.\n\n - nlpconnect/vit-gpt2-image-captioning\n - ydshieh/vit-gpt2-coco-en\n - microsoft/trocr-small-handwritten\n\n Action Input: {\"model_id\" : \"microsoft/trocr-base-printed\", \"image\" : \"input_image.jpg\"}\n ", "text_to_speech": "text_to_speech is a function that uses a pre-trained text-to-speech model to convert a given input text into a corresponding speech signal.\n\n - speechbrain/tts-tacotron2-ljspeech\n - facebook/fastspeech2-en-ljspeech\n - espnet/kan-bayashi_ljspeech_joint_finetune_conformer_fastspeech2_hifigan\n\n Action Input: {\"model_id\" : \"facebook/fastspeech2-en-ljspeech\", \"text\" : \"Hello, how are you?\"}\n ", "automatic_speech_recognition": "automatic_speech_recognition is a function that uses a pre-trained automatic speech recognition model to transcribe a given audio file into text.\n\n - openai/whisper-large-v2\n - openai/whisper-base\n - jonatasgrosman/wav2vec2-large-xlsr-53-english\n - openai/whisper-medium\n\n Action Input: {\"model_id\" : \"facebook/wav2vec2-base-960h\", \"audio_file_name\" : \"sample_audio.flac\"}\n ", "audio_to_audio": "audio_to_audio is a function that uses a pre-trained audio-to-audio model to enhance or separate a given audio file into one or more audio files.\n\n NOTE: you can check the result by using automatic-speech-recognition models.\n\n - JorisCos/DCCRNet_Libri1Mix_enhsingle_16k\n - speechbrain/sepformer-wham\n - facebook/xm_transformer_unity_hk-en\n - facebook/xm_transformer_sm_all-en\n\n Action Input: {\"model_id\" : \"speechbrain/sepformer-wham\", \"audio_file_name\" : \"mixed_audio.flac\"}\n ", "audio_classification": "audio_classification is a function that uses a pre-trained audio classification model to classify a given audio file into one or more categories.\n\n - ehcalabres/wav2vec2-lg-xlsr-en-speech-emotion-recognition\n - anton-l/wav2vec2-base-ft-keyword-spotting\n\n Action Input: {\"model_id\" : \"anton-l/wav2vec2-base-ft-keyword-spotting\", \"audio\" : \"sample_audio.flac\"}\n "}
\ No newline at end of file
diff --git a/swarms/tools/hugging_tools/sources/nlp_models.txt b/swarms/tools/hugging_tools/sources/nlp_models.txt
new file mode 100644
index 00000000..97b3b8ab
--- /dev/null
+++ b/swarms/tools/hugging_tools/sources/nlp_models.txt
@@ -0,0 +1,9 @@
+text-classification: ['ProsusAI/finbert', 'roberta-base-openai-detector', 'j-hartmann/emotion-english-distilroberta-base', 'arpanghoshal/EmoRoBERTa', 'michiyasunaga/BioLinkBERT-base', 'cardiffnlp/twitter-roberta-base-emotion', 'finiteautomata/bertweet-base-sentiment-analysis', 'bhadresh-savani/bert-base-go-emotion', 'siebert/sentiment-roberta-large-english', 'cardiffnlp/twitter-xlm-roberta-base-sentiment', 'microsoft/xtremedistil-l6-h384-uncased', 'microsoft/MiniLM-L12-H384-uncased', 'cardiffnlp/twitter-roberta-base-sentiment-latest', 'mrm8488/distilroberta-finetuned-financial-news-sentiment-analysis', 'uer/roberta-base-finetuned-chinanews-chinese', 'microsoft/Multilingual-MiniLM-L12-H384', 'bhadresh-savani/distilbert-base-uncased-emotion', 'finiteautomata/beto-sentiment-analysis', 'nbroad/ESG-BERT', 'yiyanghkust/finbert-tone', 'ElKulako/cryptobert', 'nlptown/bert-base-multilingual-uncased-sentiment', 'roberta-large-mnli', 'unitary/toxic-bert', 'cardiffnlp/twitter-roberta-base-sentiment', 'IDEA-CCNL/Erlangshen-Roberta-110M-Sentiment', 'papluca/xlm-roberta-base-language-detection', 'OpenAssistant/reward-model-deberta-v3-large-v2', 'joeddav/distilbert-base-uncased-go-emotions-student', 'distilbert-base-uncased-finetuned-sst-2-english']
+token-classification: ['Davlan/bert-base-multilingual-cased-ner-hrl', 'xlm-roberta-large-finetuned-conll03-english', 'dbmdz/bert-large-cased-finetuned-conll03-english', 'elastic/distilbert-base-uncased-finetuned-conll03-english', 'oliverguhr/fullstop-punctuation-multilang-large', 'Babelscape/wikineural-multilingual-ner', 'vblagoje/bert-english-uncased-finetuned-pos', 'flair/ner-english-large', 'dslim/bert-base-NER', 'spacy/en_core_web_sm', 'Jean-Baptiste/camembert-ner-with-dates', 'ckiplab/bert-base-chinese-ner', 'Jean-Baptiste/roberta-large-ner-english', 'Jean-Baptiste/camembert-ner', 'samrawal/bert-base-uncased_clinical-ner', 'yanekyuk/bert-uncased-keyword-extractor', 'deprem-ml/deprem-ner', 'mrm8488/bert-spanish-cased-finetuned-ner', 'StanfordAIMI/stanford-deidentifier-base', 'jplu/tf-xlm-r-ner-40-lang', 'ml6team/keyphrase-extraction-kbir-inspec', 'flair/ner-english', 'dslim/bert-large-NER', 'd4data/biomedical-ner-all', 'cmarkea/distilcamembert-base-ner', 'Davlan/distilbert-base-multilingual-cased-ner-hrl', 'flair/ner-german-large', 'flair/ner-english-ontonotes-large']
+text2text-generation: ['google/flan-t5-large', 'google/flan-t5-xxl', 'sander-wood/text-to-music', 'bigscience/T0_3B', 'mrm8488/t5-base-finetuned-question-generation-ap', 'tuner007/pegasus_paraphrase', 'google/flan-t5-small', 'google/flan-t5-base', 'vennify/t5-base-grammar-correction', 'fnlp/bart-base-chinese', 'google/mt5-small', 'philschmid/flan-t5-base-samsum', 'Salesforce/codet5-base', 'ClueAI/ChatYuan-large-v2', 'pszemraj/flan-t5-large-grammar-synthesis', 'prithivida/parrot_paraphraser_on_T5', 'snrspeaks/t5-one-line-summary', 'google/mt5-base', 'facebook/m2m100_418M', 'ClueAI/ChatYuan-large-v1', 'Babelscape/rebel-large', 'ClueAI/PromptCLUE-base']
+summarization: ['lidiya/bart-large-xsum-samsum', 'google/bigbird-pegasus-large-pubmed', 'facebook/bart-large-cnn', 'google/pegasus-large', 'ml6team/distilbart-tos-summarizer-tosdr', 'slauw87/bart_summarisation', 'linydub/bart-large-samsum', 'sshleifer/distilbart-cnn-6-6', 'google/pegasus-cnn_dailymail', 'phpaiola/ptt5-base-summ-xlsum', 'plguillou/t5-base-fr-sum-cnndm', 'google/bigbird-pegasus-large-arxiv', 'facebook/bart-large-xsum', 'google/bigbird-pegasus-large-bigpatent', 'tuner007/pegasus_summarizer', 'pszemraj/pegasus-x-large-book-summary', 'sshleifer/distilbart-cnn-12-6', 'google/pegasus-xsum', 'human-centered-summarization/financial-summarization-pegasus', 'IlyaGusev/mbart_ru_sum_gazeta', 'pszemraj/long-t5-tglobal-base-16384-book-summary', 'csebuetnlp/mT5_multilingual_XLSum', 'pszemraj/led-large-book-summary', 'knkarthick/MEETING_SUMMARY', 'philschmid/bart-large-cnn-samsum', 'jordiclive/flan-t5-3b-summarizer']
+translation: ['t5-small', 't5-base', 'Helsinki-NLP/opus-mt-zh-en', 'Helsinki-NLP/opus-mt-es-en', 'Helsinki-NLP/opus-mt-ko-en', 'Helsinki-NLP/opus-mt-mul-en', 'staka/fugumt-ja-en', 'Helsinki-NLP/opus-mt-en-ru', 'Helsinki-NLP/opus-mt-en-de', 'Helsinki-NLP/opus-mt-ru-en', 'Helsinki-NLP/opus-mt-fr-en', 'Helsinki-NLP/opus-mt-en-zh', 'Helsinki-NLP/opus-mt-en-es', 'liam168/trans-opus-mt-en-zh', 'Helsinki-NLP/opus-mt-de-en', 'K024/mt5-zh-ja-en-trimmed', 'Helsinki-NLP/opus-mt-ja-en', 'raynardj/wenyanwen-chinese-translate-to-ancient', 'staka/fugumt-en-ja', 't5-large', 'Helsinki-NLP/opus-mt-tr-en', 'Helsinki-NLP/opus-mt-en-fr', 't5-3b']
+question-answering: ['deepset/xlm-roberta-base-squad2', 'deepset/gelectra-large-germanquad', 'timpal0l/mdeberta-v3-base-squad2', 'etalab-ia/camembert-base-squadFR-fquad-piaf', 'hfl/chinese-pert-base-mrc', 'distilbert-base-uncased-distilled-squad', 'deutsche-telekom/bert-multi-english-german-squad2', 'valhalla/longformer-base-4096-finetuned-squadv1', 'Intel/dynamic_tinybert', 'distilbert-base-cased-distilled-squad', 'deepset/gelectra-base-germanquad', 'deepset/bert-base-cased-squad2', 'pierreguillou/bert-base-cased-squad-v1.1-portuguese', 'uer/roberta-base-chinese-extractive-qa', 'salti/bert-base-multilingual-cased-finetuned-squad', 'deepset/deberta-v3-large-squad2', 'deepset/bert-large-uncased-whole-word-masking-squad2', 'deepset/roberta-large-squad2', 'bert-large-uncased-whole-word-masking-finetuned-squad', 'luhua/chinese_pretrain_mrc_roberta_wwm_ext_large', 'pierreguillou/bert-large-cased-squad-v1.1-portuguese', 'deepset/tinyroberta-squad2', 'AlexKay/xlm-roberta-large-qa-multilingual-finedtuned-ru', 'deepset/minilm-uncased-squad2', 'mrm8488/distill-bert-base-spanish-wwm-cased-finetuned-spa-squad2-es', 'deepset/deberta-v3-base-squad2', 'luhua/chinese_pretrain_mrc_macbert_large', 'deepset/xlm-roberta-large-squad2']
+conversational: ['microsoft/GODEL-v1_1-base-seq2seq', 'microsoft/DialoGPT-small', 'facebook/blenderbot-400M-distill', 'microsoft/DialoGPT-large', 'microsoft/DialoGPT-medium', 'facebook/blenderbot-3B', 'Kirili4ik/ruDialoGpt3-medium-finetuned-telegram', 'satvikag/chatbot', 'microsoft/GODEL-v1_1-large-seq2seq', 'byeongal/Ko-DialoGPT', 'r3dhummingbird/DialoGPT-medium-joshua', 'abhiramtirumala/DialoGPT-sarcastic', 'gorkemgoknar/gpt2chatbotenglish', 'PygmalionAI/pygmalion-350m', 'facebook/blenderbot_small-90M', 'deepparag/Aeona', 'PygmalionAI/pygmalion-1.3b', 'PygmalionAI/pygmalion-2.7b', 'BlackSamorez/rudialogpt3_medium_based_on_gpt2_2ch', 'facebook/blenderbot-1B-distill']
+text-generation: ['succinctly/text2image-prompt-generator', 'distilgpt2', 'bigcode/santacoder', 'microsoft/biogpt', 'OpenAssistant/oasst-sft-1-pythia-12b', 'bigscience/bloom-560m', 'gpt2', 'EleutherAI/gpt-neox-20b', 'EleutherAI/gpt-neo-2.7B', 'sberbank-ai/mGPT', 'Gustavosta/MagicPrompt-Stable-Diffusion', 'gpt2-xl']
+sentence-similarity: ['sentence-transformers/all-MiniLM-L6-v2', 'sentence-transformers/LaBSE', 'clips/mfaq', 'sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2', 'sentence-transformers/paraphrase-MiniLM-L6-v2', 'sentence-transformers/paraphrase-mpnet-base-v2', 'jhgan/ko-sroberta-multitask', 'hiiamsid/sentence_similarity_spanish_es', 'AI-Growth-Lab/PatentSBERTa', 'sentence-transformers/clip-ViT-B-32-multilingual-v1', 'sentence-transformers/bert-base-nli-mean-tokens', 'uer/sbert-base-chinese-nli', 'sentence-transformers/multi-qa-mpnet-base-dot-v1', 'sentence-transformers/sentence-t5-base', 'sentence-transformers/distiluse-base-multilingual-cased-v1', 'sentence-transformers/paraphrase-xlm-r-multilingual-v1', 'sentence-transformers/all-MiniLM-L12-v2', 'sentence-transformers/distiluse-base-multilingual-cased-v2', 'sentence-transformers/multi-qa-MiniLM-L6-cos-v1', 'sentence-transformers/all-roberta-large-v1', 'pritamdeka/BioBERT-mnli-snli-scinli-scitail-mednli-stsb', 'sentence-transformers/clip-ViT-B-32', 'symanto/sn-xlm-roberta-base-snli-mnli-anli-xnli', 'sentence-transformers/paraphrase-multilingual-mpnet-base-v2', 'sentence-transformers/clip-ViT-L-14']
diff --git a/swarms/tools/hugging_tools/test.py b/swarms/tools/hugging_tools/test.py
new file mode 100644
index 00000000..806e3142
--- /dev/null
+++ b/swarms/tools/hugging_tools/test.py
@@ -0,0 +1,97 @@
+
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'hugging_tools', "http://127.0.0.1:8079/tools/hugging_tools/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+print(tools_config)
+agent = qa.load_tools(tools_name, tools_config)
+
+# # NLP task
+# # Translation
+# answer = agent("Please translate this into English: Bonjour!")
+# print(answer)
+
+# # Sentence similarity
+# answer = agent("Which of these two sentences has a similar meaning to the other? Sentence 1: The cat sat on the mat. Sentence 2: The feline rested on the floor.")
+# print(answer)
+
+# # Question answering
+# answer = agent("What is the capital of France?")
+# print(answer)
+
+# # Text classification
+# answer = agent("Which category does this text belong to? This book is a thrilling mystery novel.")
+# print(answer)
+
+# # Token classification
+# answer = agent("Which words in this sentence are key words? The quick brown fox jumped over the lazy dog.")
+# print(answer)
+
+# # Text2Text generation
+# answer = agent("Please generate a paragraph about the benefits of exercise using the following prompt: 'Regular exercise can help improve'")
+# print(answer)
+
+# # Summarization
+# answer = agent("""Please provide a summary of the article with the following passage:
+
+# China, officially known as the People's Republic of China, is one of the largest countries in the world. It is located in East Asia, bordered by 14 countries and the East China Sea, Yellow Sea, South China Sea, and Taiwan Strait. With a population of over 1.4 billion people, China is the most populous country in the world.
+
+# """)
+# print(answer)
+
+# # Conversational
+# answer = agent("Can you generate a response to the following prompt in a conversational manner? 'What do you think about the weather today?'")
+# print(answer)
+
+# # Text generation
+# answer = agent("Please generate a paragraph of text about artificial intelligence using the following prompt: 'Artificial intelligence is'")
+# print(answer)
+
+# # Audio task
+# # automatic speech recognition
+# answer = agent("What does the man say in the audio `test.flac`?")
+# print(answer)
+
+# # audio to audio
+# answer = agent("Enhance this speech `test.flac` more clearly.")
+# print(answer)
+
+# # text to speech & audio to audio
+# answer = agent("Generate a audio where a man says: hello, world!, and then enchance the generated audio.")
+# print(answer)
+
+# # audio classification
+# answer = agent("classify this audio: `test.flac`")
+# print(answer)
+
+# # CV task
+# # text-to-image
+# answer = agent("Please generate a picture with prompt: a cat.")
+# print(answer)
+
+# # image-to-text
+# answer = agent("What does the picture `boat.png` shows?")
+# print(answer)
+
+# # image-segmentation
+# answer = agent("Please divide the `boat.png` into proper segments using appropriate models.")
+# print(answer)
+
+# # object-detection
+# answer = agent("Detect the objects in the picture `boat.png`.")
+# print(answer)
+
+# # image-classification
+# answer = agent("Classify the picture `boat.png`.")
+# print(answer)
+
+# # visual-question-answering
+# answer = agent("Answer the question according to the photo `boat.png`: what is it?")
+# print(answer)
+
+# # document-question-answering
+# answer = agent("Answer the question based on the content of the document screenshot `doc.jpg`: What is the topic of this document?(hint: use the document-question-answering)")
+# print(answer)
\ No newline at end of file
diff --git a/swarms/tools/image_generation/__init__.py b/swarms/tools/image_generation/__init__.py
new file mode 100644
index 00000000..4b020033
--- /dev/null
+++ b/swarms/tools/image_generation/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("image_generation")
+def image_generation():
+ from .api import build_tool
+ return build_tool
\ No newline at end of file
diff --git a/swarms/tools/image_generation/api.py b/swarms/tools/image_generation/api.py
new file mode 100644
index 00000000..cb3d9016
--- /dev/null
+++ b/swarms/tools/image_generation/api.py
@@ -0,0 +1,126 @@
+import requests
+import json
+from ..tool import Tool
+import os
+
+from steamship import Block,Steamship
+import uuid
+from enum import Enum
+import re
+from IPython import display
+from IPython.display import Image
+
+
+class ModelName(str, Enum):
+ """Supported Image Models for generation."""
+
+ DALL_E = "dall-e"
+ STABLE_DIFFUSION = "stable-diffusion"
+
+
+SUPPORTED_IMAGE_SIZES = {
+ ModelName.DALL_E: ("256x256", "512x512", "1024x1024"),
+ ModelName.STABLE_DIFFUSION: ("512x512", "768x768"),
+}
+
+def make_image_public(client: Steamship, block: Block) -> str:
+ """Upload a block to a signed URL and return the public URL."""
+ try:
+ from steamship.data.workspace import SignedUrl
+ from steamship.utils.signed_urls import upload_to_signed_url
+ except ImportError:
+ raise ValueError(
+ "The make_image_public function requires the steamship"
+ " package to be installed. Please install steamship"
+ " with `pip install --upgrade steamship`"
+ )
+
+ filepath = str(uuid.uuid4())
+ signed_url = (
+ client.get_workspace()
+ .create_signed_url(
+ SignedUrl.Request(
+ bucket=SignedUrl.Bucket.PLUGIN_DATA,
+ filepath=filepath,
+ operation=SignedUrl.Operation.WRITE,
+ )
+ )
+ .signed_url
+ )
+ read_signed_url = (
+ client.get_workspace()
+ .create_signed_url(
+ SignedUrl.Request(
+ bucket=SignedUrl.Bucket.PLUGIN_DATA,
+ filepath=filepath,
+ operation=SignedUrl.Operation.READ,
+ )
+ )
+ .signed_url
+ )
+ upload_to_signed_url(signed_url, block.raw())
+ return read_signed_url
+
+def show_output(output):
+ """Display the multi-modal output from the agent."""
+ UUID_PATTERN = re.compile(
+ r"([0-9A-Za-z]{8}-[0-9A-Za-z]{4}-[0-9A-Za-z]{4}-[0-9A-Za-z]{4}-[0-9A-Za-z]{12})"
+ )
+
+ outputs = UUID_PATTERN.split(output)
+ outputs = [re.sub(r"^\W+", "", el) for el in outputs] # Clean trailing and leading non-word characters
+
+ for output in outputs:
+ maybe_block_id = UUID_PATTERN.search(output)
+ if maybe_block_id:
+ display(Image(Block.get(Steamship(), _id=maybe_block_id.group()).raw()))
+ else:
+ print(output, end="\n\n")
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Image Generator",
+ "Tool that can generate image based on text description.",
+ name_for_model="Image Generator",
+ description_for_model=(
+ "Useful for when you need to generate an image."
+ "Input: A detailed text-2-image prompt describing an image"
+ "Output: the UUID of a generated image"
+ ),
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ model_name: ModelName = ModelName.DALL_E # choose model and image size?
+ size: Optional[str] = "512x512"
+ return_urls: Optional[bool] = False
+ steamship_api_key = os.environ.get('STEAMSHIP_API_KEY', '')
+ if steamship_api_key == '':
+ raise RuntimeError("STEAMSHIP_API_KEY is not provided. Please sign up for a free account at https://steamship.com/account/api, create a new API key, and add it to environment variables.")
+
+ steamship = Steamship(
+ api_key=steamship_api_key,
+ )
+
+ @tool.get("/generate_image")
+ def generate_image(query : str):
+ '''Generate an image.
+ '''
+ image_generator = steamship.use_plugin(
+ plugin_handle=model_name.value, config={"n": 1, "size": size}
+ )
+
+ task = image_generator.generate(text=query, append_output_to_file=True)
+ task.wait()
+ blocks = task.output.blocks
+ output_uiud = blocks[0].id
+ if len(blocks) > 0:
+ if return_urls:
+ output_uiud = make_image_public(steamship, blocks[0])
+ # print image?
+ # show_output(output_uiud)
+ return output_uiud
+ raise RuntimeError("Tool unable to generate image!")
+
+ return tool
diff --git a/swarms/tools/image_generation/readme.md b/swarms/tools/image_generation/readme.md
new file mode 100644
index 00000000..30a45786
--- /dev/null
+++ b/swarms/tools/image_generation/readme.md
@@ -0,0 +1,47 @@
+# Image Generation
+
+Contributor: [Sihan Zhao](https://github.com/Sarah816)
+
+# Image Generator Tool
+
+This Markdown document provides an introduction to the `Image Generator` function implemented in the given code. The function is designed to generate an image based on a text description using the Steamship API.
+
+## Function Summary
+
+The `Image Generator` function is a tool that generates an image based on a text description. It utilizes the Steamship API to perform the image generation process.
+
+## Usage
+
+To use the `Image Generator` function, follow the steps below:
+
+1. Set up the required configuration parameters.
+2. Ensure that the `STEAMSHIP_API_KEY` environment variable is set.
+3. Call the `generate_image` endpoint with a text query to generate an image.
+4. The function returns the UUID (Universally Unique Identifier) of the generated image.
+
+## Configuration
+
+The `Image Generator` tool accepts the following configuration parameters:
+
+- **Model Name**: Specifies the model to use for image generation. The default model is DALL-E.
+- **Size**: Specifies the desired size of the generated image. The default size is 512x512.
+- **Return URLs**: Determines whether to return public URLs for the generated images. By default, this option is disabled.
+- **Steamship API Key**: The API key required to authenticate and use the Steamship API. It should be set as the `STEAMSHIP_API_KEY` environment variable.
+
+## Endpoint
+
+The `Image Generator` tool provides the following endpoint:
+
+### `/generate_image`
+
+- **Method**: GET
+- **Parameters**:
+ - `query`: The detailed text-2-image prompt describing the image to be generated.
+- **Returns**:
+ - The UUID of the generated image.
+
+## Error Handling
+
+If the `STEAMSHIP_API_KEY` is not provided or is empty, a `RuntimeError` is raised, indicating that the API key should be obtained from the Steamship website and added to the environment variables.
+
+If the tool is unable to generate an image, a `RuntimeError` is raised.
diff --git a/swarms/tools/image_generation/test.py b/swarms/tools/image_generation/test.py
new file mode 100644
index 00000000..43756f2f
--- /dev/null
+++ b/swarms/tools/image_generation/test.py
@@ -0,0 +1,11 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'image_generation', "http://127.0.0.1:8079/tools/image_generation/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("How would you visualize a girl dancing ballet?")
\ No newline at end of file
diff --git a/swarms/tools/job_search/__init__.py b/swarms/tools/job_search/__init__.py
new file mode 100644
index 00000000..adb0b529
--- /dev/null
+++ b/swarms/tools/job_search/__init__.py
@@ -0,0 +1,7 @@
+
+from ..registry import register
+
+@register("job_search")
+def job_search():
+ from .api import build_tool
+ return build_tool
diff --git a/swarms/tools/job_search/api.py b/swarms/tools/job_search/api.py
new file mode 100644
index 00000000..e3ca36f4
--- /dev/null
+++ b/swarms/tools/job_search/api.py
@@ -0,0 +1,179 @@
+import requests
+import json
+from datetime import date, datetime, timedelta
+import os
+from ..tool import Tool
+
+from typing import Optional, Dict, Union, List
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Search job information",
+ "Search job information in Linkin, Glassdoor, etc.",
+ name_for_model="JobSearch",
+ description_for_model="Plugin for look up job information in Linkin, Glassdoor, etc.",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ BASE_URL = "https://jsearch.p.rapidapi.com"
+ KEY = config["subscription_key"]
+ HEADERS = {
+ "X-RapidAPI-Key": KEY,
+ "X-RapidAPI-Host": "zillow-com1.p.rapidapi.com"
+ }
+
+
+ @tool.get("/basic_job_search")
+ def basic_job_search(query: str, page: int = 1, num_pages: str = "1", date_posted: Optional[str] = None,
+ remote_jobs_only: Optional[bool] = None, employment_types: Optional[str] = None,
+ job_requirements: Optional[str] = None, job_titles: Optional[str] = None,
+ company_types: Optional[str] = None, employer: Optional[str] = None,
+ radius: Optional[int] = None, categories: Optional[str] = None) -> dict:
+ """
+ Search for jobs posted on job sites across the web.
+
+ :param query: Free-form jobs search query.
+ :param page: Page to return (each page includes up to 10 results).
+ :param num_pages: Number of pages to return, starting from page.
+ :param date_posted: Find jobs posted within the time you specify.
+ :param remote_jobs_only: Find remote jobs only (work from home).
+ :param employment_types: Find jobs of particular employment types.
+ :param job_requirements: Find jobs with specific requirements.
+ :param job_titles: Find jobs with specific job titles.
+ :param company_types: Find jobs posted by companies of certain types.
+ :param employer: Find jobs posted by specific employers.
+ :param radius: Return jobs within a certain distance from location as specified as part of the query (in km).
+ :param categories: [Deprecated] Find jobs in specific categories/industries.
+ :return: A dictionary with the response from the API.
+ """
+
+ querystring = {
+ "query": query,
+ "page": page,
+ "num_pages": num_pages
+ }
+
+ if date_posted:
+ querystring['date_posted'] = date_posted
+ if remote_jobs_only is not None:
+ querystring['remote_jobs_only'] = remote_jobs_only
+ if employment_types:
+ querystring['employment_types'] = employment_types
+ if job_requirements:
+ querystring['job_requirements'] = job_requirements
+ if job_titles:
+ querystring['job_titles'] = job_titles
+ if company_types:
+ querystring['company_types'] = company_types
+ if employer:
+ querystring['employer'] = employer
+ if radius:
+ querystring['radius'] = radius
+ if categories:
+ querystring['categories'] = categories
+
+ response = requests.get(BASE_URL + "/search", headers=HEADERS, params=querystring)
+
+ return response.json()
+
+ @tool.get("/search_jobs_with_filters")
+ def search_jobs_with_filters(self, query: str, page: int = 1, num_pages: int = 1, date_posted: str = "all",
+ remote_jobs_only: bool = False, employment_types: Optional[str] = None,
+ job_requirements: Optional[str] = None, job_titles: Optional[str] = None,
+ company_types: Optional[str] = None, employer: Optional[str] = None,
+ radius: Optional[int] = None, categories: Optional[str] = None) -> dict:
+ """
+ Search for jobs using the JSearch API.
+
+ Args:
+ query (str): The job search query.Query examples,web development in chicago, marketing manager in new york via linkedin,developer in germany 60306
+ page (int, optional): The page to return. Defaults to 1.
+ num_pages (int, optional): The number of pages to return. Defaults to 1.
+ date_posted (str, optional): Find jobs posted within the time you specify. Defaults to "all". Find jobs posted within the time you specify.Possible values: all, today, 3days, week,month.Default: all.
+ remote_jobs_only (bool, optional): Find remote jobs only. Defaults to False.
+ employment_types (str, optional): Find jobs of particular employment types.
+ job_requirements (str, optional): Find jobs with specific requirements.
+ job_titles (str, optional): Find jobs with specific job titles.
+ company_types (str, optional): Find jobs posted by companies of certain types.
+ employer (str, optional): Find jobs posted by specific employers.
+ radius (int, optional): Return jobs within a certain distance from location.
+ categories (str, optional): Find jobs in specific categories/industries.
+
+ Returns:
+ dict: The JSON response from the API.
+ """
+
+ params = {
+ "query": query,
+ "page": str(page),
+ "num_pages": str(num_pages),
+ "date_posted": date_posted,
+ "remote_jobs_only": str(remote_jobs_only).lower(),
+ "employment_types": employment_types,
+ "job_requirements": job_requirements,
+ "job_titles": job_titles,
+ "company_types": company_types,
+ "employer": employer,
+ "radius": str(radius) if radius else None,
+ "categories": categories
+ }
+
+ # remove None values in the parameters
+ params = {k: v for k, v in params.items() if v is not None}
+
+ response = requests.get(BASE_URL + '/search-filters', headers=HEADERS, params=params)
+
+ return response.json()
+
+ @tool.get("/get_job_details")
+ def get_job_details(job_ids: Union[str, List[str]], extended_publisher_details: bool = False) -> dict:
+ """
+ You can get the job_ids from 'basic_job_search' function
+ Get all job details, including additional application options / links, employer reviews and estimated salaries for similar jobs.
+
+ :param job_ids: Job Id of the job for which to get details. Batching of up to 20 Job Ids is supported by separating multiple Job Ids by comma (,).
+ Note that each Job Id in a batch request is counted as a request for quota calculation.
+ :param extended_publisher_details: [BETA] Return additional publisher details such as website url and favicon.
+ :return: A dictionary with the response from the API.
+ """
+
+ if isinstance(job_ids, list):
+ job_ids = ','.join(job_ids)
+
+ querystring = {
+ "job_id": job_ids,
+ "extended_publisher_details": str(extended_publisher_details).lower()
+ }
+
+ response = requests.get(BASE_URL + '/job-details', headers=HEADERS, params=querystring)
+
+ return response.json()
+
+ @tool.get("/get_salary_estimation")
+ def get_salary_estimation(job_title: Optional[str] = None, location: Optional[str] = None, radius: int = 200) -> dict:
+ """
+ Get estimated salaries for a jobs around a location.
+
+ :param job_title: Job title for which to get salary estimation.
+ :param location: Location in which to get salary estimation.
+ :param radius: Search radius in km (measured from location).
+ :return: A dictionary with the response from the API.
+ """
+
+ querystring = {}
+
+ if job_title:
+ querystring['job_title'] = job_title
+ if location:
+ querystring['location'] = location
+ if radius:
+ querystring['radius'] = radius
+
+ response = requests.get(BASE_URL + "/estimated-salary", headers=HEADERS, params=querystring)
+
+ return response.json()
+
+ return tool
diff --git a/swarms/tools/job_search/readme.md b/swarms/tools/job_search/readme.md
new file mode 100644
index 00000000..3fec13a6
--- /dev/null
+++ b/swarms/tools/job_search/readme.md
@@ -0,0 +1,7 @@
+# Job Search
+
+Contributor: [Kunlun Zhu](https://github.com/Kunlun-Zhu)
+
+You can get your RAIPID key here: https://rapidapi.com/hub
+
+You ought to subscribe 'Zillow API' in your account to use this tool
diff --git a/swarms/tools/job_search/test.py b/swarms/tools/job_search/test.py
new file mode 100644
index 00000000..11469a16
--- /dev/null
+++ b/swarms/tools/job_search/test.py
@@ -0,0 +1,11 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'JobSearch', "http://127.0.0.1:8079/tools/job_search/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("List some jobs about python development in Santa Monica, CA.")
\ No newline at end of file
diff --git a/swarms/tools/kg/__init__.py b/swarms/tools/kg/__init__.py
new file mode 100644
index 00000000..54907510
--- /dev/null
+++ b/swarms/tools/kg/__init__.py
@@ -0,0 +1,7 @@
+
+from ..registry import register
+
+@register("wikidata")
+def wikidata():
+ from .wikidata import build_tool
+ return build_tool
diff --git a/swarms/tools/kg/wikidata/__init__.py b/swarms/tools/kg/wikidata/__init__.py
new file mode 100644
index 00000000..aead338d
--- /dev/null
+++ b/swarms/tools/kg/wikidata/__init__.py
@@ -0,0 +1 @@
+from .api import build_tool
diff --git a/swarms/tools/kg/wikidata/ai-plugin.json b/swarms/tools/kg/wikidata/ai-plugin.json
new file mode 100644
index 00000000..8727a457
--- /dev/null
+++ b/swarms/tools/kg/wikidata/ai-plugin.json
@@ -0,0 +1,20 @@
+{
+ "schema_version": "v1",
+ "name_for_model": "Search in Wikidata",
+ "name_for_human": "Search in Wikidata",
+ "description_for_model": "Plugin for answering factual questions in wikidata.",
+ "description_for_human": "answering factual questions in wikidata.",
+ "auth": {
+ "type": "user_http",
+ "authorization_type": "bearer"
+ },
+ "api": {
+ "type": "local",
+ "url": "https://your-app-url.com/.well-known/openapi.yaml",
+ "has_user_authentication": false
+ },
+ "author_github": "",
+ "logo_url": "https://your-app-url.com/.well-known/logo.png",
+ "contact_email": "hello@contact.com",
+ "legal_info_url": "hello@legal.com"
+ }
diff --git a/swarms/tools/kg/wikidata/api.py b/swarms/tools/kg/wikidata/api.py
new file mode 100644
index 00000000..8851bee1
--- /dev/null
+++ b/swarms/tools/kg/wikidata/api.py
@@ -0,0 +1,220 @@
+
+from .utils import *
+import pandas as pd
+import requests
+import json
+from ...tool import Tool
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Search in Wikidata",
+ "answering factual questions in wikidata.",
+ description_for_model="Plugin for answering factual questions in wikidata.",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+ sparql = Slot2Sparql()
+
+ @tool.get("/find_entity")
+ def find_entity(input):
+ """Find all that has the relation . It looks like viewing the main page of the input entity. The result is a table.
+ """
+ try:
+ sparqlIdx = -1
+
+ if input[0] == '#':
+ input = {'id': int(input[1:]), 'attr': 'tmp'}
+ elif input[0] == 'Q':
+ input = {'id': input, 'attr': 'wd'}
+ elif input[0] == 'P':
+ input = {'id': input, 'attr': 'wdt'}
+ elif input[0] == '@':
+ input = {'id': input[1:], 'attr': 'wds'}
+ else:
+ input = {'id': input, 'attr': 'val'}
+ sparql.find_entity(input)
+ sparqlIdx = len(sparql.select_lst)-1
+
+ query, ids = sparql.give_str(sparqlIdx)
+
+ query += '\nLIMIT 2000'
+
+ ids = ['#' + str(id['id']) for id in ids]
+
+ result = getResult(query)
+
+ variable_name = [enc(sparql.select_lst[sparqlIdx].state[-1][1])
+ [1:], enc(sparql.select_lst[sparqlIdx].state[-1][2])[1:], enc(sparql.select_lst[sparqlIdx].state[-1][3])[1:]]
+
+ response = [{} for i in range(0, len(result))]
+
+ print("RESULT:", result)
+
+ for idx, re in enumerate(result):
+ response[idx].update(get_property_details(re[variable_name[0]]['value']) if re[variable_name[0]]['type'] == 'uri' else {
+ 'relation': '',
+ 'relationLabel': re[variable_name[0]]['value'],
+ 'relationDescription': '',
+ # 'propuri': ''
+ })
+
+ response[idx].update({
+ 'tail': re[variable_name[1]]['value'].split('/')[-1] if re[variable_name[1]]['type'] == 'uri' else '',
+ 'tailLabel': re.get(variable_name[1] + 'Label', {'value': ''})['value'] if re[variable_name[1]]['type'] == 'uri' else re[variable_name[1]]['value'],
+ 'tailDescription': re.get(variable_name[1] + 'Description', {'value': ''})['value'],
+ # 'tailuri': re[variable_name[1]]['value'] if re[variable_name[1]]['type'] == 'uri' else '',
+ # 'tailtype': 'uri' if re[variable_name[1]]['type'] == 'uri' else re[variable_name[1]].get('datatype', '')
+ })
+ if variable_name[2] in re:
+ response[idx].update({
+ 'time': re.get(variable_name[2] + 'Label', {'value': ''})['value'] if re[variable_name[2]]['type'] == 'uri' else re[variable_name[2]]['value'],
+ })
+ else:
+ response[idx].update({
+ 'time': "ALWAYS"
+ })
+
+ df = pd.DataFrame.from_dict(response)
+ return df.to_markdown()
+ except Exception:
+ print("Invalid option!\n", Exception)
+ return df.to_markdown()
+
+ @tool.get("/find_entity_by_tail")
+ def find_entity_by_tail(input : str):
+ """Find all that has the relation . It looks like viewing the reverse main page of the input entity. The result is a table.
+ """
+ try:
+ sparqlIdx = -1
+
+ if input[0] == '#':
+ input = {'id': int(input[1:]), 'attr': 'tmp'}
+ elif input[0] == 'Q':
+ input = {'id': input, 'attr': 'wd'}
+ elif input[0] == 'P':
+ input = {'id': input, 'attr': 'wdt'}
+ elif input[0] == '@':
+ input = {'id': input[1:], 'attr': 'wds'}
+ else:
+ input = {'id': input, 'attr': 'val'}
+ sparql.find_entity_by_tail(input)
+ sparqlIdx = len(sparql.select_lst)-1
+
+ query, ids = sparql.give_str(sparqlIdx)
+
+ query += '\nLIMIT 2000'
+
+ ids = ['#' + str(id['id']) for id in ids]
+
+ result = getResult(query)
+
+ variable_name = [enc(sparql.select_lst[sparqlIdx].state[-1][0])
+ [1:], enc(sparql.select_lst[sparqlIdx].state[-1][1])[1:]]
+
+ response = [{} for i in range(0, len(result))]
+
+ for idx, re in enumerate(result):
+ response[idx].update(get_property_details(re[variable_name[1]]['value']) if re[variable_name[1]]['type'] == 'uri' else {
+ 'relation': '',
+ 'relationLabel': re[variable_name[1]]['value'],
+ 'relationDescription': '',
+ # 'labelUri': ''
+ })
+
+ response[idx].update({
+ 'head': re[variable_name[0]]['value'].split('/')[-1] if re[variable_name[0]]['type'] == 'uri' else '',
+ 'headLabel': re.get(variable_name[0] + 'Label', {'value': ''})['value'] if re[variable_name[0]]['type'] == 'uri' else re[variable_name[0]]['value'],
+ 'headDescription': re.get(variable_name[0] + 'Description', {'value': ''})['value'],
+ # 'headUri': re[variable_name[0]]['value'] if re[variable_name[0]]['type'] == 'uri' else '',
+ # 'headType': 'uri' if re[variable_name[0]]['type'] == 'uri' else re[variable_name[0]].get('datatype', '')
+ })
+
+ df = pd.DataFrame.from_dict(response)
+ return df.to_markdown()
+
+ except Exception:
+ print("Invalid option!\n", Exception)
+ return pd.DataFrame().to_markdown()
+
+ @tool.get("/get_entity_id")
+ def get_entity_id(input : str):
+ """Search for all the entities that has the surface form as the input. For example, all the entities that are named ``Obama'', including either person, book, anything else.
+ """
+ try:
+ result = requests.get("https://www.wikidata.org/w/api.php", params={
+ "type": "item",
+ "action": "wbsearchentities",
+ "language": "en",
+ "search": input,
+ "origin": "*",
+ "format": "json"
+ }).text
+
+ result = json.loads(result)["search"]
+ # print(result)
+
+ df = pd.DataFrame.from_dict(result)
+ for row in df.axes[1]:
+ if row != "id" and row != "label" and row != "description":
+ df.pop(row)
+ return df.to_markdown()
+
+ except Exception:
+ print("Invalid option!\n", Exception)
+ return pd.DataFrame().to_markdown()
+
+ @tool.get("/get_relation_id")
+ def get_relation_id(input : str):
+ """Search for all the relations that has the surface form as the input. For example, all the relations that are named ``tax''.
+ """
+ try:
+ result = requests.get("https://www.wikidata.org/w/api.php", params={
+ "type": "property",
+ "action": "wbsearchentities",
+ "language": "en",
+ "search": input,
+ "origin": "*",
+ "format": "json"
+ }).text
+
+ result = json.loads(result)["search"]
+
+ df = pd.DataFrame.from_dict(result)
+ for row in df.axes[1]:
+ if row != "id" and row != "label" and row != "description":
+ df.pop(row)
+ return df.to_markdown()
+
+ except Exception:
+ print("Invalid option!\n", Exception)
+ return pd.DataFrame().to_markdown()
+
+ @tool.get("/search_by_code")
+ def search_by_code(query : str):
+ """After knowing the unique id of entity or relation, perform a sparql query. E.g.,
+ Select ?music\nWhere {{\nwd:Q00 wdt:P00 ?music.\n}} The entity label will be automatically retrieved."""
+ try:
+ query, basic_sel = convert_sparql_to_backend(query)
+
+ result = getResult(query)
+
+ for i in range(0, len(result)):
+ for sel in basic_sel:
+ if sel not in result[i]:
+ continue
+ if len(result[i][sel]['value']) < 4 or result[i][sel]['value'][0:4] != 'http':
+ continue
+ id = result[i][sel]['value'].split('/')[-1]
+
+ if type(id) == str and len(id) > 0 and id[0] == 'P':
+ result[i].update(
+ convert(get_property_details_with_name(result[i][sel]['value'], sel)))
+
+ df = pd.DataFrame.from_dict(result)
+ return df.to_markdown()
+ except Exception:
+ print("Invalid option!\n", Exception)
+ return pd.DataFrame().to_markdown()
+
+ return tool
diff --git a/swarms/tools/kg/wikidata/examples.json b/swarms/tools/kg/wikidata/examples.json
new file mode 100644
index 00000000..521dd5f2
--- /dev/null
+++ b/swarms/tools/kg/wikidata/examples.json
@@ -0,0 +1,20 @@
+{
+ "examples": [
+ {
+ "role": "user",
+ "content": "\"question\": \"What is the OSM tag or key of family medicine?\",\"background\": \" {\"OSM TAG\": \"P1282\",\"family madicine\": \"Q3505712\"}\" \"query\": \"SELECT ?osm WHERE {\n wd:Q3505712 wdt:P1282 ?osm.\n}\""
+ },
+ {
+ "role": "user",
+ "content": "\"question\": \"Who was nominated for Academy Award for Best Supporting Actor for A History of Violence?\",\"background\": \" {\"A History of Violence\": \"Q300439\", \"nominated for\": \"P1411\", \"Academy Award for Best Supporting Actor\": \"Q106291\", \"cast member\": \"P161\"}\" \"query\": \"SELECT ?actor WHERE{\n wd:Q300439 wdt:P161 ?actor.\n ?actor wdt:P1411 wd:Q106291.\n}\""
+ },
+ {
+ "role": "user",
+ "content": "\"question\": \"Which person who weighs less than 75 kilograms has the sport number 99?\",\"background\": \" {\"sports number\": \"P1618\", \"mass\": \"P2067\"}\" \"query\": \"SELECT ?person ?personLabel WHERE{\n ?person wdt:P2067 ?weight.\n ?person wdt:P1618 \"99\".\n FILTER(?weight < 75).\n SERVICE wikibase:label { bd:serviceParam wikibase:language \"[AUTO_LANGUAGE], en\". }\n}\""
+ },
+ {
+ "role": "user",
+ "content": "\"question\": \"How many Alabama counties have the captital of Huntsville and have the licence plate code of 39?\",\"background\": \" {\"Alabama\": \"Q173\", \"Huntsville\": \"Q79860\", \"contains the administrative territorial entity\": \"P150\", \"licence plate code\": \"P395\", \"capital of\": \"P1376\"}\" \"query\": \"SELECT ?county_sentence\nWHERE {\n wd:Q173 pq:P150 ?county_sentence.\n ?county_sentence pq:P395 \"39\".\n wd:Q79860 pq:P1376 ?county_sentence.\n}\n}\""
+ }
+ ]
+}
\ No newline at end of file
diff --git a/swarms/tools/kg/wikidata/property.csv b/swarms/tools/kg/wikidata/property.csv
new file mode 100644
index 00000000..185fd592
--- /dev/null
+++ b/swarms/tools/kg/wikidata/property.csv
@@ -0,0 +1,10157 @@
+property_id,property_label,property_desc
+P6,head of government,"head of the executive power of this town, city, municipality, state, country, or other governmental body"
+P10,video,"relevant video. For images, use the property P18. For film trailers, qualify with ""object has role"" (P3831)=""trailer"" (Q622550)"
+P14,traffic sign,"graphic symbol describing the item, used at the side of or above roads to give instructions or provide information to road users"
+P15,route map,image of route map at Wikimedia Commons
+P16,transport network,network the infrastructure is a part of
+P17,country,sovereign state of this item (not to be used for human beings)
+P18,image,"image of relevant illustration of the subject; if available, also use more specific properties (sample: coat of arms image, locator map, flag image, signature image, logo image, collage image)"
+P19,place of birth,"most specific known (e.g. city instead of country, or hospital instead of city) birth location of a person, animal or fictional character"
+P20,place of death,"most specific known (e.g. city instead of country, or hospital instead of city) death location of a person, animal or fictional character"
+P21,sex or gender,"sex or gender identity of human or animal. For human: male, female, non-binary, intersex, transgender female, transgender male, agender. For animal: male organism, female organism. Groups of same gender use subclass of (P279)"
+P22,father,"male parent of the subject. For stepfather, use ""stepparent"" (P3448)"
+P25,mother,"female parent of the subject. For stepmother, use ""stepparent"" (P3448)"
+P26,spouse,"the subject has the object as their spouse (husband, wife, partner, etc.). Use ""unmarried partner"" (P451) for non-married companions"
+P27,country of citizenship,the object is a country that recognizes the subject as its citizen
+P30,continent,continent of which the subject is a part
+P31,instance of,that class of which this subject is a particular example and member
+P35,head of state,official with the highest formal authority in a country/state
+P36,capital,"seat of government of a country, province, state or other type of administrative territorial entity"
+P37,official language,language designated as official by this item
+P38,currency,currency used by item
+P39,position held,subject currently or formerly holds the object position or public office
+P40,child,subject has object as child. Do not use for stepchildren
+P41,flag image,image of the item's flag
+P47,shares border with,"countries or administrative subdivisions, of equal level, that this item borders, either by land or water. A single common point is enough."
+P50,author,"main creator(s) of a written work (use on works, not humans); use P2093 when Wikidata item is unknown or does not exist"
+P51,audio,"relevant sound. If available, use a more specific property. Samples: ""spoken text audio"" (P989), ""pronunciation audio"" (P443)"
+P53,family,"family, including dynasty and nobility houses. Not family name (use P734 for family name)."
+P54,member of sports team,sports teams or clubs that the subject represents or represented
+P57,director,"director(s) of film, TV-series, stageplay, video game or similar"
+P58,screenwriter,person(s) who wrote the script for subject item
+P59,constellation,"the area of the celestial sphere of which the subject is a part (from a scientific standpoint, not an astrological one)"
+P61,discoverer or inventor,"subject who discovered, first described, invented, or developed this discovery or invention"
+P65,site of astronomical discovery,"the place where an astronomical object was discovered (observatory, satellite)"
+P66,ancestral home,place of origin for ancestors of subject
+P69,educated at,educational institution attended by subject
+P78,top-level Internet domain,Internet domain name system top-level code
+P81,connecting line,railway line(s) subject is directly connected to
+P84,architect,person or architectural firm responsible for designing this building
+P85,anthem,subject's official anthem
+P86,composer,"person(s) who wrote the music [for lyricist, use ""lyrics by"" (P676)]"
+P87,librettist,"author of the libretto (words) of an opera, operetta, oratorio or cantata, or of the book of a musical"
+P88,commissioned by,person or organization that commissioned this work
+P91,sexual orientation,"the sexual orientation of the person Ñ use IF AND ONLY IF they have stated it themselves, unambiguously, or it has been widely agreed upon by historians after their death"
+P92,main regulatory text,text setting the main rules by which the subject is regulated
+P94,coat of arms image,image of the item's coat of arms - for the shield part only use P4004
+P97,noble title,titles held by the person
+P98,editor,"person who checks and correct a work (such as a book, newspaper, academic journal, etc.) to comply with a rules of certain genre"
+P101,field of work,specialization of a person or organization; see P106 for the occupation
+P102,member of political party,the political party of which a person is or has been a member or otherwise affiliated
+P103,native language,language or languages a person has learned from early childhood
+P105,taxon rank,level in a taxonomic hierarchy
+P106,occupation,"occupation of a person; see also ""field of work"" (Property:P101), ""position held"" (Property:P39)"
+P108,employer,person or organization for which the subject works or worked
+P109,signature,image of a person's signature
+P110,illustrator,person drawing the pictures or taking the photographs in a book
+P111,measured physical quantity,value of a physical property expressed as number multiplied by a unit
+P112,founded by,"founder or co-founder of this organization, religion or place"
+P113,airline hub,airport that serves as a hub for an airline
+P114,airline alliance,alliance the airline belongs to
+P115,home venue,home stadium or venue of a sports team or applicable performing arts organization
+P117,chemical structure,image of a representation of the structure for a chemical compound
+P118,league,league in which team or player plays or has played in
+P119,place of burial,"location of grave, resting place, place of ash-scattering, etc. (e.g., town/city or cemetery) for a person or animal. There may be several places: e.g., re-burials, parts of body buried separately."
+P121,item operated,"equipment, installation or service operated by the subject"
+P122,basic form of government,subject's government
+P123,publisher,"organization or person responsible for publishing books, periodicals, printed music, podcasts, games or software"
+P126,maintained by,person or organization in charge of keeping the subject (for instance an infrastructure) in functioning order
+P127,owned by,owner of the subject
+P128,regulates (molecular biology),process regulated by a protein or RNA in molecular biology
+P129,physically interacts with,physical entity that the subject interacts with
+P131,located in the administrative territorial entity,the item is located on the territory of the following administrative entity. Use P276 for specifying locations that are non-administrative places and for items about events. Use P1382 if the item falls only partially into the administrative entity.
+P135,movement,"literary, artistic, scientific or philosophical movement or scene associated with this person or work. For political ideologies use P1142."
+P136,genre,creative work's genre or an artist's field of work (P101). Use main subject (P921) to relate creative works to their topic
+P137,operator,"person, profession, or organization that operates the equipment, facility, or service"
+P138,named after,"entity or event that inspired the subject's name, or namesake (in at least one language). Qualifier ""applies to name"" (P5168) can be used to indicate which one"
+P140,religion or worldview,"religion of a person, organization or religious building, or associated with this subject"
+P141,IUCN conservation status,conservation status assigned by the International Union for Conservation of Nature
+P143,imported from Wikimedia project,source of this claim's value; used in references section by bots or humans importing data from Wikimedia projects
+P144,based on,the work(s) used as the basis for subject item
+P149,architectural style,architectural style of a structure
+P150,contains the administrative territorial entity,(list of) direct subdivisions of an administrative territorial entity
+P154,logo image,"graphic mark or emblem commonly used by commercial enterprises, organizations and products"
+P155,follows,"immediately prior item in a series of which the subject is a part, preferably use as qualifier of P179 [if the subject has replaced the preceding item, e.g. political offices, use ""replaces"" (P1365)]"
+P156,followed by,"immediately following item in a series of which the subject is a part, preferably use as qualifier of P179 [if the subject has been replaced, e.g. political offices, use ""replaced by"" (P1366)]"
+P157,killed by,person who killed the subject
+P158,seal image,image of subject's seal (emblem)
+P159,headquarters location,"city, where an organization's headquarters is or has been situated. Use P276 qualifier for specific building"
+P161,cast member,"actor in the subject production [use ""character role"" (P453) and/or ""name of the character role"" (P4633) as qualifiers] [use ""voice actor"" (P725) for voice-only role]"
+P162,producer,"person(s) who produced the film, musical work, theatrical production, etc. (for film, this does not include executive producers, associate producers, etc.) [for production company, use P272, video games - use P178]"
+P163,flag,subject's flag
+P166,award received,"award or recognition received by a person, organization or creative work"
+P167,structure replaced by,"the item which replaced this building or structure, at the same geographic location"
+P169,chief executive officer,highest-ranking corporate officer appointed as the CEO within an organization
+P170,creator,maker of this creative work or other object (where no more specific property exists)
+P171,parent taxon,closest parent taxon of the taxon in question
+P172,ethnic group,"subject's ethnicity (consensus is that a VERY high standard of proof is needed for this field to be used. In general this means 1) the subject claims it themselves, or 2) it is widely agreed on by scholars, or 3) is fictional and portrayed as such)"
+P175,performer,"actor, musician, band or other performer associated with this role or musical work"
+P176,manufacturer,manufacturer or producer of this product
+P177,crosses,"obstacle (body of water, road, railway...) which this bridge crosses over or this tunnel goes under"
+P178,developer,organization or person that developed the item
+P179,part of the series,series which contains the subject
+P180,depicts,"entity visually depicted in an image, literarily described in a work, or otherwise incorporated into an audiovisual or other medium; see also P921, 'main subject'"
+P181,taxon range map image,range map of a taxon
+P183,endemic to,sole location or habitat type where the taxon lives
+P184,doctoral advisor,person who supervised the doctorate or PhD thesis of the subject
+P185,doctoral student,doctoral student(s) of a professor
+P186,made from material,material the subject or the object is made of or derived from (do not confuse with P10672 which is used for processes)
+P189,location of discovery,where the item was located when discovered
+P190,twinned administrative body,"twin towns, sister cities, twinned municipalities and other localities that have a partnership or cooperative agreement, either legally or informally acknowledged by their governments"
+P193,main building contractor,the main organization responsible for construction of this structure or building
+P194,legislative body,"legislative body governing this entity; political institution with elected representatives, such as a parliament/legislature or council"
+P195,collection,"art, museum, archival, or bibliographic collection the subject is part of"
+P196,minor planet group,is in grouping of minor planets according to similar orbital characteristics
+P197,adjacent station,"the stations next to this station, sharing the same line(s)"
+P199,business division,organizational divisions of this organization (which are not independent legal entities)
+P200,inflows,"major inflow sources Ñ rivers, aquifers, glacial runoff, etc. Some terms may not be place names, e.g. none"
+P201,lake outflow,"rivers and other outflows waterway names. If evaporation or seepage are notable outflows, they may be included. Some terms may not be place names, e.g. evaporation"
+P205,basin country,country that have drainage to/from or border the body of water
+P206,located in or next to body of water,body of water on or next to which a place is located
+P207,bathymetry image,"image showing bathymetric chart, bathymetric map"
+P208,executive body,branch of government for the daily administration of the territorial entity
+P209,highest judicial authority,"supreme judicial body within a country, administrative division, or other organization"
+P210,party chief representative,chief representative of a party in an institution or an administrative unit (use qualifier to identify the party)
+P212,ISBN-13,"identifier for a book (edition), thirteen digit"
+P213,ISNI,"International Standard Name Identifier for an identity. Format: 4 blocks of 4 digits separated by a space, first block is 0000"
+P214,VIAF ID,identifier for the Virtual International Authority File database [format: up to 22 digits]
+P215,spectral class,spectral class of an astronomical object
+P217,inventory number,identifier for a physical object or a set of physical objects in a collection
+P218,ISO 639-1 code,2-letter identifier for language or family of languages defined in ISO 639-1 standard
+P219,ISO 639-2 code,"3-letter identifier for language, macro-language or language family, defined in ISO 639-2 standard"
+P220,ISO 639-3 code,"3-letter identifier for language defined in ISO 639-3, extension of ISO 639-2"
+P221,ISO 639-6 code,"4-letter identifier for language variants per ISO 639-6, standard between 2009-2014"
+P223,galaxy morphological type,galaxy morphological classification code
+P225,taxon name,correct scientific name of a taxon (according to the reference given)
+P227,GND ID,"identifier from an international authority file of names, subjects, and organizations (please don't use type n = name, disambiguation) - Deutsche Nationalbibliothek"
+P229,IATA airline designator,two-character identifier for an airline
+P230,ICAO airline designator,"three letter identifier for an airline (two letters only until 1982) (for airports, see P239)"
+P231,CAS Registry Number,identifier for a chemical substance or compound per Chemical Abstract Service's Registry database
+P232,EC number,identifier for a chemical compound per EINECS or ELINCS
+P233,canonical SMILES,Simplified Molecular Input Line Entry Specification (canonical format)
+P234,InChI,International Chemical Identifier
+P235,InChIKey,A hashed version of the full standard InChI - designed to create an identifier that encodes structural information and can also be practically used in web searching.
+P236,ISSN,International Standard Serial Number (print or electronic)
+P237,coat of arms,subject's coat of arms
+P238,IATA airport code,"three-letter identifier for designating airports, railway stations or cities (for airlines, see P229)"
+P239,ICAO airport code,"four-character alphanumeric identifier for designating airports (for airlines, see P230)"
+P240,FAA airport code,three-letter or four-letter alphanumeric code identifying United States airports
+P241,military branch,"branch to which this military unit, award, office, or person belongs, e.g. Royal Navy"
+P242,locator map image,geographic map image which highlights the location of the subject within some larger entity
+P243,OCLC control number,identifier for a unique bibliographic record in OCLC WorldCat
+P244,Library of Congress authority ID,"Library of Congress name authority (persons, families, corporate bodies, events, places, works and expressions) and subject authority identifier [Format: 1-2 specific letters followed by 8-10 digits (see regex). For manifestations, use P1144]"
+P245,Union List of Artist Names ID,identifier from the Getty Union List of Artist Names
+P246,element symbol,identifier for a chemical element
+P247,COSPAR ID,"international satellite designation, administered by the UN Committee on Space Research (COSPAR), similar but not synonymous with the NSSDCA ID (P8913)"
+P248,stated in,to be used in the references field to refer to the information document or database in which a claim is made; for qualifiers use P805; for the type of document in which a claim is made use P3865
+P249,ticker symbol,identifier for a publicly traded share of a particular stock on a particular stock market or that of a cryptocurrency
+P263,official residence,the residence at which heads of government and other senior figures officially reside
+P264,record label,brand and trademark associated with the marketing of subject music recordings and music videos
+P267,ATC code,therapeutic chemical identification code per ATC
+P268,Bibliothque nationale de France ID,"identifier for the subject issued by BNF (Bibliothque nationale de France). Format: 8 digits followed by a check-digit or letter, do not include the initial 'cb'."
+P269,IdRef ID,"identifier for authority control in the French collaborative library catalog (see also P1025). Format: 8 digits followed by a digit or ""X"""
+P270,CALIS ID,identifier for authority control per CALIS (China Academic Library & Information System)
+P271,CiNii Books author ID,identifier for a book author in CiNii Books (aka NACSIS-CAT)
+P272,production company,"company that produced this film, audio or performing arts work"
+P274,chemical formula,description of chemical compound giving element symbols and counts
+P275,copyright license,license under which this copyrighted work is released
+P276,location,"location of the object, structure or event. In the case of an administrative entity as containing item use P131. For statistical entities use P8138. In the case of a geographic entity use P706. Use P7153 for locations associated with the object."
+P277,programming language,the programming language(s) in which the software is developed
+P278,GOST 7.75Ð97 code,identifier for a language according to GOST 7.75Ð97
+P279,subclass of,next higher class or type; all instances of these items are instances of those items; this item is a class (subset) of that item. Not to be confused with P31 (instance of)
+P281,postal code,identifier assigned by postal authorities for the subject area or building
+P282,writing system,"alphabet, character set or other system of writing used by a language, supported by a typeface"
+P286,head coach,"on-field manager or head coach of a sports club (not to be confused with a general manager P505, which is not a coaching position) or person"
+P287,designed by,person(s) or organization which designed the object
+P289,vessel class,series of vessels built to the same design of which this vessel is a member
+P291,place of publication,geographical place of publication of the edition (use 1st edition when referring to works)
+P296,station code,"generic identifier for a railway station, when possible, use specific property on certain coding system (e.g. P1378 for China Railway TMIS codes)"
+P297,ISO 3166-1 alpha-2 code,identifier for a country in two-letter format per ISO 3166-1
+P298,ISO 3166-1 alpha-3 code,identifier for a country in three-letter format per ISO 3166-1
+P299,ISO 3166-1 numeric code,identifier for a country in numeric format per ISO 3166-1
+P300,ISO 3166-2 code,identifier for a country subdivision per ISO 3166-2 (include country code)
+P301,category's main topic,primary topic of the subject Wikimedia category
+P303,EE breed number,breed identification number per the EE list of the breeds of fancy pigeons (ELFP)
+P304,page(s),"page number of source referenced for statement. Note ""column(s)"" (P3903) and ""folio(s)"" (P7416) for other numbering systems"
+P305,IETF language tag,"identifier for language or languoid per the Internet Engineering Task Force; can include a primary language subtag, subtags for script, region, variant, extension, or private-use. Format: 2 or 3 letters, followed by ""-"" if subtags present"
+P306,operating system,operating system (OS) on which a software works or the OS installed on hardware
+P344,director of photography,"person responsible for the framing, lighting, and filtration of the subject work"
+P345,IMDb ID,"identifier for the IMDb [with prefix 'tt', 'nm', 'co', 'ev', 'ch' or 'ni']"
+P347,Joconde work ID,identifier in the Joconde database of the French Ministry of Culture
+P348,software version identifier,"numeric or nominal identifier of a version of a software program or file format, current or past"
+P349,National Diet Library ID,identifier for authority control per the National Diet Library of Japan
+P350,RKDimages ID,identifier per RKDimages of the Netherlands Institute for Art History
+P351,Entrez Gene ID,identifier for a gene per the NCBI Entrez database
+P352,UniProt protein ID,identifier for a protein per the UniProt database
+P353,HGNC gene symbol,"The official gene symbol approved by the HGNC, which is typically a short form of the gene name."
+P354,HGNC ID,A unique ID provided by the HGNC for each gene with an approved symbol. HGNC IDs remain stable even if a name or symbol changes.
+P355,has subsidiary,"subsidiary of a company or organization; generally a fully owned separate corporation. Compare with ""business division"" (P199). Opposite of parent organization (P749)."
+P356,DOI,serial code used to uniquely identify digital objects like academic papers (use upper case letters only)
+P358,discography,item for list pages with discography of artist or band
+P359,Rijksmonument ID,identifier for a monument assigned by the Rijksdienst voor het Cultureel Erfgoed
+P360,is a list of,common element between all listed items
+P361,part of,"object of which the subject is a part (if this subject is already part of object A which is a part of object B, then please only make the subject part of object A). Inverse property of ""has part"" (P527, see also ""has parts of the class"" (P2670))."
+P364,original language of film or TV show,"language in which a film or a performance work was originally created. Deprecated for written works and songs; use P407 (""language of work or name"") instead."
+P366,has use,main use of the subject (includes current and former usage)
+P367,astronomic symbol image,image of the symbol that identify a planet or an asteroid of the solar system
+P368,Sandbox-CommonsMediaFile,"Sandbox property for value of type ""Commons Media File"""
+P369,Sandbox-Item,"sandbox property for value of type ""Item"""
+P370,Sandbox-String,"Sandbox property for value of type ""String"""
+P371,presenter,main role in presenting a radio or television program or a performing arts show
+P373,Commons category,"name of the Wikimedia Commons category containing files related to this item (without the prefix ""Category:"")"
+P374,INSEE municipality code,"identifier with 5 digits or letters for a municipality or a municipal arrondissement in France, per the National Institute of Statistics and Economic Studies"
+P375,space launch vehicle,type of rocket or other vehicle for launching subject payload into outer space
+P376,located on astronomical body,astronomical body on which features or places are situated
+P377,SCN,"Satellite Catalog Number, 5-digit-number including leading zeros (e.g. '00266')"
+P380,Mrime ID,identifier for a monument in the Mrime database of French cultural heritage
+P381,PCP reference number,identifier for cultural properties in Switzerland
+P382,CBS municipality code,identifier for a Dutch municipality as defined by Statistics Netherlands (CBS)
+P393,edition number,"number of an edition (first, second, ... as 1, 2, ...) or event"
+P395,licence plate code,distinguishing signs or parts of license plate associated with the subject. For countries: international licence plate country code or distinguishing sign of vehicles
+P396,SBN author ID,identifier issued by National Library Service (SBN) of Italy
+P397,parent astronomical body,major astronomical body the item belongs to
+P398,child astronomical body,minor body that belongs to the item
+P399,companion of,two or more astronomic bodies of the same type relating to each other
+P400,platform,"platform for which a work was developed or released, or the specific platform version of a software product"
+P402,OpenStreetMap relation ID,identifier for a relation in OpenStreetMap
+P403,mouth of the watercourse,the body of water to which the watercourse drains
+P404,game mode,a video game's available playing mode(s)
+P405,taxon author,the author(s) that (optionally) may be cited with the scientific name
+P406,soundtrack release,music release that incorporates music directly recorded from the soundtrack of an audiovisual work
+P407,language of work or name,"language associated with this creative work (such as books, shows, songs, broadcasts or websites) or a name (for persons use ""native language"" (P103) and ""languages spoken, written or signed"" (P1412))"
+P408,software engine,software engine employed by the subject item
+P409,Libraries Australia ID,"identifier issued by the National Library of Australia (see also P1315 for the newer People Australia identifier). VIAF component. Format: 1-12 digits, removing leading zero-padding."
+P410,military rank,"military rank achieved by a person (should usually have a ""start time"" qualifier), or military rank associated with a position"
+P411,canonization status,stage in the process of attaining sainthood per the subject's religious organization
+P412,voice type,"person's voice type. expected values: soprano, mezzo-soprano, contralto, countertenor, tenor, baritone, bass (and derivatives)"
+P413,position played on team / speciality,position or specialism of a player on a team
+P414,stock exchange,exchange on which this company is traded
+P415,radio format,describes the overall content broadcast on a radio station
+P416,quantity symbol (string),symbol for a mathematical or physical quantity
+P417,patron saint,patron saint adopted by the subject
+P418,"has seal, badge, or sigil",links to the item for the subject's seal
+P421,located in time zone,time zone for this item
+P423,shooting handedness,whether the hockey player passes or shoots left- or right-handed
+P424,Wikimedia language code,identifier for a language or variant as used by Wikimedia projects
+P425,field of this occupation,"field corresponding to this occupation or profession (use only for occupations/professions - for people use Property:P101, for companies use P452)"
+P426,aircraft registration,identifier assigned to an individual aircraft by civil aircraft registry
+P427,taxonomic type,"the type genus of this family (or subfamily, etc), or the type species of this genus (or subgenus, etc)"
+P428,botanist author abbreviation,"standard form (official abbreviation) of a personal name for use in an author citation (only for names of algae, fungi and plants)"
+P429,dantai code,identifier for administrative division in 6-digit format assigned by the interior ministry of Japan
+P432,callsign of airline,identifier used in radio transmissions to refer to the subject airline
+P433,issue,"issue of a newspaper, a scientific journal or magazine for reference purpose"
+P434,MusicBrainz artist ID,identifier for an artist in the MusicBrainz open music encyclopedia
+P435,MusicBrainz work ID,identifier for a work per the MusicBrainz open music encyclopedia
+P436,MusicBrainz release group ID,"identifier for a release group per the MusicBrainz open music encyclopedia (album, single, etc.)"
+P437,distribution format,method (or type) of distribution for the subject
+P439,German municipality key,identifier for municipalities and independent towns in Germany
+P440,German district key,identifier for districts (Landkreise) and independent towns in Germany
+P442,China administrative division code,identifier for administrative divisions of People's Republic of China (with spaces)
+P443,pronunciation audio,audio file with pronunciation
+P444,review score,review score received by a creative work or other entity
+P447,review score by,issuer of a review score
+P449,original broadcaster,network(s) or service(s) that originally broadcast a radio or television program
+P450,astronaut mission,space mission that the subject is or has been a member of (do not include future missions)
+P451,unmarried partner,"someone with whom the person is in a relationship without being married. Use ""spouse"" (P26) for married couples"
+P452,industry,specific industry of company or organization
+P453,character role,"specific role played or filled by subject -- use only as qualifier of ""cast member"" (P161), ""voice actor"" (P725)"
+P454,Structurae structure ID,identifier for a building in the Structurae database
+P455,Emporis building ID,"identifier for a building in the Emporis database (for building complexes, see P2270)"
+P457,foundational text,text through which an institution or object has been created or established
+P458,IMO ship number,"identifier for a ship, ship owner or ship manager per the International Maritime Organization"
+P459,determination method,"how a value is determined, or the standard by which it is declared"
+P460,said to be the same as,"this item is said to be the same as that item, but it's uncertain or disputed"
+P461,opposite of,item that is the opposite of this item
+P462,color,color of subject
+P463,member of,"organization, club or musical group to which the subject belongs. Do not use for membership in ethnic or social groups, nor for holding a political position, such as a member of parliament (use P39 for that)."
+P464,NOR,identifier for French official texts
+P465,sRGB color hex triplet,"sRGB hex triplet format for subject color (e.g. 7FFFD4) specifying the 8-bit red, green and blue components"
+P466,occupant,person or organization occupying property
+P467,legislated by,indicates that an act or bill was passed by a legislature. The value can be a particular session of the legislature
+P468,dan/kyu rank,"rank system used in several board games (e.g. go, shogi, renju), martial arts (e.g. judo, kendo, wushu) and some other games"
+P469,lake on watercourse,lakes or reservoirs the river or stream flows through
+P470,Eight Banner register,Manchu household register for people of the Qing Dynasty
+P473,local dialing code,identifier dedicated to subject city by the area communication network
+P474,country calling code,identifier for a country - dialed on phone after the international dialing prefix (precede value by +)
+P476,CELEX number,identifier for European legal texts in EUR-Lex database
+P477,Canadian Register of Historic Places ID,identifier in the Canadian Register of Historic Places
+P478,volume,volume of a book or music release in a collection/series or a published collection of journal issues in a serial publication
+P479,input method,input method or device used to interact with a software product
+P480,FilmAffinity ID,FilmAffinity identification number of a creative work
+P481,Palissy ID,identifier in the Palissy database of moveable objects of French cultural heritage
+P483,recorded at studio or venue,studio or location where a musical composition/release was recorded
+P484,"IMA Number, broad sense","identifier for a mineralÊper the International Mineralogical Association -ÊCommission on New Minerals, Nomenclature and Classification (IMA-CNMNC)"
+P485,archives at,the institution holding the subject's archives
+P486,MeSH descriptor ID,identifier for Descriptor or Supplementary concept in the Medical Subject Headings controlled vocabulary
+P487,Unicode character,Unicode character representing the item
+P488,chairperson,"presiding member of an organization, group or body"
+P489,currency symbol description,item with description of currency symbol
+P490,provisional designation,designation of an astronomical body after its discovery and before its official name
+P491,orbit diagram,image with the diagram of the orbit of an astronomical body
+P492,OMIM ID,"Online ""Mendelian Inheritance in Man"" catalogue codes for diseases, genes, or phenotypes"
+P493,ICD-9,identifier in the ICD catalogue codes for diseases Ð Version 9
+P494,ICD-10,identifier in theÊICD catalogue codes for diseases - Version 10
+P495,country of origin,"country of origin of this item (creative work, food, phrase, product, etc.)"
+P496,ORCID iD,identifier for a person
+P497,CBDB ID,identifer for a person in the China Biographical Database
+P498,ISO 4217 code,identifier for a currency perÊISO 4217
+P500,exclave of,territory is legally or politically attached to a main territory with which it is not physically contiguous because of surrounding alien territory. It may also be an enclave.
+P501,enclave within,territory is entirely surrounded (enclaved) by the other territory
+P502,HURDAT identifier,identifier per HURDAT (North Atlantic hurricane database)
+P503,ISO standard,number of the ISO standard which normalizes the object
+P504,home port,"home port of the vessel (if different from ""ship registry""): For civilian ships, the primary port from which the ship operates. Port of registry ?P532 should be listed in ""Ship registry"". For warships, this will be the ship's assigned naval base"
+P505,general manager,general manager of a sports team. If they are also an on-field manager use P286 instead
+P506,ISO 15924 alpha-4 code,"4-letter identifier for a script, writing system, or typeface/style used in one or more languages"
+P507,Swedish county code,"identifier for a county in Sweden ""lnskod"" (two-digit)"
+P508,BNCF Thesaurus ID,identifier in the subject indexing tool of the National Central Library of Florence
+P509,cause of death,"underlying or immediate cause of death. Underlying cause (e.g. car accident, stomach cancer) preferred. Use 'manner of death' (P1196) for broadest category, e.g. natural causes, accident, homicide, suicide"
+P511,honorific prefix,"word or expression used before a name, in addressing or referring to a person"
+P512,academic degree,academic degree that the person holds
+P514,interleaves with,stratigraphic relation in which two units overlap each other marginally
+P515,phase of matter,state or phase of the matter at which the measure was made
+P516,powered by,equipment or engine used by the subject to convert a source or energy into mechanical energy
+P517,interaction,"subset of the four fundamental forces (strong (Q11415), electromagnetic (Q849919), weak (Q11418), and gravitation (Q11412) with which a particle interacts"
+P518,applies to part,"part, aspect, or form of the item to which the claim applies"
+P520,armament,equippable weapon item for the subject
+P521,scheduled service destination,airport or station connected by regular direct service to the subject; for the destination of a trip see P1444
+P522,type of orbit,orbit a satellite has around its central body
+P523,temporal range start,the start of a process or appearance of a life form or geological unit relative to the geologic time scale
+P524,temporal range end,the end of a process such as a geological unit or extinction of a life form relative to the geologic time scale
+P525,Swedish municipality code,"identifier for a municipality in Sweden ""kommunkod"" (four-digit)"
+P527,has part(s),"part of this subject; inverse property of ""part of"" (P361). See also ""has parts of the class"" (P2670)."
+P528,catalog code,"catalog name of an object, use with qualifier P972"
+P529,runway,name (direction) of runway at airport/airfield/airstrip
+P530,diplomatic relation,diplomatic relations of the country
+P531,diplomatic mission sent,"location of diplomatic mission, i.e. consulate of A in the capital city of B"
+P532,port of registry,"ship's port of registry. This is generally painted on the ship's stern (for the ""home port"", see Property:P504)"
+P533,target,target of an attack or military operation
+P534,streak color,color of a mineral or material when abraded
+P535,Find a Grave memorial ID,identifier of an individual's burial place in the Find a Grave database
+P536,ATP player ID,ATP tennis male player identifier
+P537,twinning,type of twins a crystal forms
+P538,mineral fracture,fracture types in a mineral
+P539,Museofile,identifer for a museum in the Museofile database of the French ministry of culture
+P541,office contested,title of office which election will determine the next holder of
+P542,officially opened by,person that officially opened the event or place
+P543,oath made by,"person(s) that made the oath at an event, like the Olympic Games"
+P545,torch lit by,"person that lit the torch at an event, like the Olympic Games"
+P546,docking port,intended docking port for a spacecraft
+P547,commemorates,"what the place, monument, memorial, or holiday, commemorates"
+P548,version type,"type of version (qualifier for P348, software version), e.g. alpha, beta, stable"
+P549,Mathematics Genealogy Project ID,identifier for mathematicians and computer scientists at the Mathematics Genealogy Project
+P550,chivalric order,the chivalric order which a person belongs to
+P551,residence,"the place where the person is or has been, resident"
+P552,handedness,handedness of the person
+P553,website account on,website that the person or organization has an account on (use with P554) Note: only used with reliable source or if the person or organization disclosed it.
+P554,website username,"username on a website that the person or movement has an account on, for use as qualifier of ""website account on"" (P553)"
+P555,doubles record,win/lose balance for a player in doubles tournaments
+P556,crystal system,type of crystal for mineralsÊand/or for crystal compounds
+P557,DiseasesDB,identifier sourced on the Diseases Database
+P559,terminus,"the feature (intersecting road, train station, etc.) at the end of a linear feature"
+P560,direction,"qualifier to indicate the direction of the object relative to the subject item (for direction to the object, see P654)"
+P561,NATO reporting name,official reporting name assigned by the ASCC for NATO use
+P562,central bank/issuer,central bank or other issuing authority for the currency
+P563,ICD-O,International Classification of Diseases for Oncology
+P564,singles record,win/lose balance for a player in singles tournaments
+P565,crystal habit,the form and proportions of a crystal or mineral
+P566,basionym,"the legitimate, previously published name on which a new combination or name at new rank is based"
+P567,underlies,stratigraphic unit that this unit lies under (i.e. the overlying unit)
+P568,overlies,stratigraphic unit that this unit lies over (i.e. the underlying unit)
+P569,date of birth,date on which the subject was born
+P570,date of death,date on which the subject died
+P571,inception,time when an entity begins to exist; for date of official opening use P1619
+P574,year of taxon publication,year when this taxon was formally described (for animals); year when this taxon name was formally established (for plants)
+P575,time of discovery or invention,date or point in time when the item was discovered or invented
+P576,"dissolved, abolished or demolished date","point in time at which the subject (organisation, building) ceased to exist; see ""date of official closure"" (P3999) for closing a facility, ""service retirement"" (P730) for retiring equipment, ""discontinued date"" (P2669) for stopping a product"
+P577,publication date,date or point in time when a work was first published or released
+P578,Sandbox-TimeValue,"Sandbox property for value of type ""TimeValue"""
+P579,IMA status and/or rank,status given to each mineral by the IMA (International Mineralogical Association)
+P580,start time,time a time period starts
+P582,end time,time a time period ends
+P585,point in time,"time and date something took place, existed or a statement was true"
+P586,IPNI author ID,numerical identifier for a person in the International Plant Names Index
+P587,MMSI,Maritime Mobile Service Identity of a ship station. Format 8 or 9 digits
+P588,coolant,substance used by the subject to dissipate excess thermal energy
+P589,point group,crystal subdivision
+P590,GNIS ID,"identifier for geographic objects in the US issued by the USGS. For Antarctica, use Property:P804"
+P591,EC enzyme number,classification scheme for enzymes
+P592,ChEMBL ID,identifier from a chemical database of bioactive molecules with drug-like properties
+P593,HomoloGene ID,identifier in theÊHomoloGene database
+P594,Ensembl gene ID,identifier for a gene as per the Ensembl (European Bioinformatics Institute and the Wellcome Trust Sanger Institute) database
+P595,Guide to Pharmacology Ligand ID,ligand identifier of the Guide to Pharmacology database
+P597,WTA player ID,identifier for a female tennis player per WTA
+P598,commander of (DEPRECATED),"for persons who are notable as commanding officers, the units they commanded"
+P599,ITF player ID,identifier for a tennis player at the International Tennis Federation (ITF) website
+P600,Wine AppDB ID,identifier for an application in the AppDB of WineHQ
+P604,MedlinePlus ID,"health information from U.S. government agencies, and health-related organizations"
+P605,NUTS code,identifier for a region perÊNUTS
+P606,first flight,"date or point in time on which aircraft, rocket, or airline first flew"
+P607,conflict,"battles, wars or other military engagements in which the person or item participated"
+P608,exhibition history,exhibitions where the item is or was displayed
+P609,terminus location,location of the terminus of a linear feature
+P610,highest point,"point with highest elevation in a region, or on the path of a race or route"
+P611,religious order,order of monks or nuns to which an individual or religious house belongs
+P612,mother house,principal house or community for a religious institute
+P613,OS grid reference,grid location reference from the Ordnance Survey National Grid reference system used in Great Britain
+P617,yard number,identifier of a ship assigned by its builder (shipyard)
+P618,source of energy,describes the source of energy an animated object (machine or animal) uses
+P619,UTC date of spacecraft launch,year-month-day of spacecraft launch not adjusted by timezone or other offset
+P620,time of spacecraft landing,date and time of spacecraft landing in UTC
+P621,time of object orbit decay,point in time for when an object previously in planetary orbit enters dense enough atmosphere to rapidly aerobrake and deorbit. on earth considered to be at the entry interface at about 400 000 feet AMSL.
+P622,spacecraft docking/undocking date,"date and time of spacecraft docking or undocking event, in UTC"
+P624,guidance system,guidance system of a missile
+P625,coordinate location,"geocoordinates of the subject. For Earth, please note that only WGS84 coordinating system is supported at the moment"
+P626,Sandbox-GeoCoordinateValue,"Sandbox property for value of type ""GeoCoordinateValue"""
+P627,IUCN taxon ID,identifier for a taxon in the International Union for Conservation of Nature database; source for conservation status (P141)
+P628,E number,number for food additives that are legal in the European Union
+P629,edition or translation of,is an edition or translation of this entity
+P630,Paris city digital code,"identifier for a street in Paris, France; format: 3 or 4 digits/letters"
+P631,structural engineer,"person, group or organisation responsible for the structural engineering of a building or structure"
+P632,cultural properties of Belarus reference number,identifier for aÊcultural property of Belarus
+P633,Quebec cultural heritage directory ID,identifier in the directory of the cultural heritage of Quebec
+P634,captain,captain of this sports team
+P635,ISTAT ID,identifier for municipalities in Italy
+P636,route of administration,"path by which a drug, fluid, poison, or other substance is taken into the body"
+P637,RefSeq protein ID,identifier for a protein
+P638,PDB structure ID,identifier for 3D structural data as per the PDB (Protein Data Bank) database
+P639,RefSeq RNA ID,RNA Identifier
+P640,Lonore ID,identifier of a person in the Lonore database
+P641,sport,sport that the subject participates or participated in or is associated with
+P642,of,(Use a more specific property where feasible; this property will be deprecated) qualifier stating that a statement applies within the scope of a particular item
+P644,genomic start,genomic starting coordinate of the biological sequence (e.g. a gene)
+P645,genomic end,genomic ending coordinate of the biological sequence (e.g. a gene)
+P646,Freebase ID,"identifier for a page in the Freebase database. Format: ""/m/0"" followed by 2 to 7 characters. For those starting with ""/g/"", use Google Knowledge Graph identifier (P2671)"
+P647,drafted by,which team the player was drafted by
+P648,Open Library ID,"identifier for a work (""W""), edition (""M"") or author (""A"") for book data of the Internet Archive"
+P649,NRHP reference number,identifier in the National Register of Historic Places assigned by the National Park Service of the USA
+P650,RKDartists ID,identifier in the RKDartists database (Rijksbureau voor Kunsthistorische Documentatie)
+P651,Biografisch Portaal van Nederland ID,identifier at Biografisch Portaal van Nederland
+P652,UNII,identifier issued by the FDA / Unique Ingredient Identifier
+P653,PubMed Health,"identifier for a physiological condition, in the PubMed Health website"
+P654,direction relative to location,"qualifier for geographical locations to express the direction relative to the object (for direction to the subject, see P560)"
+P655,translator,agent who adapts any kind of written text from one language to another
+P656,RefSeq,qualifier to specify Reference Sequence identifier for the Protein and RNA (either p637 or p639)
+P657,RTECS number,chemical identifier from the Registry of Toxic Effects of Chemical Substances
+P658,tracklist,audio tracks contained in this release
+P659,genomic assembly,specify the genome assembly on which the feature is placed
+P660,EC enzyme classification,the Enzyme Commission (EC)-based accepted name of any enzyme classifications of the protein or RNA molecule
+P661,ChemSpider ID,"identifier in a free chemical database, owned by the Royal Society of Chemistry"
+P662,PubChem CID,identifier fromÊdatabase of chemical molecules and their activities in biological assays (Compound ID number)
+P663,DSM-IV classification,identifier for a mental disorder in the 4th edition of Diagnostic and Statistical Manual of Mental Disorders
+P664,organizer,person or institution organizing an event
+P665,KEGG ID,"identifier fromÊdatabases dealing with genomes, enzymatic pathways, and biological chemicals"
+P667,ICPC 2 ID,classification method for primary care encounters
+P668,GeneReviews ID,collection of peer-reviewed articles that describe specific gene-releated diseases
+P669,located on street,"street, road, or square, where the item is located. To add the number, use Property:P670 ""street number"" as qualifier. Use property P6375 if there is no item for the street"
+P670,street number,"number in the street address. To be used as a qualifier of Property:P669 ""located on street"""
+P671,Mouse Genome Informatics ID,identifier for a gene in the Mouse Genome Informatics database
+P672,MeSH tree code,"Medical Subject Headings (MeSH) codes are an index and thesaurus for the life sciences ( MeSH ID, P486)"
+P673,eMedicine ID,identifier in the online clinical medical knowledge base
+P674,characters,"characters which appear in this item (like plays, operas, operettas, books, comics, films, TV series, video games)"
+P675,Google Books ID,identifier for a book edition in Google Books
+P676,lyrics by,author of song lyrics
+P677,òSOP code,"identifier in drusop.nature.cz, a national database of protected areas and trees"
+P678,incertae sedis,qualifier for P171 (parent taxon) to mark which intermediate ranks are incertae sedis
+P679,ZVG number,identifier of GESTIS database
+P680,molecular function,represents gene ontology function annotations
+P681,cell component,component of the cell in which this item is present
+P682,biological process,is involved in the biological process
+P683,ChEBI ID,identifier fromÊdatabase and ontology of molecular entities focused on 'small' chemical compounds
+P684,ortholog,orthologous gene in another species (use with 'species' qualifier)
+P685,NCBI taxonomy ID,identifer for a taxon in the Taxonomy Database by the National Center for Biotechnology Information
+P686,Gene Ontology ID,identifier in the Gene Ontology
+P687,BHL page ID,identifier in the Biodiversity Heritage Library (BHL)
+P688,encodes,the product of a gene (protein or RNA)
+P689,afflicts,"type of organism, organ or anatomical structure which a condition or disease afflicts"
+P690,space group,symmetry classification for 2 and 3 dimensional patterns or crystals
+P691,NKCR AUT ID,identifier in the Czech National Authority Database (National Library of Czech Republic)
+P692,Gene Atlas Image,image showing the GeneAtlas expression pattern
+P693,cleavage,way that crystalline materials cleave
+P694,replaced synonym (for nom. nov.),"previously published name on which a replacement name (avowed substitute, nomen novum) is based."
+P695,UN number,"four-digit numbers that identify hazardous substances, and articles (such as explosives, flammable liquids, toxic substances, etc.) in the framework of international transport"
+P696,Interlex ID,identifier in the Interlex database (used to be Neurolex)
+P697,ex taxon author,"person(s) whom the author(s) of a name credited for the idea, followed in an author citation by ""ex"" (via P405)"
+P698,PubMed ID,identifierÊfor journal articles/abstracts in PubMed
+P699,Disease Ontology ID,identifier in the Disease Ontology database
+P700,Kemler code,code describing the hazards of a chemical in transport
+P701,Dodis ID,"identifier in the Dodis database (Diplomatic Documents of Switzerland 1945-1969), see Q661051"
+P702,encoded by,the gene that encodes some gene product
+P703,found in taxon,the taxon in which the item can be found
+P704,Ensembl transcript ID,transcript ID issued by Ensembl database
+P705,Ensembl protein ID,identifier for a protein issued by Ensembl database
+P706,located in/on physical feature,located on the specified (geo)physical feature. Should not be used when the value is only political/administrative (P131) or a mountain range (P4552).
+P707,satellite bus,general model on which multiple-production satellite spacecraft is based
+P708,diocese,administrative division of the church to which the element belongs; use P5607 for other types of ecclesiastical territorial entities
+P709,Historic Scotland ID,identifier for a building in the Historic Scotland database
+P710,participant,"person, group of people or organization (object) that actively takes/took part in an event or process (subject). Preferably qualify with ""object has role"" (P3831). Use P1923 for participants that are teams."
+P711,"Strunz 8th edition (series ID, updated)","mineral classification 8th edition, series identifier, silicate classification modified by Athena"
+P712,Nickel-Strunz 9th edition (updated 2009),"mineral classification Nickel-Strunz version 9 (updated 2009, deprecated), a PDF format file. Superseeded by Nickel-Strunz '10th ed'"
+P713,"Nickel-Strunz '10th ed', review of (9th ed/ 2009 update)",mineral classification Nickel-Strunz version 10 (MinDat)
+P714,Dana 8th edition,mineral classification Dana 8th edition
+P715,DrugBank ID,identifier in the bioinformatics and cheminformatics database from the University of Alberta
+P716,JPL Small-Body Database SPK-ID,identifier in theÊJPL Small-Body Database
+P717,Minor Planet Center observatory code,identifier for an astronomical observatory assigned by the Minor Planet Center
+P718,Canmore ID,identifier in the Royal Commission on the Ancient and Historical Monuments of Scotland's Canmore database
+P720,asteroid spectral type,"spectral classifications of asteroids based on spectral shape, color, and albedo"
+P721,OKATO ID,identifier for every administrative unit in Russia
+P722,UIC station code,"identifier for a railway station in Europe, CIS countries, the Far East (China, Mongolia, Japan, Korea, Vietnam), North Africa and the Middle East"
+P723,Digitale Bibliotheek voor de Nederlandse Letteren author ID,identifier for an author on the DBNL-website for Dutch language authors
+P724,Internet Archive ID,identifier for an item on Internet Archive
+P725,voice actor,"performer of a spoken role in a creative work such as animation, video game, radio drama, or dubbing over [use ""character role"" (P453) as qualifier] [use ""cast member"" (P161) for live acting]"
+P726,candidate,person or party that is an option for an office in this election
+P729,service entry,date or point in time on which a piece or class of equipment entered operational service
+P730,service retirement,date or point in time on which a piece or class of equipment was retired from operational service
+P731,Litholex ID,identifier in the Lithostratigraphic database of Germany maintained by the BGR
+P732,BGS Lexicon of Named Rock Units ID,identifier for a stratigraphic unit given by the British Geological Survey
+P733,DINOloket ID,identifier fromÊdatabase of geologic units in the Netherlands (Data Informatie Nederlandse Ondergrond)
+P734,family name,part of full name of person
+P735,given name,first name or another given name of this person; values used with the property should not link disambiguations nor family names
+P736,cover art by,"name of person or team creating cover artwork for book, record album, single record etc."
+P737,influenced by,"this person, idea, etc. is informed by that other person, idea, etc., e.g. ÒHeidegger was influenced by AristotleÓ"
+P739,ammunition,cartridge or other ammunition used by the subject firearm
+P740,location of formation,location where a group or organization was formed
+P741,playing hand,hand used to play a racket sport
+P742,pseudonym,alias used by someone (for nickname use P1449)
+P744,asteroid family,population of asteroids that share similar proper orbital elements
+P745,Low German Bibliography and Biography ID,identifier
+P746,date of disappearance,date or point of time a missing person was seen or otherwise known to be alive for the last time
+P747,has edition or translation,link to an edition of this item
+P748,appointed by,"who appointed the person to the office, can be used as a qualifier"
+P749,parent organization,"parent organization of an organization, opposite of subsidiaries (P355)"
+P750,distributed by,distributor of a creative work; distributor for a record label; news agency; film distributor
+P751,introduced feature,feature introduced by this version of a product item
+P756,removed feature,which feature was removed by this version of a product item
+P757,World Heritage Site ID,"the identifier for a site as assigned by UNESCO. Use on one item per site, link parts with property ""has part"" (P527)"
+P758,Kulturminne ID,Norwegian heritage property identification number of Riksantikvaren (the Directorate for Cultural Heritage)
+P759,Alberta Register of Historic Places ID,identifier of historic resources in the Alberta Register of Historic Places
+P760,DPLA ID,"identifier for books, paintings, films, museum objects and archival records that have been digitised throughout United States"
+P761,Lake ID (Sweden),"Identification code for lakes in Sweden, for lakes important enough also used, with SE- prefix, as EU_CD"
+P762,Czech cultural heritage ID,identifier for cultural heritage properties in the Czech Republic
+P763,PEI Register of Historic Places ID,"identifier of a historic place in Prince Edward Island, Canada"
+P764,OKTMO ID,identifier in Classification on Objects territory of municipal formations (Russia)
+P765,surface played on,the surface on which a sporting event is played
+P767,contributor to the creative work or subject,person or organization that contributed to a subject: co-creator of a creative work or subject
+P768,electoral district,"electoral district this person is representing, or of the office that is being contested. Use as qualifier for ""position held"" (P39) or ""office contested"" (P541) or ""candidacy in election"" (P3602)"
+P769,significant drug interaction,"clinically significant interaction between two pharmacologically active substances (i.e., drugs and/or active metabolites) where concomitant intake can lead to altered effectiveness or adverse drug events."
+P770,cause of destruction,item which caused the destruction of the subject item
+P771,Swiss municipality code,identifier for a municipality in Switzerland
+P772,INE municipality code,"identifier for Spanish municipalities, by the Spanish Statistical Office (INE)"
+P773,ISO 3166-3,identifier for a country name that has been deleted from ISO 3166-1 since its first publication in 1974
+P774,FIPS 55-3 (locations in the US),identifier for places in the United States per former Federal Information Processing Standard FIPS 55-3
+P775,Swedish urban area code,identifier for an urban area in Sweden
+P776,Swedish minor urban area code,identifier for a minor urban area in Sweden
+P777,Swedish civil parish code/ATA code,identifier for a civil parish in Sweden
+P778,Church of Sweden parish code,identifier for a parish of the Church of Sweden
+P779,Church of Sweden Pastoratskod,identifier for a pastoral district of the Church of Sweden
+P780,symptoms and signs,possible symptoms or signs of a medical condition
+P781,SIKART ID,"identifier in SIKART, a biographical dictionary and a database on visual art in Switzerland and Liechtenstein"
+P782,LAU,"identifier for a local administrative unit, renamed from NUTS 4 and NUTS 5. Format: 2 letters followed by digits"
+P783,hymenium type,type of spore-bearing surface or that mushroom
+P784,mushroom cap shape,property classifying the shape of the cap of a mushroom
+P785,hymenium attachment,how the hymenium of the mushroom attaches to the stem
+P786,stipe character,indicates whether a mushroom has a universal or partial veil
+P787,spore print color,color of a mushroom spore print (see documentation for allowed values)
+P788,mushroom ecological type,property classifying the ecological type of a mushroom
+P789,edibility,whether a mushroom can be eaten or not
+P790,approved by,item is approved by other item(s) [qualifier: statement is approved by other item(s)]
+P791,ISIL,identifier for a library or related organization
+P792,chapter,title or number of the chapter where a claim is made
+P793,significant event,significant or notable events associated with the subject
+P795,located on linear feature,linear feature along which distance is specified from a specified datum point
+P797,authority,entity having executive power on given entity
+P798,military designation,officially assigned designation for a vehicle in military service
+P799,Air Ministry specification ID,identifier for an aircraft specification issued by the United Kingdom Air Ministry
+P800,notable work,"notable scientific, artistic or literary work, or other work of significance among subject's works"
+P802,student,notable student(s) of the subject individual
+P803,professorship,professorship position held by this academic person
+P804,GNIS Antarctica ID,"identifier for geographic objects in Antarctica, used in the US Geological Survey's Geographic Names Information System. For U.S. IDs, use Property:P590"
+P805,statement is subject of,(qualifying) item that describes the relation identified in this statement
+P806,Italian cadastre code (municipality),identifier for an Italian comune in the cadastre
+P807,separated from,subject was founded or started by separating from identified object
+P808,Bien de Inters Cultural (BIC) code,identifier for an item in the Spanish heritage register (included RI/ARI)
+P809,WDPA ID,identifier in World Database on Protected Areas
+P811,academic minor,minor someone studied at college/university
+P812,academic major,major someone studied at college/university
+P813,retrieved,date or point in time that information was retrieved from a database or website (for use in online sources)
+P814,IUCN protected areas category,protected areas category by the World Commission on Protected Areas. Used with dedicated items for each category.
+P815,ITIS TSN,identifier for a taxon in the Integrated Taxonomic Information System
+P816,decays to,what isotope does this radioactive isotope decay to
+P817,decay mode,"type of decay that a radioactive isotope undergoes (should be used as a qualifier for ""decays to"")"
+P818,arXiv ID,identifier of a document in arXiv pre-print archive
+P819,ADS bibcode,bibcode in the Astrophysics Data System
+P820,arXiv classification,arXiv classification of pre-print articles
+P821,CGNDB unique ID,identifier(s) for a geographical feature contained in the Canadian Geographical Names Data Base (CGNDB)
+P822,mascot,"mascot of an organization, e.g. a sports team or university"
+P823,speaker,"person who is speaker for this event, ceremony, keynote, presentation or in a literary work"
+P824,Meteoritical Bulletin Database ID,identifierÊfor a meteorite in the database of the Meteoritical Society
+P825,dedicated to,person or organization to whom the subject was dedicated
+P826,tonality,key of a musical composition
+P827,BBC programme ID,identifier for the corresponding item on the BBC website and internal systems
+P828,has cause,"underlying cause, thing that ultimately resulted in this effect"
+P829,OEIS ID,identifer on the On-Line Encyclopedia of Integer Sequences
+P830,Encyclopedia of Life ID,eol.org item reference number
+P831,parent club,parent club of this team
+P832,public holiday,"official public holiday that occurs in this place in its honor, usually a non-working day"
+P833,interchange station,"station to which passengers can transfer to from this station, normally without extra expense"
+P834,train depot,"depot which serves this railway line, not public stations"
+P835,author citation (zoology),short form of the name used after a taxon this person has authored
+P836,GSS code (2011),"nine-character UK Government Statistical Service code, introduced in 2009 to replace older ONS codes"
+P837,day in year for periodic occurrence,when a specific holiday or periodic event occurs. Can be used as property or qualifier
+P838,BioLib taxon ID,identifierÊfor a taxon in the biological encyclopedia BioLib
+P839,IMSLP ID,identifier on the International Music Score Library Project
+P840,narrative location,the narrative of the work is set in this location
+P841,feast day,saint's principal feast day
+P842,Fossilworks taxon ID,"identifier for an animal, plant, or microorganism in the Fossilworks database"
+P843,SIRUTA code,identifier for an area of Romania per National Institute of Statistics
+P844,UBIGEO code,identifier for a geographical location in Peru used by the National Statistics Institute
+P845,Saskatchewan Register of Heritage Property ID,identifier in the Saskatchewan Register of Heritage Property
+P846,GBIF taxon ID,taxon identifier in GBIF
+P847,United States Navy aircraft designation,identifier for an aircraft of theÊUnited States Navy
+P849,Japanese military aircraft designation,identifier for an aircraft per the Japanese military
+P850,WoRMS-ID for taxa,identifier in the World Register of Marine Species
+P852,ESRB rating,North American video game content rating
+P853,CERO rating,Japanese video game rating system
+P854,reference URL,"should be used for Internet URLs as references. Use ""Wikimedia import URL"" (P4656) for imports from WMF sites"
+P855,Sandbox-URL,"Sandbox property for value of type ""URL"""
+P856,official website,"URL of the official page of an item (current or former) [if the page changes, add an additional statement with preferred rank. Do not remove the former URL]"
+P858,ESPNscrum player ID,"identifier for an international rugby union player, from ESPN.co.uk or ESPNscrum.com"
+P859,sponsor,organization or individual that sponsors this item
+P860,e-archiv.li ID,"identifier in e-archiv.li, a directory of sources of Landesarchiv Liechtenstein"
+P861,PremiershipRugby.com player ID,identifier for each rugby union player who plays - or played - the English Premiership
+P862,Operational Requirement of the UK Air Ministry,specification for future military aircraft by the UK Air Ministry
+P863,InPhO ID,identifier in the Indiana Philosophy Ontology project
+P864,ACM Digital Library author ID,Association for Computing Machinery Digital Library (ACM DL) author identifier
+P865,BMLO ID,identifier of Bayerisches Musiker-Lexikon Online
+P866,Perlentaucher ID,identifier in Perlentaucher (Q2071388)
+P867,ROME Occupation Code (v3),"ROME Code for a given occupation in France (V3, 1 letter, 4 digits)"
+P868,foods traditionally associated,foods usually during the ceremony or associated with a certain settlement
+P870,instrumentation,combination of musical instruments employed in a composition or accompanying a (folk) dance
+P872,printed by,"organization or person who printed the creative work (if different from ""publisher"")"
+P873,phase point,phase point to describe critical point and triple point (see talk page for an example)
+P874,UN class,UN hazard classification code
+P875,UN code classification,UN code classification
+P876,UN packaging group,packaging code according to UN transportation rules
+P877,NFPA Special,NFPA code for a chemical's other hazards in white (bottom) quadrant
+P878,avionics,"notable sensors, electronics, and other avionics installed in the subject aircraft"
+P879,pennant number,"the number or designation associated with individual ships, often painted on the hull"
+P880,CPU,central processing unit found within the subject item
+P881,type of variable star,type of star
+P882,FIPS 6-4,"Identifier for US entities (mostly counties) per ""Federal Information Processing Series"" (FIPS 6-4), used for counties, Puerto Rico zona urbana, Metropolitan Statistical Areas (MSA) and Combined Statistical Areas (CSA) in the United States."
+P884,State Water Register Code (Russia),identifier of a body of water in Russia
+P885,origin of the watercourse,"main source of a river, stream or lake"
+P886,Lexicon istoric retic ID,"identifier in the Lexicon istoric retic (LIR), Romansh variant of Historical Dictionary of Switzerland"
+P887,based on heuristic,indicates that the property value is determined based on some heuristic (Q201413); to be used as source
+P888,JSTOR article ID,identifier for an article or a book in JSTOR
+P889,Mathematical Reviews ID,"identifier in Mathematical Reviews, a journal and online database"
+P892,RfC ID,"identifier for an item in Request for Comments, a publication of IETF and the Internet Society (without ""RFC"" prefix)"
+P893,SSRN article ID,identifier for an article/paper at the SSRN
+P894,zbMATH work ID,identifier in the zbMath database
+P897,United States Army and Air Force aircraft designation,identifier for a US Army and Air Force aircraft until 1962
+P898,IPA transcription,transcription in the International Phonetic Alphabet
+P901,FIPS 10-4 (countries and regions),Identifier for countries and regions per former Federal Information Processing Standard FIPS 10-4
+P902,HDS ID,"identifier in HDS/HLS/DHS/DSS: Historical Dictionary of Switzerland (Q642074), a national encyclopedia"
+P905,PORT film ID,PORT-network film database: identifier for a film or television program
+P906,SELIBR ID,identifier per National Library of Sweden Libris library catalog
+P908,PEGI rating,European video game content rating system
+P909,Nova Scotia Register of Historic Places ID,identifier in the Nova Scotia Register of Historic Places
+P910,topic's main category,main Wikimedia category
+P911,South African municipality code,identifier for a municipality in South Africa
+P912,has facility,"the subject item has this type of facility, e.g. toilet, car park"
+P913,notation,mathematical notation or another symbol
+P914,USK rating,German video game content rating - see talk page for appropriate values
+P915,filming location,"actual place where this scene/film was shot. For the setting, use ""narrative location"" (P840)"
+P916,GSRR rating,Taiwanese video game content rating system
+P917,GRAU index,index of Russian (and Soviet) weapons and rockets
+P918,NOC Occupation Code,NOC/CNP Code for a given occupation in Canada and Qubec
+P919,SOC Code (2010),Standard Occupational Classification code for US jobs (2010 version)
+P920,LEM ID,"subject headings for public libraries maintained by the Spanish Ministry of Education, Culture and Sport"
+P921,main subject,primary topic of a work (see also P180: depicts)
+P922,magnetic ordering,magnetic ordering of a substance
+P923,medical examination,examinations that might be used to diagnose and/or prognose the medical condition
+P924,possible treatment,health treatment used to resolve or ameliorate a medical condition
+P925,presynaptic connection,neuron connects on its presynaptic end to
+P926,postsynaptic connection,neuron connects on its postsynaptic end to
+P927,anatomical location,where in the body or cell does this feature lie or happen
+P928,activating neurotransmitter,which neurotransmitter activates the neuron
+P929,color space,mathematical model describing the way colors can be represented as tuples of numbers
+P930,type of electrification,electrification system scheme and/or voltage
+P931,place served by transport hub,"territorial entity or entities served by this transport hub (airport, train station, etc.)"
+P932,PMCID,"identifier for a scientific work issued by PubMed Central (without ""PMC"" prefix)"
+P933,Heritage NL ID,identifier of Heritage Foundation of Newfoundland and Labrador heritage property
+P935,Commons gallery,name of the Wikimedia Commons gallery page(s) related to this item (is suitable to allow multiple links to more gallery pages)
+P937,work location,"location where persons or organisations were actively participating in employment, business or other work"
+P938,FishBase species ID,identifier for a species in FishBase
+P939,KSH code,identifier for every municipality (town and commune) in Hungary issued by the Hungarian Central Statistical Office
+P941,inspired by,"work, human, place or event which inspired this creative work or fictional entity"
+P942,theme music,the theme music/song used by the item
+P943,programmer,the programmer that wrote the piece of software
+P944,Code of nomenclature,the Code that governs the scientific name of this taxon
+P945,allegiance,country (or other power) that the person or group serves
+P946,ISIN,identifier for a security
+P947,RSL ID (person),person identifier in the Russian State Library
+P948,page banner,"lead image about the topic, mainly used by Wikivoyage and Women in Red"
+P949,National Library of Israel ID (old),"former identifier for authority control used at the National Library of Israel. Replaced with ""National Library of Israel J9U ID"" (P8189)"
+P950,Biblioteca Nacional de Espaa ID,"identifier from the authority file of the Biblioteca Nacional de Espaa. Format for persons: ""XX"" followed by 4 to 7 digits"
+P951,NSZL (VIAF) ID,"identifier from the authority file of the National Szchnyi Library, Hungary used only by VIAF"
+P952,ISCO-88 occupation code,International Standard Classification of Occupations code according to the International Labour Organization (ILO) classification structure as of 1988
+P953,full work available at URL,URL of a web page containing the full body of this item
+P954,IBNR ID,identifier for a railway station (Internationale Bahnhofsnummer)
+P957,ISBN-10,"former identifier for a book (edition), ten digits. Used for all publications up to 2006 (convertible to ISBN-13 for some online catalogs; useful for old books or fac-similes not reedited since 2007)"
+P958,"section, verse, paragraph, or clause","paragraph, or other kind of special indication to find information on a page or on a document (legal texts etc.)"
+P959,MSW ID,identifier from Mammal Species of the World database
+P960,Tropicos ID,"identifier for a name, in the Tropicos database"
+P961,IPNI plant ID,numerical identifier for a plant name in the International Plant Names Index
+P962,MycoBank taxon name ID,identifier per MycoBank - a database that provides an authoritative and comprehensive list of names of fungi
+P963,streaming media URL,URL where the subject's media stream exists
+P964,Austrian municipality key,"identifier for municipalities in Austria ( STAT-Nummer), format: 5 digits"
+P965,burial plot reference,"string of references which identify a specific plot in a burial area, e.g. cemetery"
+P966,MusicBrainz label ID,identifier for a label in the MusicBrainz open music encyclopedia
+P967,guest of honor,"guest(s) of honor invited to an event, e.g. a convention"
+P968,email address,"email address, prefixed with mailto:"
+P970,neurological function,the function of a neurological structure
+P971,category combines topics,this category combines (intersects) these two or more topics
+P972,catalog,"catalog for the item, or, as a qualifier of P528 Ð catalog for which the 'catalog code' is valid"
+P973,described at URL,item is described at the following URL
+P974,tributary,watercourse that flows into an other one (for lake inflows use P200)
+P980,code for weekend and holiday homes (Sweden),"identifier for a for weekend or holiday home in Sweden, assigned by Statistics Sweden"
+P981,BAG residence ID,"BAG code for Dutch residencies (""woonplaats"", mostly municipalities)"
+P982,MusicBrainz area ID,identifier for an area in the MusicBrainz open music database
+P984,IOC country code,three-letter abbreviation country code by the International Olympic Committee
+P988,Philippine Standard Geographic Code,systematic classification and coding of geographic areas of the Philippines
+P989,spoken text audio,"audio file for the spoken work or Wikipedia article, including audio descriptions"
+P990,audio recording of the subject's spoken voice,audio file representing the speaking voice of a person; or of an animated cartoon or other fictitious character
+P991,successful candidate,person(s) elected after the election
+P993,NFPA Health,NFPA rating for a chemical's hazard to health (blue quadrant in fire diamond)
+P994,NFPA Fire,NFPA rating for a chemical's flammability (red quadrant in fire diamond)
+P995,NFPA Instability,NFPA rating for chemical or physical reactivity (yellow quadrant in fire diamond)
+P996,document file on Wikimedia Commons,file on Wikimedia Commons related to the content of the source/book/report
+P998,Curlie ID,category path at Open Directory Project
+P999,ARICNS,identifier for stars in ARICNS
+P1000,record held,"notable record achieved by a person or entity, include qualifiers for dates held"
+P1001,applies to jurisdiction,"the item (institution, law, public office, public register...) or statement belongs to or has power over or applies to the value (a territorial jurisdiction: a country, state, municipality, ...)"
+P1002,engine configuration,configuration of an engine's cylinders
+P1003,National Library of Romania ID,identifier for authority control used at the National Library of Romania
+P1004,MusicBrainz place ID,Identifier for a place in the MusicBrainz open music encyclopedia
+P1005,Portuguese National Library ID,identifier for the Biblioteca Nacional de Portugal
+P1006,Nationale Thesaurus voor Auteurs ID,identifier for person names (not: works nor organisations) from the Dutch National Thesaurus for Author names (which also contains non-authors)
+P1007,Lattes Platform number,number for the Lattes Platform entry on the person or group. Relationship between entry and subject must be supported by a source
+P1010,Iran statistics ID,identifier for places in Iran
+P1011,excluding,usually used as a qualifier
+P1012,including,usually used as a qualifier
+P1013,criterion used,property by which a distinction or classification is made
+P1014,Art & Architecture Thesaurus ID,identifier in the Art & Architecture Thesaurus by the Getty Research Institute
+P1015,NORAF ID,"identifier in the Norwegian Authority File, formerly Bibsys Authority File"
+P1016,asteroid taxonomy,type of asteroid classification
+P1017,Vatican Library ID (former scheme),"historical identifier for authority control used at the Vatican Library. Format: ""ADV"" + 8 digits. Use P8034 for newer IDs."
+P1018,language regulatory body,regulatory body of a language
+P1019,web feed URL,"news feed (RSS, Atom, etc.) of this person/organisation/project"
+P1021,KldB-2010 occupation code,German classification of occupations 2010
+P1022,CNO-11 occupation code,Spanish classification of occupations CNO-11 maintained by the Spanish INE (Instituto Nacional de Estadstica)
+P1023,SBC-2010 occupation code,"Dutch classification of occupations SBC maintained by the Dutch CBS (Centraal Bureau voor de Statistiek), 2010 version"
+P1024,SBFI occupation code,Swiss classification of occupations SBFI/SEFRI maintained by the Swiss SBFI/SEFRI
+P1025,SUDOC editions,identifier in the French union catalog (see also P269)
+P1026,academic thesis,thesis or dissertation written for a degree
+P1027,conferred by,"person or organization who grants an award, certification, or role"
+P1028,donated by,person or organization who donated the object
+P1029,crew member(s),person(s) that participated operating or serving aboard this vehicle
+P1030,light characteristic,description of a navigational light sequence or colour displayed on a nautical chart. Explicitly state white light (W)
+P1031,legal citation of this text,legal citation of legislation or a court decision
+P1032,Digital Rights Management system,technologies to control the use of digital content and devices after sale
+P1033,GHS signal word,"please use with items ""warning"" (Q15350847) and ""danger"" (Q15221217)"
+P1034,main food source,"species, genus or family that an organism depends on for nutrition"
+P1035,honorific suffix,"word or expression with connotations conveying esteem or respect when used, after a name, in addressing or referring to a person"
+P1036,Dewey Decimal Classification,"use with qualifier ""edition (P747)"" with item value ""DDC 23"" or create new item to represent the corresponding DDC edition"
+P1037,director / manager,person who manages any kind of group
+P1038,relative,"family member (qualify with ""type of kinship"", P1039; for direct family member please use specific property)"
+P1039,kinship to subject,"qualifier of ""relative"" (P1038) to indicate less usual family relationships (ancestor, son-in-law, adoptions, etc). Indicate how the qualificator item is related to the main item."
+P1040,film editor,"person who works with the raw footage, selecting shots and combining them into sequences to create a finished motion picture"
+P1041,socket supported,socket for which the electronic part was made
+P1042,ZDB ID,identifier for serials German National Serials Database
+P1043,IDEO Job ID,identifier for an occupation on IDEO
+P1044,SWB editions,union catalog of the South-West German Library Network (SWB)
+P1045,Sycomore ID,"identifer in the Sycomore database of French MPs, National Assembly (France)"
+P1046,discovery method,way an exoplanet was discovered
+P1047,Catholic Hierarchy person ID,identifier for the person on catholic-hierarchy.org
+P1048,NCL ID,identifier for authority control issued by the National Central Library in Taiwan
+P1049,worshipped by,religion or group/civilization that worships a given deity
+P1050,medical condition,"any state relevant to the health of an organism, including diseases and positive conditions"
+P1051,PSH ID,identifier in the authority database of the Czech Technical Library
+P1052,Portuguese Job Code CPP-2010,
+P1053,ResearcherID,"identifier for a researcher in a system for scientific authors, primarily used in Web of Science"
+P1054,NDL bib ID,identifierÊof an edition in the National Diet Library
+P1055,NLM Unique ID,identifier in the catalog of the National Library of Medicine
+P1056,product or material produced,"material or product produced by a government agency, business, industry, facility, or process"
+P1057,chromosome,chromosome on which an entity is localized
+P1058,ERA Journal ID,identifier for academic journals
+P1059,CVR number,"unique identifier for a business in Denmark's Central Business Register (CVR), the official database of Danish businesses."
+P1060,disease transmission process,"process by which a pathogen is transmitted, equivalent to ""transmitted by"" in the relation ontology http://purl.obolibrary.org/obo/RO_0002451"
+P1064,track gauge,spacing of the rails on a railway track
+P1065,archive URL,URL to the archived web page specified with URL property
+P1066,student of,person who has taught this person
+P1067,Thailand central administrative unit code,identifier for each of the Thai central administrative units
+P1068,instruction set,set of machine code instructions on which the processor architecture is based
+P1069,Statistics Denmarks classification of occupation (DISCO-08),"Statistics Denmarks classification of occupation, derived from ISCO"
+P1070,PlantList-ID,identifier in 'The Plant List' database
+P1071,location of creation,"place where the item was made; where applicable, location of final assembly"
+P1072,readable file format,file format a program can open and read
+P1073,writable file format,file format a program can create and/or write to
+P1074,fictional analog of,used to link an entity or class of entities appearing in a creative work with the analogous entity or class of entities in the real world
+P1075,rector,senior official in an educational institution
+P1076,ICTV virus ID,identifier in the Universal Virus Database (ICTVdB)
+P1077,KOATUU identifier,identifier for each of the Ukrainian administrative units (till 2020)
+P1078,Valvetrain configuration,configuration of the valvetrain utilized by this engine
+P1079,launch contractor,organization contracted to launch the rocket
+P1080,from narrative universe,subject's fictional entity is in the object narrative. See also P1441 (present in work) and P1445 (fictional universe described in)
+P1081,Human Development Index,HDI value of a country
+P1082,population,number of people inhabiting the place; number of people of subject
+P1083,maximum capacity,number of people allowed for a venue or vehicle
+P1084,EUL editions,identifier for a book (edition) in the Egyptian union catalog
+P1085,LibraryThing work ID,LibraryThing (LT) control number
+P1086,atomic number,number of protons found in the nucleus of the atom
+P1087,Elo rating,"quantitative measure of one's game-playing ability, particularly in classical chess"
+P1088,Mohs' hardness,qualitative ordinal scale characterizing scratch resistance of various minerals
+P1090,redshift,the redshift measure of an astronomical object
+P1092,total produced,quantity of item produced
+P1093,gross tonnage,unitless index related to a ship's overall internal volume
+P1096,orbital eccentricity,amount of the deviation of an orbit from a perfect circle
+P1097,g-factor,characteristic property of any elementary particle (Land factor)
+P1098,"number of speakers, writers, or signers",number of people who use a language
+P1099,number of masts,number of masts a ship has
+P1100,number of cylinders,number of cylinders in a piston engine or compressor
+P1101,floors above ground,above ground floor count of a building (ground floor and attic included)
+P1102,flattening,measure of the compression of an ellipsoid of revolution
+P1103,number of platform tracks,number of tracks served by the platforms at a railway station
+P1104,number of pages,number of pages in an edition of a written work; see allowed units constraint for valid values to use for units in conjunction with a number
+P1106,Sandbox-Quantity,property to be used for testing the quantity datatype
+P1107,proportion,"to be used as a qualifier, value must be between 0 and 1"
+P1108,electronegativity,tendency of an atom or functional group to attract electrons
+P1109,refractive index,refractive index of a substance with wavelength and temperature as qualifiers
+P1110,attendance,"number of people (spectators, ticket holders) at an event or exhibition"
+P1111,votes received,qualifier stating the number of votes for a candidate in an election
+P1113,number of episodes,number of episodes in a film/TV/radio series
+P1114,quantity,number of instances of this subject
+P1115,ATVK ID,"identifier for each of the Latvian administrative units, i.e. municipality, parish, city under state jurisdiction and city under municipality jurisdiction. Based on the Latvian Classification on Objects of Administrative Division (Q15621843)."
+P1116,ELSTAT geographical code,identifier for administrative regions of Greece by the Greek Statistical Authority (starting 2010)
+P1117,pKa,acid dissociation constant
+P1120,number of deaths,total (cumulative) number of people who died since start as a direct result of an event or cause
+P1121,oxidation state,this atom has or can have the oxidation number
+P1122,spin quantum number,dimensionless rational quantum number; the intrinsic spin angular momentum divided by the Dirac constant
+P1123,parity quantum number,property of particles
+P1125,Gini coefficient,measure of statistical dispersion intended to represent the income distribution of a nation's residents
+P1126,isospin quantum number,characteristic property of any particle
+P1127,isospin z-component,characteristic property of any elementary particle
+P1128,employees,"total number of employees of a company at a given ""point in time"" (P585). Most recent data would generally have preferred rank; data for previous years normal rank (not deprecated rank). Add data for recent years, don't overwrite"
+P1129,national team appearances,total number of games officially played by a sportsman for national team
+P1132,number of participants,"number of participants of an event, e.g. people or groups of people that take part in the event (NO units)"
+P1133,Classified properties and protected areas of Wallonia ID,identifier per Direction gnrale oprationelle (Wallonia)
+P1135,nomenclatural status,"the status of a scientific name, according to the relevant rules of nomenclature (taxonomy)"
+P1136,solved by,person that solved a scientific question
+P1137,fossil found in this unit,fossils that are found in this stratigraphic unit
+P1138,Kunstindeks Danmark Artist ID,unique artist identifier used by Kunstindeks Danmark
+P1139,floors below ground,total number of below ground floors of the building
+P1140,EHAK id,Estonian Administrative and Settlement Classification
+P1141,number of processor cores,number of independent actual processing units (*not* threads)
+P1142,political ideology,political ideology of an organization or person or of a work (such as a newspaper)
+P1143,BN (Argentine) editions,catalogue number for books (editions) in the National Library of the Argentine Republic
+P1144,Library of Congress Control Number (LCCN) (bibliographic),record number for entries in the LoC bibliographic catalog (for authority records use P244)
+P1145,Lagrangian point,libration point of an object (default: object-sun-earth)
+P1146,World Athletics athlete ID,identifier for athletes in World Athletics database and website
+P1148,neutron number,number of neutrons of an isotope
+P1149,Library of Congress Classification,subject classification identifier used in the Library of Congress Classification system
+P1150,Regensburg Classification,identifier used for this class in the Regensburg Classification system
+P1151,topic's main Wikimedia portal,Wikimedia portal associated with this topic
+P1153,Scopus author ID,identifier for an author assigned in Scopus bibliographic database
+P1154,Scopus EID,unique academic work identifier assigned in Scopus bibliographic database
+P1155,Scopus affiliation ID,identifier for an organisation in author affiliations perÊScopus
+P1156,Scopus source ID,"identifier for a source/publication venue (journal, conference, etc) in Scopus"
+P1157,US Congress Bio ID,identifier for a person on the Biographical Directory of the United States Congress
+P1158,location of landing,location where the craft landed
+P1159,CODEN,CODEN bibliographic code
+P1160,ISO 4 abbreviation,standard abbreviation for periodicals in the International Organization for Standardization system
+P1161,Z39.5 abbreviation,Z39.5 bibliographic code/abbreviation established in 1969 by National Information Standards Organization and used widely in the US and elsewhere
+P1162,Bluebook abbreviation,Bluebook citation style includes abbreviations
+P1163,MIME type,IANA-registered identifier for a file type (MIME)
+P1164,group cardinality,number of elements in a finite group
+P1165,home world,home planet or natural satellite for a fictional character or species
+P1167,USB vendor ID,hexadecimal identifier of a manufacturer of a USB device
+P1168,municipality code (Denmark),identifier for municipalities in Denmark
+P1170,transmitted signal type,type of signal transmitted by a device
+P1171,approximation algorithm,method used to approximate a number
+P1172,Geokod,identifier for historical administrative division of Sweden (1862-1951)
+P1174,visitors per year,number of people visiting a location or an event each year
+P1181,numeric value,"numerical value of a number, a mathematical constant, or a physical constant"
+P1182,LIBRIS editions,identifier for the items in the libris-catalogue of the Royal Swedish Library about specific publications
+P1183,Gewsserkennzahl,"a number to hydrographically order rivers and streams, use more specific properties where possible"
+P1184,Handle ID,"Handle System identifier, which is a superset of the DOI"
+P1185,Rodovid ID,identifer for a person on rodovid.org
+P1186,MEP directory ID,identifier for a past or present MEP in a directory of all members of the European Parliament
+P1187,Dharma Drum Institute of Liberal Arts person ID,identifier for a person in Dharma Drum Institute of Liberal Arts (DILA)'s person authority database
+P1188,Dharma Drum Institute of Liberal Arts place ID,identifier for a place in Dharma Drum Institute of Liberal Arts (DILA)'s place authority database
+P1189,Chinese Library Classification,identifier used for this class in the CLC
+P1190,Universal Decimal Classification,type of library classification
+P1191,date of first performance,"date a work was first debuted, performed or live-broadcasted"
+P1192,connecting service,service stopping at a station
+P1193,prevalence,portion in percent of a population with a given disease or disorder
+P1194,received signal type,type of signal received by a device
+P1195,file extension,"identifier for a file format (e.g. txt for a text file) used as suffix to the file name, don't use dot at start"
+P1196,manner of death,"general circumstances of a person's death; e.g. natural causes, accident, suicide, homicide, etc. Use 'cause of death' (P509) for the specific physiological mechanism, e.g. heart attack, trauma, pneumonia..."
+P1198,unemployment rate,portion of a workforce population that is not employed
+P1199,mode of inheritance,manner in which a particular genetic trait or disorder is passed from one generation to the next
+P1200,bodies of water basin category,the Wikimedia category associated with the basin of a bodies of water
+P1201,space tug,"spacecraft vehicle designed to move the payload from a reference orbit to the target orbit, or direct it to an interplanetary trajectory"
+P1202,carries scientific instrument,"scientific instruments carried by a vessel, satellite, or device that are not required for propelling or navigating"
+P1203,Finnish municipality number,identifier for a municipality in Finland
+P1204,Wikimedia portal's main topic,primary topic of this Wikimedia portal
+P1207,NUKAT ID,identifier for authority control in the Center of Warsaw University Library catalog
+P1208,ISMN,International Standard Music Number
+P1209,CN,"identifier for a newspaper or magazine issued by State Administration of Press, Publication, Radio, Film and Television of the PeopleÕs Republic of China"
+P1210,supercharger,supercharger or turbocharger used by an engine
+P1211,fuel system,fuel system that an engine uses
+P1212,Atlas ID,identifier in the Atlas database of the Louvre Museum
+P1213,NLC authorities,identifier for a person per National Library of China
+P1214,Riksdagen person-ID,identifier at data.riksdagen.se
+P1215,apparent magnitude,"measurement of the brightness of an astronomic object, as seen from the Earth"
+P1216,National Heritage List for England number,number on the National Heritage List for England
+P1217,Internet Broadway Database venue ID,identifier for a theatre or other venue in the IBDB
+P1218,Internet Broadway Database production ID,identifier for a specific run of a show
+P1219,Internet Broadway Database show ID,identifier for a play or other work (which may have had 1 or more productions)
+P1220,Internet Broadway Database person ID,identifierÊfor personnel or organizations on Broadway
+P1221,compressor type,
+P1225,U.S. National Archives Identifier,identifier for the United States National Archives and Records Administration's online catalog
+P1227,astronomical filter,passband used to isolate particular sections of the electromagnetic spectrum
+P1229,Openpolis ID,"identifier in Openpolis, a database of Italian politicians"
+P1230,JSTOR journal ID,identifier for a journal in JSTOR
+P1232,Linguist List code,identifier for a language per Linguist List
+P1233,Internet Speculative Fiction Database author ID,identifier for a person in the Internet Speculative Fiction Database
+P1234,ISFDB publication ID,identifier for an edition of a publication in the Internet Speculative Fiction Database
+P1235,ISFDB series ID,"identifier for a series, periodical or franchise in the Internet Speculative Fiction Database"
+P1236,Parsons code,identifier for melodic contours of music
+P1237,Box Office Mojo film ID (former scheme),identifier for a movie at the website Box Office Mojo
+P1238,Swedish Football Association player ID,"identifier for a Swedish association football (soccer) player's page at Svenskfotboll.se, the official website of the Swedish Football Association (in Swedish: Svenska Fotbollfrbundet; SvFF)"
+P1239,ISFDB publisher ID,identifier for a publisher in the Internet Speculative Fiction Database
+P1240,Danish Bibliometric Research Indicator level,"Danish scientific level of research publications, coordinated with the nordic list of publication channels. See also item Bibliometric Research Indicator (Q57408668)"
+P1241,Swiss Football Association club number,identifier
+P1242,Theatricalia play ID,"identifier for a theatrical work, in the Theatricalia database"
+P1243,ISRC,international standard code for uniquely identifying sound recordings and music video recordings
+P1245,OmegaWiki Defined Meaning,"""Defined Meaning"" on the site"
+P1246,patent number,identifier for a patented invention
+P1247,compression ratio,"compression ratio of a reciprocating combustion engine; for data compression, use P1107 with qualifiers"
+P1248,KulturNav-ID,"identifier for people, places, events, etc. used by some Nordic museums"
+P1249,time of earliest written record,first time a subject was mentioned in writing
+P1250,Danish Bibliometric Research Indicator (BFI) SNO/CNO,serial & conference identifier
+P1251,ABS ASCL 2011 code,Numerical language identifier in the Australian Standard Classification of Languages regulated by Australian Bureau of Statistics
+P1252,AUSTLANG code,identifier for a language in the Australian Indigenous Languages Database
+P1253,BCU Ecrivainsvd ID,identifier in the database of writers from the canton of Vaud
+P1254,Slovenska biografija ID,"identifier in the ""Slovenska biografija"" reference project"
+P1255,HelveticArchives ID,identifier in the Swiss National Library's archive database
+P1256,Iconclass notation,"Iconclass code that corresponds with an artistic theme or concept. For artworks, use P1257 (depicts Iconclass notation)"
+P1257,depicts Iconclass notation,"Iconclass code depicted in an artwork. For linking Iconclass codes with their corresponding artistic themes or concepts, use P1256 (Iconclass notation)."
+P1258,Rotten Tomatoes ID,identifier on Rotten Tomatoes
+P1259,coordinates of the point of view,"point from which the scene depicted by the element is seen (element can be a photo, a painting, etc.)"
+P1260,Swedish Open Cultural Heritage URI,identifier
+P1261,Scandinavian Runic-text Database,"database about runic inscriptions (including runestones), mainly in Sweden, but stones in all of Europe, Greenland and U.S. can be found here"
+P1262,RA number,Identificator for an element in the Database of the cultural heritage in Sweden
+P1263,NNDB people ID,"identifier in the Notable Names Database, a biographical database: only for people entries"
+P1264,valid in period,time period when a statement is valid
+P1265,AlloCin film ID,identifier for a film in the French AlloCin database
+P1266,AlloCin person ID,identifier for a person on the AlloCin film database
+P1267,AlloCin series ID,identifier for a serie in the AlloCin film database
+P1268,represents,"organization, individual, or concept that an entity represents"
+P1269,facet of,"topic of which this item is an aspect, item that offers a broader perspective on the same topic"
+P1270,Norwegian Register journal ID,identifier for academic journals
+P1271,Norway Database for Statistics on Higher education publisher ID,identifier
+P1272,Norway Import Service and Registration Authority periodical code,Wikidata property for authority control for academic journals
+P1273,CANTIC ID (former scheme),"old identifier for authority control managed by the Library of Catalonia. Format: ""a"", 7 digits, ""x"" or digit. Replaced with ""CANTIC ID"" (P9984)"
+P1274,ISFDB title ID,identifier for a title in the Internet Speculative Fiction Database
+P1275,Norway Import Service and Registration Authority publisher code,identifier
+P1276,Dictionnaire du Jura ID,identifier in the encyclopedia Dictionnaire du Jura
+P1277,JUFO ID,identifier in the Julkaisufoorumi (Finnish Publication Forum)
+P1278,Legal Entity Identifier,identifier for a legally distinct entity per ISO 17442
+P1279,inflation rate,percent change in the consumer price index (CPI)
+P1280,CONOR.SI ID,"identifierÊin the National and University Library, Ljubljana database"
+P1281,WOEID,identifier for a location on Yahoo! GeoPlanet and Flickr
+P1282,OpenStreetMap tag or key,"OpenStreetMap tagging schema (a Key:key, Tag:key=value, Relation:type, or Role:role) for classes, properties, and values"
+P1283,filmography,"item for the list of films a person has contributed to. Don't use it to add film items. Instead, add actors as ""cast member"" (P161) on items for films, directors with ""director"" (P57)"
+P1284,Munzinger person ID,identifier on the Munzinger Archiv
+P1285,Munzinger Sport number,identifer on the Munzinger Archiv
+P1286,Munzinger Pop ID,identifier on the Munzinger Archiv
+P1287,KDG Komponisten der Gegenwart ID,identifier on the Munzinger Archiv
+P1288,Kritisches Lexikon der Gegenwartsliteratur ID,identifier on the Munzinger Archiv
+P1289,Kritisches Lexikon zur fremdsprachigen Gegenwartsliteratur ID,identifier in the critical dictionary of foreign contemporary literature
+P1290,godparent,person who is the godparent of a given person
+P1291,Association Authors of Switzerland ID (former scheme),identifier in a Swiss database of modern writers
+P1292,DNB editions,identifierÊin the German National Library catalogue (see also authority data P227)
+P1293,Royal Aero Club Aviator's Certificate ID,identifier
+P1294,WWF ecoregion code,identifier for ecoregions
+P1295,emissivity,ability of a substance to radiate thermal energy from its surface
+P1296,Gran Enciclopdia Catalana ID,identifier for an item in the Gran Enciclopdia Catalana
+P1297,IRS Employer Identification Number,number given to businesses by the United States Internal Revenue Service
+P1299,depicted by,"object depicting this subject (creative works, books of the bible)"
+P1300,bibcode,bibcode for a journal
+P1301,number of elevators,number of elevators in a building
+P1302,primary destinations,major towns and cities that a road serves
+P1303,instrument,musical instrument that a person plays or teaches or used in a music occupation
+P1304,central bank,country's central bank
+P1305,CTBUH Skyscraper Center building ID,identifier for a building as used on the CTBUH's www.skyscrapercenter.com
+P1307,Swiss parliament ID,identifier for a member of the Swiss Parliament since 1848
+P1308,officeholder,persons who hold and/or held an office or noble title
+P1309,EGAXA ID,identifier in Bibliotheca Alexandrina
+P1310,statement disputed by,entity that disputes a given statement
+P1311,lostbridges.org ID,identifier fromÊdatabase of covered bridges in the United States and Canada
+P1312,has facet polytope,"facet of a polytope, in the next-lower dimension"
+P1313,office held by head of government,political office that is fulfilled by the head of the government of this item
+P1314,number of spans,number of spans a bridge has
+P1315,NLA Trove people ID,identifier for people or organisations per National Library of Australia (see also P409 for the older Libraries Australia identifier). Format: 5 to 7 digits.
+P1316,Swedish Media Database ID,identifier in the Swedish Media Database
+P1317,floruit,"date when the person was known to be active or alive, when birth or death not documented"
+P1318,proved by,person who proved something
+P1319,earliest date,earliest date at which an event could have happened. Use as qualifier for other date properties
+P1320,OpenCorporates ID,"identifier for a corporation, in the OpenCorporates database. Format: country prefix, optional subnational entity abbrevation, ""/"", alphanumeric id"
+P1321,place of origin (Switzerland),lieu d'origine/Heimatort/luogo d'origine of a Swiss national. Not be confused with place of birth or place of residence
+P1322,dual to,"dual of a polytope, graph or curve"
+P1323,Terminologia Anatomica 98 ID,Terminologia Anatomica (1998 edition) human anatomical terminology identifier
+P1324,source code repository,public source code repository
+P1325,external data available at,URL where external data on this item can be found
+P1326,latest date,latest possible time that something could have occurred. Use as qualifier for other date properties
+P1327,partner in business or sport,professional collaborator
+P1329,phone number,"telephone number in standard format (RFC3966), without 'tel:' prefix"
+P1330,MusicBrainz instrument ID,identifier for an instrument on the music encyclopedia MusicBrainz
+P1331,PACE member ID,identifier for a member of the Parliamentary Assembly of the Council of Europe
+P1332,coordinates of northernmost point,northernmost point of a location. For an administrative entity this includes offshore islands
+P1333,coordinates of southernmost point,southernmost point of a place. For administrative entities this includes offshore islands
+P1334,coordinates of easternmost point,easternmost point of a location
+P1335,coordinates of westernmost point,westernmost point of a location
+P1336,territory claimed by,administrative divisions that claim control of a given area
+P1338,EPSG CRS,identifier for coordinate reference systems per European Petroleum Survey Group Geodetic Parameter Dataset
+P1339,number of injured,number of people with non-fatal injuries in an event
+P1340,eye color,color of the irises of a person's eyes
+P1341,Italian Chamber of Deputies dati ID,identifierÊfor incumbent and former deputies from the Italian Chamber of Deputies
+P1342,number of seats,total number of seats/members in an assembly (legislative house or similar)
+P1343,described by source,work where this item is described
+P1344,participant in,event in which a person or organization was/is a participant; inverse of P710 or P1923
+P1345,number of victims of killer,"people killed by the subject, both legal and illegal"
+P1346,winner,"winner of a competition or similar event, not to be used for awards (instead use ""award received"" (P166) on awardee's item, possibly qualified with ""for work"" (P1686)) or for wars or battles"
+P1347,military casualty classification,"allowed values: killed in action (Q210392), missing in action (Q2344557), died of wounds (Q16861372), prisoner of war (Q179637), killed in flight accident (Q16861407), others used in military casualty classification"
+P1348,AlgaeBase URL,URL for a taxon in AlgaeBase.org
+P1349,ploidy,ploidy of a genome
+P1350,number of matches played/races/starts,matches or games a player or a team played during an event. Also a total number of matches a player officially appeared in during the whole career.
+P1351,number of points/goals/set scored,goals / points scored in a match or an event used as qualifier to the participant. Use P1358 for league points.
+P1352,ranking,subject's ordinal position as qualitatively evaluated relative to other members of a group
+P1353,original spelling,original spelling of a scientific name
+P1354,shown with features,"secondary features depicted in a work. Use as qualifier for ""depicts"" (P180)"
+P1355,number of wins,"number of sporting matches, games or events won"
+P1356,number of losses,"number of sporting matches, games or events lost"
+P1357,number of draws/ties,number of matches or games drawn or tied in a league or an event
+P1358,points for,number of points in a league table or decathlon. (Use P1351 for goals/points in a match)
+P1359,number of points/goals conceded,points conceded or goals against (use in league table items)
+P1360,Monte Carlo Particle Number,number given to each elementary particle
+P1362,Theaterlexikon der Schweiz ID,identifier in the online edition of the Theater Dictionary of Switzerland
+P1363,points/goal scored by,person who scored a point or goal in a game
+P1364,ITTF table tennis player ID,6-digit identifier for a table tennis player as per International Table Tennis Federation (ITTF)
+P1365,replaces,"person, state or item replaced. Use ""structure replaces"" (P1398) for structures. Use ""follows"" (P155) if the previous item was not replaced or predecessor and successor are identical"
+P1366,replaced by,"other person or item which continues the item by replacing it in its role. Use P156 (""followed by"") if the item is not replaced nor identical, but adds to the series (e.g. books in a series)."
+P1367,Art UK artist ID,authority control identifier for artists (creators of publicly owned oil paintings in the UK)
+P1368,LNB ID,identifier assigned by the National Library of Latvia
+P1369,Iranian National Heritage registration number,identifier in the Iranian National Heritage database
+P1370,IHSI ID,identifier for an administrative territorial entity in Haiti
+P1371,ASI Monument ID,identifier assigned to monuments catalogued by the Archaeological Survey of India
+P1372,binding of software library,software library in another programming language provided by the subject software binding
+P1373,daily patronage,"number of daily passengers, patrons or visitors in specified time period"
+P1375,NSK ID,identifier for an item in the National and University Library in Zagreb (including leading zeroes)
+P1376,capital of,"country, state, department, canton or other administrative division of which the municipality is the governmental seat"
+P1377,MTR station code,identifier for a station in Hong Kong issued by MTR
+P1378,China railway TMIS station code,identifier for a railway station used in China railway system
+P1380,BridgeReports.com ID,identifier fromÊdatabase based on the National Bridge Inventory. Lists every U.S. bridge over 20 feet (6 meters) long
+P1381,bridgehunter.com ID,identifier from a database of historic bridges
+P1382,partially coincident with,"object that is partially part of, but not fully part of (P361), the subject"
+P1383,contains settlement,settlement which an administrative division contains
+P1385,Enciclopdia Aoriana ID,identifier for an item inÊEnciclopdia Aoriana
+P1386,Japanese High School Code,identifier for a high school in Japan
+P1387,political alignment,political position within the leftÐright political spectrum
+P1388,German regional key,identifier for municipalities and other areas in Germany
+P1389,product certification,"certification for a product, qualify with P1001 (""applies to jurisdiction"") if needed"
+P1390,match time of event,time into a game when an event occurs (use with a unit)
+P1391,Index Fungorum ID,identifier for a fungus taxon in Index Fungorum
+P1392,ComicBookDB Creator ID,identifier for creators at the online database ComicBookDB
+P1393,proxy,person authorized to act for another
+P1394,Glottolog code,identifier for a languoid in the Glottolog database
+P1395,National Cancer Institute ID,identifier at www.cancer.gov
+P1396,Linguasphere code,identifier for a language from Linguasphere Observatory
+P1397,State Catalogue of Geographical Names (Russia) ID,identifier in State Catalogue of Geographical Names (Russia)
+P1398,structure replaces,"the item this building or structure replaced, at the same geographic location"
+P1399,convicted of,crime a person was convicted of
+P1400,FCC Facility ID,U.S. ID number for broadcast stations
+P1401,bug tracking system,"web page where bugs, issues, and feature requests for a particular software program can be listed or reported"
+P1402,Foundational Model of Anatomy ID,identifier for human anatomical terminology
+P1403,original combination,for animals: the combination (binomen or trinomen) where the species-group name used in this taxon name was first published
+P1404,World Glacier Inventory ID,identifier in the World Glacier Inventory database
+P1406,script directionality,direction that a writing system goes in
+P1407,MusicBrainz series ID,identifier for a series per the MusicBrainz open music encyclopedia
+P1408,licensed to broadcast to,place that a radio/TV station is licensed/required to broadcast to
+P1409,Cycling Archives cyclist ID,identifier in the Cycling Archives
+P1410,number of seats in legislature,"number of seats a political party, faction, or group has in a given legislature"
+P1411,nominated for,"award nomination received by a person, organisation or creative work (inspired from ""award received"" (Property:P166))"
+P1412,"languages spoken, written or signed","language(s) that a person or a people speaks, writes or signs, including the native language(s)"
+P1414,GUI toolkit or framework,framework or toolkit a program uses to display the graphical user interface
+P1415,Oxford Dictionary of National Biography ID,identifier used by the Oxford Dictionary of National Biography
+P1416,affiliation,organization that a person or organization is affiliated with (not necessarily member of or employed by)
+P1417,Encyclop¾dia Britannica Online ID,identifer for an article in the online version of Encyclop¾dia Britannica
+P1418,orbits completed,number of orbits a spacecraft has done around a body
+P1419,shape,shape of an object
+P1420,taxon synonym,name listed as synonym of a taxon name
+P1421,GRIN URL,URL for a taxon in the GRIN website
+P1422,Sandrart.net person ID,personal Identification number in Research Platform for Art and Cultural History of the 17th Century (Sandrart.net)
+P1423,template has topic,topic related to template
+P1424,topic's main template,the main template relating to a topic
+P1425,ecoregion (WWF),ecoregion of the item (choose from WWF's list)
+P1427,start point,"starting place of this journey, flight, voyage, trek, migration etc."
+P1428,Lost Art ID,identifier on the German Lost Art Foundation website
+P1429,has pet,pet that a person owns
+P1430,OpenPlaques subject ID,identifier for a person or other subject in the OpenPlaques database Ñ https://openplaques.org/
+P1431,executive producer,executive producer of a movie or TV show
+P1433,published in,"larger work that a given work was published in, like a book, journal or music album"
+P1434,takes place in fictional universe,"the subject is a work describing a fictional universe, i.e. whose plot occurs in this universe."
+P1435,heritage designation,heritage designation of a cultural or natural site
+P1436,collection or exhibition size,number of items in a collection or exhibition
+P1437,plea,"whether a person pleaded guilty, not guilty, etc."
+P1438,Jewish Encyclopedia ID (Russian),Electronic Jewish Encyclopedia in Russian
+P1439,Norwegian filmography ID,"identifier from Norsk filmografi, published by the National Library of Norway"
+P1440,FIDE player ID,identifier on the FIDE database for chess players
+P1441,present in work,"this (fictional or fictionalized) entity or person appears in that work as part of the narration (use P2860 for works citing other works, P361/P1433 for works being part of other works, P1343 for entities described in non-fictional accounts)"
+P1442,image of grave,"picture of a person or animal's grave, gravestone or tomb"
+P1443,score method,"qualifier of ""points/goal scored by (P1363)"""
+P1444,destination point,"destination for this route (journey, flight, sailing, exploration, migration, etc.)"
+P1445,fictional universe described in,"to link a fictional universe with a work that describes it: ""described in the work:"" "
+P1446,number of missing,"number of people missing after an event - qualify with ""point in time (P585)"""
+P1447,Sports-Reference.com Olympic athlete ID (archived),identifier for an Olympic athlete (sportsperson) at sports-reference.com/olympics/athletes/
+P1448,official name,official name of the subject in its official language(s)
+P1449,nickname,informal name (for a pseudonym use P742)
+P1450,Sandbox-Monolingual text,sandbox for testing the monolingual text datatype
+P1451,motto text,short motivation sentence associated to item
+P1453,catholic.ru ID,identifier on the site catholic.ru
+P1454,legal form,legal form of an entity
+P1455,list of works,link to the article with the works of a person; use P358 for discographies
+P1456,list of monuments,link to the list of heritage monuments in the place/area
+P1457,absolute magnitude,absolute magnitude of an astronomic object
+P1458,color index,color index of an astronomical object
+P1459,Cadw Building ID,identifier for listed buildings in Wales
+P1460,NIEA building ID,identifier for listed buildings in Northern Ireland
+P1461,Patientplus ID,identifier of disease at Patient UK
+P1462,standards body,organisation that published or maintains the standard governing an item
+P1463,Post-Reformation Digital Library author ID,identifier from Post-Reformation Digital Library
+P1464,category for people born here,category item that groups people born in this place
+P1465,category for people who died here,category item for people who died in this location
+P1466,WALS lect code,identifier for a language
+P1467,WALS genus code,identifier for a language genus
+P1468,WALS family code,identifier for a language family in the World Atlas of Language Structures
+P1469,FIFA player ID (archived),identifier for a association football player perÊFIFA
+P1470,maximum glide ratio,maximum glide ratio of an aircraft
+P1471,reporting mark,reporting mark for railroads in North America
+P1472,Commons Creator page,"name of Commons Infobox template residing in ""Creator"" namespace on Wikimedia Commons"
+P1473,BLPL author ID,identifier for an author from Nupill Literatura Digital
+P1474,BLPL document ID,identifier for a document in Nupill Literatura Digital
+P1476,title,"published name of a work, such as a newspaper article, a literary work, piece of music, a website, or a performance work"
+P1477,birth name,"full name of a person at birth, if different from their current, generally used name"
+P1478,has immediate cause,"nearest, proximate thing that directly resulted in the subject as outcome or effect. Used in conjunction with 'has cause' (i.e. underlying cause) and 'has contributing factor'. See 'Help:Modeling causes'."
+P1479,has contributing factor,"thing that significantly influenced, but did not directly cause, this outcome or effect. Used in conjunction with 'has cause' and 'has immediate cause'. See 'Help:Modeling causes'."
+P1480,sourcing circumstances,"qualification of the truth or accuracy of a source: circa (Q5727902), near (Q21818619), presumably (Q18122778), etc."
+P1481,vici.org ID,identifier on vici.org - archaeological atlas of antiquity
+P1482,Stack Exchange tag,tag on the Stack Exchange websites
+P1483,kulturnoe-nasledie.ru ID,identifier for an item in a Russian cultural heritage register
+P1529,Gertrude identifier,identifier for a cultural property per the Glad database of French cultural heritage
+P1531,"parent of this hybrid, breed, or cultivar",
+P1532,country for sport,country a person or a team represents when playing a sport
+P1533,family name identical to this given name,last name that is the same as a given first name. Use on items for given names
+P1534,end cause,qualifier to use together with the end date qualifier (P582) to specify the cause
+P1535,used by,item or concept that makes use of the subject (use sub-properties when appropriate)
+P1536,immediate cause of,immediate effect of this cause
+P1537,contributing factor of,"thing that is significantly influenced by this cause, but does not directly result from it. See 'Help:Modeling causes' for examples and discussion."
+P1538,number of households,"total number of households in this place, includes dwellings of all types"
+P1539,female population,number of female people inhabiting the place; number of female people of subject
+P1540,male population,number of male people inhabiting the place; number of male people of subject
+P1541,CQ Ranking male cyclist ID,identifier for a male cyclist at cqranking.com
+P1542,has effect,effect of this item
+P1543,monogram,image of a person's monogram
+P1544,Federal Register Document Number,authority file ID in the United States Federal Register
+P1545,series ordinal,"position of an item in its parent series (most frequently a 1-based index), generally to be used as a qualifier (different from ""rank"" defined as a class, and from ""ranking"" defined as a property for evaluating a quality)."
+P1546,motto,description of the motto of the subject
+P1547,depends on software,subject software depends on object software
+P1548,maximum Strahler number,"highest Strahler number of a stream, creek, or river"
+P1549,demonym,"demonym (proper noun) for people or things associated with a given place, usually based off the placename; multiple entries with qualifiers to distinguish are used to list variant forms by reason of grammatical gender or plurality."
+P1550,Orphanet ID,identifier in the Orpha.net database (without ORPHA prefix)
+P1551,Exceptional heritage of Wallonia ID,"unique identifier of the ""Patrimoine immobilier exceptionnel de la Rgion wallonne"""
+P1552,has quality,the entity has an inherent or distinguishing non-material characteristic
+P1553,Yandex Music artist ID,identifier for an artist on Yandex Music
+P1554,UBERON ID,identifier from UBERON ontology (without prefix)
+P1555,Executive Order number,identifier for an executive order of the US
+P1556,zbMATH author ID,identifier of a person in the Zentralblatt MATH database
+P1557,manifestation of,inherent and characteristic embodiment of a given concept
+P1558,tempo marking,qualitative indication about the speed or pace of a given musical piece (use P1725 for numerical tempo markings)
+P1559,name in native language,name of a person in their native language
+P1560,given name version for other gender,"equivalent name (with respect to the meaning of the name) in the same language: female version of a male first name, male version of a female first name. Add primarily the closest matching one"
+P1561,number of survivors,number of people surviving an event
+P1562,AllMovie title ID,identifier for a work on the website AllMovie
+P1563,MacTutor biography ID,identifier of the person's biography in the MacTutor History of Mathematics archive
+P1564,At the Circulating Library ID,identifier in the At the Circulating Library Victorian literature database
+P1565,Enciclopedia de la Literatura en Mxico ID,identifier for a topic in the Enciclopedia de la Literatura en Mxico
+P1566,GeoNames ID,identifier in the GeoNames geographical database
+P1567,NIS/INS code,Belgian municipality codes maintained by Statistics Belgium
+P1568,definition domain,"set of ""input"" or argument values for which a mathematical function is defined"
+P1571,codomain,codomain of a function
+P1573,BBC Genome ID,identifier for a single episode/programme in the BBC Genome database of Radio Times programme listings
+P1574,exemplar of,"property for manuscripts, autographs, incunabula, distinct printed copies"
+P1575,RISS catalog,"union catalog of South Korea and Japan, maintained by RISS"
+P1576,lifestyle,"typical way of life of an individual, group, or culture"
+P1577,Gregory-Aland-Number,identifier for Greek manuscripts of the New Testament
+P1578,Gmelin number,"identifier for inorganic chemical compounds, in the Gmelin database"
+P1579,Reaxys registry number,identifier for chemical substance in Reaxys
+P1580,University of Barcelona authority ID (obsolete),register of authorities of the University of Barcelona
+P1581,official blog,URL to the blog of this person or organization
+P1582,natural product of taxon,"links a natural product with its source (animal, plant, fungal, algal, etc.)"
+P1583,MalaCards ID,identifier in the Malacards database of diseases
+P1584,Pleiades ID,identifier for a place in Pleiades hosted at pleiades.stoa.org
+P1585,Brazilian municipality code,identifier for municipalities in Brazil
+P1586,Catalan object of cultural interest ID,
+P1587,Slovene Cultural Heritage Register ID,identifier for a cultural monument in theÊSlovene Cultural Heritage Register
+P1588,Statistics Indonesia area code,"unique code for a place, last issued in 2021 by Statistics Indonesia (Badan Pusat Statistik)"
+P1589,lowest point,"point with lowest elevation in the country, region, city or area"
+P1590,number of casualties,number of people dead or injured because of this event. Used when precise data on number of deaths and number of injured is unavailable.
+P1591,defendant,"person or organization accused, at a trial"
+P1592,prosecutor,"person representing the prosecuting authority, at a trial"
+P1593,defender,"person representing the defendant, at a trial"
+P1594,judge,"judge, magistrate or equivalent, presiding at a trial"
+P1595,charge,"offence with which someone is charged, at a trial"
+P1596,penalty,penalty imposed by an authority
+P1598,consecrator,bishop who presided as consecrator or co-consecrator of this bishop
+P1599,Cambridge Alumni Database ID,identifierÊin the Cambridge Alumni Database/Alumni Cantabrigienses (ACAD)
+P1600,Inventari del Patrimoni Arquitectnic de Catalunya code,identifier for an architectural property in Catalonia. max. 5-digit numeric
+P1601,Esperantist ID,number in the address book of early Esperanto speakers by Zamenhof
+P1602,Art UK venue ID,"authority control identifier for venues housing art, in the UK"
+P1603,number of cases,"cumulative number of confirmed, probable and suspected occurrences"
+P1604,biosafety level,level of the biocontainment precautions required to isolate dangerous biological agents
+P1605,has natural reservoir,host species for the pathogen in which it is endemic
+P1606,natural reservoir of,pathogen of which this species is a long-term host
+P1607,Dialnet author ID,identifier of an author in Dialnet
+P1608,Dialnet book ID,identifier of a book in Dialnet
+P1609,Dialnet journal ID,identifier of a journal in Dialnet
+P1610,Dialnet article ID,identifier of an article in Dialnet
+P1611,NATO code for grade,NATO Code for Grades of Military Personnel
+P1612,Commons Institution page,"name of the institutions's page on Wikimedia Commons (without the prefix ""Institution"")"
+P1613,IRC channel,official IRC channel of an institution or project
+P1614,History of Parliament ID,identifier on the History of Parliament website
+P1615,CLARA-ID,identifier from database about women visual artists
+P1616,SIREN number,identifer for an organization in the SIRENE register maintained by INSEE
+P1617,BBC Things ID,identifier in the BBC Things database
+P1618,sport number,"number worn on a player's (competitor's) uniform, equipment, etc"
+P1619,date of official opening,"date or point in time an event, museum, theater etc. officially opened"
+P1620,plaintiff,party who initiates a lawsuit
+P1621,detail map,map containing details about the entire location
+P1622,driving side,side of the road that vehicles drive on in a given jurisdiction
+P1624,MarineTraffic Port ID,identifier for a port assigned by the MarineTraffic database
+P1625,has melody,this work has the melody of the following work
+P1626,Thai cultural heritage ID,identifier for cultural heritage properties in Thailand
+P1627,Ethnologue.com language code,identifier for a language in ethnologue.com
+P1628,equivalent property,"equivalent property in other ontologies (use in statements on properties, use property URI)"
+P1629,Wikidata item of this property,item corresponding to the concept represented by the property
+P1630,formatter URL,"web page URL; URI template from which ""$1"" can be automatically replaced with the effective property value on items. If the site goes offline, set it to deprecated rank. If the formatter URL changes, add a new statement with preferred rank."
+P1631,China Vitae person ID,identifier for a person in the China Vitae database
+P1632,Hermann-Mauguin notation,Hermann-Mauguin notation of the mineral's symmetry element (short form)
+P1635,religious name,name taken or used as a member of a religious community
+P1636,date of baptism in early childhood,"date when a person was baptized. For times when only baptism records were available, this can be a good substitute for date of birth."
+P1637,undercarriage,type of aircraft landing gear the item is equipped with
+P1638,working title,temporary name of a product or project used during its development
+P1639,pendant of,"other work in a pair of opposing artworks, such as wedding portraits, commissioned together, but not always"
+P1640,curator,content specialist responsible for this collection or exhibition
+P1641,port,"default communication endpoint in TCP, UDP, or other transport protocol"
+P1642,acquisition transaction,how the player was acquired; qualifier for P54 (member of sports team)
+P1643,departure transaction,how the player was released or transferred from the roster; qualifier for P54 (member of sports team)
+P1644,messes.info Catholic church ID,identifier
+P1645,NIST/CODATA ID,identifier for a physical constant
+P1647,subproperty of,all resources related by this property are also related by that property
+P1648,Dictionary of Welsh Biography ID,identifier per the Dictionary of Welsh Biography
+P1649,KMDb person ID,identifier for a person on the Korean Movie Database (KMDb)
+P1650,BBF ID,"identifier in the archive database of the German ""Research Library for the History of Education"" (personal data of the teachers of Prussia)"
+P1651,YouTube video ID,"identifier of a video on YouTube; qualify trailers with ""object has role"" (P3831)=""trailer"" (Q622550). For channels, use P2397; for playlists, use P4300"
+P1652,referee,referee or umpire of a match
+P1653,TERC municipality code,identifier for a municipality per the G?wny Urz?d Statystyczny in Poland
+P1654,wing configuration,configuration of wing(s) used by an aircraft
+P1656,unveiled by,"person who unveils a statue, sculpture, memorial or plaque, etc."
+P1657,MPA film rating,US film classification administered by the Motion Picture Association of America
+P1659,related properties,used to indicate another property that might provide additional information about the subject
+P1660,has index case,initial patient in the population of an epidemiological investigation
+P1661,Alexa rank,the website's Alexa ranking with P585 as a qualifier for each value; the current value should be marked 'preferred'
+P1662,DOI prefix,identifier specific to a DOI registrant
+P1663,ProCyclingStats cyclist ID,identifier on the website ProCyclingStats (www.procyclingstats.com)
+P1664,Cycling Database ID (archived),identifier on the website Cycling Database (www.cyclingdatabase.com)
+P1665,Chessgames.com player ID,identifier on the website Chessgames.com
+P1666,Chessclub.com member ID,identifier for a chess player's page at Chessclub.com (Internet Chess Club)
+P1667,Getty Thesaurus of Geographic Names ID,identifier in the Getty Thesaurus of Geographic Names
+P1668,ATCvet,ATCvet code
+P1669,Cultural Objects Names Authority ID,identifier from Cultural Objects Name Authority
+P1670,Canadiana Authorities ID (former scheme),obsolete identifier for authority control per the Library and Archives Canada. Format: 4 digits + 1 letter + 4 digits + optional F
+P1671,route number,number of a rail or other public transport line
+P1672,this taxon is source of,"links a taxon to natural products it produces. Note that it does not say ""this taxon is the source of"" or ""this taxon is a source of"" as this may vary. Some products may be yielded by more than one taxon."
+P1673,general formula,molecular formula of a class of compounds
+P1674,number confirmed,qualifier; number of instances or occurrences classified as confirmed for reporting purposes
+P1675,number probable,qualifier; number of instances or occurrences classified as probable (vs. confirmed) for reporting purposes
+P1676,number suspected,qualifier; number of instances or occurrences classified as suspected for reporting purposes
+P1677,index case of,"primary case, patient zero: initial patient in the population of an epidemiological investigation"
+P1678,has vertex figure,the figure exposed when a corner of a polytope is sliced off
+P1679,Art UK artwork ID,identifier for artworks (publicly owned oil paintings and sculptures in the UK)
+P1680,subtitle,"for works, when the title is followed by a subtitle"
+P1683,quotation,"quotation supporting the statement claim (to be used in the reference or qualifier field only, no quote marks)"
+P1684,inscription,"inscriptions, markings and signatures on an object"
+P1685,Pokdex / Pokmon browser number,identification number of a Pokmon in a Pokdex or Pokmon Browser
+P1686,for work,qualifier of award received (P166) to specify the work that an award was given to the creator for
+P1687,Wikidata property,main Wikidata property for this item
+P1689,central government debt as a percent of GDP,State debt in relation to gross domestic product
+P1690,ICD-10-PCS,"identifier in the ICD-10-PCS (Procedure Coding System, International Classification of Diseases, 10th revision)"
+P1691,operations and procedures key (OPS),official classification of operational procedures
+P1692,ICD-9-CM,identifier in theÊICD adaption assigning diagnostic and procedure codes
+P1693,Terminologia Embryologica,standardized list of words used in the description of human embryologic and fetal structures
+P1694,Terminologia Histologica,controlled vocabulary for use in cytology and histology
+P1695,NLP ID (old),"former National Library of Poland unique identifier. Format: ""A"", 7 digits, ""X"" or another digit. For the newer 16-digit format, use ""NLP ID (PLWABN record)"" (P7293)"
+P1696,inverse property,links a property to its inverse property (which relates the subject and object in reverse order)
+P1697,total valid votes,vote count for the elections (excluding invalid votes)
+P1699,SkyscraperPage building ID,identifier for a building in the SkyscraperPage database
+P1700,SIPA ID,identifier in the SIPA (Sistema de Informao para o Patrimnio Arquitectnico) database of heritage sites in Portugal
+P1702,DGPC ID,identifier in the DGPC (Directorate General of Cultural Heritage) database of heritage sites in Portugal
+P1703,is pollinated by,how pollen from the male anthers is transferred to the female stigma of a flower
+P1704,is pollinator of,plant that this animal visits for pollen (and that it pollinates)
+P1705,native label,label for item in its official or original language
+P1706,together with,qualifier to specify the item that this property is shared with
+P1707,DAAO ID,human identifier per Design & Art Australia Online
+P1708,LfDS object ID,identifer for national heritage sites issued by the Landesamt fr Denkmalpflege Sachsen
+P1709,equivalent class,equivalent class in other ontologies (use property URI)
+P1710,Schsische Biografie (GND) ID,GND identifier in a biographical dictionary of people from Saxony
+P1711,British Museum person or institution ID,identifier for a person or institution in the British Museum person-institution thesaurus
+P1712,Metacritic ID,identifier for Metacritic
+P1713,biography at the Bundestag of Germany URL,link to the biography pages of the German parliament
+P1714,Journalisted ID,"identifier on Journalisted, an independent, not-for-profit website (by Media Standards Trust) listing the published writing of journalists"
+P1715,RKD/ESD (Slovenia) ID,reference number of intangible cultural heritage of Slovenia (EID)
+P1716,brand,commercial brand associated with the item
+P1717,Sandre river ID,identifer of the French national Water Information System
+P1721,pinyin transliteration,hanyu pinyin transliteration of a Mandarin Chinese text (usually to be used as a qualifier)
+P1725,beats per minute,"tempo of a musical work, indicated numerically (use P1558 for qualitative tempo markings)"
+P1726,Florentine musea Inventario 1890 ID,national Florentine musea inventory from 1890 identifier
+P1727,Flora of North America taxon ID,identifier for a taxon in the Flora of North America database
+P1728,AllMusic artist ID,"identifier for an artist, musical group, or record label in the AllMusic database (record labels are listed as ""artists"")"
+P1729,AllMusic album ID,identifier for an album in AllMusic database
+P1730,AllMusic song ID,identifier for a song in AllMusic database
+P1731,Fach,describes the special ablilites of an operatic singers voice
+P1732,Naturbase ID,identifierÊin the Naturbase database published by the Norwegian Environment Agency
+P1733,Steam application ID,identifier for an application available from the Steam distribution platform
+P1734,oath of office date,when person swore the oath of office
+P1735,Comedien.ch ID,identifier in Comedien.ch database of actors and commedians
+P1736,Information Center for Israeli Art artist ID,Identifier for artists in the Information Center for Israeli Art
+P1738,Merck Index monograph,URL stem of page in The Merck Index Online
+P1739,CiNii book ID,identifier for books in the Japanese CiNii bibliography by NII aka National institute of informatics
+P1740,category for films shot at this location,the object is a category for films shot at or in the subject
+P1741,GTAA ID,"identifier for GTAA, a thesaurus used in audiovisual archives (NISV, EYE)"
+P1743,Bradley and Fletcher checklist number,reference for a species in the Bradley and Fletcher checklist of British lepidoptera
+P1744,Agassiz checklist number,"reference for a species in the 2013 checklist of over 2,700 species British lepidoptera"
+P1745,VASCAN ID,identifier for a taxon in the Database of Vascular Plants of Canada
+P1746,ZooBank ID for name or act,identifier for a name or nomenclatural act at ZooBank
+P1747,Flora of China ID,identifier for a taxon in Flora of China (English-language revision of Flora Reipublicae Popularis Sinicae)
+P1748,NCI Thesaurus ID,"identifier in the United States National Cancer Institute Thesaurus, vocabulary for clinical care, translational and basic research, etc"
+P1749,Parlement.com ID,"entry of described object on Parlement.com, website describing Dutch politics"
+P1750,name day,"day of the year associated with a first/given name. A qualifier should be used to identify the calendar that is being used. Distinguish from ""feast day"" (P:P841)"
+P1751,Art UK collection ID,"identifier for art collections, in the UK"
+P1752,scale,"proportional ratio of a linear dimension of a model, map, etc, to the same feature of the original - 1:n. Use 1 for lifesize"
+P1753,list related to category,Wikimedia list equivalent to a Wikimedia category
+P1754,category related to list,Wikimedia category that matches the Wikimedia list
+P1755,Aviation Safety Network accident ID,identifier for an accident description per the Aviation Safety Network's database
+P1760,Aviation Safety Network Wikibase Occurrence,identifier for an item in the Aviation Safety Network's database
+P1761,Watson & Dallwitz family ID,familyID in Watson & Dallwitz: The families of flowering plants
+P1762,Hornbostel-Sachs classification,Hornbostel-Sachs classification of a musical instrument
+P1763,National Pipe Organ Register ID,identifier in the (United Kingdom) National Pipe Organ Register
+P1764,Flemish Heritage Object ID,"identifier for a ""relict"" in the database of the Flemish organization for Immovable Heritage"
+P1766,place name sign,image of (road) sign with place name on it
+P1769,denkXweb identifier,identifier in the online database for cultural heritage monuments in the German state of Hesse
+P1770,Romania LMI code,identifier in 'Lista monumentelor istorice din Romnia' (Romanian heritage sites)
+P1771,Integrated Postsecondary Education Data System ID,identifier for colleges and universities in the United States
+P1772,USDA PLANTS ID,identifier in the United States Department of Agriculture PLANTS Database
+P1774,workshop of,artist whose work group are the likely creator of an artwork
+P1775,follower of,for unknown artists who work in the manner of the named artist
+P1776,circle of,"for unknown artists who lived in the same time as the named author in a similar style, possibly a follower or someone who had contact with the named artist"
+P1777,manner of,"for unknown artists who worked in a similar style as the named author, but not necessary from the same period"
+P1778,forgery after,for an artwork trying to appear to be the work of the named author
+P1779,possible creator,for a creative work with considerable uncertainty about the author
+P1780,school of,"for a creative work with author with a style influenced by the known author or circle, active in the same period, but a student or follower"
+P1782,courtesy name,"name bestowed upon a person at adulthood in addition to one's given name, mostly in East Asia"
+P1785,temple name,name bestowed to a monarch after death (East Asia)
+P1786,posthumous name,name given to a person after death (East Asia)
+P1787,art-name,type of pseudonym of modern and historical artists as well as specifically traditionally adopted by writers and artists in East Asia
+P1788,DVN ID,"identifier in the Dutch Digitaal Vrouwenlexicon van Nederland (Online Dictionary of Dutch Women), a biography portal of prominent women in Dutch history."
+P1789,chief operating officer,the chief operating officer of an organization
+P1791,category of people buried here,Wikimedia category for people with a burial site within this area
+P1792,category of associated people,Wikimedia category for people associated with this place or organization
+P1793,format as a regular expression,"regex describing an identifier or a Wikidata property. When using on property constraints, ensure syntax is a PCRE"
+P1794,bureau du patrimoine de Seine-Saint-Denis ID,identifier in the atlas-patrimoine93.fr website
+P1795,Smithsonian American Art Museum person/institution ID,"identifier for a person or institution, in the Smithsonian American Art Museum: person/institution thesaurus"
+P1796,International Standard Industrial Classification code Rev.4,code of industry by ISIC (International Standard Industrial Classification of All Economic Activities)
+P1798,ISO 639-5 code,3-letter identifier for language family or collective code perÊISO 639-5
+P1799,Maltese Islands National Inventory of Cultural Property ID,identifier in the National Inventory of Cultural Property of the Maltese Islands
+P1800,Wikimedia database name,identifier for a Wikimedia project database
+P1801,commemorative plaque image,"image of plaque or inscription commemorating or mentioning the subject. For graves, use grave picture (P1442)"
+P1802,EMLO person ID,identifier in the Early Modern Letters Online project run by the Bodleian Library
+P1803,Masaryk University person ID,"identifer for a person affiliated with Masaryk University (staff, alumnus, studentÉ)"
+P1804,DNF film ID,identifier for a film in the Danish National Filmography
+P1806,ABoK number,identifier for a knot in the Ashley Book of Knots
+P1807,Great Aragonese Encyclopedia ID,"identifier in the Spanish language, Aragon-themed, Great Aragonese Encyclopedia (GEA)"
+P1808,senat.fr ID,identifier on the website of the French senate
+P1809,choreographer,person(s) who did the choreography
+P1810,subject named as,"name by which a subject is recorded in a database, mentioned as a contributor of a work, or is referred to in a particular context"
+P1811,list of episodes,link to the article with the list of episodes for this series
+P1813,short name,"short name of a place, organisation, person, journal, Wikidata property, etc."
+P1814,name in kana,the reading of a Japanese name in kana
+P1815,RSL scanned books identifier,identifier of the Russian State Library
+P1816,National Portrait Gallery (London) person ID,"identifier for sitters and artists represented in the National Portrait Gallery, London"
+P1817,addressee,person or organization to whom a letter or note is addressed
+P1818,Kaiserhof ID,identifier in the personnel database of the courtiers of the Austrian Habsburg imperial line and the branch lines
+P1819,genealogics.org person ID,"identifier for a person at genealogics.org. Format: ""I"" followed by 8 digits."
+P1820,Open Food Facts food additive ID,represents a food additive on Open Food Facts
+P1821,Open Food Facts food category ID,represents a food category on Open Food Facts
+P1822,Denkmalschutzamt Hamburg object ID,"identifier for cultural monuments in Hamburg, Germany"
+P1823,BAnQ work ID,identifier for a work in the collection of Bibliothque et Archives nationales du Qubec
+P1824,road number,number assigned to a stretch of public roadway
+P1825,Baseball-Reference.com major league player ID,identifier for a Major League Baseball player assigned by Baseball-Reference.com
+P1826,Baseball-Reference.com minor & foreign league player ID,identifier for a Minor League Baseball player assigned by Baseball-Reference.com
+P1827,ISWC,"identifier for musical works, adopted as international standard ISO 15707"
+P1828,IPI name number,"identifier for names of a composer, author and other relevant parties"
+P1829,Roud Folk Song Index number,number assigned to a folk song in the Roud Folk Song Index
+P1830,owner of,entities owned by the subject
+P1831,electorate,number of persons qualified to vote during elections
+P1832,GrassBase ID,identifier in GrassBase - The Online World Grass Flora
+P1833,number of registered users/contributors,number of registered users on a website
+P1836,draft pick number,overall pick number with which a player is selected in a sports draft
+P1837,Gaoloumi ID,identifier for a building in the Gaoloumi database
+P1838,PSS-archi ID,identifier for a building in the PSS-archi database
+P1839,US Federal Election Commission ID,"identifier assigned by the US Federal Election Commission for federal candidates, parties, and other committees"
+P1840,investigated by,person or organization involved in investigation of the item
+P1841,Swedish district code,identifier for Swedish districts from 2016
+P1842,Global Anabaptist Mennonite Encyclopedia Online ID,identifier for Global Anabaptist Mennonite Encyclopedia Online
+P1843,taxon common name,common name of a biological taxon
+P1844,HathiTrust ID,identifier from the HathiTrust Digital Library
+P1845,anti-virus alias,alias issued by anti-virus companies to classify malware
+P1846,distribution map,"distribution of item on a mapped area (for range map of taxa, use (P181).)"
+P1847,Nasjonalbiblioteket photographer ID,identifier used by the Nasjonalbiblioteket (Norwegian National Library) for photographers
+P1848,protected areas INPN Code,identifier from the Inventaire national du patrimoine naturel for protected areas
+P1850,SSR place name number,identifier for a place name in the Norwegian Mapping Authority's place name registry Sentralt stedsnavnregister (SSR)
+P1851,input set,a superset of the domain of a function or relation that may include some inputs for which the function is not defined; to specify the set of only those inputs for which the function is defined use domain (P1568)
+P1852,Perry Index,item's value on the Perry Index primarily for fables attributed to Aesop
+P1853,blood type,blood type of the human or animal
+P1854,Kyiv street code,"identifier for a street of Kyiv, Ukraine; format: 5 digits starting with ""1"""
+P1855,Wikidata property example,"example where this Wikidata property is used; target item is one that would use this property, with qualifier the property being described given the associated value"
+P1866,Catholic Hierarchy diocese ID,identifer for a diocese on catholic-hierarchy.org
+P1867,eligible voters,number of eligible voters for a particular election
+P1868,ballots cast,"total number of ballot(s) cast, including invalid or blank ballots"
+P1869,Hall of Valor ID,"identifier for a medal recipient, in the US Hall of Valor"
+P1870,Name Assigning Authority Number,identifier in the Archival Resource Key registry
+P1871,CERL Thesaurus ID,identifier in the Consortium of European Research Libraries Thesaurus
+P1872,minimum number of players,minimum numbers of players of a game
+P1873,maximum number of players,maximum numbers of players of a game
+P1874,Netflix ID,identifier for a creative work on Netflix
+P1875,represented by,person or agency that represents or manages the subject
+P1876,vehicle,"vessel involved in this mission, voyage or event"
+P1877,after a work by,artist whose work strongly inspired/ was copied in this item
+P1878,Vox-ATypI classification,classification for typefaces
+P1879,income classification (Philippines),classification grade of a Philippine local government unit based on income
+P1880,measurement scale,scale by which a phenomenon is measured
+P1881,list of characters,Wikimedia page with the list of characters for this work
+P1882,Web Gallery of Art ID,identifier for an artist in the Web Gallery of Art
+P1883,Declarator.org ID,Person ID on Declarator.org database
+P1884,hair color,person's hair color. Use P585 as qualifier if there's more than one value
+P1885,cathedral,principal church of a religious district
+P1886,Smithsonian volcano ID,identifier of volcano in the Smithsonian Global Volcanism Program. Format: 6 digits.
+P1887,vice-county,geographical delineation utilized for biological records in the British Isles
+P1888,Dictionary of Medieval Names from European Sources entry,entry in the Dictionary of Medieval Names from European Sources
+P1889,different from,"item that is different from another item, with which it may be confused"
+P1890,CCAB ID,Collective Catalog of Bibliographic Authorities of Chile ID
+P1891,signatory,"person, country, or organization that has signed an official document (useÊP50 for author)"
+P1893,OpenPlaques plaque ID,"identifier for a commemorative plaque, on a building or other structure in OpenPlaques"
+P1894,Danish urban area code,official identifier for an urban area in Denmark
+P1895,Fauna Europaea ID,identifier for a taxon in Fauna Europaea
+P1896,source website for the property,URL of website acting as source of data for this Wikidata property
+P1897,highest note,highest note that an instrument can play or singer can sing
+P1898,lowest note,lowest note that an instrument can play or singer can sing
+P1899,LibriVox author ID,author ID for an author represented at LibriVox
+P1900,EAGLE id,identifier of an epigraphic concept in the Europeana Network of Ancient Greek and Latin Epigraphy (EAGLE) vocabulary
+P1901,BALaT person/organisation id,"identifier for person or organisation in the People & Institutions database of Belgian Art Links & Tools (BALaT), maintained by KIK-IRPA, Belgium's Royal Institute for Cultural Heritage."
+P1902,Spotify artist ID,identifier for an artist on Spotify
+P1903,volcanic explosivity index,scale indicating size of an explosive volcanic eruption
+P1906,office held by head of state,political office that is fulfilled by the head of state of this item
+P1907,Australian Dictionary of Biography ID,article about the person in the Australian Dictionary of Biography
+P1908,CWGC person ID,"identifier for a person, in the online database of Commonwealth War Graves Commission"
+P1909,side effect,"effect of a medication or procedure, that occurs next to the desired effect"
+P1910,decreased expression in,indicates that a decreased expression of the subject gene is found in the object disease
+P1911,increased expression in,this property should link a gene and a disease and indicate that an increased expression of the gene is found in the disease
+P1912,gene deletion association with,This property should link a gene and a disease due to a deletion
+P1913,gene duplication association with,This property should link a gene and a disease due to a duplication
+P1914,gene insertion association with,This property should link a gene and a disease due to an insertion
+P1915,gene inversion association with,This property should link a gene and a disease due to an inversion
+P1916,gene substitution association with,This property should link a gene and a disease due to a substitution
+P1917,posttranslational modification association with,This property should link a protein-coding gene to a disease where the encoded protein is associated with a posttranslation modification
+P1918,altered regulation leads to,this property should link a gene and a disease due to altered regulation
+P1919,Ministry of Education of Chile school ID,"ID number (Rol Base de Datos, RBD, in Spanish, meaning database role) of all schools (high, middle, primary) in Chile, as registered by the Ministry of Education of Chile"
+P1920,CWGC burial ground ID,"identifier for a cemetery, churchyard, or memorial, in the online database of Commonwealth War Graves Commission"
+P1921,formatter URI for RDF resource,"formatter URL for RDF resource: URI template from which ""$1"" can be automatically replaced with the effective property value on items (it is the URI of the resources, not the URI of the RDF file describing it)"
+P1922,first line,"first line (incipit) of a poem, first sentence of a novel, speech, etc."
+P1923,participating team,like 'Participant' (P710) but for teams. For an event like a cycle race or a football match you can use this property to list the teams and P710 to list the individuals (with 'member of sports team' (P54) as a qualifier for the individuals)
+P1924,vaccine for,disease that a vaccine is for
+P1925,VIOLIN ID,identifier in the VIOLIN database for vaccines and related subjects
+P1928,Vaccine Ontology ID,identifier in the Vaccine Ontology database
+P1929,ClinVar Variation ID,identifier in the ClinVar database for human genomic variation
+P1930,DSM-5 classification,identifier for a mental disorder in the 5th edition of Diagnostic and Statistical Manual of Mental Disorders
+P1931,NIOSH Pocket Guide ID,Identifier for a chemical in the NIOSH Pocket Guide to Chemical Hazards
+P1932,object stated as,use as qualifier to indicate how the object's value was given in the source
+P1933,MobyGames game ID,identifier for MobyGames
+P1934,Animator.ru film ID,ID of animated film in Animator.ru database
+P1935,Database of Classical Scholars ID,identifier for persons in the Database of Classical Scholars
+P1936,Digital Atlas of the Roman Empire ID,"Identifier of a Roman site, in the Digital Atlas of the Roman Empire"
+P1937,UN/LOCODE,geographic location code mantained by UNECE
+P1938,Project Gutenberg author ID,author identifier at Project Gutenberg
+P1939,Dyntaxa ID,identifier for a taxon in the Swedish Taxonomic Database
+P1940,conifers.org ID,identifier for a taxon in the conifers.org database
+P1942,McCune-Reischauer romanization,romanization of Korean with the McCune-Reischauer system
+P1943,location map,"blank geographic map image suitable for overlaying coordinate points, as defined at c:Category:Location maps"
+P1944,relief location map,relief location map of place
+P1945,street key,identification number for a specific street within the street cadastre of a municipality
+P1947,Mapillary ID,"ID for a photo on Mapillary, a service for crowdsourcing map photos"
+P1948,BerlPap identifier,link to the Berliner Papyrusdatenbank
+P1949,CulturaItalia ID,identification number for the CulturaItalia LOD section
+P1950,second family name in Spanish name,second (generally maternal) family name in Spanish names (do not use for other double barrelled names)
+P1951,investor,individual or organization which invests money in the item for the purpose of obtaining financial return on their investment
+P1952,Encyclopaedia Metallum band ID,identifier for a band in the Encyclopaedia Metallum database
+P1953,Discogs artist ID,identifier for a band or person in the Discogs database
+P1954,Discogs master ID,identifier for a musical work in the Discogs database
+P1955,Discogs label ID,"identifier for a record label, studio or series in the Discogs database"
+P1956,takeoff and landing capability,type of takeoff and landing the aircraft is designed to operate
+P1957,Wikisource index page URL,URL of the page in Wikisource containing digital and paper pagination of the source
+P1958,Trismegistos Geo ID,identifier of an ancient place on trismegistos.org
+P1959,Dutch Senate person ID,identifier for a person on the website of the Dutch Senate
+P1960,Google Scholar author ID,"identifier of a person, in the Google Scholar academic search service"
+P1961,CTHS society ID,identifier of organization of Comit des travaux historiques et scientifiques
+P1963,properties for this type,"when this subject is used as object of ""instance of"" or ""occupation"", the following properties normally apply"
+P1966,Biblioteca Nacional de Chile catalogue number,"catalogue number for books (editions), periodical, magazine, map, photography and other media in the Biblioteca Nacional de Chile"
+P1967,BoxRec boxer ID,Identifier for a boxer in the BoxRec database
+P1968,Foursquare venue ID,ID of a place in Foursquare
+P1970,MovieMeter film ID,identifier for a film on the website MovieMeter
+P1971,number of children,number of children of the person
+P1972,Open Hub ID,identifier for free software at OpenHub.net
+P1973,RSL editions,catalogue number of the Russian State Library of Moscow (see also P1815 and P947)
+P1976,INEGI locality ID,identifier for a locality of Mexico
+P1977,Les Archives du spectacle person ID,Identifier for an actor/actress/playwright in the Les Archives du spectacle database
+P1978,USDA NDB number,identifier for a food item in the United States Department of Agriculture National Nutrient Database
+P1979,Righteous Among The Nations ID,identifier in the database of The Righteous Among The Nations
+P1980,PolSys ID,identifier for a person in the PolSys database of Norwegian politicians
+P1981,FSK film rating,"permitted audience of a film, according to the German film-rating system (add Prfnummer with qualifier ""P2676"")"
+P1982,Anime News Network person ID,identifier for a person or group of people on animenewsnetwork.com
+P1983,Anime News Network company ID,identifier of a company on Anime News Network
+P1984,Anime News Network manga ID,identifier of a manga (or a light novel) in Anime News Network
+P1985,Anime News Network anime ID,identifier of an anime in Anime News Network
+P1986,Biographical Dictionary of Italian People ID,identifier for a person in the Biographical Dictionary of Italian People
+P1987,MCN code,code for item in the Mercosur Common Nomenclature
+P1988,Le Delarge artist ID,identifier for an artist in the Delarge dictionary
+P1989,Encyclopaedia Metallum artist ID,Identifier for a person in the Encyclopaedia Metallum database
+P1990,species kept,"taxa, preferably species, present at a zoo, botanical garden, collection, or other institution. NOT specific animals, not for any geographic location"
+P1991,LPSN URL,URL for the website List of Prokaryotic names with Standing in Nomenclature (LPSN)
+P1992,Plazi ID,identifier for a taxon treatment at Plazi.org
+P1993,TeX string,string to show a concept in TeX or LaTeX
+P1994,AllMusic composition ID,identifier for a composition in AllMusic
+P1995,health specialty,"main specialty that diagnoses, prevent human illness, injury and other physical and mental impairments"
+P1996,parliament.uk biography pages (BEING DELETED),link to an MP or Peer's biography on parliament.uk
+P1997,Facebook Places ID,identifier for a place in Facebook
+P1998,UCI code of cycling team,three-character code uniquely identifying a cycling team according to UCI
+P1999,UNESCO language status,degree of endangerment of a language conferred by the UNESCO Atlas of World Languages in Danger
+P2000,CPDL ID,"identifier of a work or person, in the Choral Public Domain Library"
+P2001,Revised Romanization,romanisation following the Revised Romanisation of the Korean language
+P2002,Twitter username,this item's username on Twitter; do not include the Ò@Ó symbol
+P2003,Instagram username,item's username on Instagram
+P2004,NALT ID,identifier for subject headings in the Agricultural Thesaurus of the United States National Agricultural Library
+P2005,Catalogus Professorum Halensis ID,biographical entry in the Catalogus Professorum Halensis
+P2006,ZooBank author ID,identifier for an author at ZooBank
+P2007,ZooBank publication ID,identifier for a publication at ZooBank
+P2008,IPNI publication ID,identifier for a publication in the International Plant Names Index
+P2009,Exif model,string as it appears in the EXIF generated by a camera
+P2010,Exif make,string of the manufacturer as it appears in the EXIF generated by a specific digital camera model
+P2011,Cooper-Hewitt Person ID,identifier for a person or organization in the Cooper-Hewitt (Smithsonian Institution) catalogue
+P2012,cuisine,type of food served by a restaurant or restaurant chain or national food culture
+P2013,Facebook ID,"identifier for an official (preferably) Facebook person, product or organization page (everything that follows URL part 'https://www.facebook.com/')"
+P2014,Museum of Modern Art work ID,identifier for a work held at the Museum of Modern Art (MoMA)
+P2015,Hansard (1803Ð2005) ID,"identifier of a person in the Hansard 1803-2005 database, indexing speeches in the British parliament (both Commons and Lords)"
+P2016,Catalogus Professorum Academiae Groninganae ID,"identifier for a professor, in the Catalogus Professorum Academiae Groninganae"
+P2017,isomeric SMILES,dedicated SMILES for isomer
+P2018,Teuchos ID,identification String in the Teuchos Database
+P2019,AllMovie person ID,identifier for a person on the AllMovie film database
+P2020,WorldFootball.net player ID,"identifier for an association football (soccer) player at WorldFootball.net, Weltfussball.com, Weltfussball.de, Weltfussball.at, Voetbal.com, Calcio.com, Mondedufoot.fr, or Livefutbol.com"
+P2021,Erd?s number,"the ""collaborative distance"" between mathematician Paul Erd?s and another person. Use point in time (P585) as qualifier and should be used with a source."
+P2024,German cattle breed ID,identifier of a cattle breed in German national law
+P2025,Find A Grave cemetery ID,identifier assigned to a cemetery at Find A Grave
+P2026,Avibase ID,"identifier for a species, subspecies, or genus in the global bird databaseÊAvibase"
+P2027,Colour Index International constitution ID,"identifier issued by Colour Index International, for manufactured colour products"
+P2028,United States Armed Forces service number,number assigned by the US military to soldiers and sailors as the primary means of service member identification from 1918 until 1974
+P2029,Dictionary of Ulster Biography ID,identifer for a person in the Dictionary of Ulster Biography
+P2030,NASA biographical ID,identifier used by NASA for an astronaut or cosmonaut
+P2031,work period (start),"start of period during which a person or group flourished (fl. = ""floruit"") in their professional activity"
+P2032,work period (end),"end of period during which a person or group flourished (fl. = ""floruit"") in their professional activity"
+P2033,category for pictures taken with camera,Commons category for photos taken with that camera model or model line
+P2034,Project Gutenberg ebook ID,ebook identifier at Project Gutenberg
+P2036,African Plant Database ID,"identifier for a plant taxon, in the Conservatoire et Jardin botaniques de Genve's African Plant Database of scientific names"
+P2037,GitHub username,"username of this project, person or organization on GitHub"
+P2038,ResearchGate profile ID,"identifier for a person, used by ResearchGate profiles"
+P2040,CITES Species+ ID,identifier for a taxon in the Species+ database (CITES)
+P2041,National Gallery of Victoria artist ID,identifier assigned to an artist by the National Gallery of Victoria in Australia
+P2042,Artsy artist ID,identifier at the Artsy website
+P2043,length,measured dimension of an object
+P2044,elevation above sea level,height of the item (geographical object) as measured relative to sea level
+P2045,orbital inclination,orbital inclination of a stable orbit
+P2046,area,area occupied by an object
+P2047,duration,length of time of an event or process
+P2048,height,vertical length of an entity
+P2049,width,width of an object
+P2050,wingspan,"distance from one wingtip to the other, of an airplane or an animal"
+P2051,M sin i,exoplanet mass multiplied by the inclination angle
+P2052,speed,magnitude of the velocity of the item
+P2053,watershed area,size of a stream's watershed (drainage basin)
+P2054,density,density of a substance with phase of matter and temperature as qualifiers
+P2055,electrical conductivity,electrical conductivity of a substance with phase of matter and temperature as qualifiers
+P2056,specific heat capacity,"specific heat capacity of a substance, with phase of matter and temperature as qualifiers"
+P2057,Human Metabolome Database ID,ID in Human Metabolome Database
+P2058,depositary,depositary of the treaty
+P2060,luminosity,total amount of energy emitted by an astronomical object per unit time
+P2061,aspect ratio (W:H),"image width to height ratio of films, photographs, and other images"
+P2062,HSDB ID,ID in Hazardous Substances Data Bank
+P2063,LIPID MAPS ID,identifier used in the LIPID MAPS database for lipids
+P2064,KNApSAcK ID,identifier in the KNApSAcK Core System
+P2065,NIAID ChemDB ID,ID in NIAID ChemDB
+P2066,molar fusion enthalpy,fusion enthalpy of a substance at the melting temperature
+P2067,mass,mass (in colloquial usage also known as weight) of the item
+P2068,thermal conductivity,property of a material that describes how efficiently heat is conducted
+P2069,magnetic moment,torque a particle will experience in an external magnetic field
+P2070,Fellow of the Royal Society ID,Fellow ID of the Royal Society
+P2071,Mmoire des hommes ID,French government database indexing all french soldier war casualties
+P2072,CDB Chemical ID,ID in UCI chemical database
+P2073,vehicle range,distance a vehicle can travel without refuelling
+P2074,internetmedicin.se ID,ID in the Swedish database about medical topics
+P2075,speed of sound,speed of sound waves in a material. Use qualifiers to specify the measurement conditions.
+P2076,temperature,qualifier to indicate at what temperature something took place
+P2077,under pressure,qualifier to indicate at what pressure something took place
+P2078,user manual URL,"link to the user manual of the object (product, program)"
+P2079,fabrication method,"method, process or technique used to grow, cook, weave, build, assemble, manufacture the item"
+P2080,AcademiaNet ID,identifier in the AcademiaNet database for excellent female scientists
+P2081,BLDAM object ID,"Object ID to identify cultural heritage monuments in Brandenburg state, Germany"
+P2082,M.49 code,United Nations M.49 code for the subject item
+P2083,Leadscope ID,identifier for a chemical compound in leadscope.com
+P2084,ZINC ID,identifier for a chemical compound in the ZINC database
+P2085,Nikkaji ID,identifier for a chemical compound in the Japan Chemical Substance Dictionary (Nikkaji)
+P2086,CDD Public ID,identifier for a chemical compound in the Collaborative Drug Discovery database
+P2087,Crunchbase person ID,"Identifier for a person, in the Crunchbase database of companies and start-ups, operated by TechCrunch"
+P2088,Crunchbase organization ID,"Identifier for an organization, in the Crunchbase database of companies and start-ups, operated by TechCrunch"
+P2089,Library of Congress JukeBox ID (former scheme),former identifier in the Library of Congress JukeBox database of singers
+P2090,Power of 10 athlete ID,identifier for an athlete in the Power of 10 database
+P2091,World Rowing ID (numeric format),identifier for a rower in the database of World Rowing (FISA)
+P2092,Bildindex der Kunst und Architektur ID,identifier for an artwork in Bildindex
+P2093,author name string,stores unspecified author or editor name for publications; use if Wikidata item for author (P50) or editor (P98) does not exist or is not known. do not use both.
+P2094,competition class,"official classification by a regulating body under which the subject (events, teams, participants, or equipment) qualifies for inclusion"
+P2095,co-driver,rally team member who performs as a co-driver or co-pilot
+P2096,media legend,"qualifier to describe the media of the statement. This avoids legend storage in the local infobox when the media is defined at Wikidata. For the date, use P585 instead."
+P2097,term length of office,length of time in years (unit: Q577) a person (usually a politician) is to serve in a particular office. Do not add bounds.
+P2098,substitute/deputy/replacement of office/officeholder,function that serves as deputy/replacement of this function/office (scope/conditions vary depending on office)
+P2099,BC Geographical Names ID,Unique ID of the BC Geographical Names
+P2100,Banque de noms de lieux du Qubec ID,unique identifier for geographical names in Quebec
+P2101,melting point,temperature at which a solid changes its state from solid to liquid at atmospheric pressure
+P2102,boiling point,temperature at which a substance changes its phase from liquid to gas (indicate the corresponding pressure as qualifier)
+P2103,size of team at start,number of players/sled dogs/etc. in a team at the start of a match or race
+P2105,size of team at finish,number of players/sled dogs/etc. in a team at the end of the race or match
+P2106,RXNO Ontology,RSC ontology for organic reactions
+P2107,decomposition point,decomposition point of a substance
+P2108,Kunstindeks Danmark artwork ID,identifier for artwork in the Danish art database
+P2109,installed capacity,power produced by the engine or plant (use with unit of power)
+P2112,wing area,area of an aircraft's wing surfaces
+P2113,sublimation temperature,temperature at which a substance changes directly from solid to gaseous (indicate corresponding pressure qualifier)
+P2114,half-life,time required for the amount of something to fall to half its initial value
+P2115,NDF-RT ID,identifier for the National Drug File Reference Terminology
+P2116,molar enthalpy of vaporization,vaporization enthalpy of a substance with temperature as qualifier
+P2117,combustion enthalpy,enthalpy difference of a substance for combustion
+P2118,kinematic viscosity,"viscosity of a substance, with phase of matter (P515) and temperature (P2076) as qualifiers"
+P2119,vapor pressure,pressure exerted by a vapor in thermodynamic equilibrium with its condensed phases
+P2120,radius,distance between the center and the surface of a circle or sphere
+P2121,prize money,amount in a specific currency
+P2123,YerelNet village ID,"identifier for a village, in YerelNet.org.tr, which contains detailed informations about all villages in Turkey"
+P2124,member count,number of people who are part of an organization at a particular time
+P2125,Revised Hepburn romanization,romanized Japanese following the Revised Hepburn romanization system
+P2126,Georgian national system of romanization,transliteration of text from Georgian script to Latin script according to the Georgian national system of romanization
+P2127,International Nuclear Event Scale,international scale for rating nuclear events and accidents
+P2128,flash point,lowest temperature at which it can vaporize to form an ignitable mixture in air. Add qualifier for measurement method (P459): open cup or closed cup. Not equal to fire point.
+P2129,immediately dangerous to life or health,Immediately Dangerous to Life and Health value
+P2130,cost,amount of money spent on building or producing an object
+P2131,nominal GDP,market value of all officially recognized final goods and services produced within a country in a given period of time
+P2132,nominal GDP per capita,country's total GDP divided by the population
+P2133,total debt,"amount of debt for a company, organization or public entity"
+P2134,total reserves,"total reserves comprise holdings of monetary gold, special drawing rights, reserves of IMF members held by the IMF, and holdings of foreign exchange under the control of monetary authorities"
+P2135,total exports,amount of goods and services sold to other countries
+P2136,total imports,amount of goods and services bought from other countries
+P2137,total equity,amount of equity value for an entity
+P2138,total liabilities,sum of all debts and other future sacrifices of economic benefits that an entity is obliged to make
+P2139,total revenue,income gained by an organization during a given time frame. Not to be confused with fiscal revenue
+P2140,foreign direct investment net outflow,"net outflow of equity capital, reinvestment of earnings, other long-term capital, and short-term capital"
+P2141,foreign direct investment net inflow,"net inflow of equity capital, reinvestment of earnings, other long-term capital, and short-term capital"
+P2142,box office,box office takings accumulated by a film
+P2143,genome size,size of the genome in base pairs
+P2144,frequency,"frequency in Hz at which the subject works, for example the frequency a radio station can be received"
+P2145,explosive energy equivalent,amount of energy discharged during an explosion
+P2146,orbital period,the time taken for a given astronomic object to make one complete orbit about another object
+P2147,rotation period,the time that astronomic objects takes to complete one revolution around its axis of rotation
+P2148,distance from river mouth,qualifier for P974 statements on streams
+P2149,clock frequency,CPU's specified clock frequency (use with determination method = Q73207925 or Q73208059 as appropriate)
+P2150,FSB speed,CPU front-side bus speed
+P2151,focal length,"focal length of lens (telescope, etc.)"
+P2152,antiparticle,particle with the same rest mass and opposite charges
+P2153,PubChem Substance ID (SID),"substance (e.g. mixtures, undefined stereochemistry, ...) identifier in the PubChem database."
+P2154,binding energy,energy required to disassemble a whole system into separate parts
+P2155,solid solution series with,"the mineral forms a continous (true) or discontinous ""solid solution series"" with another mineral"
+P2156,pseudo crystal habit,"possible macrosopic appearance of a crystal different to its molecular symmetry (crystal cell, specimens with twinning or synthetic material)"
+P2158,Cell Line Ontology ID,identifier for the Cell Line Ontology which describes anatomic origin and nature of eukaryotic cell lines
+P2159,computes solution to,problem that this algorithm or method solves
+P2160,mass excess,difference between its actual mass and its mass number in atomic mass units
+P2161,Guthrie code,Guthrie code of a Bantu language
+P2162,Deutsche Ultramarathon-Vereinigung ID,identifier for individual runners in the Deutsche Ultramarathon-Vereinigung (German Ultramarathon Association) database
+P2163,FAST ID,authority control identifier in WorldCat's ÒFAST Linked DataÓ authority file
+P2164,SIGIC author ID,identifier for a person in the database of SIGIC - Slovenian Music Information Center
+P2165,SIGIC group ID,identifier for a music group in the database of SIGIC - Slovenian Music Information Center
+P2166,SIGIC institution ID,identifier for an institution in the database of SIGIC - Slovenian Music Information Center
+P2167,UNSPSC Code,identifier for taxonomy of products and services for use in eCommerce
+P2168,Swedish Film Database person ID,identifier for a person on the Swedish Film Database (SFDb)
+P2169,PublicWhip ID,identifer in the PublicWhip database of British MPs
+P2170,Hansard (2006ÐMarch 2016) ID,identifier for a British MP in Hansard (2006ÐMarch 2016)
+P2171,TheyWorkForYou ID,identifier in the 'TheyWorkForYou' database of British MPs
+P2172,Parliamentary record identifier,Parliamentary record identifier for British MPs
+P2173,BBC News Democracy Live ID,identifer in the BBC News Democracy Live database of British MPs
+P2174,Museum of Modern Art artist ID,identifier assigned to an artist by the Museum of Modern Art
+P2175,medical condition treated,"disease that this pharmaceutical drug, procedure, or therapy is used to treat"
+P2176,drug or therapy used for treatment,"drug, procedure, or therapy that can be used to treat a medical condition"
+P2177,solubility,property of a chemical to dissolve in another chemical forming a solution. Provide solvent (P2178) and temperature (P2076) as qualifiers
+P2178,solvent,qualifier to show which substance is the solvent in a solution-process (use with P2177)
+P2179,ACM Classification Code (2012),ACM Computing Classification Code of 2012 (8 digits)
+P2180,Kansallisbiografia ID,identifier for a person in the Kansallisbiografia (National Biography of Finland)
+P2181,Finnish MP ID,code of the entry on the Finnish parliament database
+P2182,Finnish Ministers database ID,code of the entry on the Finnish ministers database
+P2183,ISO 9:1995,the Latin transliteration of Cyrillic text (used as qualifier)
+P2184,history of topic,"item about the historical development of an subject's topic, sample: ""history of Argentina"" for ""Argentina"". To list key events of the topic, use ""significant event"" (P793)"
+P2185,DLI ID,identifier for a work in the Digital Library of India
+P2186,Wiki Loves Monuments ID,unique ID for the monuments included in Wiki Loves Monuments national lists
+P2187,BiblioNet publication ID,identifier in the BiblioNet database of book editions
+P2188,BiblioNet author ID,"identifier in the BiblioNet database of authors, created by the National Book Centre of Greece, many Greek individual publishers and their professional associations"
+P2189,BiblioNet publisher ID,identifier in the BiblioNet database of publishers
+P2190,C-SPAN person ID,former identifier for a person's appearances on C-SPAN as strings - string IDs should be converted to numeric and moved to P10660 to prevent link rot
+P2191,Vegetti Catalog of Fantastic Literature NILF ID,numeric identifier within the Vegetti Catalog of Fantastic Literature
+P2192,endangeredlanguages.com ID,identifier of a language on the website endangeredlanguages.com
+P2193,Soccerbase player ID,player ID on the Soccerbase.com website
+P2194,PSS-archi architect ID,identifier for an architect in the PSS-archi database
+P2195,Soccerbase manager ID,manager ID on the Soccerbase.com website
+P2196,students count,"number of students of any type in an educational organization. Qualify with "" point in time"" (P585). The most recent count would generally have preferred rank; data for previous years normal rank (not deprecated rank). Don't overwrite."
+P2197,production rate,amount of a given material produced in a given time
+P2198,average gradient,gradient expressed as a percentage (between 0 and 1)
+P2199,autoignition temperature,lowest temperature at which it will spontaneously ignite in a normal atmosphere without an external source of ignition
+P2200,electric charge,electric charge of a subatomic particle
+P2201,electric dipole moment,
+P2202,lower flammable limit,the lower bound of the concentration range over which a flammable mixture of gas or vapour in air can be ignited at a given temperature and pressure (0-1)
+P2203,upper flammable limit,upper bound of the concentration range over which a flammable mixture of gas or vapour in air can be ignited at a given temperature and pressure (0-1)
+P2204,minimum explosive concentration,minimum concentration at which a chemical can explode
+P2205,Spotify album ID,identifier for an album or single on Spotify
+P2206,Discogs release ID,"identifier for a musical work (release) in the Discogs database, if there is no master ID (P1954)"
+P2207,Spotify track ID,identifier for a track on Spotify
+P2208,average shot length,cinemetrical measure
+P2209,SourceForge project,"identifier for an official SourceForge repository (""project"") for a software product"
+P2210,relative to,qualifier: what a statement value is relative to
+P2211,position angle,measurement relating to observed visual binary stars (use with P2210)
+P2212,angular distance,size of the angle between the two directions originating from the observer and pointing towards these two objects (use with P2210)
+P2213,longitude of ascending node,property of one of the orbital elements used to specify the orbit of an object in space
+P2214,parallax,parallax of nearest stars
+P2215,proper motion,"proper motion of a star (rather than qualify this with P642, use P10751 instead of this property when referring to the declination component ?? and P10752 instead of this property when referring to the right ascension component ??)"
+P2216,radial velocity,component of the object's velocity that points in the direction of the radius connecting the object and the point
+P2217,cruise speed,design cruise speed
+P2218,net worth,totality of wealth possessed by a person
+P2219,real GDP growth rate,percentage change in nominal gross domestic product from one year to the next minus the inflation rate
+P2220,household wealth,net worth of consumers
+P2221,flux,the observed flux in a particular wavelength band of an astronomical object
+P2222,gyromagnetic ratio,characteristic property of any elementary particle
+P2223,decay width,characteristic property of any elementary particle
+P2225,discharge,volume rate of water flow which is transported through a given cross-sectional area
+P2226,market capitalization,total value of issued shares by a publicly traded company
+P2227,metallicity,abundance of elements that are heavier than hydrogen or helium in an astronomical object
+P2228,maximum thrust,maximum thrust specified for a jet- or rocketengine
+P2229,thermal design power,specified amount of heat a computer component generates under normal conditions that the cooling system must dissipate
+P2230,torque,"torque of a machine, a motor/engine/powerplant, or a vehicle"
+P2231,explosive velocity,
+P2232,cash,the value of cash and securities held by a state government
+P2233,semi-major axis of an orbit,semi-major axis of a stable orbit (Astronomy)
+P2234,volume as quantity,quantity of three-dimensional space
+P2235,external superproperty,all resources related by this property are also related to that property from an external vocabulary
+P2236,external subproperty,all resources related by the property from external vocabularies are also related to this property
+P2238,official symbol,official symbol of an organisation
+P2239,first aid measures,"actions to take to help a person in the case of exposure to this hazard or malady (accidents, injuries, harmful chemicals)"
+P2240,median lethal dose (LD50),the dose required to kill half the members of a tested population after a specified test duration (LC?? ? P2712)
+P2241,reason for deprecated rank,qualifier to indicate why a particular statement should have deprecated rank
+P2242,Florentine musea catalogue ID,identifier for artworks from the catalogue of the national Florentine musea
+P2243,apoapsis,"distance, at which a celestial body is the farthest to the object it orbits"
+P2244,periapsis,"distance, at which a celestial body is the closest to the object it orbits"
+P2248,argument of periapsis,angle from the body's ascending node to its periapsis
+P2249,RefSeq genome ID,ID in the RefSeq Genome database
+P2250,life expectancy,average life expectancy for this group or species
+P2252,National Gallery of Art artist ID,"identifier assigned to an artist by the National Gallery of Art in Washington, DC"
+P2253,DfE URN,school identifier used by the UK government
+P2254,maximum operating altitude,ceiling or maximum density altitude at which an aircraft can operate
+P2255,Debrett's People of Today ID,"identifier for a person, in Debrett's ""People of Today"""
+P2257,event interval,"standard nominal interval between scheduled or regularly recurring events. Include unit of time, e.g. ""year"" (Q577)"
+P2258,mobile country code,identifier for countries in ITU-T Recommendation E.212 for use in describing mobile networks
+P2259,mobile network code,code for mobile networks defined by ITU-T Recommendation E.212
+P2260,ionization energy,"minimum amount of energy required to remove an electron from an atom, ion or molecule in the gaseous state"
+P2261,beam,width of a ship at its widest point measured at its nominal waterline
+P2262,draft,depth below the water line to the bottom of a vessel's hull. summer draft is implied unless stated otherwise.
+P2263,ISOCAT id,numeric ID from the Data Category Registry
+P2264,Mix'n'match catalog ID,ID of the catalog corresponding to the property in the mix'n'match tool
+P2266,FMD model ID,external link to a model's profile at the FMD (Fashion Model Directory) website
+P2267,PolitiFact people and groups ID,person or group whose statements have been fact checked by PolitiFact.com
+P2268,Muse d'Orsay artist ID,numeric ID for an artist in the Rpertoire des artistes documentation database of the Orsay Museum
+P2270,Emporis building complex ID,"identifier for a building complex, as opposed to a single building, in the Emporis architecture database"
+P2271,Wikidata property example for properties,examples of using a property in an item statement
+P2272,Hederich encyclopedia article ID,"entry in HederichÕs encyclopedia of mythology, 3rd edition (1770), via zeno.org"
+P2273,Heidelberg Academy for Sciences and Humanities member ID,entry in the list of members of the Heidelberg Academy for Sciences and Humanities
+P2275,World Health Organisation international non-proprietary name,identifier for a drug
+P2276,UEFA player ID,identifier for UEFA players
+P2277,Magdeburger Biographisches Lexikon ID,biographical article about people from the Magdeburg area
+P2278,Member of the Hellenic Parliament ID,"an identifier for members, or former members, of the national parliament of Greece"
+P2279,ambitus,musical interval/range of a melody
+P2280,Austrian Parliament ID,"identifier for an individual, in the Austrian Parliament's ""Who's Who"" database"
+P2281,Apple Music album ID (U.S. version),identifier for a musical work in the U.S. version of Apple Music website
+P2282,Groeningemuseum work PID,"persistent identifier for an artwork from the collection of the Groeningemuseum in Bruges, Belgium"
+P2283,uses,item or concept used by the subject or in the operation (see also instrument [P1303] and armament [P520])
+P2284,price,published price listed or paid for a product (use with unit of currency)
+P2285,periapsis date,time for perihelion/perigee in each orbit for an astronomical object
+P2286,arterial supply,arterial supply of an anatomical structure
+P2287,CRIStin ID,ID in the database for Norwegian scientists
+P2288,lymphatic drainage,lymphatic drainage of an anatomical structure
+P2289,venous drainage,vein draining the anatomical structure
+P2290,Danish parish code,identifier for an parish in Denmark
+P2291,charted in,chart where the element reached a position
+P2292,consumption rate,rate at which a product is consumed
+P2293,genetic association,"general link between a disease and the causal genetic entity, if the detailed mechanism is unknown/unavailable"
+P2294,balance of trade,exports minus imports. not to be confused with current account balance and balance of payments
+P2295,net profit,private entity profit after accounting for all costs
+P2296,money supply,"amount of currency the central bank has injected in the economy (MO, M1, M2, M3)"
+P2297,employment by economic sector,employment divided by sector
+P2298,NSDAP membership number (1925Ð1945),membership number in the Nazi Party
+P2299,PPP GDP per capita,GDP divided by the population total and adjusted for CPI
+P2300,minimal lethal dose,lowest concentration of a toxic substance in an environmental medium that kills individual organisms or test species under a defined set of conditions
+P2302,property constraint,constraint applicable to a Wikidata property
+P2303,exception to constraint,"item that is an exception to the constraint, qualifier to define a property constraint in combination with P2302"
+P2304,group by,qualifier to define a property constraint in combination with P2302 (Wikidata property constraint) that is used to group constraint violations in constraint violation reports
+P2305,item of property constraint,"qualifier to define a property constraint in combination with ""property constraint"" (P2302)"
+P2306,property,"qualifier to define a property constraint in combination with P2302 (property constraint), or to limit the scope of Q44292881 (wikidata statement)"
+P2307,namespace,qualifier to define a property constraint in combination with P2302 (Wikidata property constraint)
+P2308,class,"qualifier to define a property constraint in combination with ""property constraint"" (P2302)"
+P2309,relation,"qualifier to define a property constraint in combination with P2302. Possibly values are: ""instance of"", ""subclass of"" or ""instance or subclass of"". The qualifier to use with the property ""relative"" is ""type of kinship"" (P1039), not this."
+P2310,minimum date (property constraint),"qualifier to define a property constraint in combination with ""property constraint"" (P2302)"
+P2311,maximum date (property constraint),"qualifier to define a property constraint in combination with ""property constraint"" (P2302). Use ""unknown value"" for current date."
+P2312,maximum value,"qualifier to define a property constraint in combination with P2302. ""no value"" can be used to specify no upper bound"
+P2313,minimum value,qualifier to define a property constraint in combination with P2302
+P2315,comment (DEPRECATED),"to be deleted: replace with ""syntax clarification"" (P2916) or add the usage note in the items description."
+P2316,constraint status,"qualifier to define a property constraint in combination with P2302. Use values ""mandatory constraint"" or ""suggestion constraint"""
+P2317,call sign,short form identifier for a radio operator or broadcaster and (as flag signal) previous for watercrafts
+P2318,debut participant,participant for whom this is their debut appearance in a series of events
+P2319,elector,people or other entities which are qualified to participate in the subject election
+P2320,aftershocks,number of smaller earthquakes which follow a significant earthquake
+P2321,general classification of race participants,classification of race participants
+P2322,article ID,identifier for an article in an online publication
+P2323,Swedish Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at SOK.se, a website of the Swedish Olympic Committee (Swedish: Sveriges Olympiska Kommitt)"
+P2324,quantity buried,number of remains buried or interred
+P2325,mean anomaly,element of orbital definition
+P2326,GNS Unique Feature ID,identifier for geographic entities according to the National Geospatial-Intelligence Agency's GEOnet Names Server
+P2327,ProCyclingStats race ID,
+P2328,ProCyclingStats team ID,
+P2329,antagonist muscle,
+P2330,Cycling Archives race ID,identifier in the Cycling Archives
+P2331,Cycling Archives team ID,identifier in the Cycling Archives
+P2332,Dictionary of Art Historians ID,identifier for a person in the Dictionary of Art Historians
+P2333,Norwegian organisation number,"organisation's purely numerical identifier in the Norwegian ""Central Coordinating Register for Legal Entities"""
+P2334,Swedish Film Database film ID,identifier for a movie on the Swedish Film Database (SFDb)
+P2335,Swedish Film Database company ID,company identifier in the Swedish Film Database (SFDb)
+P2336,Swedish Film Database soundtrack ID,soundtrack identifier in the Swedish Film Database (SFDb)
+P2337,Swedish Film Database group ID,group identifier in the Swedish Film Database (SFDb)
+P2338,Musopen composer ID,identifier for a composer in the musopen.org database
+P2339,BoardGameGeek ID,identifier for a board game in the BoardGameGeek database
+P2340,CESAR person ID,identifier for a person in the CESAR database of French theatre of the seventeenth and eighteenth centuries
+P2341,indigenous to,"place that a language, folk dance, cooking style, food, species or other cultural expression is found (or was originally found)"
+P2342,AGORHA person/institution ID,identifier for a person or institution in the Agorha database (INHA)
+P2343,playing range image,image showing the playing range of the instrument
+P2344,AGORHA work ID,Identifier for historical art resources
+P2345,AGORHA event identifier,
+P2346,Elonet movie ID,identifier for a movie in the Elonet database
+P2347,YSO ID,identifier for a concept in the General Finnish Ontology YSO
+P2348,time period,"time period (historic period or era, sports season, theatre season, legislative period etc.) in which the subject occurred"
+P2349,Stuttgart Database of Scientific Illustrators ID,"identifier for a person, in the University of Stuttgart's Database of Scientific Illustrators, 1450Ð1950"
+P2350,SpeedSkatingBase.eu ID,identifier for a speed skater in the Speedskatingbase.eu database with personal best distance records
+P2351,number of graves,number of burial places In a cemetery or necropolis
+P2352,applies to taxon,"qualifier for toxicological concentrations and doses, indicates species in which the drug was tested"
+P2353,statistical unit,member of a dataset
+P2354,has list,Wikimedia list related to this subject
+P2355,UNESCO Atlas of the World's Languages in Danger ID,identifier for endangered languages listed by UNESCO
+P2357,Classification of Instructional Programs code,code representing academic disciplines in the U.S. Department of Education's Classification of Instructional Programs
+P2358,Roman praenomen,"standard part of the name of a Roman, link to items for specific Roman praenomen only."
+P2359,Roman nomen gentilicium,"standard part of the name of a Roman, link to items about the Roman gens only"
+P2360,intended public,"this work, product, object or event is intended for, or has been designed to that person or group of people, animals, plants, etc"
+P2361,online service,online service or online service provider tied to an item
+P2362,time to altitude,"time required by the subject to reach the specified altitude, from sea level"
+P2363,NMHH film rating,rating of a film in the Hungarian film rating system
+P2364,production code,production code of a television episode
+P2365,Roman cognomen,"standard part of the name of a Roman, link to items about specific Roman cognomen only."
+P2366,Roman agnomen,"optional part of the name of a Roman, link to items about specific Roman agnomen only."
+P2367,Australian Stratigraphic Units Database ID,identifier for a stratigraphic unit listed in the Australian Stratigraphic Units Database
+P2368,Sandbox-Property,"Sandbox property for value of property type ""Property"""
+P2369,Soccerway player ID,player id on the Soccerway website
+P2370,conversion to SI unit,conversion of the unit into a coherent SI unit
+P2371,FAO risk status,UN Food and Agriculture Organization designation of status for a domesticated breed
+P2372,ODIS ID,identifier in the Belgian ODIS database
+P2373,Genius artist ID,identifier for an artist or label on Genius
+P2374,natural abundance,"relative proportion of an isotope as found in nature (Earth's crust, or other location with qualifiers)"
+P2375,has superpartner,"partner particle, in supersymmetry; inverse of ""superpartner of"""
+P2376,superpartner of,"partner particle, in supersymmetry; inverse of ""has superpartner"""
+P2377,MediaWiki hooks used,MediaWiki hooks used by this extension
+P2378,issued by,"organisation or other agent that issues or allocates an identifier, code, classification number, etc."
+P2379,deprecated in version,software version it was deprecated in
+P2380,French Sculpture Census artist ID,identifier in the French Sculpture Census
+P2381,Academic Tree ID,identifer on academictree.org
+P2382,Chemins de mmoire ID,
+P2383,CTHS person ID,identifier for a person in the directory of French learned societies
+P2384,statement describes,formalization of the statement contains a bound variable in this class
+P2385,French diocesan architects ID,identifier for a person in the French diocesan architects index
+P2386,diameter,diameter of a circular or spherical object
+P2387,Elonet person ID,identifier for a person in the Elonet database
+P2388,office held by head of the organization,position of the head of this item
+P2389,organization directed by the office or position,organization which is directed by this office
+P2390,Ballotpedia ID,title of corresponding article on the Ballotpedia encyclopedia of American politics
+P2391,OKPO ID,"identifier for a company, in the Russian National Classifier of Enterprises and Organizations (OKPO) database"
+P2392,teaching method,teaching method adopted by an educational institution
+P2393,NCBI locus tag,unique gene identifier that can be used for any species of organism
+P2394,MGI Gene Symbol,official gene symbol for a mouse gene
+P2396,image of function,set of values that a mathematical function actually takes
+P2397,YouTube channel ID,ID of the YouTube channel of a person or organisation (not to be confused with the name of the channel) The ID can also be used for music.youtube.com IDs.
+P2398,MLS player ID,"identifier for soccer player profile on MLSsoccer.com, website of Major League Soccer"
+P2399,British Council artist ID,"identifier for an artist, in the catalogue of the British Council"
+P2400,JMDb film ID,film IDs on Japanese Movie Database
+P2401,Six Degrees of Francis Bacon ID,identifier in the Six Degrees of Francis Bacon database
+P2402,total expenditure,"amount of spending by this public or private entity, not to be confused with fiscal expenditure"
+P2403,total assets,value of assets held by a private or public entity
+P2404,time-weighted average exposure limit,recommended or required concentration limit for chemical exposure in a workplace in a given work day
+P2405,ceiling exposure limit,recommended or required maximum concentration for chemical exposure in a given work day
+P2406,maximum peak exposure limit,recommended or required maximum concentration for chemical exposure during a five-minute excursion within a certain period of hours
+P2407,short-term exposure limit,recommended or required concentration limit for chemical exposure during a brief time window
+P2408,set in period,"historical, contemporary, or future period, year, century or day the work or genre is set in or event featured in the story of the work"
+P2409,CiNii article ID,identifier for an article in CiNii
+P2410,WikiPathways ID,describes in which biological pathways a biological entity occurs
+P2411,Artsy gene,"generalization of artwork type, technique, material, genre, movement, etc. from artsy.net"
+P2412,FMD designer ID,external link to a designer's profile at the FMD (Fashion Model Directory) website
+P2413,FMD magazine ID,external link to a magazine profile at the FMD (Fashion Model Directory) website
+P2414,substrate of,substrate that an enzyme acts upon to create a product
+P2415,personal best,an individual's best performance in a given discipline
+P2416,sports discipline competed in,discipline an athlete competed in within a sport
+P2417,stage classification,stage results and ranking of a stage race
+P2418,Structurae person ID,identifier for a person in the Structurae database
+P2421,Prosopographia Attica,identifier for a person in Prosopographia Attica (Q2113277) by Johannes Kirchner (Q1697841)
+P2423,International Fencing Federation fencer ID,Identifier in the database of all fencers holding an international licence at the International Fencing Federation (FIE: Fdration Internationale d'Escrime)
+P2424,Berlin cultural heritage ID,identifer for an object in the cultural heritage database of Berlin
+P2425,service ribbon image,"an image depicting the ribbon associated with a medal, order, etc."
+P2426,Xeno-canto species ID,identifier of a bird species in the Xeno-canto database
+P2427,GRID ID,institutional identifier from the GRID.ac global research identifier database
+P2428,RePEc Short-ID,identifier for a researcher in the RePEc (Research Papers in Economics) and IDEAS database
+P2429,expected completeness,describes whether a property is intended to represent a complete set of real-world items having that property
+P2430,takeoff roll,distance required for an aircraft to take off (usually measured to the point where the aircraft reaches 50 feet)
+P2431,Thyssen-Bornemisza artist ID,identifier assigned to an artist by the Thyssen-Bornemisza Museum
+P2432,J. Paul Getty Museum artist ID,identifier assigned to an artist by the J. Paul Getty Museum
+P2433,gender of a scientific name of a genus,"determines the correct form of some names of species and subdivisions of species, also subdivisions of a genus"
+P2434,Panarctic Flora ID,identifier for a taxon in the Panarctic Flora
+P2435,PORT person ID,PORT-network film database: identifier for a person
+P2436,voltage,difference in electric potential between two points (indicated in volt)
+P2437,number of seasons,number of seasons a television or radio series has had
+P2438,narrator,"narrator, character or person that tells the story"
+P2440,transliteration,conversion of text to alternate script (use as a qualifier for monolingual text statements; please use specific property if possible)
+P2441,literal translation,"direct or word-for-word translation of a name or phrase (qualifier for name, title, inscription, and quotation properties)"
+P2442,conversion to standard unit,translation of the value of a measurement to different units
+P2443,stage reached,ultimate point in an event or competition reached by a participant
+P2444,homoglyph,"letter, number, or character which appears similar to another"
+P2445,metasubclass of,relation between two metaclasses: instances of this metaclass are likely to be subclasses of classes that are instances of the target metaclass
+P2446,Transfermarkt player ID,identifier for an association football (soccer) player in the transfermarkt.com database
+P2447,Transfermarkt manager ID,identifier for an association football (soccer) manager or coach in the transfermarkt.com database
+P2448,Turkish Football Federation player ID,identifier for a player in the Turkish Football Federation's database
+P2449,Turkish Football Federation coach ID,identifier for a coach or manager in the Turkish Football Federation's database
+P2450,Encyclop¾dia Britannica contributor ID,identifier for a contributor to the 'Encyclop¾dia Britannica'
+P2451,MAME ROM name,name of Multiple Arcade Machine Emulator ROM for a software release
+P2452,GeoNames feature code,"identifier for feature classes in GeoNames, NGA"
+P2453,nominee,qualifier used with Çnominated forÈ to specify which person or organization was nominated
+P2454,KNAW past member ID,identifier for a person in the Royal Netherlands Academy of Arts and Sciences past member database
+P2455,Species Profile and Threats Database ID,identifier from Species Profile and Threats Database managed by Australian Government Department of the Environment
+P2456,DBLP author ID,identifier for author entries in the DBLP computer science bibliography (use portion of DBLP person key after pid/)
+P2457,Australian National Shipwreck ID,identifier for shipwrecks used by the Australian National Shipwreck Database
+P2458,Mackolik.com player ID,ID for an association football (soccer) player in the Turkish Mackolik.com database
+P2459,IBU biathlete ID,biathlete's identifier in the International Biathlon Union's database
+P2460,Persons of Ancient Athens,identifier for a person in Persons of Ancient Athens (Q21994990) by John S. Traill (Q13422797)
+P2461,ComLaw ID,"identifier for Commonwealth of Australia legislation, bills, regulations, etc, in the ComLaw database"
+P2462,member of the deme,name of the deme in Ancient Attica to which the item belonged
+P2463,elibrary.ru organisation ID,"identifier for an organization in the elibrary.ru database of science, education, and government organisations in Russia"
+P2464,BugGuide taxon ID,identifier in BugGuide.net
+P2465,Allcinema film ID,film IDs on Allcinema Movie Database
+P2467,Global Geoparks Network ID (former scheme),identifier for a geopark on the Global Geoparks Network's website
+P2468,Theatricalia theatre ID,identifier for a theatre in the theatricalia.com database
+P2469,Theatricalia person ID,identifier for a person in the Theatricalia database
+P2470,Talouselmn vaikuttajat ID,"identifer for a person, in the Talouselmn vaikuttajat database"
+P2471,Models.com person ID,identifier of a person in the Models.com website
+P2472,ACMA Radiocommunications Client Number,identifier of an organisation or person who holds a radiocommunications licence within Australia
+P2473,IGPCV ID,cultural heritage identifier in the Inventario General del Patrimonio Cultural Valenciano
+P2474,CDLI ID,unique identifier of an object in the Cuneiform Digital Library Initiative
+P2475,NAVA ID,"identifier of a work, in the National Audiovisual Archive of Hungary"
+P2476,HNI person/institution ID,identifier for a person or organization in the database of Het Nieuwe Instituut
+P2477,BDRC Resource ID,identifier for an entity (person/place/work/position/topic) from the Buddhist Digital Resource Center
+P2478,Railways Archive event ID,Event ID in the Railways Archive database
+P2479,SPDX license ID,SPDX license identifier
+P2480,IHO Hydrographic Dictionary (S-32) Number,"Identification number for items in the Hydrographic Dictionary S-32, issued by International Hydrographic Organization (IHO)"
+P2481,Elite Prospects player ID,ice hockey player ID assigned by Elite Prospects
+P2482,SABR person ID,identifier of a person in the Society for American Baseball Research database
+P2483,NCES district ID,identifier for a school district or education agency in the United States
+P2484,NCES school ID,identifier for a public school in the United States
+P2485,FMD photographer ID,external link to a photographer's profile at the FMD (Fashion Model Directory) website
+P2486,FMD brand ID,external link to a brand's profile at the FMD (Fashion Model Directory) website
+P2487,page at website of Belarus Geocenter,state centre of cartographic and geodetic materials and data of the Republic of Belarus
+P2488,page at Belarus Globe website,
+P2489,hram.by ID,internet page corresponding to Orthodox architectural sites in Belarus
+P2490,page at OSTIS Belarus Wiki,
+P2491,Radzima.org ID,"identifier in the Radzima.org database of landmarks and tourist attractions of Belarus, Lithuania and the Podlasie region of Poland"
+P2492,MTMT author ID,author's identifier in the Hungarian Scientific Bibliography
+P2493,OM institution ID,identifier of primary and secondary schools at the Hungarian Ministry of Education
+P2494,Latvian cultural heritage register ID,ID of the cultural heritage on https://is.mantojums.lv/
+P2496,Latvian toponymic names database ID,Latvian Geospatial Information Agency geographical names database identifier
+P2497,Latvian National Address Register ID,National Address Register classifier code (State Land Service of the Republic of Latvia)
+P2498,Catalan Biographical Dictionary of Women ID,identifier in the biographical dictionary of Catalan women
+P2499,league level above,the league above this sports league
+P2500,league level below,the league below this sports league
+P2501,results,results of a competition such as sports or elections
+P2502,classification of race,race for which this classification applies
+P2503,Historical Gazetteer (GOV) ID,Historical Gazetteer
+P2504,Norwegian municipality number,unique identifier for municipalities of Norway
+P2505,carries,"item (e.g. road, railway, canal) carried by a bridge, a tunnel or a mountain pass"
+P2506,INSEE canton code,number sequence for the identification of canton in France
+P2507,corrigendum / erratum,published notice that corrects or amends a previous publication
+P2508,KINENOTE film ID,identifier of a film in the KINENOTE movie database
+P2509,Movie Walker film ID,"identifier of a film in the Movie Walker Database. Format: ""mv"" followed by digits"
+P2510,National Discography of Italian Song artist/group ID,artist or music group identity code on the National Discography of Italian Song website
+P2511,MSK Gent work PID,"identifier for an artwork from the collection of the Museum of Fine Arts, Ghent"
+P2512,series spin-off,series' spin-offs
+P2513,Jamendo album ID,identifier for an album per the Jamendo website
+P2514,Jamendo artist ID,identifier for an artist per the Jamendo website
+P2515,costume designer,"person who designed the costumes for a film, television programme, etc"
+P2516,Australian Ramsar site ID,identifier of a Ramsar wetland listed in the Australian Wetlands Database managed by the Australian Government Department of the Environment
+P2517,category for recipients of this award,link to Wikimedia category for recipients of this award
+P2518,Scope.dk film ID,identifier for a film on the website Scope.dk
+P2519,Scope.dk person ID,identifier for a person on the website Scope.dk
+P2520,UNESCO Biosphere Reserve URL,URL to the entry on the UNESCO biosphere reserve website
+P2521,female form of label,female form of name or title
+P2522,victory,competition or event won by the subject
+P2524,SEED number,"identifier for a school in Scotland, in the Scottish Government's SEED database"
+P2525,Ramsar Sites Information Service ID,identifier on the Ramsar Sites Information Service of a Ramsar site
+P2526,National Historic Sites of Canada ID,the unique identificator of a National Historic Sites of Canada on the Directory of Federal Heritage Designations
+P2527,earthquake magnitude on the moment magnitude scale,magnitude of an earthquake according to the moment magnitude scale
+P2528,earthquake magnitude on the Richter magnitude scale,magnitude of an earthquake according to the Richter magnitude scale
+P2529,?SFD film ID,identifier for a movie in the Czech film database ?SFD
+P2530,Box Office Mojo franchise ID (former scheme),former identifier of a franchise in the Box Office Mojo database
+P2531,Box Office Mojo studio ID,former identifier for a film studio in the Box Office Mojo database; data has been moved to IMDBPro
+P2532,lowest atmospheric pressure,minimum pressure measured or estimated for a storm (a measure of strength for tropical cyclones)
+P2533,WomenWriters ID,identifier in the Women Writers database of the Huygens Institute for Dutch History
+P2534,defining formula,mathematical formula representing a theorem or law. Maximum length: 400 characters
+P2535,Sandbox-Mathematical expression,"Sandbox property for value of type ""Mathematical expression"""
+P2536,Sandbox-External identifier,"Sandbox property for value of type ""External identifier"""
+P2537,Free Software Directory entry,Link to the FSD page on a given software or license
+P2538,Nationalmuseum Sweden ID,identifier for Nationalmuseum in Sweden
+P2539,Nationalmuseum Sweden artwork ID,artwork identifier for Nationalmuseum in Sweden
+P2540,AarneÐThompsonÐUther Tale Type Index,index used to classify folktales
+P2541,operating area,"geographic area or jurisdiction an organisation or industry operates in, serves, or has responsibility for"
+P2542,acceptable daily intake,"estimate of the amount of a food additive, expressed on a body weight basis, that can be ingested daily over a lifetime without appreciable health risk"
+P2545,bowling style,type of bowling employed by a cricketer
+P2546,sidekick of,close companion of a fictional character
+P2547,perimeter,linear distance around the outside of an object
+P2548,strand orientation,orientation of gene on double stranded DNA molecule
+P2549,Italian Senate of the Republic ID,identifier for incumbent and former senators from the Italian Senate of the Republic
+P2550,recording or performance of,item is a recording or release of this composition
+P2551,used metre,rhythmic structure of the poetic text or musical piece
+P2552,quantitative metrical pattern,description of a quantitative verse's metric
+P2553,in work,qualifier of award received and nominated for (P1411) to specify in which creative work the awarded or nominated creative work appeared causing the nomination/award win
+P2554,production designer,"person(s) responsible for overall aesthetic of the story of this motion picture, play, video game or similar; responsible for visual concept, producing interior, exterior, location, graphics, etc; deals with many and varied logistic related to this"
+P2555,fee,"fee or toll payable to use, transit or enter the subject (only for one-time fees, do NOT use it for an ongoing fee, tuition fee or trading fee)"
+P2556,bore,"cylinder bore represents the size, in terms of diameter, of the cylinder in which a piston travels"
+P2557,stroke,length of the motion in reciprocating engines and other mechanisms
+P2558,autores.uy ID,"unique identifier of Uruguayan authors and artistic, scientific or literary works"
+P2559,Wikidata usage instructions,"text describing how to use a property or item. Eventually, this statement is to replace usage instructions currently found in description. Until the corresponding feature is implemented, do not remove it from description"
+P2560,GPU,graphics processing unit within a system
+P2561,name,"name the subject is known by. If a more specific property is available, use that"
+P2562,married name,name or surname adopted by a person upon marriage
+P2563,superhuman feature or ability,"superhuman, supernatural, or paranormal abilities that the fictional subject exhibits"
+P2564,Kppen climate classification,indicates the characteristic climate of a place
+P2565,global warming potential,heat trapped by a certain gas in CO2 equivalents
+P2566,ECHA Substance Infocard ID,identifier of a chemical substance used by the European Chemicals Agency (ECHA)
+P2567,amended by,document is amended by specified other document
+P2568,repealed by,document is repealed/inactived by specified other document
+P2571,uncertainty corresponds to,number of standard deviations (sigma) expressing the confidence level of a value
+P2572,hashtag,"hashtag associated with this item. Format: do not include the ""#"" symbol"
+P2573,number of out-of-school children,number of out-of-school children reported for a place
+P2574,National-Football-Teams.com player ID,"identifier for a football player, at National-Football-Teams.com"
+P2575,measures,physical quantity that this device measures
+P2576,UCSC Genome Browser assembly ID,identifier of a UCSC's release of a genome
+P2577,admissible rule in,this logic inference rule is admissible in that logical system
+P2578,studies,"the object that an academic field studies; distinct from field of work (P101), which is used for human, organization, etc."
+P2579,studied by,subject is studied by this science or domain
+P2581,BabelNet ID,ID in BabelNet encyclopedic dictionary
+P2582,J. Paul Getty Museum object ID,identifier for an object in the J. Paul Getty Museum
+P2583,distance from Earth,estimated distance to astronomical objects
+P2584,Australian Wetlands Code,identifier of a wetland listed in the Australian Wetlands Database Directory of Important Wetlands managed by the Australian Government Department of the Environment
+P2585,INSEE region code,number sequence for the identification of regions in France
+P2586,INSEE department code,number sequence for the identification of departments in France
+P2587,has phoneme,the language's phonology includes this sound
+P2588,administrative code of Indonesia,"unique administrative code for a place, last issued in 2022 by the Ministry of Home Affairs of Republic of Indonesia"
+P2589,Statistics Indonesia ethnicity code,ethnicity code in Indonesia by Statistics Indonesia (Badan Pusat Statistik)
+P2590,Statistics Indonesia language code,language code in Indonesia issued by Statistics Indonesia (Badan Pusat Statistik)
+P2591,grammatical option indicates,what a particular option for a grammatical category indicates
+P2592,Qubec cultural heritage directory people identifier,people listed on the Rpertoire du patrimoine culturel du Qubec
+P2593,Latvian Olympic Committee athlete ID (archived),"identifier for an athlete (sportsperson) at olimpiade.lv, a website of the Latvian Olympic Committee (Latvian: Latvijas Olimpisk? Komiteja, LOK)"
+P2595,maximum gradient,"maximum gradient on a route, expressed as a percentage"
+P2596,culture,human culture or people (or several cultures) associated with this item
+P2597,Gram staining,Gram stain type of a bacterial strain
+P2598,serial number,an identifier for a specific object among the same product. Not a product code or model number
+P2599,block size,size of block for this block cipher or hash function
+P2600,Geni.com profile ID,profile on the Geni.com genealogy website
+P2601,Eurohockey.com player ID,identifier for an ice hockey player in the database of Eurohockey.com
+P2602,HockeyDB.com player ID,identifier for an ice hockey player in the Internet Hockey Database
+P2603,Kinopoisk film ID,identifier for a film/movie in the Russian Kinopoisk.ru database
+P2604,Kinopoisk person ID,identifier for a person in the Kinopoisk.ru database
+P2605,?SFD person ID,identifier for a person in the Czecho-Slovak film database ?SFD
+P2606,PlayStation ID,unique identifier of PlayStation software and hardware assigned by Sony Computer Entertainment Inc.
+P2607,BookBrainz author ID,identifier for a creator per the BookBrainz open book encyclopedia
+P2610,thickness,extent from one surface to the opposite
+P2611,TED speaker ID,identifier of a person in the TED database of talks
+P2612,TED topic ID,"identifier of a topic, in the TED database of talks"
+P2613,TED talk ID,"identifier of a talk, in the TED database"
+P2614,World Heritage criteria,selection criteria for UNESCO's cultural and natural 'World Heritage' designation since 2005
+P2618,inHerit Place Number,"identifier for a heritage place, issued by the State Heritage Office of Western Australia"
+P2619,Hungarian company ID,identifier for a company in the company register of Hungary
+P2620,ISO 15924 numeric code,numeric code for a writing system in ISO 15924
+P2621,Site of Special Scientific Interest (England) ID,identifier for Sites of Special Scientific Interest (SSSIs) in England
+P2622,Companies House company ID,numeric identifier for company registered with Companies House in the United Kingdom
+P2623,MEK ID,identifier of a book or translation in the Hungarian Electronic Library
+P2624,MetroLyrics ID,identifier for a song or artist at the MetroLyrics website (discontinued as of June 2021)
+P2625,PASE ID,numerical identifier for a person in the Prosopography of Anglo-Saxon England
+P2626,Danish National Filmography person ID,identifier for a person in the Danish National Filmography
+P2627,ISO 9362 SWIFT/BIC code,Identifier ISO 9362 SWIFT/BIC code
+P2628,German tax authority ID,"numerical identifier for a local German tax office; forms part of the Steuernummer, assigned to individual taxpayers by that authority"
+P2629,BBFC rating,"British media content rating (add BBFC reference with qualifier ""P2676"")"
+P2630,cost of damage,monetary value of damage caused by this event
+P2631,TCM Movie Database film ID,identifier for a film in the Turner Classic Movies movie database
+P2632,place of detention,place where this person is or was detained
+P2633,geography of topic,"item that deals with the geography of the subject. Sample: ""Rio de Janeiro"" uses this property with value ""geography of Rio de Janeiro"" (Q10288853). For the location of a subject, use ""location"" (P276)."
+P2634,model,"person who appears in an artwork or photograph, in the role of an artist's model, rather than subject"
+P2635,number of parts of this work,the number of parts that a work consists of
+P2636,Minkultury film ID,identifier for a movie in the Russian Ministry of culture's public register of films
+P2637,RARS rating,rating in the Russian media content rating system
+P2638,TV.com ID,"identifier for an entry on TV.com for movies, people and TV series"
+P2639,Filmportal ID,identifier of the German Filmportal.de
+P2640,Swimrankings.net swimmer ID,"identifier for a swimmer, in the Swimrankings.net database"
+P2641,Davis Cup player ID,"identifier for a tennis player, in the Davis Cup database"
+P2642,Billie Jean Cup player ID,"identifier for a women's tennis player, in the Fed Cup database. Format: 9 digits"
+P2643,Carnegie Classification of Institutions of Higher Education,classification of colleges and universities in the United States
+P2645,mean lifetime,inverse of exponential decay rate; half-life is ln(2) times this value
+P2646,mirTarBase ID,"identifier for the mirTarBase database, a database for microRNAs and their targets"
+P2647,source of material,"place the material used was mined, quarried, found, or produced"
+P2648,CQ Ranking men's race ID,identifier for a men's cycling race at cqranking.com
+P2649,CQ Ranking men's team URL,URL for a men's cycling team at cqranking.com
+P2650,interested in,item of special or vested interest to this person or organisation
+P2651,CRICOS Provider Code,unique identifier for Australian education providers assigned by the Commonwealth Register of Institutions and Courses for Overseas Students (CRICOS)
+P2652,partnership with,partnership (commercial or/and non-commercial) between this organization and another organization or institution
+P2655,Estyn ID,"identifier for a school in Wales, in the Welsh Assembly's Estyn database"
+P2657,EU Transparency Register ID,"identity code for an organisation, in the transparency register of the European Union"
+P2658,Scoville grade,"scale measuring pungency of chili peppers (values from 0 to 16,000,000,000)"
+P2659,topographic isolation,minimum distance to a point of higher elevation
+P2660,topographic prominence,"height of a mountain or hill relative to the lowest contour line encircling it (on Earth, maximum 8,848 m)"
+P2661,target interest rate,benchmark interest rate of the central bank
+P2662,consumption rate per capita,rate of consumption of a product divided by the population
+P2663,common equity tier 1 capital ratio (CETI),relation between the core capital or shareholder's equity of a Bank and its risk-weighted assets
+P2664,units sold,sales figures of an object
+P2665,alcohol by volume,percentage of alcohol in a fluid
+P2666,Datahub page,Datahub page of a dataset
+P2667,corresponding template,the one-value-template that has the same meaning as this property
+P2668,stability of property value,likelihood that statements with this property will change
+P2669,discontinued date,"date that the availability of a product was discontinued; see also ""dissolved, abolished or demolished"" (P576)"
+P2670,has part(s) of the class,the subject instance (the subject is not a class) has one or more parts of the object class
+P2671,Google Knowledge Graph ID,"identifier for Google Knowledge Graph API (application programming interface), starting with ""/g/"". IDs starting with ""/m/"" are Freebase IDs (P646)"
+P2672,SOATO ID,identifier for the Belarusian Code System for Administrative-territory Division Objects and Settlements
+P2673,next crossing upstream,"next crossing of this river, canal, etc. upstream of this subject"
+P2674,next crossing downstream,"next crossing of this river, canal, etc. downstream of this subject"
+P2675,reply to,the intellectual work to which the subsequent work is a direct reply
+P2676,rating certificate ID,reference certificate identifier of content rating decisions
+P2677,relative position within image,"position of a motif within a larger image, defined by x-offset (from left), y-offset (down from top), width w, and height h of the crop region (as a percentage of the whole image) values"
+P2678,Russiancinema.ru film ID,id number for films in Russiancinema.ru
+P2679,author of foreword,"person who wrote the preface, foreword, or introduction of the book but who isn't an author of the rest of the book"
+P2680,author of afterword,"person who wrote the postface, afterword, or conclusion of the book but who isn't an author of the rest of the book"
+P2681,is recto of,the two-dimensional artwork that is on the back (verso) side of this artwork
+P2682,is verso of,the two-dimensional artwork that is on the front (recto) side of this artwork
+P2683,Bekker Number,reference to works in the Corpus Aristotelicum
+P2684,Kijkwijzer rating,Dutch media content rating system
+P2685,Basketball-Reference.com NBA player ID,identifier for a NBA player on the Basketball Reference website
+P2686,OpenSecrets people ID,identifier used by Opensecrets for people involved in US elections
+P2687,NDL JPNO,Japanese National Bibliography Number of the National Diet Library
+P2688,Box Office Mojo person ID,former identifier of a person in the Box Office Mojo database; data has been moved to IMDBPro
+P2689,BARTOC ID,identifier in the BARTOC Terminology Registry
+P2694,ISU figure skater ID,identifier for a figure skater in the International Skating Union database
+P2695,type locality (geology),"the locality where a particular rock type, stratigraphic unit or mineral species is defined from (can coincide but not the same as p189)"
+P2696,FIG gymnast licence number,gymnast's identifier at the database of the International Federation of Gymnastics
+P2697,ESPNcricinfo.com player ID,identifier for a cricket player at ESPNcricinfo.com
+P2698,CricketArchive player ID,identifier for a person in the CricketArchive.com database
+P2699,URL,location of a resource
+P2700,protocol,communication protocol to use to access a dataset or service
+P2701,file format,"file format, compression type, or ontology used in a file"
+P2702,dataset distribution,particular manner of distribution of a data set (database or file) that is publicly available
+P2703,BFI National Archive work ID,"identifier for (creative) works and objects (moving image, documents, stills, posters, designs, books, articles) in the BFI's Collections Information Database (CID)"
+P2704,EIDR content ID,"identifier for a film or television work, edit or manifestation, in the Entertainment Identifier Registry"
+P2705,Karate Records ID,identifier for karatekas in the Karate Records database
+P2708,CQ Ranking women's race ID,identifier for a women's cycling race at cqranking.com
+P2709,CQ Ranking female cyclist ID,identifier for a female cyclist at cqranking.com
+P2710,minimal lethal concentration,lowest concentration of a toxic substance in an environmental medium that kills individual organisms or test species under a defined set of conditions
+P2712,median lethal concentration (LC50),statistically derived median concentration of a substance in an environmental medium expected to kill 50% of organisms in a given population under a defined set of conditions
+P2713,sectional view,image file that shows a sectional view of the item
+P2715,elected in,"election in which a person gained a position (as qualifier), or a position or legislative term is/was elected (as main value)"
+P2716,collage image,image file that assembles two or more other images of item
+P2717,no-observed-adverse-effect level,"greatest concentration or amount of a substance, found by experiment or observation, which causes no detectable adverse alteration of morphology, functional capacity, growth, development, or life span of the target organism under defined conditions of exposure"
+P2718,lowest-observed-adverse-effect level,"lowest concentration or amount of a substance (dose), found by experiment or observation, which causes an adverse effect on morphology, functional capacity, growth, development, or life span of a target organism distinguishable from normal (control) organisms of the same species and strain under defined conditions of exposure"
+P2719,Hungarian-style transcription,"transcription of a monolingual text value in a non-latin script according to the guidelines of the Research Institute for Linguistics of the Hungarian Academy of Sciences (Q7315098), Helyesrs (Q1035212), and Hungarian Wikipedia (Q53464)"
+P2720,embed URL template,"formatter URL for embeddable content: URI template from which ""$1"" can be automatically replaced with the effective property value on items"
+P2721,Encyclopaedia Metallum release ID,identifier for a release in the Encyclopaedia Metallum database
+P2722,Deezer artist ID,identifier for an artist on Deezer
+P2723,Deezer album ID,identifier for an album or single on Deezer
+P2724,Deezer track ID,identifier for a track on Deezer
+P2725,GOG application ID,identifier for an application (or film) available from the distribution platform GOG.com
+P2726,UIPM athlete ID,"identifier for a athlete, in the Union Internationale de Pentathlon Moderne database"
+P2727,United World Wrestling ID,identifier for an athlete in the United World Wrestling database
+P2728,CageMatch worker ID,identifier for a professional wrestling performer at www.cagematch.net
+P2729,BWF.tournamentsoftware.com player ID,Badminton World Federation identifier for a player profile at BWFbadminton.org (via BWF.tournamentsoftware.com)
+P2730,ISSF athlete ID,identifier for an athlete in the International Shooting Sport Federation database
+P2732,Perse author ID,"identifier for an author, in Perse"
+P2733,Perse journal ID,"identifier for a journal in Perse, an open access digital library of French-language scholarly journals, established by the Ministry of National Education of France"
+P2734,Unz Review author ID,"author identifier at The Unz Review (unz.org), a content-archiving website"
+P2735,Unz Review journal ID,"journal identifier at The Unz Review (unz.org), a content-archiving website"
+P2736,Biographical Directory of Federal Judges ID,identifier for a judge in the Biographical Directory of Federal Judges
+P2737,union of,every instance of this class is an instance of at least one class in that list of classes
+P2738,disjoint union of,every instance of this class is an instance of exactly one class in that list of classes
+P2739,typeface/font used,style of type used in a work
+P2740,ResearchGate institute ID,identifier of an organization in ResearchGate
+P2741,Tate artist ID,identifier of an artist in the Tate collection
+P2742,Australian Geological Provinces ID,identifier of a geologic province in the Australian Geological Provinces Database published by Geoscience Australia
+P2743,this zoological name is coordinate with,links coordinate zoological names
+P2744,PASE name,standardised name (including disambiguation number) given to a person in the Prosopography of Anglo-Saxon England
+P2745,Dictionary of New Zealand Biography ID,identifier in the Dictionary of New Zealand Biography
+P2746,production statistics,amount of a certain good produced in/by the item
+P2747,Filmiroda rating,rating of a film in the former (2004Ð2011) Hungarian film rating system
+P2748,PRONOM file format identifier,identifier (PUID) for a file format in the technical registry PRONOM
+P2749,PRONOM software ID,identifier (PUID) for software in the technical registry PRONOM
+P2750,Photographers' Identities Catalog ID,identifier used in Photographers' Identities Catalog
+P2751,Roller Coaster Database ID,identifier in Roller Coaster Database
+P2752,New Zealand Organisms Register ID,identifier for a taxon names in the New Zealand Organisms Register
+P2753,Dictionary of Canadian Biography ID,entry of the item in the Dictionary of Canadian Biography
+P2754,production date,"period of active production of (creative) work; the only date specified should refer to ending of production; production starts after pre-production stage (planning of work, marked with inception P571) and is followed by publication date (P577)"
+P2755,exploitation visa number,number of the exploitation visa of a movie in France
+P2756,EIRIN film rating,category in the Japanese film rating system (add EIRIN number with qualifier P2676)
+P2758,CNC film rating (France),category assigned to a film by the Board of Film Classification (CNC) which what audiences may view it in France
+P2759,AUSNUT food ID,"identifier of a food in the Australian Food, Supplement and Nutrient Database (AUSNUT) managed by Food Standards Australia New Zealand (FSANZ)"
+P2760,NUTTAB food ID,Identifier of a food within the Nutrient Tables for use in Australia (NUTTAB) which is managed by Food Standards Australia New Zealand (FSANZ)
+P2761,Research Papers in Economics Series handle,identifier of academic journals in Research Papers in Economics (RePEc)
+P2762,CTBUH Skyscraper Center building complex ID,identifier for a building complex as used on the CTBUH's www.skyscrapercenter.com
+P2763,Danish protected area ID,identifier for Danish protected area
+P2764,Wrestlingdata person ID,identifier for a professional wrestling performer on the Wrestlingdata database
+P2765,blue-style.com ID,"identifier at blue-style.com, database of skyscrapers and contemporary architecture in Japan"
+P2766,ISO 4063 process number,"identifier for a process, in the ISO-approved classification scheme for welding & soldering processes"
+P2767,JudoInside judoka ID,Identifier for a judoka at the JudoInside.com database
+P2768,BNE journal ID,"identifier for a journal in BNE's journals archive, an open access digital library of Spanish-language periodical publications, established by Biblioteca Nacional de Espaa"
+P2769,budget,"assigned monetary amount for a project (for the estimated cost of a film, also commonly referred to as budget, use P2130)"
+P2770,source of income,source of income of an organization or person
+P2771,D-U-N-S number,unique company identifier from Dun & Bradstreet
+P2772,FIS alpine skier ID,"identifier for an alpine skier, in the International Ski Federation database"
+P2773,FIS cross-country skier ID,"identifier for a cross-country skier, in the International Ski Federation database"
+P2774,FIS freestyle skier ID,"identifier for a freestyle skier, in the International Ski Federation database"
+P2775,FIS ski jumper ID,"identifier for a ski jumper, in the International Ski Federation database"
+P2776,FIS Nordic combined skier ID,"identifier for a Nordic combined skier, in the International Ski Federation database"
+P2777,FIS snowboarder ID,"identifier for a snowboarder, in the International Ski Federation database"
+P2778,IAT triathlete ID,identifier for a triathlete in the IAT (Institute for Applied Training Science / Institut fr Angewandte Trainingswissenschaft) database
+P2779,IAT weightlifter ID,identifier for a weightlifter in the IAT (Institute for Applied Training Science / Institut fr Angewandte Trainingswissenschaft) database
+P2780,IAT diver ID,identifier for a diver in the IAT (Institute for Applied Training Science / Institut fr Angewandte Trainingswissenschaft) database
+P2781,race time,officially recorded time elapsed in a sports race
+P2782,Models.com client ID,identifier of a client in models.com
+P2783,Danish listed buildings case ID,case number of a listed building in Denmark
+P2784,Mercalli intensity scale,measurement of the intensity of an earthquake
+P2786,aerodrome reference point,official coordinates for airport
+P2787,longest span,"length of the longest span of a bridge, a natural arch"
+P2788,Czech neighbourhood ID code,identifier for a neighbourhood in the Czech Republic
+P2789,connects with,item with which the item is physically connected
+P2790,net tonnage,dimensionless index calculated from the total moulded volume of the ship's cargo spaces by using a mathematical formula
+P2791,power consumed,electrical power consumed by an appliance
+P2792,ASF KID Cave Tag Number,unique identifier for caves within the Karst Index Database of the Australian Speleological Federation
+P2793,clearance,distance between surface under bridge and bottom of a bridge deck
+P2794,Index Hepaticarum ID,"identifier in the Index Hepaticarum, a nomenclatural database"
+P2795,directions,"describe how to find the subject - directions, objects along way, comments"
+P2796,3DMet ID,identifier of chemical compounds in 3DMet database
+P2797,sound power level,level of sound power at a reference value of 1 pW
+P2798,Loop ID,"identifier for a person, in the Loop database of researcher impact"
+P2799,BVMC person ID,identifier of an author on the Biblioteca Virtual Miguel de Cervantes
+P2800,Beach Volleyball Database ID,identifier for an athlete in the Beach Volleyball Database
+P2801,FIVB beach volleyball player ID,"identifier for a beach volleyball player, in the FIVB database"
+P2802,fleet or registration number,the fleet number or registration of the vehicle
+P2803,Wikidata time precision,"numeric value used by Wikidata to describe the corresponding time/date precision. There are 15 items with this property with values from 0 to 14 (second), year is 9."
+P2804,World Sailing member ID,member identifier for a sailor in the World Sailing database
+P2805,Goratings ID,goratings.org Go player identifier
+P2806,vibration,level of vibration measured
+P2807,molar volume,qualifier with e.g. P873
+P2808,wavelength,spatial period of a wave
+P2809,Australasian Pollen and Spore Atlas Code,"identifier for a pollen or spore in the Australasian Pollen and Spore Atlas, managed by the Australian National University"
+P2810,LPGA Tour golf player ID,"identifier for a golf player, in the LPGA database"
+P2811,PGA Tour golf player ID,"identifier for a golf player, in the PGA Tour database"
+P2812,MathWorld identifier,"identifier for entries in MathWorld, online mathematics reference work"
+P2813,house publication,"media that speaks for an organization or a movement, and that is usually edited by its members"
+P2814,P-number,Branch identifier from the Danish company register for linking physical sites to an organization
+P2815,ESR station code,unique railway station/operation point code used in USSR and later in former USSR countries
+P2816,HowLongToBeat ID,identifier of a video game at the website HowLongToBeat
+P2817,appears in the heritage monument list,heritage monument is a part of the list of heritage monuments
+P2818,Sherdog fighter ID,identifier of a mixed martial arts (MMA) fighter's profile page at Sherdog.com
+P2819,Yandex Music release ID,identifier for an album on Yandex Music
+P2820,cardinality of this set,measure of number of elements of a set
+P2821,by-product,"product of a chemical or industrial process, of secondary economic value"
+P2822,by-product of,chemical or industrial process which produces the item as a by-product
+P2823,Royal Belgian Football Association player ID,"identifier for a player, on the official Belgian football federation website"
+P2824,Gazetteer of Planetary Nomenclature ID,identifier of a feature on an astronomical body in the Gazetteer of Planetary Nomenclature
+P2825,via,"intermediate point on a journey - stopover location, waystation or routing point"
+P2826,Megogo ID,identifier for the film in the database Megogo
+P2827,flower color,"colour of flowers of a plant species, hybrid or cultivar"
+P2828,corporate officer,person who holds a specific position
+P2829,Internet Wrestling Database ID,identifier for a professional wrestling performer at the Internet Wrestling Database
+P2830,Online World of Wrestling ID,identifier for a professional wrestling performer or tag team at Online World of Wrestling
+P2831,totem,in many indigenous cultures an individual or group has a particular totem (e.g. a type of animal)
+P2832,Joint Electronics Type Designation Automated System designation,unclassified designator for United States military electronic equipment
+P2833,ARKive ID,"identifier for a taxon, in the ARKive database"
+P2834,individual tax rate,percentage tax rate on individuals by income
+P2835,lowest income threshold,"lowest income for which the tax rate applies, qualifier for P2834 (individual tax rate)"
+P2836,highest income threshold,"highest income for which the tax rate applies, qualifier for P2834 (individual tax rate)"
+P2838,professional name (Japan),name passed down by generation assumed by a master of a traditional Japanese art or sport such as kabuki or sumo
+P2839,gait,gait of an animal
+P2840,NSC number,numeric identifier for substances submitted to the National Cancer Institute (NCI) for testing and evaluation
+P2841,age of onset,age group in which disease manifestations appear
+P2842,place of marriage,"location where the marriage was celebrated. Use as qualifier for property ""spouse"" (P26)"
+P2843,Benezit ID,identifier in Benezit Dictionary of Artists
+P2844,incidence,probability of occurrence of a given condition in a population within a specified period of time
+P2845,RAN ID,identifier in National archaeological register of Romania
+P2846,wheelchair accessibility,describes wheelchair accessibility of location or event
+P2847,Google+ ID,"Google Plus, account identifier of this person or organization: either starting with a ""+"" or consisting of 21 digits"
+P2848,Wi-Fi access,internet access availability through Wi-Fi
+P2849,produced by,links a class of biological features (such as a biochemical compound) with another class of biological entities known to produce it
+P2850,Apple Music artist ID (U.S. version),identifier for a musical artist or author in the U.S. version of Apple Music
+P2851,payment types accepted,types of payment accepted by a venue
+P2852,emergency phone number,telephone number to contact emergency services
+P2853,electrical plug type,standard plug type for mains electricity in a country
+P2854,disease burden,"impact of a health problem as measured by financial cost, mortality, morbidity, or other indicators. It is often quantified in terms of quality-adjusted life years (QALYs) or disability-adjusted life years (DALYs)"
+P2855,VAT-rate,"percentage value-added tax in this country or region. Do not use for sales tax. For specialised rates, use qualifiers"
+P2856,EU Surface Water Body Code,unique EU identifier for a surface water body
+P2857,WWE.com superstar ID,identifier for a professional wrestling performer or tag team at WWE.com
+P2858,Killer List of Videogames ID,identifier in Killer List of Videogames
+P2859,X-SAMPA code,Extended Speech Assessment Methods Phonetic Alphabet (X-SAMPA) code for phoneme
+P2860,cites work,citation from one creative or scholarly work to another
+P2861,Leidse Hoogleraren ID,"identifier in the Leidse Hoogleraren, a catalogue of University Professors of Leiden University since 1575"
+P2862,Catalogus Professorum Academiae Rheno-Traiectinae ID,identifier for a professor at Utrecht University
+P2863,Nederlandse Molendatabase ID,"identifier of mills in the Nederlandse Molendatabase, with records of all functioning mills, windmills and watermills, in the Netherlands"
+P2864,OpenCritic ID,identifier for a video game on OpenCritic
+P2865,band number,identifier of First Nation in Canada
+P2866,Hollandsche Molen ID,"identifier of mills in ""Vereniging de Hollandsche Molen"", an organization that focuses on preservation of wind- and watermills in the Netherlands."
+P2867,Molenecho's ID,"identifier of mills in Molenecho's, a database on windmills and watermills in Belgium"
+P2868,subject has role,"role/generic identity of the item (""subject""), also in the context of a statement. For the role of the value of the statement (""object""), use P3831 (""object has role""). For acting roles, use P453 (""character role""). For persons, use P39."
+P2869,record or record progression,links to item on the record or record progression
+P2870,miRBase pre-miRNA ID,"identifier for pre-miRNAs in miRBase, the reference database for microRNAs"
+P2871,miRBase mature miRNA ID,"identifier for mature miRNAs in miRBase, the reference database for microRNAs"
+P2872,visitor centre,official tourist office of this destination
+P2873,time in space,time in space by an astronaut or cosmonaut
+P2874,PubChem BioAssay ID (AID),"central identifier in PubChem, used as accession number for biological and biochemical assays"
+P2875,property usage tracking category,category tracking a Wikidata property in sister projects
+P2876,type of unit for this property,units for this property are all instances of this item
+P2877,SureChEMBL ID,the chemical compound identifier for the EBI SureChEMBL 'chemical compounds in patents' database
+P2878,Minitel code,access code of a service on the Minitel Videotex
+P2879,Library of the National Congress of Argentina ID,identifier of a work in the National Library of Argentine Congress
+P2880,NIOSHTIC-2 ID,identifier in the NIOSHTIC-2 database run by National Institute for Occupational Safety and Health (part of US CDC)
+P2881,promoted,competitor or team relegated during competition
+P2882,relegated,competitor or team relegated during competition
+P2883,HKMDB film ID,identifier for a film at the HKMDB (Hong Kong Movie Database) website
+P2884,mains voltage,voltage of residential mains electricity in a country or region
+P2886,Shakeosphere person ID,identifier in the Shakeosphere database of the University of Iowa
+P2887,reserve number (Canada),identifier of a Canadian Indian reserve
+P2888,exact match,"URL used to link two items or properties, indicating a high degree of confidence that the concepts can be used interchangeably"
+P2889,FamilySearch person ID,ID of a person in familysearch.org
+P2892,UMLS CUI,NLM Unified Medical Language System (UMLS) controlled biomedical vocabulary unique identifier
+P2893,Skype username,username on the Skype instant messaging service
+P2894,day of week,"day of the week on which this item occurs, applies to or is valid"
+P2895,maximum sustained winds,maximum sustained wind evaluated by agency
+P2896,publication interval,standard publication interval for daily or periodical publications
+P2897,Eldoblaje Movie ID,"identifier of dubbing in the website eldoblaje.com, a database of Spanish dubbings"
+P2898,Swedish county letter,
+P2899,minimum age,"minimum age for, for example, movie certification"
+P2900,fax number,telephone number of a facsimile line
+P2903,Molendatabase verdwenen molens ID,identifier of former/disappeared mills in the Netherlands at the Molendatabase verdwenen molens
+P2904,Beer Advocate brewery ID,"identifier for a brewery, in the Beer Advocate database"
+P2905,RateBeer brewery ID,"identifier for a brewery, in the RateBeer database"
+P2907,UTC timezone offset,difference between Coordinated Universal Time (UTC) and this timezone
+P2908,SecondHandSongs work ID,"identifier for a creative work, in the SecondHandSongs database about covers and samplings"
+P2909,SecondHandSongs artist ID,identifier for an artist or group in the SecondHandSongs database
+P2910,icon,"pictogram suitable to represent the item. For logos of a subject, use ""logo image"" (P154); for favicons, use ""small logo or icon"" (P8972)"
+P2911,time gap,time gap to winner time (P2781)
+P2912,distinctive jersey,distinctive jersey held by a class or stage leader in a cycling competition
+P2913,date depicted,date represented in a work (for narrative works use P2408)
+P2914,MSBI person ID,"identifier of a person, in the Mapping the Practice and Profession of Sculpture in Britain and Ireland database"
+P2915,ECARTICO person ID,"identifier for a person, in the ECARTICO biographical database of the Dutch and Flemish Golden Ages"
+P2916,syntax clarification,"qualifier for P1793 (regular expression): to provide a textual description of the regex syntax of a value. Should be displayable after the text ""The value for the property should match"" and be followed by the regex."
+P2917,COAM structure ID,identifier of a building or structure of the city of Madrid in the Official Architects' Association of Madrid (COAM) database
+P2918,PO Box,"Post Office box number, as part of an address"
+P2919,label in sign language,"media file showing label of this item in sign language. Use ""language of work or name"" (P407) as qualifier to indicate which language"
+P2922,month of the year,"month of the year during which this item occurs, applies to or is valid in"
+P2923,focal height,height of the lamp of a lighthouse from water level
+P2924,Great Russian Encyclopedia Online ID,identifier for an entry on the official website of the Great Russian Encyclopedia
+P2925,domain of saint or deity,domain(s) which this saint or deity controls or protects
+P2926,InterPro ID,InterPro unique identifier
+P2927,water as percent of area,"which percentage of the territory of this item inside coast line and international bounderies is water. Use ""percent"" (Q11229) as unit"
+P2928,memory capacity,memory storage capacity of some data storage device
+P2929,lighthouse range,"the distance at which the light can be seen. If the light has colors, there will be several ranges, one for each color. Use qualifier ""color"" (P462)"
+P2930,INSPIRE-HEP author ID,"identifier for authors in INSPIRE-HEP, a major database for high energy physics"
+P2931,Encyclopedia of Triangle Centers identifier,"identifier for triangle centers used in the Encyclopedia of Triangle Centers, founded by Clark Kimberling"
+P2935,connector,connectors which the device has/supports
+P2936,language used,language widely used (spoken or written) in this place or at this event
+P2937,parliamentary term,term of a parliament or any deliberative assembly
+P2938,Pleiades category identifier,category (former place type) identifier in the Pleiades gazetteer
+P2939,CageMatch tag team ID,identifier for a professional wrestling tag team at www.cagematch.net
+P2940,Catalogus Professorum Rostochiensium ID,identifier in the Catalogus Professorum Rostochensium database on professors of the Rostock University from 1419 to present
+P2941,Munk's Roll ID,"identifier of a person, in the biographical website of the Royal College of Physicians, London"
+P2942,Dailymotion channel ID,"identifier of the Dailymotion channel of a person, or organization"
+P2943,warheroes.ru ID,"identifier of a person at warheroes.ru, awarded with title Hero of the Soviet Union or Hero of the Socialist Labour"
+P2944,Plarr ID,"identifier of a person, in the biographical website of the Royal College of Surgeons, London"
+P2945,British Book Trade Index ID,identifier for an individual or business entity listed in the University of Oxford's Bodleian Libraries' British Book Trade Index database
+P2946,BacDive ID,"identifier for a microorganism, in the BacDive database"
+P2948,Estonian cultural monument ID,identifier in the Estonian national registry of cultural monuments
+P2949,WikiTree person ID,identifier for a person in the WikiTree genealogy website
+P2950,Nomisma ID,"identifier in Nomisma.org, a linked open data thesaurus of numismatic concepts"
+P2951,Cultural heritage database in Austria ObjektID,identifier given by the published BDA (Bundesdenkmalamt) list of monuments
+P2952,Boat of Heritage Interest ID,identifier of a ship
+P2953,Estonian Research Portal person ID,"identifier for a person, in the Estonian Research Portal"
+P2954,Transferred Account Data Interchange Group Code,
+P2955,point of penalty,point of penalty in a tournament
+P2956,NAIF ID,"integer code assigned by NASA's Navigation and Ancillary Information Facility to solar system objects, reference frames, and instruments that it tracks"
+P2957,throughput,volume of units that do or can pass through or be transported by the object
+P2959,permanent duplicated item,"this item duplicates another item and the two can't be merged, as one Wikimedia project includes two pages, e. g. in different scripts or languages (applies to some wiki, e.g.: cdowiki, gomwiki, nanwiki). Use ""duplicate item"" for other wikis."
+P2960,archive date,date a document was archived
+P2961,BVPH publication ID,identifier in Biblioteca Virtual de Prensa Histrica
+P2962,title of chess person,title awarded by a chess federation to a person
+P2963,Goodreads author ID,identifier of an author on the Goodreads website
+P2964,right to vote,"people who have right to vote at this election, referendum, etc."
+P2965,EU River Basin District code,unique code for an EU River Basin District
+P2966,National Library of Wales Authority ID,"identifier of persons, corporate entities and families in the National Library of Wales Archives and Manuscripts database"
+P2967,Queensland Heritage Register ID,identifier of a property listed on the Queensland Heritage Register
+P2968,QUDT unit ID,identifier for unit of measure definition according to QUDT ontology
+P2969,Goodreads version/edition ID,"identifier of a version or edition, in the GoodReads.com website"
+P2970,Kinopolis film ID,identifier for films in the German Kinopolis database
+P2971,GCatholic church ID,ID of a church on GCatholic.org
+P2972,SNAP ID,"identifier for an ancient person, in the SNAP project"
+P2973,Spenserians person ID,identifier of a person on the site of the Spenserians project
+P2974,habitat,"the natural environment in which an organism lives, or the physical environment that surrounds a species population"
+P2975,host,an organism harboring another organism or organisms on or in itself
+P2976,patronym or matronym for this name,patronym or matronym based on this given name
+P2977,LBT person ID,"identifier of a person, on Lord Byron and his Times website"
+P2978,wheel arrangement,"wheel/axle arrangement for locomotives, railcars and other rolling stock"
+P2979,maritime identification digits,identifer used by radio communication facilities to identify their home country or base area in messages as part of their Maritime Mobile Service Identities
+P2980,ARLHS lighthouse ID,identifier on the ARLHS World List of Lights
+P2981,UIC alphabetical country code,alphabetical country code issued by the International Union of Railways
+P2982,UIC numerical country code,numerical country code issued by International Union of Railways
+P2983,UNDP country code,country code by the United Nations Development Programme (UNDP)
+P2984,Snapchat username,this item's username on Snapchat
+P2985,DBSE ID,identifier in the Diccionario Biogrfico del Socialismo Espaol
+P2986,aircraft registration prefix,national prefix used in civil aircraft registration numbers
+P2987,Taekwondo Data ID,identifier for sportsperson in the Taekwondo Data database
+P2988,GOST 7.67 cyrillic,country codes in Cyrillic from the GOST standards committee
+P2989,has grammatical case,case used in this language
+P2990,FIL athlete ID,identifier for sportsperson in the Intrenational Luge Federation (FIL) database
+P2991,IBSF athlete ID,identifier for sportsperson in the International Bobsleigh & Skeleton Federation database
+P2992,software quality assurance,quality assurance process in place for a particular software
+P2993,partition coefficient water/octanol,logarithm of the partition coefficient (n-octanol/water)
+P2997,age of majority,"threshold of adulthood as recognized or declared in law. Use qualifiers ""statement is subject of"" (P805) to link to item for articles with more detail. Use ""start time"" (P580) or ""point in time"" (P585) for historic data"
+P2998,age of candidacy,minimum age at which a person can legally qualify to hold certain elected government offices
+P2999,age of consent,youngest age at which a person can legally consent to sexual activity
+P3000,marriageable age,"minimum age at which a person is generally allowed by law to marry. Use qualifier ""applies to part"" (P518), to specify if it applies only to males (Q6581097), females (Q6581072) or both genders (Q27177113)"
+P3001,retirement age,the age at which most people normally retire from work
+P3002,Untappd brewery ID,"numerical identifier for a brewery, in the Untappd database"
+P3003,zanikleobce.cz abandoned objects ID,identifier of abandoned objects from zanikleobce.cz
+P3004,Galiciana work ID,identifier of a work in Galiciana
+P3005,valid in place,place where a statement is valid
+P3006,Marine Regions Geographic ID,"identifier for marine geographic objects, in the marineregions.org database"
+P3007,Cadw Monument ID,identifier for a scheduled monument in Wales
+P3008,Australian Heritage Database Place ID,"identifier ""Place ID"" on the Australian Heritage Database"
+P3009,Conservatoire du littoral ID,identifier on the Conservatoire du littoral website
+P3010,World Archery Federation ID,identifier for sportsperson in the World Archery Federation database
+P3012,Statistics Canada Geographic code,system by Statistics Canada for categorizing and enumerating the census geographic units of Canada
+P3013,surface tension,physical property of liquid
+P3014,laws applied,the constitutional and statutory provisions that were the primary basis for a decision or law
+P3015,backup or reserve team or crew,team or crew that is kept ready to act as reserve
+P3016,French national research structure identifier,identifier in the French national research structure repertory
+P3017,Rolling Stone artist ID,identifier for an artist (person or group) in Rolling Stone magazine's website
+P3018,located in protected area,protected area where a place or geographical feature is physically located
+P3019,railway signalling system,type of signalling used on this railway line
+P3020,residence time of water,residence time of water in a lake or sea
+P3021,Iranica ID,"identifier of an article, on iranicaonline.org"
+P3022,flag bearer,person who carries the national flag of their country at an opening or closing ceremony
+P3023,Legacies of British Slave-ownership person ID,"identifier of a person, in University College London's 'Legacies of British Slave-ownership' project"
+P3024,ITU letter code,identifier for member countries of the International Telecommunication Union radiocommunication division
+P3025,open days,days in the week subject item is open within the opening season
+P3026,closed on,"exceptions to open days (P3025), usually special dates"
+P3027,open period from,qualifier to P3025 (open days) for season when open days apply
+P3028,open period to,qualifier to P3025 (open days) for season when open days apply
+P3029,UK National Archives ID,"identifier for a person, family or organisation, in the UK's National Archives database"
+P3030,sheet music,media file containing the musical score (sheet music) for this item
+P3031,EPPO Code,identifier for a taxon in the EPPO Global Database
+P3032,adjacent building,building adjacent to the item
+P3033,package management system,package management system used to publish the software
+P3034,Indonesian ethnicity code,"code for ethnic groups in Indonesia, defined in Ensiklopedi Suku Bangsa di Indonesia"
+P3035,ISBN publisher prefix,part of an ISBN(-13) specific to a publisher
+P3036,precipitation height,maximum height of snow or rain during an event or space of time
+P3037,spatial reference system,frame of reference used to produce a map
+P3038,IWM memorial ID,"identifier for a war memorial, in the UK Imperial War Museum's War Memorials Register"
+P3039,wheelbase,distance between centers of front wheel and rear wheel
+P3040,SoundCloud ID,"identifier for a person, band, radio station or other entity, on SoundCloud"
+P3041,luminous intensity,measure of the emitted light intensity
+P3042,CageMatch wrestling stable ID,identifier for a professional wrestling stable at CageMatch.net
+P3044,College Football HoF ID,identifier for American football players in the College Football Hall of Fame
+P3045,HanCinema person ID,identifier for a person in the HanCinema database
+P3046,ForaDeJogo player ID (archived),ForaDeJogo.net identifier for an association football (soccer) player
+P3047,PlaymakerStats.com player ID,identifier for an association football player at PlaymakerStats.com (formerly TheFinalBall.com)
+P3048,Racing-Reference driver ID,"identifier of a driver, in the racing-reference.info database"
+P3049,Scottish Football Association player ID,identifier of a player in the records of the Scottish Football Association
+P3050,FACR player ID,"identifier for an association football player at nv.fotbal.cz, website of the Football Association of the Czech Republic (FA?R: Fotbalov asociace ?esk republiky), formerly the Bohemian-Moravian Football Union (?MFS: ?eskomoravsk? fotbalov? svaz)"
+P3051,Kindred Britain ID,identifier of an article on Kindred Britain
+P3052,Bloomberg person ID,"identifier for a business person, at Bloomberg"
+P3053,K League player ID,"identifier for a player at website of K League, South Korea's professional association football (soccer) league"
+P3054,Ontario MPP ID,official identifier for a Member of Provincial Parliament of Ontario
+P3055,NAQ elected person ID,official identifier of a person elected to the National Assembly of Quebec (NAQ) or one of its predecessors
+P3056,TCM Movie Database person ID,identifier for a person (cast or crew member) in the Turner Classic Movies movie database
+P3057,Charity Commission no.,official number of a charity registered with the Charity Commission of England and Wales
+P3058,Architectuurgids architect ID,identifier for an architect in the Dutch architectuurgids.nl database
+P3059,Architectuurgids building ID,unique identifier for a building in the Dutch architectuurgids.nl database
+P3060,ButMoth ID,identifier for a butterfly or moth genus in the UK Natural History Museum's 'Butterflies and Moths of the World' database
+P3061,Basisregistratie Instellingen number,"register number, issued by the Dutch ministry of Education, given to schools"
+P3063,gestation period,amount of time needed for gestation for this animal taxon
+P3064,LepIndex ID,"identifier for a Lepidoptera taxon, in the UK Natural History Museum's 'Global Lepidoptera Names Index'"
+P3065,RERO ID,identifier in the Library network of Western Switzerland's RERO database
+P3066,GLAM Identifier,unique identifier for heritage institutions as they have been used in the context of the OpenGLAM Benchmark Survey
+P3067,GS1 country code,"GS1 Prefix, the first three digits, usually identifying the national GS1 Member Organization to which the manufacturer is registered (not necessarily where the product is actually made)"
+P3068,WIPO ST.3,World Intellectual Property Organization standard for the two-letter codes of countries and certain organizations
+P3069,UN document symbol,unique number assigned to United Nations documents
+P3070,dynamic viscosity,"viscosity of a substance, with phase of matter (P515) and temperature (P2076) as qualifiers"
+P3071,standard molar entropy,"entropy content of one mole of substance under standard conditions (25¡C, 1 bar)"
+P3072,Storting person ID,identifier for a Norwegian parliamentarian in the official Storting database
+P3073,CosIng number,Number for a chemical substance in the European CosIng database
+P3074,Grace's Guide ID,identifier of a person or organisation on Grace's Guide
+P3075,official religion,official religion in this administrative entity
+P3076,Open Beauty Facts category ID,category on the Open Beauty Facts website
+P3077,Cineplex Germany film ID,identifier for films in the Cineplex database
+P3078,standard enthalpy of formation,"change of enthalpy during the formation of 1 mole of the compound from its constituent elements, with all substances in their standard states at 1 bar and 25¡C"
+P3080,game artist,"game artist(s) that produced art assets for a role-playing games, collectible card games, video game, etc."
+P3081,damaged,physical items damaged by this event
+P3082,destroyed,physical items destroyed by this event
+P3083,SIMBAD ID,"identifier for an astronomical object, in the University of Strasbourg's SIMBAD database"
+P3085,qualifies for event,this event qualifies for that event
+P3086,speed limit,maximum speed allowed on a transport route or in a certain area
+P3087,fiscal/tax revenue,fiscal revenue of a public entity (not for private entities)
+P3088,Catalogue of Life in Taiwan ID,identifier (name code) for a taxon in the Catalogue of Life in Taiwan
+P3089,Flags of the World ID,identifier for a flag in the Flags of the World database
+P3090,flight number,identifier for a specific flight
+P3091,mount,"creature ridden by the subject, for instance a horse"
+P3092,film crew member,"member of the crew creating an audiovisual work, used for miscellaneous roles qualified with the job title when no specific property exists. Don't use if such a property is available: notably for cast member (P161), director (P57), etc."
+P3093,recovered by,"person, organisation or vehicle that recovered the item. Use the most specific value known."
+P3094,develops from,this class of items develops from another class of items (biology)
+P3095,practiced by,type of agents that study this subject or work in this profession
+P3096,KML file,item with sitelinks to wikimedia page containing text of a relevant KML file
+P3097,ISBN identifier group,ISBN prefix for countries or languages
+P3098,ClinicalTrials.gov ID,identifier in the ClinicalTrials.gov database
+P3099,Internet Bird Collection species ID,"identifier for a species of bird, in the Internet Bird Collection database"
+P3100,Flora of Australia ID (old),"identifier for a plant taxon, in the Flora of Australia Online"
+P3101,FloraBase ID,"identifier for a plant taxon, in the Government of Western Australia's FloraBase database"
+P3102,Plantarium ID,"identifier for a plant taxon, in the Plantarium database"
+P3103,has tense,"grammatical category expressing time reference of the language. To include a sample, use qualifier ""quote"" (P1683), sample: ""He writes"". If an activity before is needed ""He sees"". If an activity afterwards is needed: ""He reads""."
+P3104,Gares & Connexions ID,ID for a railway station on the official website for French railway stations
+P3105,Tela Botanica ID,identifier for a plant taxon in Tela Botanica's 'base des trachophytes de France mtropolitaine' - BDTFX - (Metropolitan France Tracheophyte Database)
+P3106,Guardian topic ID,identifier for a topic at the Guardian newspaper website
+P3107,LdiF ID,identifier of a film (movie) in the Lexikon des Internationalen Films (Lexicon of International Films)
+P3108,Yelp ID,"identifier of a place, in Yelp.com"
+P3109,Peakbagger mountain ID,"identifier for a mountain, on the www.peakbagger.com website"
+P3110,ISzDb film ID,identifier of a film in the ISzDb (a Hungarian dub database)
+P3111,FEI athlete ID,identifier of athlete at the FEI website
+P3112,DistroWatch ID,identifier for an operating system at DistroWatch.com
+P3113,does not have part,"expected part that the item does not have (for qualities, use P6477)"
+P3114,ISzDb person ID,identifier of a person in the ISzDb (a Hungarian dub database)
+P3115,ISzDb company ID,identifier of a company in the ISzDb (a Hungarian dub database)
+P3116,ISzDb dub ID,identifier of a dub version for a film in the ISzDb (a Hungarian dub database)
+P3117,DSSTox substance ID,DSSTox substance identifier (DTXSID) used in the Environmental Protection Agency CompTox Dashboard
+P3118,OpenDomesday settlement ID,"Identifier for a British settlement, in the OpenDomesday digitisation of the Domesday Book"
+P3119,Code for China Reservoir Name,an identifer for Chinese reservoirs
+P3120,TOID,TOpographic IDentifier assigned by the Ordnance Survey to identify a feature in Great Britain
+P3121,Epguides ID,"identifier for a television programme or series, at epguides.com"
+P3122,OpenDomesday person ID,"Identifier for a person, in the OpenDomesday digitisation of the Domesday Book"
+P3123,Stanford Encyclopedia of Philosophy ID,identifier of a topic in the online Stanford Encyclopedia of Philosophy
+P3124,Polish scientist ID,"identifier for a scientist, in the Polish Government's Information Processing Centre database"
+P3125,EDRPOU code,Ukrainian state registry legal entity identifier
+P3126,ALCUIN philosopher ID,identifier of a philosopher in the ALCUIN Infothek der Scholastik
+P3127,Latindex ID,identifier of a journal in Latindex
+P3128,CiNetMag film ID,identifier for a movie at the Iranian movie database CiNetMag
+P3129,cine.gr film ID,identifier for a movie at the Greek movie database cine.gr
+P3130,NSW Flora ID,"identifier for a plant taxon, in the NSW Flora Online"
+P3131,Redalyc journal ID,"identifier of a journal in Red de Revistas Cientficas de Amrica Latina y el Caribe, Espaa y Portugal (Redalyc)"
+P3132,last line,"last line (excipit) of a poem, last sentence of a novel, etc."
+P3133,NSZL name authority ID,"ID of a person or organisation in the ""Integral Information System of the National Library"" (NEKTçR) in Hungary"
+P3134,TripAdvisor ID,"identifier of a place (region, hotel, restaurant, attraction), in TripAdvisor"
+P3135,elCinema film ID,identifier for a movie at elCinema
+P3136,elCinema person ID,identifier for a person at elCinema
+P3137,parent peak,"parent is the peak whose territory this peak resides in, based on the contour of the lowest col"
+P3138,OFDb film ID,identifier for a film (movie) in the German Online-Filmdatenbank website
+P3139,SourehCinema film ID,identifier for a movie at the Iranian movie database SourehCinema
+P3140,SourehCinema person ID,identifier for a person at the Iranian movie database SourehCinema
+P3141,EDb film ID,identifier for a movie at the Israeli movie database EDb
+P3142,EDb person ID,identifier for a person at the Israeli movie database EDb
+P3143,elFilm film ID,identifier for a movie at the Arabic movie database elFilm
+P3144,elFilm person ID,identifier for a person at the Egypt movie database elFilm
+P3145,Sratim ID,identifier for a movie or person at the Israeli movie database Sratim (sratim.co.il)
+P3146,CiNetMag person ID,identifier for a person at the Iranian movie database CiNetMag
+P3147,United States Reports ID,ID for US Supreme Court Opinions on OpenJurist website
+P3148,repeals,this document or act repeals that other document or act
+P3149,molecule conformation,"qualifier to be used with property ""electric dipole moment"" (P2201)"
+P3150,birthday,"item for day and month on which the subject was born. Used when full ""date of birth"" (P569) isn't known."
+P3151,iNaturalist taxon ID,identifier in iNaturalist
+P3152,Findsmiley ID,identifier for Danish companies serving food
+P3153,Crossref funder ID,"identifier for an organisation that funds research, in the Crossref registry"
+P3154,Runeberg author ID,identifier for an author in the Runeberg digital library
+P3155,Runeberg book ID,identifier for book item in the Runeberg digital library collection
+P3156,Australian Classification,content rating of an audiovisual work or video game in the Australian Classification system
+P3157,event distance,distance over which a race or other event is conducted or was achieved
+P3158,enclosure,the type of structure enclosing another structure
+P3159,UGentMemorialis professor ID,identifier for a professor at the Ghent University
+P3160,Minnesota legislator ID,official identifier for a Minnesota legislator
+P3161,has grammatical mood,language has this grammatical mood/mode for signaling modality
+P3162,Rock and Roll Hall of Fame ID,"identifier for an inductee (individual or group), in the US Rock & Roll Hall of Fame"
+P3163,Scottish Charity number,official number of a charity registered with the Scottish Charity Regulator
+P3165,Horsetelex ID,identifier for a horse on Horsetelex database
+P3166,Webpedigrees ID,identifier for a horse on Webpedigrees database
+P3167,Allbreedpedigree ID,identifier for a horse on Allbreedpedigree database
+P3168,Sporthorse data ID,identifier for a horse on Sporthorse data database
+P3169,Infochevaux ID,identifier for a horse on the official French Infochevaux database
+P3170,Cultural Heritage Armenia ID,identifier for a cultural object in Armenia
+P3171,Olympic.org athlete ID (archived),"identifier for an athlete (sportsperson) at Olympic.org, a former website of the International Olympic Committee"
+P3172,World Bridge Federation ID,"identifier for a bridge player, issued by the World Bridge Federation"
+P3173,offers view on,"things, places this place offers views on"
+P3174,art director,"person credited as the art director/artistic director of this work; manages the process of making the visuals, which is done by concept artists, graphic designers, set designers, costume designers, lighting designers; See also P8938 for organizations"
+P3175,Statoids ID,identifier for a place in the Statoids wiki
+P3176,uses property,"Wikidata property used, discussed, or otherwise analyzed in this work (not the meaning of the property itself)"
+P3177,Patrimonio Web JCyL ID,identifier of a building or site in Patrimonio Web of Junta de Castilla y Len
+P3178,Zaragoza monument ID,ID of a monument catalogued in zaragoza.es
+P3179,territory overlaps,part or all of the area associated with (this) entity overlaps part or all of the area associated with that entity
+P3180,Visual Novel Database ID,identifier at the Visual Novel Database
+P3181,OpenCitations bibliographic resource ID,"identifier for an article or publication, in the OpenCitations Corpus"
+P3182,FANTOIR code,unique identifier for streets and public squares in France and Monaco; format: 10 digits/characters
+P3183,Wall Street Journal topic ID,"identifier for a topic, at the Wall Street Journal website"
+P3184,Czech National Bibliography ID,identifier for a book or periodical at the Czech National Library
+P3185,VK ID,identifier for a person or organization in VKontakte
+P3186,TAXREF ID,"identifier for a biological taxon in TAXREF, the national taxonomic reference for fauna, flora and Fungi of metropolitan France and overseas developed by the National Museum of Natural History"
+P3187,Marburger Professorenkatalog ID,"identifier for a professor, in the Marburger Professorenkatalog of professors at the Philipps-Universitt Marburg, Germany"
+P3189,innervated by,nerves which innervate this anatomical structure
+P3190,innervates,anatomical structures innervated by this nerve
+P3191,IMIS person ID,"identifier for a person in IMIS, database of Flanders Marine Institute"
+P3192,Last.fm ID,"identifier for an artist, group or work, on Last.fm"
+P3193,GS1 Company Prefix,"codes for a company or organisation, used in GS1 identifiers: GTIN, GLN, GRAI, etc (barcodes and RFID)"
+P3194,INA video ID,identifier of a video on the INA website
+P3195,league points system,point system of an e.g. sports league
+P3196,USGS earthquake ID,"identifier for an earthquake or other seismic event, in the United States Geological Survey database"
+P3197,Federal Heritage Buildings ID (Canada),identifier of a building designated by the Federal Heritage Buildings Review Office of Canada
+P3198,JewishGen Locality ID,identifier of a town in The JewishGen Communities Database
+P3199,charity number (Isle of Man),Charity number of a charity or charitable organisation registered on the Isle of Man
+P3200,Northern Ireland charity number,official number of a charity registered with the Charity Commission for Northern Ireland
+P3201,Medical Dictionary for Regulatory Activities ID,identifier in the Medical Dictionary for Regulatory Activities
+P3202,UAI code,official identifier of a French educational establishment
+P3203,Cin-Ressources film ID,"page of a movie on the website ""Cin-Ressources"""
+P3204,Cin-Ressources person ID,"page of a person on the website ""Cin-Ressources"""
+P3205,patient of,was treated or studied as a patient by this person
+P3206,data.gouv.fr organisation ID,identifier of an organization on the French national open-data platform data.gouv.fr
+P3207,Vine user ID,ID of the Vine account of a person or organisation
+P3208,New General Catalogue ID,"identifier for an astronomical object, on the New General Catalogue of Nebulae and Clusters of Stars, or its supplements"
+P3209,Heritage Railway Station of Canada ID,identifier of the Heritage Railway Station designated by the Historic Sites and Monuments Board of Canada
+P3211,Heritage Lighthouse of Canada ID,identifier of the Heritage Lighthouse designated by the Historic Sites and Monuments Board of Canada
+P3212,ISAN,"unique identifier for audiovisual works and related versions, similar to ISBN for books"
+P3213,Indian census area code (2001),code used for an area for calculations in the 2001 census of India
+P3215,SIRET number,number of a French establishment or company
+P3216,ClassInd rating,"rating of an audiovisual work, video game or RPG in the Brazilian Advisory Rating System (ClassInd)"
+P3217,Dictionary of Swedish National Biography ID,entry in the Dictionary of Swedish National Biography
+P3218,Auamendi ID,identifier of an item in Auamendi Encyclopaedia
+P3219,Encyclop¾dia Universalis ID,identifer for an article in the online version of Encyclop¾dia Universalis
+P3220,KvK company ID,identifier of a company in the Dutch KvK Business Register
+P3221,New York Times topic ID,"identifier for a topic, at the New York Times' website"
+P3222,NE.se ID,ID of article on the Swedish Nationalencyklopedin (NE.se) site
+P3223,Online List of Lights ID,identifier in the Online List of Lights database
+P3224,NAICS code,classification in the North American Industry Classification System
+P3225,Corporate Number (Japan),identifier assigned to companies and other organizations by the National Tax Agency of Japan
+P3226,HAS member ID,ID of the data-sheet of members of the Hungarian Academy of Sciences
+P3227,Cultural Heritage Kosovo ID,identifier for a cultural object in Kosovo
+P3228,Schlfli symbol,notation that defines regular polytopes and tessellations
+P3229,South Dakota legislator ID,official identifier for a South Dakota legislator
+P3230,SCAR Composite Gazetteer place ID,identifier in the international composite gazetteer for Antarctica run by the Scientific Committee on Antarctic Research
+P3232,PhilPapers author ID,identifier for authors of papers on PhilPapers
+P3233,PhilPeople profile,an identifier for user profiles on PhilPeople
+P3234,Code List for Cultural Heritage Organizations,codes for cultural heritage organizations issued by the Library of Congress
+P3235,PhilPapers topic,identifier for topics on PhilPapers
+P3236,PhilPapers publication ID,an identifier for publications (journals) on PhilPapers
+P3237,KU Leuven person ID,identifier for a person in the Who's Who database of the Catholic University of Leuven
+P3238,trunk prefix,a digit or digits to be dialled before a telephone number to initiate a telephone call for the purpose of selecting an appropriate telecommunications circuit by which the call is to be routed
+P3240,NBN System Key,identifier of a taxon in the National Biodiversity Network (UK)
+P3241,Catholic Encyclopedia ID,page of an article on newadvent.org
+P3242,SIC code,U.S. Standard Industrial Classification number for industries and economic activities
+P3243,OKVED 1.1 code of the economic activity,economic activity code according to Russian classification ?? 029-2007
+P3245,OKPD code of the good or service,"product code in the Russian classification ""OKPD"" ?? 034-2007 (???? 2002)"
+P3246,OKVED 2 code of the economic activity,economic activity code according to Russian classification ?? 029-2014
+P3248,OKP ID of the good or service,"numeric ID of this group or kind of goods according to OK 005-93 ""Russian classification of products"""
+P3250,OKPD2 code of the good or service,"product code in the Russian classification ""OKPD2"" ?? 034-2014 (???? 2008)"
+P3251,minimum viable temperature,lowest operating temperature where the culturing of micro-organisms and/or enzyme activity occurs
+P3252,maximum viable temperature,highest operating temperature where the culturing of micro-organisms and/or enzyme activity occurs
+P3253,optimum viable temperature,operating temperature where the culturing of micro-organisms and/or enzyme activity thrives best
+P3254,property proposal discussion,URL of the page (or page section) on which the creation of the property was discussed
+P3256,Cave E-Cadastre ID,ID in the Cave E-Cadastre of Slovenia
+P3257,Queensland place ID,"identifier of place, in the official Queensland Government gazetteer"
+P3258,LiveJournal ID,"username of a person or organisation, on LiveJournal"
+P3259,intangible cultural heritage status,status of an item that is designated as intangible heritage
+P3260,points awarded,"points awarded to the winning person, team or work for a win, draw, tie or loss. If no points are awarded for some category of finish (e.g. loss) use value 0 not no value."
+P3261,anatomical branch of,"main stem of this blood vessel, lymphatic vessel or nerve"
+P3262,has anatomical branch,"branches of this blood vessel, lymphatic vessel or nerve"
+P3263,base,configuration of a polytop vertices around the symmetry axis
+P3264,radix,number of distinct digits in a positional numeral system
+P3265,Myspace ID,"identifier for a person or organisation, at Myspace"
+P3266,Library of Congress Format Description Document ID,identifier for file formats in the Library of Congress database
+P3267,Flickr user ID,"identifier for a person or organisation, with an account at Flickr"
+P3268,PORT organization URL,"URL of an organization (venue, band, etc.) in the PORT-network database"
+P3269,Fotografen.nl ID,"identifier for a photographer, in the Dutch fotografen.nl database"
+P3270,compulsory education (minimum age),"minimum age for children when compulsory education starts. Qualifiers: ""subject of"" to link to more detail. If applicable, use qualifier P31 with value ""varies by state/province"" (Q27145860). Use ""start time"" or ""point in time"" for historic data."
+P3271,compulsory education (maximum age),"maximum age for children when compulsory education ends. Qualifiers: ""subject of"" to link to more detail. If applicable, use qualifier P31 with value ""varies by state/province"" (Q27145860). Use ""start time"" or ""point in time"" for historic data."
+P3272,Zeri image ID,number in the Zeriimages database
+P3273,Actorenregister ID,unique identifier in the Dutch Actorenregister database
+P3274,content deliverer,"third party service (e.g. Google Books, Internet Archive, etc.) that made the content available where it was accessed"
+P3275,storyboard artist,person credited as the storyboard artist of this work
+P3276,Angel List ID,profile of a person or organisation on Angel List
+P3277,KANTL member ID,identifier for a member of the Royal Academy of Dutch language and literature
+P3279,statistical leader,"leader of a sports tournament in one of statistical qualities (points, assists, rebounds etc.). Don't use for overall winner. Use a qualifier to link to the item about the quality."
+P3280,BAnQ author ID,identifier for an author or subject heading in the Bibliothque et Archives nationales du Qubec (BAnQ)
+P3281,French National Assembly Lobbyist ID,"identifier of an individual lobbyist or lobbying organisation, at the French National Assembly"
+P3283,Bandcamp ID,"identifier for an artist (person or group) or record label, in the Bandcamp database"
+P3284,Yahoo! Japan Talent Database ID,Identifier of person in Yahoo! Japan Talent database
+P3285,Mathematics Subject Classification ID,identifier of the same topic in the Mathematics Subject Classification (2010)
+P3286,Squash Info player ID,identifier on the website squashinfo.com
+P3288,World Spider Catalog ID,identifier of a taxon in the World Spider Catalog
+P3289,Cellosaurus ID,Cellosaurus cell line identifier
+P3290,biography at the Landtag of Mecklenburg-Vorpommern,link to the biography pages at the Landtag of Mecklenburg-Vorpommern
+P3291,DocCheck Flexikon En ID,identifier for an article in the English section of DocCheck Flexikon wiki
+P3292,DocCheck Flexikon De ID,identifier for an article in the German section of the DocCheck wiki
+P3293,BALaT object ID,"identifier for creative works in the Photo Library database of BALaT (Belgian Art Links & Tools), maintained by KIK-IRPA, Belgium's Royal Institute for Cultural Heritage"
+P3294,encoding,encoding according to which a code is to be interpreted (use only as a qualifier)
+P3295,code,code used to represent a specific concept in a given encoding
+P3296,DRòSOP ID,identifier used to format links in a database of Czech protected areas and trees
+P3297,Flemish Parliament person ID,identifier for a person on the website of the Flemish Parliament
+P3298,Belgian Senate person ID,identifier for a person on the website of the Belgian Senate
+P3299,student register of the University of Helsinki ID (1640Ð1852),"ID in the online student register of the University of Helsinki 1640Ð1852. Format: numbers below ca. 20000, see P3325 for higher numbers"
+P3300,musical conductor,"the person who directs a musical group, orchestra or chorus"
+P3301,broadcast by,"channel, network, website or service that broadcast this item over radio, TV or the Internet"
+P3302,Open Media Database film ID,identifier for a movie at the Open Movie Database
+P3303,third-party formatter URL,"URI template from which ""$1"" can be automatically replaced with the effective property value on items; for sites other than the primary issuing body of the identifier concerned"
+P3304,NGS pumping station ID,identifier for a pumping station described on the website of the Nederlandse Gemalen Stichting
+P3305,KINENOTE person ID,identifier of a person in the KINENOTE movie database
+P3306,ICAA rating,rating in the Spanish motion picture content rating system
+P3307,Galiciana authority ID,identifier of an author in Galiciana
+P3308,lib.reviews ID,ID for 'Things' (review subjects) on lib.reviews
+P3309,SummitPost ID,identifer of a mountain or other location on SummitPost
+P3310,muscle action,action a muscle engages in
+P3311,image of design plans,image representing the plan of a building or place
+P3314,365Chess.com player ID,identifier for players at 365chess.com
+P3315,ChessTempo.com player ID,identifier for chess players at ChessTempo.com
+P3316,ICCF player ID,"identifier for a chess player, at iccf.com"
+P3318,Gua Digital del Patrimonio Cultural de Andaluca identifier,identifier for a cultural heritage item in the Patrimonio Inmueble de Andaluca database (BDI)
+P3320,board member,member(s) of the board for the organization
+P3321,male form of label,male form of name or title
+P3322,Vlinderstichting-ID,identifier for lepidoptera species in the vlinderstichting database
+P3323,opponent during disputation,participant in the defense of a doctoral thesis
+P3324,petit-patrimoine.com ID,
+P3325,student register of the University of Helsinki ID (1853Ð1899),"ID in the online student register of the University of Helsinki 1853Ð1899. Format: numbers above ca. 20000, see P3299 for lower numbers"
+P3326,World Waterfall Database ID,Waterfall ID in the World Waterfall Database
+P3327,Rserves naturelles de France ID,
+P3328,wurvoc.org measure ID,concept in the Ontology of units of Measure and related concepts (OM) 1.8 of wurvoc.org
+P3329,CIViC variant ID,identifier used in the CIViC database to identify specific variant
+P3330,Supermodels.nl ID,ID of a fashion model on the Supermodels.nl website
+P3331,HGVS nomenclature,Sequence Variant Nomenclature from the Human Genome Variation Society (HGVS)
+P3332,ACM Digital Library citation ID,unique identifier for a bibliographic record in the Association for Computing Machinery (ACM) Digital Library
+P3333,ACM Digital Library event ID,unique identifier of an event or conference series of the Association for Computing Machinery (ACM)
+P3335,associated hazard,"hazards implicit in the subject item: that a sign warns of; that one may encounter in this place, on this thoroughfare; that are inherent properties of the subject; etc."
+P3337,generation time,average time from one generation to another within the same population
+P3338,Encyclopedia of Surfing ID,"ID for a person, a surfing spot, a subject in the Encyclopedia of Surfing"
+P3339,World Surf League ID,identifier for a surfer on the World Surf League website
+P3340,Kvikmyndir film ID,identifier of a film (movie) in the Icelandic film database kvikmyndir.is
+P3341,Kvikmyndir person ID,identifier of a person in the Icelandic film database kvikmyndir.is
+P3342,significant person,person linked to the item in any possible way
+P3343,legislation.gov.uk ID,identifier of this legislation on the legislation.gov.uk website
+P3344,Vote Smart ID,identifies candidates in US elections for national and state government within Project Vote Smart's database
+P3345,RxNorm ID,identifier for the normalized clinical drug dictionary of the Unified Medical Language System
+P3346,HKMDB person ID,identifier for a person at the HKMDB (Hong Kong Movie Database) website
+P3347,PermID,"identifier for an entity or concept, in Thomson Reuters Open PermID"
+P3348,National Library of Greece ID,authority ID from the National Library of Greece Authority Records
+P3349,designed to carry,what the vehicle or class of vehicles is or was designed to carry
+P3350,World Health Organisation international non-proprietary name numeric ID,a numeric ID for the WHO international non-proprietary drug names collection
+P3351,Adult Film Database actor ID,ID for an actor in the Adult Film Database
+P3352,musipedia tune ID,identification of tune in musipedia database
+P3353,National Recreation Trails Database ID,identifier for a trail in the United States' National Recreation Trails Database
+P3354,positive therapeutic predictor for,the presence of the genetic variant helps to predict response to a treatment
+P3355,negative therapeutic predictor for,the presence of the genetic variant helps to predict no response or resistance to a treatment
+P3356,positive diagnostic predictor for,"the presence of the genetic variant helps to diagnose the presence of disease, used as inclusion criteria"
+P3357,negative diagnostic predictor for,"the presence of the genetic variant helps to diagnose the absence of disease, used as exclusion criteria"
+P3358,positive prognostic predictor for,the presence of the genetic variant helps to prognose good outcome for the disease
+P3359,negative prognostic predictor for,the presence of the genetic variant helps to prognose poor outcome for the disease
+P3360,Nobel Prize People Nomination ID,"identifier for a person who nominated someone, or who was nominated, for a Nobel Prize"
+P3361,PictoRight ID code,code to identify members of the Dutch collective rights management organisation PictoRight and sister organisations worldwide
+P3362,operating income,private entity operating income
+P3363,Tennis Hall of Fame player ID,International Tennis Hall of Fame
+P3364,stereoisomer of,target item is a stereoisomer of this item
+P3365,Treccani ID,identifier for the Treccani website
+P3366,GECD person ID,identifier of a person in the German Early Cinema Database
+P3367,GECD film ID,identifier of a film (movie) in the German Early Cinema Database
+P3368,Prabook ID,identifier of a person in the Prabook database
+P3370,Gopatronyme ID,identifier of a family name in the Gopatronyme database
+P3371,Observatoire du Patrimoine Religieux ID,ID for religious buildings on the OPR website
+P3372,Auckland Art Gallery artist ID,identifier assigned to an artist by the Auckland Art Gallery in New Zealand
+P3373,sibling,"the subject and the object have the same parents (brother, sister, etc.); use ""relative"" (P1038) for siblings-in-law (brother-in-law, sister-in-law, etc.) and step-siblings (step-brothers, step-sisters, etc.)"
+P3374,endianness,order of the bytes that compose a digital word in computer memory
+P3375,GECD Firmen-ID,identifier of a film company in the German Early Cinema Database
+P3376,Enterprise number (Belgium),Identifier from Crossroads Bank for Belgian Enterprises
+P3377,Bloomberg company ID,"identifier for a company, in the Bloomberg database"
+P3378,Merck Index reaction ID,"identifier for a chemical reaction, in the Merck Index"
+P3379,Model Manual ID,identifier for a fashion model in the 'New York' magazine database
+P3380,FAO 2007 genetic resource ID,(constructed) ID of a domestic animal species or breed in the FAO Animal Genetic resources report 2007 breed
+P3381,File Format Wiki page ID,"identifier on the ""Just Solve the File Format Problem""/File Format(s) wiki"
+P3382,GeneDB ID,gene identifier in GeneDB
+P3383,film poster,"poster used to promote and advertise this film (if file is available on Commons). Use P154 for logos, P18 for movie stills and related images. Items about film posters can be linked with the qualifier ""subject of"" (P805)."
+P3385,Japan Sumo Association ID,identifier of a person in the Japan Sumo Association database
+P3386,French Sculpture Census work ID,identifier of a sculpture in the French Sculpture Census
+P3387,minimum frequency of audible sound,minimum frequency of audible sound for this species
+P3388,LittleSis people ID,entry in the LittleSis who-knows-who of government and business database
+P3389,Royal Swedish Academy of Letters member ID,"identifier in the list of members of the Royal Swedish Academy of Letters, History and Antiquities"
+P3390,NLB authority ID,Belarus library catalog code
+P3391,Verkhovna Rada MP ID,identifier for a member of Verkhovna Rada (Parliament of Ukraine) on the official website
+P3392,Surman ID,"identifier of a record, in the Surman Index of British nonconformist ministers"
+P3393,LittleSis organization ID,organisation in the LittleSis who-knows-who of government and business database
+P3394,Finnish Lake ID,ID for a lake in the Jrviwiki database of Finnish lakes over 1 ha in extent.
+P3395,heart rate,speed of the heartbeat measured by the number of contractions of the heart per minute (bpm)
+P3396,French Catholic Church structure ID,"identifier of a structure in the guide of the French Catholic Church, edited by the Bishops' Conference of France"
+P3397,Guide of the French Church person ID,"identifier of a person in the guide of the French Catholic Church, edited by the Bishops' Conference of France"
+P3398,Butterflies and Moths of North America ID,"identifier for taxa in the ""Butterflies and Moths of North America"" database"
+P3399,JTWC tropical cyclone ID,"identifier for a tropical cyclone, issued by the Joint Typhoon Warning Center"
+P3400,CORDIS Project ID,unique identifier in the CORDIS database for research projects funded by the European Commission
+P3401,Wilderness Connect ID,identifier for an American wilderness area in the Wilderness Connect database
+P3402,CNC film rating (Romania),rating of a movie in the Romanian content rating system
+P3403,coextensive with,this item has the same boundary as the target item; area associated with (this) entity is identical with the area associated with that entity
+P3404,The Vogue List ID,identifier for an actor of the fashion scene in the database maintained by Vogue Paris
+P3405,Nederlands Soortenregister ID,"identifier for a taxon in the Nederlands Soortenregister, a database of taxa in the Netherlands by Naturalis Biodiversity Center"
+P3406,Saccharomyces Genome Database ID,identifier for a genetic element in the Saccharomyces Genome Database
+P3407,Klosterdatenbank ID,entry in the Germania Sacra Klosterdatenbank
+P3408,FINA athlete ID,numerical identifier for an athlete on the International Swimming Federation website
+P3409,Catalogus Professorum Lipsiensis ID,biographical entry in the University of Leipzig catalog of professors
+P3410,Clergy of the Church of England database ID,"identifier for people in the Church of England database, covering English clergy from 1540Ð1835"
+P3411,Saxon Academy of Sciences member ID,identifier in the members' database of the Saxon Academy of Sciences
+P3412,Canadian Environmental Sustainability Indicators ID (Protected areas),identifier of a protected area of Canada used by the Canadian Environmental Sustainability Indicators
+P3413,Leopoldina member ID (superseded),identifier in the members' database of the Leopoldina Ð German Academy of Sciences
+P3414,Yle Areena item ID,program or series ID in Yle Areena service
+P3415,start period,initial period in which the statement is valid (including the period-value)
+P3416,end period,last period in which the statement is still valid (including the period-value)
+P3417,Quora topic ID,identifier for a topic on Quora (English language version)
+P3418,Google Play Store app ID,package name of an app registered on Google Play
+P3419,Basic Unit of Settlement code (Czech),"code given to each basic unit of settlement (smallest administrative entity, below municipality) in the Czech Republic"
+P3420,Calflora ID,identifier for a taxon in Calflora
+P3421,Belvedere artist ID,identifier assigned to an artist by the sterreichische Galerie Belvedere in Vienna
+P3422,INSEE countries and foreign territories code,French identifier for countries and foreign territories
+P3423,INSEE arrondissement code,number sequence for identification of departmental arrondissements in France
+P3424,Polish cultural heritage register number,reference in a Polish cultural heritage register
+P3425,Natura 2000 site ID,identifier for protected areas within the Natura 2000 network of the European Union
+P3426,ArbetSam ID,identifier in Working Life Museums Co-operation Council's and the Museum of Work's database of working-life museums in Sweden (Arbetslivsmuseer)
+P3427,AS.com athlete ID,identifier for an athlete on AS.com
+P3428,INCAA film rating,rating of a movie in the Argentinian content rating system
+P3429,Electronic Enlightenment ID,identifier in the Electronic Enlightenment database
+P3430,SNAC ARK ID,identifier for items in the Social Networks and Archival Context system
+P3431,Publons publication ID,"Publons is a website where academics share pre-publication and post-publication peer reviews; any article with a DOI can have a Publons Publication ID, which can then link to a page showing the peer review history of the publication"
+P3432,parent cell line,closest parent cell line of the cell line in question
+P3433,biological variant of,"a variant of a physical biological entity (e.g., gene sequence, protein sequence, epigenetic mark)"
+P3434,ERIH PLUS ID,identifier of a journal in ERIH PLUS
+P3435,VGMdb artist ID,identifier for a musician or group in the Video Game Music database
+P3436,AELG ID,identifier for a writer in the Galician Writers Association website
+P3437,people or cargo transported,the type of passengers or cargo a vehicle actually carries/carried
+P3438,vehicle normally used,vehicle the subject normally uses
+P3439,angular resolution,angular resolution of an optical or pointing instrument
+P3440,time signature,specification of beats in a musical bar or measure
+P3441,FIFA country code,three-letter country code assigned by FIFA
+P3442,Debian stable package,name of the official Debian stable package
+P3443,Victorian Heritage Database ID,"identifier for a heritage location, in Australia's Victorian Heritage Database"
+P3444,eBird taxon ID,"identifier for a species or subspecies, in the eBird database"
+P3445,Cinema of Israel ID,"Identifier number in ""Cinema of Israel"" website"
+P3446,Italian Athletics Federation athlete ID,identifier for athletes in the Italian Athletics Federation (FIDAL) database and website
+P3447,mirrors data from,the website automatically crawls or mirrors another website as its data source
+P3448,stepparent,subject has the object as their stepparent
+P3449,NSW Heritage database ID,"identifier for a place with recognised heritage value, in Australia's NSW heritage database"
+P3450,sports season of league or competition,"property that shows the competition of which the item is a season. Use P5138 for ""season of club or team""."
+P3451,nighttime view,image at night or in twilight
+P3452,inferred from,"statement added based on related statement found on the following item, not the entity described by the item (to be used in a reference field)"
+P3453,IPI base code,the international code for a legal entity or artist for copyright administration around Interested Parties Information
+P3454,Arch Linux package,name of the official ArchÊLinux package
+P3455,CircleID writer ID,identifier for writers at CircleID
+P3456,ATP tennis tournament ID,
+P3457,case fatality rate,proportion of patients who die of a particular medical condition out of all who have this condition within a given time frame
+P3458,CNC authorization number,authorization number to operate a movie theater in France
+P3459,Euring number,"identifier for a species or subspecies, in the Euring database"
+P3460,colonel-in-chief,ceremonial position in a military regiment
+P3461,designated as terrorist by,"country or organization that has officially designated a given group as a terrorist organization (e.g. for India, listed on http://mha.nic.in/BO )"
+P3462,FAMA work ID,identifier for written work in medieval Latin
+P3463,Fedora package,name of the official Fedora package
+P3464,medicine marketing authorization,medicinal product's marketing authorization status
+P3465,maximum frequency of audible sound,maximum frequency of audible sound for this species
+P3466,Israeli CBS municipal ID,The Israeli municipal code (Hebrew ???) is an outline encoding used by the Israel Central Bureau of Statistics to finely fine-tune their statistics. It's a unique identifier given to each municipality in Israel.
+P3467,Inventario Sculture - Polo Museale Fiorentino,identifier of an artwork in the inventory of sculptures of Florentine museums
+P3468,National Inventors Hall of Fame ID,identifier for an inductee in the United States National Inventors Hall of Fame
+P3469,WTA tennis tournament ID,Identifier for tennis tournaments in the database of the WomenÕs Tennis Association
+P3470,Woodland Trust wood ID,identifier for a wood recorded by the Woodland Trust
+P3471,WikiSkripta ID,numeric identifier of a page on wikiskripta.eu
+P3472,VICNAMES Place ID,"identifier for a place in Victoria, Australia, in the VICNAMES database"
+P3473,Ubuntu package,name of the official Ubuntu package
+P3475,SANU member ID,identifier for a member of the Serbian Academy of Sciences and Arts
+P3476,PSA World Tour player ID,PSA World Tour squash player identifier
+P3477,Nihon Tarento Meikan ID,identifier of person in Nihon Tarento Meikan
+P3478,Songkick artist ID,identifier for an artist on Songkick
+P3479,Omni topic ID,"identifier for a topic, used by Omni and Aftonbladet"
+P3480,base Mmoire reference,reference in the base Mmoire for a French iconographic heritage element
+P3481,Parks & Gardens UK record ID,"identifier for an open space, in the Parks & Gardens UK database"
+P3482,Europeana Fashion creator ID,identifier for a creator on Europeana Fashion
+P3483,VGMdb album ID,identifier for a single or album in the Video Game Music database
+P3485,bite force quotient,regression of the quotient of an animal's bite force in newtons divided by its body mass in kilogrammes
+P3486,normal respiratory rate,"normal number of respiratory cycles (inspiration and exhalation) per minute, measured in an individual"
+P3487,maximal incubation period in humans,maximal time between an infection and the onset of disease symptoms in infected humans
+P3488,minimal incubation period in humans,minimal time between an infection and the onset of disease symptoms in infected humans
+P3489,pregnancy category,official categorisation of safety of medicine in pregnancy
+P3490,muscle origin,the anatomic entity to which the beginning of a muscle is anchored
+P3491,muscle insertion,the anatomic entity to which the end of a muscle is anchored
+P3492,basic reproduction number,number of infections caused by one infection within an uninfected population
+P3493,legal status (medicine),"legal status for pharmaceutical drugs, e.g. general sales list for paracetamol in the UK"
+P3494,points classification,
+P3495,FilmPolski.pl ID,"identifier for person, film (movie), or TV series, in the filmpolski.pl database"
+P3496,teams classification by points,teams classification by points
+P3497,teams classification by time,teams classification by time
+P3498,ZNIEFF ID,identifier for a 'Zone naturelle d'intrt cologique' on the Musum national d'histoire naturelle's official website
+P3499,Gentoo package,name of the official Gentoo package of this application
+P3500,Ringgold ID,identifier for organisations in the publishing industry supply chain
+P3501,Christian liturgical rite,Christian liturgical rite associated with this item
+P3502,Ameblo username,this item's username on Ameblo
+P3503,LombardiaBeniCulturali building ID,identifier of a historical building in the cultural heritage database of the Lombardy Region of Italy
+P3504,Florentine Inventario Palatina art ID,"identifier of an artwork in the inventory of the Palatine Gallery, Palazzo Pitti of Florentine museums"
+P3505,BoardGameGeek designer ID,ID for a game designer at BoardGameGeek
+P3506,Luding designer ID,identifier for a game designer at the Luding database
+P3507,Bivouac.com mountain ID,"identifier of a North American mountain, at Bivouac.com"
+P3509,Dagens Nyheter topic ID,"identifier for a topic, used by the Swedish daily newspaper Dagens Nyheter"
+P3511,VGMDb organization ID,"identifier for a record label, game developer, or other organization in the Video Game Music database"
+P3512,means of locomotion,method that the subject uses to move from one place to another
+P3513,peakware mountain ID,identifier for a mountain at Peakware.com
+P3514,U.S. National Geodetic Survey ID,Identifier for a place by the U.S. National Geodetic Survey
+P3515,NPCA ID,identifier for a protected area on the US National Parks Conservation Association's website
+P3516,National Park Foundation ID,identifier for a protected area on the US National Park Foundation's website
+P3517,Geographical Names Board of NSW ID,historical identifier of a geographical feature on a retired Geographical Names Board of New South Wales website
+P3518,Smithsonian trinomial,unique identifier assigned to an archaeological site in one of many states in the United States
+P3519,Pfam ID,identifier in the Pfam database of protein families
+P3520,databaseOlympics.com athlete ID (archived),identifier for an Olympic athlete (sportsperson) at databaseOlympics.com
+P3521,European Tour golf player ID,"identifier for a golf player, in the European Tour database"
+P3522,NHL.com player ID,identifier for an ice hockey player at NHL.com
+P3523,Rfam ID,identifier in the database of non-coding RNA (ncRNA) families and other structured RNA elements
+P3524,Simple Modular Architecture Research Tool ID,identifier for a protein domain in the SMART database
+P3525,ACB.com player ID,ID for a basketball player at ACB.com
+P3526,wisden.com ID,ID for a cricket player at wisden.com
+P3527,Eurobasket.com player ID,ID for a basketball player at eurobasket.com
+P3528,Luding game ID,identifier for a game at the Luding database
+P3529,median income,median household income in a place
+P3530,par,"predetermined number of strokes a 0-handicap golfer should require to complete a hole, a round or a tournament"
+P3531,AZBilliards ID,identifier of a person at AZBilliards
+P3532,databaseFootball.com player ID,ID for an American football player in databasefootball.com
+P3533,DraftExpress ID,identifier for a basketball player at draftexpress.com
+P3534,Australian Government Organisations Register ID,identifier of an Australian government organisation within the now discontinued Australian Government Organisations Register
+P3535,Japan Golf Tour player ID,"identifier for a golf player, in the Japan Golf Tour database"
+P3536,euroleague.net player ID,identifier for a basketball player at euroleague.net
+P3537,FootballDatabase.eu player ID,identifier for a association football player at FootballDatabase.eu
+P3538,Fussballdaten.de player ID,"identifier at Fussballdaten.de, a German language website which predominantly collects comprehensive statistics on the top five tiers of German football"
+P3539,NFL.com ID (former scheme),numeric identifier for American football players at NFL.com
+P3541,MLB.com player ID,identifier for a Major League Baseball player
+P3542,FIBA player ID,identifier for a basketball player at fiba.com
+P3544,Te Papa agent ID,identifier assigned to a person or organisation by the Museum of New Zealand Te Papa Tongarewa
+P3545,Theoi Project ID,"identifier for an entity in Greek mythology, at the Theoi Project"
+P3546,AustralianFootball.com player ID,identifier for an Australian rules footballer at the AustralianFootball.com website
+P3547,AFL Tables player ID,ID for a VFL/AFL player at afltables.com
+P3548,Australian Business Number,unique identifier for a business entity registered in Australia
+P3549,Australian Company Number,unique identifier for a company registered in Australia
+P3550,Australian Register of Therapeutic Goods ID,identifier of a medicine or medical device listed in the Australian Register of Therapeutic Goods
+P3551,Australian Registered Body Number,unique identifier for an organisation body (often a foreign business enterprise) registered in Australia
+P3552,Australian Registered Scheme Number,unique identifier for a managed investment scheme registered in Australia
+P3553,Zhihu topic ID,"numeric id of topics (tags) of questions on Zhihu, a Chinese question-and-answer website"
+P3554,World Series of Poker ID,ID of a poker player in World Series of Poker
+P3555,World Guide to Covered Bridges ID,"identifier for a covered bridge, in the World Guide to Covered Bridges"
+P3556,CurlingZone player ID,ID on the CurlingZone database
+P3557,World Curling Federation ID,ID for a person in the World Curling Federation database
+P3558,USCF player ID,identifier for a chess player issued by the US Chess Federation
+P3559,maximum size or capacity,maximum allowed/supported/usable (data) size
+P3560,College Football Data Warehouse ID,ID at College Football Data Warehouse
+P3561,Pro-Football-Reference.com player ID,identifier for American football players at Pro-Football-Reference.com
+P3562,Admiralty number,identifier of lighthouses by United Kingdom Hydrographic Office
+P3563,NGA lighthouse ID,identifier of a lighthouse in the USA's National Geospatial-Intelligence Agency database
+P3564,Global Poker Index ID,ID for a poker player in Global Poker Index
+P3565,J.League player ID,"identifier for a player at website of J.League, Japan's professional association football (soccer) league"
+P3566,Just Sports Stats player ID,ID for American or Canadian football player in www.justsportsstats.com
+P3567,HHOF.com NHL player ID,identifier of an NHL ice hockey player at the Hockey Hall of Fame website (HHOF.com)
+P3568,Official World Golf Ranking player ID,"identifier for a golf player, in the Official World Golf Ranking database"
+P3569,Cultureel Woordenboek ID,identifier for a concept in the Dutch Cultureel Woordenboek ('Cultural Dictionary')
+P3570,European Case Law ID,identifier for case law in Europe
+P3571,ESPN.com MLB player ID,ID for a Major League Baseball player at ESPN.com
+P3572,ESPNcricinfo playing ground ID,ID of cricket ground at ESPNcricinfo
+P3573,European Handball Federation player ID (archived),"id for players at eurohandball.com, the website of the European Handball Federation (EHF)"
+P3574,FanGraphs player ID,ID for a baseball player in FanGraphs.com
+P3575,data size,"size of a software, dataset, neural network, or individual file"
+P3576,TLG author ID,author identifier in the TLG Canon of Greek Authors and Works (third edition)
+P3577,Croatian Football Federation player ID,ID of player at Croatian Football Federation website
+P3578,autologous cell line,cell line originating from the same individual
+P3579,Sina Weibo user ID,Sina Weibo user's identifier
+P3580,SIPCA code,identifier of an item in Sistema de Informacin del Patrimonio Cultural Aragons (SIPCA)
+P3581,Pro Football Hall of Fame ID (old),identifier for American football players in the Pro Football Hall of Fame
+P3582,Sunshine Tour golf player ID,"identifier for a golf player, in the Sunshine Tour database"
+P3583,Surfline ID,identifier of a topic at surfline.com
+P3584,ITRA runner ID,identifier for a runner on the International Trail-Running Association's website
+P3585,UltraSignup runner ID,identifier for a runner on UltraSignup's website
+P3586,CricketArchive playing ground ID,identifier of a cricket ground at CricketArchive
+P3587,Common Vulnerabilities and Exposures ID,identifier of an information security vulnerability
+P3588,WNBA player ID,identifier for a player on the Women's National Basketball Association's website
+P3589,GCD series ID,identifier of a comic book series in the Grand Comics Database (GCD)
+P3590,Relations Ontology ID,ID in the Relations Ontology
+P3591,WCSPF ID,"identifier of a plant taxon, in the World Checklist of Selected Plant Families"
+P3592,Saros cycle of eclipse,
+P3593,AFI Catalog of Feature Films ID,identifier of a film (movie) in the American Film Institute Catalog of Feature Film
+P3594,Araneae Spider ID,identifier for a taxon in araneae.nmbe.ch
+P3595,Biografiskt Lexikon fr Finland ID,identifier in the Biografiskt Lexikon fr Finland released by Svenska litteratursllskapet i Finland
+P3596,Danish ancient monument ID,"identifier for protected ancient monument site in Denmark, assigned by Heritage Agency of Denmark"
+P3597,F-Droid package,Android package in the F-Droid official repository
+P3598,Hockey-Reference.com player ID,identifier for ice hockey players at Hockey-Reference.com
+P3599,archival creator authority record at the Archives nationales,identifier of the Archives Nationales (French National Archives)
+P3600,protected heritage site in Brussels ID,"identifier of a protected heritage site in Brussels, Belgium"
+P3601,MarineTraffic Lighthouse ID,identifier of a lighthouse or light beacon in the MarineTraffic database
+P3602,candidacy in election,election where the subject is a candidate
+P3603,Minneapolis Institute of Art constituent ID,identifier assigned to a person or organization by the Minneapolis Institute of Art
+P3604,World Triathlon triathlete ID,identifier for a triathlete on the International Triathlon Union's website
+P3605,90minut player ID,ID in the 90minut website for a football/soccer player
+P3606,BOLD Systems taxon ID,identifier for a taxon in boldsystems.org
+P3607,Booking.com hotel ID,identifier for a hotel on the Booking.com website
+P3608,EU VAT number,EU VAT number
+P3609,Recreation.gov gateway ID,identifier for a gateway on the Recreation.gov website
+P3610,fare zone,fare zone that the station is in
+P3611,Borden Code,unique identifier of a archeological site in Canada
+P3612,Le Monde diplomatique subject ID,identifier for a topic in the French newspaper Le Monde diplomatique
+P3613,Naturvrdsregistret ID,identifier for an area protected under the Environmental Code of Sweden
+P3614,DigDag ID,"identifier of a place, in the Digital Atlas of Denmark's historical-administrative geography"
+P3615,Vision of Britain unit ID,identifier of an administrative unit in the University of Portsmouth's Vision of Britain database
+P3616,Vision of Britain place ID,identifier of a place in the University of Portsmouth's Vision of Britain database
+P3618,base salary,gross salary of a position or a person (not including bonuses or other forms of remuneration)
+P3619,Ski-DB skier ID,ID for a ski racer at Ski-DB Alpine Ski Database
+P3620,BWFbadminton.com player ID,"identifier of a player by Badminton World Federation, at bwfbadminton.com"
+P3621,Darts Database player ID,identifier of a player at Darts Database
+P3622,Russian Bandy Federation player ID,"identifier of a bandy player at rusbandy.ru, the official website of the Russian Bandy Federation"
+P3623,BadmintonLink player ID,identifier of a badminton player at BadmintonLink.com
+P3624,CWE ID,identifier of a software weakness type identified in the Common Weakness Enumeration (CWE) list
+P3625,Kirshenbaum code,Kirshenbaum symbol for a IPA phoneme
+P3626,Australian Antarctic Gazetteer ID,"identifier of a place, in the Australian Antarctic Gazetteer"
+P3627,Survey of English Place-Names ID,identifier for a place in the Survey of English Place-Names website
+P3628,British History Online VCH ID,"identifier of a place, in the British History Online digitisation of the Victoria County History"
+P3629,age at event,the age of the subject according to the cited source at the time of an event. Used as a qualifier of significant event property
+P3630,Babelio author ID,identifier for an author on the literature website Babelio
+P3631,Babelio work ID,identifier for a book on the literature website Babelio
+P3632,British Museum thesaurus ID,identifier in the British Museum thesaurus
+P3633,British Museum place ID,identifier for a place in the British Museum thesaurus
+P3634,The Met object ID,object identifier for artworks at the Metropolitan Museum of Art
+P3635,Peakbagger area ID,"identifier for a mountain range or an area, on the peakbagger.com website"
+P3636,PDB ligand ID,identifier for small molecules and ligands in the Protein Data Bank (PDB)
+P3637,European Medicines Agency product number,identifier issued by the European Medicines Agency for treatments approved in the European Union
+P3638,Oorlogsmonument ID,identifier for a war memorial in the database maintained by the Dutch Nationaal Comit 4 en 5 mei
+P3639,KEPN ID,identifier for a place on the KEPN site
+P3640,National Drug Code,"pharmaceutical code issued by the Food and Drug Administration for every drug product (formulation) on the U.S. market. Includes a labeler code, product code and package code, unique for every drug product."
+P3641,Uniform Type Identifier,identifier used on software provided by Apple Inc. to uniquely identify a given class or type of item
+P3642,ARCHON code,unique number used to identify archival collection locations within the UK and key global repositories holding collections relating to British history
+P3643,significant environmental impact,types of environmental issues determined to have a significant impact on the object
+P3644,FFR player ID,identifier for a rugby union player on the French Rugby Federation website
+P3645,All Blacks player ID,identifier for a men's rugby union player on the New Zealand Rugby Union website
+P3646,Naismith Memorial Basketball Hall of Fame ID,identifier on the Naismith Memorial Basketball Hall of Fame website
+P3647,NBA.com player ID,identifier for a basketball player on the National Basketball Association's website
+P3648,NatureServe conservation status,conservation status assigned by NatureServe
+P3650,JMK film rating,rating of a film in the Austrian film rating system
+P3651,American Hockey League player ID,ID of a player at TheAHL.com
+P3652,Kontinental Hockey League player ID,ID of a player at KHL.ru
+P3653,ARRS runner ID,ID of player by ARRS (Association of Road Racing Statisticians)
+P3654,Chess.com member ID,Chess.com identifier used with https://www.chess.com/member/$1
+P3655,BDFutbol player ID,ID of a football player at BDFutbol
+P3656,Cross-tables.com Scrabble player ID,ID of a Scrabble player at cross-tables.com
+P3657,Croatian Football Statistics player ID,"ID of an association football (soccer) player at hrnogomet.com, the Croatian Football Statistics (Statistike hrvatskog nogometa) website"
+P3658,DZFoot.com player ID,ID of a football player at DZFoot.com
+P3659,Estonian Football Association player ID,ID of a player by the Estonian Football Association
+P3660,FootballFacts.ru player ID,ID for a football player at FootballFacts.ru
+P3661,ForaDeJogo manager ID,ForaDeJogo.net identifier for an association football (soccer) manager
+P3662,Ukrainian Association of Football player ID,ID of a player by Ukrainian Association of Football
+P3663,Fotbal DNES player ID,ID for a football player at Fotbal DNES
+P3664,Futsal Planet player ID,ID for a football player at Futsal Planet
+P3665,L'quipe football player ID,ID of a football player by L'quipe
+P3666,EPCR player ID,identifier for a rugby player on the European Professional Club Rugby website
+P3667,IWF athlete ID,ID of an athlete by International Weightlifting Federation
+P3668,Sambafoot player ID,ID of a football player at Sambafoot
+P3669,Swimming Australia swimmer ID,alphabetical identifier for a swimmer at Swimming Australia
+P3670,Tennis Archives player ID,ID of a tennis player at the Tennis Archives
+P3671,USA Gymnastics athlete ID,ID for an athlete at USA Gymnastics
+P3672,IOF athlete ID,identifier for an athlete by the International Orienteering Federation
+P3673,film-documentaire.fr film ID,identifier of a film (movie) in the French database film-documentaire.fr
+P3674,Mutopia composer ID,identifier for a composer at Mutopia Project
+P3675,Hans Christian Andersen Centre work ID,Identifier for a work by Hans Christian Andersen in the Digterens danske V¾rker catalogue
+P3676,National Bridge Inventory Number,"identifer of a bridge, in the USA's National Bridge Inventory (for other countries, use P9759)"
+P3677,Wereld van Oranje player ID,ID of a football player at Wereld van Oranje
+P3678,SA Rugby player ID,identifier for a rugby player on the South African Rugby Union website
+P3679,stock market index,stock market indexes for companies traded on this stock exchange
+P3680,statement supported by,entity that supports a given statement
+P3681,ESPNFC.com player ID,identifier for an association football (soccer) player at ESPNFC.com
+P3682,Australian Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at olympics.com.au, a website of the Australian Olympic Committee (AOC)"
+P3683,LFP player ID (former scheme),identifier for a football player on the Ligue de Football Professionnel website
+P3684,Driver Database driver ID,identifier for a driver in the Driver Database
+P3685,ESPN.com NBA player ID,identifier for a National Basketball Association player at ESPN.com
+P3686,ESPN.com NFL player ID,identifier for a National Football League player at ESPN.com
+P3687,ESPN.com NHL player ID,identifier for a National Hockey League player at ESPN.com
+P3689,ICF canoer ID,identifier for a canoer on the International Canoe Federation website
+P3690,IFSC climber ID,identifier for a climber on the International Federation of Sport Climbing website
+P3691,International Swimming Hall of Fame ID,identifier for an inductee on the International Swimming Hall of Fame website
+P3692,NCAA.com team ID,identifier for an American college sports team on the National Collegiate Athletic Association's website
+P3693,ISU short-track speed skater ID,"identifier for a short track speed skater on the ShortTrackOnLine.info website, based on ISU ID"
+P3694,SpeedSkatingNews.info speed skater ID,identifier for a speed skater on the SpeedSkatingNews.info website
+P3695,SpeedSkatingStats speed skater ID,identifier for a speed skater on the SpeedSkatingStats.com website
+P3696,Sports-Reference.com college basketball player ID,identifier for a NCAA Division I college men's basketball player on the Sports-Reference.com college basketball website
+P3697,Sports-Reference.com college football player ID,identifier for a college football player on the Sports Reference college football (SRCFB) website
+P3698,Tennis Australia player ID,identifier for a player on the Tennis Australia website
+P3699,Transfermarkt referee ID,identifier for an association football (soccer) referee in the transfermarkt.com database
+P3700,NHF player ID,identifier for a player on the Norwegian Handball Federation (NHF) website
+P3701,incarnation of,incarnation of another religious or supernatural being
+P3702,Catalogue of Illuminated Manuscripts ID,manuscript identifier in the British Library's Catalogue of Illuminated Manuscripts
+P3703,JMDb person or company ID,ID of an actor or a company at Japanese Movie Database
+P3704,KMDb film ID,ID of a film at Korean Movie Database
+P3705,RITVA Program ID,Radio and Television Archive Program ID of The National Audiovisual Institute of Finland
+P3706,RITVA Person ID,Radio and Television Archive Person ID of The National Audiovisual Institute of Finland
+P3707,Gridabase glacier ID,identifier for a glacier on the Glacier Risks Data Base website
+P3708,PhDTree person ID,ID of a person at PhDTree
+P3709,category for value different from Wikidata,item for categories of pages with template parameter value different from Wikidata
+P3710,Jewish Encyclopedia Daat ID,identifier for an entry at Jewish Encyclopedia Daat
+P3711,Vanderkrogt.net Statues ID,identifier for a public sculpture in the Vanderkrogt.net Statues Ð Hither & Thither online database
+P3712,objective of project or action,desired result or outcome
+P3713,category for value not in Wikidata,item for categories of pages with template parameter value not as property value in Wikidata
+P3714,Recreation.gov point of interest ID,identifier for a point of interest in an American recreation area on the Recreation.gov website
+P3715,NISH Hall of Fame ID (archived),identifier for a Hall of Fame inductee at the Niederschsisches Institut fr Sportgeschichte (Lower Saxony Institute for Sports History)
+P3716,social classification,social class as recognized in traditional or state law
+P3717,MEROPS enzyme ID,ID for a proteolytic enzyme in MEROPS database
+P3718,NCMEC person ID,identifier of a missing or unidentified person at the United States' National Center for Missing & Exploited Children
+P3719,regulated by,"organization that acts as regulator of an activity, financial market, or stock exchange"
+P3720,GPnotebook ID,"ID of a topic, in the British medical database GPnotebook"
+P3721,public key fingerprint,short sequence of bytes to identify a longer cryptographic public key
+P3723,USCG lighthouse ID,?dentifier for lighthouses in the USA by the US Coast Guard
+P3724,USHMM Holocaust Encyclopedia ID,identifier in the Holocaust Encyclopedia of the United States Holocaust Memorial Museum
+P3725,CEV player ID,identifier for a player on the European Volleyball Confederation's website
+P3726,EU-Football.info player ID,identifier for an association football player on the EU-Football.info website
+P3727,Serbia municipality ID,identifier of municipalities of Serbia
+P3728,New Zealand Heritage List number,"list number in the New Zealand Heritage List, issued by the Heritage New Zealand Pouhere Taonga"
+P3729,next lower rank,"lower rank or level in a ranked hierarchy like sport league, military ranks. If there are several possible, list each one and qualify with ""criterion used"" (P1013), avoid using ranks and date qualifiers. For sports leagues/taxa, use specific properties instead."
+P3730,next higher rank,"higher rank or level in a ranked hierarchy like sport league, military ranks. If there are several possible, list each one and qualify with ""criterion used"" (P1013), avoid using ranks and date qualifiers. For sports leagues/taxa, use specific properties instead."
+P3731,Serbia cadastral municipality ID,identifier of cadastral municipalities of Serbia
+P3732,PhilPapers record,identifier for papers on PhilPapers
+P3733,MOOMA artist ID,ID of an artist at the Israeli music website MOOMA
+P3734,category for value same as Wikidata,item for categories of pages with template parameter value same as Wikidata
+P3735,Yad Vashem Encyclopedia of the Ghettos ID,"identifier of a ghetto, or a place containing a ghetto, in the Yad Vashem Encyclopedia of the Ghettos"
+P3736,Eurovision Song Contest song ID,identifier for a song in the Eurovision Song Contest
+P3737,maximum wavelength of sensitivity,maximum wavelength that the item can detect
+P3738,minimum wavelength of sensitivity,minimum wavelength that the item can detect
+P3739,inflorescence,placement of flowers on the stem of a flower plant
+P3740,number of works,"qualifier on identifiers, e.g. for creators or locations, giving the number of works in the external database associated with the subject of the identifier"
+P3741,seed dispersal,mode used by the item to disperse its seeds
+P3742,International Hockey Federation player ID,identifier for a field hockey player on the International Hockey Federation website
+P3743,ITU/ISO/IEC object identifier,"unique global identifier standardized by the ITU and ISO/IEC for naming any object, concept, or thing"
+P3744,number of subscribers,"number of subscribers for subscription-based companies, e.g. telecommunication companies, newspapers, pay-TV channels, software, etc."
+P3745,World Rugby Sevens Series mens player ID,identifier for a male rugby sevens player on the World Rugby Sevens Series website
+P3746,Wildflowers of Israel ID,identifier of a taxon in the Wildflowers of Israel database
+P3747,SSRN author ID,identifier for an author at the Social Science Research Network
+P3748,Israel Football Association player ID,identifier for a player on the Israel Football Association website
+P3749,Google Maps Customer ID,"in Google Maps, Customer identifier for a place"
+P3750,KMDb documentary film ID,ID of a documentary film at Korean Movie Database
+P3751,Shoftim BeIsrael judge ID,database about the judges of Israel
+P3752,worst-case time complexity,time complexity of an algorithm at most
+P3753,best-case time complexity,time complexity of an algorithm at least
+P3754,average time complexity,time complexity of an algorithm on average
+P3755,worst-case space complexity,space complexity of an algorithm at most
+P3756,best-case space complexity,space complexity of an algorithm at least
+P3757,average space complexity,space complexity of an algorithm on average
+P3758,DOCOMOMO Ibrico ID,"identifier of a building, structure or group of buildings in Registros del Movimiento Moderno database, DOCOMOMO Ibrico"
+P3759,SAHRA heritage site ID,"identifier of heritage sites in South Africa, assigned by the South African Heritage Resources Agency"
+P3760,Iditarod musher ID,identifier for a musher on the Iditarod Trail Sled Dog Race website
+P3761,IPv4 routing prefix,range of IPv4 addresses
+P3762,openMLOL author ID,identifier of an author in the openMLOL digital library of cultural resources
+P3763,MIMO instrument ID,"identifier for a musical instrument, on the instrument keyword thesaurus from Musical Instruments Museums Online"
+P3764,pole position,"person, who starts race at first row (leader in the starting grid)"
+P3765,All-Athletics.com ID (archived),identifier for an athlete on the All-Athletics.com website
+P3766,European Athletics ID,identifier for an athlete on the European Athletic Association website
+P3767,French Athletics Federation athlete ID,identifier for an athlete on the French Athletics Federation website
+P3768,Medieval Libraries of Great Britain ID,identifier for books known to have been in British libraries during the Middle Ages
+P3769,It's Rugby player ID,identifier for a rugby player on the It's Rugby website
+P3770,PeakFinder ID,identifier for a mountain peak on the PeakFinder website
+P3771,activator of,protein for which this chemical acts as an activator
+P3772,agonist of,protein for which this chemical acts as an agonist
+P3773,antagonist of,protein for which this chemical compound acts as an antagonist
+P3774,blocker of,protein (e.g. channel/pore protein) for which this chemical compound acts as a blocker
+P3775,disrupting agent for,protein/protein complex for which this chemical compound acts as a disrupting agent
+P3776,inhibitor of,"protein for which this chemical compound acts as an inhibitor; only specify the inhibited function if the protein has more than one function (qualifier ""of"")"
+P3777,antisense inhibitor of,protein/gene for which this chemical (e.g. a miRNA/siRNA) acts as an antisense inhibitor
+P3778,positive allosteric modulator of,protein for which this chemical acts as a positive allosteric modulator
+P3779,negative allosteric modulator of,protein for which this chemical compound acts as a negative allosteric modulator
+P3780,active ingredient in,"is part of and forms biologically active component. Inverse of ""has active ingredient"""
+P3781,has active ingredient,"has part biologically active component. Inverse of ""active ingredient in"""
+P3782,Artnet artist ID,identifier of an artist in the Artnet database of auction results
+P3783,Christie's object ID,identifier for an object offered for sale by Christies
+P3784,CiteSeerX article ID,identifier string for a scientific article available from CiteSeer
+P3785,danskefilm film ID,identifier for a film in danskefilm.dk
+P3786,Danskefilm person ID,identifier for a person in danskefilm.dk
+P3787,danskefilm silent film ID,identifier for a silent film in danskefilm.dk
+P3788,BNMM authority ID,authority control identifier used at the National Library of Argentina
+P3789,Telegram username,"this item's username, channel or group on Telegram"
+P3790,AnimeCons.com guest ID,identifier for a person or group at AnimeCons.com
+P3791,Art Renewal Center artist ID,identifier of an artist at the Art Renewal Center's ARC Museum website
+P3792,rate of fire,the frequency at which a specific weapon can fire or launch its projectiles
+P3793,IPv6 routing prefix,range of IPv6 addresses
+P3794,Dictionary of Sydney ID,identifier in the Dictionary of Sydney
+P3795,Flora of Israel Online plant ID,identifier for a plant taxon or cultivar in the Flora of Israel Online database
+P3796,Bureau of Meteorology station ID,identifier of an Australian meteorological station issued by the Bureau of Meteorology
+P3797,autonomous system number,unique identifier for a collection of connected Internet Protocol (IP) routing prefixes under the control of one or more network operators
+P3798,Star Wars Databank ID,identifier of a fictional character and organization at Star Wars Databank
+P3799,Safsal player ID,basketball player Id in Safsal website
+P3800,Safsal coach ID,basketball coach Id in Safsal website
+P3801,INEGI municipality ID,identifier for a municipality in Mexico published by INEGI
+P3802,Launchpad.net project ID,"identifier for an official Launchpad repository (""project"") for a software application"
+P3803,original film format,"film format used to create a work (aliases: film gauge, film size)"
+P3804,TV Guide show ID (former scheme),ID of a television program at TV Guide
+P3805,Tax-exempt heritage asset ID,"identifier of an artwork, in the UK government's HMRC database of tax-exempt heritage assets"
+P3806,Mapa place ID,"identifier for a place, in the Mapa database of places in Israel"
+P3807,S2A3 Biographical Database ID,identifier of a person in the S2A3 Biographical Database of Southern African Science
+P3808,The Numbers movie ID,ID of a film at The Numbers
+P3809,YerelNET district ID,"identifier for a district of Turkey, in the YerelNET database"
+P3810,Parks.it ID,identifier for an Italian protected area on the Parks.it website
+P3811,Evidence & Conclusion Ontology ID,identifier in the Evidence & Conclusion Ontology for capturing evidence in biological research
+P3812,Elle.fr person ID,identifier for a person on the Elle.fr website
+P3813,Bivouac.com pass ID,"identifier of a North American mountain pass, at Bivouac.com"
+P3814,BoF person ID,identifier for a person on the Business of Fashion website
+P3815,volcano observatory,institution that monitors this volcanic landform or phenomenon
+P3816,film script,script version for subject film is described at
+P3817,FI WarSampo person ID,?dentifier in the WarSampo Finnish WW2 portal
+P3818,KMRB film rating,rating of a film in the South Korean film/video rating system
+P3819,FI WarSampo army unit ID,identifier in the WarSampo Finnish WW2 portal
+P3820,Flanders Arts Institute venue ID,identifier of a venue in the Flanders Arts Institute database for performing arts
+P3821,Bangla Movie Database ID,ID of actors or movies at Bangla Movie Database
+P3822,rules for classification,the rules for classification of a sports league
+P3823,Ethnologue language status,language status identifier by Ethnologue.com using EGIDS scale
+P3824,permanent building number VTJ-PRT,Persistent building identifier of the Population Information System in Finland
+P3825,United States Statutes at Large citation,citation of an Act of the United States Congress to the United States Statutes at Large
+P3826,Welsh Rugby Union men's player ID,identifier for a rugby union player selected with the Wales national team on the Welsh Rugby Union website
+P3827,JSTOR topic ID,identifier for a topic at JSTOR
+P3828,wears,clothing or accessory worn on subject's body
+P3829,Publons author ID,"identifier of an author or reviewer, in Publons"
+P3830,CueTracker player ID,ID about a specific snooker player at the CueTracker.net database
+P3831,object has role,"(qualifier) role or generic identity of the value of a statement (""object"") in the context of that statement; for the role of the item the statement is on (""subject""), use P2868"
+P3832,Europeana Fashion Vocabulary ID,identifier for clothing and fashion terms
+P3833,diaspora,diaspora that a cultural group belongs to
+P3834,RTC film rating,rating of a film in the Mexican film classification system
+P3835,Mendeley person ID,"deprecated identifier for an author of scholarly works, at mendeley.com (for numeric ID, see P1153)"
+P3836,Pinterest username,username of the Pinterest account of a person or an organization
+P3837,United States Public Law,citation to United States Public Law
+P3838,Tab4u song ID,"ID in the Israeli song database ""Tab4u"""
+P3839,Tab4u artist ID,"ID in the Israeli artist database ""Tab4u"""
+P3840,slope rating,the slope rating of a golf course is a measure of its difficulty for bogey golfers
+P3841,Human Phenotype Ontology ID,The Human Phenotype Ontology (HPO) is a widely used vocabulary of phenotypic abnormalities encountered in human disease
+P3842,located in the present-day administrative territorial entity,the item was located in the territory of this present-day administrative unit; however the two did not at any point coexist in time
+P3843,German Athletics Association athlete ID,identifier for an athlete on the German Athletics Association website
+P3844,Deutsche Synchronkartei film ID,identifier for films in the synchronisation database Deutsche Synchronkartei
+P3845,TV Guide person ID (former scheme),ID of a person at TVGuide.com
+P3846,DBC author ID,identifier for authors set by the Danish Bibliographic Centre
+P3847,Open Library subject ID,identifier for a topic in the Open Library database
+P3848,Irish Rugby Football Union men's player ID,identifier for a rugby union player selected with Ireland national team on the Irish Rugby Football Union website
+P3849,LombardiaBeniCulturali institution ID,identifier of a historical institution in the cultural heritage database of the Lombardy Region of Italy
+P3850,LombardiaBeniCulturali toponym ID,identifier of a historical toponym in the cultural heritage database of the Lombardy Region of Italy
+P3851,Cinenacional.com movie ID,identifier for a movie at cinenacional.com database (from Argentina)
+P3852,FlyBase Gene ID,Identifier for a gene in the FlyBase database of Drosophila genes and genomes
+P3853,Rat Genome Database ID,Identifier for a genetic element in the Rat Genome Database
+P3854,Soundtrack Collector ID,ID that characterizes a soundtrack at Soundtrack Collector (soundtrackcollector.com)
+P3855,LombardiaBeniCulturali artwork ID,identifier of an artwork in the cultural heritage database of the Lombardy Region of Italy
+P3856,Quebec municipalities geographical code,"geographical code of the municipalities, indigenous comunauties and unorganized areas in Quebec"
+P3857,Cinenacional.com person ID,identifier for a person at cinenacional.com database (from Argentina)
+P3858,route diagram,Wikimedia route diagram template
+P3859,Environment Ontology ID,ID from OBO Environment Ontology (without prefix)
+P3860,Wormbase Gene ID,Identifier for a genetic element in Wormbase
+P3861,App Store app ID,identifier for a mobile application in App Store
+P3862,MyDramaList name ID,identifier for a person in the MyDramaList database
+P3863,Italian Navy Lighthouses and Beacons ID,"identifier of a lighthouse or beacon in ""Fari e Segnalamenti"" list of the Italian Navy"
+P3864,suicide rate,"amount of suicides per 100,000 people in the place or group"
+P3865,type of reference,used to specify the type of a reference
+P3866,LAWA waterbody ID,identifier for bodies of water in Germany according to the Bund/Lnder-Arbeitsgemeinschaft Wasser (LAWA)
+P3867,Israel Chess Federation player ID,identifier for a chess player from the Israel Chess Federation
+P3868,MyDramaList title ID,identifier for a Film and TV Series in the MyDramaList database
+P3869,IAFD female performer ID,identifier for a female-born performer in the Internet Adult Film Database
+P3870,ZFIN Gene ID,identifier for a genetic element in the Zebrafish Model Organism Database
+P3871,tributary orientation,specify if the stream confluence is a left bank or right bank tributary
+P3872,patronage,"number of passengers, patrons or visitors in specified time period"
+P3874,Justia Patents inventor ID,ID of an inventor in Justia Patents
+P3875,Justia Patents company ID,ID of a company in Justia Patents
+P3876,category for alumni of educational institution,category containing people who studied at this institution
+P3877,HappyCow restaurant ID,"identifier for a vegan or vegetarian restaurant, on the HappyCow reviews website"
+P3878,Soundex,"phonetic algorithm for indexing names by sound, as pronounced in English. Format: initial of word followed by 3 digits (0Ð6)"
+P3879,Cologne phonetics,"phonetic algorithm which assigns to words a sequence of digits, the phonetic code"
+P3880,Caverphone,phonetic algorithm
+P3881,USA Track & Field Hall of Fame ID (legacy.usatf.org),identifier for a person at the USA Track & Field Hall of Fame website
+P3882,Tilastopaja female athlete ID,identifier for a female athlete on the Tilastopaja website
+P3883,Red Bull athlete ID,identifier for a sponsored athlete on the Red Bull website
+P3884,Tilastopaja male athlete ID,identifier for a male athlete on the Tilastopaja website
+P3885,History of Modern Biomedicine ID,identifier of a person or topic in the History of Modern Biomedicine database
+P3886,number of perpetrators,"number of perpetrators in an event, as reported by reliable sources"
+P3887,KVAB member ID,identifier of member of the Royal Flemish Academy of Belgium for Science and the Arts
+P3888,Boijmans artist ID,identifier for an artist in the Museum Boijmans Van Beuningen
+P3889,Swiss Federal Archives ID,"Identifier for an entity (portfolio, dossier, document) of the Swiss Federal Archives"
+P3890,MetaboLights Compound ID,identifiers for compound entries in the MetaboLights databases.
+P3891,observing time available,amount of observing time available at a telescope (or other instrument)
+P3892,PictoRight ID-Droit de suite,identifier for a visual artist for their droit de suite (money collection with artwork transfers) of the Dutch collective rights management organisation PictoRight and sister organisations worldwide
+P3893,public domain date,date the item enters into the public domain in a jurisdiction
+P3894,OSTI article ID,identifier of a scientific article at Office of Scientific and Technical Information
+P3895,INAO product ID,identifier of a geographical indication in Institut national de l'origine et de la qualit
+P3896,geoshape,geographic data from Wikimedia Commons
+P3897,Ladies European Tour golf player ID,"identifier for a golf player, in the Ladies European Tour database"
+P3898,Hotels.com hotel ID,identifier for a hotel on the Hotels.com website
+P3899,Medium username,username of the Medium account of a person or an organization
+P3900,CONICET person ID,"identifier for a researcher, scholar or support personnel at National Scientific and Technical Research Council (Argentina)"
+P3901,ADAGP artist ID,identifier for an artist as a member of the French collective rights management organisation ADAGP and sister organisations worldwide
+P3902,had as last meal,components of the last meal had by a person before death
+P3903,column,"typographical column in the page of a document, column number of source referenced for statement"
+P3904,VIVC grape variety ID,identifier in Vitis International Variety Catalogue
+P3906,Ishim ID,"identifier in the Israeli cinema, television and radio database"
+P3907,LoJ peak ID,identifier for a mountain on the Lists of John website
+P3908,Reprezentacija player ID,identifier for a Serbian association football player at Reprezentacija.rs
+P3909,last words,last words attributed to a person before their death
+P3910,Bollywood Hungama person numeric ID,identifier of an actor at Bollywood Hungama in the former scheme. Format: up to 9 digits
+P3911,STW Thesaurus for Economics ID,"identifier for a descriptor of the STW Thesaurus for Economics, linking to literature on economics and business administration"
+P3912,newspaper format,"physical size of a newspaper (berliner, broadsheet, tabloid, etc.)"
+P3913,MobyGames developer ID,ID of person in the database at MobyGames
+P3914,GuideStar Israel organization ID,ID in the Israeli non-profit organizations database GuideStar
+P3915,Australian Athletics Historical Results athlete ID,identifier for an athlete at the Australian Athletics Historical Results website
+P3916,UNESCO Thesaurus ID,identifier for a concept in the UNESCO Thesaurus
+P3917,IPA number order,the IPA order number of an IPA phoneme
+P3918,Rpertoire national des associations identifier,identifier of a French non-profit in the Rpertoire national des associations
+P3919,contributed to creative work,"person is cited as contributing to some creative or published work or series (qualify with ""subject has role"", P2868)"
+P3920,Canadian Coastguard Lighthouse ID,"identifier of a Canadian lighthouse or beacon in the Canadian Coast Guard List of Lights, Buoys and Fog Signals"
+P3921,Wikidata SPARQL query equivalent,SPARQL code that returns a set of entities that correspond with this category or list. Include ?item
+P3922,light sector,"visibility sector of a navigational light, if applicable specified by color, given in compass directions/azimuth from the viewing location"
+P3923,World Athletics athlete ID (Diamond League),identifier for an athlete on the World Athletics Diamond League website
+P3924,Track and Field Statistics female athlete ID,identifier for a female athlete on the Track and Field Statistics website
+P3925,Track and Field Statistics male athlete ID,identifier for a male athlete on the Track and Field Statistics website
+P3926,USA Track & Field athlete ID (legacy.usatf.org),identifier for an athlete on the USA Track & Field website legacy.usatf.org
+P3927,eWRC-results.com racer ID,identifier for a driver or co-driver on the eWRC-results.com website
+P3928,MotoGP racer ID,identifier for a motorcycle racer on the MotoGP website
+P3929,V&A item ID,identifier for items in the collection of the Victoria and Albert Museum
+P3930,Rallye-info.com driver or co-driver ID,identifier for a driver or co-driver on the Rallye-info.com website
+P3931,copyright holder,person or organisation who holds the copyright of a work according to the Berne Convention
+P3932,Digital Valencian Library author ID,"identifier of a person in the database of the Valencian Library, the regional library in the Land of Valencia, Spain"
+P3933,Cinema.de ID,identifier for a film or person in the German film website cinema.de
+P3934,face value,"value printed on a coin, stamp or banknote by the issuing authority"
+P3935,Chamber of Deputies of Italy storia ID,"identifier of a member of the Chamber of Deputies of the Kingdom of Sardinia, Chamber of Deputies of the Kingdom of Italy, or of the Chamber of Deputies of Italy, on the Chamber of Deputies of Italy website"
+P3936,NFF person ID,"identifier for person's profile at fotball.no, the official website of the Norwegian Football Federation"
+P3937,Reactome ID,Identifier used in Reactome to uniquely identify a biological pathway
+P3938,named by,person or organisation that coined the name; use as qualifier for P2561 and its subproperties
+P3939,English Short Title Catalogue identifier,identifier in the English Short Title Catalogue
+P3940,OlimpBase Chess Olympiad player ID,identifier for a player at www.olimpbase.org who took part in the Chess Olympiad
+P3941,Israel Antiquities Authority ID,ID in the Israeli Antiquities Authority archive
+P3942,UCI BMX Supercross World Cup Results rider ID,"identifier for a rider on the Bmx-results.com, the UCI BMX Supercross World Cup Results website"
+P3943,Tumblr username,account name on Tumblr
+P3944,Old Bailey Proceedings ID,"identifier for a trial, on the Old Bailey Proceedings website"
+P3945,RANM member ID,identifier of a member of the Spanish Royal Academy of Medicine
+P3946,Dictionary Grierson ID,ID for Argentine scientists and researchers from the Diccionario de cientficos argentinos Dra. Grierson
+P3948,MLL player ID,identifier for a player on the Major League Lacrosse website
+P3949,Juwra.com ID,"identifier for a race, a team or an athlete on the Juwra.com website"
+P3950,narrower external class,more specific subclass included in other ontology but not in Wikidata
+P3951,BioRxiv ID,"identifier of a document in BioRxiv, a preprint repository for the biological sciences launched in November 2013"
+P3952,Stereo Ve Mono artist ID,"ID in the Israeli artist database ""Stereo Ve Mono"""
+P3953,ALPG Tour golf player ID,historical identifier for a female golf player on a discontinued Australian Ladies Professional Golf website
+P3954,Italian Senate ID,identifier of a member of the Senate of the Kingdom of Sardinia or of the Senate of the Kingdom of Italy on the Italian Senate website
+P3955,NLL player ID,identifier for a player on the National Lacrosse League website
+P3956,National Academy of Medicine (France) member ID,
+P3957,RealGM basketball player ID,identifier for a basketball player on the RealGM website
+P3958,ENARD athlete ID,ID for argentinian athletes from the Ente Nacional de Alto Rendimiento Deportivo (High Sport Performance National Entity)
+P3959,NNL item ID,ID for a record in the National Library of Israel (NLI) Online Catalog (NNL)
+P3960,Base biographique AUTOR ID,notice of a personality linked to the funds of the Mediatheque of Architecture and Heritage (France)
+P3961,Unifrance film ID,identifier of a film on unifrance.org
+P3962,Global Trade Item Number,"GTIN (or EAN, UCC) is used to identify products via their barcodes"
+P3963,Clochers de France ID,identifier of a religious building on the clochers.org website
+P3964,BDCYL authority ID,"identifier of an author, topic or place in Biblioteca Digital de Castilla y Len"
+P3965,Bridgeman artist ID,identifier for an artist in Bridgeman images
+P3966,programming paradigm,programming paradigm in which a programming language is classified
+P3967,final event,final event of a competition
+P3968,CETS number,Council of Europe treaty number
+P3969,signed form,manually coded form of this language
+P3970,channel number,channel number of given TV channel; use with the mandatory qualifier P137
+P3971,PASE Domesday person ID,identifier for a land holder in 1066 or 1087 on the PASE Domesday website
+P3972,PASE Domesday place,Identifier for a settlement in 1066 or 1087 on the PASE Domesday website
+P3973,PIM authority ID,"ID for an authority record (mostly persons) in the PIM (Pet?fi Literary Museum, Hungary)"
+P3974,nature preserve in North Rhine-Westphalia ID,"ID of a nature preserve in North Rhine-Westphalia as defined by the State Agency for Nature, Environment and Consumer Protection North Rhine-Westphalia"
+P3975,secretary general,"leader of a political or international organization, sometimes below the chairperson (P488)"
+P3976,BVMC work ID,identifier of a work on the Biblioteca Virtual Miguel de Cervantes
+P3977,Songkick venue ID,"identifier for a venue, on Songkick"
+P3978,IECIC 2015 ID,Inventory of Existing Cosmetic Ingredients in China (2015)
+P3979,Unifrance company ID,identifier of a company on unifrance.org
+P3980,Unifrance person ID,identifier of a person on unifrance.org
+P3981,Misjonsarkiv person ID,identifier in the missionary archives of VID Specialized University
+P3982,TA98 Latin term,Latin name for anatomical subject as described in Terminologia Anatomica 98
+P3983,sports league level,the level of the sport league in the sport league system
+P3984,subreddit,name of the Reddit forum associated to this subject
+P3985,supports programming language,programming language which is supported by this programming tool
+P3986,Sequence Ontology ID,identifier of a term in the sequence ontology
+P3987,SHARE Catalogue author ID,"identifier for authors in SHARE Catalogue, a linked data federated catalogue of several Southern Italy universities"
+P3988,National Library Board Singapore ID,"Identifier of a person, organisation or place from the name authorities of National Library Board"
+P3989,members have occupation,all members of this group share the occupation
+P3990,BG EKATTE place ID,"Bulgarian place ID (settlement, community=Kmetstvo, municipality=Obshtina, province=Oblast) by the BG National Statistical Institute (NSI)"
+P3991,Austrian Textbook ID,This identifier is used for textbooks in Austria that are allowed to be used in public schools.
+P3992,SSB urban settlement number,Numeric ID for urban settlements in Norway assigned by Statistics Norway (SSB) since 1980
+P3993,Vitaskr ID,"identifier of an Icelandic lighthouse or beacon in Vitaskr, a list of lights by the Icelandic Coast Guard"
+P3994,racon signal,"signal that a radar beacon responds in morse code, when triggered by radar"
+P3995,Filmweb.pl ID,"identifier for person, film (movie), TV series or videogame, in the filmweb.pl database"
+P3996,Bait La Zemer Ha-Ivri song ID,"ID in the israeli database for Israeli music, owned by the National Library of Israel"
+P3997,Bait La Zemer Ha-Ivri artist ID,"ID in the israeli database for Israeli music, owned by the National Library of Israel"
+P3998,Censo-Gua archive ID,identifier of an archive in Censo-Gua de Archivos de Espaa e Iberoamrica
+P3999,date of official closure,date of official closure of a building or event
+P4000,has fruit type,"morphology of the fruit of this taxon, as defined in botany"
+P4001,Latvian Protected Nature Territory URL,URL of official information pages about Latvian Protected Nature Territories from Nature Conservation Agency
+P4002,WFD Ecological status,Ecological status of a Water Body in accordance with the Water Framework directive.
+P4003,Facebook page ID,"official Facebook page of this entity (only for use with URLs containing ""/pages/"")"
+P4004,escutcheon image,use for the shield part only: use P94 for a coat of arms
+P4005,Bavarikon ID,identifier of a geographical object in the database of places of Bavarikon
+P4006,overrules,case that supersedes another case
+P4007,DBS ID,identifier in the German/Austrian Library Statistics (DBS/ BS)
+P4008,Early Aviators people ID,"identifier for a person by Early Birds of Aviation, at www.earlyaviators.com"
+P4009,RKY national built heritage environment ID,identifier in the national built heritage environments listing RKY
+P4010,GDP (PPP),gross domestic product (GDP) at purchasing power parity (current international $)
+P4011,Semantic Scholar paper ID,identifier for an article in the Semantic Scholar database (40 hexadecimal digits; for numeric ID see P8299)
+P4012,Semantic Scholar author ID,identifier for an author in the Semantic Scholar database
+P4013,Giphy username,this item's username on Giphy
+P4014,Australian Statistical Geography 2011 ID,identifier of a geographic region defined in the Australian Statistical Geography Standard 2011
+P4015,Vimeo identifier,this item's username or ID on Vimeo
+P4016,SlideShare username,this item's username on SlideShare
+P4017,Ustream username,this item's username on Ustream
+P4018,The Arabidopsis Information Resource Accession,"Identifier for an object (e.g. clone, gene, genetic marker, sequence, etc.) in TAIR"
+P4019,USL Championship player ID,"identifier for soccer player profile on website of USL Championship, formerly known as United Soccer League (USL) and USL Pro"
+P4020,ISQ dimension,"property of an observable physical quantity being a product of the SI base dimensions (length, mass, time, etc.)"
+P4021,danskefilm animated film ID,identifier for a animated film in danskefilm.dk
+P4022,danskefilm TV series ID,identifier for a TV serie in danskefilm.dk
+P4023,German Football Association person ID,"identifier for players, manager and referees in the datacenter of the German Football Association (Deutscher Fu§ball-Bund, DFB)"
+P4024,ADW taxon ID,identifier for a taxon in the Animal Diversity Web database
+P4025,Pinakothek artist ID,identifier in the Pinakothek collection
+P4026,Cullum number,identifier for a graduate of the US Military Academy (West Point)
+P4027,National Discography of Italian Song work ID,identifier for a musical work in National Discography of Italian Song website
+P4028,Google Scholar paper ID,identifier for a paper in Google Scholar
+P4029,Latvian Protected Nature Territory ID,identifier for geographical territories under special state-level protection in Latvia
+P4030,PLU code,"identification numbers affixed to fruits and vegetables for sale, used in checkout and inventory"
+P4031,Hungarian NGO ID,registration number for Hungarian NGO
+P4032,reviewed by,"person who reviewed/refereed the work, e.g., scientific peer-reviewer"
+P4033,Mastodon address,address on the Mastodon decentralized social network. The form is: 'user@server.domain' there is no leading '@' as sometimes written to distinguish Mastodon addresses from email addresses.
+P4034,Shironet artist ID,ID of an artist in the Israeli Shironet database
+P4035,Shironet song ID,"ID of a song in the israeli database for lyrics, Shironet"
+P4036,field of view,angular extent of the observable world that can be seen or sensed by the item
+P4037,South Australian Heritage Register Database ID,"identifier for a place with recognised heritage value, in South Australia's heritage database"
+P4038,Danish List of Lights and Fog signals ID,"identifier in the Danish List of a Lighthouse, beacon or fog signal in the Kingdom of Denmark"
+P4040,Rock.com.ar artist ID,identifier for an artist at Rock.com.ar
+P4041,Rock.com.ar album ID,identifier for an album at Argentinean website Rock.com.ar
+P4042,ESBL athlete ID,identifier for a sportsperson in the Estonian sportsbiographical lexicon
+P4043,emulates,"emulates the identified platform, CPU, or system"
+P4044,therapeutic area,disease area in which a medical intervention is applied
+P4045,Sandbox-Tabular data,A sandbox type per available data type
+P4046,SIMC place ID,identifer for places in Poland in the SIMC system run by the Polish Central Statistical Office
+P4047,Sandbox-Geographic shape,A sandbox type per available data type
+P4048,J.League manager ID,"identifier for a manager (coach) at website of J.League, Japan's professional association football (soccer) league"
+P4050,French Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at espritbleu.franceolympique.com, a website of the French National Olympic and Sports Committee (French: Comit national olympique et sportif franais, CNOSF)"
+P4051,Legislation of Ukraine ID,identifier in the Verkhovna Rada database of laws and regulations of Ukraine
+P4052,Academia.edu institutional ID,academic institution page on academia.edu
+P4053,Team Deutschland athlete ID,"identifier for an athlete (sportsperson) at teamdeutschland.de, a website of the German Olympic Sports Confederation (German: Deutscher Olympischer Sportbund, DOSB)"
+P4054,Canadian Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at Olympic.ca, the official website of the Canadian Olympic Committee (COC)"
+P4055,Norwegian List of Lights ID,identifier of lighthouses and beacons in the Norwegian List of Lights issued by the Norwegian Coastal Administration
+P4056,New Zealand Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at olympic.org.nz, a website of the New Zealand Olympic Committee (NZOC)"
+P4057,Irish Sites and Monuments Record ID,identifier in Sites and Monuments Record database of Ireland
+P4058,FINESS ID,identifier of a medical facility in France in the FINESS directory
+P4059,Irish National Monument ID,"identifier of a structure, in National Monument database of Ireland, maintained by Heritage Ireland"
+P4060,Brazilian Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at cob.org.br, a website of the Brazilian Olympic Committee (Portuguese: Comit Olmpico do Brasil, COB)"
+P4061,Lithuanian National Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at ltok.lt, a website of the National Olympic Committee of Lithuania (Lithuanian: Lietuvos tautinis olimpinis komitetas, LTOK)"
+P4062,Czech Olympic Committee (olympijskytym.cz) athlete ID,"identifier for an athlete (sportsperson) at olympijskytym.cz, a website of the Czech Olympic Committee (Czech: ?esk? olympijsk? v?bor, ?OV) - former website olympic.cz used a different identifier"
+P4063,United States Olympic & Paralympic Committee athlete ID,"identifier for an athlete (sportsperson) at TeamUSA.org, a website at the United States Olympic & Paralympic Committee (USOPC)"
+P4065,Argentine Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at coarg.org.ar, a website of the Argentine Olympic Committee (Spanish: Comit Olmpico Argentino, COA)"
+P4066,Hungarian Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at olimpia.hu, a website of the Hungarian Olympic Committee (Hungarian: Magyar Olimpiai Bizottsg, MOB)"
+P4067,Romanian Olympic and Sports Committee athlete ID,"identifier for an athlete (sportsperson) at cosr.ro, a website of the Romanian Olympic and Sports Committee (Romanian: Comitetul Olimpic ?i Sportiv Romn, COSR)"
+P4068,Chinese Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at data.star.sports.cn, the Chinese Olympic Committee's CIS Chinese Athletes Database"
+P4069,Italian National Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at CONI.it, a website of the Italian National Olympic Committee (Italian: Comitato Olimpico Nazionale Italiano)"
+P4070,identifier shared with,"qualifier, to be used on external identifier IDs, indicating another Wikidata item is also matched to this ID"
+P4071,Zemereshet artist ID,"identifier for an artist in the Israeli database for lyrics, Zemereshet"
+P4072,Zemereshet song ID,"ID of a song in the israeli database for lyrics, Zemereshet"
+P4073,Fandom wiki ID,"identifier of a topic's wiki, in Fandom.com"
+P4074,FFN swimmer ID,"unique federal identifier (IUF) of a French or foreign swimmer in extraNat.fr, database of the French Swimming Federation (FFN)"
+P4075,Czech Monument Catalogue Number,ID given to protected but also some unprotected monuments and other objects in the Czech Republic on the official Monument Catalogue of the National Heritage Institute
+P4076,WorldSBK.com racer identifier,identifier for a motorcycle racer on the WorldSBK.com website
+P4077,Pizmonet ID,"ID of an artist or a song in the israeli database for hit parades, Pizmonet"
+P4078,SKIP code,kanji classification according to the System of Kanji Indexing by Patterns
+P4079,Theatres Trust Database ID,identifier of the Theatres Trust Database
+P4080,number of houses,number of houses in given territorial entity
+P4081,BHL creator ID,"identifier for an author (""creator"") in the Biodiversity Heritage Library database"
+P4082,captured with,"equipment (e.g. model of camera, lens microphone), used to capture this image, video, audio, or data"
+P4083,Park Alpha Code,4-letter identifier for a U.S. National Park System unit on the website of the National Park Service
+P4084,MyAnimeList people ID,identifier for a person or group of people on MyAnimeList
+P4085,MyAnimeList character ID,identifier for a fictional character on MyAnimeList
+P4086,MyAnimeList anime ID,identifier for an anime on MyAnimeList
+P4087,MyAnimeList manga ID,identifier for a manga on MyAnimeList
+P4088,Irish National Inventory of Architectural Heritage ID,"identifier of a structure, in National Inventory of Architectural Heritage database of Ireland"
+P4089,Global Terrorism Database ID,identifier in the Global Terrorism Database by the National Consortium for the Study of Terrorism and Responses to Terrorism (START)
+P4090,Biodiversity Repository ID,"identifier of a repository, in the Biodiversity Repository database"
+P4091,Irish Grid Reference,grid location reference from the Irish Grid reference system used in Ireland
+P4092,checksum,"small-sized datum derived from a block of digital data for the purpose of detecting errors. Use qualifier ""determination method"" (P459) to indicate how it's calculated, e.g. MD5."
+P4093,Australian Statistical Geography 2016 ID,Identifier of a geographic region defined in the Australian Statistical Geography Standard 2016
+P4094,Australian Standard Geographic Classification 2006 ID,Identifier of a geographic region defined in the Australian Standard Geographic Classification 2006
+P4095,Principal Galaxies Catalogue ID,identifier for an astronomical object in the Principal Galaxies Catalogue
+P4096,RePEc institute ID,identifier for economics research institutions in the Research Papers in Economics (RePEc) database
+P4097,MuseScore ID,identifier in the MuseScore database
+P4098,BVMC place ID,"identifier of a place on the Biblioteca Virtual Miguel de Cervantes, data.cervantesvirtual.com"
+P4099,metrically compatible typeface,"typeface metrically compatible with this typeface: glyph position, width and height match"
+P4100,parliamentary group,parliamentary group to which a member of a parliament belongs
+P4101,dissertation submitted to,institution to whom a thesis or dissertation is submitted
+P4102,Atlas of Hillforts ID,identifier in the Atlas of Hillforts database
+P4103,assets under management,total market value of financial assets which a financial institution manages on behalf of its clients and itself
+P4104,Carnegie Hall agent ID,identifier for a person or ensemble in the Carnegie Hall Linked Open Data (LOD)
+P4105,EGF rating,rating given by EGF (European Go Federation) to European go players
+P4106,Finnish archaeological heritage ID,identifier for the Archaeological heritage register for items in mainland Finland
+P4107,Framalibre ID,unique identifier in the Framalibre free software directory
+P4108,Gedbas genealogy person ID,identifier for a person in the genealogical database of the Verein fr Computergenealogie e.V. on gedbas.genealogy.net
+P4109,URN-NBN,URI in the urn:nbn: namespace as specified by RFC 3188
+P4110,Crunchyroll ID,identifier for an anime or drama topic on Crunchyroll
+P4111,danskefilm TV Christmas calendar,identifier for a TV Christmas calendar in danskefilm.dk
+P4112,danskfilmogtv person ID,identifier for a person in danskfilmogtv.dk
+P4113,FRED time-series ID,identifier for an economic data set provided by St. Louis Fed's Federal Reserve Economic Data (FRED)
+P4114,ADK member ID,Akademie der Knste in Berlin member ID
+P4115,INSPIRE ID,"universal identifier from Infrastructure for Spatial Information in the European Community (INSPIRE), used across EU databases"
+P4116,JewAge person ID,"identifier for a person on JewAge, a genealogical database for Jewish people"
+P4117,National Record of the Historic Environment ID,"Historic England identifier for archaeological, architectural, and maritime sites"
+P4118,NLS-FI Geographic Name ID,National Land Survey of Finland Geographic Name ID
+P4119,NLS Geographic Names Register Place ID,National Land Survey of Finland Geographic Names Register Named Place ID
+P4120,Ontario Heritage Act Register ID,identifier of a property listed on the Ontario Heritage Act Register
+P4121,openAIP ID,"identifier of an aerodrome, in the openAIP (open aeronautical information platform) database"
+P4122,PalDat plant ID,identifier for a plant species in the Palynological Database (PalDat) for pollen of the University of Vienna
+P4123,French National Assembly ID,identifier for a member of the French National Assembly on the official website (do not confuse with Sycomore ID)
+P4124,Who's Who in France biography ID,unique identifier in the Who's Who in France online biography dictionary
+P4125,Titan ID,identifier for a taxon (Cerambycidae) in the Titan database
+P4126,ESEC person ID,"identifier of a member of the French Economic, Social and Environmental Council"
+P4127,EmbassyPages.com ID,"ID of an embassy or a consulate general in the database for diplomatic missions, EmbassyPages.com"
+P4128,NPSN Indonesian school ID,identifier for a school in Indonesia
+P4129,Cinema Treasures ID,identifier for a cinema in the Cinema Treasures database
+P4130,USHMM person ID,"identifier for a person in the UHSMM, a database of Holocaust survivors and victims"
+P4131,annual energy output,annual energy output of a power plant
+P4132,linguistic typology,classification of languages according to their linguistic trait (as opposed to historical families like romance languages)
+P4133,Tourer.it ID,"identifier for a cultural heritage site in Emilia-Romagna region in Italy, in the Tourer.it open data portal"
+P4135,maximum age,"highest age a person is eligible to do something, for example be member in youth organisation or sport teams, some positions like judges, clinical trials, etc"
+P4136,WIGOS station ID,"identifier of a meteorological station, in the WIGOS database"
+P4137,muzzle velocity,speed of a projectile at the moment it leaves the muzzle of a gun
+P4138,Treasury of Lives ID,"identifier for a person in the biographical encyclopedia of biographies related to Tibet, Inner Asia, and the Himalayan region"
+P4139,National Assembly of Nigeria ID,"identifier for a person on the National Assembly of Nigeria website, both for Representatives and Senators"
+P4140,energy storage capacity,storage capacity of a battery or energy storage system
+P4141,Gatehouse Gazetteer place ID,identifier for the castle sites in the Gatehouse Gazetteer website
+P4142,RIWAQ Registry of Historic Buildings in Palestine ID,identifier for a historic building in Palestine on the RIWAQ database
+P4143,Finnish List of Lights ID,"identifier of a lighthouse or beacon in the Finnish List of Lights, issued by the Finnish Transport Agency"
+P4144,Athenaeum artwork ID,artwork id in the Athenaeum artworks website
+P4145,Athenaeum person ID,artist id in the Athenaeum artworks website
+P4146,Athenaeum museum ID,museum or other repository/source id in the Athenaeum artworks website
+P4147,conjugate acid,species formed by accepting a proton (H?)
+P4149,conjugate base,species formed by losing a proton (H?)
+P4150,weather history,link to a Commons tabular data file with the weather history of a certain place
+P4151,game mechanics,constructs of rules or methods designed for interaction with the game state
+P4152,file format identification pattern,pattern or string which is used to identify a file as having a particular known format
+P4153,offset,"qualifier of ""magic number"" for the number of bytes before the magic number to be searched in a file"
+P4154,National Forest Foundation ID,identifier for an American national forest on the National Forest Foundation website
+P4155,separator,parameter for single-value constraint; multiple values are allowed under that constraint if they have different values for this property
+P4156,Czech Registration ID,"8-digit identifier for an organization (or self-employed entrepreneur) in the Czech Republic, conferred by the Czech Statistical Office"
+P4157,MEG ID,ID number for the online catalogue of Muse d'ethnographie de Genve
+P4158,autores.ar ID,identifier for an Argentinian literary author
+P4159,WeRelate person ID,identifier for a person in the Creative Commons-licensed genealogical database WeRelate
+P4160,Michelin Restaurants ID,identifier for a restaurant in the Michelin Restaurants website
+P4161,Michelin Voyages ID,identifier for a place in the website Michelin Voyages
+P4162,AUR package,official name of the package on the Arch User Repository
+P4163,magnification,amount of optical magnification provided
+P4164,National Baseball Hall of Fame and Museum ID,identifier for a member of the United States' National Baseball Hall of Fame and Museum
+P4165,CODECS ID,identifier in CODECS database for Celtic studies
+P4166,Georgian National Register of Monuments ID,identifier for a monument in the National Register of Monuments of Georgia
+P4167,Dagens N¾ringsliv topic ID,"identifier for a topic, used by the Norwegian daily newspaper Dagens N¾ringsliv"
+P4168,IEDB Epitope ID,identifier for an Epitope in the Immune Epitope Database
+P4169,YCBA agent ID,identifier for a person in the Yale Center for British Art database
+P4170,America's National Parks store ID,identifier for a United States National Park System unit on the America's National Parks website
+P4171,World Heritage Tentative List ID,identifier for a site on the UNESCO World Heritage Tentative Lists
+P4172,America's Byways road ID,identifier for a United States road on the America's Byways website
+P4173,Instagram location ID,identifier for a location on Instagram
+P4174,Wikimedia username,user name of a person across all Wikimedia projects
+P4175,Patreon ID,identifier for a person on Patreon
+P4176,effective firing range,distance within which a weapon can be used effectively
+P4177,Finnish National Gallery artist ID,identifier for people in the Finnish National Gallery
+P4178,Beazley Archive Pottery Database ID,identifier for an artefact in the Beazley Archive Pottery Database
+P4179,tabular population,same as population (P1082); used when there is data for many different points in time
+P4180,GujLit person ID,"identifier for a person, in the GujLit database of literature of the Gujarati language of India"
+P4181,GujLit book ID,"identifier for a book, in the GujLit database of literature of Gujarati language of India"
+P4182,National Natural Landmarks site ID,identifier an American National Natural Landmark on the United States' National Park Service website
+P4183,angle from vertical,angle the principal axis of an item makes with the vertical; use degree (Q28390) as unit
+P4184,slope,angle the surface of an item makes with the horizontal
+P4185,iconographic symbol,"identifying element typically depicted as accompanying or worn by this religious figure, hero, fictional or historical character"
+P4186,Australian Women's Register ID,identifier for a person or organisation in the Australian Women's Register
+P4187,Wylie transliteration,transliteration from Tibetan to Latin script with the Wylie method
+P4188,Tibetan pinyin,official Chinese transliteration method for Tibetan
+P4189,THL Simplified Phonetic Transcription,transliteration from Tibetan to Latin script with the method developed by the Tibetan and Himalayan Library (THL)
+P4190,Rivers.gov protected area ID,identifier for an American National Wild and Scenic River on the United States' Rivers.gov website
+P4191,Alljudo judoka ID,identifier for a judoka on the Alljudo.net website
+P4192,LNH player ID,identifier for a player on the Ligue Nationale de Handball (LNH) website
+P4193,Familypedia person ID,"identifier for a person on Familypedia, a genealogical database hosted at Wikia"
+P4194,CNPS ID,identifier in the California Native Plant Society database
+P4195,category for employees of the organization,Wikimedia category for people who work or worked at this organization
+P4196,cytogenetic location,cytogenetic location of the gene or region
+P4197,IBM graphic character set global ID,identifier of a character set assigned by IBM
+P4198,Google Play Music artist ID (former scheme),identifier of an artist on the Google Play Music website. Obsolete starting December 2020
+P4199,Google Play Music album ID (former scheme),"identifier for an album, single, other music release or other publication on the Google Play Music website. Obsolete starting December 2020"
+P4200,Christie's creator ID,identifier for an artist in the Christie's online database
+P4201,PagesJaunes ID,identifier for a professional in France in the PagesJaunes website
+P4202,WFD Chemical status,chemical status of a Water Body in accordance with the Water Framework directive of the European Environment Agency
+P4203,ROARMAP ID,identifier in the Registry of Open Access Repository Mandates and Policies
+P4204,The Times of India topic ID,identifier for a topic for news and information aggregation on The Times of India website
+P4206,FOIH person ID,identifier for a person or an organization in the database of the Flemish organization for Immovable Heritage
+P4207,Italian National Earthquake Center ID,identifier for an earthquake in the Italian National Earthquake Centre database
+P4208,Billboard artist ID,identifier for an artist at the Billboard website
+P4209,danskfilmogtv title ID,identifier for a film or TV episode or series in danskfilmogtv.dk
+P4210,Bashkir encyclopedia (Bashkir version) ID (former scheme),Encyclopedia
+P4211,Bashkir encyclopedia (Russian version) ID (former scheme),Bashkir Encyclopedia
+P4212,PACTOLS thesaurus ID,identifier in the PACTOLS archaeology thesaurus by FRANTIQ
+P4213,Unicode code point,hexadecimal code point in Unicode
+P4214,highest observed lifespan,age of the oldest specimen of a taxon for which the age can be verified
+P4215,nLab ID,name of a page in nLab wiki
+P4216,LNB Pro A player ID,identifier for a player in the Ligue Nationale de Basket-ball (LNB) Pro A webpages
+P4217,UK Electoral Commission ID,identifier issued by the Electoral Commission in the UK to identify a political party
+P4218,shelf life,length of time that a commodity may be stored without becoming unfit for use or consumption
+P4219,Tyrolean Art Cadastre inventory ID,"identifier of a cadastre published by the regional government of Tyrol, Austria"
+P4220,order of battle,arrangement of units and hierarchical organization of the armed forces involved in the specified military action
+P4221,National Criminal Justice ID,"identifier for a publication, report, article or audiovisual product, in the United States' National Criminal Justice Reference Service database"
+P4222,United Nations Treaty Series Volume Number,volume number within the United Nations Treaty Series
+P4223,Treccani's Enciclopedia Italiana ID,identifier for the Enciclopedia Italiana on Treccani website
+P4224,category contains,category contains elements that are instances of this item
+P4225,IPA Braille,representation of a IPA phoneme in the Braille system
+P4226,Cyworld ID,identifier of the subject at Cyworld
+P4227,Indonesian Small Islands Directory ID,identifier for DPKI directory of small islands by the Indonesian government
+P4228,Encyclopedia of Australian Science ID,"identifier for a person or organisation in the Encyclopedia of Australian Science, an online compilation of biographical data about Australian scientists and their organisations"
+P4229,ICD-10-CM,"identifier in the ICD-10-CM (International Classification of Diseases, 10th Revision, Clinical Modification)"
+P4230,Sefaria ID,"identifier for Sefaria, an online library of Jewish texts with freely licensed content"
+P4231,United Nations Treaty Series registration number,registration number of a treaty within the United Nations Treaty Series
+P4232,Figshare author ID,identifier for an author on Figshare
+P4233,PatientsLikeMe condition ID,"identifier for a condition on PatientsLikeMe, a website where patients can share health information"
+P4235,PatientsLikeMe treatment ID,"identifier for a treatment on PatientsLikeMe, a website where patients can share health information"
+P4236,PatientsLikeMe symptom ID,"identifier for a symptom on PatientsLikeMe, a website where patients can share health information"
+P4238,webcam page URL,URL of a page broadcasting pictures by a webcam situated in this location or mounted on this element
+P4239,vocalized name,item name with full vowel marks
+P4240,regular expression syntax,qualifier to indicate which syntax/variant of regular expressions applies to a particular pattern
+P4241,refine date,qualifier to narrow down the precision of a date not fully specified by the Wikidata time datatype precision field
+P4242,maximal rate of climb,maximum rate of positive altitude change with respect to time for an aircraft
+P4243,candidate number,number of the candidate in an election
+P4244,Bavarian monument authority ID,"identifier for cultural heritage monuments (ensembles, buildings and grounds) in Bavaria, issued by the Bavarian State Office for the Preservation of Monuments"
+P4245,cultural heritage monument in Serbia ID,"identifier for cultural heritage sites in the Republic of Serbia, from the WLM database"
+P4246,LfD-HB object ID,identifier for cultural heritage monuments issued by the Bremen State Office for the Preservation of Monuments
+P4247,Tagesschau election ID,identifier of a parliamentary election in the elections archive on tagesschau.de
+P4248,The Black Book ID,"ID for a person wanted by the Nazi administration, in the case of an invasion of the United Kingdom, as listed in the ""Black Book"" (""Sonderfahndungsliste GB"")"
+P4249,Vincoli in Rete ID,"identifier of a building or site in the database of the MIBACT (Ministero per i Beni, le Attivit Culturali e il Turismo) concerning regulatory constraints on cultural heritage in Italy"
+P4250,defined daily dose,average maintenance dose per day for a medicine used for its main indication in adults
+P4251,TSE number,number assigned by the Brazilian Superior Electoral Court to registered political parties
+P4252,All-Russian Mathematical Portal ID,identifier for a mathematician in the All-Russian Mathematical Portal
+P4253,number of constituencies,number of constituencies related to a legislative body
+P4254,Banglapedia ID (Bengali),"identifier for a Bengali article on Banglapedia, the national online encyclopedia of Bangladesh"
+P4255,Banglapedia ID (English),"identifier for an English article on Banglapedia, the national online encyclopedia of Bangladesh"
+P4256,BOE ID,external and unique identifier which represents a publication in the Spanish Official Gazette
+P4257,National Museums of Japan e-museum ID,"identifier of a work, in the National Museums of Japan's e-museum website"
+P4258,Gallica ID,"Gallica ID of a creative work (e.g., book scan)"
+P4259,Lega Pallavolo Serie A Femminile player ID,identifier for a volleyball player on the Lega Pallavolo Serie A Femminile website
+P4260,NPB player ID,identifier for a player on the Nippon Professional Baseball website
+P4261,FFVoile sailor ID,"licence number of a sailor for the French Sailing Federation (French: Fdration Franaise de Voile), corresponding identifier on its website"
+P4262,Footofminin.fr player ID,identifier for a female association football player on the Footofminin.fr website
+P4263,THW Kiel player ID,identifier for a handball player on the THW Kiel website
+P4264,LinkedIn company ID,"identifier for an official company, school, or organisation page, on LinkedIn"
+P4265,Reddit username,username on the social news website Reddit
+P4266,Bavarian geotope ID,"identifier for geotopes in Bavaria (Germany), issued by the Bayerisches Landesamt fr Umwelt"
+P4267,Landtag of Liechtenstein ID,identifier of a member of the Landtag of Liechtenstein
+P4268,half maximal inhibitory concentration (IC50),measure of the effectiveness of a substance in inhibiting a specific biological or biochemical function
+P4269,half maximal effective concentration (EC50),"concentration of a drug, antibody or toxicant which induces a response halfway between the baseline and maximum after a specified exposure time"
+P4270,Daum TV series ID,identifier for a TV Series in the Daum database
+P4271,rating,qualifier to indicate a score given by the referenced source indicating the quality or completeness of the statement
+P4272,DPLA subject term,term for an item's subject area in the Digital Public Library of America
+P4273,New York City Landmarks Preservation Commission ID,landmarks designated by the New York City Landmarks Preservation Commission
+P4274,Tunisian geographic code,Identifier for administrative regions of Tunisia
+P4275,Japanese Database of National important cultural properties,identifier of a site in the Japanese Database of National important cultural properties (kunishitei.bunka.go.jp)
+P4276,Cinmathque qubcoise work identifier,Cinmathque qubcoise identifier for a work
+P4277,Daum movie ID,identifier for a film in the Daum database
+P4278,FCI rider ID,identifier for a rider on the Italian Cycling Federation website
+P4279,hydrological order number,identifier for water bodies in the Czech Republic
+P4280,International Standard Text Code,ISO standard unique identifier for text-based works
+P4281,LNV player ID,identifier for a player on the French Ligue nationale de volley websiste
+P4282,LUMIERE film ID,ID of a film in the LUMIERE database of the European Audiovisual Observatory
+P4283,LUMIERE director ID,ID of a film director in the LUMIERE database of the European Audiovisual Observatory
+P4284,Nominis given name ID,given name identifier in Nominis database
+P4285,Theses.fr person ID,"identifier of a PhD holder or thesis jury member or an institution, on the French thesis database"
+P4286,Nominis saint ID,saint identifier in Nominis database
+P4287,Riigikogu ID,identifier for a member of the Estonian Parliament
+P4288,UK National Fruit Collection ID,"identifier of a fruit (plant) variety or cultivar, in the United Kingdom National Fruit Collection"
+P4289,LFH player ID,identifier for a player on the website of the French Ligue Fminine de Handball (LFH)
+P4290,official app,"official app for this organization or other entity (a downloadable application for Android, iOS, etc.)"
+P4291,panoramic view,panoramic view of the object
+P4292,possessed by spirit,item which is spiritually possessing this item
+P4293,PM20 folder ID,identifier for a folder in the ZBW Pressemappe 20. Jahrhundert (20th century press archive)
+P4294,PROSPERO ID,"identifier for a study, in the PROSPERO database"
+P4295,readership,"average number of readers of a newspaper or other periodical, per issue"
+P4296,stellar rotational velocity,measured parameter for stars
+P4297,MIL-STD-2525 Symbol Identification Code,20 or 30 digit code which denotes a military symbol as specified in MIL-STD-2525
+P4298,VBL people ID,identifier for a beach volleyball player on the website of the German Volleyball Federation
+P4299,ITF wheelchair player ID until 2019,identifier for a wheelchair tennis player on the International Tennis Federation website
+P4300,YouTube playlist ID,identifier for a playlist (official) on YouTube containing videos for this item
+P4301,PfaF ID,"identifier for a plant taxon, in the Plants For A Future database of uses of plants and their parts"
+P4302,Royal Dutch Athletics Federation athlete ID,identifier for a Dutch athletics competitor on the Royal Dutch Athletics Federation website
+P4303,Lega Pallavolo Serie A player ID,identifier for a volleyball player on the Lega Pallavolo Serie A website
+P4304,FOIH materials ID,identifier for a type of material in the thesaurus of the Flemish organization for Immovable Heritage
+P4305,FOIH styles and cultures ID,identifier for a style or culture in the thesaurus of the Flemish organization for Immovable Heritage
+P4306,FOIH periods ID,identifier for a period in the thesaurus of the Flemish organization for Immovable Heritage
+P4307,FOIH heritage types ID,identifier for a heritage type in the thesaurus of the Flemish organization for Immovable Heritage
+P4308,FOIH value types ID,identifier for a value type in the thesaurus of the Flemish organization for Immovable Heritage
+P4309,FOIH event types ID,identifier for an event type in the thesaurus of the Flemish organization for Immovable Heritage
+P4310,FOIH decree types ID,identifier for a decree type in the thesaurus of the Flemish organization for Immovable Heritage
+P4311,FOIH taxon ID,identifier for a taxon in the thesaurus of the Flemish organization for Immovable Heritage
+P4312,camera setup,filmmaking method that the cameras were placed by. Use single-camera (Q2918907) or multiple-camera (Q738160)
+P4313,muse de Bretagne identifiant collections ID,"identifier for an object in the collection of the Brittany Museum, France"
+P4314,SpeedskatingResults.com speed skater ID,identifier for a speed skater on the SpeedskatingResults.com
+P4315,SwimSwam swimmer ID,identifier for a swimmer in the SwimSwam website database
+P4316,kinship equivalent in SPARQL at Wikidata,"part of a SPARQL query that lists this type of ?relative of a ?person. Use with relationship properties (except ""relative"" (P1038)). See instructions for applicable format"
+P4317,GARD rare disease ID,identifier for a rare disease in the United States National Institutes of Health's Genetic and Rare Diseases (GARD) Information Center database
+P4318,Scottish Sports Hall of Fame athlete ID,identifier for an athlete on the Scottish Sports Hall of Fame website
+P4319,Elite Prospects staff ID,"identifier for an ice hockey team staff member, on Elite Prospects"
+P4320,mountains classification,person ranked for this cycling stage or race
+P4321,best combative classification,"person ranked as ""best combative"" for this cycling stage or race"
+P4322,best sprinter classification,"person ranked as ""best sprinter"" for this cycling stage or race"
+P4323,young rider classification,person ranked as young participant for this cycling stage or race
+P4324,combination classification,"person ranked in ""best at combination"" for this cycling stage or race"
+P4325,APA phoneme code,symbol of a phoneme in the Americanist Phonetic Notation
+P4326,BFI Filmography person ID,identifier for a person in the British Film Institute (BFI) 'Filmography' database
+P4327,BHL bibliography ID,"identifier for a journal or book (""bibliography"") in the Biodiversity Heritage Library (BHL)"
+P4328,Brueckenweb ID,"identifier of a bridge, in the Brckenweb database"
+P4329,template or module that populates category,this category is populated by the following template or module
+P4330,contains,item or substance located within this item but not part of it
+P4331,Department of Education and Skills roll number,identifier in official government database of Irish schools
+P4332,Deutsche Synchronkartei actor ID,Identifier for actors in the synchronisation (dubbing) database Deutsche Synchronkartei. Format: digits
+P4333,GenBank assembly accession number,unique identifier of a genome assembly
+P4334,Heritage Conservation District of Ontario ID,heritage conservation district of Ontario reference number
+P4335,IDESCAT territorial code in Catalonia,"official identifier for a Catalonian territorial unit, from Institut Estadstic de Catalunya (IDESCAT)"
+P4336,Lloyd's Register Ship ID,Ship ID in Lloyd's Register of Ships
+P4337,digitised page from Lloyd's Register of Ships from 1930 to 1945,ID of a scanned page in Plimsoll ShipData online copy of Lloyd's Register of Ships 1930-1945
+P4338,LOINC ID,"identifier for medical observations, measurements, and documents in the Regenstrief Institute's Logical Observation Identifiers Names and Codes (LOINC), a database of internationalized medical terminology"
+P4339,Radio Radicale organizer ID,identifier for an organizer in the database of Radio Radicale
+P4340,PubsHistory pub ID,"identifier for a public house in the United Kingdom, as used by the 'I Am Pub History' website"
+P4341,synodic period,time between two passes of an object in front of a distant star seen from another orbiting object
+P4342,Store norske leksikon ID,identifier of an article in the online encyclopedia snl.no
+P4343,WBPLN author ID,identifier for authors listed in the West Bengal Public Library Network
+P4344,QEdu ID,"identifier for a Brazilian educational institution, in the QEdu database"
+P4345,director of archaeological fieldwork,person leading the archaeological or anthropological investigation at a given site
+P4346,T4T35 megalith ID,"identifier for a European megalith, on the T4T35 website"
+P4347,Florida Sports Hall of Fame athlete ID,identifier for an athlete on the Florida Sports Hall of Fame website
+P4348,Lotsawa House Tibetan author ID,"identifier for Tibetan authors, in the Lotsawa House library of translations of Tibetan Buddhist religious texts"
+P4349,Lotsawa House Indian author ID,"identifier for Indian authors, in the Lotsawa House library of translations of Tibetan Buddhist religious texts"
+P4350,salinity,amount of dissolved salt in a body of water
+P4351,Cravo Albin artist ID,"identifier for an artist or group, in the Cravo Albin Dictionary of Brazilian Popular Music"
+P4352,BillionGraves cemetery ID,"identifier for a burial ground, on the BillionGraves website"
+P4353,nominated by,who nominated a person for an office or award; can be used as a qualifier
+P4354,search formatter URL,"web page search URL; URI template from which ""$1"" can be automatically replaced with the string to be searched for. $1 can be whatever you want."
+P4355,PROSITE documentation ID,"identifier for a protein family, domain or functional site, in the PROSITE database"
+P4356,Megalithic Portal ID,identifier for an ancient site on The Megalithic Portal
+P4357,Musikverket person ID,identifier for a person in the Swedish Musikverket database of the performing arts
+P4358,Dutch lost building register ID,"identifier for former buildings in the Netherlands, connecting them to images in public collections"
+P4359,gravsted.dk ID,"identifier for a person giving their burial place, in gravsted.dk"
+P4360,Monumentos de So Paulo ID,"identifier for a monument in So Paulo city, Brazil, on the Monumentos de So Paulo website"
+P4361,ExecutedToday ID,"identifier for a person or group of individuals, in the ExecutedToday database"
+P4362,Alabama Sports Hall of Fame athlete ID (archived),identifier for an athlete on the Alabama Sports Hall of Fame website
+P4363,Delaware Sports Hall of Fame ID,identifier for an athlete on the Delaware Sports Museum and Hall of Fame website
+P4364,Georgia Sports Hall of Fame ID (archived),identifier for an athlete on the Georgia Sports Hall of Fame website
+P4365,HawaiÔi Sports Hall of Fame ID (archived),identifier for an athlete on the HawaiÔi Sports Hall of Fame website
+P4366,Kansas Sports Hall of Fame ID (archived),identifier for an athlete on the Kansas Sports Hall of Fame website
+P4367,Louisiana Sports Hall of Fame ID,identifier for an athlete on the Louisiana Sports Hall of Fame website
+P4368,Mississippi Sports Hall of Fame ID,identifier for an athlete on the Mississippi Sports Hall of Fame website
+P4369,Cairn author ID,"identifier for an author in Cairn, an online library of French-language scholarly journals"
+P4370,KBO hitter ID,identifier for a baseball hitter in koreabaseball.com
+P4371,KBO pitcher ID,identifier for a baseball pitcher in koreabaseball.com
+P4372,iPatrimnio ID,"identifer for a Brazilian historical Heritage asset, in the Infopatrimnio database"
+P4373,National Trust Collections ID,"identifier for an artwork or heritage object, in the catalogue of the United Kingdom's National Trust"
+P4374,New Mexico Sports Hall of Fame ID,identifier for an athlete on the New Mexico Sports Hall of Fame website
+P4375,North Carolina Sports Hall of Fame ID,identifier for an athlete on the North Carolina Sports Hall of Fame website
+P4376,Oklahoma Sports Hall of Fame ID (dead link),identifier for an athlete or a team on the Oklahoma Sports Hall of Fame website
+P4377,Women's Sports Foundation ID,identifier for an athlete on the Women's Sports Foundation website
+P4379,youth wing,group of younger people associated with this organization
+P4380,Sandrart.net artwork ID,"artwork identifier in the web-based edition of Joachim von SandrartÕs ""Teutscher Academie der Edlen Bau, Bild- und Mahlerey-Knste"" (1675Ð80)"
+P4381,Soccerdonna player ID,identifier for a female association football player on the Soccerdonna website
+P4382,LFB player ID,identifier for a female basketball player on the Ligue fminine de basket website
+P4383,Tennessee Sports Hall of Fame athlete ID,identifier for an athlete on the Tennessee Sports Hall of Fame website
+P4384,DAMIT asteroid ID,identifier for an asteroid in the Database of Asteroid Models from Inversion Techniques (DAMIT)
+P4385,Missouri Sports Hall of Fame ID,identifier for an athlete on the Missouri Sports Hall of Fame website
+P4386,Virginia Sports Hall of Fame ID,identifier for an athlete on the Virginia Sports Hall of Fame website
+P4387,update method,method used by an app/OS to receive updates or self-update
+P4388,Mappy place ID,identifier for place in Mappy
+P4389,Science Museum people ID,identifier of a person or organisation on the website of the Science Museum Group
+P4390,mapping relation type,qualifier to more precisely define the relation of the item to the external identifier using SKOS
+P4391,The-Sports.org athlete ID,identifier for an athlete on The-Sports.org
+P4392,British Columbia Sports Hall of Fame ID,alphabetical identifier for an athlete on the BC Sports Hall of Fame
+P4393,Anvisa drug ID,"identifier provided by Anvisa, a regulatory body of the Brazilian government responsible for the regulation and approval of pharmaceutical drugs, sanitary standards and regulation of the food industry"
+P4394,NeuroNames ID (plain mode),numeric identifier of a brain structure in the BrainInfo (NeuroNames) database in plain mode
+P4395,BrainInfo ID (hierarchical),numeric identifier of a brain structure in the BrainInfo (NeuroNames) database in hierarchical mode
+P4396,Alberta Sports Hall of Fame ID (archived),identifier for an athlete on the Alberta Sports Hall of Fame and Museum website
+P4397,IPC.infostradasports.com sportsperson ID,"identifier for a Paralympic athlete (sportsperson) at IPC.infostradasports.com, a website of the International Paralympic Committee - formerly at paralympic.org"
+P4398,Canada's Sports Hall of Fame athlete ID,identifier for an athlete on the Canada's Sports Hall of Fame webiste
+P4399,Ita Cultural ID,unique identifier for a entity in the Ita Cultural Encyclopedia website
+P4400,Memria Globo ID,"identifier for pages on the history of Brazilian TV network Rede Globo, researched by a team of journalists, historians and anthropologists"
+P4401,Museus Brazil ID,identifier for information on Brazilian museums from museus.cultura.gov.br (Museusbr)
+P4402,Women's Collegiate Tennis Hall of Fame ID,identifier for a player on the Women's Collegiate Tennis Hall of Fame website
+P4403,caliber,inner diameter of the gun barrel for a weapon
+P4404,MusicBrainz recording ID,identifier for a recording in the MusicBrainz open music encyclopedia
+P4405,NLBPA ID,identifier for a player on the Negro League Baseball Players Association website
+P4406,Nova Scotia Sport Hall of Fame ID (dead link),identifier for an athlete on the Nova Scotia Sport Hall of Fame
+P4407,Opera Vivra singer ID,"identifier for a singer, on the Opera Vivra website"
+P4408,sports.ru athlete ID,identifier for an athlete on the website sports.ru
+P4409,Baseball Almanac ID,identifier for a player on the Baseball Almanac website
+P4410,Women's Basketball Hall of Fame ID,identifier for a female basketball player on the Women's Basketball Hall of Fame website
+P4411,Quora username,"username of an individual or organisation, on the Quora website"
+P4412,Ontario Sports Hall of Fame ID (archived),identifier for an honoree at the Ontario Sports Hall of Fame website
+P4413,Manitoba Sports Hall of Fame ID,identifier for an athlete on the Manitoba Sports Hall of Fame
+P4414,New Brunswick Sports Hall of Fame athlete ID,identifier for an athlete on the New Brunswick Sports Hall of Fame
+P4415,Sport Australia Hall of Fame inductee ID,identifier for an inductee on the Sport Australia Hall of Fame website
+P4416,Quebec Sports Hall of Fame ID,identifier for an athlete or a builder on the Panthon des sports du Qubec (Quebec Sports Hall of Fame)
+P4417,Russian Premier League player ID,identifier for a Russian Premier League player at official website premierliga.ru
+P4418,New Zealand Sports Hall of Fame ID,identifier for an inductee on the New Zealand Sports Hall of Fame website
+P4419,Videolectures ID,"identifier for person, meeting or presentation/talk (video) on the Videolectures website"
+P4421,Sportbox.ru ID,identifier of a sportsperson on the website Sportbox.ru
+P4422,U.S. Ski and Snowboard Hall of Fame athlete ID,identifier for an athlete on the U.S. Ski and Snowboard Hall of Fame and Museum website
+P4423,Portuguese lighthouse ID,national number of a lighthouse in Portugal
+P4424,mandates,action or status required or requested by a motion
+P4425,mtDNA haplogroup,mitochondrial DNA haplogroup of a person or organism
+P4426,Y-DNA Haplogroup,Y-DNA haplogroup of a person or organism
+P4427,GACS ID,identifier of a concept in the Global Agricultural Concept Scheme
+P4428,implementation of,"implementation of a standard, program, specification or programming language"
+P4429,United Rugby Championship player ID,identifier for a rugby union player on the PRO14 website
+P4430,New York City Parks monument ID,identifier for monuments and public art in the spaces administered by the New York City Department of Parks and Recreation
+P4431,Google Doodle,Google Doodle celebrating this entity or event
+P4432,AKL Online artist ID,artist identifier in the Artists of the World Online database
+P4433,Indian Foundation for Butterflies ID,identifier from Indian organization of butterfly biologists working on the conservation of butterflies of India. They maintain an internet-based and peer-reviewed resource devoted to Indian butterflies.
+P4434,LesBiographies.com ID,"note on LesBiographies.com, a biographical dictionary edited by the Socit gnrale de presse"
+P4435,snap package,Snapcraft-based Linux software install
+P4436,The Coptic Library ID,identifier of author or subject in The Coptic Library
+P4437,FPB rating,rating of a film or video game in the South African media content rating system
+P4438,"BFI Films, TV and people ID",identifier for a person or movie at BFI Film & TV Database. Format: 13 digits and lowercase letters
+P4439,MNCARS artist ID,identifier of a person in the MNCARS (Museo Nacional Centro de Arte Reina Sofa) database
+P4440,Biblioteca Nacional de Mxico ID,authority control identifier used at the Biblioteca Nacional de Mxico
+P4441,hydraulic head,hydraulic head of a dam or hydroelectric power station
+P4442,mean age,mean age in a given place
+P4443,card network,credit or debit card network
+P4444,reward,"reward, bonus, or prize received as part of a membership or loyalty program"
+P4445,grace period,period immediately after the deadline for an obligation during which a fee is waived
+P4446,reward program,reward program associated with the item
+P4447,minimum spend bonus,reward for spending a sum of money
+P4448,cash back,Cash or Points received for spending money as part of a loyalty program
+P4449,Shirat Nashim person ID,"identifier of a person in the Israeli female singers database, Shirat Nashim"
+P4450,HAL author ID,"identifier of a researcher on HAL, an open archive allowing to deposit scholarly documents freely searchable"
+P4451,Scoresway handball person ID,identifier for a handball player or manager on the Scoresway website
+P4452,Thibaudeau classification,a classification (created by Francis Thibaudeau) for typefaces
+P4453,Argentine Senate member ID,identifier for a member of the Senate of Argentina (incumbent)
+P4454,Argentine Chamber of Deputies ID,identifier for a member of the Chamber of Deputies of Argentina (only incumbent)
+P4455,Coinage of the Roman Republic Online ID,"identifier of a coin in the Coinage of the Roman Republic Online platform, a digital version of Michael Crawford's 1974 publication Roman Republican Coinage (RRC)"
+P4456,Internet Off-Broadway Database ID,identifier for an actor or a company in the Internet Off-Broadway Database (IOBDB)
+P4457,DAHR artist ID,Identifier for an artist in the Discography of American Historical Recordings (DAHR)
+P4458,Dutch Cemetery in Chinsurah person ID,"identifier for an interred person in the database of the Dutch Cemetery in Chinsurah, West Bengal"
+P4459,Spanish Biographical Dictionary ID,identifier for a person in the online version of the Diccionario Biogrfico Espaol (Dictionary for Spanish Biography)
+P4460,Kaitai Struct format gallery ID,identifier in the global Kaitai Struct formats repository
+P4461,World Golf Hall of Fame player ID,identifier for a player on the World Golf Hall of Fame website
+P4462,Canadian Baseball Hall of Fame inductee ID,identifier for an inductee on the Canadian Baseball Hall of Fame website
+P4463,Canadian Ski Hall of Fame inductee ID,identifier for an inductee on the Canadian Ski Hall of Fame website
+P4464,Rugby League Project player ID,identifier for a player on the Rugby League Project website
+P4465,Ecole des chartes thesis abstract ID,identifier for the abstract of the diploma thesis of an archivist paleographer (graduate student) at the Ecole Nationale des Chartes
+P4466,Unified Astronomy Thesaurus ID,identifier for a term in the Unified Astronomy Thesaurus (UAT)
+P4467,Twitch category ID,identifier for a category on the twitch.tv website
+P4468,Mountain Bike Hall of Fame inductee ID,identifier for an inductee on the Mountain Bike Hall of Fame website
+P4469,IGHOF athlete ID,identifier for an inductee on the International Gymnastics Hall of Fame website
+P4470,British Bobsleigh & Skeleton Association ID,identifier for sportsperson in the British Bobsleigh & Skeleton Association (BBSA) database
+P4471,Rush Parliamentary Archive ID,"identifier in the database of British members of parliament, 1832 onwards"
+P4472,Czech Jockey Club horse ID,ID of a race horse in the database of the Jockey Club of the Czech Republic
+P4473,Melon artist ID,identifier for an artist on Melon
+P4474,International Boxing Hall of Fame boxer ID,identifier for a boxer on the International Boxing Hall of Fame website
+P4475,European Fencing Confederation fencer ID,identifier on the European Fencing Confederation website
+P4476,Australian Baseball League player ID,identifier for a player on the Australian Baseball League website
+P4477,Humble Store ID,identifier for an application sold on the Humble Store
+P4478,Survey of Scottish Witchcraft - Accused witch ID,Accused witch identifier in the Survey of Scottish Witchcraft database
+P4479,INDUCKS character ID,identifier for a character of the Disney Universe
+P4480,INDUCKS publication ID,identifier for printed publications of the Disney Universe
+P4481,INDUCKS creator ID,identifier for creators and authors related to the Disney Universe
+P4482,INDUCKS publisher ID,identifier for publishers of printed publications related to the Disney Universe
+P4483,INDUCKS story ID,identifier for a comic book story related to the Disney Universe
+P4484,INDUCKS issue ID,identifier for an issue of a printed publication of the Disney Universe
+P4485,INDUCKS miniseries ID,identifier for a miniseries of a printed publication of the Disney Universe
+P4486,Google Play developer ID,numeric identifier for an Android app developer on the Google Play Store
+P4487,Camera Decision ID,"identifier for a camera, on the Camera Decision website"
+P4488,COAM architect ID,identifier of a person that has built or projected relevant buildings or structures of the city of Madrid included in the Official Architects' Association of Madrid (COAM) database
+P4489,Hellenic Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at HOC.gr, a website of the Hellenic Olympic Committee (Greek: ???????? ????¹???? ?¹????¹?)"
+P4490,British Olympic Association athlete ID,"identifier for an athlete (sportsperson) at teamgb.com, the British Olympic Association's Team GB website"
+P4491,Isidore scholar ID,"identifier of a scholar on Isidore, a platform that collects links to scholarly documents and official texts"
+P4493,Barbarian F.C. ID,identifier for a rugby union player on the Barbarians F.C. website (the Barbarians)
+P4494,Barbarian R.C. ID,identifier for a rugby union player on the Barbarians R.C. website (the French Barbarians)
+P4495,Xenopus Anatomical Ontology ID,"identifier for an anatomical structure in the Xenopus Anatomical Ontology, a controlled vocubulary for describing Xenopus anatomy and embryological development"
+P4496,NACE code rev.2,code in the statistical classification of economic activities in the European Community (NACE)
+P4498,World Snooker player ID,identifier for an athlete on the World Professional Billiards and Snooker Association website
+P4500,family relationship degree,"kinship degree, degree of consanguinity, generation of people with this kinship type when clearly identifiable."
+P4501,albedo,ratio of reflected radiation to incident radiation
+P4502,Snooker.org player ID,identifier for a player on the Snooker.org website
+P4503,Wimbledon player ID,"identifier for a tennis player on the Wimbledon website, in the archive section"
+P4504,IWRP athlete ID,identifier for an athlete on the International Weightlifting Results Project website
+P4505,IAFD male performer ID,identifier for a male-born performer in the Internet Adult Film Database
+P4506,Formal Public Identifier,string that identifies uniquely an item using a Formal Public Identifier according to the ISO/IEC 9070:1991 standard
+P4507,California Sports Hall of Fame athlete ID,identifier for an athlete on the California Sports Hall of Fame website
+P4508,CycleBase cyclist ID,identifier for a cyclist on the CycleBase website
+P4509,National Monuments of Namibia Site Reference,reference number used for National Monuments of Namibia by the National Heritage Council of Namibia
+P4510,describes a project that uses,essential component or tool that was used in the project described in this publication
+P4511,vertical depth,"vertical distance from a horizontal area to a point below. Compare with ""horizontal depth"" (P5524)"
+P4512,Scottish Cemetery Kolkata person ID,"This website contains the database of Scottish Cemetery in Kolkata, West Bengal, India. The database resource was built by Presidency University in collaboration the University of St. Andrews."
+P4513,Africultures movie ID,identifier for a movie at Africultures.com
+P4514,Africultures person ID,ID of a person at French website Africultures
+P4515,Prisma ID,"identifier for a film (movie) or person, in prisma.de"
+P4516,Mmoire du cyclisme cyclist ID,identifier for a person on the Mmoire du cyclisme website
+P4517,ctext work ID,"identifier for a work, in the ctext database. ctext is a database of pre-modern texts in Chinese languages (works and editions have separate identifiers)"
+P4518,Melon album ID,identifier for a music album on Melon
+P4519,payload mass,amount of mass that can be transported by the vehicle
+P4520,SUNCAT ID,identifier for periodicals from the UK serial union catalogue
+P4521,Radio Radicale person ID,identifier for a person in the database of Radio Radicale
+P4522,Alaska Sports Hall of Fame inductee ID,identifier for an inductee on the Alaska Sports Hall of Fame website
+P4523,Vermont Sports Hall of Fame athlete ID,identifier for an athlete on the Vermont Sports Hall of Fame website
+P4524,Survey of Scottish Witchcraft - Person ID,identifier for persons associated with the witch trials in the Survey of Scottish Witchcraft database. For accused witches please use the Survey of Scottish Witchcraft - Accused Witch ID
+P4525,MuIS object ID,identifier for an object in the Estonian museum database MuIS
+P4526,ABA bird ID,"identifier for a bird taxon, issued by the American Birding Association"
+P4527,UK Parliament thesaurus ID,identifier in the thesaurus of subject headings maintained by the librarians in the House of Commons in the UK
+P4528,NVE Drainage Basin (REGINE) ID,identifier for water system areas in Norway by the Norwegian Water Resources and Energy Directorate
+P4529,Douban film ID,identifier for a film (movie) at the website Douban
+P4530,Bangladesh administrative division code (pre-2017),code used for an area for census calculations in Bangladesh
+P4531,ChinesePosters artist ID,identifier for a Chinese propaganda poster artist in the database of chineseposters.net
+P4532,Survey of Scottish Witchcraft - Trial ID,?dentifier for trials in the Survey of Scottish Witchcraft database.
+P4533,Czech street ID,identifier for a named street (or other public space) in the official registry of the Czech Republic (RòIAN kd ulice); format: up to 7 digits
+P4534,EUTA person ID,identifier for a person in the European Theatre Architecture (EUTA) database
+P4535,EUTA theatre ID,identifier for a theatre in the European Theatre Architecture (EUTA) database
+P4536,EThOS thesis ID,"identifier of a doctoral thesis, in the British Library's EThOS database"
+P4537,Spider Ontology ID,"identifier for the Spider Ontology which provides a controlled vocabulary for spider comparative biology including anatomical parts (e.g. leg, claw), behavior (e.g. courtship, combing) and products (i.g. silk, web, borrow)"
+P4538,Snooker Database player ID,identifier for a player on the Snooker Database website
+P4539,Collective Biographies of Women ID,"identifier for a person, in the Collective Biographies of Women database"
+P4540,IBTrACS cyclone ID,"identifier for a tropical cyclone, issued by the World Data Center for Meteorology"
+P4541,Croatian Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at HOO.hr, a website of the Croatian Olympic Committee (Croatian: Hrvatski olimpijski odbor)"
+P4542,World of O athlete ID,identifier for an orienteering athlete on the World of O website
+P4543,has listed ingredient,substance that's listed as ingredient on the packaging of the product; use P1545 to qualify the order of the listed ingredients
+P4544,Tennis Temple player ID,identifier for a player on the Tennis Temple website
+P4545,sexually homologous with,body part that originates from the same tissue or cell during fetal development in the opposing sex
+P4546,Gymn Forum athlete ID,identifier for an athlete on the Gymn Forum website
+P4547,Serbian Olympic Committee athlete ID (archived),"identifier for an athlete (sportsperson) at oksis.oks.org.rs, a website of the Olympic Committee of Serbia (Serbian: Olimpijski komitet Srbije)"
+P4548,Commonwealth Games Federation athlete ID,identifier for an athlete on the Commonwealth Games Federation website
+P4549,ARLIMA ID,identifier for medieval literature
+P4550,CNRS research group ID,identifier for an academic research group issued by the CNRS
+P4551,Everyone Remembered ID,"identifier for a Commonwealth military person, who died in World War One, on the Everyone Remembered database"
+P4552,mountain range,range or subrange to which the geographical item belongs
+P4553,RA Collections ID,"identifier for an entry in the collections database of the Royal Academy of Arts, London"
+P4554,ICRC PoW ID,"identifier for a prisoner of war, in the archives of the International committee of the Red Cross"
+P4555,Canada Games athlete ID,identifier for an athlete on the Canada Games website
+P4556,FAI ID,identifier for an athlete on the Fdration Aronautique Internationale website
+P4557,Indiana Basketball Hall of Fame ID,identifier for an athlete on the Indiana Basketball Hall of Fame website
+P4558,SNCZI-IPE dam ID,"identifier of a dam in Spain, in the SNCZI-Inventario de Presas y Embalses database"
+P4559,IJF judoka ID,identifier for a judoka on the International Judo Federation website
+P4560,National Collegiate Basketball Hall of Fame ID,identifier for a person on the National Collegiate Basketball Hall of Fame website
+P4561,Basketball-Reference.com WNBA player ID,identifier for a Women's National Basketball Association player on the Basketball-Reference.com website
+P4562,Japanese Baseball Hall of Fame ID,identifier for an inductee on the Japanese Baseball Hall of Fame website
+P4563,Art Museum of Estonia artist ID,artist identifier for the Art Museum of Estonia
+P4564,Art Museum of Estonia artwork ID,Artwork identifier for the Art Museum of Estonia
+P4565,electoral district number,"number of the constituency/electoral district established by law. Only to be used if the number is established by law, regulation, or other legally-binding decision; not to be used for database identifier numbers which lack legal force, even if contained in a government database."
+P4566,awarded for period,period during which the achievement must have been made to be eligible for an award
+P4567,BTO five-letter code,"identifier for a bird species, issued by the British Trust for Ornithology (BTO)"
+P4568,SNCZI-IPE reservoir ID,"identifier of a reservoir in Spain, in the SNCZI-Inventario de Presas y Embalses database"
+P4569,BPH journal ID,identifier for a botanical journal in the Hunt Institute's 'Botanico Periodicum Huntianum'
+P4571,West Australian Football League player ID,identifier for a player on the West Australian Football League website
+P4572,SS KL Auschwitz Garrison ID,"identifier for a person, in the Auschwitz camp personnel database"
+P4573,Merchant Category Code,four-digit number used to classify businesses by the type of goods or services they provide
+P4574,Norwegian historical register of persons ID,Identificator for a person in the Norwegian historical register of persons
+P4575,HTML entity,"escaping sequence in the source code of an HTML document that represents a textual character, either in the content of a text element or a tagged comment, or in the given value of an attribute"
+P4576,Tidal artist ID,identifier of an artist on the Tidal website
+P4577,Tidal album ID,identifier of an album on the Tidal website
+P4578,Tidal track ID,identifier of a track on the Tidal website
+P4579,Tidal music video ID,identifier of a music video on the Tidal website
+P4580,Berlinische Galerie artist ID,artist identifier for the Berlinische Galerie
+P4581,Stdel Museum artist ID,artist and organization identifier for the Stdel Museum
+P4582,Kulturelles Erbe Kln object ID,object identifier in Kulturelles Erbe Kln
+P4583,U.S. Gymnastics Hall of Fame athlete ID,identifier for an inductee on the U.S. Gymnastics Hall of Fame website
+P4584,first appearance,work in which a fictional/mythical character or entity first appeared
+P4585,Accademia della Crusca ID,identifier for a member of Accademia della Crusca
+P4586,type foundry,company releasing or distributing a font or typeface
+P4587,Argentinian Historic Heritage ID,identifier for historic heritage object included in the national index of Argentina
+P4588,International World Games Association athlete ID,identifier for an athlete on the International World Games Association website
+P4589,Dreadnought Project page,page on the Dreadnought Project website
+P4590,Atomic Heritage Foundation ID,profile of a person on the website of the Atomic Heritage Foundation
+P4591,National Inventory of Canadian Military Memorials ID,identifier of a military monument or memorial in the Canadian National Inventory
+P4592,Mountain Project ID,identifier for a climbing area or route on the 'Mountain Project' website
+P4593,Spanish Paralympic Committee athlete ID,"identifier for an athlete (sportsperson) at paralimpicos.es, a website of the Spanish Paralympic Committee (Spanish: Comit Paralmpico Espaol, CPE)"
+P4594,arXiv author ID,identifier for an author on arXiv
+P4595,post town,"town/city part of the postal address, can be different from administrative location"
+P4596,NIOSH Numbered Publication ID,identifier for an official publication of the U.S. National Institute of Safety and Health (NIOSH)
+P4597,FAPESP institution ID,"identifier for institutions funded by the Brazilian research education and innovation foundation, FAPESP"
+P4598,FAPESP researcher ID,"identifier for researchers funded by the Brazilian research education and innovation foundation, FAPESP"
+P4599,monomer of,polymer composed of this monomer subunits
+P4600,polymer of,monomer of which this polymer compose
+P4601,Lives of WWI ID,"identifier for a British or Commonwealth person who served during the first World War, in the Imperial War Museums' 'Lives of the First World War' database"
+P4602,date of burial or cremation,date on which the person was buried or cremated soon after death
+P4604,World Rugby Hall of Fame ID,identifier for a player on the World Rugby Hall of Fame website
+P4605,South Dakota Sports Hall of Fame ID,identifier for an athlete on the South Dakota Sports Hall of Fame website
+P4606,National Film Board of Canada film ID,film identifier used by the National Film Board of Canada website
+P4607,Swedish Musical Heritage ID,identifier for the Swedish Musical Heritage database
+P4608,scenographer,person who designed the stage or film set of this item
+P4609,Queensland Australian Football Hall of Fame inductee ID,identifier for a Queensland Australian Football Hall of Fame inductee on the Queensland Australian Football League website
+P4610,ARTIC artwork ID,identifier for an artwork on the Art Institute of Chicago website
+P4611,LACMA ID,identifier for an artist or an artwork on the Los Angeles County Museum of Art website
+P4612,LKL player ID,"identifier for a basketball player on the official website of the Lietuvos krep?inio lyga, the main league in Lithuania"
+P4613,Encyclopedia of Modern Ukraine ID,identifier for an entry on the official website of the Encyclopedia of Modern Ukraine
+P4614,drainage basin,"area where precipitation collects and drains off into a common outlet, such as into a river, bay, or other body of water"
+P4615,WAFL FootyFacts ID,identifier for an Australian rules football player on the WAFL FootyFacts website
+P4616,UniProt journal ID,"identifier for a scientific journal, in the UniProt database"
+P4617,DVV player ID,identifier for a beach volleyball player on the website of the German Volleyball Federation
+P4618,AUSNUT 2011Ð13 Food Group ID,identifier of a food group in AUSNUT 2011Ð13 (AUStralian Food and NUTrient Database)
+P4619,National Library of Brazil ID,identifier for an element in the database of the National Library of Brazil
+P4620,Merkelstiftung person ID,identifier for the geneological record of a person in the database of the Merkelstiftung
+P4621,Wrttembergische Kirchengeschichte person ID,identifier for a person in the database of the Evangelic church in Wrttemberg
+P4622,trophy awarded,"trophy awarded at the end of a selection process or of a competition, usually to winners or finishers under the form of a cup, a medal, a diploma"
+P4623,South Australian Football Hall of Fame inductee ID,identifier for a South Australian Football Hall of Fame inductee on the South Australian Football League website
+P4624,squadron embarked,the aircraft squadrons that served/serving on an aircraft carrier
+P4625,"Museum of Fine Arts, Boston object ID","identifier for an artwork or other object on the Museum of Fine Arts, Boston website"
+P4626,identity of object in context,qualifier to specify the identity that applies to a statement when the object of the statement has another identity covered by another item
+P4627,EK number,identifier for an artwork in the Entartete Kunst database of the Freie Universitt Berlin
+P4628,ICTV virus genome composition,"classification of viruses of the International Committee on Taxonomy of Viruses by the molecular composition of the virus genome (DNA, RNA, double or single stranded and translational polarity)"
+P4629,Online Books Page author ID,"identifier for an author, at the Online Books Page website"
+P4630,DORIS ID,identifier of an underwater animal or plant species from French metropolitan and overseas waters on the participatory site DORIS
+P4631,Iowa Sports Hall of Fame ID,identifier for an Iowa Sports Hall of Fame inductee
+P4632,Bechdel Test Movie List ID,identifier for a film on bechdeltest.com
+P4633,name of the character role,"name by which a character role is recorded in a database or mentioned in the context of a work, use as qualifier for cast; notably a specific performance of a theatrical production of a play"
+P4634,premiere type,"indicates the premiere type (world premiere, language premiere, country premiere) of a performing arts production"
+P4635,Indian Financial System Code,identifier for a bank branch participating in either of the two main Payment and settlement systems in India
+P4636,Sherpa Juliet ID,identifier on the Juliet directory of research funding policies
+P4637,FoodEx2 code,identifier within the FoodEx2 (version 2 of the EFSA Food classification and description system for exposure assessment) food taxonomy
+P4638,The Peerage person ID,identifier for a person on The Peerage genealogical website
+P4639,Estonian Football Association team ID,identifier for a team on the Estonian Football Association website
+P4640,photosphere image,image with the field of view 360?180 degrees
+P4641,Welsh Chapels ID,"identifier for a chapel building in Wales, in the Welsh Religious Buildings Trust chapels database"
+P4642,Colorado Sports Hall of Fame ID,identifier for an athlete on the Colorado Sports Hall of Fame website
+P4643,Philadelphia Museum of Art work ID,identifier for an artwork or other object on the Philadelphia Museum of Art website
+P4644,ESCO skill ID,"identifier for a Skill, in the European multilingual database ESCO v1"
+P4645,RCR number,national identifier of a library in France assigned by Abes
+P4646,representation of,performing arts production the item is a representation of
+P4647,location of first performance,"location where a work was first debuted, performed or broadcasted"
+P4649,identity of subject in context,"qualifier for subjects which may have different identities which are covered by different items, the identity to which the qualified statement applies"
+P4650,BSD Portal athlete ID,"identifier for bobsledder, luger and skeleton racer in the Bob- und Schlittenverband fr Deutschland (BSD) database"
+P4651,Senedd ID,identifier issued by the Welsh Parliament
+P4652,ESCO Occupation ID,"identifier for an occupation, in the European multilingual database ESCO v1"
+P4653,partition table type,"qualifier for ""partition identifier"" that determines what type of partition table is used with the identifier"
+P4654,partition type identifier,string that contains the identifier of a partition type specified in a partition table
+P4655,Flathub ID,"ID of an application on Flathub, the Flatpak repository."
+P4656,Wikimedia import URL,"URL of source to indicate the page or revision of an import source from another Wikimedia project (except actual references, such as Wikisource source texts). Use instead of ""reference URL"" (P854). Permalinks are preferred."
+P4657,The Numbers person ID,identifier of an actor at The Numbers
+P4658,Coflein ID,"identifier for an historic site, monument or building in the National Monuments Record of Wales (NMRW) database"
+P4659,Muse d'Orsay artwork ID,identifier for an artwork or other object on the Muse d'Orsay website
+P4660,CPDOC ID,identifier for a bibliographic record in the Center for Research and Documentation of Contemporary History of Brazil (CPDOC)
+P4661,reservoir created,reservoir created upstream of a dam by this dam
+P4662,SAN archive conservator ID,identifier for archive conservators in the Italian national archive system (SAN - Sistema archivistico nazionale)
+P4663,DACS ID (former),"obsolete code used to identify 50,000 artists as members of the British collective rights management organisation DACS and sister organisations worldwide"
+P4664,Wiki Aves bird ID,identifier for a bird species on Wiki Aves is a Brazilian catalogue website
+P4665,CineMagia title ID,identifier for a movie on the Cinemagia.ro website
+P4666,CineMagia person ID,identifier for a person on the Cinemagia.ro website
+P4667,Buenos Aires legislator ID,identifier for a member of the Buenos Aires City Legislature
+P4668,USA Gymnastics Hall of Fame athlete ID,identifier for an inductee on the USA Gymnastics Hall of Fame website
+P4669,tabular software version,historical list of software versions and their release dates
+P4670,Sjukvrdsrdgivningen Category ID,"identifier for a disease or medical condition, in the Swedish government's 'Sjukvrdsrdgivningen' database"
+P4671,Hall of Light ID,identifier in the database of Amiga video games Hall of Light
+P4672,EMLO location ID,identifier for a location in the Early Modern Letters Online database maintained by the University of Oxford
+P4673,"Museum of Fine Arts, Houston object ID","identifier for an artwork or other object on the Museum of Fine Arts, Houston website"
+P4674,Indianapolis Museum of Art artwork ID,identifier for an artwork or other object on the Indianapolis Museum of Art collection website
+P4675,appears in the form of,this fictional or mythical entity takes the form of that entity
+P4676,MAVISE TV channel ID,identifier for a TV channel in the MAVISE database of the European Audiovisual Observatory
+P4677,MAVISE on-demand audiovisual service ID,identifier for an on-demand audiovisual service in the MAVISE database of the European Audiovisual Observatory
+P4678,MAVISE competent authority ID,identifier for a licensing authority/register in the MAVISE database of the European Audiovisual Observatory
+P4679,MAVISE company ID,identifier for a company in the MAVISE database of the European Audiovisual Observatory
+P4680,constraint scope,"defines the scope where a constraint is checked Ð can specify the usage scope (main value of a statement, on qualifiers, or on references) and the datatype (Wikibase item, property, lexeme, etc.)"
+P4681,Eldoblaje dub actor ID,identifier for a dubbing actor in a Spanish dubbed film
+P4682,Eldoblaje original actor ID,identifier for an original actor in a Spanish dubbed film
+P4683,National Gallery of Art artwork ID,identifier for an artwork or other object on the United States' National Gallery of Art website
+P4684,National Gallery of Victoria artwork ID,identifier for an artwork or other object on the National Gallery of Victoria website
+P4685,Nintendo of America Game Store ID (former scheme),identifier for software sold on the Nintendo of America Game Store
+P4686,Carnegie Museum of Art ID,identifier for an artwork or other object on the Carnegie Museum of Art website
+P4687,Dictionnaire des peintres belges ID,identifier for a Belgian painter on the Dictionnaire des peintres belges website
+P4688,geomorphological unit,topographic or bathymetric feature to which this geographical item belongs
+P4689,Environmental Register code (Estonia),identifier for an entry in the Estonian Environmental Register
+P4690,Oireachtas member ID,identifier issued by the Oireachtas for parliament members (both Dil and Sanad) in Ireland
+P4691,OpenSecrets organization ID,identifier used by Opensecrets for organizations involved in US elections
+P4692,American Art Collaborative object ID,identifier for an artwork or any relevant object on the American Art Collaborative website
+P4693,Argentine deputy votations ID,identifier for votations and absentism statistics of a member of the Argentine Chamber of Deputies
+P4694,Arquivo Arq ID,"identifier for an architect or building, in the Arquivo Arq database"
+P4695,GEMS Code,WHO Global Environment Monitoring System/ Food Contamination Monitoring and Assessment Programme (GEMS/Food) code for a food-type
+P4696,CIQUAL2017 ID,identifier for a food category in the French CIQUAL 2017 nutritional database
+P4697,Historic Place Names of Wales ID,identifier for a location in Wales on the List of Historic Place Names of Wales
+P4698,Conseil de Presse Luxembourg journalist ID,"identifier for a journalist at the Conseil de Presse Luxembourg, the body that governs the professional title of journalist in Luxembourg"
+P4699,Canal-U channel ID,"ID of a channel on Canal-U, the online video library of French Higher Education"
+P4700,Cairn publication ID,"identifier for a journal or an article in Cairn, an online library of French-language scholarly journals"
+P4701,Google Arts & Culture asset ID,identifier for an artwork or other object on the Google Arts & Culture website
+P4702,Google Arts & Culture partner ID,identifier for a museum or other partner on the Google Arts & Culture website
+P4703,HATVP person ID,identifier for a French politician on the High Authority for Transparency in Public Life website
+P4704,Smithsonian American Art Museum artwork ID,identifier for an artwork or other object on the Smithsonian American Art Museum website
+P4705,ZXDB ID,identifier in the videogame database ZXDB
+P4706,Ent'revues ID,"identifier for a magazine on Ent'revues, directory service of French cultural magazines"
+P4707,Rugby Canada ID,identifier for a rugby union player selected with the Canada national team on the Rugby Canada website
+P4708,VOGRIPA ID,identifier for a volcano on the Volcano Global Risk Identification and Analysis Project website
+P4709,Barnes Foundation ID,identifier for an artwork or other object on the Barnes Foundation website
+P4710,Guardiana ID,identifier in the SEGA videogame database Guardiana
+P4711,CHGIS ID,identifier for a historical administrative region of China in the China Historical Geographic Information System (CHGIS)
+P4712,Minneapolis Institute of Art artwork ID,identifier for an artwork or other object on the Minneapolis Institute of Art website
+P4713,Walters Art Museum ID,identifier for an artwork or other object on the Walters Art Museum website
+P4714,title page number,qualifier to indicate the number of the page of a document in which the title page is located. Don't use for the actual cover page.
+P4715,Guide to North American Birds ID,identifier for a bird taxon in the Guide to North American Birds on the National Audubon Society website
+P4716,Acadmie des Inscriptions et Belles-Lettres member ID,identifier for a member of the Acadmie des Inscriptions et Belles-Lettres on its website
+P4717,Acadmie franaise member ID,identifier for a member of the Acadmie franaise on its website
+P4718,Basketball-Reference.com NBA coach ID,identifier for a NBA coach on the Basketball Reference website
+P4720,Basketball-Reference.com WNBA coach ID,identifier for a WNBA coach on the Basketball Reference website
+P4721,MuBE Virtual ID,"identifier for a sculpture in Brazil, in the MuBE database"
+P4722,rudit journal ID,identifier for a journal in rudit
+P4723,GSMArena phone ID,identifier for a telephone model on GSMArena
+P4724,Maitron ID,"identifier for a person on the online version of Le Maitron, a biographical dictionary of the French labour movement"
+P4725,C-SPAN organization ID,"identifier for an organization, on C-SPAN"
+P4726,Sign@l journal ID,identifier for a journal in the Sign@l database
+P4727,Deutsche Synchronkartei dubbing voice actor ID,"identifier for a dubbing voice actor, in the synchronisation (dubbing) database Deutsche Synchronkartei"
+P4728,uBio ID,"identifier for a taxon, in the uBio 'Namebank' database"
+P4729,INRAN Italian Food ID,identifier in the Italian national nutriment database
+P4730,Mir@bel journal ID,identifier for a journal in the Mir@bel database
+P4731,The Baseball Cube player ID,identifier of a baseball player at thebaseballcube.com
+P4732,IUPAC Gold Book ID,identifier of definition in Compendium of Chemical Terminology (IUPAC GoldBook)
+P4733,produced sound,"item for the sound generated by the subject, for instance the cry of an animal"
+P4734,IBM code page ID,identifier of a code page of characters assigned by IBM
+P4735,IBM coded character set ID,identifier of a coded character set assigned by IBM
+P4736,IBM graphic character global ID,identifier of a character/grapheme in the IBM graphic character identification system
+P4737,Solomon R. Guggenheim Foundation artwork ID,identifier for an artwork or other object on the Solomon R. Guggenheim Foundation website
+P4738,Yale Center for British Art artwork ID,"(DEPRECATED, see P9789) identifier for an artwork or other object on the Yale Center for British Art website"
+P4739,Muse des Augustins artwork ID (former scheme),identifier for an artwork or other object on the Muse des Augustins website
+P4740,Brooklyn Museum artwork ID,identifier for an artwork or other object on the Brooklyn Museum website
+P4741,OpenEdition journal ID,identifier for a journal in OpenEdition Journals
+P4742,Uniform Resource Identifier Scheme,IANA-assigned uniform resource identifier scheme which identifies items within this class or set
+P4743,animal breed,"subject item belongs to a specific group of domestic animals, generally given by association"
+P4744,Basketball-Reference.com NBA G League player ID,identifier for an NBA G League (formerly NBDL) player on the Basketball Reference website
+P4745,is proceedings from,this work contains articles presented at the given event
+P4746,Elhuyar ZTH ID,"Elhuyar Science and Technology Dictionary has a wide range of terms in four languages (en, es, fr, eu) that can easily be linked to and from Wikidata"
+P4747,Line Music artist ID,identifier for an artist on Line Music
+P4748,Line Music album ID,identifier for an album or single on Line Music
+P4749,Dictionnaire des auteurs luxembourgeois ID,"identifier in the Dictionnaire des auteurs luxembourgeois en ligne, that presents the life and work of authors who, since 1815, have participated in the literary life of Luxembourg"
+P4750,National Historic Ships ID,ID for a vessel as found on the National Historic Ships website
+P4751,Sports-Reference.com college basketball coach ID,identifier for a NCAA Division I college men's basketball coach on the Sports-Reference.com college basketball website
+P4752,Manus Online manuscript ID,identifier for a manuscript held by an Italian library
+P4753,Ecocrop ID,identifier of a plant used as an agricultural crop in the Ecocrop database
+P4754,Harvard botanical journal ID,"identifier of a publication, in Harvard University Herbaria & Libraries' 'Index of Botanical Publications'"
+P4755,UK railway station code,"official, three-letter identifier for a railway station in the United Kingdom"
+P4756,V Live channel ID,"identifier for the V Live channel of a person, musical group or organisation"
+P4757,Songwriters Hall of Fame ID,ID for a person at Songwriters Hall of Fame
+P4758,MONA ID,"identifier for a Lepidoptera species, in the Hodges List (i.e. the ""Check List of the Lepidoptera of America North of Mexico"", with subsequent revisions)"
+P4759,Luminous-Lint ID,identifier for a photographer in the Luminous-Lint database
+P4760,LTI Korea Library ID,"identifier for a Korean writer, book, and event in Literature Translation Institute of Korea Library (library.klti.or.kr)"
+P4761,Images d'Art artwork ID,identifier for an artwork or other object on the Images d'Art website
+P4762,Common Database on Designated Areas ID,identifier in Common Database on Designated Areas
+P4763,crates.io ID,"identifier on crates.io, the Rust package manager (used by cargo)"
+P4764,Base Arcade artwork ID,identifier for an artwork or other object in the Arcade database
+P4765,Commons compatible image available at URL,image with Commons compatible copyright status is available at the following URL. It could be uploaded to Commons to illustrate the item
+P4766,Australian honours ID,ID for an instance of an Australian honour being awarded to an Australian citizen
+P4768,cinematografo.it name or company ID,identifier for a person or company in cinematografo.it
+P4769,GameFAQs game ID,identifier for a game on GameFAQs
+P4770,hydrated form of,given compound is an anhydrous form of this compound
+P4771,compArt institution ID,identifier for an institution in the compArt database Digital Art
+P4772,compArt person ID,identifier for a person in the compArt database Digital Art
+P4773,MobyGames company ID,identifier for a company at MobyGames
+P4774,biological phase,biological period or stage when this biological process or phenomenon occurs
+P4775,lot number,"takes a number; used as a qualifier in combination with new property for ""Wikidata:Property proposal/Auction sale""; section number for unconnected segments of an artwork or other works"
+P4776,MAC Address Block Large ID,unique identifier of an organisation registered with the IEEE
+P4777,has boundary,element that's on the two dimensional border that surrounds the subject; the limit of an entity
+P4778,USA Rugby player ID,identifier for a rugby union player selected with the national team on the USA Rugby website
+P4779,MYmovies actor ID (former scheme),identifier for an actor in MYmovies.it
+P4780,MYmovies movie ID,identifier for a film in MYmovies.it
+P4781,MYmovies director ID (former scheme),identifier for a director in MYmovies.it
+P4782,Movieplayer person ID,identifier for a person in movieplayer.it
+P4783,Movieplayer film ID,identifier for film in movieplayer.it
+P4784,Movieplayer TV-series ID,identifier for TV-series in movieplayer.it
+P4785,MYmovies name ID (former scheme),"identifier for producer, cinematographer, screenwriter and company in MYmovies.it"
+P4786,cinematografo film ID,identifier for a film in cinematografo.it
+P4787,NII author ID,"identifier for an author/researcher in CiNii Research database operated by National Institute of Informatics, Japan"
+P4788,storage device,data storage device supported by a machine (e.g. camera or mobile phone)
+P4789,Who's Who UK ID,"identifier in ""Who's Who"" or ""Who Was Who"", UK edition"
+P4790,Basketball-Reference.com international player ID,identifier for a basketball player in a non-U.S. league on Basketball-Reference.com
+P4791,commanded by,"commander of a military unit/army/security service, operation, etc."
+P4792,dam,construction impounding this watercourse or creating this reservoir
+P4793,identifiers.org prefix,"code used in front of an identifier, as supported by identifiers.org and n2t.net"
+P4794,season starts,month or season when sports competition begins
+P4795,Basketball-Reference.com referee ID,identifier for a referee on the Basketball Reference website
+P4796,Basketball-Reference.com NBL player ID,identifier for a NBL player on the Basketball Reference website
+P4797,member of the Assembly of Madrid ID,identifier for a person in the Assembly of Madrid webpage
+P4798,BTO Birds of Britain ID,identifier for a bird species or sub-species in the BTO Birds of Britain/ BirdFacts database
+P4799,Rugby Australia ID,identifier for a rugby union player selected with the Australia national team on the Rugby Australia website
+P4800,EUAP ID,identifier for an Italian protected natural area in the official list of protected natural areas (EUAP - elenco ufficiale delle aree naturali protette)
+P4801,LoC and MARC vocabularies ID,identifier for an item in one of the controlled vocabularies maintained by the Library of Congress
+P4802,BVPB authority ID,"identifier of an author, topic or place in Biblioteca Virtual del Patrimonio Bibliogrfico"
+P4803,Amtrak station code,Station identifier code for the Amtrak system
+P4804,Compagnon de la Libration ID,identifier of a Companion of the Liberation on the website of that French order
+P4805,make-up artist,"person responsible for the make-up of cast members in a theatrical production, TV or film"
+P4806,Gaming-History ID,identifier for the Gaming-History videogame database
+P4807,Fauna Europaea New ID,identifier for a taxon at the Fauna Europaea portal launched end of 2016
+P4808,Royal Academy new identifier,"new (2018) identifier for a person (or sometimes a thing) in the collections and archives of the Royal Academy, London"
+P4809,sets environment variable,an environment variable which a software program sets
+P4810,reads environment variable,an environment variable which a software program reads and may be effected by
+P4811,BWSA ID,article in the biographical lexicon of socialism and labor unions in the Netherlands
+P4812,Statistical Service of Cyprus Geocode,"Statistical Codes of Municipalities, Communities and Quarters of Cyprus per the Statistical Service of Cyprus"
+P4813,PARES ID,"identifier for a person, place, or topic on the Spanish Archives Portal"
+P4814,Inventories of American Painting and Sculpture control number,"control number for a work, in 'Inventories of American Painting and Sculpture'"
+P4815,Technical Element Score,for figure skating scores breakdown
+P4816,Lemon 64 identifier,identifier in the Lemon 64 database of Commodore 64 videogames
+P4818,Panoptikum podcast ID,identifier in the Panoptikum podcast database
+P4819,Swedish Portrait Archive ID,identifier for a person in the Swedish Portrait Archive
+P4820,TORA ID,"identifier for a building, structure or settlement, in the Topographical Register for Historic Buildings in Sweden (TORA)"
+P4821,Cour des comptes magistrate ID,identifier of a magistrate in the French Court of Audit online biographical dictionary
+P4822,La Poste personality ID,identifier for a person in the online biographical dictionary of the French 'Comit pour d'Histoire de la Poste'
+P4823,American National Biography ID,identifier of a person in the scholarly biographical encyclopedia
+P4824,org-id.guide ID,identifier in the register of organization databases org-id.guide
+P4825,deductions (in figure skating),for figure skating scores breakdown
+P4826,Program Component Score,for figure skating scores breakdown
+P4827,Swimrankings.net meet ID,property for swimmeets from swimrankings.net
+P4829,Swiss Enterprise Identification Number,government identifier for a business entity in Switzerland
+P4830,Swedish Football Association national team player ID,"identifier for a Swedish international association football (soccer) player's page from Landslagsdatabasen at Svenskfotboll.se, the official website of the Swedish Football Association (in Swedish: Svenska Fotbollfrbundet; SvFF)"
+P4831,Bandysidan player ID,property for bandy players ID at the database Bandysidan.nu
+P4832,World Sailing regatta ID,Property for sailing regattas ID from sailing.com
+P4833,Sailboatdata ID,identifier for a sailboat design on sailboatdata.com
+P4834,Deutsche Synchronkartei series ID,identifier for a TV series in the synchronisation (dubbing) database Deutsche Synchronkartei
+P4835,TheTVDB.com series ID,identifier for a television series at TheTVDB.com
+P4836,Irish Rugby Football Union women's player ID,Identifier for a female rugby union player selected with Ireland women's national team on the Irish Rugby Football Union website
+P4837,has command line option,an option which is accepted by the software from the command line
+P4838,CATO ID,Identifier in Classifier of administrative-territorial objects of Kazakhstan
+P4839,Wolfram Language entity code,input form for an entity in Wolfram Language
+P4840,Directory of Czech publishers ID,"identifier of a Czech publisher, in the Czech National Library database"
+P4841,total fertility rate,average number of children that would be born to a woman over her lifetime
+P4842,ASHRAE refrigerant number,identifier of a refrigerant assigned in ANSI/ASHRAE standard 34
+P4843,development of anatomical structure,biological development of this anatomical structure
+P4844,research intervention,"the focus of an experiment, also called the experimental variable, research activity, or study intervention"
+P4845,Bulbapedia article ID,"article name on Bulbapedia, a Pokmon encyclopedia"
+P4846,Lemon Amiga identifier,identifier in the Lemon Amiga database of Amiga videogames
+P4847,CPC-Power ID,identifier in the CPC-Power database of Amstrad CPC videogames
+P4848,Libraries.org ID,identifier for a library in the Libraries.org database
+P4849,International Numbering System number,unique identifier of a food additive in the International Numbering System
+P4850,permitted food additive,food additive which is permitted to be present within a food item
+P4851,maximum food additive use level,maximum allowed level of food additive permitted in a quantity of food
+P4852,JECFA database ID,"identifier of a flavour, food additive, contaminant, toxicant or veterinary drug in the FAO/WHO JECFA database"
+P4853,JMPR database ID,identifier of a pesticide in the FAO/WHO JMPR database
+P4854,Uppslagsverket Finland ID,identifier of an article in the online encyclopedia Uppslagsverket Finland
+P4855,Phasmida Species File ID,"identifier for a Phasmida taxon, in the Phasmida SpeciesFile website"
+P4856,conscription number,number identifying a building in one cadastral area/village/neighborhood
+P4857,AtariAge ID,identifier in the AtariAge database of Atari videogames
+P4858,Atari Legend identifier,identifier in the Atari Legend database of Atari videogames
+P4859,Atarimania identifier,identifier in the Atarimania database of Atari videogames
+P4860,BMI work ID,registration identifier for a composition at BMI Repertoire
+P4861,Charity Navigator ID,"identifier for a charitable organisation in the United States, in the Charity Navigator database"
+P4862,Amazon author ID,author identifier on Amazon.com
+P4863,recognition sequence,"DNA sequence recognized by a restriction enzyme, DNA binding domain, etc, written from 5' to 3'"
+P4864,cutting site of restriction enzyme,"DNA cutting site of restriction enzyme, written from 5' to 3'"
+P4866,REBASE Enzyme Number,ID in REBASE (Restriction Enzyme Database)
+P4867,RFE symbol,symbol of the phonetic alphabet of the Revista de Filologa Espaola corresponding to an AFI phoneme
+P4868,Hispania Nostra Red List code,identifier for an endangered heritage item (sometimes a natural element) as listed in Hispania Nostra's Red List of Endangered Heritage
+P4869,Operabase ID,identifier for an opera artist in Operabase
+P4870,GEPRIS project ID,Identifier of a project in GEPRIS database of funded research projects
+P4871,GEPRIS organization ID,Identifier of an organization in GEPRIS database of funded research projects
+P4872,GEPRIS person ID,identifier of a person in GEPRIS database of funded research projects
+P4873,isoschizomer,"isoschizomers of the restriction restriction enzyme, which have the same recognition sequence and the cutting site."
+P4875,neoschizomer,"neoschizomers of the restriction restriction enzyme, which have the same recognition sequence but a different cutting site."
+P4876,number of records,number of values of an identifier or records in a catalog
+P4878,symbolizes,"symbolism of an artistic element; can also be used as a qualifier for ""depicts"" (P180) statements"
+P4879,World Rugby Sevens Series womens player ID,identifier for a female rugby sevens player on the World Rugby Women's Sevens Series website
+P4880,FFR Sevens player ID,identifier for a rugby sevens player on the French Rugby Federation website
+P4881,Maison d'crivain ID,ID for a place adhering to the Federation of Writer's Houses and Literary Heritage
+P4882,segmental innervation,specific level(s) of spinal cord responsible for the function of this muscle or organ
+P4884,court,specific court a legal case is/was heard/decided in
+P4885,AFL Tables coach ID,ID for a VFL/AFL coach at afltables.com
+P4887,Web umenia creator ID,identifier assigned to an artist for the online database Webumenia (joint project of Slovak art galleries)
+P4888,AFL Tables umpire ID,ID for a VFL/AFL umpire at afltables.com
+P4889,MuIS person or group ID,identifier for a person or group in the Estonian museum database MuIS
+P4890,EPHE ID,identifier of a researcher on the online prosopographical dictionary of the EPHE
+P4891,Patrons de France ID,identifier of a business executive on Patrons de France
+P4892,Siprojuris ID,identifier for a jurist in the database Siprojuris
+P4893,X Games athlete ID,identifier for a X Games athlete at xgames.com
+P4894,ACE Repertory work ID,registration identifier for a composition at ACE Repertory
+P4895,time index,indicate when something happens relative to its beginning
+P4896,3D model,representation of any three-dimensional surface of an object
+P4897,AICTE institute application ID,identifier number issued annually for institutions who need to re-apply for accreditation by the All India Council for Technical Education
+P4898,Chronicling America newspaper ID,identifier of a newspaper issued by the Library of Congress
+P4899,Brooklyn Museum Exhibition ID,"id of an exhibition in the Brooklyn Museum's ""opencollection"" subwebsite"
+P4900,broader concept,"qualifier to indicate a broader concept that the present item is part of, as mapped by an external source. The statement being qualified should be an exact match."
+P4901,Zenodo ID,ID of a work in Zenodo repository
+P4902,CONABIO ID,"identifier for a taxon, issued by the National Commission for the Knowledge and Use of Biodiversity (aka CONABIO), a Federal Agency of the Mexican Government"
+P4903,New Georgia Encyclopedia ID,identifier of a topic in the online New Georgia Encyclopedia
+P4904,Tropicos publication ID,identifer for a journal or other publication in Tropicos
+P4905,KMSKA work PID,"persistent identifier for an artwork from the collection of the Royal Museum of Fine Arts Antwerp in Antwerp, Belgium"
+P4906,Bargeton ID,"identifier of a French prefect on the Dictionnaire biographique des prfets, said ""Bargeton"" (1870-1980)"
+P4907,Guide Nicaise ID,literature organizations
+P4908,season,season of a television show or podcast series
+P4909,number of players in region,number of registered players in a sport or people practicing a sport in a region
+P4910,AlloCin company ID,identifier for a company on the AlloCin film database
+P4911,Annuaire des fondations ID,ID of a foundation on the directory of foundations of the French Foundation Centre
+P4912,century breaks,"in snooker, the number of career century breaks at offic?al professional tournaments"
+P4913,dialect of,"language of which an item with this property is a dialect. Use in addition to ""subclass of"" (P279) if a languoid is also considered a dialect."
+P4914,produces cohesive end,"overhang DNA sequence generated by restriction enzyme, written from 5' to 3'"
+P4915,isocaudomer,"isocaudomer of the restriction restriction enzyme, which have the different recognition sequence but produces the same termini"
+P4916,Ready64 ID,identifier in the Ready64 database of Commodore 64 videogames
+P4917,Gamebase64 identifier,identifier in the Gamebase64 database of Commodore 64 videogames
+P4919,Plus/4 World ID,identifier in the Plus/4 World database of Commodore videogames
+P4920,England Rugby men's player ID,identifier for a men's rugby union player selected with the England national team on the Rugby Football Union website
+P4921,Snooker.org tournament ID,ID about a specific snooker tournament at the Snooker.org database
+P4922,Rugby Football Union women's sevens player ID,identifier for a women's rugby sevens player selected with the England national team on the Rugby Football Union website
+P4923,Rugby Football Union men's sevens player ID,identifier for a men's rugby sevens player selected with the England national team on the Rugby Football Union website
+P4924,CueTracker tournament ID,ID about a specific snooker tournament at the CueTracker.net database
+P4925,Rugby Football Union women's player ID,identifier for a women's rugby union player selected with the England national team on the Rugby Football Union website
+P4926,PRotein Ontology ID,Identifier for an entry in the PRotein Ontology (PRO)
+P4927,Invaluable.com person ID,identifier for an artist or other person at Invaluable.com
+P4928,Ricorso author ID,identifier for an author page on the ricorso.net site
+P4929,AINM ID,?dentifier for a biographical page on the site of the National Database of Irish-Language Biographies
+P4930,Julien ID,"identifier of a person on the biographical dictionary of the Lyce Clemenceau alumni, said ""Julien"""
+P4931,Todotango.com person ID,identifier for a person from Todotango.com
+P4932,Todotango.com work ID,identifier for a song or composition from Todotango.com
+P4933,Big Cartoon Database ID,identifier for the Big Cartoon Database
+P4934,calculated from,value of the subject item cannot be measured directly or can be calculated from the following measurands or attributes
+P4935,Small Monuments of Plze? Catalogue ID,"identifier for small monuments in Pilsen, Czech Republic"
+P4936,SFMOMA artist ID,identifier assigned to an artist or a studio by the San Francisco Museum of Modern Art
+P4937,Japan Rugby Football Union men's player ID,identifier for a men's rugby union player selected with the Japan national team on the Japan Rugby Football Union website
+P4938,Japan Rugby Football Union women's player ID,identifier for a women's rugby union player selected with the Japan national team on the Japan Rugby Football Union website
+P4939,BFMTV.com director ID,ID for the director of a French company on dirigeants.bfmtv.com
+P4940,Japan Rugby Football Union women's sevens player ID,identifier for a women's rugby sevens player selected with the Japan national team on the Japan Rugby Football Union website
+P4941,Japan Rugby Football Union men's sevens player ID,identifier for a men's rugby sevens player selected with the Japan national team on the Japan Rugby Football Union website
+P4942,Societe.com director ID,ID for the director of a French company on Societe.com
+P4943,Dominicains ID,identifier of a Dominican monk on the online Dictionnaire biographique des frres prcheurs
+P4944,Premiers prfets ID,identifier of a prefect on the online version of Les Prfets du 11 ventse an VIII au 4 septembre 1870
+P4945,download link,URL which can be used to download a work
+P4946,Library of Congress Demographic Group Terms ID,identifier for a term in the Library of Congress Demographic Group Terms controlled vocabulary
+P4947,TMDb movie ID,identifier for a movie at The Movie Database
+P4948,DDB ID,identifier for items in Deutsche Digitale Bibliothek
+P4949,Irish Rugby Football Union men's sevens player ID,identifier for a men's rugby sevens player selected with the Ireland national team on the Irish Rugby Football Union website
+P4950,Irish Rugby Football Union women's sevens player ID,identifier for a women's rugby sevens player selected with the Ireland national team on the Irish Rugby Football Union website
+P4951,INCI name,"uniform, nonproprietary, systematic name internationally recognized to identify a cosmetic ingredient"
+P4952,safety classification and labelling,classification and labelling data for risk identification about chemicals
+P4953,Library of Congress Genre/Form Terms ID,ID in the Library of Congress controlled vocabulary for genres and forms
+P4954,may prevent,disease which may be prevented by this substance
+P4955,MR Author ID,Mathematical Reviews ID in MathSciNet
+P4956,BDH edition ID,"identifier of an edition on the Biblioteca Digital Hispnica, including the prefix ""bdh"""
+P4957,AIDA freediver ID,identifier for a freediver on the Association internationale pour le dveloppement de l'apne website
+P4958,classification of the best at metas volantes,secondary classification for bicycle race statistics used in hispanic language countries
+P4959,paris.fr equipment ID,identifier for an equipment in Paris on the equipement.paris.fr website
+P4960,Generation MSX identifier,identifier in the Generation MSX database of MSX videogames
+P4961,Sega8bit.com identifier,identifier in the Sega8bit.com database of Master System video games
+P4962,Abandonia identifier,Identifier in the Abandonia database of abandonware video games
+P4963,Svenskt kvinnobiografiskt lexikon ID,identifier for an article in the Biographical Dictionary of Swedish Women
+P4964,SPLASH,hashed identifier for mass spectra
+P4965,Behind The Voice Actors video game ID,identifier for video games on the website Behind The Voice Actors
+P4966,Hungarian National Assembly identifier,identifier for a past or present member or office-holder of the Hungarian Parliament
+P4967,prerequisite,"prior event or achievement that a person or team needs to complete before joining or obtaining the item topic, e.g. a qualifying round of a sports event, a lower-level course in an educational program, or a lower level of a professional qualification"
+P4968,relevant qualification,"practitioners of this industry get this degree, licence or certification after specialist education, apprenticeship, or professional review. This includes qualifications that one needs to obtain in order to join the industry or qualifications that one obtains after a certain level of experience in the industry in order to progress further in their career."
+P4969,derivative work,"new work of art (film, book, software, etc.) derived from major part of this work"
+P4970,alternative name,qualifier for alternative name(s) given for a subject in a database entry
+P4971,UK Provider Reference Number,identifier for an educational organization issued by the UK Register of Learning Providers
+P4972,Norwegian war sailor register person ID,identifikation number in the Norwegian war sailor register
+P4973,Wikitribune category,name of a topic (category) on Wikitribune
+P4974,Scottish Rugby Union men's player ID,identifier for a men's rugby union player selected with the Scotland national team on the Scottish Rugby Union website
+P4975,Scottish Rugby Union men's sevens player ID,identifier for a men's rugby sevens player selected with the Scotland national team on the Scottish Rugby Union website
+P4976,Scottish Rugby Union women's player ID,identifier for a women's rugby union player selected with the Scotland national team on the Scottish Rugby Union website
+P4977,IDA place ID,identifier for a dark-sky place on the International Dark-Sky Association website
+P4978,PRS Legislative Research MP ID,identifier for Member of Parliaments of India tracked in PRS Legislative Research website
+P4979,Thsaurus de la dsignation des objets mobiliers ID,ID in the Thsaurus de la dsignation des objets mobiliers
+P4980,Thsaurus de la dsignation des Ïuvres architecturales et des espaces amnags ID,identifier for terms in this French architectural thesaurus
+P4981,Kinoliste ID,ID of a cinema described on the website Kinoliste.com
+P4982,WomenÕs Elite Rugby player ID,identifier for a female rugby union player on the WomenÕs Elite Rugby ID
+P4983,TMDb TV series ID,identifier for a TV show at The Movie Database
+P4985,TMDB person ID,identifier for a person at The Movie Database
+P4986,Routard.com place ID,identifier for a place on the Guide du routard website
+P4987,Scottish Rugby Union women's sevens player ID,identifier for a women's rugby sevens player selected with the Scotland national team on the Scottish Rugby Union website
+P4988,test method,"method in science, engineering or medicine, which determines the subject quantity, qualitative property or any other measurable attribute"
+P4989,RKDlibrary ID,record for a publication held by the RKD-Netherlands Institute for Art History in the Hague
+P4991,Biographical Dictionary of Georgia ID,identifier for a person in the Biographical Dictionary of Georgia
+P4992,DBA ID,identifier of a person in the online 'Nouveau dictionnaire de biographie alsacienne'
+P4993,Hungarian public body ID,unique identified for public bodies part in Hungary
+P4994,ruchess ID,"identifier for a Russian chess player, at ruchess.ru"
+P4996,World Para Snowboard athlete ID,"identifier of a snowboard athlete, in the World Para database"
+P4997,National Governors Association biography URL,biographical entry in the website of the National Governors Association
+P4998,key press,keyboard shortcut sequence. See property talk page for applicable syntax
+P4999,number of clubs,number of clubs active in a given sport for a region
+P5001,METAR code,METeorological Aerodrome Report
+P5002,Orthodox Encyclopedia ID,identifier for an entry on the official website of the Orthodox Encyclopedia
+P5003,Amphibians of India ID,"identifier for a species of amphibian, in the 'Amphibians of India' database"
+P5004,in opposition to,qualifier to indicate the purpose of a social action
+P5005,National Thesis Number (France),identifier usually assigned by the dissertation's library for a published thesis in France
+P5006,DNV Vessel register ID,"identifier for a ship, in the DNV Vessel register"
+P5007,Behind The Voice Actors person ID,identifier of a person on the website Behind The Voice Actors
+P5008,on focus list of Wikimedia project,"property to indicate that an item is of particular interest for a Wikimedia project. This property does not add notability. Items should not be created with this property if they are not notable for Wikidata. See also P6104, P972, P2354."
+P5009,complies with,the product or work complies with a certain norm or passes a test
+P5010,Territographie ID,identifier for a rural chapel in the Provence-Alpes-Cte-d'Azur region on the Territography platform developed by the CNRS
+P5011,Prazdne Domy building ID,identifier of a building in the Czech prazdnedomy.cz database
+P5012,special rank,non-military rank given to a civil office holder in Russia
+P5013,Welsh Rugby Union women's player ID,identifier for a women's rugby union player selected with the Wales national team on the Welsh Rugby Union website
+P5014,Welsh Rugby Union men's sevens player ID,identifier for a men's rugby sevens player selected with the Wales national team on the Welsh Rugby Union website
+P5015,Digital Typhoon typhoon ID,identifier for general information of a typhoon in Digital Typhoon
+P5016,Digital Typhoon cyclone ID,identifier for general information of a cyclone in South-West Pacific in Digital Typhoon
+P5017,last update,"date a reference was modified, revised, or updated"
+P5018,Chile Rugby player ID,identifier for a rugby union player selected with the Chile national team on the Chile Rugby website
+P5019,Brockhaus Enzyklopdie online ID,identifier for an article in the online version of Brockhaus Enzyklopdie
+P5020,Code of Household Registration and Conscription Information System (Taiwan),"This code is official for the administrative divisions in Taiwan, and manages by the Department of Household Registration, Ministry of Interior."
+P5021,assessment,"subject took the test or exam, or was assessed per test or method"
+P5022,test score,"score that the item achieved in a test; use as qualifier for ""test taken"" (P5021)"
+P5023,activity policy in this place,"policy for activities in this place, for example no photos, photos allowed, no flash, lighting fires, flying drones, etc."
+P5024,choral conductor,musical conductor of a choir
+P5025,gens,a clan or group of families from Ancient Rome who shared the same nomen
+P5026,lighting designer,person responsible for lighting on a stage
+P5027,number of representations,number of shows (including the premiere) of a concert tour or a performing arts production
+P5028,sound designer,"person responsible for the sound on a stage, in a film or in a radio drama"
+P5029,Researchmap ID,?dentifier for a researcher on researchmap.jp
+P5030,talk show guest,person invited in a talk show
+P5031,Animated Knots ID,"identifier for a type of knot, in the Animated Knots website"
+P5032,Filmweb.pl film ID,identifier for a movie or series at filmweb.pl
+P5033,Filmweb.pl person ID,identifier for a person at filmweb.pl
+P5034,National Library of Korea ID,identifier for name and subject authority in the database of the National Library of Korea
+P5035,Lambiek Comiclopedia artist ID,identifier for an article on the online biographical reference work about global cartoonists
+P5036,AmphibiaWeb Species ID,"identifier for a species, in the AmphibiaWeb database"
+P5037,Plants of the World online ID,identifier of a (vascular) plant name in the Plants of the World online database
+P5038,Fogis.se player ID,"identifier for a football (soccer) player's page at Fogis.se, a Swedish Football Association database"
+P5039,Authorea author ID,identifier for an author on the Authorea writing service
+P5040,GHS hazard pictogram,qualifier for P4952 for GHS hazard pictograms
+P5041,GHS hazard statement,"qualifier for P4952 for GHS H-statements (also EUH-statements, AUH-statements)"
+P5042,GHS precautionary statement,qualifier for P4952 for GHS P-statements
+P5043,number of abstentions,number of abstentions in a voting round of a election
+P5044,number of spoilt votes,number of spoilt votes in a voting round for a specfic position in a election (excluding blank votes; use P5045 instead)
+P5045,number of blank votes,number of blank votes in a voting round for a specific position in a election
+P5046,International Classification for Standards,classification system for technical standards
+P5047,Rosetta Code ID,identifier for a page on rosettacode.org
+P5048,Church of Sweden ID,"identifier in the database of dioceses, pastorates and church buildings of Sweden"
+P5049,Harvard designation,identifier for a pre-1963 spacecraft
+P5050,UMAC ID,identifier for a museum or collection in the Worldwide Database of University Museums and Collections
+P5051,towards,"qualifier for ""adjacent station"" (P197) to indicate the terminal station(s) of a transportation line or service in that direction"
+P5052,supervisory board member,member(s) of the supervisory board for the organization
+P5053,fastest lap,person who does the fastest lap during a motorsport race
+P5054,cabinet,"qualifier for ""position held"" (P39) to indicate the cabinet to which belongs a minister"
+P5055,IRMNG ID,"identifier of a scientific name, in the Interim Register of Marine and Nonmarine Genera (IRMNG) database"
+P5056,patronym or matronym for this person,"part of a person's name that comes from the given name of a parent, in naming traditions that require it"
+P5057,Handball-Bundesliga player ID,identifier for a player on the Handball-Bundesliga (HBL) website
+P5058,Encyklopedia Teatru Polskiego person ID,identifier of a person in Polish theatre database e-teatr.pl
+P5059,modified version of,indicates the work or one of its versions which served as a basis for the adaptation or arrangement resulting in the given version of the work
+P5061,unit symbol,"abbreviation of a unit for each language; if not provided, then it should default to English"
+P5062,DOAB publisher ID,identifier in the Directory of Open Access Books (DOAB)
+P5063,Interlingual Index ID,
+P5064,World of Physics identifier,"identifier for an entity or concept, in Eric Weisstein's 'World of Physics'"
+P5065,wind speed,wind flow velocity recorded during a given moment or period of time
+P5066,operating temperature,"temperature at which a device operates. Use qualifier ""criterion used"" (P1013) and values such as ""maximum"" (Q10578722), ""minimum"" (Q10585806), etc."
+P5067,non-operating temperature,temperature that a device can bear when it's turned off
+P5068,Flanders Arts Institute person ID,identifier of a person in the Flanders Arts Institute database for performing arts
+P5069,service life,product's total life in use from the point of sale to the point of discard
+P5070,French standard size for oil paintings,standard for sizes of canvases for use by artists
+P5071,boiler pressure,pressure at which a steam boiler operates. Use P1013 as qualifier to indicate if it is maximum pressure.
+P5072,presented in,"event at which a talk, film, paper, or poster was presented"
+P5073,JAAF athlete ID,identifier for athletes in Japan Association of Athletics Federations (JAAF) database and website
+P5075,Polish Athletics Federation athlete ID,identifier for an athlete on the Polish Athletics Federation website
+P5076,Rmpp online ID,identifier for an article in the online version of Rmpp
+P5077,Russian Athletics ID,identifier for athletes in the English version of the Russian Athletics database and website
+P5078,Athletics Canada ID (archived),identifier for an athlete on the Athletics Canada website
+P5079,NVE Lake Database ID,national identifying number given by NVE for every lake in Norway with a minimum size of 2500Êm?
+P5080,Norsk biografisk leksikon ID,identifier of an article in the online biographic encyclopedia nbl.snl.no
+P5081,Norsk kunstnerleksikon ID,identifier of an article in the online visual artist encyclopedia nkl.snl.no
+P5082,Store medisinske leksikon ID,identifier of an article in the online encyclopedia sml.snl.no
+P5083,Adult Film Database film ID,identifier for a film in the Adult Film Database
+P5084,Yahoo Answers category,category at Yahoo Answers
+P5085,Pschyrembel Online ID,identifier for an article in Pschyrembel Online
+P5086,FIPS 5-2 alpha code (US states),Two-letter identifier for US states and other associated areas per former Federal Information Processing Standard FIPS 5-2 standard
+P5087,FIPS 5-2 numeric code (US states),Two-digit identifier for US states and other associated areas per former Federal Information Processing Standard FIPS 5-2 standard
+P5088,Internet Encyclopedia of Philosophy ID,identifier for an article in the Internet Encyclopedia of Philosophy
+P5090,ARRS race ID,identifier for races held by ARRS (Association of Road Racing Statisticians)
+P5091,HanCinema drama ID,identifier for a TV Series in the HanCinema database
+P5092,ISC event ID,entry in the International Seismological Centre Online Event Bibliography
+P5093,road number (Estonia),identifier for a road in the Estonian Road Register (teeregister); format: up to 7 digits
+P5094,HPIP ID,"identifier of an entity of Portuguese influence, including geographic/toponymic, onomastic, original author, chronological references, etc."
+P5095,fault,geological faults involved in the event
+P5096,member of the crew of,"person who has been a member of a crew associated with the vessel or spacecraft. For spacecraft, inverse of crew member (P1029), backup or reserve team or crew (P3015)"
+P5097,Logainm ID,identifier for a placename page on the Placenames Database of Ireland (Logainm) site
+P5098,IAFD film ID,identifier for a film in the Internet Adult Film Database
+P5099,Il mondo dei doppiatori ID,identifier for a creative work or person at Il mondo dei doppiatori
+P5101,Swedish Literature Bank Author ID,identifier for an author in the Swedish Literature Bank
+P5102,nature of statement,(qualifier only) the underlying circumstances of this statement
+P5103,FIS speed skier ID,"identifier for a speed skier, in the International Ski Federation database"
+P5104,New Zealand Gazetteer place ID,identifier for a place in the New Zealand Gazetteer
+P5106,Dictionary of Algorithms and Data Structures ID,identifier for an entry in the Dictionary of Algorithms and Data Structures
+P5107,Behind The Voice Actors character ID,identifier of a character from the Behind The Voice Actors website
+P5108,HanCinema film ID,identifier for a films in the HanCinema database
+P5109,has grammatical gender,"specific form of noun class system of a language. Use qualifier ""statement is subject of"" (P805) to link to language specific item if present"
+P5110,has grammatical person,grammatical feature relating to the identity of participants in an event
+P5114,Italian School ID,"This property describes the school identifier used by Italian Ministry of Education, Universities and Research for identifying italian schools"
+P5115,Directory of Open Access Journals ID,"ISSN identifier of a journal in the Directory of Open Access Journals. When statements with this property need correcting, property ""ISSN"" (P236) are likely to be wrong as well"
+P5116,LGDB game ID,identifier for a game in the Linux Game Database
+P5117,LGDB emulator ID,identifier for an emulator in the Linux Game Database
+P5118,LGDB tool ID,identifier for a software tool in the Linux Game Database
+P5119,LGDB engine ID,identifier for a game engine in the Linux Game Database
+P5120,TFRRS athlete ID,identifier for an athlete on the TFRRS track and field and cross country results website
+P5121,All About Jazz musician ID,identifier for a musician or musical group at All About Jazz website
+P5122,Ontario public library ID,identifier in the Ontario public library statistics
+P5123,Swedish Literature Bank edition,identifier for an book in the Swedish Literature Bank
+P5124,WikiCFP event ID,"identifier for an event in WikiCFP, an online database for scientific meetings"
+P5125,Wikimedia outline,item about an outline of the topic at Wikimedia sites
+P5126,assistant director,"assistant stage director of a performing arts, film or television production"
+P5127,WikiCFP conference series ID,"identifier for a conference series, in WikiCFP"
+P5128,ICAA film catalogue ID,ID of a film in the film catalogue of Instituto de la Cinematografa y de las Artes Audiovisuales
+P5129,Stepwell Atlas ID,"ID for Stepwell Atlas, a collaborative map and information resource for stepwells, stepped ponds and other notable stepped water architecture"
+P5131,possible medical findings,possible medical findings of a medical condition
+P5132,suggests the existence of,medical conditions associated with the subject medical finding
+P5133,has evaluation,evaluation or interpretation corresponding to the subject attribute or examination
+P5134,evaluation of,the subject finding is an evaluation or interpretation of the object attribute or test
+P5135,greater than,"instances of the item have a greater value than corresponding instances of the object, for the given measure"
+P5136,less than,"instances of the item have a lesser value than corresponding instances of the object, for the given measure"
+P5137,item for this sense,concept corresponding to this sense of a lexeme. Do not use on items or properties
+P5138,season of club or team,club or team that played the season
+P5139,Mllendorff transliteration,transliteration from the Manchu alphabet to Latin script following the Mllendorff system
+P5140,coordinates of geographic center,"coordinates of the center of an area. Use qualifier ""determination method"" (P459) to indicate how"
+P5141,coastline,"length of the coastline (sea shore) of the region. Use qualifier ""determination method"" (P459) to define how it's determined/which granularity is used."
+P5142,Chinese Political Elites Database ID,identifer for a Chinese politician in the Chinese Political Elites Database
+P5143,amateur radio callsign,callsign assigned to licensed Amateur Radio operator
+P5144,Bugs! album ID,identifier for an album on Bugs! music site
+P5145,Bugs! artist ID,identifier for an artist on Bugs! music site
+P5146,Cinema Project (Israel) ID,ID for movies backed by the Cinema Project / Yehoshua Rabinovich Foundation (Israel)
+P5147,Dictionary of Swedish Translators ID,article in the Dictionary of Swedish Translators
+P5148,e-MEC entry,entry for a Brazilian institution of higher learning in the Ministry of Education
+P5149,Ester ID,identifier for an item in the E-Katalog ester.ee
+P5150,IGAC rating,rating of a film or theatrical production in the Portuguese classification system
+P5151,Israel Film Fund ID,ID for movies backed by the Israel Film Fund
+P5152,KAVI rating,rating in the Finnish film and television rating system
+P5153,KKBox album ID,identifier for an album on KKBox music site
+P5154,KKBox artist ID,identifier for an artist on KKBox music site
+P5156,Norwegian war sailor register ship-ID,identifikation number for ship in the Norwegian war sailor register
+P5157,OnsOranje match ID,identifier for a match in the database of OnsOranje
+P5158,OnsOranje player ID,identifier for a player in the database of OnsOranje
+P5159,The New Fund for Cinema and Television (Israel) ID,ID for movies backed by the New Fund for Cinema and Television (Israel)
+P5160,Thesaurus for Graphic Materials ID,"identifier for indexing visual (graphic) materials by subject and genre/format, maintained by the United States Library of Congress, Prints and Photographs Division"
+P5161,Trustpilot company ID,identifier of a company or website on the Trustpilot customer reviews website
+P5162,OnsOranje tournament ID,identifier for a tournament in the database of OnsOranje
+P5163,Odnoklassniki ID,identifier for a person or organization in Odnoklassniki
+P5164,Flanders Arts Institute organisation ID,identifier of an organisation in the Flanders Arts Institute database for performing arts
+P5165,Norsk pop- og rockleksikon ID,identifier of an article in the online biographic encyclopedia Norsk pop- og rocklexicon
+P5166,established from medical condition,cell line or xenograft established from an individual person or animal with a specific medical condition
+P5167,vehicles per thousand people,number of vehicles per 1000 people. Use qualifier determination method (P459) to describe how it's done.
+P5168,applies to name of item,"(qualifier) label or alias name to which the claim applies (subject of the statement). To refer to name of the value, use ""applies to name of value"" (P8338)"
+P5169,Norwegian historical lexicon ID,identifier of an article in the online historic encyclopedia Norsk historisk leksikon
+P5170,Norwegian fjord catalog ID,identificator for fjords and sea areas in Norway
+P5171,Rockipedia release ID,identifier of music releases in the Norwegian online service Rockipedia
+P5172,Rockipedia artist ID,identifier of an artist biography or a band article in the online service Rockipedia
+P5173,Rockipedia area ID,"identifier of an area, an artisis homested, in the online service Rockipedia"
+P5174,Rockipedia label ID,identifier of a music label in the online service Rockipedia
+P5175,Univ-droit jurist ID,identifier of a legal scholar on Univ-droit
+P5176,KIT Linked Open Numbers ID,"identifier for a natural number in the KIT, general proxy for natural numbers. Format: \d+"
+P5177,Victorian Heritage Register ID,"identifier in Victorian Heritage Register, Australia"
+P5178,glossary entry at Wikipedia,description of a concept in a glossary at Wikipedia. Use sitelinks for Wikipedia articles. Format: use full URL including anchor (#)
+P5179,FloraCatalana ID,identifier for a plant taxon in the FloraCatalana database
+P5180,CIVICUS Monitor country entry,page for the country at the CIVICUS Monitor
+P5181,Relationship Science organization ID,identifier for an organization in the Relationship Science database
+P5182,JMA Seismic Intensity Database ID,identifier for an earthquake event in Japan Meteorological Agency Seismic Intensity Database
+P5183,Eurohockey.com club ID,identifier for an ice hockey team in the database of Eurohockey.com
+P5184,Daum Encyclopedia ID,identifier for content in the Daum Encyclopedia
+P5185,grammatical gender,grammatical gender of the word
+P5186,conjugation class,"conjugation class this lexeme belongs to. On items for languages, use ""has conjugation class"" (P5206)"
+P5187,word stem,word stem of the subject lexeme
+P5188,Sandbox-Lexeme,"sandbox property, use this to experiment linking to Lexeme entities"
+P5189,Sandbox-Form,"sandbox property, use this to experiment linking to a Form of a Lexeme entity"
+P5191,derived from lexeme,most direct lexeme(s) this one has developed from
+P5192,Wikidata property example for lexemes,"example where this Wikidata property is used; target lexeme is one that would use this property, with qualifier the property being described given the associated value"
+P5193,Wikidata property example for forms,"example where this Wikidata property is used; target form is one that would use this property, with qualifier the property being described given the associated value"
+P5194,officialized by,the item which officialized this lexeme
+P5195,Wikidata Dataset Imports page,URL for the import page for a dataset on Wikidata:Dataset Imports
+P5196,output method,output method or device used to interact with a software product
+P5197,Melon track ID,identifier for a song on Melon
+P5198,ASC Leiden Thesaurus ID,"identifier for a topic, in the African Studies Centre (ASC) Leiden's Thesaurus"
+P5199,British Library system number,nine digit identifier for an edition of a book held by the British Library
+P5200,eBird hotspot ID,"identifier for a nature reserve or other site (""hotspot"") in the eBird database"
+P5201,IMDA rating,rating in the Singaporean film and video game rating system
+P5202,adapted by,person responsible for the arrangement or adaptation resulting in this version of the original work
+P5203,topographic map,topographic map covering this geographic object
+P5204,date of commercialization,date when a product was first commercialized
+P5205,stroke count,"number of strokes in a Chinese, Japanese, Korean or Vietnamese character"
+P5206,has conjugation class,"conjugation pattern for group of verbs in the language. Use on items for languages. For lexemes, use ""conjugation class"" (P5186)."
+P5207,BAG public space ID,"BAG openbare ruimtecode for Dutch public spaces, notably streets and roads in the Netherlands; format: 16 digits"
+P5208,BAG building ID,"BAG building ID for Dutch buildings (""panden"")"
+P5209,ISO 3950 code,identifier for a tooth per ISO 3950
+P5210,National Gallery of Armenia work ID,"identifier for an artwork, in the National Gallery of Armenia database"
+P5211,GONIAT author ID,"identifier for a taxonomic author, in the GONIAT database"
+P5212,Armenian National Academy of Sciences ID,identifier for a member of the Armenian National Academy of Sciences
+P5213,Armenian Parliamentary ID,"identifier for a Member of the National Assembly of the Republic of Armenia, in its official website"
+P5214,GONIAT paper ID,"identifier for a taxonomic paper about Paleozoic ammonoids, in the GONIAT database"
+P5215,GONIAT place ID,"identifier for a place, in the GONIAT database"
+P5216,GONIAT taxon ID,"identifier for a taxon, in the GONIAT database"
+P5217,Spyur ID,"identifier for a company or organisation in Armenia, in the Spyur directory"
+P5218,Armenian Cinema ID,"identifier for a work or person, in the Armenian Cinema database of the Armenian Association of Film Critics and Cinema Journalists"
+P5219,BMRB ID,"identifier of a compound in bmrb.wisc.edu, an NMR spectra database"
+P5220,ICSC ID,identifier of a compound in the International Chemical Safety Card database
+P5221,Tree of Life Web Project ID,identifier in the Tree of Life Web Project
+P5222,National Women's Soccer League player ID,identifier for a National Women's Soccer League player at nwslsoccer.com
+P5223,Information Center for Israeli Art artwork ID,identifier assigned to an artwork by the Information Center for Israeli Art
+P5224,OlimpBase Women's Chess Olympiad player ID,identifier for a player at www.olimpbase.org who took part in the Women's Chess Olympiad
+P5225,Argentine biography deputy ID,biography of an Argentine deputy from the Chamber of Deputies' website
+P5226,BRAHMS artist ID,"identifier for a composer in the B.R.A.H.M.S. database, by the IRCAM"
+P5227,Carnegie Hall event ID,identifier for an event in the Carnegie Hall Linked Open Data (LOD) database
+P5229,Carnegie Hall work ID,identifier for a work in the Carnegie Hall Linked Open Data (LOD) database
+P5230,chromosome count,karyological information on the number of chromosomes typical for a species
+P5231,Chromosome numbers of the Flora of Germany database ID,"numerical identifier in the ""Chromosome numbers of the Flora of Germany"" database"
+P5232,D&B Hoovers company profile,identifier for a company in the D&B Hoovers database ID
+P5233,Filmow ID,identifier at the Filmow database of films and TV shows
+P5234,SpectraBase compound ID,"identifier of a compound in spectrabase.com, a database with spectra"
+P5235,Cit de la Musique-Philharmonie de Paris work ID,identifier for a musical work in the Cit de la Musique-Philharmonie de Paris database
+P5236,prime factor,one of the prime numbers that can be multiplied to give this number
+P5237,pronunciation variety,"qualifier for IPA transcription (P898), pronunciation audio (P443) or spoken text audio (P989) to indicate the associated spoken language variant"
+P5238,combines lexemes,lexemes combined in this lexeme
+P5239,Artists in Canada record number,authority control maintained by National Gallery of Canada Library listing biographical data for artists who were born in Canada or worked in Canada
+P5240,RollDaBeats artist ID,identifier for a musical artist on the RollDaBeats website
+P5241,Songfacts song ID,identifier for a song on the Songfacts website
+P5242,ARWU university ID,identifier for an university on the Academic Ranking of World Universities website
+P5243,Canal-U person ID,identifier of a person on Canal-U
+P5244,reading pattern of Han character,
+P5245,myschool ID,"identifier of a school in Australia, in the myschool.edu.au site, a government source of compiled data"
+P5246,Pornhub star ID,identifier for a porn performer in the database of the Pornhub website
+P5247,Giant Bomb ID,"identifier at the Giant Bomb database of video games, fictional characters and voice actors"
+P5248,medical evacuation to,site to which those injured are evacuated immediately after a catastrophic event or a battle
+P5249,sports competition competed at,edition of sports competitions at which the club or team that played a season competed at. Use this to link items for team seasons to items for specific seasons of competitions.Sample: 2012Ð13 FC Barcelona season ? 2012Ð13 UEFA Champions League
+P5250,IAB code,code for an Internet Advertising Bureau (IAB) Quality Assurance Guidelines (QAG) segment
+P5251,Corago opera ID,identifier for an opera on the Corago website
+P5252,winter view,"image of the subject at winter, preferrable with snow"
+P5253,FilmTv.it movie ID,identifier for a movie at FilmTv.it
+P5254,FilmTv.it person ID,identifier for a person at FilmTv.it
+P5255,FilmTv.it TV series ID,identifier for a TV serie at FilmTv.it
+P5256,OpenCorporates corporate grouping,companies grouped together at OpenCorporates
+P5257,BirdLife taxon ID,"identifier for an avian taxon, in the BirdLife factsheet database"
+P5258,Czech Geomorphological Unit Code,identifier assigned to geomorphological units (regions) in Czechia
+P5259,Swedish Gravestone ID,"register of +348 000 Swedish gravestones for +759,000 Swedish people"
+P5260,App Store developer ID,identifier for an iOS app developer on App Store
+P5261,Les Enfoirs participant ID,"identifier for a participating celebrity in the Enfoirthque, the database of Les Enfoirs website"
+P5262,Les Enfoirs song ID,"identifier for a song in the Enfoirthque, the database of Les Enfoirs website"
+P5263,Czech NDOP taxon ID,"identifier for a taxon in the Conservancy Species Occurrence Finding Database, managed by the Nature Conservation Agency of the Czech Republic"
+P5264,Relationship Science person ID,identifier for a person in the Relationship Science database
+P5265,Dordrechts Museum artwork ID,identifier for an artwork or other object on the Dordrechts Museum website
+P5266,Finnish national bibliography corporate name ID,Finnish national bibliography corporate names database covers the recommended forms of corporate and creator names that the National Library of Finland has produced in the process of tagging the national bibliography.
+P5267,YouPorn ID,identifier for a porn performer in the database of the YouPorn website
+P5268,MNAV work ID,identifier assigned to an artwork by the National Museum of Visual Arts of Uruguay
+P5269,Web umenia work ID,identifier for an artwork or other object on the Web umenia website
+P5270,MonDO ID,identifier for a disease in the Monarch Disease Ontology
+P5271,Saint Louis Art Museum person ID,identifier for a person on the Saint Louis Art Museum website
+P5272,CDMC musician ID,identifier for a musician in the Centre de documentation de la musique contemporaine database
+P5273,Nelson-Atkins Museum of Art person ID,identifier for a person on the Nelson-Atkins Museum of Art website
+P5274,SJP Online ID,identifier for an entry in the online version of Polish Dictionary (pl S?ownik J?zyka Polskiego)
+P5275,OED Online ID,identifier for an entry in the online version of Oxford English Dictionary
+P5276,Slavic phonetic alphabet transcription,system of pronunciation recording
+P5277,grade of kanji,degree of difficulty of kanji
+P5278,gender inflection of surname,surname version for other gender
+P5279,hyphenation,positions where this form can be hyphenated
+P5280,radical,radical of Chinese character
+P5281,residual stroke count,(qualifier) number of residual stroke in addition to radical of Chinese character
+P5282,ground level 360 degree view,URL to access a service that allows to visually navigate through images at ground level in the proximity of the item
+P5283,Strava ID of a professional sport person,Wikidata property for authority control for sports people
+P5284,Douban movie celebrity ID,identifier for a celebrity at the Douban movie website
+P5285,Firmenbuchnummer,Austrian company register ID
+P5286,Portable Game Notation,move of a chess game provided as a string in Portable Game Notation
+P5287,Songfacts artist ID,identifier for an artist on the Songfacts website
+P5288,StadiumDB identifier,identifier for a stadium on StadiumDB.com
+P5289,World Stadium Database identifier,sportsarenas/stadium database
+P5290,Redump.org ID,identifier at the Redump.org database of video games
+P5291,Taratata artist ID,identifier for an artist on the Taratata website
+P5292,NRJ artist ID,identifier for an artist on the French NRJ website
+P5293,Akout ID,identifier for an artist on the Akout website
+P5294,Church of Norway building ID,"identifier for a church building listed by Church of Norway (""Kirkebyggdatabasen"")"
+P5295,Lafonoteca artist ID,identifier for an artist on the Lafonoteca website
+P5296,Party Number (Taiwan),identifier assigned to parties registered in Taiwan by the Ministry of the Interior
+P5297,Companies House officer ID,identifier for an officer (natural person or legal person) of companies registered with Companies House in the United Kingdom
+P5298,Webb-site person ID,"identifier for a person on ""Webb-site Who's Who"""
+P5299,AntWeb ID,identifier for a taxon in the AntWeb database
+P5300,Webb-site organization ID,"identifier for an organization on ""Webb-site Who's Who"""
+P5301,France Culture person ID,identifier for a person on the France Culture website
+P5302,BRAHMS work ID,"identifier for a musical work in the B.R.A.H.M.S. database, by the IRCAM"
+P5303,DLCM ID,identifier for a past or present member of the Legislative Council of Hong Kong in the Database on Legislative Council Members
+P5304,type locality (biology),"geographical place of capture, collection or observation of the name-bearing type"
+P5305,SPARQL endpoint,URL of the SPARQL endpoint of the database/website
+P5306,LONSEA ID,identifier for a person on the LONSEA site
+P5307,display technology,technology used by the display of this device
+P5308,Dictionary of Scottish Architects ID,identifier for a person on the online Dictionary of Scottish Architects
+P5309,Drouot artist ID,identifier for an artist on the Drouot website
+P5310,Protected Buildings Register in Finland ID,Item ID in the Protected Buildings Register maintained by the Finnish Heritage Agency
+P5311,Kino-teatr.ua film ID,identifier for a movie at Kino-teatr.ua
+P5312,Kino-teatr.ua person ID,identifier for a person at Kino-teatr.ua
+P5313,Protected Buildings Register in Finland Building ID,Building ID in the Protected Buildings Register maintained by the Finnish Heritage Agency
+P5314,property scope,constraint system qualifier to define the scope of a property
+P5315,BioStor work ID,identifier for a work in the BioStor digital library
+P5316,Swedish Signaturer.se ID,the creator of ceramics and porcelain is described on signature.se and what stamps were used
+P5317,jockey,person riding the horse in the race
+P5318,Csar Award film ID,identifier for a film on the Csar Awards website
+P5319,Csar Award person ID,identifier for a person on the Csar Awards website
+P5320,IUF member ID,
+P5321,Museo del Prado artist ID,identifier of an artist in the Museo del Prado web page
+P5323,attested in,"document where the lemma or form of a Lexeme entity, word or name is attested"
+P5324,Swedish National Archive Reference Code,reference code for an archive for a person/organisation/event... stored at the National Archive of Sweden
+P5325,Swedish Academy member ID,identifier of a person in the register of members of the Swedish Academy
+P5327,fernsehserien.de ID,identifier for television series on the website fernsehserien.de
+P5328,revival or touring version of,indicates the original performing arts production which served as a basis for the given production (which uses the same performance plan)
+P5329,ARMB member ID,Royal Academy of Medicine of Belgium member ID
+P5331,OCLC work ID,identifier for a work-level item in the OCLC linked data system
+P5332,OpenDOAR ID,identifier in the Directory of Open Access Repositories (OpenDOAR)
+P5333,Brose ID,"identifier for a person, a journal or an institution on the website of the Brose online encyclopedia"
+P5334,Rom Galil settlement ID,"ID of a settlement in the Galilee settlement database, Rom Galil"
+P5335,Or Movement settlement ID,the ID of a settlement in the Or Movement database for the Negev and the Galilee
+P5336,Or Movement regional council ID,the ID of a regional council in the Or Movement database for the Negev and the Galilee
+P5337,Google News topics ID,identifier for a subject in the news on Google News
+P5338,SilentEra.com film ID,identifier for a movie at Silentera.com
+P5339,Lega Serie A soccer player ID,identifier of a soccer player in the Lega Serie A website
+P5340,American Film Institute person ID,identifier for a person at American Film Institute
+P5341,Poetry Foundation ID,identifier for a poet on the Poetry Foundation website
+P5343,Poets.org poet ID,identifier for a poet on the Academy of American Poets website
+P5344,Printemps des potes poet ID,identifier for a poet on the Printemps des potes website
+P5345,PC Engine Software Bible ID,identifier in the PC Engine Software Bible database of PC Engine videogames
+P5346,Playboy Plus ID,identifier of a profile on the Playboy Plus website
+P5348,angular diameter,angular measurement describing how large a sphere or circle appears from a given point of view
+P5349,laps completed,number of laps completed by a race participant
+P5350,Alexander polynomial,invariant of a knot or link. Use 't' as variable and list monomials in decreasing order.
+P5351,Conway polynomial,invariant of a knot. Use z as variable and list monomials in decreasing order.
+P5352,Jones polynomial,invariant of a knot or link. Use q as variable and list monomials in decreasing order.
+P5353,school district,school district to which a settlement or other item belongs
+P5354,Amphibian Species of the World ID,identifier for a taxon in the Amphibian Species of the World database
+P5355,abgeordnetenwatch.de politician ID,"identifier for a German politician, in the abgeordnetenwatch.de database"
+P5356,Laut.de artist ID,identifier for an artist on the Laut.de website
+P5357,The Encyclopedia of Science Fiction ID,identifier for an entry on the Encyclopedia of Science Fiction website
+P5358,Operone opera ID,identifier for an opera on the Operone website
+P5359,Operone composer ID,identifier for a composer on the Operone website
+P5360,MobyGames group ID,identifier of a group in the MobyGames database
+P5361,BNB person ID,identifier of a person in the British National Bibliography (bnb.data.bl.uk)
+P5362,Acadmie des sciences morales et politiques member ID,identifier of a member of the 'Acadmie des Sciences Morales et Politiques' on its website
+P5363,Acadmie des beaux-arts member ID,identifier of a member of the Acadmie des beaux-arts on its website
+P5364,British Council writer ID,identifier for a writer on the British Council website
+P5365,Internet Book Database of Fiction writer ID,identifier for a writer on the Internet Book Database of Fiction website
+P5366,Operissimo artist ID,identifier for an artist on the Operissimo website
+P5368,National Gallery of Canada artist ID,identifier of an artist at the National Gallery of Canada's web site
+P5369,Encyclop¾dia Universalis author ID,identifier of an author on the online version of Encyclop¾dia Universalis
+P5370,Entomologists of the World ID,identifier for an entry in the Biographies of the Entomologists of the World online database
+P5371,GAMECIP media format ID,identifier of a media format in the thesaurus of the Game Metadata and Citation Project
+P5372,Dictionnaire critique des historiens de l'art ID,identifier on an art historian on the online Dictionnaire critique des historiens de l'art actifs en France de la Rvolution la Premire Guerre mondiale
+P5373,cole normale alumnus ID,identifier of an alumnus on the Dictionnaire prosopographique des lves nomms l'cole normale de l'an III
+P5374,Acadmie des sciences d'outre-mer member ID,identifier for a member on the Acadmie des sciences d'outre-mer website
+P5375,BIU Sant person ID,identifier for a person on the Bibliothque interuniversitaire de sant website
+P5376,Medicina author ID,identifier for an author in the Medicina database
+P5377,tonnants voyageurs participant ID,identifier for a participant on the tonnants voyageurs website
+P5378,Akadem person ID,identifier of a person on Akadem
+P5379,GAMECIP platform ID,identifier of a computer game platform in the thesaurus of the Game Metadata and Citation Project
+P5380,National Academy of Sciences member ID,identifier for a member or foreign associate on the American National Academy of Sciences website
+P5381,EGROKN ID,identifier for a monument in the Unified state register of objects of cultural heritage (monuments of history and culture) of the peoples of the Russian Federation
+P5382,Behind The Voice Actors franchise ID,identifier of a franchise on the website
+P5383,archINFORM project ID,identifier for a project on the archINFORM website
+P5384,Behind The Voice Actors film ID,identifier of a film on the website Behind The Voice Actors
+P5385,IGN game ID,External identifier for video games at IGN
+P5386,JMA Seismic Intensity Scale,maximum intensity scale of this earthquake given by JMA Seismic Intensity Scale
+P5387,Behind The Voice Actors TV show ID,identifier of a television show on the website Behind The Voice Actors
+P5388,Bulgarian Antarctic Gazetteer ID,identifier of a location in Antarctica in the Bulgarian Antarctic Gazetteer
+P5389,permanent resident of,country or region where a person has the legal status of permanent resident
+P5390,Classiques des sciences sociales ID,identifier on the Classiques des sciences sociales website
+P5391,Norwegian Polar Institute place name ID,"identifier of a location in the Norwegian Polar Institute's ""Place names in Norwegian polar areas"" database"
+P5392,Poetry Archive poet ID,identifier for a poet on the Poetry Archive website
+P5393,cipM poet ID,identifier for a poet on the Centre international de posie Marseille website
+P5394,Poets & Writers author ID,identifier for an author on the Poets & Writers website
+P5395,Canadian Encyclopedia article ID,identifier for articles in the Canadian Encyclopedia
+P5396,Online Books Page publication ID,"identifier for a publication, at the Online Books Page website with copyright info"
+P5397,Tierstimmenarchiv ID,identifier for a species in the Animal Sound Archive Berlin
+P5398,TDKIV term ID,identifier for a term used by the Czech Terminology Database of Library and Information Science (TDKIV) produced by the National Library of the Czech Republic
+P5400,GeoNLP ID,Japan identifier for a place
+P5401,auxiliary verb,auxiliary verb to be used with this verb
+P5402,homograph lexeme,lexeme in the same language with the same spelling as this one
+P5403,CNAP artist ID,identifier for an artist on the Centre national des arts plastiques website
+P5404,Rate Your Music artist ID,identifier for an artist or group on the website Rate Your Music
+P5406,Rendez-vous de l'histoire ID,identifier of a participant of the 'Rendez-vous de l'histoire' on the website of this festival
+P5407,MHK object ID,"identifier for an object (painting, sculpture, instrument) in the collection of the Museumslandschaft Hessen Kassel"
+P5408,Fantastic Fiction author ID,identifier for an author on the Fantastic Fiction website
+P5409,ële en le author ID,identifier for an author on the 'ële en le' website
+P5410,Flanders Music Centre person ID,identifier for a person on the Flanders Music Centre website
+P5411,CeBeDem composer ID,identifier for a composer on the CeBeDem website
+P5412,romanization of Belarusian (2007 system),romanization of Belarusian (2007)
+P5413,Ricochet author ID,identifier for an author on the Ricochet website
+P5414,The Paris Review interviewee ID,identifier for an interviewee on the Paris Review website
+P5415,Whonamedit? doctor ID,identifier for a doctor on the Whonamedit? website
+P5417,Common Procurement Vocabulary,massively multilingual and public domain taxonomy legislated by the EU for goods and services
+P5418,Pasteur Institute person ID,identifier for a person on the Pasteur Institute website
+P5419,NYRB contributor ID,identifier for a contributor on the New York Review of Books website
+P5421,Trading Card Database person ID,identifier for a person or fictional character in the Trading Card Database (TCDb)
+P5422,has pattern,"pattern, design, or motif intrinsic to, incorporated into, or applied to the surface of the subject"
+P5423,floor number,"floor number in a street address. To be used as a qualifier of Property:P6375 ""located on street"" or as a property of a place"
+P5424,Lega Serie A team ID,identifier of a soccer team in the Lega Serie A website
+P5425,Han character in this lexeme,Han character(s) this lexeme consists of
+P5426,tone or pitch accent class,type of an tone or pitch accent of a lexeme with respect to the classifications for a given tonal or pitch accented language
+P5427,position of accent nucleus,(qualifier) position of the accented syllable or mora
+P5428,position of devoiced vowel,(qualifier) position of syllable or kana with devoiced vowel
+P5429,IPTC NewsCode,"NewsCode for an item, as defined by the International Press Telecommunications Council (IPTC)"
+P5430,Poetry International Web poet ID,identifier for a poet on the Poetry International Web website
+P5431,setlist.fm artist ID,identifier for a solo artist or group at setlist.fm
+P5432,setlist.fm venue ID,identifier for a music venue at Setlist.fm
+P5434,Gfycat user ID,user name for an entity on Gfycat.com
+P5435,pixiv user ID,the artist id on pixiv
+P5436,number of viewers/listeners,number of viewers of a television or broadcasting program; web traffic on websites
+P5437,EuroVoc ID,"identifier for an area of government activity, in the European Union's EuroVoc thesaurus"
+P5438,signum,familiar nickname of the ancient Romans of Greek origin developed during the 3rd century
+P5439,research measurement,a measurement of an experimentally observed variable
+P5440,Elysee.fr president ID,identifier of a president of the French Republic on elysee.fr
+P5441,Encyclopaedia Herder person ID,
+P5442,Library of Congress of Chile person ID,Biographical Articles of the Library of Congress of Chile ID
+P5443,Collge de France professor ID,identifier of a professor at the 'Collge de France' on its website
+P5444,model year,"year a specific model of a product (such as a car) was released, likely different from the actual year of production"
+P5445,Language Council of Norways termwiki ID,"Identifier for a term in the Norwegian language, as given by an entry in the Language Council of Norways termwiki. This is a terminology database for academic disciplines. The terms are usually given as Bokml, Nynorsk, and English variants."
+P5446,reference value,"value or range of values for a medical test (subject item), used to evaluate whether the results of the test are normal or not"
+P5447,lower limit,lower limit of a range or an interval; (qualifier) used with a dummy value which specifies the type of the range or interval
+P5448,upper limit,upper limit of a range or an interval; (qualifier) used with a dummy value which specifies the type of the range or interval
+P5449,Inventory of French sanctuaries ID,identifier for items in the inventory of Christian shrines and pilgrimage sites in France
+P5450,Biographisches Archiv der Psychiatrie ID,identifier for a person on the Biographisches Archiv der Psychiatrie website
+P5451,House of Representatives of Morocco ID,identifier for a person on the House of Representatives of Morocco website
+P5452,MyHeritage Surname ID,string identifying a surname (family name) at the MyHeritage genealogy website
+P5453,Logicielsmoto identifier,identifier in the Logicielsmoto database of Thomson software
+P5454,USNPL ID,identifier in the US Newspaper Links (USNPL) database for newspapers in the United States
+P5455,SGJP Online ID,identifier for an entry in the online version of Grammatical Dictionary of Polish (pl S?ownik gramatyczny j?zyka polskiego)
+P5456,TasteAtlas ID,identifier for an item at TasteAtlas
+P5457,Conseil constitutionnel ID,identifier of a member of the 'Conseil constitutionnel' on its website
+P5458,Guide to Pharmacology Target ID,target identifier of the Guide to Pharmacology database
+P5459,RHE doctor ID,identifier of a doctor on the database of doctoral thesis submitted in French faculties of Arts from 1808 to 1940
+P5460,grants,"confers degree, honor, award, prize, title, certificate or medal denoting achievement to a person or organization"
+P5461,model year code,"letter or digit in position 10 of a vehicle identification number (VIN) indicating the model year (MY) for years 1980 to 2009, repeating for 2010 to 2039, etc. Format: not I,O,Q,U,Z,0. Year 2018 is J."
+P5462,RHE professor ID,identifier of a doctor on the database of professor of French Faculties of art and science from 1808 to 1880
+P5463,AE member ID,identifier for a member of the Academy of Europe
+P5464,A Church Near You church ID,identifier for a church at the A Church Near You website
+P5465,Australian Poetry Library poet ID,identifier for a poet on the Australian Poetry Library website
+P5466,French Academy in Rome resident ID,identifier for a resident on the French Academy in Rome website
+P5467,GlyphWiki ID,"identifier of GlyphWiki, in which glyphs of Han characters are managed"
+P5468,Historia de la Medicina person ID,identifier for a person on the Historia de la Medicina website
+P5469,Mormon Literature and Creative Arts Database artist ID,identifier for a person listed in the Mormon Literature and Creative Arts Database
+P5470,Scottish Poetry Library poet ID,identifier for a poet on the Scottish Poetry Library website
+P5471,Harmonized System Code,code in the Harmonized System for a category of object traded internationally
+P5473,The Reptile Database ID,identifier for all living reptile species in The Reptile Database
+P5474,section number,"number assigned to a section of sportspeople in a sporting competition; e.g. ""3"" for a ""quarter-final 3""; use together with property ""stage reached"" (P2443)"
+P5475,CJKV variant character,equivalent forms of Han characters used in different regions or writing systems
+P5476,LegaBasket.it player ID,identifier for a player at legabasket.it
+P5477,Les Voix de la posie poet ID,identifier for a poet on the Les Voix de la posie website
+P5478,RPO poet ID,identifier for a poet in the Representative Poetry Online database
+P5479,ultimate tensile strength,material property measuring the tensil strengh at break
+P5480,tensile modulus of elasticity,material proprety linking the elastic deformation to the yield strengh.
+P5481,position of nasal sonant,(qualifier) position of character or kana with nasal sonant
+P5483,hardness,measure of how resistant solid matter is to various kinds of permanent shape change when a force is applied
+P5485,SBN books ID,identifier for books issued by National Library Service (SBN) of Italy
+P5488,artist-info curator ID,identifier in the artist-info curator database of exhibition records
+P5489,artist-info artist ID,identifier in the artist-info artist database of exhibition records
+P5490,artist-info location ID,identifier in the artist-info location database of exhibition records
+P5491,BD Gest' author ID,identifier for an author on the BD Gest' website
+P5492,EDIT16 catalogue author ID,identifier of the EDIT16 catalogue about authors cited in 16th-century books or editions
+P5493,EDIT16 catalogue printer ID,identifier of the EDIT16 catalogue about 16th-century printers
+P5494,GameSpot game ID,identifier at the GameSpot database of video games
+P5495,Mormon Literature and Creative Arts Database Works ID,identifier for a work listed in the Mormon Literature and Creative Arts Database
+P5496,Mdicos histricos doctor ID,identifier for a doctor in the Mdicos histricos database of the Complutense University of Madrid
+P5497,Doroszewski Online ID,identifier for an entry in the online version of the Polish Dictionary by Witold Doroszewski (Pl S?ownik j?zyka polskiego)
+P5498,Base de datos de premiados person ID,"identifier for a person in the Base de datos de premiados del Libro, Lectura y Letras database"
+P5499,Boijmans work ID,identifier for an artwork in the Museum Boijmans Van Beuningen
+P5500,IPHAN ID,The IPHAN identifier for a historic place or good
+P5501,Brenda Tissue Ontology ID,identifier in the Brenda Tissue Ontology
+P5502,LRB contributor ID,identifier for a contributor on the London Review of Books website
+P5503,Poetry Society of America poet ID,identifier for a poet on the Poetry Society of America website
+P5504,RISM ID,"identifier for a person, institution, or work in the Rpertoire International des Sources Musicales database"
+P5505,WorldCat Registry ID,"identifier for a library, library consortium or similar institution in the Worldcat Registry"
+P5506,Poetry In Voice poet ID,identifier for a poet on the Poetry In Voice website
+P5507,artist-info exhibition ID,?dentifier in the artist-info database for exhibition records
+P5508,archINFORM person or group ID,identifier for a person or group on the archINFORM website
+P5509,MAPS poet ID,identifier for a poet on the Modern American Poetry website
+P5510,DEFA film database ID,identifier in the film database of the DEFA foundation
+P5513,Enciclopdia de l'Esport Catal ID,"identifier on Enciclopdia de l'Esport Catal, encyclopedia of Catalan sportspeople and sports clubs"
+P5514,accredited by,"optionally use together with ""subject has role"" (P2868)"
+P5515,Znicenekostely ID,identifier for damaged and destroyed churches in the Czech Republic
+P5516,Virtual Laboratory person ID,identifier for a person in the Virtual Laboratory database of the Max Planck Institute for the History of Science
+P5517,Auvergne-Rhne-Alpes Regional Inventory identifier,
+P5518,four-corner method,The four-corner code(s) for the character
+P5519,Cangjie input,the cangjie input code for the character
+P5520,toughness,material property measuring the ability of a material to absorb energy and plastically deform without fracturing
+P5522,Unicode block,Unicode block that a character or code point is in
+P5523,fanqie,the pronunciation of a monosyllabic Chinese character represented by two other Chinese characters
+P5524,horizontal depth,"spatial extent for 3D object along the third axis, what is most commonly referred to as its depth. Compare with ""vertical depth"" (P4511)"
+P5525,CONDEPHAAT ID,"Conselho de Defesa do Patrimnio Histrico identifier for monuments in So Paulo, Brazil"
+P5526,valency,number of arguments controlled by a verbal predicate
+P5527,Academia Brasileira de Letras ID,identifier for a member on the Academia Brasileira de Letras website
+P5528,Belgian Heritage in Brazil ID,"identifier for notorious individuals, companies and artworks associated to the Belgian heritage in Brazil"
+P5529,yield strength,material proprety measuring the stress above which materials begin to permanently deform
+P5530,Altmetric DOI,"DOI of a scientific or academic article at altmetric.com, to track citation metrics"
+P5531,Central Index Key,number given to an individual or company by the United States Securities and Exchange Commission
+P5532,Infocentre littraire des crivains ID,identifier for an author on the Infocentre littraire des crivains website
+P5533,Kopali?ski Online ID,identifier for an entry in the online version of 'Dictionary of Foreign Words and Foreign-language Phrases' by W?adys?aw Kopali?ski
+P5534,Open Media Database person ID,identifier for a person in the Open Media Database
+P5535,Prison History ID,identifier for a prison or lock-up in the 'Prison History' database of 19th century prisons in the UK
+P5536,Swedish place name register SOFI,this is a register of names found over time for old places in a parish that is managed by the Swedish Institute for Language and Folklore - SOFI
+P5537,Hangul of a Chinese character,The modern Korean pronunciation(s) for this character in Hangul
+P5538,Auteurs en Auvergne-Rhne-Alpes ID,identifier for an author on the Auteurs en Auvergne-Rhne-Alpes website
+P5539,Eulalie ID,identifier for an author on the Eulalie website
+P5540,RedTube ID,identifier for an adult performer in the database of the RedTube website
+P5541,Paris Faculty of Science professor ID,identifier of a professor on the online version of Les Professeurs de la Facult des sciences de Paris
+P5542,Literature Ireland ID,identifier for an author on the Literature Ireland website
+P5543,Livre et lecture en Bretagne ID,identifier for an author on the Livre et lecture en Bretagne website
+P5544,Paris Faculty of Letters professor ID (1909-1939),identifier of a professor on the online version of Les Professeurs de la Facult des lettres de Paris
+P5545,Paris Faculty of Letters professor ID (1809Ð1908),identifier of a professor on the online version of La Facult des lettres de Paris (1809Ð1908)
+P5546,College de France professor ID (1909-1939),identifier of a professor on the online version of Les Professeurs du Collge de France
+P5547,CICLIC author ID,"identifier for an author on the 'Centre pour le livre, l'image et la culture numrique'? website"
+P5548,object form,(qualifier) statement applies only to listed forms of statement's object
+P5549,INEPAC ID,"ID for cultural heritage in Rio de Janeiro, Brazil"
+P5550,La Vie des ides ID,identifier of an author on La Vie des ides
+P5551,Courrier international topic ID,identifier for a topic on the Courrier international website
+P5552,CNRS Talent page,page on the Centre national de la recherche scientifique website presenting a person who has received certain prizes or medals
+P5553,IDIH ID,identifier on a researcher on the International Dictionary of Intellectual Historians
+P5554,Courrier international source ID,identifier for a source on the Courrier international website
+P5555,schematic,"illustration of the structure or operation of an object, system, or process"
+P5556,KLEKs ID,identifier for a building or landscape element in the KLEKs database
+P5557,Interbibly author ID,identifier for an author on the Interbibly website
+P5558,Le Monde ID,identifier for a topic on the Le Monde website
+P5559,MUSE journal ID,identifier of an academic journal in the Project MUSE
+P5560,passive voice,specify the type of passive voice of (German) verbs
+P5561,Institut culturel de Bretagne ID,identifier for a writer on the Institut culturel de Bretagne website
+P5562,Tebeosfera ID,identifier for an author on the Tebeosfera website
+P5563,CSDE Lynching Database ID,identifier for a lynching victim in the CSDE Lynching Database
+P5564,registration district,reference property indicating location for references to a civil or ecclesiastical registry
+P5565,CRAN project,name of a project in CRAN
+P5566,RubyGems gem,name of a project in RubyGems
+P5567,National Research Institute for Cultural Properties artist ID,biography identifier from the Tokyo Research Institute for Cultural Properties in Japan
+P5568,Python Package Index project,name of a project in Python Package Index
+P5569,Tebeosfera character ID,identifier for a character on the Tebeosfera website
+P5570,NooSFere author ID,identifier for a person in the NooSFere database
+P5571,NooSFere book ID,identifier for a book in the NooSFere database
+P5572,expressed in,gene or protein is expressed during a specific condition/cell cycle/process/form
+P5573,archINFORM location ID,identifier for a location on the archINFORM website
+P5574,CAGE code,identifier for a supplier to government agencies
+P5575,coefficient of friction,dimensionless scalar value which describes the ratio of the force of friction between two bodies and the force pressing them together
+P5576,EDb company ID,identifier for a company at the Israeli movie database EDb
+P5578,Indian census area code (2011),code used for an area for calculations in the 2011 census of India
+P5579,flight-report.com Airline identifier,
+P5580,Norwegian National Road DataBase ID,Database ID in the Norwegian National Road DataBase
+P5581,NATO Stock Number,13-digit numeric code identifying an object used by NATO member country armed forces
+P5582,number of arrests,the number of arrests made by public officials during or resulting from an event
+P5584,QS World University ID,"identifer for an educational institution, in the QS World University database"
+P5585,SMS Power identifier,identifier of a video game in the SMS Power database of Sega 8-bit console games
+P5586,Times Higher Education World University ID,Times Higher Education World University Ranking Website's university identifier
+P5587,Libris-URI,identifier for an item in the catalogue of the Swedish National Library
+P5588,invasive to,"region which a taxon is not endemic to where the taxon has a tendency to spread to a degree believed to cause damage to the environment, human economy or human health"
+P5589,microstructure,"very small scale structure of a material, defined as the structure of a prepared surface of material as revealed by a microscope above 25? magnification"
+P5590,oric.org identifier,an identifier in the oric.org database of Oric computer programs
+P5591,normalized Unicode character,Unicode character that represents the given item in NFC (Normalization Form Canonical Composition)
+P5592,number of works accessible online,"qualifier on external identifiers, for the number of works in a collection or items in a database which are freely accessible online (if different from P3740)"
+P5593,Poisson's ratio,the negative of the ratio of (signed) transverse strain to (signed) axial strain
+P5594,moisture absorption,quantity of moisture a material would absorb in given conditions
+P5595,number of platform faces,"number of continuous platform edges facing a track or vehicle guideway in a station (often, but not always, the same as P1103 and the number of platform numbers). See property talk page for illustrated samples"
+P5596,relative humidity,ratio of the partial pressure of water vapor to the equilibrium vapor pressure of water at a given temperature
+P5597,Artcyclopedia artist ID,identifier for an artist on the Artcyclopedia website
+P5598,Places of Worship Inventory ID,identifier of a place of worship in Ontario
+P5599,Inventory of Quebec's Places of Worship ID,"identifier of a place of worship in Quebec, built before 1975"
+P5600,U-Multirank university ID,"identifier for a university, on the U-Multirank website"
+P5601,TCI destination ID,"identifier in the geographical database of the Touring Club Italiano, or Touring Club of Italy"
+P5602,Chercheurs d'Asie ID,identifier of a researcher on the online version of Chercheurs d'Asie
+P5603,Trove newspaper ID,"identifier for a newspaper, in the National Library of Australia's Trove database"
+P5604,archINFORM keyword ID,identifier for a keyword on the archINFORM website
+P5605,DOLF ID,identifier of an orientalist on the online version of the Dictionnaire des orientalistes de langue franaise
+P5606,class of station,"class of a railway station, assigned by its operator; ""issued by"" is a mandatory qualifier."
+P5607,located in the ecclesiastical territorial entity,the item is located on the territory of the following ecclesiastical entity. Use P708 (diocese) for dioceses
+P5608,fatigue limit,amplitude (or range) of cyclic stress that can be applied to the material without causing fatigue failure
+P5609,Split This Rock poet ID,"identifier for a poet on the Split This Rock website, in its The Quarry database"
+P5610,OpenMath ID,OpenMath content dictionary symbol
+P5611,BeWeb church ID,"identifier for an Italian church, in the Italian Episcopal Conference database"
+P5612,LegaBasket.it coach ID,identifier for a coach at legabasket.it
+P5613,Bibliothque de la Pliade ID,identifier for an author on the Bibliothque de la Pliade website
+P5614,Aosdna ID,identifier for a member on the Aosdna website
+P5615,Centre national du thtre ID,identifier for a person on the Centre national du thtre website
+P5616,Comdie-Franaise ID,identifier for a stage actor on the Comdie-Franaise website
+P5617,Evene ID,identifier for a person on the Evene website
+P5618,LOA ID,identifier for a writer on the Library of America website
+P5619,FFF author ID,identifier for an author on the Franco Fossati Foundation website
+P5620,FFF character ID,identifier for a character on the Franco Fossati Foundation website
+P5621,Marvel character ID,identifier for a character on the Marvel.com website
+P5622,National Cartoonists Society member ID,member identifier on the National Cartoonists Society on website
+P5623,type of water supply,"the type of water supply for fountains, mountain huts, and other entities where water can be obtained"
+P5624,pitting resistance equivalent number,predictive measurement of a stainless steels resistance to localized pitting corrosion
+P5625,Vietnamese reading,reading of Han character in Qu?c Ng?
+P5626,Global Invasive Species Database ID,identifier for a taxon in the IUCN's Global Invasive Species Database
+P5627,WSO Online ID,identifier for an entry in the online version of Polish orthographic dictionary (pl Wielki s?ownik ortograficzny)
+P5628,Football.it female player ID,identifier for a female association football (soccer) player on the femminile.football.it website
+P5629,Brasseur ID,identifier of a mathematics teacher on the online Dictionnaire des professeurs de mathmatiques spciales
+P5630,prisoner count,number of inmates or prisioners held in this prison
+P5631,Canal Acadmie ID,identifier of an academician on Canal Acadmie's website
+P5632,Persons of Indian Studies ID,identifier for an Indologist on the 'Persons of Indian Studies' website
+P5633,Amphi-Theatrum ID,identifier for an amphitheatre on the amphi-theatrum.de website
+P5634,Theatrum ID,identifier for an ancient theatre or odeon on the theatrum.de website
+P5635,ANZL writer ID,identifier for a writer on the Academy of New Zealand Literature website
+P5636,Black Ferns player ID,"ID of a female rugby union player of the Black Ferns, the New Zealand women's national rugby union team"
+P5637,CNL author ID,identifier for an author on the Centre national du livre website
+P5638,IEEE standard,identifier of an IEEE standard
+P5639,LARB contributor ID,identifier for a contributor on the Los Angeles Review of Books website
+P5640,Read NZ Te Pou Muramura writer ID,identifier for a writer on the Read NZ Te Pou Muramura website
+P5641,PRELIB person ID,identifier for a person on the Projet de recherche en littrature de langue bretonne website
+P5642,risk factor,"factor associated with a high prevalence of a particular gene, disease or characteristic. These factors can be country of origin, country of citizenship, race, gender, occupation, anamnesis, etc."
+P5643,RSL author ID,identifier for an author on the Royal Society of Literature website
+P5644,World Rugby Women's World Cup player ID,identifier for a female rugby union player at the 15-a-side World Cup
+P5645,Acadmie franaise award winner ID,identifier for a prize winner on the Acadmie franaise website
+P5646,AniDB anime ID,identifier for an anime in AniDB database
+P5647,Baidu ScholarID,identifier for a scholar at the Baidu Scholar website [with prefix 'CN-']
+P5648,AniDB character ID,"identifier for a character in AniDB database, if multiple identifiers are available for one character, use the smallest number one"
+P5649,AniDB person ID,identifier for a person in AniDB database (human or organization)
+P5650,Exoplanet Data Explorer exoplanet ID,identifier for an exoplanet on the Exoplanet Data Explorer website
+P5651,Expedia hotel ID,identifier for an hotel on the Expedia website
+P5652,Carthalia ID,"ID of a page at ""Carthalia - Theatres on Postcards"""
+P5653,Extrasolar Planets Encyclopaedia exoplanet ID,identifier for an exoplanet on the Extrasolar Planets Encyclopaedia website
+P5654,France Musique person ID,identifier for a person on the France Musique website
+P5655,Apple Music music video ID,identifier for a music video in American version of Apple Music
+P5656,MuIS collection ID,identifier for a collection in the Estonian museum database MuIS
+P5657,National Humanities Medal winner ID,identifier for a National Humanities Medal winner on the National Endowment for the Humanities website
+P5658,railway traffic side,indicates for a country or a railway line whether rail traffic usually runs on the left or right hand side
+P5659,VGMdb product ID,"identifier for a product (game, franchise, video) in the Video Game Music database"
+P5661,Acadmie de Montpellier member ID,identifier for a member of the 'Acadmie de Montpellier' on its website
+P5662,Acadmie de Mcon member ID,identifier for a member of the 'Acadmie de Mcon' on its website
+P5663,Acadmie de Versailles member ID,identifier for a member of the 'Acadmie de Versailles' on its website
+P5664,Savoirs ENS ID,identifier for a lecturer on Savoirs ENS
+P5665,Cartooning for Peace cartoonist ID,identifier for a cartoonist on the Cartooning for Peace website
+P5666,Quais du polar writer ID,identifier for a writer on the Quais du polar website
+P5667,NASA Exoplanet Archive exoplanet ID,identifier for an exoplanet on the NASA Exoplanet Archive website
+P5668,bulk modulus,measure of how resistant to compressibility that substance is
+P5669,compressive strength,capacity of a material or structure to withstand loads tending to reduce size
+P5670,glass transition temperature,"transition in amorphous materials from a hard and relatively brittle ""glassy"" state into a viscous or rubbery state as the temperature is increased"
+P5672,linear thermal expansion coefficient,measures the fractional change in size per degree change in temperature at a constant pressure
+P5673,shear modulus,ratio of shear stress to the shear strain
+P5674,thermal diffusivity,measures the rate of transfer of heat of a material from the hot side to the cold side
+P5675,relative permittivity,measure of capacitance that is encountered when forming an electric field in a particular medium expressed as a ratio relative to the permittivity of vacuum
+P5676,relative permeability,measure of the ability of a material to support the formation of a magnetic field within itself
+P5677,flexural strength,the stress in a material just before it yields in a flexure test
+P5678,dissipation factor,"measure of loss-rate of energy of a mode of oscillation (mechanical, electrical, or electromechanical) in a dissipative system"
+P5679,electrical resistivity,quantifies how strongly a given material opposes the flow of electric current
+P5680,Hoopla title ID,"an audiobook, film, music album, comic, ebook, or television series on Hoopla"
+P5681,flexural modulus,ratio of stress to strain in flexural deformation
+P5682,heat deflection temperature,temperature at which a polymer or plastic sample deforms under a specified load
+P5683,iNaturalist observation ID,observation identifier in iNaturalist
+P5685,tear resistance,measure of how well a material can withstand the effects of tearing
+P5686,ITU-R Recommendation,identifier of an ITU-R Recommendation
+P5687,New Zealand Business Number,unique identifier for a business entity registered in New Zealand
+P5688,ITU-T Recommendation,identifier of an ITU-T Recommendation
+P5690,Saskatchewan Sports Hall of Fame ID,"identifier for a sportssubject (athlete, sportsbuilder or a team) on the Saskatchewan Sports Hall of Fame"
+P5691,BND ID,digital collection identifier for notorious creative works within the Biblioteca Nacional Digital of the Biblioteca Nacional de Portugal
+P5692,dummy value,known test or sample values for identifier or scheme. Do not use for ranges reserved for internal use
+P5693,Fandango film ID,identifier for a film on Fandango.com
+P5694,Moroccan cultural heritage ID,identifier used for cultural heritage in Morocco
+P5695,Bibliopoche author ID,identifier for an author in the Bibliopoche database
+P5696,Indian Railways station code,code to identify a railway station operated by Indian Railways (this should NOT be used on items for metro stations; use P296 in those instances)
+P5698,Invasive Species Compendium Datasheet ID,"identifier for a taxon datasheet in the Invasive Species Compendium, produced by the Centre for Agriculture and Bioscience International"
+P5699,Transport Canada LID,"unique identifier assigned by Transport Canada for airports, heliports, train stations or other transport/travel-related points of interest"
+P5700,La Lorraine des crivains writer ID,identifier for a writer on the Lorraine des crivains website
+P5703,airline accounting code,"number, referenced by IATA and unique among all the airlines, used to identify the airline in various accounting activities such as ticketing"
+P5704,Tasmanian Heritage Register ID,Tasmanian heritage place identification number
+P5705,Los Angeles Review of Books author ID,identifier for an author on the Los Angeles Review of Books website
+P5706,shear strength,strength of a material or component against the type of yield or structural failure when the material or component fails in shear
+P5707,samples from work,audio or video which this work uses an excerpt of
+P5708,force,quantitative value of the interaction between two objects
+P5709,abrasion resistance,"resistance to the process of scuffing, scratching, wearing down, marring, or rubbing away"
+P5710,Recours au pome ID,identifier for a poet on 'Recours au pome'
+P5711,Revues Littraires ID,identifier for a literary magazine on 'Revues Littraires'
+P5712,IMEC ID,identifier on the 'Institut mmoires de l'dition contemporaine's website
+P5713,requires grammatical feature,grammatical features required or generally used with lexeme or form of lexeme
+P5714,Tor.com author ID,content by an author on the Tor.com website
+P5715,Academia.edu profile URL,URL for a person's profile on the Academia.edu website
+P5716,2006 Commonwealth Games athlete ID,identifier for an athlete who participated at the 2006 Commonwealth Games
+P5717,TPA person ID,identifier for a person on the 'Thtres parisiens associs' website
+P5718,PAM ID,identifier for a person or organization on the 'Portail des Arts de la Marionnette' website
+P5719,National Medal of Arts winner ID,identifier for a National Medal of Arts winner on the United States' National Endowment for the Arts website
+P5720,WSJP ID,identifier for an entry in the online dictionary of Polish language
+P5721,Turkish Basketball Super League ID,identifier for a Basketbol Sper Ligi player
+P5722,Greek Basket League ID,identifier for a basketball player on the Greek Basket League website
+P5723,Polish Basketball League ID,identifier for a basketball player on the Polish Basketball League website
+P5725,Baloncesto Superior Nacional ID,identifier for a basketball player on the Baloncesto Superior Nacional website
+P5726,Pietre della Memoria ID,identifier on the 'Pietre della Memoria' website
+P5727,Partis d'Arcadie ID,identifier for a political party on 'Les Partis d'Arcadie'
+P5731,Angelicum ID,identifier for an entity in the online catalogue of the Pontifical University of Saint Thomas Aquinas (Angelicum)
+P5732,bgm.tv subject ID,identifier for creative works sorted on bgm.tv (Bangumi/Chobits)
+P5733,Bilibili bangumi ID,identifier for an anime or drama topic on bilibili [with prefix 'md']
+P5734,Historic Hotels of America ID,identifier for an hotel on the Historic Hotels of America website
+P5735,Historic Hotels Worldwide ID,identifier for an hotel on the Historic Hotels Worldwide website
+P5736,Minor Planet Center body ID,identifier for an astronomical body in the Minor Planet Center database
+P5737,Moegirlpedia ID,"Chinese-, Japanese-, or English-language articles and categories about ACG culture hosted on any of the Moegirlpedia family of wikis"
+P5738,Open Exoplanet Catalogue exoplanet ID,identifier for an exoplanet on the Open Exoplanet Catalogue website
+P5739,Pontificia Universit della Santa Croce ID,identifier for an entity in the online catalogue of the Pontifical University of the Holy Cross (PUSC)
+P5740,So Foot ID,"identifier for a person, a club or a competition on the So Foot website"
+P5742,Voetbalstats player ID,identifier for a Dutch international player on the Voetbalstats website
+P5743,SR Number,unique number of each law in the Systematic Compilation of Federal Legislation of Switzerland
+P5744,KERIS school ID,identifier for a school in the information system by KERIS
+P5745,Pacific Coast Architecture Database person ID,identifier for people involved in architecture on the West Coast of the United States
+P5746,Directorate General of Civil Aeronautics (Mexico) code,airport code for Mexico
+P5747,CWA writer ID,identifier for a writer on the Crime Writers' Association website
+P5748,Basisklassifikation,corresponding class in the Basisklassifikation library classification
+P5749,Amazon Standard Identification Number,identifier for a product on Amazon.com websites
+P5750,FBref player ID,identifier for a player on the FBref website
+P5752,Syndikat ID,identifier for an author on the Syndikat website
+P5753,ideographic description sequences,method to describe composition of Han characters using ideographic description characters and character components
+P5755,EU project RCN,Record Control Number for project under EU Framework Programmes for Research and Technological Development
+P5756,ABMC person ID,identifier for a person on the American Battle Monuments Commission website
+P5757,DAV hut ID,identifier for a hut on the German Alpine Club website
+P5758,PZS hut ID,identifier for a hut on the Alpine Association of Slovenia website
+P5759, AV hut ID,identifier for a hut on the Austrian Alpine Club website
+P5760,Petit Fut site ID,identifier for a tourist site on the Petit Fut website
+P5761,SAC ID,"identifier for a hut, a summit, etc. on the Swiss Alpine Club website"
+P5762,NDB identifier for airport beacons,NDB identifier for airport beacons
+P5763,Directorio de Museos y Colecciones de Espaa ID,identifier for a museum on the Directorio de Museos y Colecciones de Espaa website
+P5764,IMA museum ID,identifier for a museum on the Irish Museums Association website
+P5765,The Park Database ID,identifier for an amusement park on the Park Database website
+P5768,Osservatorio culturale del Cantone Ticino ID,Osservatorio culturale del Cantone Ticino ID for a cultural institution
+P5769,editor-in-chief,"a publication's editorial leader who has final responsibility for its operations and policies and the selection of authors, translators, illustrators, and formats for publishing articles or books in collections or periodical papers"
+P5770,Animator.ru person ID,ID of person in Animator.ru database
+P5771,Russian Biathlon DB athlete ID,identifier for an athlete at the Russian Biathlon DB
+P5772,Russian Biathlon DB coach ID,identifier for a coach at the Russian Biathlon DB
+P5773,Television Academy Foundation interviewee ID,interviewee identifier on the Television Academy Foundation's The Interviews website
+P5774,Historic Hotels of Europe ID,identifier for an hotel on the Historic Hotels of Europe website
+P5775,image of interior,"image of the inside of an architectural structure, vehicle or other enclosed space"
+P5776,Arnet Miner author ID,author identifier from the Arnet Miner research database
+P5777,CoinMarketCap cryptocurrency ID,identifier for a cryptocurrency on CoinMarketCap
+P5778,Cooperative Patent Classification code,patent classification code used between the European Patent Office and United States Patent and Trademark Office
+P5779,CPAN project ID,name of a project in CPAN
+P5780,CPCRulez ID,identifier in the CPCRulez database of Amstrad CPC videogames
+P5782,DBUnico MIBACT ID,database identifier from the Italian Ministry MIBACT (DBUnico 2.0)
+P5783,Cranach Digital Archive artwork ID,database for 1700 paintings by Cranach and his circle
+P5784,DSV person ID,identifier for a person on the German Ski Association website
+P5785,EU Research participant ID,ID of organization in EU's Framework Programs for Research
+P5786,Moviepilot.de film ID,identifier for films on Moviepilot.de
+P5787,Ski Jumping Hill Archive ID,identifier for a ski jumping hill on the Ski Jumping Hill Archive website
+P5788,The Gymternet gymnast ID,identifier for a gymnast on the Gymternet website
+P5789,WorldofVolley player ID,identifier for a volleyball player on the WorldofVolley website
+P5790,Skijumping.pl jumper ID,identifier for a ski jumper on the Skijumping.pl website
+P5791,Cineuropa film ID,identifier for a movie at Cineuropa
+P5792,NooSFere series ID,identifier for a series in NooSFere Database
+P5793,Dobry s?ownik ID,identifier for an entry in the online dictionary of Polish language (pl Dobry s?ownik)
+P5794,Internet Game Database game ID,identifier for a game on the Internet Game Database
+P5795,Internet Game Database platform ID,identifier for a platform on the Internet Game Database
+P5796,Internet Game Database person ID,identifier for a person on the Internet Game Database
+P5797,Twitch channel ID,ID of a Twitch channel
+P5798,Thomson Reuters Business Classification,"use for companies, industries, products"
+P5799,AustLII ID,identifier in the Australasian Legal Information Institute (AustLII) online database
+P5800,narrative role,narrative role of this character (should be used as a qualifier with P674 or restricted to a certain work using P10663)
+P5801,Academia.edu topic ID,identifier for a research topic on the Academia.edu website
+P5802,stage crew member,member of the technical crew who supervises and operates the various technical aspects of the production during a stage performance
+P5803,VOR/DME identifier for airport beacons,VOR/DME identifier for airport beacons
+P5804,has program committee member,
+P5805,OSI Model layer location,location of a network protocol in one of the OSI Model layers
+P5806,SNOMED CT identifier,"identifier in the SNOMED CT catalogue codes for diseases, symptoms and procedures"
+P5807,Alternativa Teatral person ID,
+P5808,Alternativa Teatral work ID,
+P5809,Alternativa Teatral place ID,
+P5810,cryptocurrency code,the symbol or identifier of a cryptocurrency based on the Naming Consistency of CCXT
+P5811,elongation at break,material property; the ratio between changed length and initial length after breakage of the test specimen. It expresses the capability of a material to resist changes of shape without crack formation.
+P5813,MusicBrainz release ID,identifier for a release in the MusicBrainz open music encyclopedia (edition)
+P5814,IANA service name,name of a network service defined in Q30335969
+P5815,Olympics.com athlete ID,"identifier for an athlete (sportsperson) at Olympics.com, a website of the International Olympic Committee (IOC) - same ID as former website OlympicChannel.com"
+P5816,state of conservation,"to indicate state of conservation of a building, monument, etc. It is not related with its heritage protection (P1435), but to its present state of conservation. Ex.: ruinous, demolished, correct, etc."
+P5817,state of use,"to indicate state of use of a building, monument, etc. It is not related with its heritage protection (P1435), but to its present state of use. Ex.: abandoned, in use, temporarily closed, etc."
+P5818,BGCI garden ID,identifier for a botanical garden in the Botanic Gardens Conservation International online database
+P5819,International Mathematical Olympiad participant ID,identifier of an International Mathematical Olympiad participant on the official website of IMO
+P5820,Film Indonesia ID,Indonesian Movie database ID
+P5821,ArhivX LOD,Croatian art/theater linked open data
+P5822,admission rate,ratio of the number of applicants admitted to the total number of applicants
+P5823,Belvedere object ID,identifier for an artwork in the sterreichische Galerie Belvedere in Vienna
+P5824,is retracted by,(article) is retracted by (retraction notice)
+P5825,ISO 15919 transliteration,representation according to the named ISO standard for transliterating Brahmic scripts
+P5826,majority opinion by,judicial opinion agreed to by more than half of the members of a court
+P5827,National Trust for Historic Preservation ID,identifier for a place on the National Trust for Historic Preservation website
+P5828,seed,seeding information of a participant of a sports event
+P5829,Television Academy Foundation show ID,identifier for a television show discussed on the Television Academy Foundation's The Interviews website
+P5830,subject form,(qualifier) statement applies only to listed forms of statement's subject
+P5831,usage example,"example of how a lexeme might be used (Do not use this property on a Sense, but instead a statement on the Lexeme itself)"
+P5832,political coalition,agreement for cooperation between different political parties
+P5833,Playbill production ID,identifier for a theatrical production in the Playbill.com database
+P5834,Leading Hotels of the World hotel ID,identifier for an hotel on the Leading Hotels of the World website
+P5835,World Travel Awards ID,identifier for a nominee on the World Travel Awards website
+P5836,Relais & Chteaux ID,identifier for an hotel or restaurant on the Relais & Chteaux website
+P5838,Nintendo GameID (GameCube/Wii),six-alphanumeric-character Nintendo GameID for a specific game on the GameCube or Wii
+P5839,Acadmie de Marseille member ID,identifier for a member of the 'Acadmie de Marseille' on its website
+P5840,NPR podcast ID,identifier for a podcast on National Public Radio (NPR)
+P5841,Status in the Red List of Threatened Species in the Czech Republic,endangerment status of species in the national Red List of the Czech Republic
+P5842,Apple Podcasts podcast ID,identifier for a podcast in iTunes
+P5843,Gynopedia ID,"identifier for a place (city, region or country) on the Gynopedia wiki about sexual and reproductive health care"
+P5844,Treccani Vocabulary ID,ID for lexemes
+P5845,AnimeClick anime ID,identifier of anime from AnimeClick database
+P5846,AnimeClick novel ID,identifier of novel from AnimeClick database
+P5847,AnimeClick character ID,identifier of character from AnimeClick database
+P5848,AnimeClick person ID,identifier of person from AnimeClick database
+P5849,AnimeClick manga ID,identifier of manga from AnimeClick database
+P5851,Ex-USSR internal airport code,airport code similar to IATA codes but only for Russian and CEI airports
+P5852,item inherits value from,this value is inherited from the parent (super)class; parent class has exactly the same statement as this statement (To be used in a source field)
+P5858,Index Herbariorum code,code in Index Herbariorum for plant collections
+P5859,Adelphi author ID,identifier for author in the database of the Italian publisher Adelphi
+P5860,AnimeClick drama ID,identifier of drama from AnimeClick database
+P5862,Lepidoptera of Belgium ID,identifier in the Catalogue of Lepidoptera of Belgium
+P5863,CharacTour character ID,
+P5864,Enciclovida ID,"identification in Enciclovida, an Encyclopedia of plants, fungi and animals of Mexico"
+P5865,IGN film ID,identifier for films at the IGN website
+P5866,LakeNet ID,number of a lake in Global Lake Database
+P5867,Mathematical Reviews journal ID,number of a journal in Mathematical Reviews website
+P5868,MobyGames platform ID,identifier for a platform in MobyGames
+P5869,model item,"defines which item is a best practice example of modelling a subject, which is described by the value of this property, usage instructions at Wikidata:Model items"
+P5870,Northern Ireland Assembly ID,Identifier for a member of the Northern Ireland Assembly
+P5871,Norwegian war refugees register ID,Norwegian register for refugees at Kjes¾ter 1940 to 1945 ID
+P5872,perfume note,the note of a perfume
+P5873,place of devotion,place where a religious devotion was practiced and for which this devotional image (or text) was produced
+P5874,re3data repository ID,identifier for a data repository in the re3data registry
+P5875,ResearchGate publication ID,identifier of a publication in ResearchGate
+P5876,SJPXVII ID,identifier for an entry in the electronic dictionary of the Polish language of the 17th and 18th centuries
+P5877,SPXVI ID,identifier for an entry in the Polish dictionary of the 16th century (pl: S?ownik polszczyzny XVI wieku)
+P5878,Taxonomic Literature 2 number,catalogue number in Taxonomic Literature 2
+P5879,Qualit Tourisme ID,identifier for a place on the Qualit Tourisme website
+P5880,video designer,person responsible for the creation and integration of film and motion graphics on a stage
+P5881,projection designer,person responsible for producing all moving and still images that are displayed during a live performance
+P5882,Muziekweb performer ID,"identifier for a performer, composer or band at Muziekweb"
+P5883,Tourisme & Handicap ID,identifier for a place on the Tourisme & Handicap website
+P5884,Dapodikdasmen ID,identifier for a school in Indonesia
+P5885,Microsoft Store product ID,identifier for a product in Microsoft Store
+P5886,mode of derivation,(qualifier) the way that a term is derived in P5191
+P5887,Arkivportalen agent ID,"identifier for an actor (person or institution) in Arkivportalen, a website for Norwegian archives"
+P5888,Arkivportalen archive ID,"identifier for an archive in Arkivportalen, a website for Norwegian archives"
+P5890,Preferred Hotels & Resorts hotel ID,identifier for an hotel on the Preferred Hotels & Resorts website
+P5891,Bpk-ID,"Bpk-identificator, identifier for art photos by picture agency, Image Bank of cultural institutions"
+P5892,UOL Eleies ID,?dentifier for elections in Brazil containing voting data for each position per State
+P5893,work hardening strain,the strengthening of a material by the specified ratio of plastic deformation
+P5894,tuition fee,"the tuition fee at an educational instition (default duration:1 year, use duration qualifier to specify)"
+P5895,foreign transaction fee,foreign transaction fee applies to payments in foreign currencies
+P5896,trading fee,fee charged when buying stock or commodities at exchanges or at a bank
+P5897,account charge / subscription fee,a monthly/yearly fee for using a service or account; use qualifier duration to specify the billing cycle
+P5898,borrowing rate,the p.a. borrowing/lending rate
+P5899,interest rate,The yearly interest rate
+P5900,JMA Magnitude,magnitude of an earthquake according to Japan Meteorological Agency
+P5901,official number of town quarter,"official number for the administrative division or section, region or part of a town"
+P5902,Uralonet ID,
+P5903,çlgu ID,
+P5904,ASCE Historical Civil Engineering Landmark ID,identifier for a landmark on the American Society of Civil Engineers website
+P5905,Comic Vine ID,"identifier at the Comic Vine database of comic books, fictional characters, people, films and television series/episodes"
+P5906,DxOMark ID,Dxomark article identifier for smartphones and cameras
+P5908,Geheugen van de VU person ID,identifier for a person in the database of Geheugen van de VU (Vrije Universiteit Amsterdam)
+P5909,HKCAN ID,Hong Kong Chinese Authority (Name) ID
+P5910,ENI number,European Vessel Identification Number for ships capable of navigating on inland European waters
+P5911,paradigm class,"paradigm this lexeme belongs to, pattern of forms of the lexeme"
+P5912,Oqaasileriffik online dictionary ID,ID in the online dictionary of Oqaasileriffik
+P5913,has inflection class,inflectional pattern for groups of lexemes in the language
+P5914,IANA Root Zone Database ID,identifier in IANA's Root Zone Database of delegation details for top-level Internet domains
+P5915,Shazam track ID,identifier for an audio or audiovisual creative work on Shazam
+P5916,Spotify show ID,identifier for a show or podcast on Spotify
+P5917,Shazam artist ID,identifier for an artist on Shazam
+P5918,Sprockhoff-ID,number assigned to megalithic installations in northern Germany by Ernst Sprockhoff
+P5920,root,part of word that does not have a prefix or a suffix
+P5921,Index of Historic Collectors and Dealers of Cubism ID,identifier for a person or an organization in the Index of Historic Collectors and Dealers of Cubism database
+P5922,ANZSRC 2008 FoR ID,"Australia and New Zealand Standard Research Classification 2008 identifier for a field of research. 1419 nodes at 3 levels: 22 Divisions, 157 Groups, 1340 Fields"
+P5923,creates lexeme type,morpheme creates this type of lexeme
+P5925,Moviepilot.de series ID,identifier for TV series on Moviepilot.de
+P5926,Spectral Database for Organic Compounds ID,
+P5927,Ultimate Guitar artist ID,identifier for an artist on Ultimate Guitar
+P5928,?abra lexeme ID,identifier for a lexeme in the ?abra lexicon
+P5929,limiting oxygen index,"the minimum concentration of oxygen, expressed as a percentage, that will support combustion of a polymer"
+P5930,Open Food Facts ingredient ID,identifier of a food ingredient on Open Food Facts
+P5931,bazakolejowa.pl railway line ID,"ID of Polish railway line in database ""bazakolejowa.pl"""
+P5932,IGN TV series ID,identifier for television series on the IGN website
+P5933,tweet ID,identifier of a status on Twitter
+P5934,Short Title Catalogue Flanders (STCV) identifier,identifier for a hand press book in the 'Short Title Catalogus Vlaanderen' (STCV) database of Flanders before 1801
+P5935,Flanders Arts Institute production ID,identifier of an production in the Flanders Arts Institute database for performing arts
+P5936,old-computers.com ID,identifier in the database of computing platforms old-computers.com
+P5937,Oudnederlands Woordenboek GTB ID,ID of entry in Oudnederlands Woordenboek on Gentegreerde Taalbank
+P5938,Vroegmiddelnederlands Woordenboek GTB ID,ID of entry in Vroegmiddelnederlands Woordenboek on Gentegreerde Taalbank
+P5939,Middelnederlandsch Woordenboek GTB ID,ID of entry in Middelnederlandsch Woordenboek on Gentegreerde Taalbank
+P5940,plot expanded in,a narrative of this creative work is expanded in another work while not necessarily being part of the same series. For series use P179 instead
+P5941,Film Indonesia person ID,ID number on the Film Indonesia for the person and film studio
+P5942,Protected objects Ostbelgien ID,identifier of a protected heritage site of the German-speaking Community of Belgium
+P5944,North America PlayStation Store ID,identifier for a game available on the PlayStation Store (NA region)
+P5945,VicFlora ID,"identifier for a plant taxon, in the Australian 'Flora of Victoria' database"
+P5946,SUCA code,"identifier for a street or public square in the Madrid Region, Spain; provided by the SUCA, catalog group of postal directions of Institute for Community of Madrid Statistics; format: 8 characters"
+P5947,Vicat softening point,the temperature at which the specimen is penetrated to a depth of 1 mm by a flat-ended needle with a 1 mm2 circular or square cross-section
+P5948,CMI person ID,identifier for a person on the Clay Mathematics Institute website
+P5949,Unicode range,set of Unicode code points covered by this element
+P5950,So Paulo: os estrangeiros e a construo da cidade ID,"unique identifier for an artwork in the database ""So Paulo: os estrangeiros e a construo da cidade"""
+P5951,ComiXology creator ID,identifier of comics creators from the ComiXology digital comics storefront
+P5952,Annuaire de la magistrature ID,identifier for a French magistrature on the 'Annuaire rtrospectif de la magistrature'
+P5953,NT Flora ID,"identifier for a plant taxon, in the Northern Territory (Australia) 'NT Flora' database"
+P5954,Museu Nacional ID,online catalog ID for Museu Nacional
+P5955,Sekolah Kita ID,"identifier for a school in Indonesia (early childhood education, primary education, and secondary education)"
+P5956,War Memorials Online ID,identifier for a war memorial on the War Memorials Online website
+P5957,ID of Inventory of the Archaeological and Paleontological Heritage of Catalonia,unique identifier for Archaeological and Paleontological Heritage in Catalonia
+P5958,Women's Japan Basketball League ID,Women's Japan Basketball League
+P5959,V.League ID (obsolete),"identifier for profile of player on V.League old site. For identifier on new site, use P6527 (for male player) or P6528 (for female player)"
+P5960,Japan Professional Basketball League ID,Japan Professional Basketball League
+P5961,depicted part,"use as qualifier for ""depicts"" (P180)"
+P5962,sail emblem,image of figure placed on the sail of sailing boats to mark the boat type
+P5963,Elsevier journal ID,ID for a journal published by Elsevier
+P5964,Norwegian Nationaltheatret actor ID,identifikator for an actor at the Norwegian national theatre
+P5965,LUBW Protected Area No,unique number of a protected area in the German state of Baden-Wrttemberg
+P5966,SAGE journal ID,ID for a journal published by SAGE
+P5967,reference vocabulary,the controlled vocabulary used to supply the form in which the value of a statement was given in the source being referenced
+P5968,CPPAP ID,"ID issued by the French ""Commission paritaire des publications et des agences de presse"" for a registered periodical"
+P5969,RBF player ID,identifier for a basketball player at the Russian Basketball Federation website
+P5970,Medierdet rating,Rating of a film in the Danish movie content rating system
+P5971,Europe PlayStation Store ID,identifier for a game available on the PlayStation Store (EU region)
+P5972,translation,sense (meaning) of a lexeme in another language that corresponds exactly to this sense (meaning) of the lexeme
+P5973,synonym,"sense of another lexeme with the same meaning as this sense, in the same language"
+P5974,antonym,"sense of a lexeme with the opposite meaning to this sense, in the same language"
+P5975,troponym of,this verb describes more narrowly the action of the more general verb used as value
+P5976,false friend,word in another language whose spelling is almost identical but whose meaning is different
+P5977,Wikidata property example for senses,"example where this Wikidata property is used; target sense is one that would use this property, with qualifier the property being described given the associated value"
+P5978,classifier,classifier word used with this sense
+P5979,Sandbox-Sense,"sandbox property for value of type ""sense"""
+P5980,object sense,(qualifier) statement applies only to listed senses of statement's object
+P5981,Encyclopedia Virginia ID,identifier of a topic in the online Encyclopedia Virginia
+P5982,annual number of weddings,number of marriages per year in a location
+P5983,Springer journal ID,Springer journal number
+P5984,APNI ID,"identifier for a plant, in the Australian Plant Name index"
+P5985,Literaturaren Zubitegia ID,Armiarma Basque literature on-line database identifier
+P5986,Getty Iconography Authority ID,identifier from the Getty Iconography Authority
+P5987,Indiancine.ma film ID,identifier for a film (movie) in the Indiancine.ma archive of Indian film
+P5988,Deezer show ID,identifier for a show or podcast on Deezer
+P5989,Indiancine.ma person ID,"identifier for a person, in the Indiancine.ma archive of Indian film"
+P5990,Movies Anywhere ID,identifier for a film on the Movies Anywhere service
+P5991,carbon footprint,"total emissions caused by an individual, event, organisation, or product, expressed as carbon dioxide equivalent; has to be calculated via a scientificly proven methodology"
+P5992,attenuation coefficient,"Characterizes how easily a volume of a material can be penetrated by a beam of light, sound, particles, or other energy or matter. Beam type is to be secified using P1013."
+P5993,compressive modulus of elasticity,the ratio of mechanical stress to strain in an elastic material when that material is being compressed
+P5994,recycling code,"used to identify the material from which an item is made, to facilitate easier recycling or other reprocessing"
+P5995,kit supplier,official supplier of sports goods to a given club or a national sports team
+P5996,category for films in this language,link to category entity contains films in this language
+P5997,stated in reference as,"for use in a reference section, to indicate how the object of the statement was stated in reference, if this is different to how the object of statement would have been referred to in the statement's original context"
+P5998,distributary,stream that branches off and flows away from the river
+P5999,Japan PlayStation Store ID,identifier for a game available on the PlayStation Store (JP region)
+P6000,water footprint,total volume of fresh water used to produce the goods and services consumed by the individual or community or produced by the business
+P6001,applies to people,"qualifier to a specific group of people, members of a group or organization"
+P6002,WikiArt ID,entry of a person or artwork at WikiArt
+P6003,Center for Biological Diversity ID,identifier for a taxon on the Center for Biological Diversity website
+P6004,Brasiliana Iconogrfica ID,"identifier for an artwork, in the ""Brasiliana Infogrfica"" database"
+P6005,Muck Rack journalist ID,identifier for a journalist or writer at Muck Rack
+P6006,Museum Universe Data File ID,"IMLS identifier for a museum, in the United States' 'Museum Universe Data File' (MUDF)"
+P6007,Salons ID,"identifier for an artwork, in the Paris Salons database"
+P6008,Agoda hotel ID,identifier for an hotel on the Agoda website
+P6009,Techopedia ID,identifier for an entry in the techopedia.com technology dictionary
+P6010,Encyclopedia of Alabama ID,identifier for a subject on the Encyclopedia of Alabama website
+P6011,Internet Pinball Database ID,identifier for pinball machines at the Internet Pinball Database
+P6012,California Office of Historic Preservation ID,identifier for a point of interest on the website of the Office of Historic Preservation of California
+P6013,Encyclopedia of Appalachia ID,identifier for a subject on the Encyclopedia of Appalachia website
+P6014,flexural strain at break,the strain of material specimen after break in a flexural test
+P6015,Handbook of Texas ID,identifier for a subject in the Handbook of Texas Online
+P6016,Tennessee Encyclopedia ID,identifier for a subject on the Tennessee Encyclopedia website
+P6017,CanalPlan AC place ID,"identifier for a feature on or near a British canal, in the CanalPlan AC database"
+P6018,SeaLifeBase ID,identifier for a taxon on the SeaLifeBase website
+P6019,Species at Risk public registry ID,identifier for a taxon on the Canadian 'Species at Risk' public registry website
+P6020,d'Art d'ArtÊ! ID,identifier for an artwork on the d'Art d'ArtÊ! website
+P6021,Hymenoptera Online taxon ID,identifier for a taxon on the Hymenoptera Online website
+P6022,"expression, gesture or body pose","qualifier on ""depicts"" (P180) for human position of an individual in an artwork"
+P6023,ResearchGate contributions ID,identifier for a non-registered author on ResearchGate
+P6024,Cl des langues ID,identifier for an author on 'La Cl des langues'
+P6025,Oiseaux.net ID,identifier for a bird taxon on the Oiseaux.net website
+P6028,Hypericum MySpecies ID,identifier for a taxon in the database at Hypericum MySpecies
+P6030,ECOS ID,identifier for a taxon on the United States' 'Environmental Conservation Online System' website
+P6032,IGF entrant ID,identifier of an entrant in the Independent Games Festival
+P6033,CMS ID,identifier for a taxon on the 'Convention on the Conservation of Migratory Species of Wild Animals' website
+P6034,Plant Finder ID,"identifier for a taxon in Plant Finder, on the Missouri Botanical Garden website"
+P6035,C.V. Starr Virtual Herbarium ID,identifier for a taxon on the Steere Herbarium website
+P6036,Wild Herps ID,identifier for a taxon on the Wild Herps website
+P6037,ProsopoMaths ID,identifier for a mathematician on Prosopomaths
+P6038,AFAS author ID,identifier for an author on the prosopographical website of the 'Association franaise pour l'avancement des sciences'
+P6039,Australian Faunal Directory ID,identifier for a taxon on the Australian Faunal Directory website
+P6040,BirdLife Australia ID,identifier for a species on the BirdLife Australia website
+P6041,John J. Audubon's Birds of America ID,identifier for a taxon in John J. Audubon's 'Birds of America' on the National Audubon Society website
+P6042,Echinoid Directory ID,identifier for a taxon on the Echinoid Directory website
+P6043,Espces Envahissantes Outre-mer ID,identifier for a species on the Espces Envahissantes Outre-mer website
+P6044,FEIS ID,identifier for a taxon on the Fire Effects Information System website
+P6045,Global Raptor Information Network ID,identifier for a taxon on the Global Raptor Information Network website
+P6046,MNHN taxon ID,identifier for a taxon on the Musum national d'histoire naturelle website
+P6047,Neotropical Birds ID,identifier for a taxon on the Neotropical Birds website
+P6048,New Zealand Birds Online ID,identifier for a species on the New Zealand Birds Online website
+P6049,NOAA Fisheries Species Directory ID,identifier for a species on the NOAA Fisheries website
+P6050,OSF Online ID,identifier for a taxon on the Orthoptera Species File Online website
+P6051,Sea Slug Forum ID,identifier for a taxon on the Sea Slug Forum website
+P6052,Cockroach Species File ID,identifier for a taxon on the Cockroach Species File website
+P6053,Coreoidea Species File ID,identifier for a taxon on the Coreoidea Species File website
+P6054,GT IBMA ID,identifier for a species on the Groupe de travail Invasions biologiques en milieux aquatiques website
+P6055,Mantodea Species File ID,identifier for a taxon on the Mantodea Species File website
+P6056,Red List of South African Plants ID,identifier for a species on the Red List of South African Plants website
+P6057,Systematic Catalog of Culicidae ID,identifier for a taxon at the Systematic Catalog of Culicidae
+P6058,Larousse ID,identifier for a subject on the 'Encyclopdie Larousse'
+P6059,Biographie vosgienne ID,identifier for a person on 'Biographie vosgienne
+P6060,MoEML ID,"ID for a place, person, organisation, or work at the Map of Early Modern London project of the University of Victoria, Canada"
+P6061,Plant Parasites of Europe ID,identifier for a taxon at the Plant Parasites of Europe database
+P6062,Scoresway baseball person ID,identifier for a baseball person at the Scoresway
+P6063,Scoresway basketball person ID,identifier for a basketball person at the Scoresway
+P6064,Scoresway ice hockey person ID,identifier for a ice hockey person at the Scoresway
+P6067,ARD Mediathek ID,identifier for a show on ARD Mediathek
+P6068,DCMOTO identifier,identifier in the DCMOTO database of Thomson MO/TO software
+P6069,INEP IGC continuous score,
+P6070,BirdLife International IBA ID,identifier for an area officially-designated an 'Important Bird & Biodiversity Area' (IBA) by BirdLife International
+P6071,Polish Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at olimpijski.pl, a website of the Polish Olympic Committee (Polish: Polski Komitet Olimpijski, PKOl)"
+P6072,subject sense,(qualifier) statement applies only to listed senses of statement's subject
+P6073,permeation,"the penetration of a permeate (such as a liquid, gas, or vapor) through a solid"
+P6075,embodied energy,"sum of all the energy required to produce any goods or services, considered as if that energy was incorporated or 'embodied' in the product itself"
+P6076,biobased content weight percentage,weight percentage of content coming from the biomass
+P6077,British Museum bioID,"identifier for a person, organisation, or mythological figure on the British Museum main public website"
+P6078,GameFAQs platform ID,identifier of a gaming platform in GameFAQs database
+P6079,Discogs track ID,identifier for a music track in Discogs
+P6080,Discogs composition ID,identifier for a musical composition in Discogs
+P6081,RIA Novosti reference,"background information on historical and current events, biographies of famous people"
+P6082,NYC Building Identification Number (BIN),unique ID used by the City of New York to identify a building
+P6083,Cineuropa person ID,identifier for a person at Cineuropa
+P6084,location of sense usage,"for senses which are considered regional, the main locations where the sense is used"
+P6086,dramaturge,person responsible for dramaturgical aspects in a performing arts production
+P6087,coach of sports team,sports club or team for which this person is or was on-field manager or coach
+P6088,beer bitterness,bitterness of beer in International Bittering Units scale
+P6089,beer color,color of beer in Standard Reference Method
+P6090,Caselaw Access Project case ID,identifier for single case in Caselaw Access Project
+P6091,MGG Online ID,stable identifier for an entry on the MGG Online website
+P6092,Map of Life ID,identifier for a taxon on the Map of Life website
+P6093,AfroMoths ID,identifier for a species on the AfroMoths website
+P6094,FloraWeb ID,identifier for a species on the FloraWeb website
+P6095,INEP IGC discrete grade,
+P6096,FLOW ID,identifier for a species on the Fulgoromorpha Lists On the Web website
+P6097,AllPowerlifting.com person ID,identifier for a powerlifter at the AllPowerlifting.com
+P6098,Info Flora ID,identifier for a taxon on the Info Flora website
+P6099,clinical trial phase,step designation for a clinical trial
+P6100,Y K Academic Profile ID,"identifer for an academic, in the Turkish 'Y K' database"
+P6101,Mushroom Observer ID,identifier of a taxon name at Mushroom Observer
+P6102,Schleswig-Holstein cultural heritage object ID,Object ID in the cultural heritage register of Schleswig-Holstein
+P6103,Michigan Flora ID,identifier for a species on the Michigan Flora website
+P6104,maintained by WikiProject,"WikiProject that maintains this property, item, or linked pages. If the WikiProject is hosted outside of Wikidata, define the scope using the qualifier ""of (P642)"""
+P6105,Observation.org ID,identifier on the Observation.org websites
+P6106,uses capitalization for,lexical classes and subclasses of words as well as other uses in the language where the first letter is written as a capital letter
+P6107,Winterthur Glossar URL,URL of the object in the Winterthur Glossar
+P6108,IIIF manifest,JSON-LD formatted document URL reference described by the IIIF Presentation API
+P6109,Danish Football Union player ID,identifier for Danish national team player's page at the official website of the Danish Football Association (in Danish: Dansk Boldspil-Union or DBU)
+P6110,AllMusic release ID,identifier for a release (an edition of an album) in the AllMusic database
+P6111,MusicNotes product ID,identifier for a product in the MusicNotes store
+P6112,category for members of a team,Wikimedia category for players playing for a sports team
+P6113,Playbill venue ID,identifier for a performance venue at Playbill.com
+P6114,Portal to the Flora of Italy ID,identifier for a species on the Portal to the Flora of Italy website
+P6115,Central African Plants ID,identifier for a species on the Central African Plants website
+P6116,chord progression,series of chords used in this musical work
+P6117,Envanter.gov.tr Monument ID,
+P6118,season ends,to indicate what month of the year a sports season ends
+P6119,Letterboxd actor ID,identifier for an actor on the website Letterboxd
+P6120,Argentinean NCAA Airport code,airport code issued by the Argentinean National Civil Aviation Administration. Not to be confused with FAA (USA) code
+P6122,MusicNotes song ID,identifier for a composition in MusicNotes
+P6123,B3Kat dataset ID,"entry ID in B3Kat, the joint union catalogue of the Bavarian Library Network (Bibliotheksverbund Bayern - BVB) and the Cooperative Library Network Berlin-Brandenburg (KOBV)"
+P6124,Sotheby's person ID,identifier for an artist on the Sotheby's website
+P6125,number of volunteers,number of people who volunteer for an organization at a particular time
+P6126,Santiebeati ID,identifier of a person from the website Santiebeati.it
+P6127,Letterboxd film ID,identifier for a film on the website Letterboxd
+P6128,Threatened Species Link ID,identifier for a Tasmanian species on the Threatened Species Link website
+P6130,Littera ID,Littera identifier related to medieval Galician-Portuguese music (cantigas)
+P6131,Soccerway team ID,team ID on the Soccerway website
+P6132,Playbill person ID,identifier for people and organizations at Playbill.com
+P6133,Siamzone film ID,identifier for a movie at siamzone.com
+P6134,Thaifilm ID,
+P6135,VD 18 ID,publication ID in the bibliography of 18th century printed material in the German speaking areas
+P6136,Newseum newspaper front page ID,identifier for a newspaper in the Newseum's front page gallery
+P6137,APA ID,identifier for a species on the Alabama Plant Atlas website
+P6138,Software Heritage identifier,persistent identifier of a software source code artifact as archived in the Software Heritage Archive
+P6139,Virtual Guide to the Flora of Mongolia ID,identifier for a species on the Virtual Guide to the Flora of Mongolia website
+P6140,DanNet 2.2 word ID,identifier for part of the URI for a word in the DanNet resource
+P6141,Ë nos grands hommes ID,identifier for a statue on 'Ë nos grands hommes'
+P6142,Verspreidingsatlas.nl ID,identifier for a species on the verspreidingsatlas.nl website
+P6143,BioOne journal ID,identifier for an academic journal on the BioOne website
+P6144,ortsnamen.ch ID,identifier for a toponym/geographical object on ortsnamen.ch
+P6145,Academy Awards Database film ID,identifier for a film in the official Academy Awards database
+P6146,The Hendon Mob ID,identifier for a poker player in The Hendon Mob database
+P6147,World Poker Tour player ID,identifier for a poker player on the World Poker Tour website
+P6148,GLAMOS glacier ID,identifier for a Swiss glacier on the GLAMOS website
+P6149,running mate,second person on a presidential or other electoral ticket
+P6150,Academy Awards Database nominee ID,identifier for nominees in the official Academy Awards database
+P6151,ANICA ID,identifier of a movie from the website Archiviodelcinemaitaliano.it
+P6152,National Portrait Gallery (United States) object ID,object identifier for artworks at the National Portrait Gallery (US)
+P6153,research site,place where this item was researched
+P6154,r-hockey.ru person ID,identifier for a player of staff member at the r-hockey.ru
+P6155,Sotheby's Museum Network ID,identifier for a museum on the Sotheby's Museum Network website
+P6156,MNAV artist ID,identifier assigned to an artist by the National Museum of Visual Arts of Uruguay
+P6157,Google News publication ID,identifier for a news source in the news on Google News
+P6158,ALCA author ID,identifier for an author on the ALCA Nouvelle-Aquitaine website
+P6159,Atlas of Florida Plants ID,identifier for a species on the Atlas of Florida Plants website
+P6160,BoardGameGeek game publisher ID,identifier for a publisher on the BoardGameGeek website
+P6161,Invasive Plant Atlas of the United States ID,identifier for a species on the Invasive Plant Atlas of the United States website
+P6162,Luding game publisher ID,identifier for a publisher on the Luding website
+P6163,NAS ID,"identifier for a species in the Nonindigenous Aquatic Species database, on the U.S. Geological Survey website"
+P6164,Depsito Legal ID,identifier for a publication in Spain
+P6165,Corpus typographique franais ID,identifier for a typeface on the Corpus typographique franais website
+P6166,quotes work,"other creative work which this work quotes from textually, verbally or lyrically"
+P6167,British Executions ID,identifier for a person executed in Britain between 1100 and 1964
+P6168,Bantu Lexical Reconstructions ID,ID of entry in Bantu Lexical Reconstructions
+P6169,Welsh Book Trade Info ID,"identifier for person, business or organisation involved in the production and distribution of books in Wales"
+P6170,System16 identifier,identifier in the System16 database of arcade game systems
+P6171,Acadmie d'Arles member ID,identifier for a member of the 'Acadmie d'Arles' on its website
+P6172,Satakore game ID,identifier of a video game in the Satakore database
+P6173,Bitraga author ID,identifier for an author in the Digital Library of Galician Literary Translation database (Bitraga) of the University of Vigo
+P6174,The World Academy of Sciences fellow ID,fellows of The World Academy of Sciences (TWAS)
+P6175,Bitraga work ID,identifier for a work in the Digital Library of Galician Literary Translation database (Bitraga) of the University of Vigo
+P6176,Cal-IPC ID,identifier for a species on the California Invasive Plant Council website
+P6177,EUNIS ID for species,identifier for a species on the European Nature Information System website
+P6178,Dimensions author ID,unique identifier for an author in Dimensions
+P6179,Dimensions Publication ID,unique identifier for a work in the Dimensions database
+P6180,Dimensions Source ID,unique identifier for a journal in the Dimensions database
+P6181,Disney A to Z ID,ID of article in online version of Disney A to Z
+P6182,GameFAQs company ID,identifier of a company in the GameFAQs database
+P6183,African Journals Online journal ID,identifier for an academic journal on the African Journals Online website
+P6184,reference has role,"role, or specific nature, of the given reference"
+P6185,tautomer of,target item is a tautomer of this one
+P6186,category for eponymous categories,Wikimedia category that contains subcategories dedicated to specific instances of the said item
+P6187,Lego set ID,unique identifier of a Lego set
+P6188,BDFA player ID,player ID on the Argentine Football Database website
+P6189,Sabinet journal ID,identifier for an academic journal on the Sabinet website
+P6190,NSW State Archives and Records Authority Agency ID,"identifier for current and historic government agencies in New South Wales, Australia, allocated by the State Records Authority"
+P6191,language style,"to denote of the way a sense of a word is used, e.g., slang, vulgarism, babytalk, colloquialism, etc."
+P6192,Hembygdsportalen ID,Hembygdsportalen is a site containing local history material added by +600 local history communities in Sweden
+P6193,ratified by,used to specify that a treaty has been ratified by a given state or subject of international law
+P6194,Austrian Biographical Encylopedia ID,?dentifier for people in the Austrian Biographical Encylopedia edited by the Austrian Academy of Science
+P6195,funding scheme,is supported under the funding scheme
+P6196,Badtaste ID,identifier of a movie from the website Badtaste.it
+P6197,Badgames ID,identifier of a video game from the website Badgames.it
+P6198,Liga MX Femenil player ID,"official profile of a female association football (soccer) player from Liga MX Femenil, the top level Mexican league for women"
+P6199,member of the Portuguese parliament ID,id in the Portuguese Parliament Database
+P6200,BBC News topic ID,"identifier for a topic, on the BBC News website"
+P6201,OBV editions ID,identifier for entries in the catalogue of the Austrian library network
+P6202,Geolex ID,ID for every stratigraphic unit in the United States of America (USA) given by the United States Geological Survey
+P6204,CNPJ,identification number issued to Brazilian companies by the Secretariat of the Federal Revenue of Brazil
+P6205,Defined Term ID,identifier for a definition in definedterm.com dictionary
+P6206,Guida al Fumetto Italiano ID,identifier for a person on the Guida al Fumetto Italiano website
+P6208,award rationale,qualifier to add short citation explaining the official reason for awarding a prize to a winner by the person or organization who gives the award. Do not use this property to annotate or add comments about a person's award. No quote marked needed.
+P6209,SEINet ID,identifier for a species on the SEINet website
+P6210,LIGA profile,"background information on organizations, political parties, biographies of famous people"
+P6211,BIBSYS work ID,identifier for works in BIBSYS
+P6212,heat treating,"Industrial and metalworking processes used to alter the physical, and sometimes chemical, properties of a material."
+P6213,UK Parliament identifier,identifier used by the UK Parliament linked-data system
+P6214,Jewish Museum Berlin person ID,Jewish Museum Berlin person ID
+P6215,Vesti.kz person ID,identifier for an athlete at the Vesti.kz
+P6216,copyright status,"copyright status for intellectual creations like works of art, publications, software, etc."
+P6217,Genius album ID,"identifier for an album, single, other music release or other publication on Genius"
+P6218,Genius song ID,"identifier for a song, musical composition or written work on Genius"
+P6219,TASS reference,"background information on historical and current events, locations, biographies of famous people"
+P6220,OpenTrials ID,identifier for OpenTrials database over clinical trials
+P6221,NooSFere story ID,identifier for a story in NooSFere Database
+P6222,DIR3 ID,official identifier of a public Spanish organization
+P6223,L'Encyclopdie philosophique ID,identifier on 'L'Encyclopdie philosophique'
+P6224,level of description,position of the unit of description in the hierarchy of the fonds
+P6225,TrENSmissions person ID,identifier for a person on 'TrENSmissions'
+P6226,ARLLFB member ID,identifier for a member of the 'Acadmie royale de langue et de littrature franaises de Belgique' on its website
+P6227,Flora of Wisconsin ID,identifier for a taxon on the Flora of Wisconsin website
+P6228,RegiowikiAT ID,numeric identifier of a page in the Austria regional wiki RegiowikiAT
+P6229,Discord Store game SKU,identifier for a game available on the Discord Store
+P6230,Bavarian protected area ID,"identifier for nature and landscape protected areas in Bavaria (Germany), issued by the Bayerisches Landesamt fr Umwelt"
+P6231,BDELIS ID,identifier for a person on the 'Database of Swiss elites in the 20th century'
+P6232,Danske Taler speaker ID,Identifier for speaker on the Danske Taler website
+P6233,Place Names Register ID (Estonia),identifier for a geographical object in the Estonian Place Names Register
+P6234,Biographie nationale de Belgique ID,identifier for a person on the Biographie nationale de Belgique
+P6235,Acadmie royale de Belgique member ID,identifier for a person (including members) on the website of the 'Acadmie royale de Belgique'
+P6237,real estate developer,person or organization responsible for building this item
+P6238,Monument aux morts ID,identifier for a memorial in the University of Lille database
+P6239,IEC commemorative monument of Catalonia ID,identifier of a commemorative monument or relevant structure in Catalonia in the Institut d'Estudis Catalans (IEC) [Institute for Catalan Studies] database
+P6240,MMLO ID,"identifier in the Biographical Dictionary of Mintmasters, Wardens, Coin Engravers and Medallists"
+P6241,collection creator,"entity (person, organization, etc.) that caused a record or collection to be produced or gathered"
+P6242,Meteorological Service of Canada climate site ID,"7 digit number assigned by the Meteorological Service of Canada to a site where official weather observations are taken, and serves as a permanent, unique identifier"
+P6243,digital representation of,faithful digitized representation of the indicated object or work. For use on Commons MediaInfo entities.
+P6244,Volksbund ID,German War Graves Commission cemetery identification
+P6245,PomBase systematic ID,Identifier for a coding gene in the Schizosaccharomyces pombe model organism database PomBase
+P6246,Paris Muses work ID,identifier for a work on the website of the museums of the city of Paris
+P6247,Lego design ID,unique identifier of a Lego brick design
+P6248,Lego element ID,unique identifier of a Lego brick design with a specific colour
+P6249,narrative age,age of a fictional character (use qualifiers like P1441 (present in work) to restrict the age to a certain work)
+P6250,Apple Music music movie ID (U.S. version),identifier for a concert film or other music-related film in the U.S. version of Apple Music
+P6251,catchphrase,commonly used phrase by which someone or something may be recognized
+P6252,BSRussia player ID,identifier for a person at the Beach Soccer Russia site
+P6253,Beachsoccer.ru player ID,identifier for a player at the St. Petersburg Beach Soccer Federation site
+P6254,subject lexeme,lexeme described or discussed in this item
+P6255,SinemaTrk person ID,identifier for a person in the SinemaTrk database
+P6256,SinemaTrk film ID,"identifier for a movie, in the SinemaTrk database"
+P6257,right ascension,astronomical equivalent of longitude
+P6258,declination,astronomical equivalent of latitude
+P6259,epoch,epoch of an astronomical object coordinate
+P6260,galactic longitude,galactic longitude of an astronomical object
+P6261,galactic latitude,galactic latitude of an astronomical object
+P6262,Fandom article ID,identifier of an article on Fandom (Wikia). Format: subdomain:Page_title
+P6263,MinDat mineral ID,"identifier for a mineral or related material (rock, mixture) in the MinDat database"
+P6264,Harvard Index of Botanists ID,numerical identifier for a person in the Harvard Index of Botanists
+P6265,MinDat locality ID,ID of the minerals locality in MinDat database
+P6266,Garzanti Linguistica ID,ID for lexemes
+P6267,Multiplayer ID,identifier of a video game from the website Multiplayer.it
+P6268,Danmarks svampeatlas ID,identifier of fungus taxa in Danmarks svampeatlas
+P6269,API endpoint,base URL of a web service
+P6271,demonym of,item that this sense is a demonym of
+P6272,specific rotation,angle through which plane-polarized light is rotated by an optically active substance or a solution of that substance
+P6274,concentration,qualifier: amount of substance in a mixture (solution) during measurement
+P6275,copyright representative,person or organisation who represents the copyright for this person or work of art
+P6276,Amazon Music artist ID,artist identifier at Amazon Music
+P6277,Objectif Gard topic ID,identifier for a topic on Objectif Gard's website
+P6278,Epic Games Store ID,identifier for a video game available on the Epic Games Store
+P6279,ZVR-Number,ID of registered associations in Austria
+P6280,Berlin protected area ID,"identifier of protected areas in Berlin, Germany"
+P6281,IPPDH ID,identifier for archives and funds in the Institute of Public Policies in Human Rights (IPPDH) of Mercosur
+P6282,French Academy of Sciences member ID,identifier for a member of the French Academy of Sciences on its website
+P6283,MNopedia ID,"identifier for a subject in the online encyclopedia MNopedia, which covers Minnesota"
+P6284,NCpedia ID,"identifier for a subject in the online encyclopedia NCpedia, that covers North Carolina"
+P6285,Weeds in Ontario ID,identifier for a taxon on the Weeds in Ontario website
+P6286,ICCD ID - S form,identifier for the Central Institute for Catalogues and Documentation (form type S)
+P6287,ICCD ID - CF form,identifier for the Central Institute for Catalogues and Documentation (form type CF)
+P6288,ICCD ID - CG form,identifier for the Central Institute for Catalogues and Documentation (form type CG)
+P6289,ODNR Division of Wildlife ID,identifier for a taxon in the Species Guide Index of the Ohio Department of Natural Resources website
+P6290,Penthouse ID,identifier for a model on the Penthouse website PenthouseGold.com
+P6291,advertises,"cause, organization or product targeted by the advertising campaign, character, jingle or slogan"
+P6292,Complete BBC Micro Games Archive ID,identifier in the Complete BBC Games Archive (bbcmicro.co.uk)
+P6293,YSA ID,identifier for a concept in the General Finnish Thesaurus YSA
+P6294,ARTIC exhibition ID,identifier for an exhibition on the Art Institute of Chicago website
+P6295,ARTIC artist ID,identifier for an artist on the Art Institute of Chicago website
+P6296,bgm.tv character ID,identifier for a character or group of characters on bgm.tv (Bangumi/Chobits)
+P6297,ACB.com coach ID,identifier for a basketball coach at ACB.com
+P6298,bgm.tv person ID,identifier for a person or group of people on bgm.tv (Bangumi/Chobits)
+P6299,PC-9801 DB ID,identifier in the PC-9801 DB database of PC-98 video games
+P6300,Hymnary author ID,identifier for hymn authors in the Hymnary.org database
+P6301,The Armory Show at 100 ID,identifier for an artwork on the Armory Show at 100 website
+P6302,Dictionnaire de spiritualit ID,identifier for a topic on the Dictionnaire de spiritualit
+P6303,Swedish Anbytarforum,"Anbytarforum is a discussion group to ask advanced genealogy questions regarding Swedish parishes and people in the parish, help reading"
+P6304,researchportal.helsinki.fi profile ID,
+P6305,Wikimedia VRTS ticket number,"identifier for a set of email correspondence, in the Wikimedia Volunteer Response Team System"
+P6306,AllMusic performance ID,identifier for a recording of a performance in AllMusic
+P6307,Wikibase Registry ID,Q-ID in the Wikibase Registry
+P6308,Scoresway tennis person ID,identifier for a tennis player at the Scoresway
+P6309,historical Rpertoire national des associations identifier,identifier of an association in the historical database of the Rpertoire national des associations
+P6310,Musosphre work ID,identifier for a work on the Musosphre website
+P6311,Pressball.by football (soccer) player ID,identifier for an association football (soccer) player at Pressball.by website
+P6312,Russian Premier League staff ID,identifier for a Russian Premier League staff member at official website premierliga.ru
+P6313,Russian Premier League referee ID,identifier for a Russian Premier League referee at official website premierliga.ru
+P6314,WorldFootball.net referee ID,WorldFootball.net identifier for an association football (soccer) referee
+P6315,PlaymakerStats.com referee ID,identifier for an association football (soccer) referee at PlaymakerStats.com (formerly TheFinalBall.com)
+P6316,PlaymakerStats.com coach ID,identifier for an association football (soccer) coach at PlaymakerStats.com (formerly TheFinalBall.com)
+P6317,RusTeam player ID,identifier for football player on site RusTeam.permian.ru
+P6318,Crimean Football Union player ID,identifier for football player of Crimean Football Union
+P6319,Italian Footballers' Association player ID,identifier for football player of AIC
+P6320,Futsal Association of Russia player ID,AMFR identifier for a futsal player
+P6321,Teams.by player ID,Teams.by identifier for an association football (soccer) player
+P6322,vehicle identification number,"identifier of an individual vehicle. Format: 17 alphanumeric characters excluding letters I, O, Q"
+P6323,Centre Pompidou ID,identifier for an entry on the 'Centre national d'art et de culture Georges-Pompidou' website
+P6324,INE ID (Portugal),"identifier for Portuguese municipalities, districts and parishes, by the Portuguese National Statistical Institute (INE)"
+P6325,Critique d'art ID,identifier for an entry on the Critique d'art website
+P6326,DVR Number,identifier for data processing Austrian organisations
+P6327,Goodreads character ID,identifier for a fictional character on Goodreads
+P6328,Politika topic ID,identifier for a topic on Politika.rs website
+P6329,Share-VDE 1.0 author ID,identifier for entities (people and organizations) in the federated linked data platform Share Virtual Discovery Environment
+P6330,England Football Online manager profile,identifier for football manager on England Football Online site
+P6331,England Football Online player profile,identifier for football player on England Football Online site
+P6332,Panorama de l'art ID,identifier for an entry on the Panorama de l'art website
+P6333,title of broader work,"title of website, journal or other work in which an article (or other publication) is published in. Use ""published in"" (P1433) instead if possible."
+P6334,Agence photo RMN package ID,"identifier for a museum, exhibition, collection, or theme, on the 'Agence photo de la Runion des Muses nationaux et du Grand Palais' website"
+P6335,MDWS place ID,"code used by the Ministry of Drinking Water and Sanitation, Government of India to identify village, panchayats, community development blocks, districts and states of India."
+P6336,JKT48 member ID,ID of JKT48 members at their website
+P6337,PCGamingWiki ID,identifier for PC video games tracked on PCGamingWiki
+P6338,colorist,"artist in charge of adding colors to drawings, comics, movie film, etc."
+P6339,reports periodicity,physical quantity corresponding to the interval of time between two measurements or reported data
+P6340,Uppsala General Catalogue ID,identifier of a galaxy in the Uppsala General Catalogue
+P6341,IFPNI species ID,identifier for a species at the International Fossil Plant Names Index
+P6342,Dictionnaire des Wallons ID,identifier for a person on the online Dictionnaire des Wallons
+P6343,urban population,number of people living within the territorial entity who live in its urban parts
+P6344,rural population,number of people living within the territorial entity who live in its rural parts
+P6346,statutory purpose,main statutory purpose of an organization as defined in its articles of association
+P6347,The White-files species ID,identifier for a species in The White-files
+P6348,Hymnary text ID,identifier for hymn text in the Hymnary.org database
+P6349,Lace Bugs Database ID,identifier for a species in the Lace bugs database
+P6350,Doctrine ID,identifier for a lawyer on Doctrine
+P6351,Genius artist numeric ID,numeric identifier for an artist on Genius
+P6352,OLAC video game genre vocabulary ID,identifier of video game genre vocabulary of the OLAC (Online Audiovisual Catalogers)
+P6353,OSGS-Number,ID for organisations registered with the OSGS
+P6354,closest approach,qualifier for minimum distance from an astronomical object that this spacecraft flies
+P6355,MNAM artwork ID,"identifier for an artwork on the website of the collections of the Muse national d'Art moderne, in Paris"
+P6356,IHOI work ID,identifier for a work on the website of the Iconothque historique de l'ocan Indien
+P6357,Confrence du stage secretary ID,identifier for a secretary of the 'Confrence du stage de Paris' on its website
+P6358,Muse Picasso artwork ID,"identifier for an artwork on the website of the Muse Picasso, in Paris"
+P6359,Crew United title ID,identifier for films and series on Crew united
+P6360,Genius album numeric ID,"numeric ID for an album, single, other music release or other publication on Genius"
+P6361,Genius song numeric ID,"numeric ID for a song, musical composition or written work on Genius"
+P6362,Litchfield Ledger ID,identifier in Litchfield Ledger database
+P6363,WordLift URL,a Linked Open Data permanent ID of publicly available entities curated by online publishers and distributed in various formats
+P6364,official color,official colors chosen to represent or identify an item
+P6365,member category,category item for members of the organization
+P6366,Microsoft Academic ID,identifier for an object or topic in the Microsoft Academic Graph
+P6367,Bahamut Gamer's Community ACG Database ID,"a Taiwanese database for Games, Animation, Comic, Light Novels"
+P6368,Media Arts Database anime ID (former scheme),"identifier for an anime in the Media Art database created by the Japanese government department Bunkacho (former scheme, use P7886 for new identifier with 'C/M' prefix)"
+P6369,Media Arts Database manga ID (former scheme),"identifier for a manga in the Media Art database created by the Japanese government department Bunkacho (obsolete, use P7886 for new identifier with 'C/M' prefix)"
+P6370,REDIZO,identificator of school organization in Czech Republic
+P6371,Archives of Maryland Biographical Series ID,identifier for the Archives of Maryland Biographical Series
+P6372,Interpol WOA artwork ID (OBSOLETE),identifier for a stolen artwork in the dedicated Interpol database
+P6373,Online Catalog of Biblioteca Nacional de Portugal ID,identifier for the full set of bibliographic records from the National Library of Portugal online catalogue
+P6374,MAMVP artwork ID,identifier for an artwork on the website of the Muse d'Art Moderne de la Ville de Paris
+P6375,street address,"full street address where subject is located. Include building number, city/locality, post code, but not country; use also P669 if the street has its own separate item"
+P6376,Psyl'list species ID,identifier for a species in the Psyl'list database
+P6377,VectorBase taxonomy ID,identifier for a taxon in the NIAID Bioinformatics Resource Center VectorBase
+P6378,charter URL,"link to an organization's charter documents, including articles or certificate of association, incorporation or organization, or its by-laws"
+P6379,has works in the collection,collection that has works of this person or organisation (use archive location P485 for the archives)
+P6381,iTunes TV season ID,identifier for a show or a season/series of a show in the iTunes Store
+P6382,Hungarian public thesaurus ID,authorized term in the OSZK Thesaurus / Public thesaurus
+P6383,TV Spielfilm film ID,identifier for films on tv-spielfilm.de
+P6384,Viperson ID,identifier for person on site Viperson
+P6385,Krugosvet article,link to article of Russian-language online encyclopedia
+P6386,biathlon.com.ua person ID,identifier for a person at biathlon.com.ua
+P6387,RBU person ID,identifier for a person at the Russian Biathlon Union site
+P6388,sportufo.ru person ID,identifier for person on site sportufo.ru
+P6389,Skiresort.info ID,Record on skiresort.info for any specific ski resort
+P6390,Educational Institution Identification Number,identifier for an educational institution issued by the Bangladesh Bureau of Educational Information and Statistics
+P6391,U-DISE code,identifier for a primary or secondary school in India issued under the Unified District Information System for Education
+P6392,AISHE code,"identifier for a college, university, or standalone institution in India issued by the All India Survey on Higher Education"
+P6394,ELNET ID,"identifier assigned by the ELNET consortium of Estonian libraries. Format: ""a"", 7 digits, ""x"" or another digit."
+P6395,Apple Books book ID (American version),identifier for an e-book in the American version of Apple Books
+P6398,iTunes movie ID,identifier for a film in the iTunes Store
+P6399,Romanian Soccer player ID,identifier for an association fooball player at the Romanian Soccer site
+P6400,Skimap area ID,"Record page on www.Skimap.org for ski resort, with current and historical official published maps of lifts and ski-runs"
+P6401,sports.md athlete ID,identifier for an athlete at the sports.md
+P6402,Gault et Millau ID,identifier for a restaurant in the Gault et Millau Restaurants website
+P6403,TheatreOnline ID,identifier for a theater actor/actress in theatreonline.com website
+P6404,Treccani's Dizionario di Storia ID,identifier for Dizionario di Storia (Dictionary of History) by Treccani
+P6405,Smarthistory ID,"identifier for an artwork, an art movement or period on the Smarthistory website"
+P6406,vodnimlyny.cz ID,identifier in the database of water mills in the Czech Republic
+P6407,World Cube Association ID,World Cube Association identifier for a person
+P6408,COOL species ID,identifier for a species in the COOL (Cercopoidea Organised On Line) database
+P6409,CORE ID,ID of an article in CORE (Connecting Repositories)
+P6410,LevskiSofia.info coach ID,identifier for a coach at the LevskiSofia.info
+P6411,LevskiSofia.info player ID,identifier for a player at the LevskiSofia.info
+P6412,Gran Enciclopdia de la Msica ID,identifier for an item in the Gran Enciclopdia de la Msica
+P6413,JORFSearch organization ID,
+P6414,DIZIE ID,identifier for a topic on the online version of the Dizionario dell'integrazione europea
+P6415,Football.Odessa.ua person ID,identifier for person on site football.odessa.ua
+P6416,sport-strana.ru article ID,identifier for an article on site sport-strana.ru
+P6417,Homosaurus ID (V2),identifier for an authorized term in version 2 of Homosaurus: An International LGBTQ+ Linked Data Vocabulary
+P6418,funk channel ID,ID of the funk channel. Used only for formats with a channel on the funk.net website.
+P6419,GEOFON earthquake ID,ID of an earthquake in GEOFON earthquake ID
+P6420,Georgian National Filmography ID,identifier for a film in the Georgian National Filmography database
+P6421,infosport.ru person ID,identifier for person on site infosport.ru
+P6422,ManualsLib brand ID,"identifier for a brand or manufacturer, in the Manuals Lib library of instruction manuals"
+P6423,MusicBrainz event ID,identifier for an event in the MusicBrainz open music encyclopedia
+P6424,affiliation string,qualifier to provide the published string form of affiliation attached to an author
+P6425,LGD local body code,"code used by the Local Government Directory, a website run by the Government of India, which maintains directory of rural and urban local governments in India and their political territorial entities"
+P6426,RightsStatements.org statement according to source website,standardized RightsStatements.org rights statement that owning institution or similar authority has applied to this work
+P6427,trading name,alternative name under which an entity legally trades
+P6429,Hymnary hymnal ID,identifier for hymnal in the Hymnary.org database
+P6430,Hymnary instance ID,identifier for an individual edition of a published hymn in the Hymnary.org database
+P6431,Hymnary tune ID,identifier for hymn tune in the Hymnary.org database
+P6432,AlexanderÐBriggs notation,common notation of abstract knots and links
+P6433,Global Species ID,identifier for a taxon in Global Species database
+P6434,Amsterdam code,code for municipalities in the Netherlands
+P6436,Code of Natura 2000/FFH habitat,codes used in the Habitats Directive as identifier for habitats
+P6437,day of regular release,"day(s) when parts of this creative work are released, aired, published, etc"
+P6438,Euler characteristic,topological invariant of a space; the alternating sum of the dimensions of the (co)homology of a space
+P6439,has lyrics,work whose text is used as the lyrics of this work
+P6440,maintenance method,"method or steps that maintain, clean up, or repair this item and lengthens its lifespan"
+P6441,Douban author ID,identifier for an author at the Douban book website
+P6442,Douban book version/edition ID,identifier for a version or edition of a book or a journal at the website Douban
+P6443,Douban drama ID,identifier for a theatrical production at the website Douban
+P6444,Douban game ID,identifier for a video game at the website Douban
+P6445,Douban music ID,identifier for an album at the website Douban
+P6446,Douban musician ID,identifier for a musician at the Douban music website
+P6447,Douban Read author ID,identifier for a celebrity at the Douban Read website
+P6448,Douban Read eBook ID,"identifier for a book at the website Douban Read, different from P6442"
+P6449,Douban site name,domain name of Douban site written in Latin alphabet
+P6450,Douban username,domain name of Douban users' personal pages
+P6451,Zhihu username,domain name of Zhihu users' personal pages
+P6452,CBFC rating,rating in the Indian film rating system
+P6454,Bilibili tag ID,"number of a tag of Bilibili, a Chinese video website similar to YouTube or Niconico"
+P6455,Bilibili user ID,this item's user ID on Bilibili
+P6456,Bilibili video ID,identifier of a video on Bilibili
+P6457,Eventa Servo ID,unique ID for the event on the website Eventa Servo
+P6458,Mtime movie ID,identifier for a movie/film at the website Mtime
+P6459,QQ user ID,this item's user ID on QQ
+P6460,Swedish Organization Number,sequence of two numberpairs that is unique to a Swedish company or organization given out by the responsible government department
+P6461,Rock's Backpages artist ID,"identifier for a music artist, featured in the Rock's Backpages archive"
+P6462,Rock's Backpages author ID,identifier for a music journalist whose works are featured in the Rock's Backpages archive
+P6463,Rock's Backpages publication ID,"identifier for a newspaper or magazine, articles from which are featured in the Rock's Backpages archive"
+P6464,Mtime people ID,identifier for a movie/film maker at the website Mtime
+P6465,Democracy Club candidate ID,identifier in the Democracy Club database of political candidates
+P6466,Hulu movie ID,movie identifier in Hulu
+P6467,Hulu series ID,TV series identifier in Hulu
+P6468,ISA ID,identifier for Brazilian indigenous populations from Instituto Socioambiental
+P6469,Fuzhou Architecture Heritage ID,identifier for a building in Fuzhou Architecture Heritage
+P6470,DALFAN ID,identifier for a person the Dictionnaire des auteurs de langue franaise en Amrique du Nord
+P6471,Den Digitale Byport ID,"identifier for a Danish city in ""Den Digitale Byport"""
+P6472,GameFAQs franchise ID,identifier of a franchise in GameFAQs
+P6473,NMSRCP reference number,identifier in the State Register of Cultural Properties assigned by the New Mexico Historic Preservation Division
+P6474,Swiss Films ID,Identifier for films on swissfilms.ch
+P6475,CABB player ID,player ID of national teams on the Argentine Basketball Confederation website
+P6476,castingvideos ID,identifiers for actors on castingvideos.com
+P6477,does not have quality,expected quality that the item does not possess
+P6478,Mecklenburg-Vorpommern protected area ID,"identifier for nature and landscape protected areas in Mecklenburg-Vorpommern (Germany), issued by the Ministerium fr Landwirtschaft und Umwelt Mecklenburg-Vorpommern"
+P6479,IEEE Xplore author ID,identifier for an author in IEEE Xplore
+P6480,IEEE Xplore document ID,identifier for a document in IEEE Xplore
+P6481,Strepsiptera database species ID,identifier for a species in the Strepsiptera database
+P6482,"Image Archive, Herder Institute",link to the online database (Bildkatalog) of the image archive for the display of image sources
+P6483,WBCHSE code,identifier for a college or school situated in West Bengal
+P6484,Antarctica NZ Digital Asset Manager,identifier in the composite gazetteer for Antarctica run New Zealand
+P6485,Brentidae of the world species ID,identifier for a species in the Brentidae of the world database
+P6486,Pacific Coast Architecture Database building ID,identifier for a building in the Pacific Coast Architecture Database (PCAD)
+P6487,Illustrated catalog of Tessaratomidae species ID,identifier for a species in the Illustrated catalog of Tessaratomidae
+P6488,Enciclopedia delle donne ID,identifier for a subject on the Enciclopedia delle donne
+P6489,Joan Mir Online Image Bank ID,identifier for an artwork by Joan Mir in the Joan Mir Online Image Bank
+P6490,Patrimonio Digital de Castilla-La Mancha authority ID,authority identifier in the Biblioteca Digital de Castilla-La Mancha
+P6491,Board Game Atlas ID,identifier for a board game in the Board Game Atlas database
+P6492,BVPH authority ID,authority identifier in the Biblioteca Virtual de Prensa Histrica
+P6493,CCBAE publication ID,authority identifier in the Catlogo Colectivo de la Red de Bibliotecas de los Archivos Estatales y del CIDA
+P6494,Incunabula Short Title Catalogue ID,number or ID in the Incunabula Short Title Catalogue
+P6495,KSI player ID,identifier for player on KSI site
+P6496,Biblioteca Virtual Andaluca authority ID,authority identifier in the Biblioteca Virtual de Andaluca
+P6497,drag coefficient,"dimensionless quantity that is used to quantify the drag or resistance of an object in a fluid environment, such as air or water"
+P6498,illiterate population,number of illiterate people within a territorial entity (typically determined during a census)
+P6499,literate population,number of literate people within a territorial entity (typically determined during a census)
+P6500,non-free artwork image URL,URL for image of copyrighted artwork on official collection or artist website
+P6501,Georgian National Filmography person ID,"identifier for a person, in the Georgian National Filmography database"
+P6502,JWF Wrestlers Database person ID,identifier for a wrestler in the Japan Wrestling Federation Database
+P6503,Indian census area code (1991),code used for an area for calculations in the 1991 census of India
+P6504,Lithuanian Sport Encyclopedia (LSE) article ID,identifier for an article on Lithuanian Sport Encyclopedia
+P6506,Eliseu Visconti Project ID,Catalog of works of Eliseu Visconti
+P6507,taxon author citation,"valid author citation for a taxon using the appropriate nomenclature (ICBN, ICZN, ect.)"
+P6509,total goals in career,goalscoring statistic
+P6510,stall speed,minimum airspeed from which an aircraft can take off and maintain flight
+P6512,UN/CEFACT Common Code,unit of measurement identifier as defined by the UN/CEFACT in Recommendation No. 20: Codes for Units of Measure Used in International Trade
+P6513,AICTE Permanent ID,"identifier number issued by AICTE, the authorized organization in India which grants approval for starting and accreditation technical institutions in India"
+P6514,DOGC ID,external and unique identifier which represents a publication in Diari Oficial de la Generalitat de Catalunya
+P6515,DoBIH Number,stable identifying number for hills in the Database of British and Irish Hills
+P6516,ScaleNet ID,identifier for a taxon in ScaleNet
+P6517,WhoSampled artist ID,identifier for an artist on WhoSampled.com
+P6518,Business Registry code (Estonia),identifier for a juridical person registered in Estonia
+P6519,ISO 639-3 Change Request ID,Identifier for requested changes to ISO 639-3 language codes. Identifier is issued by the ISO 639-3 registration authority.
+P6520,Lokalhistoriewiki.no ID,identifier for an article in lokalhistoriewiki.no
+P6521,Crew United person ID,"identifier for persons in the Crew united database of German films, TV series, and related productions"
+P6524,expression of,"realization of a work through words, sound, image etc. in the FRBR model"
+P6525,Fondation Maeght artist ID,"identifier for an artist on the website of the Fondation Maeght, a French museum"
+P6526,data.gouv.fr dataset ID,ID of a dataset in the French open data platform data.gouv.fr
+P6527,V.League men's player ID,identifier for profile of male player on V.League site
+P6528,V.League women's player ID,identifier for profile of female player on V.League site
+P6529,provisional house number,"house number used for recreational and provisional buildings in Czechia, formerly also in Slovakia (eg. cottages)"
+P6530,has role in modeling,"relation between a research artefact and an entity that is used to study, in virtue of its replicating or approximating features of the studied entity"
+P6531,observed in,"to be used as reference to location, condition, variant where upon the subject property object statement is based"
+P6532,has phenotype,"a relationship that holds between a biological entity and a phenotype, equivalent to ""has property"" in the relation ontology http://purl.obolibrary.org/obo/RO_0002200"
+P6533,type of front suspension,"system of tires, tire air, springs, shock absorbers and linkages that connects a vehicle to its front wheels and allows relative motion between the two"
+P6534,type of rear suspension,"system of tires, tire air, springs, shock absorbers and linkages that connects a vehicle to its rear wheels and allows relative motion between the two"
+P6535,BHL part ID,"identifier of a part-work, in the BHL database"
+P6536,Gateway to Research Project ID,identifier for a research project receiving public funding in the UK
+P6537,Yandex Music genre ID,identifier of a music genre on the Yandex Music website
+P6538,Yandex Music label ID,identifier of a music label on the Yandex Music website
+P6539,Catlogo de Patrimonio Cultural de Castilla-La Mancha ID,identifier of a cultural heritage monument in the Catlogo de Patrimonio Cultural de Castilla-La Mancha
+P6540,multi-channel network,multi-channel network with which works YouTube channel
+P6541,Stack Exchange site,link to a Stack Exchange network website for the concept
+P6542,Inventrio dos Monumentos RJ ID,
+P6543,total shots in career,sports statistic
+P6544,total points in career,sports statistic
+P6545,total assists in career,goalscoring statistic
+P6546,penalty minutes in career,sports statistic
+P6547,career plus-minus rating,sports statistic
+P6548,NZ On Screen person ID,identifier for a person in the NZ On Screen database
+P6549,NZ On Screen work ID,"identifier for a film, video or TV show in the NZ On Screen database"
+P6550,Pacific Coast Architecture Database firm ID,"Identifier for a firm (company, partnership, sole proprietorship) in the Pacific Coast Architecture Database (PCAD)"
+P6551,Physics History Network ID,identifier from the Physics History Network at the American Institute of Physics
+P6552,Twitter user numeric ID,"numeric identifier for a user on Twitter; use as qualifier for P2002 ""Twitter username"""
+P6553,personal pronoun,personal pronoun(s) this person goes by
+P6554,Represent Me ID,identifier of games on Represent Me
+P6555,Brazilian Electoral Unit ID,"unique identifier of an brazilian electoral unit, defined by the Brazilian Superior Electoral Court"
+P6556,SICRIS researcher ID,ID of a registered researcher in Slovenia from the Slovenian Current Research Information System (SICRIS)
+P6557,Dimensions.guide ID,identifier on Dimensions.guide database
+P6558,National Wrestling Hall of Fame University team ID,identifier for an American university wrestling team
+P6559,Official Charts artist ID,identifier for musical acts at Official Charts Company's website
+P6560,Saxony-Anhalt protected area ID,"identifier for nature and landscape protected areas in Saxony-Anhalt (Germany), issued by the Landesverwaltungsamt Sachsen-Anhalt"
+P6561,AiF dossier ID,"identifier of people and organizations from the Russian newspaper ""Argumenty i Fakty"""
+P6562,Google Play Movies & TV ID,identifier of films and television series on Google Play
+P6563,key performance indicator,measure used to track progress towards a target
+P6564,Brilliant Wiki ID,identifier for a Brilliant.org wiki article
+P6565,Musenor artwork ID,identifier for an artwork on the website of the Association des Conservateurs des Muses des Hauts-de-France
+P6566,Indonesian Cultural Heritage Registration System ID,identifier of a Indonesian cultural heritage in Cultural Heritage National Registration System
+P6567,Florida Historical Marker List ID,identifier for Florida historical markers at Florida Division of Historical Resources website
+P6568,inscription mentions,item about a person or an object mentioned in the inscription's text. Use on Wikimedia Commons on media files
+P6569,taxon especially protected in area,"species and other taxa especially protected in a area, whether still actually present or not. Do not use for countries/subnational entities: use red lists properties instead."
+P6570,number of words,number of words in text. Text is available at Wikisource.
+P6571,collective noun for animals,"applicable term to describe a group of such animals (e.g. ""swarm"" for ""bee"" as in ""a swarm of bees"")"
+P6572,ProQuest document ID,an identifier for microfilmed dissertations and other documents on ProQuest
+P6573,Klexikon article ID,ID of an article in Klexikon
+P6574,Libraries & Information Centers in the Czech Republic ID,identifier for libraries and information centers in the Czech Republic
+P6575,Acadmie de Rouen member ID,identifier for a member of the Acadmie de Rouen on its website
+P6576,Art Fund artwork ID,identifier for an artwork on the website of the Art Fund
+P6577,Cour des comptes report ID,identifier for a report about an organization on the 'Cour des comptes's website
+P6578,MutualArt artist ID,identifier for an artist in the MutualArt database
+P6579,National Book Foundation author ID,identifier for an author on the website of the National Book Foundation
+P6580,National Book Foundation book ID,identifier for a book on the website of the National Book Foundation
+P6581,Deportation Database transport ID,"online guide that includes most of the deportation transports that originated from cities in central, western and southern European countries between 1939 and 1945"
+P6582,Dutch Instrument Makers ID,biographical data about instrument makers that were active in the Netherlands
+P6583,Lucerna person ID,person in the LUCERNA Magic Lantern Web Resource
+P6584,Scripts.com script ID,"ID of film scripts, screenplays and transcripts from famous and not-so-famous screen writers from around the world"
+P6585,Directorio Legislativo ID,identiifer for a deputy in the National Congress.of Argentina
+P6586,Cook Partisan Voting Index,"a measurement of how strongly a United States congressional district or state leans toward the Democratic or Republican Party, compared to the nation as a whole"
+P6587,league system,league system the league belongs to
+P6589,endowment,sum of donations for the ongoing support of a not-for-profit institution
+P6590,highest break,highest break made by a snooker player in their career or in a tournament
+P6591,maximum temperature record,maximum temperature reached at this location
+P6592,OpenStreetMap zoom level,raster zoom level (or vector zoom +1) that would be requested for a 512?512-pixel OSM map that could contain the boundaries of this item
+P6593,hyperonym,word whose meaning includes this one
+P6594,Guggenheim fellows ID,identifier for a person awarded a Guggenheim fellowship in the arts
+P6595,Paintings by Salvador Dal ID,identifier for an artwork in the catalogue raisonn of paintings by Salvador Dal
+P6596,a-tremasov.ru biography ID,ID of biographical article at Aleksei Tremasov's project Always with meÉ
+P6597,Digital Dictionary of Surnames in Germany ID,ID of corresponding entry in the DFD online dictionary of family names
+P6598,flgr-results.ru athlete ID,identifier for an athletes at the Data accounting system of Cross Country Ski Federation of Russia
+P6599,HCA Red List of Endangered Crafts ID,identifier for entries in the HCA Red List of Endangered Crafts
+P6600,Resident Advisor artist ID,identifier for artists at the Resident Advisor website
+P6601,Resident Advisor label ID,identifier for record labels at the Resident Advisor website
+P6602,Rhineland-Palatinate protected area ID,"identifier for nature and landscape protected areas in Rhineland-Palatinate (Germany), issued by the Landschaftsinformationssystem Rheinland-Pfalz der Naturschutzverwaltung"
+P6603,film-documentaire.fr author ID,identifier of an author in the French database film-documentaire.fr
+P6604,Sandbox-Musical Notation,"Sandbox property for value of type ""Musical Notation"""
+P6605,Plant Illustrations artist ID,"identifier for a botanical artist, on the Plant Illustrations website"
+P6606,study or design for,"finished work of art for which the subject is a preliminary study, design, or conceptual drawing"
+P6607,constraint clarification,qualifier to provide details on the function or purpose of a property constraint on a given property
+P6608,General Material Designation,Canadian archival term indicating the broad class of material to which the item belongs
+P6609,value hierarchy property,property which specifies less precise items than the indicated value for which statements using the subject property would still be true
+P6610,Ashmolean museum ID,number of the object on online collections
+P6611,Semantic Scholar topic ID,"identifier for a research topic, in the Semantic Scholar database"
+P6612,FFS athlete ID,identifier for athletes at the Fdration franaise de ski site
+P6613,CSKA person ID,identifier for person on the website of CSKA Moscow
+P6614,Libreflix ID,identifier for a creative work on Libreflix
+P6615,Kicker.de player ID (former scheme),numeric identifier for an association football player at kicker.de
+P6616,Library of Parliament of Canada person ID,identifier for a federal politician in Canada (by the Library of Parliament)
+P6617,RoMEO publisher ID,identifier of an academic publisher in the SHERPA/RoMEO database of archiving policies
+P6618,Federal-State Cooperative System ID,"identifier for libraries in the United States, assigned by the Institute of Museum and Library Services"
+P6619,XING company ID,identifier for a company on XING
+P6620,L'Express person ID,identifier for a person on the website of L'Express
+P6621,Le Figaro tag ID,identifier for a topic on the website of Le Figaro
+P6622,Le Parisien tag ID,identifier for a topic on the website of Le Parisien
+P6624,FSkate.ru skater ID,identifier for a skater at FSkate.ru
+P6625,Salvador Dali Museum ID,identifier for an artwork on the Salvador Dali Museum website
+P6626,Index to American Botanical Literature ID,identifier in Index to American Botanical Literature
+P6627,FaroeSoccer player ID,identifier for a player at FaroeSoccer.com
+P6628,FaroeSoccer coach ID,identifier for a coach at FaroeSoccer.com
+P6629,Artcurial lot ID,"identifier for a lot on the website of Artcurial, a French auction house"
+P6630,SNISB ID,"unique identifier of a Brazilian dam, defined by the Brazilian National Information System on Dams Safety (SNISB)"
+P6631,Tainacan MHN ID,identifier for collection items from the collection of the National Historical Museum
+P6632,100 bombardirov person ID,identifier for a person 100bombardirov.ru
+P6633,Cini Foundation ID,identifier for an artwork on the Cini Foundation website
+P6634,LinkedIn personal profile ID,"identifier for a person, on the LinkedIn website"
+P6635,ACA author ID,identifier for an author on the website of the Archives de la critique d'art website
+P6636,CDEC ID,"ID for the Italian victims of the Nazi Holocaust, from the database of CDEC - Italian center for Jewish contemporary documentation"
+P6637,AWARE ID,"identifier for a female artist on the Archives of Women Artists, Research and Exhibitions"
+P6639,capacity factor,percentage of maximum power output provided on average by a given power station or power generation unit
+P6640,JRC Names id,"ID in the JRC Names gazetteer, which provides spelling variants and EMM news about the entity (220k news items per day). Alias: JRCN"
+P6641,Zomato ID,international dining directory and review service
+P6643,TV Spielfilm series ID,"identifier for a television series, on tv-spielfilm.de"
+P6644,Fandango theater ID,movie theater identifier at Fandango.com
+P6645,Stedelijk Museum Amsterdam ID,identifier for an artist on the Stedelijk Museum Amsterdam website
+P6646,JMdictDB ID,"identifier for entries at the Japanese Dictionary Database (not the ""Seq#"" displayed in search results, but the value after ""&e="" in the URL to an entry)"
+P6647,Zagat ID,ID for restaurants on the Zagat website
+P6648,position in Forsyth-Edwards Notation,board position in a chess game described in ForsythÐEdwards Notation (FEN)
+P6649,Democracy Club election ID,identifier in the Democracy Club database of elections
+P6650,Martindale-Hubbell profile,profile of a person at Martindale-Hubbell
+P6652,Sumo Reference ID,identifier for profile of sumo wrestler on Sumo Reference
+P6653,ETS Designated Institution code,an administrative 4-digit code that Educational Testing Service uses to uniquely identify institutions programs
+P6654,Periscope ID,identifier for Periscope live video streaming service
+P6655,stroke order,media file showing the order of strokes in a CJKV character
+P6657,CHVRS Classification,Canadian movie classification
+P6658,RCQ classification,movie classification for the Rgie du Cinma Qubcois
+P6659,Baden-Wrttemberg protected area ID,"identifier for nature and landscape protected areas in Baden-Wrttemberg (Germany), issued by the Landesanstalt fr Umwelt Baden-Wrttemberg"
+P6660,Rxivist author ID,"identifier for the author of scientific or academic preprint papers, in the Rxivist database"
+P6661,Rxivist preprint ID,"identifier for a scientific or academic preprint of a paper, in the Rxivist database"
+P6662,Springboks player ID,identifier for a Rugby Player on the official SA Rugby website
+P6663,Utpictura18 artwork ID,identifier for an artwork on the Utpictura18 website
+P6664,Le Vif tag ID,
+P6665,Pro-Linux.de DBApp ID,identifier for an app in the Pro-Linux.de database
+P6666,LibreGameWiki ID,identifier for articles on LibreGameWiki
+P6667,MARGS ID,unique identifier for artists in the collection of the Rio Grande do Sul Art Museum
+P6668,theatre-contemporain.net ID,unique identifier of a name or work in the French database theatre-contemporain.net
+P6669,FIS telemark skier ID,identifier for a telemark skier in the International Ski Federation database
+P6670,musical quotation or excerpt,"quotation or excerpt from this musical work, in LilyPond syntax"
+P6671,French public service directory ID,identifier for French public services
+P6672,Placar UOL Eleies ID,identifier to results of Brazilian municipal and state elections in the Placar UOL Eleies database
+P6673,Memrias da Ditadura ID,identifier for people who were killed or went missing during the Brazilian military dictatorship (1964-1985)
+P6674,Desaparecidos Polticos ID,identifier for people who were killed or went missing during the Brazilian military dictatorship (1964-1985)
+P6676,OpenEdition text ID,identifier for a book or a chapter on OpenEdition
+P6677,OpenEdition Books author ID,identifier for an author on OpenEdition
+P6678,WoRMS source ID,identifier of a source in the WoRMS database
+P6679,Encyklopedia Teatru Polskiego play ID,theatrical play ID in e-teatr.pl
+P6680,MeSH term ID,"identifier of a ""MeSH term"" (Medical Subject Headings) of National Library of Medicine (National Institutes of Health - U.S. Department of Health)"
+P6681,EUNIS ID for habitats,identifier for a habitats on the European Nature Information System website (EUNIS)
+P6682,Motorsports Hall of Fame of America ID,Mini biographies of the inductees to the Motorsports Hall of Fame of America
+P6683,Alexander Turnbull Library ID,identifier for names in the Alexander Turnbull Library thesaurus module for unpublished collections
+P6684,first attested from,to indicate the first known usage of a word
+P6685,Wikidata property example for media,example for the property applicable to media files on Wikimedia Commons (structured data for Commons). See Wikimedia Commons for full usage rules
+P6686,musical motif,"short recurring melodic or rhythmic musical phrase in this musical work, in LilyPond syntax"
+P6687,IANA timezone ID,identifier of a time zone in the IANA database
+P6688,National Wrestling Hall of Fame wrestler ID,
+P6689,MassBank accession ID,accession number for entries in the MassBank database (records of mass spectrometry)
+P6690,CNV-SP ID,identifier for people who were killed or went missing during the Brazilian military dictatorship (1964-1985) in the So Paulo State compiled by the So Paulo State Truth Commission
+P6691,GruCultura ID,identifier of cultural relevant places in the Brazilian city Guarulhos
+P6692,CEMDP ID,identifier for people who were killed or went missing during the Brazilian military dictatorship (1964-1985)
+P6693,NGMDb Prod ID,ID for every publication in the United States Geological Survey's National Geologic Map Database (NGMDb)
+P6694,MeSH concept ID,identifier of a Medical Subject Headings concept
+P6695,number of sentences,"number of sentences in text, text is available at Wikisource"
+P6696,PRELIB organization ID,identifier for an organization on the Projet de recherche en littrature de langue bretonne website
+P6697,Football Money League rank,rank in the Deloitte Football Money League
+P6698,Japan Search name ID,identifier in the Japan Search portal
+P6699,Yu-Gi-Oh! TCG cards ID,unique ID for Yu-Gi-Oh! TCG (Trading Cards Game) cards listed at Yu-Gi-Oh! Card Database
+P6700,Saxony protected area ID,"identifier for nature and landscape protected areas in Saxony (Germany), issued by the Schsisches Staatsministerium fr Umwelt und Landwirtschaft"
+P6701,Referee.ru person ID,identifier for person at Football referees of Russia site
+P6702,Shanghai Library person ID,identifier for persons in the Shanghai Library Name Authority Database
+P6703,Shanghai Library place ID,identifier for places in the Shanghai Library Name Authority Database
+P6704,FrogMAP ID,identifier of a species in FrogMAP - The Atlas of African Frogs encyclopedia
+P6705,Academia Sinica authority ID,identifier for a person in Academia Sinica's Name Authority Biographical Database (a.k.a. Ming Qing Archive Name Authority Database)
+P6706,De Agostini ID,identifier for a subject on the Enciclopedia De Agostini online
+P6707,approach angle,"angle of a ramp on which a vehicle can climb, use degree (Q28390) as unit"
+P6708,departure angle,"angle of a ramp from which a vehicle can descend, use degree (Q28390) as unit"
+P6709,L¿¿v classification,classification system for literature on Sami matters
+P6710,linear reference,"nominal distance commonly used to describe location along a route. Defined by operator/authority, it might not reflect physical distance"
+P6711,data transfer speed,transfer speed through a bus or a communication medium
+P6712,precedes word-initial,letter that a following word starts with which determines the form of the subject lexeme
+P6713,Australian War Memorial ID,"identifier for a person, event, unit, place, or item in the Australian War Memorial collection"
+P6714,Whitney Museum of American Art artist ID,identifier for an artist on the Whitney Museum of American Art website
+P6715,SIUSA archive producer person ID,identifier for an archive producer person in the Unified Information System for the Archival Superintendencies
+P6716,MyNeta.info political party ID,external identifier to link data about Indian political parties
+P6717,Indie DB game ID,identifier of a video game on indiedb.com
+P6718,music video,short film integrating this composition with imagery
+P6719,specified by sense,"(qualifier) descriptive sense that when attached to the hypernym, evaluates to the definition of the more specific subject sense"
+P6720,interwiki prefix at Wikimedia,"prefix used for the website on Wikimedia Foundation wikis. Qualify with ""formatter url"" (P1630) from Special:Interwiki. If the url changes, add the qualifier ""end date"" and create a new statement with new formatter."
+P6721,K10plus PPN ID,identifier in the K10plus union catalog of the Common Library Network (GBV) and the South-West German Library Network (SWB)
+P6722,FemBio ID,"identifier for a woman, in the FemBio database"
+P6723,BlackPast.org ID,identifier for articles on BlackPast.org
+P6724,Trainline ID,ID for a european railway station given by Trainline
+P6725,CatholicSaints.info ID,identifier of a catholic saint in the website CatholicSaints.info
+P6726,NSW Capital Conviction ID,identifier for people in the NSW Capital Convictions Database
+P6727,Dimore Storiche Italiane ID,"identifier of an Italian villa, palace, garden or park in the database Dimore Storiche Italiane"
+P6728,Dictionnaire des Vendens ID,identifier for a person on the online Dictionnaire des Vendens
+P6729,SportSport.ba club ID,property for various sportclubs on sportsport.ba website
+P6730,CroRec ID,identifier for musicians in the Croatia Records database (www.crorec.hr)
+P6731,Commons quality assessment,"assessment on Wikimedia Commons of the file: featured picture, valued image, quality images, picture of the day, picture of the year etc. Use on media entities only"
+P6732,VTB United League player ID,identifier for a player at the VTB United League site
+P6733,National Taxonomy of Exempt Entities code,classification code for American nonprofit organizations
+P6734,Archaeology Data Service person ID,identifier for a person in the Archaeology Data Service library of bibliographic data
+P6735,Watercolour World artist ID,"identifier for an artist, in the Watercolour World database"
+P6736,Drobn pamtky ID,identifier in the database of small-scale public artwork in the Czech Republic
+P6737,grwar.ru person ID,ID of biographical article at Alexey Likhotvorik's project Russian Army in the Great War
+P6738,Whitney Museum of American Art artwork ID,identifier for an artwork on the Whitney Museum of American Art website
+P6739,Smotrim.ru actor profile ID,"identifier of an actor or TV-presenter from the site ""Russia-1"""
+P6740,Justia Patents assignee ID,identifier for the assignee of a patent in Justia Patents
+P6741,Kinosozvezdie biography ID,ID of biographical article at Sergei Nikolaev's project Kinosozvezdie
+P6742,Musixmatch track ID,identifier for a song on Musixmatch
+P6743,LNB Coach id,identifier for a coach in the French basketball championship
+P6744,FragDenStaat public body ID,identifier for public bodies from FragDenStaat.de
+P6745,Orlando author ID,identifier for an author in the Orlando reference work
+P6746,Pam?? nroda ID,identifier in the database of historical witnesses of 20th-century events in the region of today's Czech Republic
+P6747,Recreation.gov campground ID,identifier for a campground in an American recreation area on the Recreation.gov website
+P6748,Interactive Fiction Database ID,identifier for games on tads.org
+P6749,CanLII ID,identifier for decisions of Canadian court cases
+P6750,CineChile filmmaker ID,"identifier for people listed at CineChile, the Chilean cinema encyclopedia"
+P6751,Heritage Gazetteer of Libya ID,identifier for sites in the Heritage Gazetteer of Libya
+P6752,RGALI ID,identifier for the Russian State Archive of Literature and Art (RGALI)
+P6753,number of polling stations,"number of polling stations, and correspondively of electoral precincts, in certain electoral district or during certain elections"
+P6754,OBIS ID,"identifier for a taxon, in the Ocean Biogeographic Information System"
+P6756,Flora of Australia ID (new),"identifier for a plant taxon, in an Australian Commonwealth database"
+P6757,exposure time,the length of time a image sensor or photographic film is exposed to light.
+P6758,supported sports team,sports team for which a person or a group is a supporter
+P6759,NARA record group number,the unique number assigned to a National Archives and Records Administration record group in United States
+P6760,Know Your Meme ID,identifier for a Know Your Meme article
+P6761,NARA collection identifier,identifier assigned to a National Archives and Records Administration collection
+P6762,FilmFreeway ID,identifier for film festivals in the FilmFreeway.com database
+P6763,Dictionary of Anhui Writers ID,identifier for a writer in Dictionary of Anhui Writers which was edited by Anhui Writers Association
+P6764,V&A person ID,identifier for artists and makers or subjects of items in the collection of the Victoria and Albert Museum
+P6765,Guix Variable Name,identifier for a package record in the GNU Guix system
+P6766,Who's on First ID,identifier from the Who's on First database
+P6767,FoodOn ID,"identifier for FoodOn, an ontology focused on categorization and processing of food for humans"
+P6768,SportSport.ba news ID,ID for a sports club on sportsport.ba website
+P6769,CJFD journal article ID,identifier for journal articles in China National Knowledge Infrastructure (CNKI)'s China Journal Full-text Database (CJFD)
+P6770,Swiss National Sound Archives ID,"ID in the Swiss National Sound Archives, that is responsible for safeguarding the sound heritage of Switzerland. The SNSA collects and catalogs audio documents (music or spoken word), that have a relationship with the Swiss history and culture."
+P6771,Arabic Ontology ID,"identifier for external link ontology.birzeit.edu, item equivalent on Q63107058 in English and/or Arabic"
+P6772,Buddhist Author Authority Database ID,identifier of a person or an organization in the Buddhist Author Authority Database
+P6773,HAL structure ID,numerical code for a research institution as stored in HAL author affiliations
+P6774,Mod DB game ID,identifier of a video game on moddb.com
+P6775,Finnish Trade Register ID,"identifier for Finnish companies up to 31 March 2001, predecessor to the Business Identity Code"
+P6776,IMTL.org ID,identifier on the website Images de Montral (imtl.org)
+P6777,Danskefilmstemmer.dk person ID,"identifier of an voice actor, director or translator in the Danish DanskeFilmStemmer.dk database"
+P6778,OBO Gazetteer ID,identifier from the Open Bio Ontologies Gazetteer (GAZ) (without prefix)
+P6780,LGBTFansDB character ID,identifier for a character entry on LGBT fans deserve better database
+P6781,ProofWiki ID,identifier for a ProofWiki article
+P6782,ROR ID,identifier for the Research Organization Registry
+P6783,speedrun.com game ID,identifier for games on speedrun.com
+P6784,Harper's author ID,identifier for a person who wrote for Harper's Magazine
+P6785,Pakistan Railways station code,code to identify a railway station operated by Pakistan Railways
+P6786,National Library of Wales Catalogue ID,identifier for an item in the main catalogue of the National Library of Wales
+P6787,Arachne building ID,identifier for a building in the Arachne database
+P6788,messes.info Catholic parish ID,identifier for a Catholic parish on messes.info
+P6789,ISO speed,light sensitivity of film or digital sensor (e.g. ISO/ASA 100)
+P6790,f-number,"ratio of the system's focal length to the diameter of the entrance pupil. Sample: 4 (generally written ""Ä/4"") for a lens with 200 mm focal length using an entrance pupil diameter of 50 mm."
+P6791,The Atlantic author ID,identifier for a person who wrote for the magazine 'The Atlantic'
+P6792,Find NZ Artists ID,identifier for artists listed in Find New Zealand Artists online database
+P6793,WMI code,
+P6794,minimum wage,lowest wage which can be paid legally in a state for working
+P6795,Unified Social Credit Identifier,18-digit permanent unique legal identifier for all juridical persons and other organizations in China
+P6796,OSZMI ID,identifier of a person or a theatrical production in the Theatrical Database of the Hungarian Theatre Museum and Institute
+P6797,MSX Games World ID,identifier of a video game in MSX Games World
+P6798,UPA transcription,"transcript in Uralic Phonetic Alphabet. Use as a qualifier for statements with name properties on items, use as main value on forms for lexemes"
+P6799,GLIMS ID,identifier assigned to glaciers by the Global Land Ice Measurements from Space service at NSIDC
+P6800,sequenced genome URL,sequenced and assembled genome for this taxon
+P6801,number of hospital beds,number of inpatient beds
+P6802,related image,"less fitting image, used only because a better alternative is not available. If an appropriate image of the item is available, use P18 instead. Value should not be a generic placeholder."
+P6803,taxon found at location,"plant or animals taxon described as present in location, not countries or first-level subnational entities. Requires reference. Ref should cover a limited number of taxa for specific location."
+P6804,Art Gallery of South Australia creator ID,identifier for artists in the Art Gallery of South Australia
+P6805,Art Gallery of South Australia work ID,identifier of a work in the collection of the Art Gallery of South Australia
+P6806,racing-reference race ID,"identifier of a motor race, in the racing-reference.info database"
+P6807,racing-reference track ID,"identifier of a motor racing track, in the racing-reference.info database"
+P6808,SportSport.ba player ID,property for various sportpersons bios and stats on sportsport.ba website
+P6809,Xikao History ID,"identifier for people, events and schools about the Chinese opera in the Xikao online dictionary"
+P6810,Xikao Repertoire ID,"identifier for people, events and schools about the Chinese opera in the Xikao online dictionary"
+P6811,Prazdne Domy architect ID,identifier of an architect in the Czech prazdnedomy.cz database
+P6812,AntWiki article ID,identifier for an article in AntWiki
+P6813,Mediapart tag ID,
+P6814,NWBib ID,Authority ID in the spatial classification of the North Rhine-Westphalian Bibliography (NWBib)
+P6815,University of Amsterdam Album Academicum ID,"identifier of professors and doctors of the University of Amsterdam and its predecessor, the Athenaeum Illustre, from 1632 up to now"
+P6816,The Dragon Archive ID,"ID for the videogames database ""The Dragon Archive"", for Dragon computers"
+P6817,SVT Play ID,"identifier for subjects in the archives of Svt, the Swedish national public television broadcaster"
+P6818,calendar feed URL,"calendar feed (iCal, ICS, etc.) of this object"
+P6819,calligrapher,calligrapher of a work
+P6820,Australian bank branch ID,unique identifier of a bank branch in Australia
+P6821,Uppsala University Alvin ID,"platform for digital collections and digitized cultural heritage in Uppsala about, managed by Uppsala university library"
+P6822,Tainacan MAI ID,"identifier for items in the collection of the Museu Arqueologia de Itaipu, Rio de Janeiro"
+P6823,GNU ELPA package ID,identifier for a software package in the GNU ELPA archive
+P6824,replacement property,"another property should be used, with or without the same value, while violating a constraint"
+P6825,RFGS person ID,identifier for a person at the Russian Federation of Alpine Skiing
+P6826,feed-in tariff,"monetary value in a given currency, where a renewable power station gets paid for the amount of power they generate"
+P6827,Igromania ID,identifier for a video game at the website Igromania.ru
+P6828,Czech parliament ID,identifier in the public database of the deputies of the Czech Parliament
+P6829,Dictionary of Irish Biography ID,identifier in the Dictionary of Irish Biography
+P6830,swMATH work ID,identifier of information service for mathematical software
+P6831,Pinakes author ID,identifier for an author in the Pinakes database
+P6832,IndicePA ID,identifier of public administrations in Italy
+P6833,title in HTML,"(qualifier) for title property (P1476), to write title with HTML markup, if the string can't render it normally. Allowed tags are: sup, sub, i"
+P6835,title in LaTeX,"(qualifier) for title property (P1476), to write title in LaTeX/math notation, if the string can't render it normally. Enclose normal text with ""\text{"" and ""}"""
+P6836,Pro-Football-Reference.com coach ID,identifier for American football coaches at Pro-Football-Reference.com
+P6837,Keybase username,username in the cryptographic social network Keybase
+P6838,Elhuyar Dictionary ID,"identifier for words in the Elhuyar Dictionary, a Basque multilingual dictionary (English, Spanish, French)"
+P6839,TV Tropes identifier,identifier in the TV Tropes online wiki
+P6840,student organization of,the members of this organization (club or society) are students of the target college or university
+P6841,ITF tournament ID,identifier for a tennis tournament edition in the International Tennis Federation database
+P6842,Campendium ID,identifier for a place on the Campendium website
+P6843,Malaysia company number,identifier for companies in Malaysia
+P6844,abART person ID,identifier of person in the Czech database abART
+P6845,abART document ID,identifier of document in Czech database abART
+P6846,abART exhibition ID,identifier of exhibition in Czech database abART
+P6847,abART group ID,identifier of group in Czech database abART
+P6848,abART institution ID,identifier of institution in Czech database abART
+P6849,DR topic ID,identifier for a topic for news on DR's website
+P6850,ABA League player ID,identifier for a player in the ABA League website
+P6851,Biographical Dictionary of Iowa ID,ID of entry in Biographical Dictionary of Iowa
+P6852,CCDC Number,identifier for a single crystal structure per the Cambridge Crystallographic Data Centre (CCDC)
+P6853,Coco Game List ID,identifier in the Coco Game List of Color Computer video games
+P6854,Dimensions grant ID,"identifier of a scientific/research grant in Digital Science Dimensions, as reflected in SpringerNature SciGraph"
+P6855,emergency services,emergencies treated by hospital or health care organization
+P6856,average speed,"average speed of a transport line, service or network, or of a vehicle when used on such a line, service or network"
+P6857,JIS standard,standard that was developed by the Japanese Industrial Standards
+P6858,Runionnais du monde ID,"identifier for a person on ""Runionnais du monde"", the online version of the biographical dictionary 1000 clbrits de la Runion"
+P6859,Corporate Number (South Korea),"identifier assigned to companies registered in South Korea by the Registration Office, the Court of South Korea"
+P6861,dbSNP Reference SNP number,identifier used in dbSNP to uniquely identify a genetic variant
+P6862,digilibLT author ID,identifier for an author in the digilibLT digital library
+P6863,Digital Prosopography of the Roman Republic ID,"identifier of an ancient Roman from the Roman Republic, an online prosopographical research"
+P6864,eBiodiversity ID,identifier for a species in the Estonian eBiodiversity portal
+P6865,eurobasket.com coach ID,identifier for a basketball coach at eurobasket.com
+P6866,euroleague.net coach ID,ID for a basketball coach at euroleague.net
+P6867,Gamepedia wiki ID,wiki name for this topic on Gamepedia
+P6868,Hoopla artist ID,identifier for an individual on Hoopla
+P6869,Hoopla publisher ID,identifier for a publisher on Hoopla
+P6870,Latvian National Encyclopedia Online ID,identifier for an article in the website of the Latvian National Encyclopedia
+P6871,ECI Lok Sabha constituency code,the identifier maintained by Election Commission of India for Lok Sabha constituencies
+P6872,has written for,publication an author has contributed to
+P6873,IntraText author ID,identifier for an author in the IntraText digital library
+P6874,Musixmatch artist ID,identifier for an artist on Musixmatch
+P6875,motif represents,"object or concept from which this motif is derived, or which it represents"
+P6876,solar irradiance,power per unit area received from the Sun in the form of electromagnetic radiation
+P6877,MAHG ID,identifier for items in the catalogue of the Muses d'Art et d'Histoire de Genve (MAHG)
+P6878,Amburger database ID,identifier for the Erik Amburger database of foreigners in pre-revolutionary Russia
+P6879,effective temperature,the temperature of a black body that would emit the same total amount of electromagnetic radiation as measured star or planet
+P6880,ATP tennis tournament edition ID,identifier for a particular year's event in the ATP database
+P6881,Rugby League Project ID (general),a general identifier for items other than players in the Rugby League Project database
+P6882,RIAA artist ID,identifier for an artist on RIAA music site
+P6883,LilyPond notation,musical notation in LilyPond syntax
+P6884,target muscle,muscle that is targeted in a physical exercise
+P6885,historical region,"geographic area which at some point in time had a cultural, ethnic, linguistic or political basis, regardless of present-day borders"
+P6886,writing language,language in which the writer has written their work
+P6887,match interval,the part of a sporting match when an event takes place
+P6888,MELPA package ID,identifier for a software package in the MELPA archive
+P6889,microarchitecture,processor microarchitecture
+P6890,Nchdb asset ID,identifier of a place or cultural practice in the database of the National cultural database management system of the Republic of China (Taiwan)
+P6891,National Film Board of Canada director identifier,director identifier used by the National Film Board of Canada website
+P6892,Fundamental.org Baptist Church ID,identifier for an independent Baptist church at Fundamental.org
+P6893,Offizielle Deutsche Charts artist ID (former scheme),identifier for an artist on Offizielle Deutsche Charts music site
+P6894,Beatport artist ID,identifier for an artist on Beatport.com music site
+P6895,Bangladesh administrative division code (2017-),"code used for an area for census calculations in Bangladesh, based on a scheme introduced in 2017"
+P6896,Djshop artist ID,identifier for an artist on Djshop music site
+P6897,literacy rate,percentage of the population that is not illiterate
+P6898,NeoGeoSoft ID,identifier in the NeoGeoSoft database of Neo Geo video games
+P6899,New York City Neighborhood Tabulation area ID,unique identifier of this neighborhood in NYC Department of City Planning public dataset with geographic shapes (NTA aka NYNTA)
+P6900,NicoNicoPedia ID,identifier for an article in NicoNicoPedia
+P6901,NooSFere edition ID,identifier for a edition in NooSFere Database
+P6902,era name,era name for rulers in East Asia
+P6903,ArtBrokerage artist ID,"identifier for an artist, on the ArtBrokerage website"
+P6904,ATRF ID,"identifier for a plant taxon, in the Australian Tropical Rainforest plants database"
+P6905,Bebo profile ID,identifier for an artist on Bebo site
+P6906,National Library of Aruba ID,ID used in the collection of the National Library of Aruba
+P6907,BVLarramendi ID,identifier for a person on the Polymath Virtual Library
+P6908,Cameo ID,identifier for people on Cameo
+P6909,Charts in France artist ID,identifier for an artist on Charts in France music site
+P6910,CIN ID,property for Bosnian-Herzegovinian politicians biographies and property status given by Centar za istra?iva?ko novinarstvo (CIN) website
+P6911,Dutch Charts artist ID,identifier for an artist on Dutch Charts music site
+P6912,Equipboard artist ID,identifier for an artist on Equipboard music site
+P6913,Facebook Gaming game ID,identifier for a video game on Facebook Gaming
+P6914,Gaana artist ID,identifier for an artist on Gaana music site
+P6915,Gambay ID,identifier for a language or place in the Gambay First Languages of Australia map
+P6916,Heritage Gazetteer of Cyprus,identifier for sites in the Heritage Gazetteer of Cyprus
+P6917,Historical Archives of the European Union ID,"identifier for a person or an institution that have created, preserved and used the groups of records that constitute the fonds at the Historical Archives of the European Union"
+P6918,hitparade.ch artist ID,identifier for an artist on hitparade.ch music site
+P6919,Indian gallantry awardee ID,recipients of Indian gallantry awards
+P6920,Juno Download artist ID,identifier for an artist on Juno Download music site
+P6921,MangaSeek person ID,identifier for a mangaka on the MangaSeek website
+P6922,Metro topic ID,identifier for an topic on Metro site
+P6923,Moov artist ID,identifier for an artist on Moov music site
+P6924,Murfie artist ID,identifier for an artist on Murfie music site
+P6925,Musicalics composer ID,identifier for a composer in the Musicalics database
+P6926,Nederlandse Top 40 artist ID,identifier for an artist on Nederlandse Top 40 music site
+P6927,NME artist ID,identifier for an artist on NME site
+P6928,PCE Daisakusen ID,identifier in the PCE Daisakusen database of PC-Engine video games
+P6929,CUT code,"identifier for regions, provinces, and municipalities in Chile as defined by Ministerio de Bienes Nacionales"
+P6930,Pro Football Hall of Fame ID,identifier of a person in the Pro Football Hall of Fame
+P6931,Repology project name,package name and identifier in Repology
+P6932,RogerEbert.com film ID,identifier for a film in the website RogerEbert.com
+P6933,SA Flora ID,"identifier for a plant taxon, in the Australian 'South Australian electronic Flora' database"
+P6934,Syriac Biographical Dictionary ID,"identifier of a person in the Syriac Biographical Dictionary, an online research tool"
+P6935,The DJ List artist ID,identifier for an artist on The DJ List music site
+P6936,Who's Who of American Comic Books ID,identifier for creators and publishers in the Who's Who of American Comic Books
+P6937,SNBP ID,identifier of the Brazilian Sistema Nacional de Bibliotecas Pblicas
+P6938,seconded by,a person who seconds a motion as parliamentary procedure
+P6939,moved by,a person who moves a motion as parliamentary procedure
+P6940,FPBR person ID,identifier for a person at the Russian Professional Boxing Federation
+P6941,PHI Latin Texts author ID,identifier for an author in the PHI Latin Texts digital library
+P6942,animator,person creating animated sequences out of still images
+P6943,VG-lista artist ID,identifier for an artist on VG-lista music site
+P6944,Bionomia ID,"identifier for a collector and/or determiner of natural history specimens, in the Bionomia database"
+P6945,Steam profile ID,identifier for this entity on the Steam digital distribution platform
+P6946,Find & Connect ID,"identifier in the Find & Connect website by the Australian Government about orphanages, children's Homes, and other institutions"
+P6947,Goodreads series ID,identifier of a book series in the Goodreads website
+P6948,video system,video system hardware that the item uses
+P6949,announcement date,"time of the first public presentation of a subject by the creator, of information by the media"
+P6950,Scandipop topic ID,identifier for an topic on Scandipop site
+P6953,2014 Commonwealth Games athlete ID,identifier for an athlete who participated at 2014 Commonwealth Games
+P6954,online access status,property or qualifier for an ID property indicating whether linked content is directly readable online
+P6955,El portal de Msica artist ID,identifier for an artist on El portal de Msica music site
+P6956,Balochistan EMIS code,identifier for a school (usually government-affiliated) in the province of Balochistan
+P6957,Khyber Pakhtunkhwa EMIS code,identifier for a school (usually government-affiliated) in the province of Khyber Pakhtunkhwa
+P6958,Punjab EMIS code,identifier for a school (usually government-affiliated) in the province of Punjab in Pakistan
+P6959,Sindh EMIS code,identifier for a school (usually government-affiliated) in the province of Sindh
+P6960,IMVDb artist ID,artist identifier for the IMVDb music video database
+P6962,narrative motif,"thematic unit in a narrative or literary work used to develop a theme, mood or plot"
+P6963,BaFin Institute ID,identifier for an institute in the BaFin company database
+P6964,Musiikkituottajat artist ID (certification),identifier for an artist on Musiikkituottajat music site
+P6965,IFPI Austria artist ID,identifier for an artist on IFPI Austria music site
+P6966,IFPI Danmark artist ID,identifier for an artist on IFPI Danmark music site
+P6967,SNEP artist ID,identifier for an artist on SNEP music site
+P6968,hitparade.ch artist (certification) ID,identifier for an artist on hitparade.ch music site
+P6969,BVMI artist ID,identifier for an artist on BVMI music site
+P6970,Music Canada artist ID,identifier for an artist on Music Canada music site
+P6971,IFPI Norge artist ID,identifier for an artist on IFPI Norge music site
+P6972,Napster artist ID (U.S. version),identifier for an artist in the U.S. version of Napster Music
+P6973,Personnel de l'administration prfectorale ID,identifier for an official on the online version of Le Personnel de l'administration prfectorale (1881-1926)
+P6975,RBF professional boxer ID,identifier for an professional boxer at the Boxing Federation of Russia
+P6976,Retrosheet person ID,"identifier for a Major League Baseball player, coach, manager or umpire in retrosheet.org"
+P6977,review of,this property connects a review to the work it reviews
+P6978,Scandinavian middle family name,"middle name of some people from Denmark or Norway where a family name, usually the mother's, is taken on as a ""middle name"". For given names based on family names, use ""given name"" (P735). For Spanish names, use P734/P1950."
+P6979,SLNSW unpublished item ID,
+P6980,LB.ua dossier ID,ID in series of dossier on the company and people by LB.ua
+P6981,ACNP journal ID,"identifier of a journal in ACNP, the Italian catalog of periodicals"
+P6982,Australian Faunal Directory publication ID,identifier of a publication in Australian Faunal Directory (Australian Biological Resources Study) of the Australian Government's Department of Environment and Energy
+P6983,Sverigetopplistan artist ID,identifier for an artist on Sverigetopplistan music site
+P6984,Rupa Publications author ID,external identifier for authors whose books were published by Rupa Publications
+P6985,OYO hotel ID,external identifiers for OYO hotels
+P6987,Hungarian National Namespace place ID,identifier for a place in the Hungarian National Namespace
+P6988,Hungarian National Namespace person ID,identifier for a person in the Hungarian National Namespace
+P6989,Hungarian National Namespace organisation ID,identifier for an organisation in the Hungarian National Namespace
+P6992,IMFDB ID,identifier for the Internet Movie Firearms Database
+P6993,Pro Kabaddi League player ID,external identifiers for players participating in Pro Kabaddi League
+P6994,RBF amateur boxer ID,identifier for an amateur boxer at the Boxing Federation of Russia
+P6995,National Transportation Safety Board report ID,identifier for a report about a transport accident from the National Transportation Safety Board
+P6996,Epitafier.se ID,identifier for an inscribed tablet about a dead person in a Swedish church from the website epitafier.se
+P6997,magazine in BitArkivo.org,unique ID for the magazine on the website BitArkivo
+P6998,iTunes movie collection ID,identifier for a movie collection in the iTunes Store
+P6999,Musisque Deoque author ID,identifier for an author in the Musisque Deoque digital library
+P7000,DigitalNZ ID,"identifier on the Digitalnz.org website for videos, newspapers, maps, photographs, audio, artworks, and news reports that have been digitised in New Zealand"
+P7001,PharmGKB ID,unique identifier for an entity in the PharmGKB knowledgebase
+P7002,Handball123 player ID,alphabetical identifier for an handball player at Handball123.com
+P7003,ACMI web ID,identifier for an object in the Australian Centre for the Moving Image
+P7004,AtlasFor ID,identifier of a location or an architectural structure in the Atlas Landscapefor (Italian database of cultural heritage)
+P7005,Adventure Gamers video game ID,identifier in the Adventure Gamers database of adventure video games
+P7006,BIC of the Canary Islands ID,identifier of a cultural property in the catalog of the Government of the Canary Islands
+P7007,Wolfram Language unit code,input form for a unit of measurement in the Wolfram Language
+P7008,unabbreviated text,(qualifier) text in inscription with the abbreviations expanded in a fairly reliable way
+P7009,extracted from,source this image was cropped from. Use on Wikimedia Commons only.
+P7010,imprimatur granted by,person or organization authorizing publication of the book
+P7011,Russian organisation number,identifier in the Uniform State Register of Legal Entities (USRLE) of the Russian Federation
+P7012,World Encyclopedia of Puppetry Arts ID,identifier for the online encyclopedia kept by the Union International de la Marionette
+P7013,Anime Characters Database character ID,identifier of a character in the Anime Characters Database
+P7014,terms of service URL,URL linking to terms of service of the subject
+P7015,surface gravity,gravitational acceleration experienced at the equator of an astronomical body surface
+P7017,Anime Characters Database anime ID,identifier of an anime in the Anime Characters Database
+P7018,lexeme,(qualifier) lexeme version of monolingual text (linked to specific sense)
+P7019,ANZCTR ID,identifier of a clinical trial in the Australian New Zealand Clinical Trials Registry
+P7020,Arachne collection ID,identifier for a collection in the Arachne database
+P7021,Arachne object ID,"identifier for an object in the Arachne database, version 3"
+P7022,Australian Suppliers Directory ID,identifier for a company in the Australian Suppliers Directory
+P7023,Biyografya ID,identifier for a person in the Internet Encyclopedia of Turkey's Famous People
+P7024,Flemish Public Libraries ID,authority control identifier of the Flemish Public Libraries
+P7025,HCIS ID,identifier for a chemical in the Hazardous Chemical Information System by Safe Work Australia
+P7026,Lebanese National Library ID,authority control identifier of the Lebanese National Library
+P7027,MPG ID,identifier for an expert researcher or an institution in the database of the Max-Planck-Gesellschaft
+P7028,National Library of Luxembourg ID,identifier for authority control managed by the National Library of Luxembourg
+P7029,National Library of Russia ID,"identifier for authority control used by the National Library of Russia, Saint-Petersburg"
+P7030,National Pollutant Inventory ID,jurisdiction identifier for facilities in the National Pollutant Inventory of Australia
+P7031,Penguin India author ID,external identifier for authors whose books were published by Penguin India publishing house
+P7032,Repertorium van ambtsdragers en ambtenaren ID,identifier for people on a web site with high level Dutch civil servants between 1428 and 1861
+P7033,Australian Educational Vocabulary ID,ID for curriculum term in one of the controlled vocabularies at Australian education vocabularies
+P7034,Syriaca work ID,identifier of a work on Syriaca.org
+P7035,TuttoCalciatori.net coach ID,identifier of a football coach in the website TuttoCalciatori.net
+P7036,TuttoCalciatori.net player ID,identifier of a footballer in the website TuttoCalciatori.net
+P7037,COURAGE ID,"COURAGE (ÒCultural Opposition Ð Understanding the CultuRal HeritAGE of Dissent in the Former Socialist CountriesÓ) is a three-year international research project funded by Horizon 2020, the EU Framework Programme for Research and Innovation"
+P7038,Documenta Catholica Omnia author ID,identifier for an author in Documenta Catholica Omnia digital library
+P7039,National Library of Iceland ID,identifier for authority control managed by the National Library of Iceland
+P7040,NosDputs.fr identifiant,identifier for a french deputies in NosDputs.fr
+P7041,Perseus author ID,identifier for an author in the Perseus digital library of ancient texts
+P7042,The Latin Library author ID,identifier for an author in The Latin Library digital library
+P7043,TheTVDB episode ID,identifier for an episode of a television series in TheTVDB
+P7044,Colonial Frontier Massacres ID,identifier for a massacre in the database of Colonial Frontier Massacres in Central and Eastern Australia 1788-1930
+P7045,chassis,"chassis type for cars, buses, trucks, etc"
+P7046,HOV-ID,identifier for a place in the Historical Gazetteer of Saxony
+P7047,enemy of,opponent character or group of this fictive character or group
+P7048,PBS Drug Code,unique identifier for a drug listed in the Australian Pharmaceutical Benefits Scheme
+P7049,AICS Chemical ID (BEING DELETED),unique identifier of a chemical in the Australian Inventory of Chemical Substances
+P7050,Album of the Year artist ID,identifier for an artist on the Album of the Year (AOTY) website
+P7051,Atlas of Living Australia ID,identifier for a taxon in the Atlas of Living Australia
+P7052,Jaxsta profile ID,identifier for an artist or organization on the Jaxsta website
+P7053,Indian Super League player ID,external Identifiers for players participating in Indian Super League
+P7054,misas.org Catholic church ID,identifier of a catholic church at misas.org
+P7055,Jaxsta release ID,identifier for a release on the Jaxsta website
+P7056,Jaxsta recording ID,identifier for a recording on the Jaxsta website
+P7057,FEC Campaign Committee ID,ID for a campaign committee in the United States
+P7058,BNRM ID,identifier for the National Library of the Kingdom of Morocco
+P7059,Premier Badminton League player ID,external identifiers for players participating in Premier Badminton League (India)
+P7060,NosSnateurs.fr identifier,identifier for french deputies in NosSnateurs.fr
+P7063,U. S. Supreme Court docket number,identifier for a case filed at the Supreme Court of the United States
+P7064,PBS Manufacturer ID,unique identifier for a pharmaceutical manufacturer listed in the Australian Pharmaceutical Benefits Scheme
+P7065,Kerala state school code,identifier for a school situated in Kerala
+P7066,Taxonomicon ID,identifier of a taxon at Taxonomicon website
+P7067,Album of the Year album ID,identifier for an album or other release on the Album of the Year (AOTY) website
+P7068,Gotlands museum,ID for persons or places connected to objects at Gotlands museums web a local museum in Sweden
+P7069,IAAF competition category,competition quality ranking assigned by the International Association of Athletics Federations used for comparison and future Olympic qualification
+P7070,Musixmatch writer ID,identifier for writers/authors in Musixmatch database
+P7071,Qobuz artist ID,identifier for an artist on Qobuz music site
+P7072,wiki on WikiApiary,entry of a MediaWiki site in WikiApiary
+P7073,extension on WikiApiary,entry of a MediaWiki extension in WikiApiary
+P7074,skin on WikiApiary,entry of a MediaWiki skin in WikiApiary
+P7075,mod of,video game this mod is based on
+P7076,Zaragoza public art ID,ID of public art catalogued in zaragoza.es
+P7077,Paris Foreign Missions Society ID,identifier of a missionary on the site of the archives of the Foreign Missions of Paris
+P7078,typing discipline,"specifies the typing discipline implemented, used, or mandated in a programming language"
+P7079,shrinkage,"reduction in the size of something, or the process of becoming smaller, typically when a material return to room temperature after heating"
+P7080,specific absorption rate,"measure of the maximum energy absorbed by a unit of mass of exposed tissue of a person using a mobile phone, over a given time or more simply the power absorbed per unit mass"
+P7081,quotation or excerpt,quotation or excerpt from this work. No quotation marks needed
+P7083,surface roughness,component of surface texture quantified by the deviations in the direction of the normal vector of a real surface from its ideal form
+P7084,related category,Wikimedia category is related to this item
+P7085,TikTok username,this item's username on TikTok; do not include the Ò@Ó symbol
+P7086,start grade,lowest educational year (aka grade) taught by this institution
+P7087,inverse label item,item with label/aliases of the inverse relationship of a property
+P7089,AFCD PFKID,unique identifier for a food type in the Australian Food Composition Database
+P7090,Australian Marine Algal Name Index ID,identifier of a name in the Australian Marine Algal Name Index
+P7091,Common Sense Media ID,identifier for a website or work of fiction on Common Sense Media
+P7092,Russian Fencing Federation fencer ID,Russian Fencing Federation identifier
+P7093,ABBBS Taxon ID,unique identifier of a taxon listed in the Australian Bird and Bat Banding Scheme Database
+P7094,WaterNSW Rivers and Streams Site No.,site number of a river or stream in the real time water data published by WaterNSW
+P7095,end grade,highest educational year (aka grade) taught by this institution
+P7100,Lens ID,"identifier for documents in the Lens.org catalog (patents, articles)"
+P7101,privacy policy URL,privacy policy of subject
+P7102,Grand Canyon Trust ID,identifier for a place on the Grand Canyon Trust website
+P7103,start of covered period,"start of period covered by an archive set, a historical book, or a collection"
+P7104,end of covered period,"end of period covered by an archive set, a historical book, or a collection"
+P7105,LezWatch.TV actor ID,IDs for actors listed in the LezWatch.TV actor database
+P7106,LezWatch.TV character ID,IDs for characters listed in the LezWatch.TV character database
+P7107,LezWatch.TV show ID,ID for shows listed in LezWatch.TV show database
+P7108,location of the point of view,"geographic location of point of view, may or may not be depicted"
+P7109,Acharts.co artist ID,identifier for a musical artist on Acharts.co
+P7110,Textile Connect publication ID,"identifier for a scholarly, scientific, or trade publication in the Textile Connect Database"
+P7111,08euro.Ru person ID,identifier for a participants of UEFA Euro 2008 at 08euro.Ru site
+P7112,CUP2002.RU person ID,identifier for a participants of 2002 FIFA World Cup at CUP2002.RU site
+P7113,Euro04.Ru person ID,identifier for a participants of UEFA Euro 2004 at Euro04.Ru site
+P7114,Gazeta.Ru Euro 2012 person ID,identifier for a participants of UEFA Euro 2012 at Gazeta.Ru Euro 2012 site
+P7115,WorldCup10.Ru person ID,identifier for a participants of 2010 FIFA World Cup at WorldCup10.Ru site
+P7116,Hiking Project trail ID,identifier for a trail on the Hiking Project website
+P7117,Media Arts Database console games ID (former scheme),"identifier for a console game in the Media Art database created by the Japanese government department Bunkacho (former scheme, use P7886 for new identifier with 'C/M' prefix)"
+P7118,AMPAS collections film ID,identifier for a film in Academy of Motion Picture Arts and Sciences (AMPAS) collections catalog
+P7119,AMPAS collections person ID,identifier for a person or organization represented in the Academy of Motion Picture Arts and Sciences (AMPAS) collections catalog
+P7120,Douyin ID,username on Douyin
+P7121,"School code of the Ministry of Education, Taiwan","identified codes for the all level of schools in Taiwan ruled by Ministry of Education, Taiwan"
+P7122,opinion joined by,who joins a judicial opinion
+P7124,date of the first one,qualifier: when the first element of a quantity appeared/took place
+P7125,date of the latest one,qualifier: when the latest element of a quantity appeared/took place
+P7126,Mac OS type code,code used formerly by Mac OS to identify file types and programs
+P7127,AllTrails trail ID,identifier for a trail on the AllTrails website
+P7128,Archives Directory for the History of Collecting in America ID,identifier from the Archives Directory for the History of Collecting in America
+P7129,PEPC park ID,"identifier for a protected area on the Planning, Environment and Public Comment website of the National Park Service"
+P7130,Vidwan ID,external identifier to describe profiles of Indian academicians and scientists maintained in the database Vidwan
+P7131,Bureau des longitudes ID,identifier for a member of the 'Bureau des longitudes' between 1795 and 1932
+P7132,ComingSoon.it film ID,identifier for a film in the website ComingSoon.it
+P7133,Cleartrip hotel ID,external identifiers for Cleartrip hotels
+P7134,Mojarto artist ID,external identifiers for artists whose arts are sold through Mojarto
+P7135,Rijksmonument complex ID,identifier for a monument complex assigned by the Rijksdienst voor het Cultureel Erfgoed
+P7136,Goibibo Hotel ID,external identifiers for Goibibo hotels
+P7137,acknowledged,persons or institutions acknowledged on a creative work
+P7138,Acharts.co chart ID,identifier for a record chart on Acharts.co
+P7139,ONF forest national ID,unique identifier of a forest by the Office national des forts (French governmental agency)
+P7140,Mnchen Wiki article ID,identifier for articles at muenchenwiki.de
+P7141,measure number,musical bars in a published musical work
+P7142,Poincar Papers person ID,"identifier for a correspondent of Henri Poincar, or for a person cited on his letters"
+P7143,Acharts.co album ID,identifier for an album on the Acharts.co music site
+P7144,NOTAM (FAA),reference of a Notice to Airmen (NOTAM) issued by the FAA in the United States
+P7145,CHESNO politician ID,identifier for politician on CHESNO site
+P7146,Rollerstory.net skater ID,inline speed skater-database
+P7148,Nauka Ukrainy scientist ID,identifier for scientist on Nauka Ukrainy site
+P7149,OhRanger.com ID,identifier for a place on the OhRanger.com website
+P7150,epigraph,short quotation introducing a literary work
+P7151,Wynk artist ID,identifier for an artist on Wynk music website
+P7152,copyright exemption,copyright exemption this file is covered by
+P7153,significant place,significant or notable places associated with the subject
+P7154,Empik author ID,identifier for an author on Empik site
+P7155,WP Muzyka artist ID,identifier for an artist on WP Muzyka site
+P7156,Interia Muzyka artist ID,identifier for an artist on Interia Muzyka site
+P7157,The Top Tens ID,item's ID on The Top Tens website
+P7159,Plus Music artist ID,identifier for an artist on Plus Music site
+P7160,manner of inhumane treatment,"manner of torture and other cruel, inhumane or degrading treatment or punishments as covered by the UN Convention experienced by the subject"
+P7161,KinskyÐHalm Catalogue,"number in the KinskyÐHalm Catalogue of the works of Ludwig van Beethoven, which do not have opus numbers, or are fragmentary"
+P7162,cases consolidated,what other cases this case consolidated
+P7163,typically sells,type of goods particular type of shops typically sell
+P7164,Raptekster.dk ID,"identifier for a Danish hip hop performer, group or song on Raptekster.dk"
+P7165,noun class,"noun class of the lexeme, use ""grammatical gender"" (P5185) where applicable"
+P7166,Acharts.co song ID,"identifier for a composition, track or single on the Acharts.co music site"
+P7167,does not have effect,expected effect or usual effect of members of this class absent here
+P7168,FGrHist ID,identifier for an ancient Greek historian in Die Fragmente der griechischen Historiker by Felix Jacoby
+P7169,substitute director/manager,substitute of the director/manager of an organization
+P7170,register of real estate NKP,"identifier of this item in the Nrodn kultrna pamiatka Register (NKP, National cultural monument)"
+P7171,Hacker News username,unique identifier of a user account on the Hacker News social media website
+P7172,shmup.com ID,identifier in the shmup.com database of shoot them up video games
+P7173,TA2 ID,Terminologia Anatomica second edition (2019) identifier. Unique identifier for human anatomical terminology.
+P7174,school class,(qualifier) class of a given year/time period to which the person belonged in an educational institution
+P7175,Gaana.com album ID,identifier for an album or single on Gaana.com
+P7176,XING profile ID,identifier for the social media website XING
+P7177,Cinestaan film ID,external identifier for Indian movies
+P7178,Cinestaan person ID,external identifier for people related to Indian movies
+P7179,Service d'Information sur les Etudes et les Professions Job ID,job entry in official website Service d'Information sur les Etudes et les Professions
+P7180,Planespotters.net aircraft ID,identifier for an aircraft on the Planespotters.net website
+P7181,PLIA ID,identifier for a place on the Public Lands Interpretive Association website
+P7182,IBP 4-letter bird species alpha code,Standardized four-letter alphabetic code for bird species by the Institute for Bird Populations
+P7183,EPW author ID,identifier for authors whose articles are published in Economic and Political Weekly
+P7184,Awards & Winners artist ID,identifier for an artist on Awards & Winners site
+P7185,eska.pl topic ID,identifier for an topic on eska.pl site
+P7186,Image-Line artist ID,identifier for an artist on Image-Line site
+P7187,Jango artist ID,identifier for an artist on Jango site
+P7188,LiveXLive artist ID,identifier for an artist on LiveXLive site
+P7189,Mora Artist ID,identifier for an artist on mora site
+P7190,RMF FM artist ID,identifier for an artist on RMF FM site
+P7191,Supraphonline artist ID,identifier for an artist on Supraphonline site
+P7192,TuneIn artist ID,identifier for an artist on TuneIn site
+P7193,YesAsia author ID,identifier for an author on YesAsia site
+P7194,AZLyrics.com artist ID,identifier for an artist on AZLyrics.com site
+P7195,Bandsintown artist ID,Identifier for an artist on Bandsintown site
+P7196,musica.com artist ID,identifier for an artist on musica.com site
+P7197,OpenWeatherMap city ID,identifier for a location on OpenWeatherMap (not exclusively cities)
+P7198,RauteMusik artist ID,identifier for an artist on RauteMusik site
+P7199,Scribd publication ID,external identifier for a publication in the Scribd library
+P7200,SongMeanings artist ID,identifier for an artist on SongMeanings site
+P7201,SoundHound artist ID,identifier for an artist on SoundHound site
+P7202,Belgian Species List ID,identifier for a taxon in the Belgian Species List
+P7203,Dizionario biografico dei Friulani ID,identifier for a person in the Dizionario biografico dei Friulani
+P7204,Mafab.hu film ID,film ID in the Mafab.hu movie database
+P7205,jog.fm artist ID,identifier for an artist on jog.fm site
+P7206,Lyrics007 artist ID,identifier for an artist on Lyrics007 site
+P7207,Moly.hu book ID,book identifier in the Hungarian social cataloging website Moly.hu
+P7208,Liber Liber author ID,identifier for an author on the website Liber Liber
+P7209,ordeal by,manner of judicial practice by which the guilt or innocence of the accused was determined
+P7210,GreatSong artist ID,identifier for an artist on GreatSong site
+P7211,Line Blog user ID,user ID on LINE BLOG
+P7212,LyricsTranslate ID,identifier on LyricsTranslate
+P7213,newspaper archive URL,online repository of newspaper
+P7214,Allcinema person ID,identifier of person on Allcinema database
+P7215,Eiga.com person ID,identifier of person on Eiga.com database
+P7216,MTV Polska artist ID,identifier for an artist on MTV Polska site
+P7217,MTV UK artist ID,identifier for an artist on MTV UK site
+P7218,Vox FM artist ID,identifier for an artist on Vox FM site
+P7219,periphrastic definition,"concept used as subject to form a periphrastic definition together with a related lexeme as qualifier (such as ""manner"" to define ""slowly"" with the qualifier ""slow"")"
+P7220,lexeme for periphrastic definition,"sense of a related lexeme used in periphrastic definition (such ""slow"" to define ""slowly"")"
+P7221,link for periphrastic definition,optional qualifier to define the link between the concept and the lexeme
+P7222,Eiga.com movie ID,identifier of movie on Eiga.com database
+P7223,Transfermarkt team ID,identifier for an association football (soccer) team in the transfermarkt.com database
+P7224,Insects (Insecta) of the World ID,identifier for a taxon in the Insects (Insecta) of the World database
+P7225,BEACON ID,identifier for a beach of the United States on the Beach Advisory and Closing On-line Notification website
+P7226,RPGGeek ID,"ID for a tabletop role-playing games, designer or publisher or a family of TTRPG at RPGGeek"
+P7227,DIBAVOD ID,"ID of water objects (rivers, ponds, lakes, ...) of the Czech republic referenced in DIgitln Bçze VOdohospod?sk?ch Dat (DIBAVOD) of VòV TGM"
+P7228,access restriction status,"status of any access restrictions on the object, collection, or materials. Indicates whether the material is available to the general public or not."
+P7229,Fundacin Goya en Aragn ID,identifier for an artwork by Francisco Goya on the Fundacin Goya en Aragn website
+P7230,AccuRadio artist ID,identifier for an artist on AccuRadio site
+P7231,eStudnky ID,"identifier in the eSTUDçNKY database, which covers water sources and water wells in the Czech Republic"
+P7232,LongSwimsDB swimmer ID,identifier for a swimmer in the LongSwimsDB database
+P7233,Washington Trails Association Hiking Guide ID,identifier for a Washington state trail on the Washington Trails Association website
+P7234,Scribd item ID,"external identifier for a book, audio book, document, magazine issue or article in the Scribd library"
+P7235,in defining formula,any symbol used in the defining formula (P2534)
+P7236,Dove.org work ID,"identifier for a movie, book, television show or album on Dove.org"
+P7237,China Engineering Expert Tank ID,"ID of a person in Chinese Engineering Expert Tank, a database of Chinese researchers in science and engineering fields"
+P7238,Open Science Framework ID,ID in osf.io
+P7241,SCTrails trail ID,identifier for a trail on the South Carolina Trails website
+P7242,Laws & Regulations Database of the Republic of China ID,the website URL code for the Laws & Regulations Database of the Republic of China
+P7243,pronunciation,"lexeme form pronunciation, usually identical to the form's representation, but may include other indicators (pronunciation audio/IPA text may be attached as qualifiers, and duplicate values are OK if more than one pronunciation exists)"
+P7250,mobile formatter URL,"web page URL of mobile version; URI template from which ""$1"" can be automatically replaced with the effective property value on items"
+P7251,Identification code for Japanese universities and colleges,Identification code for universities and colleges in Japan. This code is defined in Japanese Industrial Standards.
+P7252,degree of difficulty,difficulty level of an item
+P7253,color produced,"color or color range produced by a dye, alone or with a mordant"
+P7254,Pilze Deutschland ID,identifier for a taxon in the database of German Mycological Society (voluntary association - DGfM)
+P7255,Moose Deutschland ID,identifier for a taxon in the Moose Deutschland database
+P7256,computer performance,performance of a computer in FLOPS
+P7257,Guia dos Quadrinhos artist ID,identifier for a comic book artist
+P7258,Toons Mag ID,"official identifier for a cartoonist, caricaturist, illustrator, and author in Toons Mag"
+P7259,Newspapers.com paper ID,identifier for a newspaper on the Newspapers.com website
+P7260,Transporter Classification Database ID,classifies transport proteins similar to how EC classifies enzymes
+P7261,use restriction status,"status of any use restrictions on the object, collection, or materials"
+P7262,ESPN.com college football player ID,identifier for a college football player at ESPN.com
+P7263,Prime Pages ID,an ID for some (usually) large prime in Prime Pages
+P7264,FCC Grantee Code,unique identifier of a grantee assigned by the Federal Communications Commission of the United States
+P7265,FNL player ID,identifier for a player at the 1fnl.ru
+P7266,Guia dos Quadrinhos comic ID (Brazilian),identifier for a Brazilian comic book or graphic novel
+P7267,Guia dos Quadrinhos publishing house ID (Brazilian),identifier for a Brazilian comic book publishing house
+P7268,Guia dos Quadrinhos character ID,identifier for a comic book character
+P7269,Guia dos Quadrinhos comic ID,identifier for a non-Brazilian comic book or graphic novel that was published in Brazil
+P7270,Guia dos Quadrinhos publishing house ID,identifier for a non-Brazilian comic book publishing house that has its comics published in Brazil
+P7271,Hiking Project area ID,identifier for an area on the Hiking Project website
+P7272,Hiking Project site ID,identifier for a remarkable site (a 'gem') on the Hiking Project website
+P7273,National Equipment Registration System Supplier Number,unique identifier for an organisation supplying electrical equipment listed in the Australian National Equipment Registration System
+P7274,Naver VIBE album ID,identifier for an album on Naver VIBE site
+P7275,Naver VIBE artist ID,identifier for artist on Naver VIBE site
+P7276,New Encyclopedic Dictionary of Czech ID,identifier for an entry in the online release of the New Encyclopedic Dictionary of Czech
+P7277,Pandora artist ID,identifier for an artist on Pandora music site
+P7278,Peakbagger climber ID,"identifier for a climber, on the peakbagger.com website"
+P7279,Peakbagger key col ID,"identifier for a key col, on the peakbagger.com website"
+P7280,PlaymakerStats.com team ID,identifier for a association football (soccer) team at PlaymakerStats.com (formerly TheFinalBall.com)
+P7281,Radio Equipment List Certification Number,"unique identifier of an electronic device certification registered with Innovation, Science and Economic Development Canada"
+P7282,Slovo i Dilo person ID,identifier for person on Slovo i Dilo site
+P7283,Spectrum Management System Company Number,"unique identifier of a company registered with Innovation, Science and Economic Development Canada's Spectrum Management System database"
+P7284,The Independent topic ID,identifier for an topic on The Independent site
+P7285,Writers Guild of America project ID,identifier for a film or television project in the Writers Guild of America's Find a Writer database
+P7286,Writers Guild of America writer ID,identifier for a writer in the Writers Guild of America's Find a Writer database
+P7287,WorldFootball.net team ID,identifier for a association football (soccer) team in the WorldFootball.net database
+P7288,Bursa Malaysia stock code,stock code on Bursa Malaysia
+P7289,CPUID,x86/x86-64 processor type information returned by the CPUID instruction into the EAX register
+P7290,FCC Product Code,identifier of a product assigned by the grantee in an application to the Federal Communications Commission of the United States
+P7291,L-number,semi-scientific classification system for catfish from the Loricariidae family
+P7292,Arnet Miner publication ID,ID of a publication in Arnet Miner
+P7293,PLWABN ID,"National Library of Poland record no. identifier. Format: ""98"", followed by 10 digits, then ending with ""5606"""
+P7294,itch.io URL,URL of a project hosted on itch.io
+P7295,Gregorian calendar start date,date the Gregorian calendar was first used
+P7296,Lower Austrian Museum ID,identifier to link with the Lower Austrian database of museums
+P7297,cumulative elevation gain,"measure of the difference in height between two points on the terrain, when following a track"
+P7298,Auckland Museum ID,"identifier assigned to a person by the Auckland War Memorial Museum, New Zealand"
+P7299,MUBI film ID,identifier for a film at MUBI
+P7300,MUBI person ID,identifier for a person at MUBI
+P7301,Al-Jazeera topic ID,identifier for a topic at Al-Jazeera.com's website
+P7302,Digital Giza ID,identifier of a Pyramid or other funeral site on EgyptÕs Giza Plateau in the American Database Digital Giza
+P7303,Grammy Awards artist ID,identifier for an artist on the Grammy Awards website
+P7304,Highland Historic Environment Record ID,ID for a heritage feature in the Highland Historic Environment Record website and database
+P7305,Online PWN Encyclopedia ID,identifier for an entry in the online release of the Online PWN Encyclopedia
+P7306,Downdetector ID,identifier for a webpage on the Downdetector website
+P7307,TOP500 System ID,unique identifier of a supercomputer in the TOP500 performance list
+P7308,National Wildlife Refuge Trails ID,identifier for a refuge or one of its trails on the United States National Wildlife Refuge Trails website
+P7309,climbing route,route used to get closer to a high point
+P7310,Maine Trail Finder ID,identifier for a trail on the Maine Trail Finder website
+P7311,Aozora Bunko author ID,identifier of a list page of works by author on Aozora Bunko
+P7312,Aozora Bunko work ID,identifier of an introduction page of work on Aozora Bunko
+P7313,Rate Your Music label ID,identifier for a record label at Rate Your Music
+P7314,TDV ?slam Ansiklopedisi ID,identifier for the Islamic Encyclopedia created by the Turkish religion authority Diyanet
+P7315,IP Code,"identifier which classifies and rates the degree of protection provided by mechanical casings and electrical enclosures against intrusion, dust, accidental contact, and water"
+P7316,number of decimal digits,number of decimal digits of a natural number
+P7317,iHeartRadio artist ID,identifier for musical artists at iHeart
+P7318,Behind The Voice Actors short ID,identifier of a short on the website Behind The Voice Actors
+P7319,ExplorePaTrails ID,identifier for a trail on the Explore Pennsylvania Trails website
+P7320,Labelcode,record label identifier code issued by Gesellschaft zur Verwertung von Leistungsschutzrechten (GVL)
+P7321,Trail Finder ID,identifier for a New Hampshire or Vermont trail on the Trail Finder website
+P7323,Archnet site ID,"site ID of archnet.org related to architecture, urban issues, landscape design, visual culture and conservation issues"
+P7324,iHeartRadio podcast ID,identifier for podcasts on iHeartRadio
+P7325,DANE code,identification code for Colombian municipalities according to the Departamento Administrativo Nacional de Estadstica (DANE)
+P7326,MobyGames genre ID,identifier of a video game genre in the MobyGames database
+P7327,OFLC classification,rating in the media content rating system of New Zealand
+P7328,amount cataloged,amount or size of the collection that has been described or cataloged
+P7329,ID (MMS),identifier in ICD terminology of diseases - Version 11 (Mortality and Morbidity Statistics) linearization (not the foundation ID)
+P7330,Hardware Version Identification Number,"identifier of an electronic device model as registered in the Radio Equipment List of Innovation, Science and Economic Development Canada"
+P7331,Letteraturaitaliana.net author ID,identifier for an author of Italian literature on the website Letteraturaitaliana.net
+P7332,NMM artist ID,authority control for artists' collections at the National Maritime Museum website
+P7333,Pathway Ontology ID,identifier in the Pathway Ontology database
+P7334,Vudu video ID,"identifier for a film, television episode, or television series season at Vudu.com"
+P7335,Mixer game ID (former scheme),identifier for a video game on the Mixer live streaming video platform
+P7336,GCF Reference,unique identifier of a product which has been certified by the Global Certification Forum
+P7337,Wi-Fi Certification ID,unique identifier of a certification granted by the Wi-Fi Alliance for product conformance to Wi-Fi Alliance standards
+P7338,regnal ordinal,(qualifier) the ordinal number used with this name. Generally to distinguish it among persons with the same name who held the same office
+P7339,Rivals.com ID,Rivals.com ID for Football and Basketball Prospects
+P7340,sixpackfilmdata film ID,identifier of a film in the cinema sixpackfilmdata database
+P7341,sixpackfilmdata person ID,identifier of a person in the cinema sixpackfilmdata database
+P7342,Direccin General de Bibliotecas ID,"identifier of a Mexican public library, in the National Network of Public Libraries website"
+P7343,Elitefootball player ID,identifier for a player at the elitefootball.com
+P7344,The Wind Power farm ID,identifier for a wind farm on The Wind Power website
+P7345,IGNrando' ID,identifier for a point of interest on the IGNrando' website
+P7346,Fossiilid.info ID,identifier for fossils at fossiilid.info
+P7347,peer review URL,link to the peer review of a scholarly publication
+P7348,Kivid.info ID,"identifier for minerals, rocks, mineral resources at kivid.info"
+P7349,Gazetteer for Scotland person ID,identifier of a Scottish personality on www.scottish-places.info
+P7350,Gazetteer for Scotland place ID,identifier for a geographical item on the Gazetteer for Scotland website
+P7351,FootballDatabase.eu team ID,identifier for a association football (soccer) team in the FootballDatabase.eu database
+P7352,GENUKI ID,identifier for a UK or Irish place on the GENUKI.org.uk website
+P7353,NTS Radio artist ID,identifier for an artist on the NTS Radio website
+P7354,Ticketmaster artist ID,identifier for an artist on Ticketmaster site
+P7355,See Tickets artist ID,identifier for an artist on See Tickets site
+P7356,DC Books author ID,identifier for authors of books published by DC Books
+P7357,Diccionari de la Literatura Catalana ID,identifier for an item in the Diccionari de la Literatura Catalana
+P7358,FootballFacts.ru team ID,identifier for a association football (soccer) team in the FootballFacts.ru database
+P7359,LaPreferente.com player ID,identifier for a player at the LaPreferente.com site
+P7360,UEFA coach ID,identifier for a coach at the UEFA
+P7361,UEFA team ID,identifier for a association football (soccer) team in the UEFA database
+P7362,Ukrainian Premier League player ID,identifier for football player on site Ukrainian Premier League
+P7363,ISSN-L,linking ISSN (ISSN-L) is a specific ISSN that groups the different media of the same serial publication
+P7364,FIDAL team ID,identifier for an athletic team in Italy by the Italian athletics federation (FIDAL)
+P7365,China Martyrs ID,ID for someone killed or sacrificed themself in China
+P7366,FAIMER school ID,
+P7367,content descriptor,content descriptors for this video game or film
+P7368,JournalBase ID,identifier for a journal on JournalBase
+P7369,National Library of Chile ID,identifier for authority control managed by the National Library of Chile
+P7370,PCEngine Catalog Project ID,identifier of a video game in the PCEngine Catalog Project
+P7371,Beatport label ID,identifier for a label on Beatport.com music site
+P7372,memoriademadrid publication ID,"identifier for a journal in the journals archive of ""Biblioteca Digital memoriademadrid"", an open access digital library of Spanish-language periodical publications, established by the city of Madrid"
+P7374,educational stage,"educational stage of a specific school; qualifier of ""educated at"" (P69): the education stage of someone's attendance of school"
+P7375,MWNF URL,url in the database of the Museum With No Frontiers (MWNF) virtual museum for the transmission of knowledge
+P7376,worn by,person who wears or wore a garment or object
+P7377,tussenvoegsel,"component of Dutch family name or similar of other languages, generally an unaffixed prefix. Depending on the language, country and application, it may be ignored in sorting. Note differences in capitalization and affixation (spaces)"
+P7378,item disputed by,concept described by the item is criticized by other item(s)
+P7379,fineness,"relative purity of precious metal, use ""carat"" (Q1072404) or ""millesimal fineness"" (Q1790688) as units"
+P7380,identified in image by,"qualifier for the identification of a value/object with a number, letter or sign inscribed in the image"
+P7381,PubPeer article ID,Identifier of an scientific article at PubPeer
+P7382,Turkish Football Federation match ID,identifier association football match at TFF database
+P7383,name in hiero markup,hieroglyphs written in Wikihiero syntax
+P7384,geograph.org.uk image ID,identifier for an image from Geograph Britain and Ireland
+P7387,Q-Codes ID,"Q-Codes ID is for indexing Family medicine related docs; with the ICPC 2, both form the Core Content Classification in General Practice/ Family Medicine (3CGP)"
+P7388,Great Encyclopedia of Navarre ID,identifier of an item in the Great Encyclopaedia of Navarre
+P7389,Three Decks people ID,naval personnel identifier at Three Decks
+P7390,Knesset law ID,identifier for law in Knesset site
+P7391,graph radius,the minimum eccentricity of any vertex of a graph
+P7395,DynamoMania.com player ID,identifier for a player at the DynamoMania.com
+P7396,Beachsafe Beach Key,unique identifier of an Australian beach in the Beachsafe database operated by Surf Life Saving Australia
+P7397,247Sports ID,247Sports ID for Football and Basketball Prospects
+P7398,Internet Off-Broadway Database production ID,identifier for a production in Lortel's Internet Off-Broadway Database
+P7399,Futbolme player ID,identifier for a player at Futbolme website
+P7400,LibraryThing author ID,identifier for an author on the LibraryThing website
+P7401,SMHI drainage basin ID,ID of drainage basin according to the Swedish Meteorological and Hydrological Institute
+P7402,Turkish Football Federation stadium ID,identifier association football venue at TFF database
+P7403,Publons publisher ID,identifier for publishers on the Publons website
+P7404,ADL Hate Symbols Database ID,ID for a item in the Anti-Defamation League Hate Symbols Database
+P7405,Turkish Football Federation referee ID,identifier association football referee at TFF database
+P7406,style of karate,style of karate of the element
+P7407,name (image),"name of something, when it's not fully supported by Unicode or contains characters that are not widely supported"
+P7408,EconBiz publication ID,"ID of a journal, book or article in EconBiz"
+P7409,ERIC publication ID,ID of an article or book in ERIC
+P7410,Healthcare Common Procedure Coding System Identifier,health care procedure codes based on the American Medical Association's Current Procedural Terminology
+P7411,Pubs Galore ID,external identifier for pubs in the United Kingdom
+P7412,ForaDeJogo.net team ID,identifier for a association football (soccer) team in the ForaDeJogo.net database
+P7413,Ancient Tree Inventory ID,identifier for ancient and notable trees in the United Kingdom
+P7414,State Catalogue of the Museum Fund of Russia museum ID,
+P7415,code (image),Commons image file of code used to represent a specific concept in a given encoding
+P7416,folio(s),folio number of reference for statement
+P7417,image of backside,"image of the reverse side of this ""2D"" object"
+P7418,image of frontside,image of obverse (front side) of this 2D object
+P7419,gender educated,genders educated at this educational institution
+P7420,image with frame,media file of painting or other 2D artwork with its frame or more of its surroundings included
+P7421,line(s),line number(s) of reference for claim
+P7422,minimum temperature record,lowest temperature reached at this location
+P7423,Professional Football League of Ukraine player ID,identifier for football player on site Professional Football League of Ukraine
+P7425,Rotterdam City Archives actor ID,persons and organisations in the database of the media archive of the city of Rotterdam
+P7427,FreeBSD port,name of the official FreeBSD port of this application
+P7428,Bluetooth Declaration ID,unique identifier of a certification granted by Bluetooth SIG for product conformance to Bluetooth standards
+P7429,Bundle ID,"unique identifier for an application used in iOS, iPadOS, macOS, watchOS and tvOS systems"
+P7430,Dictionary of Sculptors in Britain ID,"identifier for a sculptor in A Biographical Dictionary of Sculptors in Britain, 1660-1851"
+P7431,Wolfram Language quantity ID,"identifier for a (physical, chemical, ...) quantity in the Wolfram Language"
+P7432,Steam bundle ID,identification number for Steam platform bundle
+P7433,FantLab author ID,identifier for the author in FantLab
+P7434,NAD place ID,the topographic database at the Swedish National Archive
+P7435,EU-Football.info referee ID,identifier for an association football referee on the EU-Football.info website
+P7436,WorldReferee.com referee ID,WorldReferee.com identifier for an association football (soccer) referee
+P7437,FantLab award ID,identifier for the award in FantLab
+P7438,FantLab publisher ID,identifier for the publisher in FantLab
+P7439,FantLab work ID,identifier for the literary work in FantLab
+P7440,FIG gymnast biography number,gymnast's identifier (no licence) at the database of International Federation of Gymnastics
+P7441,WorldFootball.net competition ID,identifier for a association football (soccer) competition in the WorldFootball.net database
+P7442,glacier status,"Indicates whether a glacier is retreating, surging, or stable. Qualify each value with ""point in time"" (P585) to indicate when."
+P7443,number of processor threads,total number of logical cores of a CPU
+P7444,Rijksmuseum Research Library authority ID,authority control identifier for the Rijksmuseum Research Library
+P7445,Basis Wien person ID,identifier of a person in the Basis Wien database
+P7446,Basis Wien institution ID,identifier of an institution in the Basis Wien database
+P7447,Basis Wien event ID,identifier of an event in the Basis Wien database
+P7448,Basis Wien object ID,identifier of an object in the Basis Wien database
+P7449,NARCIS researcher ID,Dutch researchers with information about publications
+P7450,Turkish Football Federation team ID,identifier association football team at TFF database
+P7451,Czech Fortuna liga player ID,identifier for football player on site Czech Fortuna liga
+P7452,reason for preferred rank,qualifier to allow the reason to be indicated why a particular statement should be considered preferred
+P7453,90minut.pl team ID,identifier for a association football (soccer) team in the 90minut.pl database
+P7454,Soccerbase team ID,identifier for a association football (soccer) team in the Soccerbase database
+P7455,Transfermarkt match ID,identifier for an association football (soccer) match in the transfermarkt.com database
+P7456,AAAS keyword ID,"identifier for a topic, used by the American Association for the Advancement of Science (AAAS)"
+P7457,creator's signature,image of the artist's mark on the work that identifies their work
+P7458,Kinematoscope film ID,Database about Films adaptations of literary work (18th and 19th century)
+P7459,CanadaSoccer.com person ID,identifier for a person at the CanadaSoccer.com
+P7460,FlashScore.com match ID,"identifier for a match (association football, basketball, rugby, ice hockey, etc.) in the FlashScore.com database"
+P7461,Publons journals/conferences ID,identifier for journals and conferences on the Publons website
+P7462,graph diameter,maximum eccentricity of any vertex in the graph
+P7463,EU-Football.info manager ID,identifier for an association football manager on the EU-Football.info website
+P7464,Genetics Home Reference Conditions ID,identifier for disease in the United States National Institutes of Health's Genetics Home Reference
+P7465,Soccerbase referee ID,Soccerbase identifier for an association football (soccer) referee
+P7466,Edvard Munch's correspondence person ID,identity identifier for a person in correspondence with Edvard Munch
+P7467,Broadway Photographs person ID,identifier for historical Broadway photographers and their subjects
+P7468,MOHW HospID,ID of hospital registered under Ministry of Health and Welfare (Taiwan)
+P7469,orientation,"axis of alignment of an item, or direction perpendicular to its primary face (specify with P518 if necessary)"
+P7470,URN formatter,formatter to generate Uniform Resource Name (URN) from property value. Include $1 to be replaced with property value
+P7471,iNaturalist place ID,identifier for a place in iNaturalist
+P7472,National Marine Biological Library ID,authority control identifier for the National Marine Biological Library
+P7473,Neliti Journal ID,"journal ID/URL with Neliti, an Indonesian academic repository"
+P7474,Online Cenotaph ID,identifier for a military serviceperson in the Auckland War Memorial Museum Online Cenotaph database
+P7475,dp.ru person ID,dp.ru identifier for a person
+P7476,iFixit teardown ID,identifier for a disassembly review of a device on the iFixit website
+P7477,Internet Content Provider Registration Record ID,permit issued by the Chinese Ministry of Industry and Information Technology to permit China-based websites to operate in China
+P7479,key col,highest col connecting to an even higher point
+P7480,Brazilian federal deputy ID,identifier for a member of the Chamber of Deputies of Brazil
+P7481,variety of form,"optional property to link a form to a dialect, or a graphic or phonetic variety"
+P7482,source of file,broad nature of the origin of the file
+P7483,CinemaRX person ID,identifier for a person on the CinemaRX.ro website
+P7484,Kinematoscope film director ID,database of film adaptations of literary work (18th and 19th century)
+P7485,Kinematoscope writer ID,Database about Films adaptations of literary work (18th and 19th century)
+P7486,grammatical aspect,"grammatical category that expresses how an action, event or state, denoted by a verb, relates to the flow of time: perfective, progressive, prospective, habitual, etc."
+P7487,Kinematoscope literary work ID,Database about Films adaptations of literary work (18th and 19th century)
+P7488,BDFutbol team ID,identifier for a association football (soccer) team in the BDFutbol database
+P7489,Stathletics ID,identifier for stathletics.ch
+P7490,Teams.by team ID,identifier for a association football (soccer) team in the teams.by database
+P7491,Austrian Parliament 1848Ð1918 ID,"identifier for an individual between 1848Ð1918, in the Austrian Parliament's ""Who's Who"" database"
+P7492,EU-Football.info match ID,identifier for an association football match on the EU-Football.info website
+P7493,PlaymakerStats.com match ID,identifier for an association football (soccer) match at PlaymakerStats.com (formerly TheFinalBall.com)
+P7494,Soccerway match ID,identifier for an association football (soccer) match in the Soccerway database
+P7495,Fussballdaten.de team ID,identifier for a association football (soccer) team in the Fussballdaten.de database
+P7496,NZPCN ID,ID of a plant taxon held by the New Zealand Plant Conservation Network
+P7497,Wolfram Language entity type,first part of the Wolfram Language entity code
+P7498,Women Film Pioneers ID,identifier from the Women Film Pioneers Project
+P7499,Van Wijngaarden quarry ID,identifier for an underground quarry assigned by Van Wijngaarden of the National Institute for Field Biological Research for Nature Conservation (RIVON)
+P7500,comorbidity,"presence of one or more additional conditions co-occurring with (that is, concomitant or concurrent with) a primary condition"
+P7501,audio system,audio system hardware used in the item
+P7502,Golden ID,page ID for the Golden knowledge base
+P7503,Ovrtur biography ID,Ovrtur.com biography ID
+P7504,Jeugdliteratuur ID,identifier for an author on the website Jeugdliteratuur.org
+P7505,ACL Anthology article ID,ID of an article in ACL Anthology
+P7506,Naver Encyclopedia ID,ID of an document in Naver Encyclopedia
+P7507,Ben Yehuda author ID,author identifier in Project Ben-Yehuda
+P7508,election called by,person who summoned an election
+P7509,Estonian biographical database ID,ID of someone in Estonian biographical database (Eesti biograafiline andmebaas ISIK)
+P7510,XML namespace,URI that identifies uniquely a set of XML elements
+P7511,doujinshi.org author ID,artist ID on doujinshi.org
+P7512,startrek.com Database ID,ID in the Database of startrek.com
+P7513,Alfred P. Sloan Foundation grant ID,identifiers of grants in the database of the Alfred P. Sloan Foundation
+P7514,landscape architect,"person or architectural firm that designed this outdoor area, possibly including landmarks and structures"
+P7515,Chinese Professional Baseball League player ID,ID of a player in Chinese Professional Baseball League website of Taiwan
+P7516,Software Preservation Society ID,identifier of a video game in the Software Preservation Society database
+P7517,Sega Retro ID,identifier in the Sega Retro wiki
+P7518,classicamiga ID,identifier in the classicamiga database
+P7519,Filmov? p?ehled film ID,identifier for a film in the Filmov? p?ehled database
+P7520,Filmov? p?ehled person ID,identifier for a person or organisation in the Filmov? p?ehled database
+P7521,Gaming-History company ID,identifier of a company in the Gaming-History database
+P7522,SK cinema authority ID,"identifier for a person, organisation, topic, event, genre or work title in the SK cinema database"
+P7523,SK cinema film ID,identifier for a film in the SK cinema database
+P7524,CA PROP 65 ID,ID for substance in California Proposition 65 list of chemicals known to cause cancer or reproductive harm
+P7525,ePSD identifier,identier for the electronic Pennsylvania Sumerian Dictionary
+P7526,Czech cadastral area ID,"identifier for a cadastral area in the Czech Republic, conferred by '?esk? ?ad zem?m??ick? a katastrln'"
+P7527,charge conjugation quantum number,"charge conjugation (or c-parity) has a multiplicative quantum number that applies when all quantum charges are reversed, i.e. when a particle is transformed into its antiparticle"
+P7528,statement is regarded as spoiler for,exposing this information might ruin the experience of receiving this work
+P7529,dp.ru company ID,dp.ru identifier for a company
+P7530,Fortuna liga player ID,identifier for football player on site Slovak Fortuna liga
+P7531,MEA Indian Mission ID,identifier for Indian diplomatic missions in foreign countries
+P7532,room number,"number or identifier of a room, which can qualify the address (P6375) of a place to complete it"
+P7533,AaRC person ID,identifier for a person on the AaRC site (All about Romanian Cinema)
+P7534,MIC market code,ISO 10383 market identifier code
+P7535,scope and content,a summary statement providing an overview of the archival collection
+P7536,Birds of India ID,identifier for birds found in India maintained by the 'Birds of India' database
+P7537,India Biodiversity Portal species ID,identifier for species found in India maintained by the 'India Biodiversity Portal' database
+P7538,Moths of India ID,identifier for moths found in India maintained by the 'Moths of India' database
+P7539,NBAIR pest ID,identif?er for crop pests found in India
+P7540,Odonata of India ID,identifier for odonata species found in India maintained by the 'Odonata of India' database
+P7541,Plante Aventure ID,identifier of a game in the Plante Aventure database
+P7542,Reptiles of India ID,"identifier for reptiles found in India, in the 'Reptiles of India' database"
+P7543,ZSI author ID,identifier for authors who wrote for ZSI publications
+P7544,Indian Medicinal Plants Database ID,identifier for medicinal plants found in India maintained by the 'Indian Medicinal Plants Database'
+P7545,askArt person ID,identifier for the askArt website
+P7546,Flowers of India ID,identifer for plant taxons
+P7547,National Health Portal hospital ID,identifier for hospitals in India maintained by the 'National Health Portal'
+P7548,UK Lakes Portal ID,identifier for a lake or loch in the UK Lakes Portal database and website
+P7549,Biodiversity of West Bengal species ID,identifier for species found in West Bengal maintained by the 'Biodiversity of West Bengal' database
+P7550,Paralympic.org athlete ID,"identifier for an athlete (sportsperson) at Paralympic.org, a website of the International Paralympic Committee"
+P7551,Plusliga player ID,identifier for a player on the Polish Plusliga website
+P7552,Finnish Biodiversity Information Facility's Species List ID,identifier for species found in Finland maintained by the Finnish Biodiversity Information Facility
+P7553,Sinemalar person ID,identifier for a person on the Sinemalar site (cinema)
+P7554,Encyclopedia of Mathematics wiki ID,identifier for an article on the Encyclopedia of Mathematics wiki
+P7555,UVL game ID,identifier of a video game in the Universal Videogame List
+P7556,UVL platform ID,identifier of a platform in the Universal Videogame List
+P7558,Inguma database ID,Inguma database researcher link
+P7559,Ahotsak lexeme,lexicographic information at Ahotsak web
+P7560,UVL company ID,identifier of a company in the Universal Videogame List
+P7561,category for the interior of the item,"Commons category for media files depicting interior views of this item (object, place)"
+P7562,UVL group ID,identifier of a group in the Universal Videogame List
+P7563,Home of the Underdogs game ID,identifier of a video game in the Home of the Underdogs database
+P7564,OGDB game title ID,identifier of a video game in the Online Games-Datenbank
+P7565,CISCE school code,code for schools affiliated to the Council for the Indian School Certificate Examinations
+P7566,JNAF artist ID,identifier for artists whose arts were collected by Indian private collector Jehangir Nicholson
+P7567,OGDB compilation ID,identifier of a video game compilation in the Online Games-Datenbank
+P7568,CBSE affiliation number,code for schools affiliated to Central Board of Secondary Education
+P7569,Wikimedia page-version URL,"(qualifier) URL of revision of Wikipedia article or other page on a WMF site being used, site specific URL to a page version ID (oldid parameter). Sample: nlwiki URL starts with https://nl.wikipedia.org/w/index.php?oldid="
+P7570,OGDB company ID,identifier of a company in the Online Games-Datenbank
+P7571,Memorial Book Bundesarchiv ID,identifier for the Memorial Book Bundesarchiv
+P7572,Digital Corpus of Sanskrit ID,property for Sanskrit lemma in IAST transliteration maintained by Digital Corpus of Sanskrit
+P7573,IFCO rating,rating certificate of a film in the Irish content classification system
+P7574,Swedish Royal Theater Archive,"a database of roles, persons and plays performed at the Swedish Royal theater Royal Dramatic Theatre"
+P7575,Sri Granth Punjabi word ID,property for Punjabi words in Gurmukhi script retrieved from Guru Granth Sahib maintained by Sri Granth
+P7576,Broadcast Radio Bearer URI,identifier linking Wikidata item to the broadcast parameters for a transmission
+P7577,Czech city district ID,"identifier for a city district in the Czech Republic, conferred by '?esk? ?ad zem?m??ick? a katastrln'"
+P7578,DUC ID,identifier for a noted woman on the online version of Le Dictionnaire universel des Cratrices (English: The Universal Dictionary of Creators)
+P7579,Prague administrative district ID,"identifier for a administrative district of Prague, conferred by '?esk? ?ad zem?m??ick? a katastrln'"
+P7580,AboutTheArtists artist ID,identifier for a person on the AboutTheArtists Database
+P7581,IAST transliteration,transliteration of Devanagari and other related Brahmic scripts
+P7582,Wildlife Protection Act 1972 (India) schedule,classification of species found in India as per legal protection status under Wildlife Protection Act 1972
+P7583,fyyd podcast ID,identifier of a podcast in the fyyd database
+P7584,age estimated by a dating method,"estimation of the age of a star, geological feature, fossil or object"
+P7585,NinDB game ID,identifier of a video game in the NinDB database
+P7586,Cinepub person ID,identifier for a person on the Cinepub site
+P7587,eFloraSA ID,Electronic Flora of South Australia: Factsheet ID
+P7588,effective date,"date on which a statutory or administrative law or other official document comes into force. This date may differ for different sections of the law. This may also be retrospective, predating the date of enactment."
+P7589,enacted date,date on which a piece of legislation is enacted (whether by assent or some other procedure)
+P7590,eBay username,item's username on eBay
+P7591,VideoGameGeek game ID,identifier of a video game in the VideoGameGeek database
+P7592,VideoGameGeek platform ID,identifier of a platform in the VideoGameGeek database
+P7593,CinePT film ID,identifier for a film on the CinePT website
+P7594,CinePT person ID,identifier for a person or organisation on the CinePT website
+P7595,Disney+ movie ID,identifier for a film on Disney+
+P7596,Disney+ series ID,identifier for television/web series on Disney+
+P7597,Lutris game ID,identifier of a video game in the Lutris database
+P7598,ascending scale,sequence of notes starting from a tonic in one octave and ending with the tonic one octave above
+P7599,descending scale,sequence of notes starting from a tonic in one octave and ending with the tonic one octave below
+P7600,primary note,most prominent note in a raga
+P7601,secondary note,"second-most prominent note in a raga; usually a fifth from the primary note, although there are exceptions"
+P7602,Ratingraph actor ID,identifier for a person on the Ratingraph site - actor
+P7603,CITES Appendix,appendix of a taxon according to CITES convention
+P7604,supervised by,natural person who has the authority of giving instructions and/or orders to subordinates and is held responsible for the work and actions of subordinates
+P7605,Hunterian transliteration,transliteration of different Indic scripts
+P7606,Czech municipality ID,identifier for a municipality in the Czech Republic conferred by the Czech Office of Surveying and Cadastre
+P7607,WikiTree category or space,Categories in Wikitree for things that also exist in Wikidata like cemeteries
+P7608,Englandstats.com Soccer ID,identifier for a male player on the Englandstats.com website
+P7609,SHARE Catalogue work ID,"identifier for works in SHARE Catalogue, a linked data federated catalogue of several Southern Italy universities"
+P7610,Taiwan Cinema company ID,identifier for a company on Taiwan Cinema
+P7611,Taiwan Cinema film ID,identifier for a film on Taiwan Cinema
+P7612,Taiwan Cinema person ID,identifier for a person on Taiwan Cinema
+P7613,Biblioteche dei filosofi ID,identifier for a philosopher in the project Biblioteche dei filosofi
+P7614,Dictionary of Wisconsin History ID,article identifier for the Dictionary of Wisconsin History
+P7615,Finnish generals and admirals in the Imperial Russian Army 1809Ð1917 ID,The web publication of the Finnish Literature Society presents almost 500 Finnish generals and admirals in the service of the Imperial Russian Army.
+P7616,Lutris genre ID,identifier of a video game genre in the Lutris database
+P7617,Lutris platform ID,identifier of a video game platform in the Lutris database
+P7618,Virginia Landmarks Register ID,identifier for a Virginia Historic Landmark in the Virginia Landmarks Register database
+P7619,The Cardinals of the Holy Roman Church ID,identifier for a cardinal in the website The Cardinals of the Holy Roman Church
+P7620,Treccani's Enciclopedia dei Papi ID,identifier for a pope (or antipope) in the Enciclopedia dei Papi
+P7621,Church Heritage Cymru ID,identifier for a church building in the Church Heritage Cymru database (not the church code but a separate identifier)
+P7622,TheGamesDB game ID,identifier of a video game in TheGamesDB database
+P7623,TheGamesDB platform ID,identifier of a video game platform in TheGamesDB database
+P7624,YVNG ID,identifier in the Yad Vashem central database of Holocaust victims' names
+P7625,WPI ID,port ID in World Port Index database
+P7626,NVE powerplant ID,serial number for a hydroelectric powerplant in Norwegian Water Resources and Energy Directorate's Power Plant database
+P7627,Artsdata.ca ID,Identifier for resources in the Artsdata.ca Knowledge Graph
+P7630,Dictionary of Scottish Architects building ID,identifier for a building in the Dictionary of Scottish Architects database and website
+P7631,MPPDA Digital Archive film ID,link to a film's entry at the MPPDA Digital Archive
+P7632,MPPDA Digital Archive organisation ID,link to an organisation's records at the MPPDA Digital Archive
+P7633,MPPDA Digital Archive person ID,link to a person's records at the MPPDA Digital Archive
+P7634,TheGamesDB developer ID,identifier of a video game developer in TheGamesDB database
+P7635,administrative district of Czech municipality with authorized municipal office ID,"identifier for a municipality with authorized municipal office, conferred by '?esk? ?ad zem?m??ick? a katastrln'"
+P7636,administrative district of Czech municipality with expanded powers ID,"identifier for a municipality with expanded powers, conferred by '?esk? ?ad zem?m??ick? a katastrln'"
+P7637,IDU theatre ID,identifier for theatre names in Czechia in the Theatre Institute database
+P7638,OverDrive creator ID,identifier for an author or creator at OverDrive
+P7639,OverDrive publisher ID,identifier for a publisher at OverDrive
+P7641,MTV Germany artist ID,identifier for an artist on MTV Germany site
+P7642,TheGamesDB publisher ID,identifier of a video game publisher in TheGamesDB database
+P7643,covered period,"historical period covered, for instance by a source"
+P7644,Encyclopedia of Cleveland History ID,identifier for an entry on the Encyclopedia of Cleveland History website
+P7645,RomanianActors person ID,identifier for an actor on the RomanianActors site
+P7646,IISG ID,identifier for the biographical dictionary of the International Institute of Social History
+P7647,Cochrane concept ID,"identifier for a concept in the Cochrane linked-data vocabulary, relating to health and medicine"
+P7648,OverDrive series ID,identifier for a book series at OverDrive
+P7649,Vectrex Game Database ID,identifier of a video game in the Vectrex Game Database
+P7650,WeChat ID,account identifier of this item on WeChat
+P7651,Hoopla series ID,identifier for a series in Hoopla
+P7652,Germany06.Ru person ID,identifier for a participants of 2006 FIFA World Cup at Germany06.Ru site
+P7653,MovieGe person ID,identifier for a person on the movie.ge site
+P7654,Ratingraph actress ID,identifier for an actress on the Ratingraph site
+P7655,Speiderhistorisk leksikon ID,article on Norwegian Scout history lexicon
+P7656,Arolsen ID,identifier for an Holocaust victim on the Arolsen Archives' website
+P7657,Doctrine court decision ID,identifier for a French court decision on Doctrine
+P7658,Juricaf decision ID,decision of a French-speaking supreme court on Juricaf
+P7659,POWiS ID,identifier in the Places of Worship in Scotland (POWiS) database
+P7660,super-famicom.jp ID,identifier of a video game in the super-famicom.jp database
+P7661,GameFAQs credit ID,identifier of a game credit in the GameFAQs database
+P7662,Scilit journal ID,identifier of a journal in Scilit (scientific literature) by MDPI (Q6715186)
+P7663,Scienza a due voci ID,identifier for a female scientist in Italy in the project Scienza a due voci
+P7665,FMV World ID,identifier of a video game in the FMV World database
+P7666,Visuotin? lietuvi? enciklopedija ID,identifier for an item in the online edition of the Visuotin? lietuvi? enciklopedija
+P7667,Hellenic Civil Aviation Authority airport code,
+P7668,file page,property to indicate a page number of a pdf file or similar. The page number is sometimes different from the numbering of the text reproduced in the document. Should allow to link the page when combined with the file URL
+P7669,NEC Retro ID,identifier in the NEC Retro wiki
+P7670,Prog Archives artist ID,identifier for an artist on the website Prog Archives
+P7671,Semion author ID,"identifier of an author or reviewer, in Semion"
+P7672,Musiikkituottajat artist ID (chart),identifier for an artist on Musiikkituottajat music site
+P7673,Czech district ID,"identifier for a district, conferred by '?esk? ?ad zem?m??ick? a katastrln'"
+P7674,Czech region ID,"identifier for a region, conferred by '?esk? ?ad zem?m??ick? a katastrln'"
+P7675,Vie publique intervention ID,identifier for a public intervention on Vie publique
+P7676,Vie publique person ID,identifier for a public personality on Vie publique
+P7677,gesetze-im-internet.de ID,identifier on Gesetze im Internet
+P7678,Wikimapia ID,link to Wikimapia item
+P7679,Cinpolis KLIC ID,identifier of a movie in Cinpolis KLIC website
+P7680,Colorado Encyclopedia ID,identifier for an entry on the Colorado Encyclopedia website
+P7681,Israel Museum Jerusalem artist ID,identifier of a person (artist) in the Israel Museum Jerusalem collection
+P7682,National Library of New Zealand ID,identifier for an entity in the National Library of New Zealand
+P7683,OpenRetro Game Database ID,identifier in the OpenRetro Game Database
+P7684,Vie publique report ID,identifier for a public report on Vie publique
+P7685,CALS Encyclopedia of Arkansas ID,identifier for an entry on the CALS Encyclopedia of Arkansas website
+P7686,Encyclopedia of the Great Plains ID,identifier for an entry on the Encyclopedia of the Great Plains website
+P7687,Kansaspedia ID,identifier for an entry on the Kansaspedia website
+P7688,Mississippi Encyclopedia ID,identifier for an entry on the Mississippi Encyclopedia website
+P7689,Online Nevada Encyclopedia ID,identifier for an entry on the Online Nevada Encyclopedia website
+P7690,South Carolina Encyclopedia ID,identifier for an entry on the South Carolina Encyclopedia website
+P7691,The Oregon Encyclopedia ID,identifier for an entry on the Oregon Encyclopedia website
+P7692,Utah History Encyclopedia ID,identifier for an entry on the Utah History Encyclopedia website
+P7693,WyoHistory.org Encyclopedia ID,identifier for an entry on the WyoHistory.org website about the history of Wyoming
+P7694,Aberdeenshire HER ID,ID for a heritage feature in the Aberdeenshire Historic Environment Record website and database
+P7695,e-WV: The West Virginia Encyclopedia ID,identifier for an entry on the West Virginia Encyclopedia website
+P7696,Franais libres ID,identifier for a French resistance fighter on Franais libres
+P7697,Maine: An Encyclopedia ID,identifier for an entry on the Maine: An Encyclopedia website
+P7698,Muse de la Rsistance ID,identifier for a person on the online Muse de la Rsistance
+P7699,National Library of Lithuania ID,"authority id at the National Library of Lithuania, part of VIAF (code LIH)"
+P7700,Slovak National Library ID (VIAF),"authority id in Slovak National Library, a VIAF component (code SKMASNL)"
+P7701,SNESmusic.org game ID,identifier of a video game in the SNESmusic.org database
+P7702,The Sierra Chest ID,identifier in The Sierra Chest database
+P7703,Spanish Quora topic ID,identifier for a topic on Quora (Spanish language version)
+P7704,Europeana entity,"identifier for persons, places and topics at Europeana"
+P7705,superfamicom.org URL,url of a video game in the superfamicom.org database
+P7706,nominalized form,property to link a verb or adjective that is used as a noun to the lexeme for the noun
+P7707,PlayStation DataCenter URL,identifier in the PlayStation DataCenter database
+P7708,SNESmusic.org company ID,identifier of a company in the SNESmusic.org database
+P7709,ScienceOpen author ID,unique identifier of an author in ScienceOpen database
+P7710,ScienceOpen publication ID,unique identifier of an work in ScienceOpen database
+P7711,Joconde author ID,identifier for a person in the Service des Muses de France Joconde authority file
+P7712,Joconde domain ID,identifier for the general context (domain) of a cultural artifact from the Service des Muses de France Joconde authority file
+P7713,SNESmusic.org composer ID,identifier of a composer in the SNESmusic.org database
+P7714,tDAR creator ID,identifier for a person or organization in the Digital Archaeological Record
+P7715,World Flora Online ID,identifier for a plant in World Flora Online
+P7716,ACMA Broadcast Service Licence Number,unique identifier of a Broadcast Service Licence issued by the Australian Communications and Media Authority
+P7717,Vaare falne ID,identifiers for Norwegian casualties of world war 2
+P7718,Complex Portal accession ID,accession number of protein complex at the Complex Portal
+P7719,generalization of,"the subject statement is a particular case of this object statement, or the truth of this object statement is implied by the truth of the subject statement"
+P7720,Fossilworks ID for this journal article,identifier for a journal article in the Fossilworks database
+P7721,Wikispore ID,page on Wikispore
+P7722,TLFi ID,identifier for a lexeme on the Trsor de la langue franaise informatis
+P7723,The Encyclopedia of Oklahoma History and Culture ID,identifier for an entry on the Encyclopedia of Oklahoma History and Culture website
+P7724,Littr ID,identifier for a Lexeme on the online Littr
+P7725,litter size,number of young born/laid at the same time by one animal
+P7726,PlanetMath ID,"identifier for entries in PlanetMath, online mathematics reference work"
+P7727,legislative committee,committee in which the legislation is discussed
+P7729,GUI number,"Numeric identifier for business entity registered in Taiwan assigned by Ministry of Economic Affairs, Taiwan"
+P7730,ZX81 Collection publisher ID,identifier of a video game publisher in the ZX81 Collection database
+P7731,ZX81 Collection ID,identifier of a video game in the ZX81 Collection database
+P7732,DAF ID,identifier for a lexeme on the 9th edition of the Dictionnaire de l'Acadmie franaise on the Acadmie franaise website
+P7733,Computer Emuzone game ID,identifier of a video game in the Computer Emuzone database
+P7734,console music history ID,identifier of a video game in the console music history database
+P7735,Czech cohesion region ID,"identifier for a cohesion region, conferred by '?esk? ?ad zem?m??ick? a katastrln'"
+P7736,Czech territorial region ID,"identifier for a territorial region, conferred by '?esk? ?ad zem?m??ick? a katastrln'"
+P7737,DeviantArt username,identifier for an account on DeviantArt
+P7738,EEPS ID,identifier of an entry in the Encyclopedia of Evolutionary Psychological Science
+P7739,Garaph game ID,identifier of a video game in the garaph.info database
+P7740,Garaph group ID,identifier of a video game group in the garaph.info database
+P7741,IDFA film ID,identifier for a documentary film at the IDFA website
+P7742,Lithuanian Football Encyclopedia player ID,identifier for football player on site Lithuanian Football Encyclopedia
+P7743,Microworld ID,identifier for a taxon on the Microworld website
+P7744,Mille Anni di Scienza in Italia ID,identifier for a scientist in the project Mille Anni di Scienza in Italia
+P7745,Movie Walker person ID,identifier of person on the Movie Walker database
+P7746,Natural Product Atlas ID,identifier in the Natural Product Atlas
+P7747,NES Cart Database ID,identifier of a video game in the NES Cart Database
+P7748,NIPS Proceedings author ID,identifier for an author publishing or editor at the NIPS/NeurIPS conference
+P7749,Nomenclature for Museum Cataloging,"nomenclature for object naming and classification, maintained by Canadian Heritage Information Network (CHIN) and American Association for State and Local History (AASLH)"
+P7750,Nonfiction ID,numerical identifier for an author on Nonfiction
+P7751,portable music history ID,identifier of a video game in the portable music history database
+P7752,Prague municipal district ID,"identifier for a municipal district of Prague, conferred by '?esk? ?ad zem?m??ick? a katastrln'"
+P7753,Projekt Gutenberg-DE author ID,identifier for an author on the website Projekt Gutenberg-DE
+P7754,PS photographer ID,identifier for a photographer on Portrait spia
+P7755,ScreenScraper company ID,identifier of a company in the ScreenScraper database
+P7756,ScreenScraper game ID,identifier of a video game in the ScreenScraper database
+P7757,ScreenScraper platform ID,identifier of a video game platform in the ScreenScraper database
+P7758,SPIE profile ID,ID of a profile in SPIE and SPIE Digital Library
+P7759,The Video Games Museum system ID,identifier of a video game system in the Video Games Museum database
+P7760,Tubi movie ID,identifier for a film at video streaming site Tubi (tubitv.com)
+P7761,Tubi series ID,identifier for a TV series at video streaming site Tubi (tubitv.com)
+P7762,VBProfiles person ID,ID of someone in VBProfiles
+P7763,copyright status as a creator,states if the body of work published during the lifetime of this creator is still copyrighted or in the public domain
+P7764,Archives Portal Europe ID,identifier for an archival institution in the directory of Archives Portal Europe
+P7765,DES ID,identifier for a lexeme on the Dictionnaire lectronique des synonymes
+P7766,Bob ID,identifier for a lexeme on Bob
+P7767,serving temperature,serving temperature of a food dish
+P7768,Australian National Maritime Museum object ID,identifier for an object in the Australian National Maritime Museum collection
+P7769,Australian National Maritime Museum person ID,identifier for a person in the Australian National Maritime Museum collection
+P7770,egg incubation period,"amount of time needed for incubation of eggs for this animal taxon (birds, fish, reptiles, monotremes)"
+P7771,PersonalData.IO ID,identifier for an entity in the wiki.personaldata.io database
+P7772,Atlas Obscura identifier,identifier for places at Atlas Obscura
+P7773,The Digital Local Culture Encyclopedia of Korea ID,ID of a topic in The Digital Local Culture Encyclopedia of Korea
+P7774,The Good Old Days ID,identifier of a video game in The Good Old Days database
+P7775,RationalWiki ID,identifier for an item at RationalWiki
+P7776,SSNE person ID,"identifier of The Scotland, Scandinavia and Northern European Biographical Database"
+P7777,AdoroCinema film ID,identifier for a film in AdoroCinema database
+P7778,Museum of Modern Art online exhibition ID,online exhibition identifier for a Museum of Modern Art or MoMA PS1 exhibition
+P7779,military unit,smallest military unit that a person is/was in
+P7780,Russian PFL player ID,identifier for a player at the Russian PFL
+P7781,exonerated of,crime of which the subject was found not to be guilty after having previously been found guilty by a court for that crime
+P7782,category for ship name,Commons category for a name of a ship
+P7783,J-GLOBAL ID,identifier of a topic on J-GLOBAL
+P7784,LaunchBox Games Database developer ID,identifier of a video game developer in the LaunchBox Games Database
+P7785,LaunchBox Games Database game ID,identifier of a video game in the LaunchBox Games Database
+P7786,Joconde epoch ID,identifier for an epoch or a style in the Joconde database of the French Museum Service
+P7787,heading,"direction of an object or structure (eg. building) or direction (yaw) of a camera (or the viewer), measured as clockwise angle from the North, given in degrees, radians or other units"
+P7788,openSUSE package,name of the official openSUSE package
+P7789,Ten-Bruggencatenummer,identifier in the website allemolens.nl
+P7790,Diccionario de la lengua espaola ID,word in the Spanish Language Dictionary of the Spanish Royal Academy
+P7791,NTIS accession number,identifier in the U.S. National Technical Information Service database
+P7792,PubAg ID,identifier in the PubAg database
+P7793,filename in archive,qualifier and referencing property to identify the specific file within a compressed archive that is relevant to a statement
+P7794,Games Database developer ID,identifier of a video game developer in the Games Database
+P7795,National September 11 Memorial ID,"identifier of person killed in the attacks of September 11, 2001 and February 26, 1993."
+P7796,BeWeb person ID,"identifier for a person, in the Italian Episcopal Conference database"
+P7797,BeWeb entity ID,"identifier for a entity, in the Italian Episcopal Conference database"
+P7798,BeWeb family ID,"identifier for a family, in the Italian Episcopal Conference database"
+P7799,Apple IIGS France ID,identifier of a software in the Apple IIGS France database
+P7800,bauhaus.community ID,identifier in the database https://bauhaus.community/
+P7801,CEEB K-12 school code,code issued by the College Board for K-12 schools
+P7802,D-MSX ID,identifier of a video game in the D-MSX database
+P7803,Decine21 person ID,identifier for a person on the website decine21.com
+P7804,dovidka.com.ua ID,identifier for a person at the dovidka.com.ua
+P7805,Games Database publisher ID,identifier of a video game publisher in the Games Database
+P7806,Games Database system ID,identifier of a video game system in the Games Database
+P7807,ICD-11 (foundation),identifier in ICD terminology of diseases - Version 11 (foundation ID) (not Mortality and Morbidity Statistics ID)
+P7808,kino-teatr.ru person ID,identifier for a person at Kino-teatr.ru
+P7809,LaunchBox Games Database platform ID,identifier of a video game platform in the LaunchBox Games Database
+P7810,LaunchBox Games Database publisher ID,identifier of a video game publisher in the LaunchBox Games Database
+P7811,Macintosh Garden game ID,identifier of a video game in the Macintosh Garden database
+P7812,Macintosh Repository ID,identifier of a video game in the Macintosh Repository database
+P7813,Open Churches ID,ID for a church on the website of Open Churches project
+P7814,OpenBibArt ID,identifier for a bibliographical reference on the OpenBibArt website
+P7815,textove.com artist ID,artist ID at Bulgarian website textove.com
+P7816,textove.com song ID,"identifier for a song, musical composition or written work on textlove.com"
+P7817,Electronic library Ukrainica ID,identifier at the Electronic library Ukrainica
+P7818,French Vikidia ID,ID of the article in French Vikidia
+P7819,OrthodoxWiki ID (English),numeric identifier of a page in the English edition of OrthodoxWiki.org
+P7820,Punjabipedia ID,identifier for a topic in the Punjabipedia encyclopedia
+P7821,Sarvavijnanakosam ID,identifier for a topic in the Sarvavijnanakosam Malayalam language encyclopedia
+P7822,Italian Vikidia ID,name of the article in Italian Vikidia
+P7823,BookBrainz work ID,identifier for a work on the BookBrainz open book encyclopedia
+P7824,CPCWiki ID,identifier in the CPCWiki
+P7825,UCUM code,case-sensitive code from the Unified Code for Units of Measure specification to identify a unit of measurement
+P7826,VGMPF ID,identifier in the Video Game Music Preservation Foundation wiki
+P7827,Spanish Vikidia ID,name of the article in Spanish Vikidia
+P7828,What is the Apple IIGS? ID,identifier in the What is the Apple IIGS? database
+P7829,English Vikidia ID,ID of the article in English Vikidia
+P7830,LiverTox ID,LiverTox database ID
+P7831,NMVW ID,identifier for persons and organisations at the Dutch museum of world cultures
+P7832,Basque Vikidia ID,ID of the article in Basque Vikidia
+P7834,Authenticus ID,ID of a researcher in Authenticus website
+P7835,Instituto Moreira Salles ID,identifier for an artwork in the collections of the Instituto Moreira Salles
+P7836,Livelib.ru person ID,identifier for a person at the Livelib.ru
+P7837,Nederlands Fotomuseum photographer ID,authority control identifier for the Netherlands Fotomuseum
+P7838,Polish Nationwide Railway Database - station ID,identifier of railway station in Polish Nationwide Railway Database (www.bazakolejowa.pl)
+P7839,Saregama artist ID,identifier to link artists included in Saregama
+P7840,ScummVM wiki ID,identifier in the ScummVM wiki
+P7841,Armenian Vikidia ID,name of the article in Armenian Vikidia
+P7842,Vienna History Wiki ID,numeric identifier of a page in the Vienna History Wiki
+P7843,German Vikidia ID,ID of the article in German Vikidia
+P7844,Joconde object type ID,identifier for object types from the Service des Muses de France Joconde authority file
+P7845,MarketScreener business leaders ID,ID of someone in MarketScreener
+P7846,Beta ma????ft ID,stable identifier of a resource linked to the Ethiopic manuscript tradition present in the Beta ma????ft research environment (https://betamasaheft.eu/)
+P7847,DigitaltMuseum ID,Identifier at DigitaltMuseum
+P7848,Frick Art Reference Library Artist File ID,identifier for artist file from the Frick Art Reference Library Photoarchive
+P7849,Panoptikum podcast episode ID,identifier of a podcast episode in the Panoptikum database
+P7850,Joconde location ID,identifier for places from the Service des Muses de France Joconde authority file
+P7851,Smithsonian resource ID,identifier for a resource held by the Smithsonian Institution
+P7852,C64.COM ID,identifier of a video game in the WWW.C64.COM database
+P7853,c64games.de ID,identifier of a video game in the www.c64games.de database
+P7854,EU-Football.info club ID,identifier for an association football club on the EU-Football.info website
+P7855,attested as,"how the word is attested in a text, if different from the current way to write it. Should be used with ""attested in"" (P5323)"
+P7856,Salzburg Museums ID,"identifier for museums and other GLAM-institutions in the state of Salzburg, Austria"
+P7857,fyyd podcast episode ID,identifier of a podcast episode in the ffyd database
+P7858,Upper Austria Museum ID,Identifier to link Wikidata with the Upper Austrian database of museums
+P7859,WorldCat Identities ID,Id for a bibliographic page of an entity on WorldCat. Use P243 OCLC control number for books
+P7860,word in DPEJ of RAE ID,identifier for a word in the Juridical Spanish Dictionary of the Spanish Royal Academy
+P7861,category for files created with program,Commons category for files created with that program
+P7862,period of lactation,the period during which the animal is fed milk
+P7863,aperture,aperture of a camera lens
+P7864,HAL article ID,identifier for an article in the HAL (Hyper Articles en Ligne) open access repository
+P7865,CoBiS author ID,"ID for authors in CoBiS, Coordination of the Special and Specialist Libraries of the Turin Metropolitan Area"
+P7866,marterl.at ID,identifier in the marterl.at database
+P7867,category for maps,name of the Wikimedia category specifically for maps or plans of this item
+P7868,NPDRMI record ID,identifier for digital records in the National Portal and Digital Repository for Museums of India
+P7869,Analysis & Policy Observatory node ID,identifier for a node in the Analysis & Policy Observatory database
+P7870,Analysis & Policy Observatory term ID,identifier for a term in the Analysis & Policy Observatory taxonomy
+P7871,PCBdB game ID,identifier of a video game in the Arcade PCB database
+P7872,Diccionari del cinema a Catalunya ID,identifier for an item in the Diccionari del cinema a Catalunya
+P7873,EFIS film festival ID,identifier for a film festival in the Estonian Film Database
+P7874,EFIS person ID,identifier for a person in the Estonian Film Database
+P7875,Eurogamer ID,identifier of a video game in the Eurogamer database
+P7876,FlashScore.com team ID,identifier for a sports team in the FlashScore.com database
+P7877,GameStar ID,identifier of a video game in the GameStar database
+P7878,Soccerdonna team ID,identifier for a association football (soccer) team in the Soccerdonna database
+P7879,The Video Games Museum game ID,identifier of a video game in the Video Games Museum database
+P7880,Voetbal International player ID,identifier for a player at the Voetbal International
+P7881,Games Database game ID,identifier of a video game in the Games Database
+P7882,ft.dk politician identifier,identifier for a member of the danish Folketing at ft.dk
+P7883,Historical Marker Database ID,database entries of historical markers
+P7884,Joconde inscription ID,identifier for a type of inscription from the Service des Muses de France Joconde authority file
+P7885,Joconde time period ID,identifier for time periods in the Service des Muses de France Joconde authority file
+P7886,Media Arts Database ID,identifier for the Media Arts Database created by the Japanese government department Bunkacho
+P7887,number of reviews/ratings,"qualifier on review score to state the number of user reviews, user ratings or critic reviews"
+P7888,merged into,"the subject was dissolved and merged into the object, that existed previously"
+P7889,Cambridge Encyclopedia of Anthropology ID,identifier for an article in the Cambridge Encyclopedia of Anthropology
+P7890,8-bits.info URL,identifier of a video game in the 8-bits.info database
+P7891,EFIS filmfirm ID,identifier for a filmfirm on Estonian Film Database
+P7892,EFIS film ID,identifier for film or television series in the Estonian Film Database
+P7893,CIæNCIAVITAE ID,identifier of scientific author in www.cienciavitae.pt
+P7894,Swedish School Registry ID,identifier used by Statistics Sweden to identify school units
+P7895,Whaling History ID,identifier for people or ships related to whaling
+P7896,Academia.edu publication ID,identifier of a publication at Academia.edu
+P7897,TI-99/4A Videogame House ID,identifier of a video game in the TI-99/4A Videogame House database
+P7898,National Aviation Hall of Fame ID,identifier for a person on the National Aviation Hall of Fame website
+P7899,MOCAGH ID,identifier of a video game in the database of the Museum of Computer Adventure Game History
+P7900,Monument Atlas Objekt-ID,unique identifier for monuments in Lower Saxony
+P7901,Encyclopedia of Chicago ID,identifier for an article in the Encyclopedia of Chicago
+P7902,Deutsche Biographie (GND) ID,GND identifier for an item in the Deutsche Biographie
+P7903,gained territory from,(qualifier) territorial entity from which the subject item gained territory as a result of the event in the statement
+P7904,gave up territory to,(qualifier) territorial entity to which the subject item gave up some of its territory as a result of the event in the statement
+P7905,AnimalBase ID,identifier of a taxon in AnimalBase website
+P7906,Canmore maritime-type ID,Identifier for a type of boat or ship or other maritime craft in the Canmore maritime thesaurus
+P7907,Canmore object-type ID,Identifier for an archaeological object-type in the Canmore thesaurus
+P7908,Clavis Clavium ID,"identifier for Patristic, Medieval and Byzantine authors and texts in Latin and Greek"
+P7909,Can You Run it ID,identifier of a video game in the database of Can You Run it?
+P7910,DANFS ship ID,identifier for a ship on the Dictionary of American Naval Fighting Ships website
+P7911,Gamekult company ID,identifier of a company in the Gamekult database
+P7912,Gamekult franchise ID,identifier of a video game franchise in the Gamekult database
+P7913,Gamekult game ID,identifier of a video game in the Gamekult database
+P7914,Gamekult platform ID,identifier of a video game platform in the Gamekult database
+P7915,GBAtemp game ID,identifier of a video game in the GBAtemp database
+P7916,Mendeley publication ID,identifier for a scientific publication on the Mendeley.com website
+P7917,Museums in Austria Code,Registration Code from the association of museums in Austria
+P7918,Mdias 19 ID,identifier for a 19th century French journalist on the Mdias 19 website
+P7919,SerialStation game ID,identifier of a video game in the SerialStation database
+P7920,TheTVDB person ID,identifier for a person at TheTVDB
+P7921,TrueAchievements series ID,identifier of a video game series in the TrueAchievements database
+P7922,Canmore monument-type ID,Identifier for a heritage site-type in the Canmore thesaurus
+P7923,Bollywood Hungama person alphabetic ID,identifier of an actor on Bollywood Hungama
+P7924,Bibliotheca Hagiographica Latina ID,identifier for Latin hagiographical works
+P7925,Jurisdiction List number,distinct number used to identify a mauza or village in Bangladesh and parts of India
+P7926,Visual AIDS Artist+ Registry ID,identifier for an artist at the Visual AIDS Artist+ Registry
+P7927,Open Food Facts label,identifier of a food label on Open Food Facts
+P7928,BioLexSOE ID,identifier for a persona in the Biographisches Lexikon zur Geschichte Sdosteuropas
+P7929,Roglo person ID,identifier for a person on the Roglo genealogical database
+P7930,Wikimedia community discussion URL,"(usually used as reference) a community discussion (in Wikidata or other Wikimedia) about a specific statement, or (rarely) an entity in general which may affect the content of the entity"
+P7931,Adelsvapen ID,Swedish noble family on Adelsvapen-Wiki
+P7932,Irish playography play ID,"identifier for a play, in the 'Irish Playography' database of theatre plays"
+P7934,Irish playography person ID,"identifier for a person, in the 'Irish Playography' database of theatre plays"
+P7935,Corpus Corporum author ID,identifier for a Latin author in the database Corpus Corporum
+P7936,business model,business model a business enterprise or creative work operates under
+P7937,form of creative work,"structure of a creative work, type of music release"
+P7938,associated electoral district,constituencies/electoral districts in which a place is located or is part of. If a municipality/county is split into or part of several districts: add several values. Use only if distinct from administrative entities (P131) in predefined countries
+P7939,Dansk kvindebiografisk leksikon ID,identifier for a person in the Dansk kvindebiografisk leksikon
+P7940,Adventure Gamers company ID,identifier of a company in the Adventure Gamers database of adventure video games
+P7941,Biografisch Woordenboek van Nederland: 1880-2000 ID,identifier for an article in the Biografisch Woordenboek van Nederland: 1880-2000
+P7942,National Historic Lookout Register ID,identifier for a fire lookout on the National Historic Lookout Register
+P7943,The Washington Post contributor ID,identifier for a person on the Washington Post website
+P7944,DoME artist ID,identifier of an artist in the Database of Modern Exhibitions (1905-1915)
+P7945,ArchiWebture ID,identifier for an architect on the ArchiWebture website
+P7946,Museu de Memes ID,identifier for the Memes Museum of the Brazilian Fluminense Federal University
+P7947,WeChangEd ID,identifier for an item in the WeChangEd database of Women Editors in Europe
+P7948,GreatSchools ID,identifier for an American school on the GreatSchools.org website
+P7949,Czech War Graves Register,identifier in a database of war graves and other related memorials of the Czech Ministry of Defence
+P7950,Marvel Comics creators ID,identifier for artists and writers at Marvel.com
+P7951,DC Comics talent ID,identifier for writers and artists on DCComics.com
+P7952,The First Amendment Encyclopedia ID,identifier for an article in the The First Amendment Encyclopedia
+P7953,Indiegogo project ID,identifier for a project on the Indiegogo crowdfunding platform
+P7954,RealGM basketball coach ID,identifier for a basketball coach on the RealGM website
+P7955,Global Music Rights work ID,identifier for a musical work in Global Music Rights' repertory
+P7956,SESAC work number,registration identifier for a composition at SESAC Repertory
+P7957,Directory of Matres d'art,Matre d'art (Master of Art) is a title awarded for life by the French Ministry of Culture
+P7958,Chicago Landmarks ID,identifier for a protected property on the Chicago Landmarks website
+P7959,historic county,"traditional, geographical division of Great Britain and Ireland"
+P7960,Joconde discovery ID,identifier for a discovery environment in the Service des Muses de France Joconde authority file
+P7961,Joconde creation ID,identifier for stage or type of creation from the Service des Muses de France Joconde authority file
+P7962,Dictionnaire des femmes de lÕancienne France ID,identifier for an article in the Dictionnaire des Femmes de l'ancienne France
+P7963,Cell Ontology ID,ID in the Cell Ontology
+P7964,corresponding HTML autocomplete attribute,the appropriate value of the autocomplete attribute in HTML
+P7965,Scilit work ID,ID of a work in Scilit by MDPI
+P7966,NetBSD package,name of the package available in the NetBSD Packages Collection
+P7967,OpenBSD port,name of the package available in the OpenBSD Ports Collection
+P7968,VR GameCritic ID,identifier of a video game in the VR GameCritic database
+P7969,DAR ancestor ID,ID of someone in the ancestor database of Daughters of the American Revolution
+P7970,FandangoNow ID,identifier for a film or other similar visual work on the FandangoNow website
+P7971,food energy,amount of chemical energy that animals (including humans) derive from this item
+P7972,CVR person ID,"unique identifier for persons (owners/directors) in Denmark's Central Business Register (CVR), the official database of Danish businesses."
+P7973,quantity symbol (LaTeX),symbol for a mathematical or physical quantity in LaTeX
+P7974,Facult des sciences de Nancy ID,identifier for an employee of the 'Facult des sciences de Nancy' (1854-1950)
+P7975,Filmfront film ID,"identifiers for films in the Filmfront, a Norwegian movie database"
+P7976,stargate-wiki.de article,article name on stargate-wiki.d
+P7977,AncientFaces person ID,ID of someone in AncientFaces
+P7978,Decine21 film ID,identifier for a film or TV series on the website decine21.com
+P7979,ACM conference ID,identifier for conferences hosted by ACM
+P7980,Clavis Patrum Latinorum ID,identifier for Latin patristic works
+P7981,ExoticA ID,identifier in the ExoticA wiki
+P7982,Hrvatska enciklopedija ID,identifier for an article in the Croatian Encyclopedia (Hrvatska enciklopedija)
+P7983,ACM Journal ID,identifier for a journal published by ACM
+P7984,depicted format,"property to help describe the format type of depicted subject, commonly confused with genre"
+P7985,Kanopy ID,identifier for a creative work on Kanopy
+P7986,Mirabile author ID,identifier for medieval Latin writers
+P7987,Bibliotheca Hagiographica Graeca ID,identifier for Greek hagiographical works
+P7988,Clavis Patrum Graecorum ID,identifier for Greek patristic works
+P7989,Mirabile manuscript ID,identifier for medieval manuscripts
+P7990,Mirabile saint ID,identifier for Christian saints
+P7991,Mirabile title ID,identifier for medieval written works
+P7992,Poeti d'Italia in lingua latina author ID,identifier for an author in the Poeti d'Italia in lingua latina digital library
+P7993,Treccani's Dizionario di Filosofia ID,identifier for an item in the Dizionario di Filosofia
+P7994,Colecovision Zone ID,identifier of a video game in the Colecovision Zone database
+P7995,NHS Health A to Z ID,identifier for a health condition in the NHS Health A to Z
+P7996,EH.Net Encyclopedia of Economic and Business History ID,identifier for an article in the EH.Net Encyclopedia of Economic and Business History
+P7997,GRY-Online company ID,identifier of a company in the GRY-Online database
+P7998,Podchaser podcast ID,identifier of a podcast in the Podchaser database
+P7999,Haz-Map ID,"Identifier for the Haz-Map database, an openly accessible resource on hazardous agents and occupational disease licensed to and published by NCBI/NLM from 2000-2019. It is still accessible and updated, but no longer licensed by NCBI/NLM"
+P8000,electron configuration,"distribution of electrons of an atom or ion, using a standard notation"
+P8001,endorsed by,public support given by a person or organization to a political campaign
+P8002,Social Security Death Index entry,identifier for a person listed in Social Security Death Index or Death Master File
+P8003,ColecoVision.dk ID,identifier of a video game in the ColecoVision.dk database
+P8004,ordered by,subject that ordered the act
+P8005,research subject recruitment status,categoric way to express whether a research project is or was open for enrolling research subjects meeting certain characteristics
+P8006,footedness,dominant foot or preferred stance of this person
+P8007,US Bureau of Prisons Inmate Register Number,unique number assigned to inmates
+P8008,Google Scholar case ID,ID for legal cases cataloged by Google Scholar
+P8009,IM channel,"address of a multi-user chat, room or group"
+P8010,number of recoveries,number of cases that recovered from disease
+P8011,number of medical tests,cumulative number of medical tests
+P8012,Adventure Gamers series ID,identifier of a video game series in the Adventure Gamers database of adventure video games
+P8013,Trakt.tv ID,Identifier for a work or person on the website Trakt.tv
+P8014,Compendium heroicum ID,identifier for an article in the Compendium heroicum
+P8015,Encyclopedia on Early Childhood Development ID (English),identifier for an article in English in the Encyclopedia on Early Childhood Development
+P8016,Encyclopdie sur le dveloppement des jeunes enfants ID,identifier for an article in French in the Encyclopedia on Early Childhood Development
+P8017,generational suffix,suffix used in name
+P8018,IGCD game ID,identifier of a video game in the Internet Game Cars Database
+P8019,Kickstarter project ID,identifier for a project on the Kickstarter crowdfunding platform
+P8020,Gram.pl game ID,identifier of a game on Gram.pl site
+P8021,Kooora/Goalzz player ID,identifier for an association football (soccer) or handball player at Kooora.com (in Arabic) and Goalzz.com (in English)
+P8022,RFI Musique artist ID,identifier for an artist or a band on the music-focused website of Radio France Internationale
+P8023,VideoGamer.com game ID,identifier of a video game in the VideoGamer.com database
+P8024,Nobel Laureate API ID,REST API service with info about Nobel laureates
+P8025,VGMRips system ID,identifier of a video game system in the VGMRips database
+P8026,LiverTox likelihood score,categorization of the likelihood that a medication is associated with drug induced liver injury that was developed by the Drug-Induced Liver Injury Network (DILIN) Network and published in NCBI's LiverTox
+P8027,VGMRips company ID,identifier of a company in the VGMRips database
+P8028,GameRevolution game ID,identifier of a video game in the GameRevolution database
+P8029,PIV Online ID,identifier for an entry in the online version of Plena Ilustrita Vortaro de Esperanto
+P8030,size designation,organizational size classification or designation used to indicate relative size of an entity within an organization (property under development)
+P8031,perpetrator,"person or organization who carried out a harmful, illegal, or immoral act"
+P8032,victim,person(s) who were harmed from an act or event
+P8033,Movie Review Query Engine ID,identifier for a movie on the Movie Review Query Engine website
+P8034,Vatican Library VcBA ID,"authority control for a subject on the website opac.vatlib.it of the Vatican Library. Format 3 digits + ""/"" + 1 to 6 digits; ""/"" is sometimes rendered as ""_"""
+P8035,m3db.com film ID,identifier for a Malayalam film (movie) in the m3db.com archive
+P8036,m3db.com person ID,identifier for a person in the m3db.com archive
+P8037,Filmfront person ID,"person identifier in Filmfront, a Norwegian movie database"
+P8038,SIUSA archive conservator ID,identifier for an archive conservator in the Unified Information System for the Archival Superintendencies (SUISA)
+P8039,National Register of Historic Monuments in Bosnia and Herzegovina ID,identifier of a National Monument of Bosnia and Herzegovina
+P8040,RPGamer game ID,identifier of a video game in the RPGamer database
+P8041,DR music artist ID,identifier for an artist on DR site
+P8042,PC Games Database.de game ID,identifier of a video game in the PC Games Database.de
+P8043,ELAR ID,identifier for a resource pertaining to a language in the namesake endangered language digital repository
+P8044,Frankfurter Personenlexikon ID,identifier for an article in the Frankfurter Personenlexikon
+P8045,organized response related to outbreak,specific action taken or system used as a reaction to an outbreak
+P8046,Latvian transcription,transcription of name in Latvian (lv) orthography
+P8047,country of registry,country where a ship is or has been registered
+P8048,Women of Scotland memorial ID,The Women of Scotland project identifier for a memorial to a woman in Scotland
+P8049,number of hospitalized cases,number of cases that are hospitalized
+P8050,Women of Scotland subject ID,subject identifier for a woman in the Women of Scotland project
+P8051,Geschichtsquellen des deutschen Mittelalters author ID,identifier for medieval German writers
+P8052,MusicBrainz genre ID,identifier for a genre on the MusicBrainz open music encyclopedia
+P8053,Latvian unified registration number,identifier for a legal entity in Latvia
+P8054,ARK formatter,formatter to generate Archival Resource Key. Include $1 to be replaced with property value
+P8055,Amazon.com Prime Video ID,identifier for a video in Amazon Prime Video (US)
+P8056,VGMRips composer ID,identifier of a video game composer in the VGMRips database
+P8057,Apache Project ID,identifier of Apache Project
+P8058,symbol of,item of which the image is a symbol
+P8059,coinop.org game ID,identifier of a video game in the coinop.org database
+P8060,Glassdoor company ID,identifier for a company on the Glassdoor employee review website
+P8061,AGROVOC ID,identifier for a subject in AGROVOC thesaurus
+P8062,Ameli ID,identifier for a French medical facility on the Ameli website
+P8063,BookBrainz publisher ID,identifier for a publisher or imprint on the BookBrainz open book encyclopedia
+P8064,Chinese Clinical Trial Registry ID,identifier for the clinical trials registry in China
+P8065,CIRIS author ID,identifier for ancient authors in the CIRIS database
+P8066,Colecovision Addict ID,identifier of a video game in the Colecovision Addict database
+P8067,Macdonald Dictionary ID,identifier in the Macdonald Dictionary
+P8068,ToposText place ID,identifier for a place in the website ToposText
+P8069,ToposText person ID,"identifier for a person, event, or concept mentioned by ancient authors, in the website ToposText"
+P8070,ToposText work ID,identifier for a written work in the website ToposText
+P8071,BDSP ID,identifier for a scholarly publication in the BDSP bibliographic database
+P8072,CAB ID,identifier for a subject in CAB Thesaurus
+P8073,Cult of Saints in Late Antiquity ID,Identifier of an item in the Cult of Saints in Late Antiquity database
+P8074,Geschichtsquellen des deutschen Mittelalters work ID,identifier for medieval German literary works
+P8075,ScreenScraper group ID,identifier of a group in the ScreenScraper database
+P8076,The Cover Project game ID,identifier of a video game in The Cover Project database
+P8077,FHF establishment ID,identifier for a French medical facility on the Fdration hospitalire de France website
+P8078,FHF hospital group ID,identifier for a French hospital group on the Fdration hospitalire de France website
+P8079,elibrary.ru person ID,"identifier for a person in the elibrary.ru database of science, education, and government organisations in Russia"
+P8080, kumenisches Heiligenlexikon ID,identifier for a saint in the database kumenisches Heiligenlexikon
+P8081,WBIS ID,identifier for a person in a biographical dictionary comprised in the World Biographical Information System
+P8082,Spanish National Catalog of Hospitals ID,identifier for a Spanish health facility in the National Catalog of Hospitals
+P8083,Visit Tuscany ID,"identifier for a touristic attraction in Tuscany in the website Visit Tuscany, developed by Regione Toscana"
+P8084,Nintendo eShop ID,identifier of a video game in Nintendo eShop
+P8085,Curran Index contributor ID,identifier for a periodical contributor indexed in the Curran Index
+P8086,ODMP person ID,The Officer Down Memorial Page entry for a police officer killed in the line of duty
+P8087,GameTDB game ID,identifier of a video game in the GameTDB database
+P8088,Elephind.com ID,identifier for a newspaper on the Elephind.com website
+P8089,EZB ID,identifier for a scientific journal in the Electronic Journals Library bibliographic database
+P8090,GameReactor game ID,identifier for a video game on the GameReactor video game news website
+P8091,Archival Resource Key,Archival Resource Key for item or image
+P8092,EcuRed article,article at the encyclopedia EcuRed
+P8093,donations,sum of donations an organization receives
+P8094,GeneaStar person ID,identifier of a person in the GeneaStar genealogical database
+P8095,Encyklopedia Solidarno?ci ID,identifier for an article in the Encyklopedia Solidarno?ci
+P8096,Pinakes copyist or possessor ID,identifier for a copyist or possessor of a Greek manuscript
+P8097,network bands,network bands supported by the device
+P8098,Biographical Dictionary of Architects in Canada 1800-1950 ID,identifier for an architect in the Biographical Dictionary of Architects in Canada website
+P8099,I-Revues ID,identifier for a scholarly article in the I-Revues bibliographic database
+P8100,JournalTOCs ID,identifier for a scientific journal in the JournalTOCs bibliographic database
+P8101,MUSE article ID,identifier for a scholarly article in the Project MUSE bibliographic database
+P8103,Paperity article ID,identifier for a scholarly article in the Paperity bibliographic database
+P8104,Paperity journal ID,identifier for a scientific journal in the Paperity bibliographic database
+P8105,SAN archive producer ID,identifier for archive producers in the Italian national archive system
+P8106,SOCAN work number,registration identifier for a composition at SOCAN Public Repertoire
+P8107,bus,"bus used on computer hardware, mainly relevant for supercomputer nodes interconnect"
+P8108,Papers Past ID,identifier for a periodical on the Papers Past website
+P8109,Pascal et Francis ID,identifier for a scholarly publication in the Pascal and Francis bibliographic databases
+P8110,Retronews ID,identifier for a newspaper on the Retronews website
+P8111,recommended unit of measurement,"unit in which a quantity is measured as recommended by a standard (SI, ISO, IEC, etc.)"
+P8112,CSS color keyword,"keyword that refers to the element, according to the CSS standard"
+P8113,COTREX trail ID,identifier for a trail on the Colorado Trail Explorer website
+P8114,Wikiparques ID,identifier for a Brazilian protected area on Wikiparques
+P8115,eligible recipient,"party that is eligible to receive something, like an award, grant or prize"
+P8116,Encyclopedia of Brno History person ID,identifier for people related to the city of Brno and its history
+P8117,FooDB compound ID,ID of chemical compound in FooDB
+P8118,Forest Stewardship Council Certificate Code,unique identifier of a certificate issued by the Forest Stewardship Council
+P8119,HASC,codes to represent country subdivisions
+P8120,ModelSEED compound ID,ID of chemical compound in ModelSEED
+P8121,UM-BBD compound ID,ID for chemical compound in The University of Minnesota Biocatalysis/Biodegradation Database
+P8122,DLL Catalog author ID,identifier for a Latin author in the catalog Digital Latin Library
+P8123,DLL Catalog work ID,identifier for a Latin work in the catalog Digital Latin Library
+P8124,CPAN author ID,ID of a author in CPAN
+P8125,Fandango person ID,identifier for a person in the Fandango film database
+P8126,Club Netherlands Handball Association ID,official number given by the NHA to official clubs
+P8127,tournament format,format of a sports tournament
+P8128,Forest Stewardship Council License Code,unique identifier of a license issued by the Forest Stewardship Council
+P8129,IDU theatre name unique ID,identifier for theatres (not theatre buildings) in Czechia in the Theatre Institute database
+P8130,Internetowy Polski S?ownik Biograficzny ID,identifier for an article in the Internetowy Polski S?ownik Biograficzny
+P8131,dialect of computer language,computer language of which an item with this property is a dialect (a relatively small variation)
+P8132,Texas Historic Sites Atlas ID,10-digit identifier for a structure or a building in the Texas Historic Sites Atlas
+P8133,Swedish Glaciers ID,identifier for glaciers in Sweden
+P8134,Soccerdonna coach ID,identifier for a coach at the Soccerdonna
+P8135,Encyclopedia of ?esk Bud?jovice ID,identifier for article related to the city of ?esk Bud?jovice
+P8136,Il Sole 24 Ore ID,identifier for on the website of Il Sole 24 Ore newspaper
+P8137,Inventory of Archaic and Classical Poleis ID,identifier for an ancient city in the Inventory of Archaic and Classical Poleis
+P8138,located in the statistical territorial entity,statistical territorial entity in which a place is located or is part of. If a municipality or county is split into or part of several regions: add several values
+P8139,Moravian Lives ID,identifier for a person in the Moravian Lives database
+P8140,motorsportstats.com driver ID,identifier for a racing driver at motorsportstats.com
+P8141,motorsportstats.com series ID,identifier for motorsport series at motorsportstats.com
+P8142,motorsportstats.com venue ID,identifier for a motorsport venue at motorsportstats.com
+P8143,SAR ancestor ID,ID of someone in the ancestor database of Sons of the American Revolution (not including the P- prefix)
+P8144,Ternopil Encyclopedia ID,identifier for an entry on the official website of the Online Encyclopedia about Ternopil oblast
+P8145,Psocodea Species File ID,numerical identifier for a taxon on the Psocodea Species File project
+P8146,SkiMo Stats ID,alphabetical identifier for ski mountaineers at skimostats.com
+P8147,National-Football-Teams.com club ID,identifier for a association football (soccer) club in the National-Football-Teams.com database
+P8148,re:publica speaker ID,identifier of a person in the re:publica conference database of speakers
+P8149,Provenio ID,identifier of a book owner in the Provenance Database of Book Owners and the Book Provenance Records
+P8150,COVIDWHO ID,identifier of an article in the WHO COVID-19 Global literature on coronavirus disease database
+P8151,Sicilian Regional Assembly ID,identifier of a deputy of the Sicilian Regional Assembly
+P8152,Sicilian Regional Assembly numeric ID,numeric identifier of a deputy of the Sicilian Regional Assembly
+P8153,Accademia delle Scienze di Torino ID,identifier for a member of Accademia delle Scienze di Torino
+P8155,Republic of Korea Parliamentarian Society ID,ID for individuals indexed by the Republic of Korea Parliamentarian Society
+P8156,NKAA ID,identifier for an entry in the Notable Kentucky African Americans Database
+P8157,MmorialGenWeb monument ID,ID of a monument (war memorial) on MmorialGenWeb database
+P8158,History Colorado ID,identifier for a historic structure or a building on the History Colorado website
+P8159,SciProfiles ID,numerical identifier for an author in SciProfiles by MDPI
+P8160,Bibliotheca Augustana author ID,identifier for an author in the website Bibliotheca Augustana
+P8161,CONI honoured athlete ID,"identifier at coni.it for an Italian athlete (sportsperson) who received an award from the Italian National Olympic Committee (Italian: Comitato Olimpico Nazionale Italiano, CONI)"
+P8162,DGHS facility code,identifier for a facility indexed by Bangladesh's Directorate General of Health Services
+P8163,Diels-Kranz ID,identifier for an author in the fragment collection Die Fragmente der Vorsokratiker (5th edition)
+P8164,DPVweb ID,identifier of plant virus in DPV (Descriptions of Plant Viruses) database
+P8165,Maryland's National Register Properties ID,numerical identifier for a structure or a building listed in the National Register of Historic Places in the Maryland's National Register Properties database
+P8166,Encyclopaedia Metallum label ID,identifier for a label in the Encyclopaedia Metallum database
+P8167,WhatDoTheyKnow organisation ID,identifier for a British public organisation in the WhatDoTheyKnow database
+P8168,FactGrid item ID,identifier for an item in FactGrid
+P8169,Heritage Gateway ID,identifier for records on the historic environment in England
+P8170,RPPS ID,identifier for a health professional in the Rpertoire partag des professionnels intervenant dans le systme de sant
+P8171,Priest of Archidiecezja Gda?ska ID,
+P8172,Sejm-Wielki.pl profile ID,identifier for a person in Sejm-Wielki.pl and Wielcy.pl databases
+P8173,Extratime.ie player ID,identifier for a player at the Extratime.ie
+P8174,Slovak Registration ID,identifier for an organization in Slovakia assigned by the Statistical Office of the Slovak Republic
+P8175,Infames Romani ID,ID of a Roman politician in the Infames Romani database
+P8176,Itch.io developer profile,profile on itch.io
+P8177,Oregon Historic Sites Database ID,numerical identifier for a structure or a building in the Oregon Historic Sites Database
+P8178,motorsportstats.com team ID,identifier for a motorsport team at motorsportstats.com
+P8179,Canadiana Name Authority ID,"system control number used in the Canadiana Name Authority File, format: ""ncf"" followed by 8 digits"
+P8180,Indian Railways train number,identifier of a train service in a particular direction operated on the Indian rail network
+P8181,SNCF Station Identifier,identifier for train stations used by SNCF
+P8182,South African Company Registration Number,registration number of South African companies issued by the Companies and Intellectual Property Commission of South Africa
+P8183,general property-based URL formatter,"formatter URL to look up information about a class of items in an online resource. Use with properties generally found on an item. Sample: {P478} for volume or {P304} for page(s), {P433} for issue. Special value {page} for the first value of {P304}"
+P8184,DART-Europe thesis ID,identifier for a doctoral thesis on DART-Europe
+P8185,DoME exhibition ID,identifier of an exhibition in the Database of Modern Exhibitions (1905-1915)
+P8186,DPE school code,identifier for an educational institution issued by Bangladesh's Directorate of Primary Education
+P8187,Epistemonikos ID,identifier in the Epistemonikos database of systematic reviews
+P8188,Lexikon der Filmbegriffe ID,"ID for the German encyclopedia of film terms (""Lexikon der Filmbegriffe"")"
+P8189,National Library of Israel J9U ID,identifier used by the National Library of Israel
+P8190,UK Modern House Index architect ID,"identifier for an architect or architectural practice, in the UK Modern House Index"
+P8191,UK Modern House Index building ID,"identifier for a house, in the UK Modern House Index"
+P8192,Joconde technique ID,identifier for a creative technique from the Service des Muses de France Joconde authority file
+P8193,hardiness of plant,"recommended hardiness zone for plant, ability of plant to survive adverse growing conditions"
+P8194,hardiness zone,"geographic climate area relevant to plant growth and survival, on USDA scale or similar"
+P8195,ex-libris,ex-libris (or bookplate) of this person
+P8196,voting system,system used for this election or vote
+P8197,PragerU presenter ID,ID for a person on PragerU website
+P8198,regional government of Sicily ID,"identifier of a member of the Government of Sicily, called ""assessore"""
+P8199,Anagrafe Istituti Culturali Ecclesiastici ID,identifier for a cultural institution in the database Anagrafe Istituti Culturali Ecclesiastici
+P8200,BeWeb cultural institution ID,"identifier for a cultural institution, in the Italian Episcopal Conference database"
+P8201,ACUM work ID,"identifier for a musical work in Society of Authors, Composers and Music Publishers in Israel (ACUM)"
+P8202,Reta Vortaro ID,entry of an Esperanto lexeme in Reta Vortaro
+P8203,supported metadata,"metadata, information or properties that can be stored by a system, message or structure"
+P8204,tabular case data,"tabular data on Wikimedia Commons of confirmed cases, recoveries, deaths, etc. due to a medical event; corresponds to P8011, P1603, P8049, P8010, P1120. Do not delete such statements."
+P8205,Mozilla Developer Network article,article that describes the item on Mozilla Developer Network website
+P8206,Gazette of India notification,"notification number and date, published in the Gazette of India"
+P8207,The Conversation author ID,identifier for contributors to the online news outlet The Conversation
+P8208,tilt,"direction of the camera, measured as an angle from the Nadir to the Zenit"
+P8209,SILL software ID,identifier for a libre software in the Socle interministriel de logiciels libres website
+P8210,LombardiaBeniCulturali artwork author ID,identifier of an artwork author in the cultural heritage database of the Lombardy Region of Italy
+P8211,Bookogs work ID,identifier for a written work in the Bookogs database
+P8212,Gitabitan.net ID,identifier of Rabindra Sangeets on Gitabitan.net website
+P8213,Arlington Cemetery person ID,unofficial identifier for a person buried in Arlington Cemetery (the entry contains biographies and photographs)
+P8214,curriculum vitae,URL of the subject's curriculum vitae
+P8215,CDAPNC author ID,"identifier for an author on the catalogue of the ""Centre de documentation et d'archives"" of the ""Parc national des Cvennes"""
+P8216,iDAI.chronontology ID,identifier for an epoch in the database iDAI.chronontology compiled by the German Archaeological Institute
+P8217,iDAI.gazetteer ID,identifier for a place in the database iDAI.gazetteer compiled by the German Archaeological Institute
+P8218,Archaeology in Greece Online place ID,identifier for a place in the database Archaeology in Greece Online compiled by the cole franaise d'Athnes and the British School at Athens
+P8219,ASUT ID,"identifier for an entity (person, organization, family) in the Archivi storici dell'Universit di Torino"
+P8220,NMMA antiquities ID,identifier for antiquities of India which are documented by National Mission on Monuments and Antiquities
+P8221,NMMA built heritage ID,identifier for heritage sites of India which are documented by National Mission on Monuments and Antiquities
+P8222,rating.chgk.info ID,identifier of player at rating.chgk.info
+P8223,K-Scholar ID,identifier issued by the National Assembly Library of Korea
+P8224,molecular model or crystal lattice model,graphical representation of a molecule or crystal lattice
+P8225,is metaclass for,all instances of the subject are subclasses of the object
+P8226,Wyoming SHPO ID,numerical identifier for a structure or a building listed in the National Register of Historic Places in the Wyoming State Historic Preservation Office database
+P8227,Lower Austrian Castle ID,identifier in the online database for castles in Lower Austria maintained by the Institut fr Realienkunde des Mittelalters und der frhen Neuzeit (University of Salzburg)
+P8228,lighting,the way the photo got the light or the kind of natural light
+P8229,Co-Optimus ID,identifier of a video game in the co-optimus.com database
+P8230,Bookogs credit ID,"a page in Bookogs database which connects to books and magazines authored by a person, or describing a person or thing or idea"
+P8231,Wiener Wohnen ID,"identifier of municipal housing objects (Wiener Gemeindebauten) administered by Wiener Wohnen, Vienna, Austria"
+P8232,Arkansas Register of Historic Places ID,alphabetical identifier for a structure or a building in the Arkansas Register of Historic Places database
+P8233,Augustins de l'Assomption ID,identifier for an Assumptionist on the website of the order
+P8234,LiederNet author ID,author identifier used by the LiederNet Archive
+P8235,LiederNet composer ID,composer identifier used by the LiederNet Archive
+P8236,LiederNet song cycle ID,song cycle identifier used by the LiederNet Archive
+P8237,LiederNet text ID,song text identifier used by the LiederNet Archive
+P8238,Bibliography of the History of Slovakia ID,identifier of authorities used in Slovak history bibliography BHS
+P8239,MACRIS ID,identifier for a structure or a building in the Massachusetts Cultural Resource Information System database
+P8240,"National Register Database, Louisiana ID","numerical identifier for a structure or a building listed in the National Register of Historic Places in the National Register Database, Louisiana"
+P8241,type of age limit,qualifier on minimum age (P2899) to describe the type of age limit
+P8242,Niden INE,identifier in the National Statistics Institute
+P8243,500 Queer Scientists profile,profile on 500 Queer Scientists database
+P8244,Mediaqueer.ca artist ID,
+P8245,Mediaqueer.ca movie ID,
+P8246,Natural Atlas ID,identifier for a place on the Natural Atlas website
+P8247,nominal share capital,total of the nominal values of the issued ordinary and preference shares of the entity
+P8248,Colon Classification,"type of library classification, to be used for topics, not for written works; use with qualifier ""edition (P747)"" with item value ""CC 6"" or ""CC 7"""
+P8249,MDAH's HRI ID,numerical identifier for a structure or a building of interest in the Mississippi Department of Archives and History's Historic Resources Inventory database
+P8250,RI National Register Search ID,numerical identifier for a structure or a building listed in the National Register of Historic Places in the Rhode Island-National Register Search database
+P8251,CTHS author ID,identifier for an author on the website of the Comit des travaux historiques et scientifiques
+P8253,OSM Name Suggestion Index identifier,identifier for a brand in OpenStreetMapÕs Name Suggestion Index
+P8254,PC Games Database.de company ID,identifier of a company in the PC Games Database.de
+P8255,SNES central game ID,identifier of a video game in the SNES central database
+P8256,Super Mario Wiki ID,identifier for a Super Mario Wiki article
+P8257,Wikilengua article,name of an article on Wikilengua wiki
+P8258,field of training,"profession, position or activity someone learnt during a training, traineeship or apprenticeship"
+P8259,FlashScore.com player ID,identifier for a player at the FlashScore.com
+P8260,Aberdeen Built Ships ID,"identifier for a maritime vessel, in the Aberdeen Built Ships database"
+P8261,Origin ID,identifier for an game on Origin site
+P8262,npm package,name of a package on npm
+P8263,curriculum topics,topic or subject included in the curriculum
+P8264,attribution text,"the attribution string as specified by the licensor, that re-users are obliged to name"
+P8265,based on tabular data,Commons tabular data file that a Commons file (or statement) derives from
+P8266,FEMA number,identifier for flavor ingredients
+P8267,Mod DB mod ID,identifier for a mod on Mod DB
+P8268,Ubisoft Store game ID,identifier for a game on Ubisoft Store site
+P8269,Norwegian prisoner register person ID,identification number for Norwegians in captivity during World War II 1940 -1945
+P8270,ID natural monuments in Landkreis Oberspreewald-Lausitz,identifier for natural monuments in Landkreis Oberspreewald-Lausitz
+P8271,LombardiaBeniCulturali architecture author ID,identifier for an architecture author (not artwork author) in LombardiaBeniCulturali database
+P8272,BaGLAMa GID,unique identifier of category in the BaGLAMa tool
+P8273,GMC registration number,"identifier for a physician, in the United Kingdom General Medical Council's official register"
+P8274,living people protection class,when used with living people this project falls under the category described in our Living People policy
+P8275,position in biological sequence,"index or position of a nucleotide in a genomic sequence, or of an amino acid in a protein's amino acid sequence; used as qualifier"
+P8276,region within image,qualifier to identify a polygon within an image that the main statement applies to
+P8277,AFL player ID,identifier for a Australian rules footballer from AFL club player profile pages
+P8278,serial identifier on SerialZone,identifier for a series or episode in the Czech database SerialZone
+P8280,Modelhub ID,identifier for a performer on Modelhub
+P8281,Liszt Academy Lexikon person ID,
+P8282,Medusa NRHP ID,numerical identifier for a Maryland structure or building listed in the National Register of Historic Places in the Medusa database
+P8283,ISCO-08 occupation code,International Standard Classification of Occupations code according to the International Labour Organization (ILO) classification structure as of 2008
+P8284,motorsportstats.com event ID,identifier for a motorsport event at motorsportstats.com
+P8285,LGBT Danmark online dictionary ID,identifier in LGBT Danmark's online dictionary
+P8286,Olympedia people ID,"identifier for an athlete (sportsperson), coach, referee, etc. at Olympedia.org"
+P8287,Worlds Without End author ID,identifier for authors at the website Worlds Without End
+P8289,parish church,church which acts as the religious centre of a parish
+P8290,Archivio Storico Ricordi person ID,identifier of a person in the Archivio Storico Ricordi digital collection
+P8291,AusStage organisation ID,identifier for an organisation at AusStage
+P8292,AusStage person ID,identifier for a person at AusStage
+P8293,AusStage venue ID,identifier for a venue at AusStage
+P8294,AusStage work ID,identifier for a work at AusStage
+P8295,AustLit ID,identifier at AustLit
+P8296,Cinema Context ID,identifier of an item in Cinema Context
+P8297,New York Times contributor ID,identifier of an author on the New York Times website
+P8298,HBO Max ID,identifier for a creative work on HBO Max
+P8299,Semantic Scholar corpus ID,identifier for an article in the Semantic Scholar database (for hexadecimal ID see P4011)
+P8300,Montreux Jazz Festival concert ID,identifier of a concert in the Montreux Jazz Festival database
+P8301,Montreux Jazz Festival person ID,identifier of a person in the Montreux Jazz Festival database
+P8302,Montreux Jazz Festival song ID,identifier of a song performed during the Montreux Jazz Festival
+P8303,ESRB game ID,identifier for a video game on ESRB's official website
+P8304,NexusMods game ID,identifier for a video game on the modding website NexusMods
+P8305,LongTake person ID,identifier for a person on the longtake.it site
+P8306,has grouping,"section or grouping used in the appendix, list or table"
+P8307,has sorting,"entries are sorted by this in the appendix, list or table"
+P8308,has column,"columns for entries in the appendix, list or table"
+P8309,Yle topic ID,identifier for topics in Finland's national broadcaster Yle's web services
+P8310,digilibLT work ID,identifier for a work in the digilibLT digital library
+P8311,PHI Latin Texts work ID,identifier for a work in the PHI Latin Texts digital library
+P8312,Musisque Deoque work ID,identifier for a work in the Musisque Deoque digital library
+P8313,Den Store Danske ID,identifier of an article in the online encyclopedia denstoredanske.lex.dk
+P8314,Noovie person ID,identifier for a person on the noovie.com site
+P8315,NTB ID,identifier for a person or a theatrical production on the National Theatre Bucharest website
+P8316,sobory.ru ID,identifier of a church/monastery/chapel at sobory.ru website
+P8317,Philadelphia Museum of Art entity ID,identifier for a person or organization in the Philadelphia Museum of Art
+P8318,WorldFootball.net stadium ID,identifier for a association football (soccer) stadium in the WorldFootball.net database
+P8319,National Football Teams.com match ID,identifier for an association football (soccer) match in the National Football Teams.com database
+P8320,EU-Football.info stadium ID,identifier for a association football (soccer) stadium in the EU-Football.info database
+P8321,Canadian Football League player ID,identifier for a player on the Canadian Football League website
+P8322,cadastral municipality ID in Austria,"identifier for cadastral municipalities of Austria (Katastralgemeinde-Nummer); format: 5 digits; different from ""Austrian municipality key"" (P964)"
+P8323,Monasteries in the Netherlands until 1800 ID,
+P8324,funder,"entity that gives money to a person, organization, or project for a specific purpose"
+P8325,Indonesian Intangible Cultural Heritage Registration Number,registration number of intangible cultural heritage list of Indonesia maintained by the Ministry of Education and Culture
+P8326,Australian Classification ID,identifier for a creative work on the Australian Classification Board's official website
+P8327,intended subject of deprecated statement,(qualifier) this statement is deprecated as it is actually about another subject
+P8328,Democracy Index,Democracy Index rating of a country
+P8329,principal investigator,person(s) in charge of conducting a research project
+P8330,file page offset,offset between page numbering of the file (pdf/djvu) and the main numbering used in the reproduced work. Sample: if the book has page number 2 and that is on page 30 of the pdf: offset is 28 (30-2)
+P8331,strike tone,dominant note of bell
+P8332,Dansk litteraturs historie ID,identifier of an article in the online encyclopedia dansklitteraturshistorie.lex.dk
+P8333,DLive game ID,identifier for a video game on the dlive.tv website
+P8334,MuseScore artist ID,identifier for an artist on MuseScore
+P8335,Uffizi artwork ID,identifier for an object or place in the website of Gallerie degli Uffizi
+P8336,MNBAQ artist ID,unique identifier for an artist in the Muse national des beaux-arts du Qubec
+P8337,Cemeteries of France ID,identifier for a cemetery in the Cimetires de France database
+P8338,applies to name of object,(qualifier) label or alias (of the claim object) to which the claim applies
+P8339,entry receptor,receptor protein or protein whose receptor is being used by this subject virus/microorganism group to enter cells
+P8340,estimated value,"estimated value of a house, company, patent, etc"
+P8341,Dansk Biografisk Leksikon ID,identifier of a person in the online encyclopedia biografiskleksikon at lex.dk
+P8342,SIUSA archival fonds ID,identifier for an archival fonds in the Unified Information System for the Archival Superintendencies
+P8343,Odeon ID,identifier for a person or a theatrical production on the Odeon Theatre's website
+P8344,WikiTrek ID,identifier of a WikiTrek article
+P8345,media franchise,this creative work belongs to this media franchise
+P8346,Nomor Pokok Wajib Pajak,Indonesian tax identifier known as NPWP
+P8347,Spotify songwriter ID,identifier for a songwriter credited on Spotify
+P8348,NVE River Network (ELVIS) ID,unique identifier for rivers and tributaries in NVE River Network
+P8349,Proleksis enciklopedija ID,identifier for a topic in Proleksis enciklopedija
+P8350,Singapore Infopedia ID,identifier of article on Singapore Infopedia site
+P8351,vglist video game ID,identifier for a video game on vglist
+P8352,Veldkruus ID,identifier of an object in the Veldkruus database
+P8354,BitterDB compound ID,identifier of chemical compound in BitterDB
+P8355,Helsinki persistent building ID Ratu,"buildings identifier of the City of Helsinki, replaced by nationwide VTJ-PRT"
+P8356,SIUSA archive producer family ID,identifier for an archive producer family in the Unified Information System for the Archival Superintendencies
+P8357,SIUSA archive producer organization ID,identifier for an archive producer organization in the Unified Information System for the Archival Superintendencies
+P8358,Lexicon of the Yiddish Theatre ID,identifier for a biography in the Lexicon of the Yiddish Theatre
+P8359,Dewey Decimal Classification (works and editions),DDC number assigned to a publication
+P8360,Library of Congress Classification (works and editions),Library of Congress Classification number assigned to a publication
+P8361,Universal Decimal Classification (works and editions),UDC number assigned to a publication
+P8362,Regensburg Classification (works and editions),RVK number assigned to a publication
+P8363,study type,"classification system for clinical trial, experiment, research"
+P8364,Deku Deals ID,identifier of a video game in the Deku Deals website
+P8365,Thesaurus Sozialwissenschaften ID,identifier for a concept in the Thesaurus Sozialwissenschaften (Thesaurus for the Social Sciences)
+P8366,GCatholic person ID,ID of a person on GCatholic.org
+P8367,Legacy.com person ID,identifier for a person's obituary on Legacy.com
+P8368,number of branches,"number of branches or stores affiliated with a chain, brand or company"
+P8369,Econlib entry ID,"identifier for an entry in encyclopedia of the Library of Economics and Liberty by Liberty Fund, Inc., a private, educational foundation"
+P8370,UNBIS Thesaurus ID,identifier for a concept in the UNBIS Thesaurus
+P8371,"references work, tradition or theory","creative work, tradition or theory this creative work references by allusion, quote or similar means (for citations in scholarly and legal works use P2860, for other more specific properties have a look at ""see also"" on the property page)"
+P8372,Web of Science ID,unique academic work identifier assigned in Web of Science bibliographic database (Web of Science Core Collection only and do not include WOS: prefix)
+P8373,Encyclopedia Tatarica (tt) Online ID,Tatar version of online encyclopedia created by Institute of Tatar encyclopedia of Tatarstan Academy of Sciences
+P8374,Criminological Thesaurus ID,identifier for a concept in the United Nations Interregional Crime and Justice Research Institute's Criminological Thesaurus
+P8375,Crossref journal ID,identifier of a journal in Crossref
+P8376,Duden ID,identifier of a lexeme in duden.de
+P8377,Encyclopedia Tatarica (ru) Online ID,Russian version of online encyclopedia created by Institute of Tatar encyclopedia of Tatarstan Academy of Sciences
+P8378,Dowker-Thistlethwaite notation,"descriptive property of mathematical knots, also known as Dowker notation"
+P8379,qualifier for this property,"qualifier that is commonly used with this property. Note the difference to ""allowed qualifiers constraint"" (all that can be used) and ""mandatory qualifier constraint"" (all that should be used)"
+P8380,Directory of Afrocubanas ID,biographical note on Afrocuban Women
+P8381,Emmys person ID,identifer for Emmys person ID
+P8382,Finales Rugby ID,identifier for a rugby player on finalesrugby.fr website
+P8383,Goodreads work ID,unique identifier for written works (Q47461344) on Goodreads
+P8384,locality number in Austria,"identifier for a locality in Austria (Ortschaftskennziffer); format: 5 digits, generally starting with 0 or 1"
+P8385,IDU person ID,personal identifier for artists in Czechia in Theatre Institute database (IDU)
+P8386,Gramophone composer ID,"identifier for a composer, in the database of Gramophone UK magazine"
+P8387,Foreign war churchyards in Norway ID,identifier for foreign war churchyards in Norway
+P8388,Swedish Parliament person GUID,identifier for a Riksdagen member or other person on riksdagen.se with format UUID
+P8389,GCatholic diocese ID,identifier for a diocese on GCatholic.org
+P8390,PMSA ID,"identifier for an artwork in the National Recording Project database of the Public Monuments & Sculpture Association, UK"
+P8391,BBK (library and bibliographic classification),"library and bibliographic classification is the national classification system of Russia, it codifies themes of books published in Russia and some countries of the former USSR"
+P8392,Rate Your Music release ID,identifier for a music release on Rate Your Music site
+P8393,QUDT quantity kind ID,identifier for a quantity in the QUDT ontology
+P8394,gloss quote,"gloss for a lexeme, which originates from a citable source"
+P8395,use with property value,"qualifier for ""properties for this type"" (P8397): value to be used with property in a statement. Sample: instances of bell tower have ""parts of the class"" statements with the value ""bell""."
+P8396,use with qualifier,"qualifier for ""properties for this type"" (P8397): indicate the qualifier to be used with the property in a statement. Sample: instances of bell tower have ""parts of the class"" statements with value ""bell"" and these are to be qualified with ""quantity"""
+P8397,prompt when missing,"qualifier for ""properties for this type"" (P1963): item with text to display when statement is missing"
+P8398,offset from vertical,"distance from a vertical line at a given height, e.g. overhang in metres of a leaning tower at its top"
+P8399,Unique Property Reference Number,unique identifier for every location that can have an address in the UK
+P8400,House Divided ID,identifier of a topic in House Divided: The Civil War Research Engine at Dickinson College
+P8401,TheFreeDictionary medical term ID,identifier for a term in the medical-dictionary of TheFreeDictionary by Farlex Inc.
+P8402,open data portal,the item for the open data portal belonging to this entity
+P8403,theorised by,subject who suggested or proposed this concept or invention
+P8404,DOI formatter,a formatter string that will create an DOI
+P8405,People's Representative Council of Indonesia ID,
+P8406,Grove Art Online ID,identifier of a topic in Grove Art Online
+P8407,Supreme Court of Sweden case number,identifier for a case in the Supreme Court of Sweden
+P8408,KBpedia ID,"identifier for the KBpedia knowledge graph, which provides consistent mappings across seven large-scale public knowledge bases including Wikidata, and is used to promote data interoperability and extraction of training sets for machine learning"
+P8409,Swedish Environmental Protection Agency Amenity OBJECTID,identifier from the Swedish Environmental Protection Agency geodata table with amenities related to protection areas
+P8410,Oxford Bibliographies ID,identifier for a topic in Oxford Bibliographies
+P8411,set in environment,"environment (geographic feature, building type, etc.) the narrative work is set in"
+P8412,Swiss Timber Bridges ID,identifier of a bridge on Swiss Timber Bridges
+P8413,academic appointment,this person has been appointed to a role within the given higher education institution or department; distinct from employment or affiliation
+P8414,AlloCin theater ID,identifier for a movie theater in the AlloCin database
+P8415,Maniadb artist ID,unique identifier for artists listed in the Maniadb database
+P8416,Dowker-Thistlethwaite name,unambiguous systematic identifier scheme for mathematical knots
+P8417,Group Properties wiki ID,identifier for an article on the Group Properties wiki
+P8418,Oberwolfach mathematician ID,identifier for a mathematician in the Oberwolfach Photo Collection of Photographs
+P8419,Archive of Our Own tag,"tag for this item on ""Archive of Our Own"""
+P8420,GameBanana game ID,identifier for a video game on GameBanana
+P8421,Spanish Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at COE.es, a website of the Spanish Olympic Committee (Spanish: Comit Olmpico Espaol)"
+P8422,EHESS ID of a French commune,identifier with digits to describe of French commune by EHESS
+P8423,version control system,version control system used by a content repository
+P8424,OpenHistoricalMap relation ID,"identifier of a relation in OpenHistoricalMap; see also P402, the corresponding property for OpenStreetMap relations"
+P8425,IAPH code,"identifier for cultural heritage records of Instituto Andaluz del Patrimonio Histrico, Spain"
+P8426,Knot Atlas identifier,link from mathematical knot/link articles to authoritative information source Knot Atlas
+P8427,Knotinfo ID,identifier used to link to the KnotInfo website entry for a knot
+P8428,interactive elements,qualifier on ESRB rating (P852) to describe interactive elements
+P8429,Swiss Tunnel ID,identifier of a Swiss tunnel in the Swiss Tunnel-Database
+P8430,Wien Kulturgut: Kunstwerke im ffentlichen Raum ID,"identifier of public art in the ""public art register"" of the municipality of Vienna, Austria"
+P8431,course,"course type of a food dish (appetizer, dessert, drink, main course, salad, side dish)"
+P8432, sterreichisches Musiklexikon Online ID,"identifier for entries in the sterreichisches Musiklexikon Online, published by Austrian Academy of Sciences"
+P8433,Swedish Riksdag document ID,"identifier for documents produced in the Riksdag, the national legislature and the supreme decision-making body of Sweden"
+P8434,Artprice artist ID,identifier of an artist in Artprice
+P8435,AnyDecentMusic album ID,identifier for album reviews at AnyDecentMusic
+P8439,SAH Archipedia architect ID,"identifier for an architect on the website of the SAH Archipedia, the online encyclopedia by the Society of Architectural Historians"
+P8440,Personendatenbank Germania Sacra ID,entry in the Digital Index of Persons of Germania Sacra
+P8441,Cistercian Biography Online ID,"identifier for entries in the online database ""cistercian biographie online"" www.zisterzienserlexikon.de"
+P8442,Digital Library of the Caribbean ID,identifier of a document in the Digital Library of the Caribbean
+P8443,Homebrew formula name,identifier of a package (formula) in the Homebrew package manager
+P8445,Our Campaigns candidate ID,identifier of a candidate in the Our Campaigns political candidate database
+P8446,Gateway to Research person ID,identifier for a person in the UK Research and Innovation (UKRI)'s Gateway to Research (GtR) database of research funding
+P8447,Unique Street Reference Number,"unique 8 digit number assigned to streets, roads, footpaths or public rights of way in the United Kingdom"
+P8448,Benerail station ID,identifier for train stations used by Benerail/SNCB/Thalys
+P8449,Churches in Limburg ID,identifier of an object in the Churches in Limburg database
+P8450,peak bagging classification,recognised peak bagging classification of a mountain or hill
+P8453,public transport stop,"general (e.g. nearest) public transport stop (bus, tram, train, subway)"
+P8454,Vmusic.bg artist ID,identifier of an artist at Bulgarian website Vmusic.bg
+P8455,US Quaternary Fault ID,ID Number of Quaternary Fault in the US as assigned by the United States Geological Survey
+P8456,ASCRG 2016 ID,identifier in the Australian Standard Classification of Religious Groups 2016
+P8457,ANZSOC 2011 ID,identifier for criminal offences in Australian and New Zealand
+P8458,ANZSCO 2013 ID,"the Australian and New Zealand Standard Classification of Occupations, 2013, by the Australian Bureau of Statistics and Stats NZ"
+P8459,descriptive solubility,"(qualifier for P2177) qualitative level of solubility, when a numerical value is not available"
+P8460,applies if regular expression matches,"the statement is only true, if the id matches this regular expression"
+P8461,energy consumption per transaction,energy footprint per transaction for a cryptocurrency
+P8462,Political Graveyard politician ID,identifier for a politician in the Political Graveyard database
+P8463,SAH Archipedia building ID,"identifier for a building on the website of the SAH Archipedia, the online encyclopedia by the Society of Architectural Historians"
+P8464,content partnership category,Wikimedia Commons category for media files contributed by this institution
+P8465,van der Waals constant a,constant used in the van der Waals equation in the pressure factor
+P8466,van der Waals constant b,constant used in the van der Waals equation in the volume factor
+P8467,Wiki-Rennes ID,identifier for an article on Wiki-Rennes
+P8468,Queensland Biota ID,"identifier for a taxon, in a Queensland Government database of species profiles"
+P8469,Australian Weed ID,"identifier for a taxon, in an Atlas of Living Australia database of weed profiles"
+P8470,order number,"identifier given to rolling stock at the point of purchase, sale, or manufacturing"
+P8471,pertainym of,this lexeme sense is of or pertaining to the value lexeme sense
+P8472,Encyclopedie berbere keyword ID,ID for a keyword in the French encyclopedia about the Berbers Encyclopdie berbre
+P8473,Japanese magazine code,unique code for magazines used in Japan
+P8474,lobbywatch.ch ID of a member of the Swiss parliament,identifier for a Swiss MP within lobbywatch.ch 's database
+P8475,IVS ID,identifier of objects and ways in the Inventory of historical ways Switzerland (IVS)
+P8476,BTI Governance Index,measures change of countries towards democracy and market economy
+P8477,BTI Status Index,measures change of countries towards democracy and market economy
+P8478,Svenska Akademiens Ordbok main entry ID,unique identifier of the lexeme in Svenska Akademiens Ordbok (SAOB)
+P8479,National Registry of Exonerations Case ID,Case ID for an individual listed in a database of people who have been exonerated of crimes in the United States
+P8480,Ofsted inspection rating,grade for a school inspection by Ofsted
+P8481,Described and Captioned Media Program producer ID,"identifier code from Described and Captioned Media Program, a program fully funded by the United States Department of Education which provides resources for students with disabilities"
+P8482,?esk? hudebn slovnk osob a instituc ID,identifier for a person or institution in the ?esk? hudebn slovnk osob a instituc (Czech Music Dictionary of People and Institutions)
+P8483,PM20 geo code,"code for a geographical category in the 20th Century Press Archives' ""countries"" category system"
+P8484,PM20 subject code,code for a subject category in the 20th Century Press Archives' subject category system
+P8485,distribution map of taxon,dynamic distribution map of taxon
+P8486,DATAtourisme ID,identifier (RDF URI) for the subject issued by DATAtourisme database
+P8487,OpenCritic critic ID,identifier for a game reviewer on OpenCritic
+P8488,ASCCEG 2019 ID,identifier in the Australian Standard Classification of Cultural and Ethnic Groups 2019
+P8489,SmallGroup ID,"identifier of a specific small group, in the SmallGrp library and Magma"
+P8490,ANZSIC 2006 ID,identifier of division/subdivision/group/class in the Australian and New Zealand Standard Industrial Classification 2006
+P8491,AHECC 2017 ID,identifier in the Australian Harmonized Export Commodity Classification 2017
+P8492,Tree of Public Interest ID,case name for monumental trees in Portugal
+P8493,Denkmaldatenbank Thurgau ID,identifier in the database of protected properties maintained by the Kanton of Thurgau
+P8494,DSSTOX compound identifier,identifier of compound in DSSTOX
+P8495,South Africa EMIS code,code of a South African institution in the Education Management Information System
+P8496,Archive Site Trinity College Cambridge ID,"identifier for an entity (person, organization, family) in the website of the Archive of Trinity College, Cambridge"
+P8497,height of center of mass,
+P8498,road number formatter,template from which Ò$1Ó can be automatically replaced by a bare road number to obtain the alphanumeric abbreviation of a numbered road
+P8499,WISAARD resource ID,numerical identifier for a Washington State structure or a building in the WISAARD database
+P8500,Vietnamese middle name,middle name of a Vietnamese person; use P735 qualified by P1545 for the middle name of a partially westernized name
+P8501,Gateway to Research organisation ID,identifier for an organisation in the UK Research and Innovation (UKRI)'s Gateway to Research (GtR) database of research funding
+P8502,SòKL code,identifier for substances assigned by the Czech State Institute for Drug Control
+P8503,heraldic attitude,the attitude or posture of a charge on a coat of arms (e.g. lion rampant)
+P8504,Science Fiction Awards Database author ID,identifier for a person in the Science Fiction Awards Database
+P8505,traffic sign template image,image used as a template for creating traffic sign images (P14) for specific instances of this sign or members of this highway system
+P8506,power plant operating licence (Turkey),operating licence for a power plant in Turkey
+P8507,Legacy.com newspaper ID,identifier for newspapers that have their obituaries indexed on Legacy.com
+P8508,ChemSynthesis ID,identifier of a chemical compound in ChemSynthesis
+P8509,Dizionario Biografico dei Protestanti in Italia ID,identifier for a person in the Dizionario Biografico dei Protestanti in Italia
+P8511,Fototeka person ID,identifier of a person in Fototeka (Polish National Film Archive)
+P8512,size comparison diagram,property for the diagram file that compares the item size with the size of another known object
+P8513,LibraryThing series ID,authority control for series on LibraryThing
+P8514,TOPCMB ID,unique identifier for a entity Tesauro de Objetos do Patrimnio Cultural nos Museus Brasileiros website
+P8515,Swiss Industrial Heritage ID,
+P8516,Library of Congress Medium of Performance Thesaurus ID,identifier for a term in the Library of Congress Medium of Performance Thesaurus for Music
+P8517,view,view from the given site
+P8518,Henrik Ibsen writings ID,identifier for an item in Henrik Ibsen writings
+P8519,RKD thesaurus ID,identifier in the RKD thesaurus (Rijksbureau voor Kunsthistorische Documentatie)
+P8520,TCLF ID,identifier for a person or an historic site on the Cultural Landscape Foundation website
+P8521,Sculptures and cities database ID for sculptures,identifier for sculptures in the Sculptures and cities database
+P8522,Manioc book ID,"identifier for a book on the website of the Manioc digital library for the Caribbean, the Amazon and the Guyane"
+P8523,Prsence Compositrices composer ID,identifier of a female composer on the website Prsence Compositrices
+P8524,Offizielle Deutsche Charts song ID,identifier for an song on Offizielle Deutsche Charts site
+P8525,ToS;DR service numerical identifier,"number used by Terms of Service; Didn't Read to refer to a web-accessible service with a web-accessible ToS (P7014), privacy policy (P7101), or similar legal document"
+P8526,Have I Been Pwned breach ID,identifier for a data breach in haveibeenpwned.com
+P8527,Unsplash user ID,identifier for a person or organisation with an account on Unsplash.com
+P8528,EIB project ID,identifer of a project either funded by or planned to be funded by the European Investment Bank
+P8529,ANZSRC 2020 FoR ID,Australia and New Zealand Standard Research Classification 2020 identifier for a field of research
+P8530,alternative form,link to spelling variant between two or more forms
+P8531,Filmstarts title ID,identifier of a movie on www.filmstarts.de
+P8532,Trismegistos text ID,identifier of a papyrus or an epigraphic text on Tresmegistos
+P8533,SMARTS notation,notation used for specifying substructural patterns in chemical molecules
+P8534,SPLC individual ID,identifier of an individual in the Southern Poverty Law Center's Extremist Files
+P8535,tala,musical meter for Indian music
+P8536,raga,melodic framework for Indian music
+P8539,ERIC Thesaurus ID,identifier for a term in the Education Resources Information Center (ERIC) Thesaurus
+P8540,American Folklore Society Ethnographic Thesaurus ID,"controlled vocabulary of terms about folklore, ethnomusicology, ethnology, and related fields"
+P8541,BHF magazine ID,identifier for a magazine on the online Bibliographie de l'histoire de France
+P8542,Macedonian cadastral municipality ID,identifier of Macedonian cadastral municipalities
+P8543,Monumentbrowser ID,identifier of a protected monument in the Monumentbrowser database of South Tyrol
+P8544,Frauen in Bewegung 1848Ð1938 ID,"identifier for entries in the ARIADNE ÒFrauen in Bewegung 1848Ð1938Ó database, published by the Austrian National Library"
+P8545,Nasjonalt skoleregister ID,identifier of an educational institution in the Nasjonalt skoleregister (National School Registry) from the Norwegian Directorate for Education and Training
+P8546,recording location,"location where a media item (sound, video, etc.) was recorded"
+P8547,BHF author ID,identifier for an author on the online Bibliographie de l'histoire de France
+P8548,Proballers ID,identifier for a basketball player on the Proballers website
+P8549,Opera Online work ID,identifier of a work on the Opera Online website
+P8550,law identifier,a sequence of numbers assigned to laws/acts that were passed by countries or local governments
+P8551,Opera Online composer ID,identifier of a composer or librettist on Opera Online website
+P8552,Opera Online opera house ID,identifier of a opera or theater on Opera Online website
+P8553,CTHS publication ID,identifier for a publication on the CTHS website (ENC)
+P8554,earliest end date,(qualifier) earliest date on which the statement could have begun to no longer be true
+P8555,latest start date,(qualifier) latest date on which the statement could have started to be true
+P8556,extinction date,date that a species or language is thought to have gone extinct
+P8557,edukado.net Panteono ID,unique ID for the person in Panteono of the website edukado.net
+P8558,Butcher tableau,table containing the coefficients of a Runge-Kutta method
+P8559,Chrome Webstore extension ID,unique identifier for a Google Chrome extension
+P8560,PARADISEC Catalog,identifier of one of several languages on PARADISEC (the Pacific And Regional Archive for Digital Sources in Endangered Cultures)
+P8561,NPR station ID,identifier for a National Public Radio member station
+P8562,JSTOR publisher ID,identifier for a publisher in JSTOR
+P8563,Emporis company ID,
+P8564,Art Bonus ID,identifier for Italian national heritage which experienced interventions registered in the website Art Bonus
+P8565,British Museum object ID,identifier for a object in the British Museum
+P8566,monumenta.ch ID,identifier for a Latin author in the website monumenta.ch
+P8567,The Living New Deal ID,identifier for a project on the Living New Deal website
+P8568,Jewish Virtual Library ID,identifier in the Jewish Virtual Library
+P8569,YIVO Encyclopedia of Jews in Eastern Europe ID,identifier of an article in the YIVO Encyclopedia of Jews in Eastern Europe
+P8570,front and back matter,front and back matter of a book
+P8571,external auditor,"external company or person appointed to audit a business' or an organization's books, requirement for many companies"
+P8572,Spanish Artists from the Fourth to the Twentieth Century ID,identifier for an artist in Spanish Artists from the Fourth to the Twentieth Century: A Critical Dictionary
+P8573,LSG localbody code,Localbody code (political territorial entity) in Local Self Government Department (Kerala) site
+P8574,NYARC Discovery ID,record for a publication held by the New York Art Resources Consortium (NYARC) in New York City
+P8575,"Encyclopaedia of Architects, Vienna 1770Ð1945 ID",identifier for an architect who has worked in Vienna in the Architektenlexikon of the Architekturzentrum Wien
+P8576,Hrvatska tehni?ka enciklopedija ID,identifier for an entry in the Hrvatska tehni?ka enciklopedija
+P8577,ICP artist ID,identifier for a photographer on the International Center of Photography website
+P8578,TracesOfWar person ID,identifier for historical persons associated with post-18th-century wars
+P8579,Firefox Add-ons URL slug,"unique identifier for a Firefox add-on listed on the Firefox Add-ons website, not to be confused with an extension ID"
+P8580,NHK Archives Portal person ID,identifier for a person on the NHK Archives Portal website
+P8581,Hrvatski biografski leksikon ID,identifier for a person in the Hrvatski biografski leksikon (Croatian biographical dictionary)
+P8582,InciWeb ID,identifier for a wildfire in the InciWeb database
+P8583,Yale University Art Gallery ID,identifier for an artwork on the Yale University Art Gallery website
+P8584,Wikipedia Library partner ID,numerical identifier for a resource in the Wikipedia Library Card Platform
+P8585,FIPRESCI person ID,identifier for a critic or filmmaker on the International Federation of Film Critics website
+P8586,Anais do Museu Paulista article ID,identifier for a scholarly article in the Anais do Museu Paulista
+P8587,Legacies of British Slave-ownership place ID,identifier for a physical item in the Legacies of British Slave-Ownership database
+P8588,Wisconsin National or State Registers Record ID,alphanumerical identifier for a structure or building listed in the National Register of Historic Places in the Wisconsin Historical Society database
+P8589,Carl-Maria-von-Weber-Gesamtausgabe ID,identifier in the online database Carl-Maria-von-Weber-Gesamtausgabe (WeGA)
+P8590,Jewish Encyclopedia ID,article identifier in online version of 1906 Jewish Encyclopedia
+P8591,Grove Music Online ID,identifier of a topic in Grove Music Online
+P8592,aerial view,image of the subject taken from the air
+P8593,Hikr waypoint ID,numerical identifier for a waypoint on hikr.org
+P8594,ride height,ground clearance of vehicle or distance between the base of a vehicle tire and the lowest point
+P8595,DIL ID,numerical identifier for a lithographer in the 'Dictionnaire des imprimeurs-lithographes du XIXe sicle'
+P8596,category for the exterior of the item,"category for multimedia files depicting exterior views of this item (object, place)"
+P8597,axle track,distance between the centerline of two roadwheels on the same axle
+P8598,Seattle Art Museum ID,identifier for an artwork on the Seattle Art Museum website
+P8599,Nelson-Atkins Museum of Art artwork ID,identifier for an artwork on the Nelson-Atkins Museum of Art website
+P8600,TV Maze series ID,identifier number in the TV Maze database of shows
+P8601,Barcelona Public art ID,identifier for public art in Barcelona
+P8602,University of Ghana Digital Collections (UGSpace) ID,authority control identifier for the University of Ghana Digital Collections (UGSpace)
+P8603,Istrapedia ID,identifier for an article in the Internet encyclopedia Istrapedia
+P8604,OnlyFans ID,identifier for a person on the OnlyFans website
+P8605,Linked Open Data Cloud identifier,identifier of dataset used by the Linked Open Data Cloud project
+P8606,Stairway To Hell ID,identifier of a video game cover in the Stairway To Hell database
+P8607,The Cutting Room Floor ID,identifier in The Cutting Room Floor wiki
+P8608,Fatcat ID,"identifier on fatcat.wiki, a repository of scholarly articles maintained by the Internet Archive"
+P8609,China Treaty Database ID,identifier for a treaty in the China Treaty Database
+P8610,e-GOV law ID,identifier in the e-Gov Law Search
+P8611,Portugal. Dicionrio Histrico ID,"identifier for an article in the dictionary Portugal. Dicionrio Histrico, Corogrfico, Herldico, Biogrfico, Bibliogrfico, Numismtico e Artstico"
+P8612,past Fellow of the Royal Society ID,identifier for past Fellows (deceased) of the Royal Society
+P8613,Regesta Ecclesiastica Salisburgensia ID,identifier of the Regesta Ecclesiastica Salisburgensia biographical Wiki
+P8614,Slack organization ID,unique portion of the group or organization URL on Slack
+P8615,Oakeshott typology,catalogue of medieval swords
+P8616,Kansas Historic Resources Inventory ID,identifier for a structure or building in the Kansas Historic Resources Inventory database
+P8617,Historic Montana ID,numerical identifier for a structure or building on the Historic Montana website
+P8618,ITF player ID 2020,identifier for a tennis player at the International Tennis Federation (ITF) website as of 2020
+P8619,BD Gest' series ID,numerical identifier for a comic book series on the BD Gest' website
+P8620,construction point,the steepest point on a ski jumping hill
+P8621,turning radius,radius of smallest circle a particular automobile or similar vehicle can turn along
+P8622,hill size,ski jumping hill size
+P8623,American Battlefield Trust battlefield ID,identifier for a battlefield on the American Battlefield Trust website
+P8624,American Battlefield Trust ID (person),identifier for a person on the American Battlefield Trust website
+P8625,bibliography,Wikimedia page that gives a selection of relevant texts on the given topic
+P8626,opening time,"time when an establishment or attraction opens, qualifier for P3025"
+P8627,closing time,"time when an establishment or attraction closes, qualifier for P3025"
+P8628,engine displacement,measure of the cylinder volume of an engine
+P8629,Occupational Outlook Handbook ID,identifier for occupations in the Occupational Outlook Handbook
+P8630,Thomas Jefferson Encyclopedia ID,identifier for an entry on the Thomas Jefferson Encyclopedia website
+P8631,Canadian Women Artists History Initiative ID,identifier in the artist database of Canadian Women Artists History Initiative
+P8632,Book Marks ID,identifier for a book at Book Marks
+P8633,Re-Member ID,identifier of a person in the biographical register for the Parliament of Victoria in Australia
+P8634,SPoT skater ID,identifier of a skateboarder in the Skatepark of Tampa database
+P8635,NDL law ID,identifier in the NDL (National Diet Library) Japanese Law Index
+P8636,McClintock and Strong Biblical Cyclopedia ID,identifier for an article in McClintock and Strong Biblical Cyclopedia
+P8637,L'Officiel des spectacles ID,identifier for an artist on the L'Officiel des spectacles website
+P8638,British and Irish Furniture Makers Online ID,"identifier for a person or company, in the British and Irish Furniture Makers Online (BIFMO) database"
+P8639,Cincinnati Art Museum ID,identifier for an artwork on the Cincinnati Art Museum website
+P8640,Dallas Museum of Art ID,identifier for an artwork on the Dallas Museum of Art website
+P8642,FBref squad ID,identifier for an association football team on FBref.com
+P8643,Dostoyevsky and His Entourage ID,identifier for a person somehow connected to Fyodor Dostoyevsky in the website in fedordostoevsky.ru
+P8644,Lambiek comic magazines ID,identifier for an entry about comic magazines from Lambiek
+P8645,Energy Identification Code,code used in Europe to uniquely identify entities and objects related to the electricity and gas sector
+P8646,expansion of,"expansion pack of a game (video game, tabletop or board game)"
+P8647,Library of Congress Children's Subject Headings ID,identifier for a heading in the Library of Congress Children's Subject Headigns
+P8648,Ministry of the Interior of Italy ID,identifier of a politician in the Italian Ministry of the Interior's database
+P8649,National Park Service place ID,identifier for a place in the United States on the National Park Service website
+P8650,MnDOT Historic Bridges ID,identifier for a historic bridge in the database of the Minnesota Department of Transportation
+P8651,Open Civic Data Division ID,identifier scheme for assigning globally unique identifiers to divisions used in civic datasets and tools
+P8652,Netflix maturity rating,content rating used and determined by Netflix in countries where local ratings do not apply to streaming media
+P8653,Museen Dresden article ID,identifier of persons and organisations on Museen der Stadt Dresden
+P8654,SSYK 2012 The Swedish Standard Classification of Occupations,Swedish occupation code based on ISCOÐ08
+P8655,LoC HABS/HAER/HALS place ID,"alphanumerical identifier for a place covered by the Historic American Buildings Survey, Historic American Engineering Record or the Historic American Landscapes Survey on the Library of Congress website"
+P8656,Symptom Ontology ID,identifier in the Symptom Ontology
+P8657,photoLondon ID,identifier for the photoLondon database
+P8658,Syro-Malabar Catholic Church ID,Syro-Malabar Catholic Church website identifier
+P8659,TDD number,"TDD number (textphone/teletype for deaf people) in standard format (RFC3966), without 'tel:' prefix"
+P8660,Native Plants Database ID,"identifier for a taxon in the Native Plants Database, on the Lady Bird Johnson Wildflower Center website"
+P8661,Lower Sorbian place name ID,identifier used in the database for Lower Sorbian place names on dolnoserbski.de maintained by the Sorbian institute
+P8662,Les Roses cultives L'HaØ en 1902 ID,"identifier in ""Les Roses cultives L'HaØ en 1902: essai de classement"" by Jules Gravereaux"
+P8663,Maniadb album ID,identifier for albums listed in the Maniadb database
+P8664,USA Water Polo Hall of Fame ID,identifier for an inductee on the USA Water Polo Hall of Fame website
+P8665,Prsence Compositrices work ID,identifier of a work on the website Prsence Compositrices
+P8666,Regional Council of Tuscany ID,
+P8667,twin town sign,image of sign with twin towns on it
+P8668,Indonesian prison database ID,Indonesian prison database
+P8669,Encyclopaedia Beliana ID,identifier of an article in Encyclopaedia Beliana
+P8670,character designer,"person in charge of developing the style and concept of a character in a video game, anime or other creative work"
+P8671,Deutsche Bahn station code,identifier for train stations and other operating points used by Deutsche Bahn
+P8672,Twitter topic ID,identifier for a topic in Twitter
+P8673,Naver movie ID,identifier for a film in the Naver database
+P8674,Bollywood Hungama movie ID,identifier for Indian film at Bollywood Hungama
+P8675,BoardGameGeek family ID,identifier for a game series on the BoardGameGeek website
+P8676,London Stock Exchange company ID,identifier for a company listed on the London Stock Exchange
+P8677,Rgion ële-de-France ID,identifier of an elected official on the regional council of ële-de-France website
+P8678,Slovnk ?esk?ch nakladatelstv 1848-1949 person ID,identifier of person in Czech database of publishing houses (1848-1949)
+P8679,"Dictionary of Occupational Titles Code (fourth edition, revised)","occupation code from the Dictionary of Occupational Titles, fourth edition, revised"
+P8680,FVLB work ID,identifier for a film or video game on FVLB's official website
+P8681,Passion Patrimoine ID,identifier on the website passion-patrimoine.fr
+P8682,number of negative votes,"number of votes that a referendum, proposal, bill, etc. has been rejected in a vote"
+P8683,number of support votes,"number of votes that a referendum, proposal, bill, etc. has received support in a vote. Other vote-counting properties are aimed at general elections where voting translates into support, but there is no explicit option to vote for / against"
+P8684,x-offset,offset on the x-axis or primary axis
+P8685,y-offset,offset on the y-axis or secondary axis
+P8686,Biographical Dictionary of Fourierism ID,"identifier for a person on the Biographical Dictionary of Fourierism, a dictionary of actors of the Fourierism movement"
+P8687,social media followers,"number of subscribers on a particular social media website (use as main statement only; see P3744 instead for qualifier). Qualify with ""point in time"" and property for account. For Twitter, use numeric id."
+P8688,CompositionToday composer ID,composer ID on the website CompositionToday
+P8689,ITHL author ID,identifier for an author in the website of the Institute for the Translation of Hebrew Literature (ITHL)
+P8690,Quebec Dams Directory ID,unique identifier of a dam in Quebec
+P8691,SwissLipids identifier,identifier for lipids used by the SwissLipids database
+P8692,ACER code,code of energy market player by the Agency for the Cooperation of Energy Regulators
+P8693,fandom,"fan group name of a celebrity, musical group, or an artist"
+P8694,Science Museum Group ID,external identifier for the Science Museum Group
+P8695,Slovnk ?esk?ch nakladatelstv 1848-1949 publishing house ID,identifier of publishing houses in Czech database of publishing houses (1848-1949)
+P8696,Directory of Belgian Photographers ID,alphabetical identifier for a photographer in the Directory of Belgian Photographers
+P8697,RNACentral ID,An ID in the RNA central database
+P8698,Turkey's Culture Portal ID,identifier for a heritage subject on the Turkey's Culture Portal website
+P8699,NSW State Archives and Records Authority ID,identifier in the URL for items by the NSW State Archives and Records Authority
+P8700,Scottish Brick History Brick & Tileworks ID,"Scottish Brick History project identifier for a brick or tile works in Scotland, without any trailing slash"
+P8701,has census,general population census of the country or region
+P8702,parallel street,closest street(s) that run parallel to the item
+P8703,entry in abbreviations table,abbreviation of name of concept in a publication's list of abbreviations
+P8704,Spotify playlist ID,identifier for a playlist on Spotify
+P8705,Artist ID of the department of Prints and Drawings of the Louvre,Artist ID of the online database of the Department of Prints and Drawings of the Louvre
+P8706,ritual object,"ceremonial or ritual objects associated with, and used as part of, rites and rituals practiced in everyday life and in rarer cultic and communal rites"
+P8707,NBIC taxon ID,"identifier for a taxon in the Norwegian Biodiversity Information Centre database, a database on species and ecosystems in Norway"
+P8708,Danish educational institution number,number for Danish educational institutions
+P8709,CTAN package ID,identifier for a package on the Comprehensive TeX Archive Network
+P8710,Dresden Street ID,"official identifier for streets in Dresden, Saxony, Germany; format: 5 digits"
+P8711,Emojipedia ID,identifier of a page on Emojipedia
+P8712,FIBA Hall of Fame ID,identifier for a FIBA hall of famer on the fiba.basketball website
+P8713,Stadtwiki Dresden article,"article in Wiki of the town Dresden, Saxony, Germany"
+P8714,GADM ID,identifier in the Global Administrative Area database
+P8715,Lambiek Special pages ID,identifier for an entry about comics from Lambiek
+P8716,Mir@bel publisher ID,numerical identifier for a journal publisher on Mir@bel
+P8717,ILO Thesaurus ID,identifier for a term in the ILO Thesaurus
+P8718,AVN person ID,numerical identifier for a person actor on the AVN website
+P8719,CCFr library ID,identifier for a library on the union catalog of France
+P8720,xHamster ID,identifier for a person in the database of the xHamster website
+P8721,AWMDB performer ID,numerical identifier for a pornographic actor in the Adult Web Movie Database
+P8722,Normattiva ID,URL linking to the law in the Normattiva website
+P8723,American Heritage place ID,identifier for an American historic site on the American Heritage website
+P8724,BHL name ID,identifier for a scientific name in the Biodiversity Heritage Library
+P8725,Hungarian Water Polo Federation player ID,identifier for a player on the Hungarian Water Polo Federation website
+P8726,Irish Statute Book ID,identifier of legislation on the irishstatutebook.ie website
+P8727,Minecraft UUID,the UUID of a Minecraft account [lowercase with hyphens]
+P8728,Nachlsse in Austria ID,"identifier of a reference work on artistic, academic and cultural Nachlsse in Austria"
+P8729,AniList anime ID,numerical identifier for an anime on AniList.co
+P8730,National Park Service people ID,"identifier for a person on the website of the National Park Service, an American federal agency"
+P8731,AniList manga ID,identifier for AniList.co manga and light novels
+P8732,Archivio Storico Ricordi opera ID,identifier of a musical work in the Archivio Storico Ricordi digital collection
+P8733,number of rooms,number of rooms in a building
+P8734,O*NET OnLine code,code for an occupation in O*NET OnLine
+P8735,Opta football competition ID,identifier of a football competition in Opta
+P8736,Opta football player ID,identifier of an association football player in Opta Sports
+P8737,Opta football team ID,identifier of an association football team in Opta Sports
+P8738,permits,the norm or license permits people to engage in the object
+P8739,prohibits,subject proscribes a prohibition of the object (use qualifiers to specify context)
+P8740,The Boardr profile ID,identifier for a skateboarder or sport cyclist on The Boardr
+P8741,Great Places ID,"numerical identifier, in the Great Places database, for a plants observation site in California, United States"
+P8742,PIM award ID,identifier of the Pet?fi Literary Museum's database of awards and honors in Hungary
+P8743,Scholars Strategy Network ID,identifier for a person in the Scholars Strategy Network
+P8744,economy of topic,item that deals with the economy of the subject
+P8745,check-in time,"the earliest time of day at which a reserved room in a hotel, inn or lodge is available to an arriving guest"
+P8746,check-out time,the latest time of day a guest may check out of a hotel or lodge without incurring additional cost
+P8747,DC Historic Sites place ID,"identifier for a Washington, D.C. historic site on the DC Historic Sites website"
+P8748,Rheinland-Pflzische Personendatenbank ID,"static identifier (""Zitierlink"") of an entry in Rheinland-Pflzische Personendatenbank (the ""recnums"" is not stable!)"
+P8749,Dictionary of Portuguese Historians ID,"identifier for a subject (person, topic, institution, journal) in the Dictionary of Portuguese Historians"
+P8750,Unione Romana Biblioteche Scientifiche ID,identifier for an authority in the catalog of the Unione Romana Biblioteche Scientifiche
+P8751,die axis,"measurement of a coin that describes how the obverse and reverse dies were aligned to each other when it was struck, either in degrees (0-360) or hours (12-11)"
+P8752,Kramerius of Moravian Library UUID,UUID identifier for scanned item (book edition/periodical/page) in Moravian Library
+P8753,annual average daily traffic,"daily traffic through a certain point, as yearly average"
+P8754,OpenStreetMap numeric user ID,numeric identifier for a user on OpenStreetMap
+P8755,VA facility ID,identifier for a facility on the U.S. Department of Veteran Affairs website
+P8756,Sports-Reference.com college basketball box score ID,identifier for a college basketball game on Sports-Reference.com
+P8757,maximum current,"maximum current for this item, specify unit (e.g. Ampere)"
+P8758,Perse article ID,identifier for an article on Perse
+P8759,Polski S?ownik Judaistyczny ID,identifier for a topic in the Polski S?ownik Judaistyczny (Poland)
+P8760,Base constructions bibliothques ID,identifier for a public library in the 'Base constructions bibliothques' of the ENSSIB
+P8761,Sports-Reference.com college football school ID,identifier for an NCAA Division I college football team on Sports-Reference.com
+P8762,NCAA Statistics team season ID,identifier for a year of a college sports team on stats.ncaa.org
+P8763,birth rate,"the total number of live births per 1,000 population"
+P8764,port calls,harbor or port at which the ship stopped; port of call
+P8765,Royal Horticultural Society plant ID,identifier for plants listed on the Royal Horticultural Society website
+P8766,rank insignia,image of the insigna for a rank (such as a military rank)
+P8767,EGAFD ID,alphanumerical identifier for a female porn performer in the European Girls Adult Film Database
+P8768,online catalog,URL of the website where an item's catalog can be browsed
+P8769,Ontology of units of Measure 2.0 unit ID,
+P8770,format as language specific regular expression,regex describing a string in a given language; use the language code to define which language it applies to
+P8771,Vlib' Mtropole station ID,identifier of a Vlib' Mtropole bicycle-sharing station located in Paris or in its suburbs
+P8772,Blogger user profile ID,user profile identifier on the Blogger website
+P8773,Malm Museer ID,identifier for person or organization connected to an object at Malm Museer
+P8774,MTMT journal ID,journal identifier in the Hungarian Scientific Bibliography
+P8775,Soccerway stadium ID,identifier for an association football (soccer) stadium in the Soccerway database
+P8776,IMVDb music video ID,identifier for a music video the on IMVDb online database
+P8777,NCAA Statistics coach ID,identifier for a college sports coach on stats.ncaa.org
+P8778,Docker Hub repository,Docker repository hosted on Docker Hub
+P8779,USL League One player ID,identifier for soccer player profile on website of USL League One
+P8780,Portuguese Football Federation player ID,identifier for an association football (soccer) player in the Portuguese Football Federation database
+P8782,ClassInd game ID,identifier for a video game in the Classificao Indicativa database
+P8783,AAGM person or institution ID,"identifier for a person (artist, architect, sitter, benefactor etc) or organisation in the website database of Aberdeen Art Galleries and Museums (AAGM)"
+P8784,AAGM site ID,"identifier for a site in the Aberdeen Archives, Gallery & Museums (AAGM) catalogue"
+P8785,AniDB tag ID,identifier for a tag in the AniDB database
+P8786,dedicated heritage entity,heritage entity dedicated to or associated with the item's subject
+P8787,UAF person ID,identifier for a person at the site Ukrainian Athletic Federation
+P8788,Dignity Memorial person ID,identifier used by Dignity Memorial for its obituaries
+P8789,defining mutations,genetic mutations that define a haplogroup
+P8790,Opera Online performer ID,identifier of a performer on the Opera Online website
+P8791,digitised by,"institution or person who digitised an exemplar of this item. Qualify with ""criterion used"" (P1013) to indicate which step was done."
+P8792,Bioweb Ecuador ID,
+P8793,Quirinale ID,decorated for honors of the Italian Republic record on the Quirinale site
+P8794,BBFC reference,reference number for a film or video game (-2012) media content rating decision on BBFC's official website
+P8795,General Diamond Catalogue ID,identifier for a person or an organisation in the General Diamond Catalogue
+P8796,FilmPolski press collection ID,
+P8797,French Paralympic and Sports Committee athlete ID,"identifier for an athlete (sportsperson) at france-paralympique.fr, a website of the French Paralympic and Sports Committee (French: Comit Paralympique et Sportif Franais, CPSF)"
+P8798,for color scheme,which color scheme this statement is designed for
+P8799,Twitch tag ID,identifier for a tag on Twitch
+P8800,European Film Awards ID,numerical identifier for a film on the European Film Awards website
+P8801,MSRI institution ID,"identifier for a mathematics organization, university, department, research institute, etc. on the Mathematical Sciences Research Institute website"
+P8802,MSRI person ID,identifier for a person on the Mathematical Sciences Research Institute website
+P8803,stolpersteine-berlin.de Stolperstein identifier,identifier for Stolpersteine in Berlin issued by stolpersteine-berlin.de
+P8804,stolpersteine-hamburg.de Stolperstein identifier,identifier for Stolpersteine in Hamburg issued by stolpersteine-hamburg.de
+P8805,LIMIS person ID,identifier for a person in the Lithuanian Integral Museum Information System Personalities Dictionary
+P8806,NSDOK Stolperstein identifier,identifier for Stolpersteine in Cologne issued by the NS-Documentation Center of the City of Cologne
+P8807,stolpersteine-bremen.de Stolperstein identifier,identifier for Stolpersteine in Bremen issued by stolpersteine-bremen.de
+P8808,snublestein.no Stolperstein identifier,identifier for Stolpersteine in Norway issued by the Oslo Jewish Museum
+P8809,AIWARDS ID,"identifier for a pornographic actor, award, film or film studio in the Adult Industry Awards Database"
+P8810,parent,parent of the subject. Only use if neither father (P22) nor mother (P25) is applicable
+P8811,Twitch team ID,identifier for a team on Twitch
+P8812,IMMuB artist ID,identifier for an artist in the Brazilian Musical Memory Institute database
+P8813,IMMuB album ID,identifier for an album in the Brazilian Musical Memory Institute database
+P8814,WordNet 3.1 Synset ID,Synset identifier in PrincetonÕs WordNet Version 3.1
+P8815,IAFD film distributor ID,identifier for a pornographic film distributor in the Internet Adult Film Database
+P8816,Yandex Zen ID,identifier for a news source on Yandex Zen
+P8817,NCAA organization code,identifier for an organization designated by the National Collegiate Athletic Association
+P8818,Church of Jesus Christ pioneer ID,ID of a missionary in Church of Jesus Christ pioneer database
+P8819,Pitchfork artist ID,identifier for musical artists on the Pitchfork website
+P8820,Monuments de mmoire ID,identifier for a French war memorial on the Monuments de mmoire website
+P8821,Memorial Book University of Vienna ID,identifier for a person on the Memorial Book for the Victims of National Socialism at the University of Vienna in 1938 website
+P8822,epithet,"has an epithet (byname), for a human, a character or a deity"
+P8823,Xfinity Stream ID,identifier for a program on Xfinity Stream
+P8824,attraction to,sexual attraction or arousal arising from an entity
+P8825,Sports-Reference.com college basketball school ID,identifier for a NCAA college men's basketball team on the Sports-Reference.com college basketball website
+P8826,edition humboldt digital ID,"identifier for the register of biographies, places and institutions in edition humboldt digital"
+P8827,GitLab username,"username of this project, person or organization on GitLab.com"
+P8828,AAA attraction ID,identifier for a tourist attraction on the American Automobile Association website
+P8829,Swiss-Gym Male ID,identifier of male Swiss gymnast on Swiss-Gym
+P8830,Swiss-Gym Female ID,identifier of female Swiss gymnast on Swiss-Gym
+P8831,Museum Day ID,identifier for a museum on the Smithsonian Magazine Museum Day website
+P8832,PAN member,identifier for a member of the Polish Academy of Sciences
+P8833,Union Catalog of Armenian Libraries authority ID,identifier for an authority in the catalog of the Union Catalog of Armenian Libraries
+P8834,MetaSat ID,"identifier for MetaSat, an open metadata vocabulary used to describe space missions"
+P8835,Visages du diocse d'Autun ID,identifier for a Catholic presbyter or laic active on the Autun Diocese from 1962 to 2012
+P8836,SPOnG game ID,identifier of a video game in the SPOnG database
+P8837,Prtres du diocse de Quimper ID,"identifier for a priest from the diocese of Quimper on the website of the Roman Catholic Church in Finistre, France"
+P8838,LibraryThing venue ID,identifier for a venue on the LibraryThing website
+P8839,hairstyle,"style of cutting, arranging, or combing the hair on the subject's scalp"
+P8840,Union des artistes ID,identifiant on Union des artistes website
+P8841,Restaurant Guru restaurant ID,identifier for a restaurant on the Restaurant Guru website
+P8842,PromoDj ID,identifier for a person on PromoDj.com
+P8843,poverty incidence,proportion of households with per capita income/expenditure less than the per capita poverty threshold to the total number of households
+P8844,RAWG person ID,identifier for a person on RAWG
+P8845,FIS grass skier ID,identifier for a grass skier in the International Ski Federation database
+P8846,FISG athlete ID,identifier for an athlete at FISG official site
+P8847,Kinorium movie ID,movie identifier on kinorium.com
+P8848,CONOR.AL ID,authority control ID in CONOR.AL (authority control of Albanian libraries)
+P8849,CONOR.BG ID,authority control ID in CONOR.BG (authority control of Bulgarian libraries)
+P8850,CONOR.KS ID,authority control ID in CONOR.KS (authority control of Kosovan libraries)
+P8851,CONOR.SR ID,authority control ID in CONOR.SR (authority control of Serbian libraries)
+P8852,facial hair,"style of cutting, arranging, or combing the hair on the subject's face (usually on the chin, cheeks, and upper lip region); beard"
+P8853,Musica Brasilis composer ID,identifier for a composer on the Musica Brasilis website
+P8854,Salzburgwiki ID,numeric identifier of a page in the Austrian regional wiki Salzburgwiki
+P8855,IEV number,reference number in the International Electrotechnical Vocabulary
+P8856,British Phonographic Industry ID,identifier of a release on the British Phonographic Industry official website
+P8857,CRGPG ID,identifier of a Perche-Gout personality on CRGPG's website
+P8858,Drizly product ID,identifier of the product in the Drizly database
+P8860,Canada Business Number,identifier for businesses and legal entities registered in Canada
+P8861,FINA Wiki ID,numeric identifier of a page in the FINA Wiki
+P8862,Foodlocate restaurant ID,identifier for restaurant on the Foodlocate website
+P8863,Qobuz label ID,identifier for a label in the Qobuz Store
+P8864,identity element,value of the identity element of the mathematical operation
+P8865,mathematical inverse,inverse element with respect to binary operation given as a qualifier
+P8866,has operator,mathematical operator associated with this algebraic structure
+P8867,AAA campground ID,identifier for a campground on the American Automobile Association website
+P8868,AAA hotel ID,identifier for an hotel on the American Automobile Association website
+P8869,AAA restaurant ID,identifier for a restaurant on the American Automobile Association website
+P8870,Hyperion Records person ID,ID of a person on Hyperion Records website
+P8871,Southwest Harbor Public Library item ID,identifier of a item in the catalog of Southwest Harbor Public Library
+P8872,has marker,a gene or a protein published as a marker of a species-specific cell type
+P8873,DriveThruComics numeric publisher identifier,numeric identifier for a publisher/manufacturer on DriveThruComics and sibling site
+P8874,Hong Kong film rating,Hong Kong film classification system
+P8875,indexed in bibliographic review,bibliographic review(s) and/or database(s) which index this academic journal
+P8876,number of taxpayers,number of persons liable for a tax
+P8877,Fellow of the Royal Society of Canada ID,identifier of a fellow of the Royal Society of Canada
+P8878,HLTV player ID,identifiant for a player in HLTV
+P8879,Kinorium person ID,identifier for a person on kinorium.com
+P8880,AstroGen ID,identifier for a researcher in AstroGen
+P8881,ITRANS,"ASCII transliteration with ITRANS scheme for Indic scripts, particularly for Devanagari script"
+P8882,complementary property,"property expressing an aspect of the same relation that completes this property (e.g. start date and end date); the two can be seen as opposites. For inverses, use ""inverse property"" (P1696). For relations among items, see ""opposite of"" (P461)."
+P8883,BBC sound effects asset ID,"unique identifer of a sound effect within the BBC Sound Effects Archive Resource, by RES (Research & Education Space)"
+P8884,number of points/goals attempted,shots or other attempts to score points in a sporting event
+P8885,Namuwiki ID,identifier of an article on Namuwiki
+P8886,CIP data sheet,CIP data sheet of the object
+P8887,water area,area/surface of a geographical entity that is covered by water
+P8888,AniDB episode ID,identifier of this episode on AniDB
+P8889,MTRCB rating,rating of a film or television program in the Philippines
+P8890,power consumption index,value of the relative energy consumption from the energy certificate of a building
+P8891,heating energy consumption index,value of the relative heating consumption from the energy certificate of a building
+P8892,edition humboldt digital Flora ID,identifier for the register of plants in edition humboldt digital
+P8893,Sistema de Informacin Legislativa ID,identifier for a representative or senator in the Congreso de la Unin
+P8894,BG EIK,"BG Unified Identification Code for companies, BULSTAT code for non-commercial orgs. 9-digit for organisations, 13-digit for branches"
+P8895,All the Tropes identifier,identifier in All the Tropes
+P8896,Concise Literary Encyclopedia ID,identifier in Concise Literary Encyclopedia
+P8897,Reliwiki page ID,identifier of the page in the Reliwiki database of Dutch places of worship
+P8898,road name formatter,template from which Ò$1Ó can be automatically replaced by a bare road number to obtain the full name of a numbered road
+P8899,Swedish National Library Arken ID,identifier of an entry in the Arken website maintained by the National Library of Sweden
+P8900,HuijiWiki wiki ID,"identifier of a topic's wiki, in huijiwiki.com"
+P8901,ELSPA rating,rating of a video game in the British ELSPA rating system (1994 - Spring 2003)
+P8902,Archives at Yale names ID,"identifier for an person, organization or family in Archives at Yale"
+P8903,HAL journal ID,"numerical identifier for a journal on HAL, an open archive of scholarly documents"
+P8904,Parler username,this item's username on Parler
+P8905,Museo del Prado artwork ID,identifier for an artwork on the Museo del Prado website
+P8906,National Gallery of Ireland ID,identifier for an artwork on the National Gallery of Ireland website
+P8907,Auckland Art Gallery artwork ID,identifier for an artwork on the Auckland Art Gallery website
+P8908,CINE21 film ID,identifier for a film in the database of the film magazine CINE21
+P8909,National Gallery of Australia ID,identifier for an artwork on the National Gallery of Australia website
+P8910,Fitzwilliam Museum ID,identifier for an artwork on the Fitzwilliam Museum website
+P8911,Sonneveld-index,identifier in the database of religious buildings assembled by Jan Sonneveld
+P8912,Kicker.de player ID (actual scheme),text identifier for an association football player at kicker.de
+P8913,NSSDCA ID,"external identifier of records within the Master Catalog of the NASA Space Science Data Coordinated Archive (NSSDCA), similar but not synonymous with the COSPAR ID (P247)"
+P8914,ZOBODAT person ID,"numerical identifier for a person in ZOBODAT, a bibliographic database of mostly German-language works on zoology"
+P8915,ZOBODAT taxon ID,"numerical identifier for a taxon in ZOBODAT, a bibliographic database of mostly German-language works on zoology"
+P8916,DIA ID,identifier for an artwork on the Detroit Institute of Arts website
+P8917,SKD ID,identifier for an artwork on the Staatliche Kunstsammlungen Dresden website
+P8918,Max Movie film ID,identifier for films in the database of the magazine Max Movie
+P8919,Gab username,person's or organization's username on Gab
+P8920,Movist film ID,identifier for a film in the Movist database
+P8921,KOBIS ID,identifier for a film the database of the Korea Box-Office Information System (KOBIS) provided by the Korean Film Council
+P8922,Amsterdam Museum ID,numerical identifier for an artwork on the Amsterdam Museum website
+P8923,SMB-digital ID,numerical identifier for an object on the online collections database of the National Museums in Berlin
+P8924,State Catalogue of the Museum Fund of Russia artwork ID,identifier for an artwork in the State Catalogue of the Museum Fund of Russia
+P8925,CQVIP article ID,identifier of an article in CQVIP
+P8926,DBLP venue ID,identifier for venue entries in the DBLP computer science bibliography (use portion of DBLP stream key after streams/)
+P8927,kunya,"teknonym in Arabic names, the name of an adult derived from their eldest child or from their characteristics"
+P8928,Filmstriben film-ID,identifier for film on the Danish website https://fjernleje.filmstriben.dk/
+P8930,Church of Jesus Christ missionary ID,identifier of a missionary in Church of Jesus Christ missionary database (1830-1930)
+P8931,"Encyklopedie most? v ?echch, na Morav? a ve Slezsku ID",numerican identifier for a bridge in the Czech Republic
+P8932,Czech Gymnastics athlete ID,numerical identifier for a Czech gymnast on gymfed.cz
+P8933,category for the view from the item,"category for the view from this item (object, place)"
+P8934,mailing list archive,archive of the mailing list for the object
+P8935,Encyclopedia of the History of Ukraine ID,ID for an entry on the official website of the Encyclopedia of the History of Ukraine
+P8936,CollEx-Perse ID,identifier for an organization in the CollEx-Perse database
+P8937,theses.cz ID,identifier of thesis in theses.cz
+P8938,artistic director,person responsible for the overall artistic vision of an organization and for its execution. See also P3174 for works.
+P8939,Google Play developer slug,human-readable identifier for a developer on the Google Play Store
+P8940,AppGallery app ID,identifier for a mobile application in AppGallery Store
+P8941,The Galileo Project ID,numerical identifier for a person in the online database The Galileo Project
+P8942,word lookup,"formatter to look up a word or a name in database or website. If it appears in search results, use ""search formatter URL"" (P4354). Qualify with ""applies to part"" (P518), if applicable; with ""uses"" (P2283) for conversion (ex: ""lowercase"" Q4444253)"
+P8943,Artfacts ID,unique identifier for an artist on Artfacts.net
+P8944,Archivio dei possessori ID,identifier for an owner of a manuscript (person or organization) in the database Archivio dei possessori curated by the Biblioteca Marciana
+P8945,Museo Galileo biography ID,alphabetical identifier for a person in the biographies curated by Museo Galileo
+P8946,National Galleries of Scotland ID,identifier for an artwork on the National Galleries of Scotland website
+P8947,Museo Galileo authority ID,numerical identifier for an authority record in the catalog of Museo Galileo
+P8948,Pinakothek artwork ID,identifier for an artwork on the Bavarian State Painting Collections website
+P8949,Delft municipal monument ID,identifier used for municipal monument in the city of Delft
+P8950,Dizionario degli artisti ID,identifier for a person in the Dizionario degli artisti
+P8951,Order of Canada recipient ID,"identifier for the recipients of the Order of Canada, one of the highest orders conferred by the Canadian governemnt"
+P8952,inappropriate property for this type,property that should not be present for instances of that element
+P8953,Students of Prague Universities ID,numeric identifier for student of Prague Universities 1882Ð1945
+P8954,vets.cz ID,identifier of a memorial in vets.cz
+P8955,Chapels of southern Bohemia ID,identifier on pages about small monuments of Southern Bohemia
+P8956,compatible with,"this work, product, object or standard can interact with another work, product, object or standard"
+P8957,GS1 GPC code,"code used to classify products in the GS1 Global Product Classification: Segment>Family>Class>Brick, or Attribute Type: Value"
+P8958,ClassInd audiovisual work ID,identifier of an audiovisual work in the Classificao Indicativa database
+P8959,Georgia Museum of Art ID,identifier for an artwork on the Georgia Museum of Art website
+P8960,Kunsthistorisches Museum Wien ID,"identifier for an artwork on the website of the Kunsthistorisches Museum, in Vienna, Austria"
+P8961,tribunsdelaplebe.fr ID,identifier of a tribune of the plebs and his gens prior to the Hortensian plebiscite on the site tribunsdelaplebe.fr
+P8962,PBA artwork ID,identifier for an artwork on the Palais des Beaux-Arts de Lille website
+P8963,National Library at Kolkata romanization,transliteration scheme in dictionaries and grammars of Indic languages
+P8964,OpenReview.net profile ID,identifier for a person on OpenReview.net
+P8965,OpenReview.net group ID,idenfifier for a (group of) events
+P8966,URL match pattern,"regex pattern of URL that an external ID may be extracted. Qualifier ""URL match replacement value"" can overwrite the default \1. Use non-capturing groups when needed ""(?:www)?"""
+P8967,URL match replacement value,(qualifier only) optional qualifier to overwrite the default \1
+P8968,OpenReview.net submission ID,identifier for submitted article to the OpenReview.net system
+P8969,CINE21 person ID,identifier for a person in the database of the film magazine CINE21
+P8970,Chinese Painting Database ID,identifier for artworks in the Chinese Painting Database
+P8971,Cinmathque qubcoise person ID,identifier for a person in the website Cinmathque qubcoise
+P8972,small logo or icon,logo or icon that represents the item and can be rendered at sizes as small as 16?16 pixels
+P8973,Humanitarian OpenStreetMap Tasking Manager project ID,identifier for a project in the Humanitarian OpenStreetMap Tasking Manager
+P8974,SAPA ID,"identifier used by the SAPA Foundation, Swiss Archive of the Performing Arts"
+P8975,Manus Online author ID,identifier for an author of a manuscript held by an Italian library
+P8976,Lichess username,username on the chess website lichess.org
+P8977,CITWF person ID,identifier for a person in the Complete Index to World Film
+P8978,DBLP publication ID,identifier of publications in the DBLP database
+P8979,DataTrek ID,identifier of a DataTrek entity
+P8980,KANTO ID,identifier for a person or an organization in the database KANTO curated by the National Library of Finland
+P8981,lunar coordinates,coordinates of a place on Earth's Moon
+P8982,Pontificio Istituto di Archeologia Cristiana ID,numerical identifier for a person in the catalogue of the Library of the Pontifical Institute of Christian Archaeology (PIAC)
+P8984,CPV Supplementary,"supplementary code for Common Procurement Vocabulary (CPV, P5417) expanding the description of the subject of a contract by adding further details regarding the nature or destination of the object of the contract in the EU"
+P8985,Dizionario bio-bibliografico dei bibliotecari italiani del XX secolo ID,identifier for a person in the Dizionario bio-bibliografico dei bibliotecari italiani del XX secolo
+P8986,graph girth,length of a shortest cycle contained in the graph
+P8987,ISDS ID,"identifier of an electronic mailbox assigned by the Czech Republic government to businesses, individuals and government agencies of the Czech Republic"
+P8988,Mapy.cz ID,identifier for a point of interest in Mapy.cz
+P8989,category for the view of the item,"category for the view of this item (object, place)"
+P8990,World Rowing ID (UUID format),identifier for a person in the database of World Rowing (FISA)
+P8991,ALA-LC romanization,transliteration schemes for non-Roman scripts approved by the Library of Congress and the American Library Association
+P8992,1914-1918-Online ID,identifier for an article in the website 1914-1918-online. International Encyclopedia of the First World War
+P8993,JAD ID,numerical identifier for an author in the Journaux d'Alexandre Dumas database
+P8994,Game UI Database ID,numerical identifier for a video game in the Game UI Database
+P8995,Lumires.Lausanne ID,numerical identifier for a person in the website Lumires.Lausanne
+P8996,Swiss Unihockey player ID,numerical identifier for a floorball player on the Swiss Unihockey website
+P8997,IFF player ID,numerical identifier for a floorball player on the International Floorball Federation website
+P8998,Magyar letrajzi lexikon ID,identifier for a person in ÒMagyar letrajzi lexikonÓ (Hungarian biographical encyclopedia)
+P8999,Lexikon zum Literatur- und Kulturbetrieb im sterreich der Zwischenkriegszeit ID,alphabetical identifier for an article in the Lexikon zum Literatur- und Kulturbetrieb im sterreich der Zwischenkriegszeit
+P9000,World History Encyclopedia ID,alphabetical identifier for an article in the Ancient History Encyclopedia
+P9001,Literary Encyclopedia ID,identifier in Soviet Literary Encyclopedia (1929-1939)
+P9002,liturgical rank,rank of a feast day in a religious calendar used for public worship
+P9003,Google Podcasts show ID,identifier for a podcast on Google Podcasts
+P9004,Stitcher show ID,identifier for a podcast on Stitcher
+P9005,Castbox show ID,identifier for a podcast on Castbox
+P9006,Pocket Casts show ID,identifier for a podcast on Pocket Casts
+P9007,Podcast Addict show ID,identifier for a podcast on Podcast Addict
+P9008,TuneIn Podcasts show ID,identifier for a podcast on TuneIn Podcasts
+P9009,RadioPublic show ID,identifier for a podcast on RadioPublic
+P9010,Player.fm ID,identifier for a podcast or podcast episode on Player.fm
+P9011,PodBean show ID,identifier for a podcast on PodBean
+P9012,Podtail show ID,identifier for a podcast on the podcasting hosting website Podtail
+P9013,Encyclopedia of Saami Culture ID,identifier for an article in the Encyclopedia of Saami Culture
+P9014,The Podcast App show ID,identifier for a podcast on The Podcast App
+P9015,Medieval Manuscripts in Oxford Libraries manuscript ID,identifier of a manuscript in the online database Medieval Manuscripts in Oxford Libraries
+P9016,Medieval Manuscripts in Oxford Libraries work ID,identifier of a work in the online database Medieval Manuscripts in Oxford Libraries
+P9017,Medieval Manuscripts in Oxford Libraries person ID,identifier of a person in the online database Medieval Manuscripts in Oxford Libraries
+P9018,Medieval Manuscripts in Oxford Libraries place ID,identifier of a place in the online database Medieval Manuscripts in Oxford Libraries
+P9019,Medieval Manuscripts in Oxford Libraries organization ID,identifier of an organization in the online database Medieval Manuscripts in Oxford Libraries
+P9020,AV Production person ID,identifier for a person in the website of AV Production
+P9021,Bharati Braille,transcription of Indic scripts in a national standard Braille script
+P9022,Mediafilm ID,identifier for Mediafilm for movies
+P9023,Radio.com Podcasts show ID,identifier for a podcast on Radio.com Podcasts
+P9024,Libsyn show ID,identifier for a podcast on Libsyn
+P9025,Mitre ATT&CK ID,identifier for an item in the Mitre ATT&CK knowledge base
+P9026,SFLI ID,identifier for a person who is member of the Societ dei Filologi della Letteratura Italiana
+P9027,e-GEDSH ID,identifier for an article in the Gorgias Encyclopedic Dictionary of the Syriac Heritage: Electronic Edition
+P9028,CCC classification,Chilean video game content rating as dictated by Decree 51
+P9029,Viceversa Letteratura author ID,identifier for an author of the Swiss literary magazine Viceversa Letteratura
+P9030,solution to,a mathematical object that satisfies the criteria for a mathematical problem
+P9031,Barnivore product ID,identifier for a product on Barnivore
+P9032,AVN movie ID,identifier for a pornographic movie in the AVN.com database
+P9033,Archivo Histrico de diputados de Espaa ID,identifier of a member of Parliament in the Historical Archive of Deputies of Spain
+P9034,BG School ID,"Official identifier for schools and kindergartens used by Ministry of Education, Youth and Science of Bulgaria"
+P9035,Muck Rack media outlet ID,alphabetical identifier for a news publication on Muckrack.com
+P9036,I professori dell'Universit di Pavia (1859-1961) ID,numerical identifier for a university teacher on the website I professori dell'Universit di Pavia
+P9037,BHCL UUID,UUID of authorities used in the Bibliography of the History of the Czech Lands (BHCL)
+P9038,Calamo ID,unique identifier for publications on online publishing platform Calamo
+P9039,Studium Parisiense ID,identifier for a person connected to the University of Paris between the 12th and 16th century in the database Studium Parisiense
+P9040,viaggiareinpuglia.it ID,identifier for a heritage or natural site in Apulia (Q1447) on the website viaggiareinpuglia.it
+P9041,DiVo person ID,identifier of a person in the Dizionario dei Volgarizzamenti
+P9042,DiCamillo Database Country House ID,identifier for country houses in Britain and Ireland
+P9043,Internet Game Database numeric game ID,"numeric identifier for a game on IGDB; use as qualifier for P5794 ""Internet Game Database game ID"""
+P9044,GEPRIS-Historisch ID (Person),"identifier of a person in GEPRIS Historisch database of funded research projects of Deutsche Forschungsgemeinschaft (DFG, German Research Foundation)"
+P9045,Alpine Linux package,name of the official Alpine Linux package
+P9046,A*dS Encyclopedia ID,identifier for an author in the A*dS Encyclopedia
+P9047,archaeological site of,at this archeological site the object has been uncovered
+P9048,Biographical Archive of Psychiatry ID,identifier for an article in the Biographical Archive of Psychiatry
+P9049,ICCD agent ID,identifier for a person or an organisation in the General catalog of Italian cultural heritage
+P9050,ICCD site ID,identifier for a place or an organisation in the General catalog of Italian cultural heritage
+P9051,ICCD cultural heritage ID,identifier for a cultural heritage object of Italian cultural heritage in the General catalog of Italian cultural heritage
+P9052,date postally canceled,date of a postal marking on a postage stamp or postal stationery to deface the stamp and to prevent its reuse
+P9053,Projecto Vercial author ID,identifier for an author in the website Projecto Vercial
+P9054,National Historic People ID,identifier for Persons of National Historic Significance used by Parks Canada
+P9055,Olympedia event ID,identifier for a sporting event at www.olympedia.org
+P9056,TheCocktailDB drink ID,identifier of a drink in thecocktaildb.com database
+P9057,TheCocktailDB ingredient ID,identifier of an ingredient in thecocktaildb.com database
+P9058,Fichier des personnes dcdes ID (matchID),identifier for an entry in an unofficial mirror of INSEE's 'Fichier des personnes dcdes' (deaths since 1970)
+P9059,subdivision of this unit,name of subdivision of this unit/currency
+P9060,POSIX locale identifier,"identifier for a language per the POSIX standard, as defined in ISO/IEC 9945 and ISO/IEC 15897"
+P9061,National Museum in Warsaw ID,"numerical identifier for an artwork on the website of the National Museum in Warsaw, in Poland"
+P9062,BABEL author ID,identifier for an author in the database about Patristic sources BABEL
+P9063,Base de Dados de Autores Portugueses ID,identifier for an author in the Base de Dados de Autores Portugueses
+P9064,Povos Indgenas no Brasil ID,identifier for an indigenous group in the reference work Povos Indgenas no Brasil
+P9065,Parabola package,name of the official Parabola package
+P9066,FL number,EU identifier for food flavouring
+P9067,Hungarian Film Archive ID,identifier of a movie in the database of the Hungarian Film Archive
+P9068,IFPI Danmark work ID,identifier of a music work on the IFPI Danemark official website
+P9069,International Standard Bible Encyclopedia ID,identifier for an article in the International Standard Bible Encyclopedia
+P9070,Internet Encyclopedia of Ukraine ID,identifier for an article in the Internet Encyclopedia of Ukraine
+P9071,character type,"character type (e.g. character archetype, stock character, character stereotype etc.) this fictional character represents"
+P9072,derived from organism type,the taxon that the organism from which the subject cell line was derived belonged to (different from found in taxon (P703) because cell lines are derived only once from a single individual)
+P9073,applicable 'stated in' value,"value suitable for ""stated in"" (P248) when property is used in references to refer to the primary publication/website/database associated with the property"
+P9074,NZ Museums ID,"numerical identifier for New Zealand cultural organisations (museums, archives, art galleries, and their collections) listed on the NZ Museums website"
+P9075,StrategyWiki ID,identifier for this video game in StrategyWiki
+P9076,Australian Fungi ID,"identifier for a taxon (a fungus), in the Australian 'Fungi' database"
+P9077,number of aid beneficiaries,"number of people reached with international aid programmes, actions and humanitarian activities. Qualify with ""point in time"" (P585) where appropriate"
+P9078,Discord invite ID,"identifier for the subject's official Discord server; use as qualifier for P9345 ""Discord server numeric ID"""
+P9079,Red Cross FDRS ID,entry in the Federation-wide Databank and Reporting System (FDRS) of the International Federation of Red Cross and Red Crescent Societies (IFRC)
+P9080,JAANUS ID,identifier in Japanese Architecture and Art Net Users System
+P9081,SEARCH on line catalogue ID,identifier for an authority in the SEARCH on line catalogue (union-catalog of four libraries in Rome)
+P9082,Academic Encyclopedia of Czech History ID,identifier for an article in the Akademick encyklopedie ?esk?ch d?jin
+P9083,"45cat 7"" release ID","identifier for an 7"" single or EP on 45cal"
+P9084,ABC News topic ID,identifier of a topic of content on the Australian Broadcasting Corporation website
+P9085,Aracne author ID,identifier for an author in the database of the Italian academic publisher Aracne
+P9086,BAMID film rating,rating in the Taiwanese movie content rating system
+P9087,Econlib person ID,"identifier for an entry about a person in encyclopedia of the Library of Economics and Liberty by Liberty Fund, Inc., a private, educational right-leaning foundation"
+P9088,KBR Catalogue ID,identifier for an item in the online public catalogue of the Royal Library of Belgium (KBR)
+P9089,Songlexikon ID,alphabetical identifier for a song on the Songlexikon website
+P9090,Swiss Games Showcase ID,alphabetical identifier for a video game in the Swiss Games Showcase database
+P9091,MNBAQ ID,numerical identifier for an artwork on the website of the Muse national des beaux-arts du Qubec
+P9092,Art in the Christian Tradition ID,Identifier for works in the Art in the Christian Tradition database managed by the Vanderbilt Divinity Library
+P9093,Australian Lichen ID,"identifier for a taxon (a lichen), in the Australian Lichen database"
+P9094,Pantone color ID,the Pantone color code for a Pantone color
+P9095,Kunstmuseum Basel ID,numerical identifier for an artwork on the Kunstmuseum Basel website
+P9096,Malpedia ID,identity for an item in the Malpedia database
+P9097,American Academy in Rome ID,identifier for an authority in the library catalogue of the American Academy in Rome
+P9098,BiblioLMC ID,"identifier for a subject (person, musical work, etc.) in the Italian website BiblioLMC"
+P9100,GitHub topic,GitHub topic for a repository or subject
+P9101,Discord username,identifier for a person or bot on Discord
+P9102,CineFanRo person ID,identifier for a person on the cinefan.ro site
+P9103,Enciclopedia del Museo del Prado ID,identifier for an article in the Enciclopedia del Museo del Prado
+P9104,Encyclopedia of Brno History object ID,identifier for object related to the city of Brno and its history
+P9105,Dictionnaire des journalistes ID,alphanumerical identifier for a person in the Dictionnaire des journalistes (1600-1789)
+P9106,Oxford Classical Dictionary ID,identifier for a topic in the Oxford Classical Dictionary online
+P9107,number of vaccinations,"number of people vaccinated, qualify with ""point in time"" (P585)"
+P9108,Erudit article ID,unique identifier for an article in rudit
+P9109,Holocaust.cz person ID,identifier of a person in the database of holocaust victims (holocaust.cz)
+P9110,Le Lettere di Theodor Mommsen agli Italiani ID,identifier for a person cited in a letter by Theodor Mommsen in the online database Le Lettere di Theodor Mommsen agli Italiani
+P9111,SISSCO ID,identifier for a person who is member of the Societ Italiana per lo Studio della Storia Contemporanea
+P9112,IFLA value vocabularies ID,identifier for a term in the IFLA value vocabularies
+P9113,Patrinum ID,"identifier for a subject (person, organisation, place, etc.) in the Swiss database Patrinum regarding the Canton of Vaud"
+P9114,Mathematica Italiana person ID,identifier for a mathematician in the website Mathematica Italiana
+P9115,Jewish Museum Berlin object ID,object identifier of the Jewish Museum in Berlin
+P9116,Musica Brasilis score ID,unique identifier for a score in the Musica Brasilis website
+P9117,BVFE author ID,numerical identifier for an author in the Biblioteca Virtual de la Filologa Espaola
+P9118,Family Video Game Database ID,alphabetical identifier for a video game in the Family Video Game Database
+P9119,LexML Brazil ID,identifier for laws in the LexML system
+P9120,Pepys Encylopedia ID,"identifier for a person, place, or thing in an annotated index to the online diaries of Samuel Pepys"
+P9121,National Museum Norway artwork ID,Identifier for an artwork in the Norwegian National Museum collections
+P9122,SportsLogos.net team ID,identifier for a sports organization on Chris Creamer's Sports Logos Page
+P9123,Catalan Vikidia ID,ID of the article in Catalan Vikidia
+P9124,Russian Vikidia ID,ID of the article in Russian Vikidia
+P9125,Microsoft MVP profile ID,identifier for a Microsoft Most Valuable Professional Award recipient
+P9126,Commons media contributed by,which institution an image is sourced from
+P9128,Debian Package Tracker ID,source package identifier in the Debian Package Tracker
+P9129,Data Collection of the Hungarian Peerage ID,identifier of a person in the database of the Hungarian Society of Family History Research
+P9130,CompositionToday composers showcase ID,identifier for a composer showcase on the CompositionToday website
+P9131,Royal Museums Greenwich artwork ID,numerical identifier for an artwork on the website of the Royal Museums Greenwich
+P9132,Saint Louis Art Museum artwork ID,numerical identifier for an artwork on the Saint Louis Art Museum website
+P9133,AZLyrics.com song ID,identifier for a song on AZLyrics.com site
+P9134,Studio di Fonologia Musicale RAI person ID,identifier for a person in the website of the Studio di Fonologia Musicale RAI
+P9135,WreckSite ID,identifier of a wreck towards the site wrecksite.eu
+P9136,SOUNZ contributor ID,numerical identifier for persons or organisations listed in the SOUNZ database of New Zealand Music
+P9137,Doktori.hu ID,identifier for Hungarian scientist (based on doctoral degree)
+P9138,service status information URL,URI with information about the status of the service
+P9139,first family name in Portuguese name,first (generally maternal) family name in Portuguese names
+P9140,time played,time (usually minutes) played by a participant in a sporting event
+P9141,Portal da Literatura ID,identifier for an author in the Portuguese website Portal da Literatura
+P9142,IPHAE ID,numerical identifier for a historic building in the Instituto do Patrimnio Histrico e Artstico do Estado do Rio Grande do Sul database
+P9143,Play:Right ID,identifier of a video game or an equipment on playright.dk
+P9144,National Portrait Gallery (London) artwork ID,"identifier for an artwork on the website of the National Portrait Gallery, in London"
+P9145,Xinjiang Data Project identifier,"identifier for internment camps or cultural sites in Xinjiang, China within the ASPI Xinjiang Data Project database"
+P9146,CITWF title ID,identifier for a film in the Complete Index to World Film (www.citwf.com)
+P9147,Union Catalog of Armenian Continuing Resources ID,"identifier for a periodical in the Union Catalog of Armenian Continuing Resources, which is part of the National Library of Armenia"
+P9148,Saxony-Anhalt cultural heritage object ID,Object ID in the cultural heritage register of Saxony-Anhalt
+P9149,coordinates of depicted place,coordinates of the place depicted in the work (or Commons image)
+P9150,FloGrappling athlete ID,"identifier for a Brazilian Jiu Jitsu athlete, in the FloGrappling database"
+P9151,Can I use feature ID,"identifier for a browser feature, technology or web standard on Can I use..."
+P9152,CollectieGelderland creator ID,identifier for a creator in the collaborative platform CollectieGelderland
+P9153,VAi building ID,identifier for buildings in the building database of Flanders Architecture Institute
+P9154,Heritage Information System ID in the database of cultural heritage in Austria,identifier published in the Bundesdenkmalamt list of monuments since 2021
+P9155,Joods Monument ID,identifier in the Joods Monument database of Dutch Jews killed in the Holocaust
+P9156,Lumni person ID,"identifier for a person on the Lumni website, an online French platform for audiovisual teaching materials"
+P9157,Open Tree of Life ID,"identifier for an entity in Open Tree of Life, a comprehensive, dynamic and digitally-available tree of life by synthesizing published phylogenetic trees along with taxonomic data"
+P9158,Wurdboek fan de Fryske taal GTB ID,identifier of an entry in the Wurdboek fan de Fryske taal in the Gentegreerde Taalbank
+P9159,People Australia ID,identifier of someone with a biography in People Australia
+P9160,Biographical Dictionary of the Czech Lands ID,identifier for a person in the Biographical Dictionary of the Czech Lands
+P9161,thesis committee member,"member of the committee for this thesis or dissertation; for any type of thesis (bachelor's, master's, doctoral, etc.). Qualify with ""object has role"" (P3831) to indicate chair"
+P9162,EMS ID,identifier for a subject in the Estonian Subject Thesaurus (EMS)
+P9163,Obrazi slovenskih pokrajin ID,identifier for a person in the Obrazi slovenskih pokrajin
+P9164,Svenska Institutet i Rom ID,identifier for an authority in the library catalogue of the Svenska Institutet i Rom
+P9165,Lexikon Literatur in Tirol ID,numerical identifier for a writer in the Lexikon Literatur in Tirol
+P9166,Curling.fi player ID,numerical identifier for a player at Finnish Curling Association official site
+P9167,De Lakenhal artwork ID,identifier of an artwork of Museum De Lakenhal in Leiden
+P9168,Hauts-de-France Inventory identifier,Gertrude identifier for a cultural property in the Hauts-de-France region
+P9169,Tree of Life contributor ID,identifier for a contributor to the Tree of Life Web Project
+P9170,Taiwan River Code,"official code for the administrative divisions in Taiwan, and managed by the Water Resources Agency (MOEA)"
+P9171,RILM ID,identifier for an entity in the Rpertoire International de Littrature Musicale through VIAF
+P9172,playDB artist ID,identifier for music artists in playDB
+P9173,Rate Your Music genre ID,identifier for a music genre or style in Rate Your Music
+P9174,XXXBios transgender performer ID,identifier for a transgender porn performer in the XXXBios database
+P9175,Centre-Val de Loire Inventory identifier,Gertrude identifier for a cultural property in the Centre-Val de Loire region
+P9176,Occitanie Inventory identifier,Gertrude identifier for a cultural property in the Occitanie region
+P9177,playDB play ID,identifier for theatrical and musical productions in playDB
+P9178,Biblioteca Franco Serantini ID,identifier for an authority in the catalogue of the Italian library Biblioteca Franco Serantini
+P9179,Biblioteca Iglesia Nacional Espaola en Roma ID,identifier for an authority in the catalogue of the Biblioteca Iglesia Nacional Espaola en Roma
+P9180,number of at bats,number of batting attempts in a baseball career or game(s)
+P9181,Germanistenverzeichnis ID,identifier for a person in the international directory of German studies scholars
+P9182,uta-net.com song ID,identifier for a song on uta-net.com
+P9183,uta-net.com artist ID,identifier for an artist on uta-net.com
+P9184,number of hits,number of hits earned in a baseball career or game(s)
+P9185,AllMusic genre/style ID,ID of a music genre or style in AllMusic
+P9186,DicoPolHiS ID,identifier for an entry in the Dictionnaire Politique d'Histoire de la Sant
+P9187,EuroBabeIndex.com ID,alphabetical identifier for a porn actress on the EuroBabeIndex.com website
+P9188,bases on balls,number of walks in a baseball career or game(s)
+P9189,Sauvons nos tombes cemetery ID,numerical identifier for a cemetery on the 'Sauvons nos tombes' project
+P9190,runs batted in,number of RBIs attributed to a baseball player in a career or game(s)
+P9191,letterer,"person responsible for drawing the comic book's text, word balloons, etc."
+P9192,sensors,notable sensors in the electronic device
+P9193,LombardiaBeniCulturali archive producer person ID,identifier for an archive producer person in the database LombardiaBeniCulturali
+P9194,LombardiaBeniCulturali archive producer organization ID,identifier for an archive producer organization in the database LombardiaBeniCulturali
+P9195,LombardiaBeniCulturali archive producer family ID,identifier for an archive producer family in the database LombardiaBeniCulturali
+P9196,BookBub author ID,author identifier on BookBub website
+P9197,TlF artist ID,identifier for a musical artist on the Tous Les Festivals website
+P9198,Encyclopdie berbre article ID,identifier for an article in the French encyclopedia about the Berbers
+P9199,Protagonisti della storia delle scienze della mente ID,identifier for a psychologist or psychiatrist in the website Protagonisti della storia delle scienze della mente
+P9200,English Placenames MADS ID,identifier for a place in the Digital Exposure of English Place-names dataset
+P9201,Norwegian State Administration Database ID,identifier for data from the Norwegian civil service/state administration after the Second World War
+P9202,teatral.ro ID,identifier for the www.teatral.ro website
+P9203,CineFAN.ro title ID,identifier for a movie on the CineFAN.ro website
+P9204,CinemaRX title ID,identifier of a movie on cinemarx.ro
+P9205,Sinemalar title ID,identifier of a movie on sinemalar.com
+P9206,Swissvote ID,number of a federal vote in Switzerland on the Swissvotes website
+P9207,Bourgogne-Franche-Comt inventory identifier,Gertrude identifier for a cultural property in the Bourgogne-Franche-Comt region
+P9208,ële-de-France inventory identifier,Gertrude identifier for a cultural property in the ële-de-France region
+P9209,Normandie inventory identifier,Gertrude identifier for a cultural property in the Normandie region
+P9210,Pays de la Loire inventory identifier,Gertrude identifier for a cultural property in the Pays de la Loire region
+P9211,Wisconsin Architecture and History Inventory ID,alphanumerical identifier for a structure that is part of the heritage inventory of Wisconsin
+P9212,Dizionario biografico online degli anarchici italiani ID,identifier for a person in the Dizionario biografico online degli anarchici italiani
+P9213,Swedish Literature Bank place ID,identifier for a location in bookd at the Swedish Literature Bank
+P9214,FAQ URL,FAQ (frequently asked questions) page of the subject
+P9215,set during recurring event,"recurring event (e.g. season, month, holiday) during which this fictional work is set"
+P9216,Opera Online conductor ID,identifier of a conductor on Opera Online website
+P9217,stolen bases,number of bases stolen by a baseball player in a career or game(s)
+P9218,Discogs genre ID,identifier for a music genre in Discogs
+P9219,Discogs style ID,identifier of a music style in Discogs
+P9220,doubles hit,number of doubles hit by a baseball player in a career or game(s)
+P9221,Danmarks Adresseregister named street ID,"identifier for a street or square in Danish Address Register (Danmarks Adresseregister), entity type named street (navngiven vej); format: UUID in lowercase"
+P9222,bashenc.online ID,"article code on the encyclopedic portal ""Bashkortostan"""
+P9223,Provenio UUID,UUID of a book owner in the Provenance Database of Book Owners and the Book Provenance Records
+P9224,JedeSchule.de ID,identifier for a school on JedeSchule.de
+P9225,triples hit,number of triples hit by a baseball player in a career or game(s)
+P9226,ARAE ID,"identifier for an entity (person, organization, family) in the Archivo de la Real Academia Espaola"
+P9227,Encyclopedia Titanica ID,Encyclopedia Titanica identifier for a passenger or crew member of the Titanic
+P9228,U.S. Masters Swimming ID,U.S. Masters Swimming masters swimmer identifier
+P9229,DzygaMDB person ID,identifier for a person in the DzygaMDB database
+P9230,NLS place type ID,place type ID in the Finnish National Land Survey Place Names Register
+P9231,Archivo Linz de la Transicin Espaola ID,identifier for an entity in the thesaurus of the Archivo Linz de la Transicin Espaola
+P9232,Obituaries Australia ID,identifier for a person in Obituaries Australia
+P9233,XXXBios female performer ID,identifier for a female porn performer in the XXXBios database
+P9234,supplement to,subject work or edition updates or otherwise complements the object work or edition
+P9235,seismic classification,seismic risk zone which the administrative entity that receives the seismic classification is in
+P9236,RDA value vocabularies ID,ID for a term in the RDA value vocabularies
+P9237,reissue of,"reissue of musical work, release"
+P9238,staking percentage,percentage of the funds that participates actively in a proof-of-stake network
+P9239,affiliated worker organisation,organization representing workers in a specific company
+P9240,Encyclopedia of Seventh-day Adventists ID,identifier of an entry in the Encyclopedia of Seventh-day Adventists
+P9241,demographics of topic,item that deals with demographics of the subject
+P9242,Whiskybase distillery ID,identifier for a distillery on Whiskybase
+P9243,NParks Flora & Fauna Web ID,identifier for a species in NParks Flora & Fauna Web
+P9244,Women Australia ID,identifier for a person in Women Australia
+P9245,Labour Australia ID,identifier for a person in Labour Australia
+P9246,Indigenous Australia ID,identifier for a person in Indigenous Australia
+P9247,Pontifical University of Salamanca ID,identifier for an authority in the catalogue of the library of the Pontifical University of Salamanca
+P9248,EEVA author ID,identifier for an author in the Estonian database EEVA
+P9249,Nauvoo Community Project ID,identifier for a person in the Nauvoo Community Project database
+P9250,Cyprus Library ID,identifier for an authority in the catalogue of Cyprus Library (National Library of Cyprus)
+P9251,Cyprus University of Technology ID,identifier for an authority in the catalogue of the library of the Cyprus University of Technology
+P9252,Amathus ID,identifier for an authority in the Cypriot union catalogue Amathus
+P9253,European University Cyprus ID,identifier for an authority in the catalogue of the library of the European University Cyprus
+P9254,Museo Nacional de la Estampa ID,identifier for an artwork image in the Museo Nacional de la Estampa database
+P9255,Resident Advisor club ID,identifier for a club or venue listed on the Resident Advisor website
+P9256,Diccionari de la traducci catalana ID,identifier for an article in the Diccionari de la traducci catalana
+P9257,CPC-PR ID,Coordenao do Patrimnio Cultural do Paran identifier for a historic building
+P9258,Austrian Newspapers Online ID,newspaper identifier in the Austrian Newspapers Online (ANNO) project website
+P9259,assessment outcome,outcome of the test or assessment when the test isn't a score
+P9260,music transcriber,"person who transcribed a musical work into musical notation; for composers of music, use P86"
+P9261,Oklahoma's NRHP ID,identifier for a structure or a building listed in the National Register of Historic Places in the Oklahoma's National Register of Historic Places database
+P9262,ChemRxiv ID,"identifier of a document in ChemRxiv, a preprint server for the chemical sciences launched in 2016"
+P9263,Provence-Alpes-Cte d'Azur Inventory ID,Gertrude identifier for a cultural property in the Provence-Alpes-Cte d'Azur region
+P9264,FFF player ID,identifier for a player on the French Football Federation website
+P9265,Physics Magazine author ID,identifier for an author in the online magazine Physics
+P9266,Ligue 1 player ID,identifier for a football player on the Ligue 1 website
+P9267,ANPI person numeric ID,numeric identifier for a person on the ANPI Web portal
+P9268,Science Magazine author ID,identifier for a Science Magazine author
+P9269,Odnoklassniki user numeric ID,"numeric identifier for a user on Odnoklassniki; use as qualifier for P5163 ""Odnoklassniki ID"""
+P9270,ANSI/NISO standard ID,identifier for the number of the ANSI/NISO standard which normalizes the object
+P9271,Kickstarter username,this item's username on Kickstarter
+P9272,DeCS ID,identifier in the Health Sciences Descriptors thesaurus
+P9273,RePEc EconPapers ID,identifier for a scholarly article in the RePEc (Research Papers in Economics) database
+P9274,subsidy,"fiscal tool a government uses to encourage economic development, help disadvantaged groups, or advance other national objectives"
+P9275,inverse agonist of,substance whose binding to a protein produces the opposite response as an agonist binding to that protein
+P9276,Encyclopedia of Ostrava History person ID,identifier for people related to the city of Ostrava (Czech Republic) and its history
+P9277,LFChistory.net player ID,identifier for football player on the LFChistory.net website
+P9278,Pandektis ID,identifier for an entity in the collections of the Greek website Pandektis
+P9279,Egapro gender equality index,index value for a company per regulations in France
+P9280,Museum of the Jewish People at Beit Hatfutsot ID,identifier for an entity in the databases of the Museum of the Jewish People at Beit Hatfutsot
+P9281,Encyclopedia of Greater Philadelphia ID,alphabetical identifier for an article in the Encyclopedia of Greater Philadelphia
+P9282,Catalogue of the Capitular Library of Verona author ID,identifier for an author in the Catalogue of the Capitular Library of Verona
+P9283,AaRC title ID,identifier of a film on AaRC.ro (All About Romanian Cinema)
+P9284,GB1900 ID,"identifier for a place in the GB1900 project transcription of the Ordnance Survey six-inch-to-one-mile map, 1888-1913"
+P9285,Stadtlexikon Karlsruhe ID,"alphanumerical identifier for a person, a places, an institution or an event in the Stadtlexikon Karlsruhe, a reference work on the German city"
+P9286,Encyclopaedia Herder concept ID,identifier for a concept in the Encyclopaedia Herder
+P9287,Cyprus Bibliography ID,identifier for an authority in the Cyprus Bibliography (catalogue of all Cypriot publications after 1980)
+P9288,EncyclopediaPR ID,identifier for an article in the EncyclopediaPR
+P9289,Filmitalia person ID,identifier used on filmitalia.org for the filmography of individuals
+P9290,TikTok music ID,identifier for an audio track on TikTok
+P9291,Eesti entsklopeedia ID,identifier for an article in the online version of the Eesti entsklopeedia (Estonia Encyclopedia)
+P9292,Encyclopdie du patrimoine culturel de l'Amrique franaise ID (French),identifier for an article in the Encyclopdie du patrimoine culturel de l'Amrique franaise
+P9293,AIATSIS Place Thesaurus ID,identifier for a place in the AIATSIS Place Thesaurus
+P9294,AIATSIS Subject Thesaurus ID,identifier for a term in the AIATSIS Subject Thesaurus
+P9295,transitivity,possible grammatical property of a verb accepting a object complement
+P9296,Astro Awani topic ID,identifier for a topic at the Astro Awani news website
+P9297,TapTap application ID,identifier for an application available from the tap distribution platform
+P9298,Encyclopedia of Plze? person ID,identifier for people related to Plze? City and its history
+P9299,OsobnostiRegionu.cz ID,"identifier for OsobnostiRegion?.cz, a database of regionally important people in the Czech Republic"
+P9300,Terezn Memorial Database ID,identifier of The Terezn Memorial Ð Database of politically and racially persecuted persons
+P9301,National Gallery of Art Library Bibliographic ID,identifier assigned to a bibliographic record for the library collection at the National Gallery of Art Library
+P9302,script style,style of script of a document or typeface
+P9303,svoyak.info player ID,identifier for a player at the Base of Sport SI
+P9304,Encyclopedia of Melbourne ID,identifier for an article in the Encyclopedia of Melbourne
+P9305,Max Movie person ID,identifier for a person on the Max Movie website
+P9306,EudraCT trial ID,"identifier for a trial in the EU Clinical Trials Register, the clinical trial registry of the European Medicines Agency"
+P9307,Fancyclopedia 3 ID,identifier for a page on Fancyclopedia 3
+P9308,operator licence number,British heavy goods vehicle (HGV) and public service vehicle (PSV) operator license number
+P9309,TaDiRAH ID,identifier for a concept in the Taxonomy of Digital Research Activities in the Humanities (TaDiRAH)
+P9310,pHash checksum,"perceptual hash for file on Commons, value which tells whether two images look nearly identical"
+P9311,Jyutping transliteration,Jyutping transliteration of Cantonese words
+P9312,AWB lemma ID,identifier for this lexeme in the Old High German dictionary at awb.saw-leipzig.de
+P9313,Yale romanization,Yale romanisation of Cantonese words
+P9314,Latin Place Names ID,identifier for the Latin name of a place in the database Latin Place Names
+P9315,Enslaved.org person ID,alphanumerical identifier for a person on the Enslaved.org website
+P9316,MyMusic artist ID,identifier for an artist on the MyMusic website
+P9317,Cantonese Pinyin,Cantonese Pinyin transliteration of Cantonese words
+P9318,çvvir topic ID,identifier of a topic in the Northern Smi publication çvvir
+P9319,Dark Horse creator ID,"identifier for creators (authors, artists, etc.) from Dark Horse Comics"
+P9320,ComiXology publisher ID,identifier for a publisher at ComiXology
+P9321,Inforegister ID,identifier for a business in Inforegister
+P9322,SVKKL authority ID,identifier in the regional authority database of Central Bohemian Research Library
+P9323,Cantonese Transliteration Scheme transliteration,Cantonese Transliteration Scheme transliteration of Cantonese words
+P9324,BiographySampo person ID,identifier for a person in the BiographySampo service
+P9325,Gedong Kirtya Classification,classification of Balinese palm-leaf manuscript based by Nyoman Kadjeng
+P9326,PatER ID,"identifier of cultural heritage in PatER, a website by Italian region Emilia-Romagna"
+P9327,Cartigli di Bologna ID,"identifier for a building, park, garden, or canal in Bologna on the Cartigli di Bologna website"
+P9328,Universal Music France artist ID,identifier for a band or person in the site UniversalMusic.fr
+P9329,Svoya Igra television player ID,identifier for a Svoya Igra TV show player at the svoya-igra.org
+P9330,Washington Place Names ID,numerical identifier for a place in Washington Place Names
+P9331,Storiaememoriadibologna ID,"identifier of the website Storiaememoriadibologna about the most important locations, events and persons of the history of Bologna, especially focused on the Certosa monumental cemetery of Bologna"
+P9332,Oxford African American Studies Center ID,identifiant of an entity in the Oxford African American Studies Center
+P9333,LFH staff ID,identifier for staff on the website of the French Ligue fminine de handball
+P9334,Cephalopod Ontology ID,"identifier for an anatomical entity in Cephalopod Ontology, an anatomical and developmental ontology for cephalopods"
+P9335,Archives West finding aid ID,identifier of a finding aid in Archives West
+P9336,Das wissenschaftliche Bibellexikon im Internet ID,"identifier in the German Bible encyclopedia online, written by academics and theologians"
+P9337,Keratsini-Drapetsona libraries' catalogue authority ID,"identifier for an authority in the catalogue of the libraries of Keratsini-Drapetsona Municipality (Piraeus regional unit, Athens, Attica, Greece)"
+P9338,NFL.com player ID (new scheme),identifier for American football players at NFL.com
+P9339,Bavarian Monument Map object ID (architectural monument),"identifier for an architectural monument in Bavaria, used in the Bavarian Monument Map, published by Bavarian State Office for Monument Protection"
+P9340,MeSH descriptor/qualifier ID,identifier for a MeSH (Medical Subject Headings) descriptor/qualifier combination
+P9341,MeSH qualifier ID,identifier of a MeSH (Medical Subject Headings) qualifier
+P9342,Bavarian Monument Map object ID (ground monument),"unique identifier for ground monuments in Bavaria, used in the Bavarian Monument Map Bavarian Monument Map, published by Bavarian State Office for Monument Protection"
+P9343,temples.ru ID,identifier for temple on the temples.ru website
+P9344,has graphical element,"mark, motif, coat of arms, map, or other graphic element added to a creative work"
+P9345,Discord server numeric ID,"numeric identifier for a Discord server; use as main value with qualifier P9078 ""Discord invite ID"""
+P9346,France24 topic ID (French),identifier of a topic on the French version of the France24 website
+P9347,France24 topic ID (English),identifier of a topic on the English version of the France24 website
+P9348,France24 topic ID (Spanish),identifier of a topic on the Spanish version of the France24 website
+P9349,France24 topic ID (Arabic),identifier of a topic on the Arabic version of the France24 website
+P9350,PeriodO period ID,identifier for a period in the PeriodO time period gazetteer
+P9351,MHDBDB lemma ID,identifier for this lexeme in the Middle High German Conceptual Database at mhdbdb.sbg.ac.at
+P9352,Portrait Archive ID,identifier for a person in the Swiss Portrait Archive
+P9353,does not have cause,"expected cause, assumed cause or usual cause absent here"
+P9354,Porcelana Brasil ID,identifier for a faience or porcelain manufacturer on the Porcelana Brasil website
+P9355,Slovnk ?esk?ch filosof? ID,identifier for a Czech philosopher in the online biographical dictionary Slovnk ?esk?ch filosof?
+P9356,Hymenoptera Anatomy Ontology ID,"identifier for an anatomical entity in Hymenoptera Anatomy Ontology, a structured controlled vocabulary of the anatomy of the Hymenoptera (bees, wasps, sawflies and ants)"
+P9357,Encyclopedia of French Cultural Heritage in North America ID (English),identifier for an article in the Encyclopedia of French Cultural Heritage in North America
+P9358,MWB lemma ID,identifier for this lexeme in the Middle High German dictionary at mhdwb-online.de
+P9359,Encyclopedia of Migration ID,identifier for an English-language article in the Encyclopedia of Migration
+P9360,Ministry of Education New Zealand school ID,Ministry of Education-issued identifier for a school in New Zealand
+P9361,external georeferencing URL,URL where external georeferencing is available for a map
+P9362,Encyklopedie migrace ID,identifier for a Czech-language article in the Encyklopedie migrace
+P9363,Tacoma-Pierce County Obituary Index ID,identifier for an entry in the Tacoma Public Library's Tacoma-Pierce County Obituary Index
+P9364,Encyclopedia of Mediterranean Humanism ID,identifier for an article in the Encyclopedia of Mediterranean Humanism
+P9365,Modernist Commons ID,identifier for an article in the encyclopedia Modernist Commons
+P9366,Rombase ID (English),identifier for an English-language article in the Rombase encyclopedia
+P9367,Filmitalia film ID,identifier used for films in the database of filmitalia.org
+P9368,CNA topic ID,identifier for a topic on CNA's website
+P9369,Fortalezas.org ID,identifier for a fortification in Fortalezas.org
+P9370,Place Names NI ID,identifier for a place in Place Names NI
+P9371,FranceArchives agent ID,identifier for a person on FranceArchives
+P9372,NHS Organisation Data Service ID,identifier for a component organisation of the UK's National Health Service
+P9373,Ukrainian national romanization,romanized Ukrainian text method for Ukrainian text (transliteration from Ukrainian Cyrillic alphabet to Latin alphabet)
+P9374,ODLIS ID,identifier for an entry in ODLIS: Online Dictionary for Library and Information Science
+P9375,Sociologick encyklopedie ID,identifier for an article in Sociologick encyklopedie
+P9376,law digest,"short text that summarizes a law, decree and other legal rulings, part of the preamble"
+P9377,BMZ lemma ID,"identifier for this lexeme in the Middle High German dictionary by Benecke, Mller, Zarncke at woerterbuchnetz.de"
+P9378,FindeB lemma ID,identifier for this lexeme in the Findebuch zum mittelhochdeutschen Wortschatz at woerterbuchnetz.de
+P9379,Lexer lemma ID,identifier for this lexeme in the Middle High German dictionary by Matthias Lexer at woerterbuchnetz.de
+P9380,LexerN lemma ID,identifier for this lexeme in the supplement to the Middle High German dictionary by Matthias Lexer at woerterbuchnetz.de
+P9381,Enslaved.org place ID,alphanumerical identifier for a place on the Enslaved website
+P9382,Unicode character name,official character name assigned by the Unicode Consortium
+P9383,The Mountaineers Routes & Places ID,identifier for a place for outdoor recreation on The Mountaineers Routes & Places website
+P9384,Adelung lemma ID,identifier for this lexeme in the Grammatisch-Kritisches Wrterbuch der Hochdeutschen Mundart at woerterbuchnetz.de
+P9385,DWB lemma ID,identifier for this lexeme in the German dictionary by Jacob and Wilhelm Grimm at woerterbuchnetz.de
+P9386,DWB2 lemma ID,identifier for this lexeme in the revised edition of the German dictionary by Jacob and Wilhelm Grimm at woerterbuchnetz.de
+P9387,GWB lemma ID,identifier for this lexeme in the Goethe dictionary by Jacob and Wilhelm Grimm at woerterbuchnetz.de
+P9388,Meyers lemma ID,identifier for this lexeme in the Meyers Gro§es Konversationslexikon at woerterbuchnetz.de
+P9389,RDWB1 lemma ID,identifier for this lexeme in the Wrterbuch der russisch-deutschen bersetzungsschwierigkeiten (German-Russian part) at woerterbuchnetz.de
+P9390,Wander lemma ID,identifier for this lexeme in the German proverb lexicon by Karl Friedrich Wilhelm Wander at woerterbuchnetz.de
+P9391,?esk divadeln encyklopedie ID,identifier for Czech articles in the Czech encyclopedia of theater
+P9392,Tschechische Theaterenzyklopdie ID,identifier for German articles in the Czech encyclopedia of theater
+P9393,Tacoma-Pierce County Buildings Index ID,identifier for an entry in the Tacoma Public Library's Tacoma-Pierce County Buildings Index
+P9394,Louvre Museum ARK ID,ARK identifier for works in the Louvre Museum
+P9396,trade union membership rate,rate of members of trade unions in proportion to the total number of workers
+P9397,Ltzebuerger Online Dictionnaire ID,identifier for this lexeme in the Luxembourgish dictionary at lod.lu
+P9398,Armenian Book ID,identifier for a written work in the Armenian Book database of National Library of Armenia
+P9399,athletics.lv athlete ID,identifier for an athlete at the Statistics Database of the Latvian Athletics Association
+P9400,Government of Canada Core Subject Thesaurus ID,identifier for an English term in the Government of Canada Core Subject Thesaurus
+P9401,Thsaurus des sujets de base du gouvernement du Canada ID,identifier for an French term in the Thsaurus des sujets de base du gouvernement du Canada ID
+P9402,GameSpot developer ID,identifier of a video game developer in the GameSpot database
+P9403,Muse national de la Marine ID,identifier for an object or artwork in the collection of Muse national de la Marine (MnM)
+P9404,OFDb person ID,identifier for a person in OFDb (Online Filmdatenbank)
+P9405,NMRShiftDB structure ID,structure identifiers in the NMRShiftDB
+P9406,Tacoma Local History & Biography Index ID,identifier for an entry in the Tacoma Public Library's Local History & Biography Index
+P9407,Polignosi ID,identifier for an article in the Cypriot online encyclopedia Polignosi
+P9408,Washington Flora Checklist ID,identifier in the Washington Flora Checklist
+P9409,American University of Beirut's Libraries title ID,identifier of a work in the Library Catalog of American University of Beirut
+P9410,placeholder text element ID,unique identifier (id attribute) of the or element in the SVG file whose contents should be replaced by text described by the value of the P6568 claim
+P9411,USCG MIC,"United States Coast Guard Manufacturer's (of boat) Identification Code (""MIC"")"
+P9412,Arca author ID,identifier for a Medieval Portuguese author in the database Arca
+P9414,Viasona ID,alphabetical identifier for an artist at the Viasona music archive website
+P9415, CV Biolex ID,identifier for a person in the CV Biolex biographical dictionary
+P9417,Camptocamp ID,numerical identifier for a waypoint on the Camptocamp.org website
+P9418,Biblio.com ID,alphabetical identifier for a bookstore on the Biblio.com website
+P9419,personal library at,institution holding the subjectÕs personal library
+P9420,CNN contributor ID,alphabetical identifier for a person on the CNN website
+P9421,IFVPF ID,identifier for a Brazilian coffee farm in the Inventory of the Vale do Paraba Fluminense Fazendas
+P9422,Musikasten ID,"identifier for an artist in Musikasten, a comprehensive database of music in Basque"
+P9423,OregonFlora taxon ID,numerical identifier for a taxon on the OregonFlora website
+P9424,Demozoo group ID,identifier for a demo group on Demozoo
+P9425,Image Comics creator ID,identifier for a comics creator at Image Comics
+P9426,Generals of World War II ID,alphabetical identifier for a person on the Generals of World War II website at generals.dk
+P9427,La Runion des Livres ID,alphabetical identifier for a Runionese author on the La Runion des Livres website
+P9428,Humanit?ro zin?t?u virtu?l? enciklop?dija concept ID,identifier for a concept in the Humanit?ro zin?t?u virtu?l? enciklop?dija
+P9429,Humanit?ro zin?t?u virtu?l? enciklop?dija person ID,identifier for a person in the Humanit?ro zin?t?u virtu?l? enciklop?dija
+P9430,Encyclopedia of Jewish Women ID,identifier for a woman in the Encyclopedia of Jewish Women
+P9431,Urban Archive ID,identifier for a place on Urban Archive
+P9432,GCD publisher ID,identifier for a comic book publisher in the Grand Comics Database (GCD)
+P9433,Leteck badatelna accident ID,identifier for an accident in Leteck badatelna
+P9434,Proveana ID,identifier for the provenance research database Proveana of the German Lost Art Foundation
+P9435,KATOTTH ID,identifier for each of the Ukrainian administrative units (from 2020) from ??????????? ???????????????-?????????????? ??????? ?? ????????? ?????????????? ??????
+P9436,La Fenice Theatre in Venice person ID,identifier of a person in the historical archives of the Teatro La Fenice in Venice
+P9437,Politiklexikon ID,identifier for an article in the Politiklexikon
+P9438,Europalexikon ID,identifer for an entry in Europalexikon
+P9439,National Inventory of Dams ID,"identifier for dams located in the United States used by the National Inventory of Dams, a publication of the US Army Corps of Engineers"
+P9440,pH value,acidity and alkalinity of an aqueous solution
+P9441,Wissens-Aggregator Mittelalter und Frhe Neuzeit ID,identifier for an entry in the Wissens-Aggregator Mittelalter und Frhe Neuzeit
+P9442,Indigenous Lands in Brazil ID,identifier of an indigenous territory or land in Brazil in the Indigenous Lands in Brazil database
+P9443,Virginia House of Delegates ID,numerical identifier of a person who served in the Virginia House of Delegates and the Virginia House of Burgesses
+P9444,CAOI person ID,identifier for architects described by Contemporary Architecture of Iran
+P9445,Encyklopedie antropologie ID,identifier for an article in the Encyklopedie antropologie
+P9446,Our Campaigns race ID,ID for a race in the Our Campaigns political election database
+P9447,Olympedia affiliations ID,identifier for the affiliation of athletes in Olympedia athlete database
+P9448,introduced on,date when a bill was introduced into a legislature
+P9449,ANPI place numeric ID,numeric identifier for a place on the ANPI Web portal
+P9450,National Provider Identifier,identification number for American health care providers issued by the Centers for Medicare and Medicaid Services
+P9451,Dicionrio Histrico-Biogrfico Brasileiro ID,identifier for a person in the Dicionrio Histrico-Biogrfico Brasileiro
+P9452,Brapci author ID,identifier for an author in the Brazilian database Brapci
+P9453,ALA-LC romanization for Ukrainian,romanization method for Ukrainian text (transliteration from Ukrainian Cyrillic alphabet to Latin alphabet)
+P9454,WikiRoutes ID,identifier for a transit route on the Wikiroutes website
+P9455,Biographia Benedictina ID,identifier for a Benedictine monk in the Biographia Benedictina
+P9456,Periodical ID in a database of the Ministry of Culture of the Czech Republic,periodical's ID in the database of Ministry of Culture of the Czech Republic
+P9457,National Database of Laws and Regulations ID,"law ID of ""National Database of Laws and Regulations"" maintained by General Office of the Standing Committee of the National People's Congress"
+P9458,Russians of Latvia ID,identifier for a person in the website Russians of Latvia
+P9459,Rekhta author ID,identifier for a author in the Rekhta database of Urdu literature
+P9460,Washington Rare Plant Field Guide ID (PDF version),identifier for a rare plant in the Washington Natural Heritage Program's Rare Plant Field Guide
+P9461,DzygaMDB film ID,identifier for a film at the movie database DzygaMDB.com
+P9462,Bioguiden movie theater ID,identifier of a movie theater in Bioguiden
+P9463,MovieMeter person ID,identifier for a person on the MovieMeter film database
+P9464,Biblioteca Digital Curt Nimuendaj ID,identifier of an entry in the Biblioteca Digital Curt Nimuendaj
+P9465,SonyLIV show ID,identifier for a show on SonyLIV
+P9466,Gyldendals Teaterleksikon ID,identifier of an article in the online encyclopedia teaterleksikon.lex.dk
+P9467,IAU member ID,identifier for a member of the International Astronomical Union (IAU)
+P9468,LIMA media artist ID,identifier for a media artist in the LIMA online catalogue
+P9469,Singers.com ID,"identifier for a musician, vocal music genre or style, or musical work on Singers.com"
+P9470,HistoryLink essay number,"number of an essay in HistoryLink.org, the free online encyclopedia of Washington State history"
+P9471,Art for the City inventory number,alphanumeric inventory number of a work in the Art for the City database
+P9472,Cimiterium ID,identifier of historical cemeteries in Cimiterium.cz
+P9473,Smithsonian ARK ID,ARK identifier for items at the Smithsonian Institution down to the digital asset level
+P9474,Oregon Poetic Voices poet ID,numerical identifier for a poet on the Oregon Poetic Voices website
+P9475,Encyclopedia of Korean Culture ID,identifer for an article in the Encyclopedia of Korean Culture
+P9476,Malaysian school code,identifier for a school situated in Malaysia
+P9477,Trap Danmark ID,identifier of an article in the online encyclopedia Trap Danmark
+P9478,Finna ID,media resource ID in Finna.fi
+P9479,Berliner Bezirkslexikon: Mitte ID,identifier for an article in the Berliner Bezirkslexikon: Mitte
+P9480,Berliner Bezirkslexikon: Charlottenburg-Wilmersdorf ID,identifier for an article in the Berliner Bezirkslexikon: Charlottenburg-Wilmersdorf
+P9481,Berliner Bezirkslexikon: Friedrichshain-Kreuzberg ID,identifier for an article in the Berliner Bezirkslexikon: Friedrichshain-Kreuzberg
+P9482,Catalogue of the General State Archives ID,"identifier for an entity (person, organization, family) in the catalog of the General State Archives of Greece"
+P9483,CofE archives catalogue ID,"identifier for a catalogue item in the Church of England's National Church Institutions Archives and Manuscripts Catalogue, including the archives of Lambeth Palace Library and the Church of England Record Centre"
+P9484,J! Archive player ID,identifier for a Jeopardy! player at the J! Archive
+P9485,CofE archives name ID,"identifier for an entity in the names database of the Church of England's National Church Institutions Archives and Manuscripts Catalogue, including the archives of Lambeth Palace Library and the Church of England Record Centre"
+P9486,HERO ID,identifier for a concept in the ontology of heraldry (HERO)
+P9487,GLEIF registration authority code,National registration authority code in the GLEI RAL list
+P9488,field of usage,specialized area or terminology where this sense is used
+P9489,Archdiocese of Liverpool parish ID,identifier for a parish in the Archdiocese of Liverpool
+P9490,Yukon Archives authority record ID,identifier for a Yukon Archives authority record
+P9491,CofE archives place ID,"identifier for a place in the places database of the Church of England's National Church Institutions Archives and Manuscripts Catalogue, including the archives of Lambeth Palace Library and the Church of England Record Centre"
+P9492,NC Highway Historical Marker Program ID,alphanumerical identifier for an historical marker of the North Carolina Highway Historical Marker Program
+P9493,artist files at,institution or collection that holds artist files about the subject
+P9494,accessibility statement URL,link to the accessibility statement of a website
+P9495,National Historical Museums of Sweden ID,authority identification for an entry in the collections of the National Historical Museums of Sweden
+P9496,degrees day,thermal degree days value for a locality (integral of temperature above or below a reference during a time period)
+P9497,Australian Thesaurus of Education Descriptors ID,identifier for a descriptor in the Australian Thesaurus of Education Descriptors
+P9498,Enzyklopdie des europischen Ostens ID,identifier for an article in the Enzyklopdie des europischen Ostens
+P9500,Reallexikon zur Deutschen Kunstgeschichte ID,identifier for an article in the Reallexikon zur Deutschen Kunstgeschichte
+P9501,Oregon Flora Image Project ID,identifier for a plant species on the Oregon Flora Image Project website
+P9502,Digital DISCI ID,identifier for a person or an institution in the Digital DISCI (online encyclopedia regarding Italian cartographers)
+P9503,MyBIS species ID,identifier for a species in the Malaysia Biodiversity Information System
+P9504,Beirut Arab University's Libraries title ID,identifier of an edition of a work in the Library Catalog of Beirut Arab University
+P9505,Gardens of the Roman Empire ID,identifier in the Gardens of the Roman Empire online scholarly corpus for gardens attested in the Roman Empire
+P9506,Ultime lettere di condannati a morte e di deportati della Resistenza italiana person ID,identifier for a person in the online database Ultime lettere di condannati a morte e di deportati della Resistenza italiana
+P9507,NBM authority ID,identifier issued by the Nuova Biblioteca Manoscritta (NBM)
+P9508,MileSplit ID,identifier for an athlete in MileSplit
+P9509,Mixcloud ID,identifier for a user on Mixcloud
+P9510,Forbes Russia profile ID,
+P9511,am.hayazg.info ID,identifier for a person in the Armenian website am.hayazg.info
+P9512,bridgesport.ru player ID,identifier for a player at Russian Bridge Federation official site
+P9513,APA Dictionary of Psychology entry,entry in the online version of the APA Dictionary of Psychology
+P9514,The Draft Review ID,identifier for a basketball player in the database of The Draft Review
+P9515,Nevada SHPO marker ID,"alphabetical identifier for an historical marker of the Nevada State Historic Preservation Office, in Nevada"
+P9516,IUCN Green List ID,alphabetical identifier for a protected area on the International Union for Conservation of Nature Green List on the website of the said list
+P9517,National Association of Teachers of Singing member ID,numerical identifier for a member of the National Association of Teachers of Singing
+P9518,Danmarks Tekniske Kulturarv book ID,Identifier for a book in the Danish Technical Cultural Heritage collection
+P9519,Digital Atlas of Idaho URL,URL for an entry in the Digital Atlas of Idaho
+P9520,Auschwitz Prisoners Database ID,identifier in the online database of Auschwitz prisoners
+P9521,Biology Online Biology Dictionary entry,entry for a term in the Biology Online Biology Dictionary
+P9522,Biblioteca di Santa Sabina ID,identifier for an authority in the catalogue of the Italian library Biblioteca di Santa Sabina
+P9523,Senate of Romania person ID,identifier for a person on the senat.ro website
+P9524,Chamber of Deputies of Romania person ID,identifier for a person on the cdep.ro website
+P9525,LMIC musician ID,identifier for a musician in the website of the Latvian Music Information Centre
+P9526,Scholarpedia article ID,identifier for an article in the peer-reviewed open-access encyclopedia Scholarpedia
+P9527,Historic HawaiÔi Foundation place ID,identifier for a location on the Historic HawaiÔi Foundation website
+P9528,Digital Library of Armenian Literature author ID,identifier for an author in the Digital Library of Armenian Literature
+P9529,Den Danske Ordbog article ID,article in the danish dictionary Den Danske Ordbog
+P9530,Den Danske Ordbog idiom ID,idiom in the danish dictionary Den Danske Ordbog
+P9531,identifier shared with lexeme,qualifier used to state which other lexemes are also matched to this identifier
+P9532,OpenCorporates register ID,identifier for a company register at OpenCorporates registers
+P9533,audio transcription,transcription of the word/text being spoken in this file
+P9534,Biblioteche della Custodia di Terra Santa a Gerusalemme ID,identifier for an authority in the collective catalogue of the Biblioteche della Custodia di Terra Santa a Gerusalemme
+P9535,IBSF competition ID,Identifier for bobsleigh and skeleton competitions in the IBSF database
+P9536,SAIA authority ID,identifier for an authority in the Catalogue of the Library of the Italian School of Archaeology at Athens
+P9537,NFF club ID,identifier for a member club in Football Association of Norway
+P9538,music austria ID,identifier in the Austrian online music database music austria
+P9539,Secondary Archive artist ID,identifier for an artist in the Secondary Archive
+P9540,Editorial Freelancers Association member ID,identifier for a member of the Editorial Freelancers Association
+P9541,MacArthur Fellows Program ID,identifier for a MacArthur Fellows Program person
+P9542,representatives1821.gr ID,identifier for a person in the website representatives1821.gr
+P9543,Memento Vienna person ID,"identifier for a person in Memento Vienna, an online tool that offers information about the victims of the Nazi regime in Vienna"
+P9544,universal equine life number,unique identification number of an individual horse or other equine animal used in Europe
+P9545,Encyclopedia of China ID (Second Edition),identifier for an article of the second edition in the Encyclopedia of China Online Database
+P9546,Indiana State Historical Marker Program ID,identifier for an historical marker of the Indiana State Historical Marker Program
+P9547,counterpart position,ruling party position which this opposition political party position is the counterpart of or shadows
+P9548,earned run average,earned run average of a baseball pitcher in a career or season
+P9549,official podcast,official podcast of this person or organization
+P9550,Apple Music label ID,identifier for a label on Apple Music
+P9551,bio.se movie theater ID,identifier for Swedish movie theaters on the movie listings site bio.se
+P9552,MyBIS protected area ID,identifier for a protected area in the Malaysia Biodiversity Information System
+P9553,Dialnet thesis ID,identifier for a doctoral thesis in Dialnet
+P9554,hPSCreg cell line ID,identifier for a cell line in the Human Pluripotent Stem Cell Registry (hPSCreg)
+P9555,Michigan State University Library Comic Art Collection Record Number,Michigan State University Library identifier for objects in the Comic Art collection
+P9556,LTit person ID,"identifier for a person (authors, translators, intermediaries) in the Italian database Letteratura tradotta in Italia"
+P9557,JECFA number,identifier for food additives assigned by Joint FAO/WHO Expert Committee on Food Additives
+P9558,Badok ID,identifier for an entity in the website Badok.eus
+P9559,Sigla ID,persistent identifier of Czech libraries
+P9560,DCinemaToday company ID,identifier for a company on the DCinemaToday website
+P9561,CEV coach ID,identifier for a coach on the European Volleyball Confederation's website
+P9562,CEV team ID,identifier for a team on the European Volleyball Confederation's website
+P9563,Encyclopedia of Renaissance Philosophy ID,identifier for a topic in the Encyclopedia of Renaissance Philosophy
+P9564,Biographical Dictionary of Chinese Christianity ID,identifier of a person in the Biographical Dictionary of Chinese Christianity
+P9565,AdServio ID,identifier for a higher education institution on the adservio.ro website
+P9566,diel cycle,"pattern of diel activity in animals, such as ""nocturnal"" (Q101029366), ""diurnal"" (Q4284186)"
+P9567,intended background color,this transparent image is intended to be used in front of a background color
+P9568,PeakVisor peak ID,identifier for a mountain or hill in PeakVisor
+P9569,PeakVisor range ID,identifier for a mountain range in PeakVisor
+P9570,scope note,note that describes what a term means in the context of a particular controlled subject vocabulary; use as a qualifier for identifier statements when a controlled vocabulary has a scope note
+P9571,PeakVisor area ID,identifier for an administrative area in PeakVisor
+P9572,PeakVisor park ID,identifier for a park in PeakVisor
+P9573,Anime Filler List show ID,Wikidata property
+P9574,Anime Filler List episode slug,Wikidata property
+P9575,Australian Music Centre artist ID,identifier for a composer or other artist represented by the Australian Music Centre
+P9576,Danish 2010 redlist identifier,identifier for species on the Danish redlist
+P9577,synonymer.se ID,external identifier for synonymer.se
+P9578,SOUNZ work ID,identifier for a musical work in the SOUNZ database
+P9579,vedidk ID,identifier for researchers in the Czech Republic
+P9580,Microlepidoptera.nl ID,identifier for a species of microlepidoptera in the microlepidoptera.nl website
+P9581,UNITER Award person ID,identifier for a nominee or a winner on the UNITER (Uniunea Teatral? din Romnia) website
+P9583,sense on DHLE,sense on the Historical Dictionary of the Spanish Language
+P9584,The Criterion Collection film ID,identifier of a film on the Criterion Collection website (criterion.com) [not the spine number]
+P9585,Lexikon der sterreichischen Provenienzforschung ID,identifier for an entry in the Dictionary of Austrian Provenance Research
+P9586,Apple TV movie ID,identifier for a movie on Apple TV
+P9587,Canadian Music Centre Composer Showcase ID,identifier for a composer in the Canadian Music Centre Composer Showcase database
+P9588,causesanti.va ID,identifier for a Catholic blessed or a Catholic saint in the database causesanti.va by the Congregation for the Causes of Saints
+P9589,Muziekencyclopedie ID,identifier for a musician or musical group in Muziekencyclopedie
+P9590,North Carolina session law,North Carolina session law identifier for a piece of legislation in the format: [year]-[counter]
+P9591,#SOSBrutalism ID,identifier for #SOSBrutalism database website
+P9592,Online Archive of California finding aid ID,"identifier for a finding aid, or collection guide, in the Online Archive of California"
+P9593,Museums in Styria ID,"identifier for a museum in Styria, Austria"
+P9594,Bodleian Archives & Manuscripts person ID,identifier for a person in the database Bodleian Archives & Manuscripts
+P9595,SOR bird ID,"identifier for a bird species found in Romania, registered by the Romanian Ornithological Society (SOR) on the PasariDinRomania.SOR.Ro website"
+P9596,ToateAnimalele ID,identifier for an animal species on the ToateAnimalele.Ro website
+P9597,type of lens,"type of lens used in a lighthouse, telescope, camera, etc."
+P9598,Polo bibliografico della ricerca title ID,identifier for a title in the Polo bibliografico della Ricerca catalogue
+P9599,Polo bibliografico della ricerca author ID,identifier for an author in the Polo bibliografico della Ricerca catalogue
+P9600,oral history at,
+P9601,official map URL,"URL of an official map, plan or geographic information system (GIS) for the place"
+P9602,OSDN project,"identifier for an official OSDN repository (""project"") for a software product"
+P9603,Scholasticon person ID,identifier for a person in the database Scholasticon regarding early-modern scholasticism
+P9604,DiVA authority-person,identifier for an author in the Swedish Digital Scientific Archive (DiVA)
+P9605,CDep.Ro NGO ID,identifier for a Non-Governmental Organization in the database of the Chamber of Deputies of Romania on the CDep.Ro website
+P9606,WUA author ID,identifier for an author who is member of the Writers Union of Armenia
+P9607,hush.am person ID,identifier for a person in the Armenian website hush.am regarding Armenian grave records
+P9608,Moths and Butterflies of Europe and North Africa ID,identifier of a species on the Moths and Butterflies of Europe and North Africa website (leps.it)
+P9609,What Works Clearinghouse study ID,identifier for a publication in the What Works Clearinghouse database
+P9610,PoetsGate poet ID,identifier for a poet on the PoetsGate website
+P9611,district heating grid,district heating (or cooling) grid of region/locality connecting producers and residential or commercial consumers in the area
+P9612,Repositrio da Produo da USP person ID,unique identifier of person registered in the institutional repository of intellectual production at the University of So Paulo
+P9613,ctext data entity ID,identifier for an entity in ctext's Data wiki
+P9614,Australian Music Centre work ID,identifier for a musical work on the Australian Music Centre website
+P9615,Badkartan.se ID,"identifier for bathing places in Sweden at badkartan.se, a site were people can add reviews of a beach"
+P9616,Eionet bathingWaterIdentifier,identifier for a beach in Europe monitored for swimming/bathing water quality by the European Environment Information and Observation Network (Eionet)
+P9617,ifixit device ID,identifier of a device on the repair website ifixit.com
+P9618,AlternativeTo software ID,identifier used in the crowdsourced software recommendation website AlternativeTo.net
+P9619,Price One Penny author ID,identifier for an author in the Price One Penny database
+P9620,Nevada Women's History Project ID,identifier for a biography created by the Jean Ford Research Center
+P9621,Treccani's Enciclopedia della Matematica ID,"identifier for a topic in Treccani's Enciclopedia della Matematica, an Italian encyclopedia regarding mathematics"
+P9622,Price One Penny work ID,identifier for a work in the Price One Penny database
+P9623,Price One Penny library ID,identifier for a library in the Price One Penny database
+P9624,Price One Penny publisher ID,identifier for individuals listed as publishers in the Price One Penny database
+P9625,Dizionario Biografico dell'Educazione (1800Ð2000) ID,identifier for a person in the Italian biographical dictionary Dizionario Biografico dell'Educazione (1800-2000)
+P9626,Biographical Encyclopedia of Astronomers ID,identifier for a person in the first edition of the Biographical Encyclopedia of Astronomers
+P9627,Romanistenlexikon ID,identifier for a topic in the online encyclopedia Romanistenlexikon regarding Romance philology
+P9628,composers.am person ID,identifier for a person in the site of Composers Union of Armenia
+P9629,Armeniapedia ID,identifier for a topic in the online encyclopedia Armeniapedia
+P9630,OpenCorporates register jurisdiction,jurisdiction of company register at http://registries.opencorporates.com/
+P9631,armradioarchive.am person ID,identifier for a musician in the Armenian Radio Archive by the Public Radio of Armenia
+P9632,PANGO lineage code,identifier of a lineage of the SARS-CoV-2 virus
+P9633,AZGS Document Repository ID,identifier for a document in the AZGS (Arizona Geological Survey) Document Repository
+P9634,AADFI member ID,identifier for a member of the Italian Accademia delle Arti del Disegno
+P9635,electronic Essential Medicines List medicine ID,identifier of a medicine listed in the electronic Essential Medicines List (eEML) published by the WHO
+P9636,Japan PlayStation Software Database ID,identifier of a video game in the Japan PlayStation Software Database
+P9637,Erfgoedkaart ID,identifier of heritage organisations in Belgium
+P9638,Romanian diplomatic mission ID,identifier for a Romanian diplomatic mission on the mae.ro website
+P9639,Foreign diplomatic mission in Romania ID,identifier for a foreign diplomatic mission in Romania on the mae.ro website
+P9640,PAS member ID,identifier for a member of the Pontifical Academy of Sciences
+P9641,fondoambiente.it ID,identifier in the database of the Fondo per l'Ambiente Italiano
+P9642,Olschki author ID,identifier for an author in the database of the Italian publisher Olschki
+P9643,French Etalab parcel visualization code,visualization code of an Etalab cadastral parcel in France
+P9644,Geneanet family name ID,ID for a family name on Geneanet
+P9645,Online Coins of the Roman Empire ID,"identifier of a coin in the Online Coins of the Roman Empire platform, with numbering based on the Roman Imperial Coinage (RIC) series published by Spink & Son"
+P9646,senato.archivioluce.it person ID,identifier for a member of the Italian Senate in the database senato.archivioluce.it
+P9647,DIP ID,Identification number of a process in Dokumentations- und Informationssystem fr Parlamentsmaterialien
+P9648,Newspaper Genre List ID,identifier for a term in the Newspaper Genre List
+P9649,Dutch Caribbean Species Register ID,identifier of a species in the Dutch Caribbean Species Register
+P9650,Internet Game Database company ID,identifier of a video game company in the Internet Game Database
+P9651,Book Owners Online person ID,identifier for a person in the database Book Owners Online
+P9652,personality trait of fictional character,particular personality trait which applies to this fictional character
+P9653,Bod-Inc Online author ID,"identifier for an author, translator, editor or dedicatees in the database Bod-Inc Online regarding the incunables in Bodleian Libraries"
+P9654,Burke Herbarium Image Collection ID,"identifier for a plant, macrofungus, or lichen species in the Burke Herbarium Image Collection"
+P9655,Ropiky.net pillbox ID,identifier of light pillboxes in Czechoslovakia from ropiky.net
+P9656,"Istituto Veneto di Scienze, Lettere ed Arti member ID","identifier for a member of the Istituto Veneto di Scienze, Lettere ed Arti"
+P9657,Memobase ID,identifier in the Memobase database of Swiss audiovisual heritage
+P9658,Standard Citation Forms for Rare Materials Cataloging ID,identifier for a standard citation string in Standard Citation Forms for Rare Materials Cataloging
+P9659,Skipsrevyen ID,identifier for a boat review in Skipsrevyen
+P9660,not found in,"publication or database relevant to the topic that would generally include similar subjects, but in which the subject isn't described or attested. Use if there is no external-id property for the work."
+P9661,EBAF authority ID,identifier for an authority in the catalogue of the Saint-tienne Library of the French Biblical and Archaeological School of Jerusalem
+P9662,LdiF person ID,identifier for a person in the Lexicon of international films (Online Database)
+P9663,Musica Baltica person ID,identifier for a composer or author on the Musica Baltica website
+P9664,named place on map,property linking a map to a place named on it
+P9665,EGID,identifier of a building in the Swiss Federal Register of Buildings and Housing
+P9666,RBF event ID,identifier for a competition on the Romanian Bridge Federation website
+P9667,date of resignation,"date of official resignation of the head of a government in parliamentary-based states, triggering the government to stay in place until the formation of a new executive"
+P9668,cirkev.cz Catholic services ID,identifier for places in the Czech Republic where catholic masses are held
+P9669,Olympic Committee of Israel athlete ID,"identifier for an athlete (sportsperson) at olympicsil.co.il, a website of the Olympic Committee of Israel (Hebrew: ????? ???????? ??????)"
+P9670,ZKM person ID,identifier for a media artist in the catalogue of ZKM (Zentrum fr Kunst und Medien)
+P9671,Bundesstiftung Aufarbeitung person ID,identifier for a person in the biographical databases of the Federal Foundation for the Reappraisal of the SED Dictatorship
+P9672,Fotodok ID,"Identifier to link into fotodok, the online encyclopedia for photography of Central Switzerland"
+P9673,museumPASSmuses ID,identifier for a museum on the museumPASSmuses website
+P9674,Burke Herbarium Image Collection contributor ID,identifier for a contributor to the Burke Herbarium Image Collection
+P9675,MediaWiki page ID,numeric identifier of a page in a MediaWiki wiki
+P9676,Vindskyddskartan.se ID,"identifier of a campsite on Vindskyddskartan.se, often with a lean-to shelter or wilderness hut"
+P9677,Hokej.cz player ID,identifier for an ice hockey player at Hokej.cz
+P9678,Franciscan Center of Christian Oriental Studies ID,identifier for an authority in the catalogue of the Library of the Franciscan Center of Christian Oriental Studies
+P9679,Companies Registration Office (Ireland) Registration Number,identifier for a company in the Republic of Ireland assigned by the Companies Registration Office
+P9680,consequence of text,legislative or executive or other text that was the cause of the statement
+P9681,voted on by,a legislative house in which a legislative act was voted on
+P9682,Gutenberg Biographics ID,identifier for a professor of the University of Mainz (period 1477-1973) in the database Gutenberg Biographics
+P9683,Qualis rank,rank of an academic journal on the Qualis/CAPES system
+P9684,Idaho Species ID,"identifier for an animal, plant, or fungal taxon in the Idaho Species database and website"
+P9685,Montana Field Guide species ID,"identifier for an animal, plant, or fungus species in the Montana Field Guide"
+P9686,Classical Archives composer ID,identifier for a composer on the Classical Archives website
+P9687,author given names,qualifier for string representation of given or secondary sorting portion of a name as represented in a bibliographic reference file (for example BibTeX)
+P9688,author last names,qualifier to provide string representation of family or primary sorting portion of name as represented in a bibliographic reference file (for example BibTeX)
+P9689,Crosscut author ID,identifier of an author for the online newspaper Crosscut
+P9690,E-Fauna BC species ID,identifier for an animal species in E-Fauna BC
+P9691,E-Flora BC species ID,"identifier for a plant species, subspecies, or variety on E-Flora BC"
+P9692,LexM ID,identifier for a musician in the Lexikon verfolgter Musiker und Musikerinnen der NS-Zeit
+P9693,BES-Net user ID,identifier for a user on BES-Net
+P9694,VK Music artist ID,identifier for an artist on VK site
+P9695,Legie 100 legionary ID,legionary identifier in Legie 100 project
+P9696,Buzer.de law identification,identification number of a law in Buzer.de
+P9697,Games@Mail.ru ID,identifier of a video game at Games@Mail.ru database
+P9698,World Curling Federation Championship ID,identifier to a championship in World Curling Federation results database
+P9699,FOIH themes ID,identifier for a place in Flanders in the Inventaris Onroerend Erfgoed
+P9700,delta of,river that empties water and sediment into its delta
+P9701,African Film Database ID,identifier of a movie in the African Film Database
+P9702,Gameblog.fr game ID,identifier of a video game in the Gameblog.fr database
+P9703,CCC in Idaho Collection ID,identifier for a structure on the Civilian Conservation Corps in Idaho Collection website
+P9704,Monumental Trees ID,identifier of a remarkable tree on the Monumental Trees website
+P9705,Bauforschung Baden-Wrttemberg Objekt-ID,"Object-ID of the database ""building research/restoration of the state office for the preservation of monuments"""
+P9706,Director Identification Number,"identifier for a person intending to be a director or an existing director of a company, assigned by the Indian central government"
+P9707,GCD creator ID,identifier for a comic book creator in the Grand Comics Database (GCD)
+P9708,Handzone player ID,identifier for a handball player on the reference French website Handzone.net
+P9709,Games und Erinnerungskultur Datenbank ID,identifier of a video game in the Games und Erinnerungskultur Datenbank
+P9710,Lexikon Westflischer Autorinnen und Autoren person ID,identifier for an author in the Lexikon Westflischer Autorinnen und Autoren
+P9711,cIMeC.Ro museum ID,"identifier for a museum or a collection on the GhidulMuzeelor.cIMeC.Ro (""TheGuideOfTheMuseums"") website"
+P9712,Research Resource Identifier,
+P9713,Swedish National Archive agent ID,identifier for a person or organization in the Swedish National Archive Database
+P9714,taxon range,geographic area(s) where a taxon is found
+P9715,Room of Names ID,identifier for a person in the Digital Memorial Book for the Dead of the Mauthausen Concentration Camp and its subcamps
+P9716,Native Land territory ID,identifier for territorial entry on the Native Land interactive map
+P9717,Native Land language ID,identifier for language entry on the Native Land interactive map
+P9718,eishockey.info player ID,identifier ice hockey player at eishockey.info
+P9719,HockeyLive player ID,identifier ice hockey player at HockeyLive
+P9720,fotoCH photographer ID,identifier for a photographer in fotoCH
+P9721,image of entrance,"view of an entry point of an architectural structure, vehicle, territorial entity, road or other space, in the entering direction (not in the exiting direction)"
+P9722,UFC athlete ID,"identifier of a mixed martial arts (MMA) fighter's profile page at UFC.com, the official website of Ultimate Fighting Championship (UFC)."
+P9723,20th Century Chinese Biographical Database ID,identifier for a person in the 20th Century Chinese Biographical Database
+P9724,FightMatrix fighter ID,identifier of a mixed martial arts (MMA) fighter's profile page at FightMatrix.com
+P9725,EBIDAT ID,identifier for an entry in the castles inventory database EBIDAT
+P9726,Bellator fighter ID,"identifier of a mixed martial arts (MMA) fighter's profile page at Bellator.com, the official website of Bellator MMA"
+P9727,WTA-Trainer-ID,identifier for tennis coaches in the WTA database
+P9728,Tapology fighter ID,identifier of a mixed martial arts (MMA) fighter's profile page at Tapology.com
+P9729,replacement value,"value to use instead, use as qualifier for constraint definitions, with or without ""replacement property (P6824)"""
+P9730,Chidlovski.Com USSR national ice hockey team player ID,identifier for an USSR national ice hockey team player at Chidlovski.Com
+P9731,announced at,event at which product or creative work was announced
+P9732,URL for citizen's initiatives,URL for a service where citizens can start a petition or initiative
+P9733,International Tables for Crystallography space group number,space group number as assigned in International Tables for Crystallography Vol. A
+P9734,Treccani's Enciclopedia Dantesca ID,identifier for an item in the Enciclopedia Dantesca
+P9735,Citt e Cattedrali ID,identifier for ecclesiastical cultural heritage of Piedmont and Valle dÕAosta (Italy)
+P9736,MANTO ID,"identifier for an entity (person, place, object) related to Greek mythology in the database MANTO"
+P9737,WMO code,unique identifier for weather station
+P9738,IFPNI author ID,identifier for an author in the International Fossil Plant Names Index (IFPNI)
+P9739,Landshuth ID,identifier for a gravestone in the Jewish cemetery in the Gro§e Hamburger Stra§e in Berlin after Eliezer Landshuth
+P9740,number of request signatories,"number of persons who signed a given petition, initiative, request for a referendum, or other large scale proposal/request"
+P9741,Pladias ID,taxon identifier in Pladias database of Czech plant species
+P9742,Central records of collections ID,collection's ID in the database of Ministry of Culture of the Czech Republic
+P9743,Podchaser creator ID,identifier of a person in the Podchaser database
+P9744,Steam Greenlight game ID,identifier of a video game on Steam Greenlight
+P9745,translation of,"edition, version, or expression that this translation is translated from"
+P9746,CEICE school code,"identifier for a school from the Ministry of Education, Culture and Sport of the Valencian Government"
+P9747,Adventure Corner video game ID,identifier of a video game in the Adventure Corner database
+P9748,Wikimedia Incubator URL,active Wikimedia Incubator project in the language
+P9749,FRB person ID,identifier for a person on the Romanian Basketball Federation's website
+P9750,Apple TV episode ID,identifier for a TV episode on Apple TV
+P9751,Apple TV show ID,identifier for a TV show on Apple TV
+P9752,FRB event ID,identifier for a basketball game on the Romanian Basketball Federation's website
+P9753,Wikidata language code,identifier for a language or variant at Wikidata. Use P424 (Wikimedia language code) to identify the language of a Wikimedia wiki.
+P9754,Raakvlak inventory number,collection of heritage and archaeological finds
+P9755,Scenic Washington scenic drives and road trips ID,"identifier for a scenic byway, road trip, or point of interest on the Scenic Washington website"
+P9756,Schoenberg Database of Manuscripts name ID,identifier for an agent (person or corporate body) in the Schoenberg Database of Manuscripts
+P9757,Schoenberg Database of Manuscripts place ID,identifier for a place in the Schoenberg Database of Manuscripts
+P9758,symbol represents,"qualifier for ""in defining formula"" (P7235) which indicates the quantity or operator represented by a symbol in the ""defining formula"" (P2534)"
+P9759,bridge number,"numeric or alphanumeric identifier of a bridge (for US bridges, use P3676)"
+P9760,Treccani's Enciclopedia del Cinema ID,identifier for an item in the Enciclopedia del Cinema
+P9761,IRIS SNS author ID,"identifier for an author in IRIS SNS, the open-access repository of Scuola Normale Superiore"
+P9762,U.S. Ski & Snowboard athlete ID,identifier for athletes on the U.S. Ski & Snowboard website
+P9763,syntactic dependency head relationship,"type of dependency relationship between the part being qualified and its corresponding head (denoted with ""syntactic dependency head position"")"
+P9764,syntactic dependency head position,"position (as a value for P1545 on another P5238 statement of the same lexeme) of the head to which the ""syntactic dependency head relationship"" value qualifying this P5238 statement points"
+P9765,Great Ukrainian Encyclopedia Online ID,ID for an entry on the official website of the Great Ukrainian Encyclopedia
+P9766,FIBA 3x3 player ID,identifier for 3x3 basketball player at FIBA site
+P9767,edition/version,the official edition or version name of a resource; this name is not considered part of the title or subtitle of the resource
+P9768,Women Also Know History ID,identifier for a woman historian in the database Women Also Know History
+P9769,Marmiton ID,"alphabetical identifier for a dish on Marmiton, an established French cooking website"
+P9770,Knesset member ID,identifier of a Knesset member on the Knesset website
+P9771,free/libre open source software usage policy URL,URL for free/libre open source use policy or guideline of an entity
+P9772,The New Yorker contributor ID,identifier for a contributor on The New Yorker website
+P9773,Kielitoimiston sanakirja ID,identifier for an entry in Kielitoimiston sanakirja
+P9774,BNM bibliographic record ID,identifier for a bibliographic record in the Biblioteca Nacional de Maestras y Maestros (BNM) Catalog and Digital Library
+P9775,Treccani's Lessico del XXI Secolo ID,identifier for an entry in the Lessico del XXI Secolo on the Institute of the Italian Encyclopaedia website
+P9776,e-Rad researcher number,identifier for researchers in Japan used in goverment-based research funding (from 1980s)
+P9777,Rock Paper Shotgun game ID,identifier of a video game on the Rock Paper Shotgun video game news website
+P9778,Looted Cultural Assets Database ID,identifier for an entity in the Looted Cultural Assets (LCA) Database
+P9779,abART term ID,identifier of term in Czech database abART
+P9780,The Women's Print History Project person ID,numerical identifier for a person in the The WomenÕs Print History Project database
+P9781,FANZA AV actress ID,identifier of Japanese AV actress on actress.dmm.co.jp
+P9782,Tax Identification Number (Belarus),an identifier for a taxpaying entity in Belarus
+P9783,IFFR filmmaker ID,filmmaker in the catalogue of IFFR
+P9784,Index Theologicus publication ID,identifier of a publication in Index Theologicus
+P9785,IrishTheatre.ie company ID,identifier for a theatre company in the Irish Theatre Institute's IrishTheatre.ie database
+P9786,Joods Biografisch Woordenboek ID,Jewish Biographical Dictionary of the Netherlands identifier
+P9787,Smartify artwork ID,identifier for artworks displayed by the Smartify website and App
+P9788,performed at,a venue or location that a person or group performed at
+P9789,Yale Center for British Art artwork Lido ID,identifier for an artwork on the Yale Center for British Art website. P4738 is now deprecated.
+P9790,Smithsonian trinomial format regex,regex to describe the format of Smithsonian trinomials for a U.S. territorial entity
+P9791,ASEE person ID,identifier for a person in the database Archivio Storico delle Economiste e degli Economisti
+P9792,Alsharek Archive author ID,identifier for an author on Alsharek Archive
+P9793,setlist,performances of songs or other music at an event; concert program
+P9794,UCLA Space Inventory LocID,"identifier for a University of California, Los Angeles building"
+P9795,ARPI author ID,"identifier for an author in ARPI, the open-access repository of the University of Pisa"
+P9796,IRIS SSSUP author ID,"identifier for an author in IRIS SSSUP, the open-access repository of Sant'Anna School of Advanced Studies"
+P9797,Royal Ontario Museum ID,identifier for a work of art at the Royal Ontario Museum
+P9798,Classification of the Functions of Government,UN classification to compare government agencies across countries
+P9799,Palynodata taxa ID,identifier of a taxon in the Palynodata database
+P9800,CDDA designationTypeCode,code for the national designation type used in the Common Database on Designated Areas inventory (CDDA)
+P9801,PsycNET ID,identifer of an journal article or book chapter in APA PsycNET
+P9802,Penguin Random House author ID,identifier for an author on the Penguin Random House website
+P9803,UEFA stadium category,Category of the sports facility according to the UEFA Stadium Infrastructure Regulations
+P9804,Palynodata publications ID,identifier of a publication in the Palynodata database
+P9805,Mapping the Lives ID,identifier for a person in the Mapping the Lives database
+P9806,WiiG game ID,identifier of a video game on WiiG.de
+P9807,SNK ID,"authority control for the Slovak National Library, used in its catalog"
+P9808,arheologi.ro ID,identifier for an archaeologist on the Romanian website arheologi.ro
+P9809,Enciclopedia dell'Arte Antica ID,identifier for an item in the Enciclopedia dell'Arte Antica on the Istituto dell'Enciclopedia Italiana website
+P9810,remix of,the song this audio track is a remix of
+P9811,Asian Historical Architecture structure ID,identifier for an architectural structure on the Asian Historical Architecture website
+P9812,Likee username,this item's username on Likee; do not include the Ò@Ó symbol
+P9813,container,the type or representing item of the container that is located outside of and is not part of the item
+P9814,Team Deutschland Paralympics athlete ID,"identifier for an athlete (sportsperson) at teamdeutschland-paralympics.de, the Team Deutschland Paralympics website"
+P9815,BMC ID,identifier of item in BMC database
+P9816,Kartridge game ID,identifier for a video game on Kartridge
+P9817,ISL ID,alphabetical identifier for a swimmer on the International Swimming League website
+P9818,Penguin Random House book ID,identifier for a book/publication on the Penguin Random House website
+P9819,Daum Cafe ID,identifier for a Daum Cafe forum account
+P9820,Freeview show ID,identifier of a television show on the Freeview digital television platform in Australia
+P9821,Unconsenting Media ID,"identifier for a film, television show, or literary work in the Unconsenting Media database, which provides information about rape and sexual assault in TV, movies, and books"
+P9822,TeamNL athlete ID,numerical identifier for a sportsperson who represented the Netherlands in international competitions
+P9823,Volleybox ID,alphanumerical identifier for a volleyball player or team in the Volleybox database
+P9824,COD ID,identifier of a crystal structure in the Crystallography Open Database (COD)
+P9825,allabolag.se person ID,person ID on allabolag.se
+P9826,Great Encyclopedia of Cyril and Methodius entry ID,ID for an entry on the Great Encyclopedia of Cyrill and Methodius
+P9827,GSSO ID,"identifier for controlled vocabulary in the GSSO (Gender, Sex, and Sexual Orientation) ontology"
+P9828,Fontaines de France ID,identifier of a fountain on the Fontaines de France website
+P9829,KNHB ID,numerical identifier for a field hockey player on the Royal Dutch Hockey Association website
+P9830,DC Books book ID,identifier for books in the DC Books online bookstore
+P9831,release of,release group this release belongs to
+P9832,Igromania developer/publisher ID,identifier of a video game developer or publisher at the Igromania.ru website
+P9833,Deutsche Sporthilfe ID,identifier for an athlete in the database of the Deutsche Sporthilfe
+P9834,Finnish National Gallery artwork ID,identifier for an artwork on the Finnish National Gallery website
+P9835,Igromania series ID,identifier of a video game series at the website Igromania.ru
+P9836,National Diet Library persistent work ID,identifier for a work in the National Diet Library
+P9837,Svensk ordbok ID,unique identifier of a lexeme in Svensk ordbok published by the Swedish Academy (SO)
+P9838,ECO code,alphanumerical identifier for an opening in the Encyclopaedia of Chess Openings
+P9839,izeltlabuak.hu ID,"numerical identifier for a species in the Hungarian crowd-sourced database of arthropods, izeltlabuak.hu"
+P9840,Food.com ID,numerical identifier for an ingredient on the Food.com cooking website
+P9841,Jornal do Vlei ID,alphabetical identifier for a volleyball player on the Brazilian website Jornal do Vlei
+P9842,MART catalog person ID,identifier of a person in the Catalogo Integrato del Mart
+P9843,IRIS UNINA author ID,"identifier for an author in IRIS Universit degli Studi di Napoli Federico II, the open-access repository of the University of Naples Federico II"
+P9844,IRIS UNIPV author ID,"identifier for an author in IRIS UNIPV, the open-repository of the University of Pavia"
+P9845,Overnia ID,identifier in the digital library Overnia
+P9846,HandiSport quipes de France ID,alphabetical identifier for an athlete in the database at Bleushandisport.com
+P9847,Cinemaitaliano person ID,identifier for a person on the website Cinemaitaliano
+P9848,Cinemaitaliano film ID,identifier for a film on the website Cinemaitaliano
+P9849,Mozilla extension ID,unique identifier of a Mozilla extension or a WebExtension targeting the Gecko platform
+P9850,Enciclopedia dell'Arte Medievale ID,alphabetical identifier for an item in the Enciclopedia dell'Arte Medievale on the Istituto dell'Enciclopedia Italiana website
+P9851,DC character ID,alphabetical identifier for a character on the DC Comics website
+P9852,Media Bias/Fact Check ID,"identifier for a publication, organization, or person at Media Bias/Fact Check"
+P9853,Australian Medical Pioneers Index ID,numerical identifier for a person in the Australian Medical Pioneers Index
+P9854,eAmbrosia ID,alphanumerical identifier for a product in the eAmbrosia database (EU geographical indications register)
+P9855,Edizioni Ares author ID,identifier for an author in the database of the Italian publisher Edizioni Ares
+P9856,Al-Jazeera author ID,identifier for an author who has written for Al-Jazeera
+P9857,Turkish Cinema Archive Database film ID,identifier for a movie in the Turkish Cinema Archive Database of the Center for Turkish Cinema Studies
+P9858,Civilisti Italiani member ID,identifier for a member of the association Civilisti Italiani
+P9859,Government Publications Number (Taiwan),official number of the publications published by government agencies in the Republic of China.
+P9860,Global Location Number,"GS1 global location number of companies, branches, plants, warehouses, facilities, etc."
+P9861,Ia?i Central University Library ID,identifier for a person or a work in the catalogue of the Central University Library of Ia?i
+P9862,Encyclopaedia of Islam (second edition) ID,code of the article from the Encyclopaedia of Islam (Second Edition)
+P9863,Gujarati Vishwakosh entry,"identifier for an entry in Gujarati Vishwakosh, an encyclopedia in Gujarati language"
+P9864,Tl-Loisirs ID,"numerical identifier for a person on the website of Tl-Loisirs, a French TV magazine"
+P9865,Anagrafe degli studiosi ID,identifier for an historian of the early modern period in the Italian database Anagrafe degli studiosi
+P9866,GRAC rating,age rating category as designated by the South Korean Game Rating and Administration Committee (GRAC)
+P9867,e-Maapu stratigraphy ID,identifier for a stratigraphic unit or other rock body in Estonian geoscience portal e-Maapu
+P9868,INAPP Thesaurus ID,identifier for a subject in the INAPP Thesaurus
+P9869,Douyin video ID,identifier of a video on Douyin
+P9870,IndieMag game ID,identifier for a video game on indiemag.fr
+P9871,INAPP author ID,identifier for an author in the catalogue of the INAPP Library
+P9872,TBDB ID,identifier of a person in the Prosopographic and Social Network Database of the Tang and Five Dynasties (TBDB)
+P9873,Enciclopedia dello Sport ID,identifier for an item in the Enciclopedia dello Sport on the Istituto dell'Enciclopedia Italiana website
+P9874,INAPP work ID,identifier for a work in the catalogue of the INAPP Library
+P9875,Fondation du patrimoine ID,alphabetical identifier for a French cultural heritage site on the Fondation du patrimoine website
+P9876,Endemia.nc animal taxon ID,numerical identifier for an animal taxon found in New Caledonia in the database of Endemia.nc
+P9877,Gry-Online game ID,identifier of a video game in the Gry-Online database
+P9878,Encyclopaedia of Islam (first edition) ID,code of the article from the Encyclopaedia of Islam (First Edition)
+P9879,Encyclopaedia of Islam (third edition) ID,code of the article from the Encyclopaedia of Islam (Third Edition)
+P9880,Festivaletteratura person ID,identifier for a person on the Festivaletteratura website
+P9881,Every Noise at Once ID,"identifier of a music genre, style, or scene on the Every Noise at Once website"
+P9882,Spotify show episode ID,identifier of a podcast episode on Spotify
+P9883,created for,"a work, event, etc. for which the subject work was created (e.g., a presidential inauguration that a poem was written for; a competition that a play was created for; a film that a screenplay was written for)"
+P9884,Online Begraafplaatsen cemetery ID,identifier for cemeteries listed on Online Begraafplaatsen
+P9885,Bing entity ID,identifier for an entity on Microsoft Bing
+P9886,TermCymru ID,identifier for Welsh names/terms database entry
+P9887,Candombl nation,"lineage of a terreiro (temple) in Candombl religion, representing the place of origin or ethnical group of the founders, the dialet used and other liturgy aspects"
+P9888,NZTCS conservation status,the conservation status from the New Zealand Threat Classification System assigned by the New Zealand Department of Conservation
+P9889,NZTCS ID,identifier for species classified under the New Zealand Threat Classification System
+P9890,Online Begraafplaatsen person ID,identifier for a person found on grave markings and war memorials on the Online Begraafplaatsen website
+P9891,UK Renewable Energy Planning Database ID,identifier of renewable energy production plants and heat networks in the UK Renewable Energy Planning Database
+P9892,ICCD ID - Santuari Cristiani,identifier for an Italian Christian sanctuary in the database curated by Central Institute for Catalogues and Documentation
+P9893,Naver Post member ID,identifier for a member of the professional blogging site Naver Post
+P9894,Swedish Food Agency food ID,identifier in the Swedish National Food Agency's food database
+P9895,Mexican video game rating category,content rating category by the Secretariat of the Interior of Mexico
+P9896,Dictionary of Old Norse Prose ID,unique identifier in Dictionary of Old Norse Prose (ONP)
+P9897,App Store age rating,content rating category by Apple for software published at the App Store
+P9898,Australian Research Council Grant ID,identifier for a grant issued by the Australian Research Council
+P9899,music created for,"a work, event, etc. for which a musical composition was created (e.g., a play for which incidental music was composed; a ballet for which ballet music was written; a film for which motion picture music was created)"
+P9900,Grand dictionnaire terminologique ID,term identifier of the Grand terminological dictionary database
+P9901,issuing agent of work,"organization, agency, or other entity responsible for issuing a serial or other continuing resource, such as the official publication of the entity; distinct from commercial publisher of the resource"
+P9902,Materials Project material ID,identifier for a material in the Materials Project
+P9903,All.Rugby player ID,identifier for a rugby player on the All.Rugby website
+P9904,free/libre open source software development policy URL,URL for the free/libre open source development policy or guideline of an entity
+P9905,relevant date for copyright,relevant date that qualifies a copyright status
+P9906,inscription image,"image of an inscription on the object that is the subject of the item. Use ""commemorative plaque image"" (P1801) for images of plaques with inscriptions about the subject"
+P9907,swisscovery edition ID,identifier for bibliographic resources described in swisscovery
+P9908,Hardy's Guide to Marine Gastropods URL,URL for a taxon on the Hardy's Internet Guide to Marine Gastropods website
+P9909,e-Maapu locality ID,identifier for a locality in Estonian geoscience portal e-Maapu
+P9910,Online Begraafplaatsen memorial ID,identifier for grave markings and war memorials listed on Online Begraafplaatsen
+P9911,PoetsGate poem ID,identifier for a poem on the PoetsGate website
+P9912,NVE reservoir ID,"identifier for reservoirs in Norway, and some in Sweden, Finland, and Russia"
+P9913,FLORE author ID,"identifier for an author in FLORE, the open-access repository of the University of Florence"
+P9914,USiena air author ID,"identifier for an author in USiena air, the open-access repository of the University of Siena"
+P9915,IRIS IMT author ID,"identifier for an author in IRIS IMT, the open-access repository of the IMT School for Advanced Studies Lucca"
+P9916,Journes europennes du patrimoine ID,numerical identifier for a French cultural heritage site on the Journes europennes du patrimoine website
+P9917,Peoples.ru person ID,identifier for a person on the Peoples.ru website
+P9918,Kallas ID,"identifier in Kallas, the catalog of the German Literature Archive Marbach (DLA Marbach)"
+P9919,Convict Records of Australia ID,identifier of a convict transported to Australia between 1787-1867
+P9920,Croatian Language Portal identifier,identifier of a lexeme on the Croatian Language Portal
+P9921,Issuu ID,identifier for a publication or company at Issuu.com
+P9922,Flipboard ID,identifier for account on Flipboard
+P9923,Um?n pro m?sto ID,identifier from the catalogue of public art by Gallery of the City of Prague
+P9924,number of evacuated,number of people who have to be evacuated as a result of an event such as a natural or human disaster
+P9925,BBC Food ID,identifier for an entry on the BBC Food website
+P9926,template populates category,Wikimedia category which is populated by a template
+P9927,number of tries marked,number of tries marked during a rugby competition
+P9928,Baijiahao ID,ID of website page to baijiahao
+P9929,madhhab,Islamic school of thought within Fiqh
+P9930,Inventory of Heritage Artefacts institution ID,identifier for an art collecting institution on the Inventory of Heritage Artefacts
+P9931,Inventory of Heritage Artefacts object ID,"identifier for of artworks, ethnographic works, clothing, utensils, etc. in the Brussels-Capital Region"
+P9932,Vietherb species ID,identifier for a plant species in the Vietherb database
+P9933,Vietherb metabolite ID,identifier for a plant metabolite in the Vietherb database
+P9934,Zenodo communities ID,identifier for Communities created and curated by Zenodo users
+P9935,XXI Secolo ID,identifier for an item in the XXI Secolo collection of essays on the Istituto dell'Enciclopedia Italiana
+P9936,Indonesian Museum National Registration System ID,"identifiant of Indonesian Museum National Registration System by Ministry of Education, Culture, Research and Technology of Indonesia"
+P9937,Postimees topic ID,identifier for topics in the online version of Estonia's daily newspaper Postimees
+P9938,Densho Encyclopedia ID,identifier for an article in the Densho Encyclopedia
+P9939,Institut de recherche pour le dveloppement (IRD) identifier,"persistent identifier for a bibliographic item in Horizon Pleins textes, typically a scholarly article"
+P9940,DWDS lemma ID,identifier for this lexeme in the German dictionary at dwds.de
+P9941,Dizionario di Economia e Finanza ID,identifier for an item in the Dizionario di Economia e Finanza on the Institute of the Italian Encyclopaedia website
+P9942,National Gallery Prague work ID,identifier for an artwork or other object on the National Gallery Prague website
+P9943,Hill Museum & Manuscript Library ID,identifier for the HMML Authority File (HAF) database
+P9944,Database of Czech Amateur Theater person ID,identifier of a person in the Database of Czech Amateur Theater
+P9945,dissertation program,"an academic department or degree program within a university or college that authorized the granting of a degree for a thesis or dissertation; the department, school, college, etc. within a university where a student submitting a dissertation was based. Use P4101 (dissertation submitted to) for a university, college, or other institution that conferred the academic degree"
+P9946,date of probate,date on which the person's will was proved
+P9947,WDG lemma ID,identifier for a lexeme in the Wrterbuch der deutschen Gegenwartssprache at dwds.de
+P9948,The World Factbook country ID,identifier for a country or territory in The World Factbook (Online)
+P9949,AFNIL publisher ID,identifier for a publisher on the AFNIL website
+P9950,RICS company code,code of a company in the Railway Interchange Coding System
+P9951,Greek Castles ID,identifier of a castle in Greece on the Greek Castles website
+P9952,Gente di Tuscia ID,alphabetical identifier for a person or a family in the Italian biographical website Gente di Tuscia
+P9953,Lexicon of Medieval Nordic Law ID,identifier in the Lexicon of Medieval Nordic Law
+P9954,Product and Service Code,US product/service classification
+P9955,SAM ID,identifier of an organization in the U.S. System for Award Management (SAM)
+P9956,IRIS Sapienza author ID,"identifier for an author in IRIS Uniroma1, the open-repository of the ""Sapienza"" University of Rome"
+P9957,museum-digital place ID,identifier for a place in museum-digital's md:term vocabulary
+P9958,Det Norske Akademis Ordbok ID,identifier for a lexeme in Det Norske Akademis Ordbok
+P9959,PDDikti higher education institution ID,identifier for a higher education institution in the Indonesian Higher Education Database of the Indonesian Ministry of Education and Culture
+P9960,VI.BE platform ID,ID of an artist/band on the Belgian VI.BE platform
+P9961,Owler company ID,identifier for a company on Owler
+P9962,Ordbog over det danske sprog ID,identifier of the lexeme in Ordbog over det danske sprog (ODS)
+P9963,Svenska Akademins Ordbok-section ID,identifier for a lexeme in SAOB
+P9964,Kalliope-Verbund ID,identifier for an entity in the Kalliope-Verbund database
+P9965,Musik-Sammler.de artist ID,"numeric identifier for an artist (person, group) in the Musik-Sammler.de database"
+P9966,United Nations Treaty Collection object ID,identifier in the United Nations database of treaties registered with the Secretariat
+P9967,Washington Rare Plant Field Guide ID (Web version),identifier for a rare plant in the Washington Natural Heritage Program's of the Rare Plant Field Guide (2021- Web version)
+P9968,RAWG game ID,identifier for a game on RAWG
+P9969,catalogue raisonn,a catalogue raisonn for an artist
+P9970,predicate for,action that is described by this verb/predicate
+P9971,has thematic relation,"role played by an argument of a verb or verb phrase, or by an (express or implied) component of a noun or noun phrase, with respect to a particular sense"
+P9972,illustrative content,the type or types of illustrative content present in a resource
+P9973,Turkish National Olympic Committee athlete ID,"identifier for an athlete (sportsperson) at olimpiyat.org.tr, a website of the Turkish National Olympic Committee (Turkish: Trkiye Milli Olimpiyat Komitesi, TMOK)"
+P9974,ITU radio emission designation,designation of a radio emission according to International Telecommunication Union's Recommendation ITU-R SM.1138-2 Appendix 1
+P9975,Vokrug sveta article,"link to article of encyclopedia ""Vokrug sveta"""
+P9976,copyright registration,"ID assigned by the US copyright office recording the registration of copyright for a creative work, or the renewal of such a copyright"
+P9977,isotopically modified form of,given molecular entity is a form with natural isotopic composition
+P9978,Enestrm Number,unique identifier for a work of Euler
+P9979,NRK TV ID,"identifier for subjects in NRK TV, the Norwegian national public television broadcaster"
+P9980,NLI Archive (bibliographic) ID,ID for a collection in the National Library of Israel (NLI) archive Catalog (NLI_archive).
+P9981,L'Unificazione ID,identifier for an item in L'Unificazione on the Institute of the Italian Encyclopaedia website
+P9982,IGI Global Dictionary ID,identifier for an entry on the IGI Global Dictionary of Information Science and Technology
+P9983,Enciclopedia dei ragazzi ID,identifier for an item in the Enciclopedia dei ragazzi on the Institute of the Italian Encyclopaedia website
+P9984,CANTIC ID,identifier for authority control managed by the Library of Catalonia
+P9985,EMBO member ID,identifier for a member of the European Molecular Biology Organization
+P9986,NDL earlier law ID,identifier in the NDL (National Diet Library) Japanese Law Index (early Meiji years)
+P9987,AbandonSocios ID,identifier for a video game or video game company on AbandonSocios
+P9988,Bat Sheva Archive ID,Identifies of choreographers and ballet dancer from Bat Sheva Archive
+P9989,stylized name,a widely used but non-standard form of a name (rather than a different name entirely or a pseudonym)
+P9990,Literature.com book ID,identifier for a book on Literature.com
+P9991,Literature.com ebook ID,identifier for an ebook on Literature.com
+P9992,CantoDict word ID,identifier for a word in CantoDict
+P9993,CantoDict character ID,identifier for a single character word in CantoDict
+P9994,record number,"number or string identifying a record, document or certificate (e.g. birth certificate or death certificate) that is visible on the record"
+P9995,MYmovies person ID,identifier for a person on the MYmovies film database
+P9996,Chi era Costui plaque ID,identifier for italian monuments and plaques
+P9997,Bowers acronym,unique identifier for a geometric shape
+P9998,excitation energy,energy difference of an excited state from the ground state of its physical system
+P9999,Turkish Cinema Archive Database person ID,identifier for a person in the Center for Turkish Cinema Studies database of the Center for Turkish Cinema Studies
+P10000,Research Vocabularies Australia ID,identifier of a vocabulary in Research Vocabularies Australia
+P10001,Austrian Football Association player ID,identifier for an association football player on the Austrian Football Association website
+P10002,Dewan Negara ID,numerical identifier for members or former members of the Dewan Negara of Malaysia on the official website
+P10003,Arachne.org.au ID,numerical identifier for an arachnid taxon in the Arachne.org.au database
+P10004,Dewan Rakyat ID,numerical identifier for members or former members of the Dewan Rakyat of Malaysia on the official website
+P10005,Remontees-mecaniques.net ID,numerical identifier for a cableway on the French website Remontees-mecaniques.net
+P10006,AllSides ID,"alphabetical identifier of a publication, organization, or person at AllSides"
+P10007,Birdata ID,identifier for an bird species in the Birdata database
+P10008,Geographical Names Board of NSW geoname ID,identifier for a registered place in the Geographical Names Board of NSW website
+P10009,IRIS GSSI author ID,"identifier for an author in IRIS GSSI, the open-access repository of Gran Sasso Science Institute"
+P10010,IRIS IUSS author ID,"identifier for an author in IRIS IUSS, the open-access repository of Istituto Universitario di Studi Superiori"
+P10011,SISSA Digital Library author ID,"identifier for an author in SISSA Digital Library, the open-access repository of International School for Advanced Studies"
+P10012,NSW Parliament member ID,numerical identifier for a member of the Parliament of New South Wales
+P10013,SNSF person ID,identifier for a person in the P3 Research Database by the Swiss National Science Foundation
+P10014,FFCAM ID,alphabetical identifier for a hut on the Fdration Franaise des clubs alpins et de montagne website
+P10015,NatureScot Sitelink ID,"identifier for items in the ""register of European sites under Regulation 11 of the Conservation (Natural Habitats, &c.) Regulations 1994"" and published by NatureScot, Scottish government Nature Agency"
+P10016,Refuges.info ID,numerical identifier for a mountain hut on the French website Refuges.info
+P10017,Dizionario delle Scienze Fisiche ID,identifier for an item in the Dizionario delle Scienze Fisiche on the Institute of the Italian Encyclopaedia website
+P10018,George Eastman Museum people ID,identifier of a person or organization on the People website of the George Eastman Museum
+P10019,term in higher taxon,links a term with a superclass entity that is species-neutral or scoped to higher order taxa
+P10020,Parliament of Australia MP ID,identifier for a Member of Parliament on the Parliament of Australia website
+P10021,UAE University Libraries ID,identifier for a person or an organization in the authority file of United Arab Emirates University Libraries through VIAF
+P10022,Dizionario di Medicina ID,identifier for an item in the Dizionario di Medicina on the Institute of the Italian Encyclopaedia website
+P10023,Museu da Pessoa person ID,unique identifier of a person on the Museu da Pessoa website
+P10024,Indigenous Corporation Number,registration number assigned to an Aboriginal and Torres Strait Islander corporation
+P10025,Toolhub ID,identifier of a tool in Toolhub
+P10026,Research Data Australia ID,identifier of an item in Research Data Australia
+P10027,official forum URL,"website whose main topic is the entity and users can discuss, post questions, answer existing questions to help other users"
+P10028,Tennis Abstract player ID,identifier for a player at tennisabstract.com
+P10029,Women in the Legislature ID,identifier for a Washington State woman legislator on the Women in the Legislature website
+P10030,StopGame ID,identifier of a video game at the website Stopgame.ru
+P10031,Enciclopedia di Roma person ID,identifier for a person in the website Enciclopedia di Roma
+P10032,Museu da Pessoa History,Wikimedia Commons PDF file of a story in the Museu da Pessoa about or by the subject
+P10033,Biografija.ru ID,identifier for a person in the biographical website Biografija.ru
+P10034,Derrieux agency person ID,identifier for a person on Derrieux agency website
+P10035,Kola Encyclopedia ID,identifier for an item in Kola Encyclopedia Online
+P10036,Penza Encyclopedia ID,identifier of an article in the Penza Encyclopedia
+P10037,Enciclopedia della Scienza e della Tecnica ID,identifier in the Enciclopedia della Scienza e della Tecnica on the Institute of the Italian
+P10038,Conway polyhedron notation,notation that defines polytopes and tessellations
+P10039,Muses Nationaux Recuperation ID,French identifier of an nazi-looted object in the national museums database Rcupration
+P10040,Lithuanian Heritage Registry code,number of an entry issued by Lithuanian Heritage Registry
+P10041,Nynorskordboka-ID,"identifier for a single entry in Nynorskordboka, the official Norwegian Nynorsk dictionary"
+P10042,Bokmlsordboka-ID,"identifier for a single entry in Bokmlsordboka, the official Norwegian Bokml dictionary"
+P10043,Indonesian parliament candidate ID 2019,
+P10044,Trove work ID,identifier for a work in the Trove database
+P10045,Vokrug.tv show ID,identify for a creative work in Vokrug.tv
+P10046,Apple Maps ID,identifier of a place in Apple Maps
+P10047,Federation Council person ID,
+P10048,Meetup group id,identifier for groups at Meetup
+P10049,Glitchwave genre ID,identifier of a video game genre in the Glitchwave database
+P10050,Nederlandse Voornamenbank ID,identifier for a given name in Nederlandse Voornamenbank
+P10051,Standing Waters Database ID,"identifier for a lake in Scotland, England, and Wales in the Standing Waters Database"
+P10052,Vokrug.tv person ID,identify for person in Vokrug.tv
+P10053,Atlas Project of Roman Aqueducts ID,identifier of an ancient Roman aqueduct at the Atlas Project of Roman Aqueducts
+P10054,IRIS UNIURB author ID,"identifier for an author in IRIS UNIURB, the open-access repository of the University of Urbino"
+P10055,IRIS Verona author ID,"identifier for an author in IRIS Verona, the open-access repository of the University of Verona"
+P10056,IRIS UNISA author ID,"identifier for an author in IRIS UNISA, the open-access repository of the University of Salerno"
+P10057,IRIS UNIMI author ID,"identifier for an author in IRIS UNIMI, the open-access repository of the University of Milan"
+P10058,IRIS UNIBO author ID,"identifier for an author in IRIS UNIBO, the open-access repository of the University of Bologna"
+P10059,Philosophica ID,identifier for an entry in the Philosophica online encyclopedia
+P10060,Castforward ID,identifier for a person on the Castforward website
+P10061,Baidu Scholar journal ID,identifier for journals in Baidu Scholar
+P10062,Academy of Russian Television person ID,identifier of person in Academy of Russian Television
+P10063,SEKO ID,identifier for a subject in the Finnish medium of performance thesaurus SEKO
+P10064,NWT Species ID,identifier for a taxon in the Northwest Territories in the NWT Species database
+P10065,IJF competition ID,identifier of an competition on IJF.org
+P10066,JudoInside competition ID,identifier of an competition on JudoInside.com
+P10067,train melody,music that tells you that a train is leaving or arriving at a train station
+P10068,SEEK company ID,unique identifier of a company on the Australian SEEK recruitment website
+P10069,Tabakalera ID,"identifier for an authority in the catalogue of Tabakalera, contemporary culture centre in Donostia"
+P10070,IRIS UNIPG author ID,"identifier for an author in IRIS UNIPG, the open-access repository of the University of Perugia"
+P10071,EXQUIRITE author ID,"identifier for an author in EXQUIRITE, the open-access repository of the Universit per Stranieri di Perugia"
+P10072,State Duma person ID,
+P10073,ESPN MMA fighter ID,identifier of an fighter on ESPN.com/mma
+P10074,Dr. Duke's Phytochemical and Ethnobotanical Databases chemical ID,identifier for chemicals linked to information on occurrence in plants
+P10075,CREP? institution ID,identifier for an institution in the Slovak bibliographic database Centrlny register evidencie publika?nej ?innosti
+P10076,CREP? person ID,identifier for a person in the Slovak bibliographic database Centrlny register evidencie publika?nej ?innosti
+P10077,Spanish Cultural Heritage thesauri ID,identifier for an item in any of the Spanish Cultural Heritage thesauri
+P10078,Maritime Business Directory ID,identifier for companies listed in a directory for maritime suppliers
+P10079,FAOLEX No,identifier for documents in FAOLEX database
+P10080,EJU competition ID,identifier of an competition on EJU.net
+P10081,Australian Charities and Not?for?profits Register Charity ID,unique identifier of a charitable organisation listed in the Australian Charities and Not?for?profits Register
+P10082,CNKI CJFD journal ID,identifier for journals in China National Knowledge Infrastructure (CNKI)'s China Journal Full-text Database (CJFD)
+P10083,Offshore Leaks Database ID,identifier in the International Consortium of Investigative Journalists' Offshore Leaks Database
+P10084,Osmose Agency person ID,identifier for a person on Osmose Agency website
+P10085,biografiA ID,identifier for a person in the biographical database of Austrian women
+P10086,Australian Prints + Printmaking artist ID,identifier for an artist in the Australian Prints + Printmaking database
+P10087,Australian Prints + Printmaking work ID,identifier for a work in the Australian Prints + Printmaking database
+P10088,Dissernet institution ID,identifier for an educational or other institution on Dissernet
+P10090,DHAC ID,"identifier for an art historian in the Diccionari d'historiadors de l'art catal, valenci i balear"
+P10091,death rate,"the total number of persons dead per 1,000 population per year"
+P10092,Bildatlas-Knstler-ID,identifier for an artist in the database Bildatlas Kunst in der DDR
+P10093,image with color chart,image of painting or artwork together with a visible color correction chart
+P10094,AHPRA registration number,unique identifier of the registration of a person to practise a health profession within Australia
+P10095,FRACS Find a Surgeon profile ID,identifier of a Fellow of the Royal Australasian College of Surgeons in the Find a Surgeon database
+P10096,Databze her ID,identifier of a video game at databaze-her.cz
+P10097,7 Days person ID,"identifier for a person on the website of the Russian weekly magazine ""7 Days"""
+P10098,Ovoir.a film ID,identifier for a film on the OuVoir.Ca website
+P10099,Australian Institute for Disaster Resilience Knowledge Hub ID,identifier in the Australian Institute for Disaster Resilience Knowledge Hub
+P10100,SensCritique work ID,numerical identifier of a work in the SensCritique database
+P10101,Snob.ru author ID,identifier for author in Snob.ru
+P10102,IRIS POLIBA author ID,"identifier for an author in IRIS POLIBA, the open-access repository of the Polytechnic University of Bari"
+P10103,Re.Public@Polimi author ID,"identifier for an author in Re.Public@Polimi, the open-access repository of the Polytechnic University of Milan"
+P10104,PORTO@Iris author ID,"identifier for an author in PORTO@Iris, the open-access repository of the Polytechnic University of Turin"
+P10105,IRIS UNIVPM author ID,"identifier for an author in IRIS UNIVPM, the open-access repository of the Marche Polytechnic University"
+P10106,Sceneweb organization ID,identifier of an organization in Sceneweb.no
+P10107,specific impulse by weight,"change of velocity per quantity of fuel, in seconds"
+P10108,Web Encyclopedia of Kyiv ID,article identifier in the Kyiv Web encyclopedia
+P10109,allplayers.in.ua player ID,numerical identifier for a football player at the allplayers.in.ua
+P10110,Apple Music track ID,track ID with album ID (1566636556?i=1566636563) that represents a track in Apple Music
+P10111,AbeBooks ID,numerical identifier of a seller on the AbeBooks websites
+P10112,Australian Statistical Geography 2021 ID,identifier of a geographic region defined in the Australian Statistical Geography Standard 2021
+P10113,IMA Mineral Symbol,IMA approved symbols (abbreviations) for mineral names
+P10114,Natural History Museum (London) person ID,"identifier for a person (including 'legal person', such as a company) in the Natural History Museum (London) archives"
+P10115,Indonesian Hospital ID,"hospital id from Board for Development and Empowerment Human Resources of Health, Indonesian Ministry of Health"
+P10116,Music of Armenia ID,identifier for a musician in the website Music of Armenia
+P10117,New Index of Middle English Verse ID,identifier for a Middle English poem in the New Index of Middle English Verse
+P10118,World of Shakespeare ID,identifier for an article on the Russian Electronic Encyclopedia World of Shakespeare
+P10119,AllHomes research location ID,"suburb, road or other location object on the AllHomes real estate website"
+P10120,Australian Trade Mark Number,identifier for a trade mark in Australia
+P10121,Harvard Art Museums ID,identifier for an artwork in the Harvard Art Museums online catalogue
+P10122,BookDepository publisher ID,identifier for a publisher on bookdepository.com an international book retailer
+P10123,Catalog of arthistoricum.net ID,identifier for an entity in the Catalog of arthistoricum.net
+P10124,Database of Czech librarians ID,identifier for person in database of Czech librarianship
+P10125,German Newspaper Portal ID,newspaper identifier used in the Deutsches Zeitungsportal
+P10126,Enciclopedia d'arte italiana ID,identifier for an artist in the online edition of the Italian encyclopedia Enciclopedia d'arte italiana
+P10127,Dissernet journal ID,identifier of a journal on the Dissernet website
+P10128,Dissernet person ID,identifier of a person on the Dissernet.org website
+P10129,protective marking,"label applied to an intellectual work to indicate how the document should be handled, particularly from a security or privacy perspective"
+P10130,centrasia.org person ID,identifier for a person at the centrasia.org
+P10131,The Parliamentary Newspaper ID,"identifier for a politician on ""The Parliamentary Newspaper"""
+P10132,Saint Petersburg Encyclopedia ID,identifier for an entity in the Saint Petersburg Encyclopedia
+P10133,Russian Academy of Sciences person ID,identifier for a member of the Russian Academy of Sciences
+P10134,Place Names of New Brunswick ID,identifier for a place in the online database Place Names of New Brunswick
+P10135,recording date,the date when a recording was made
+P10136,Pandora track ID,identifier of a track on the music streaming service Pandora
+P10137,Nintendo64EVER ID,identifier of a video game in the Nintendo64EVER database
+P10138,Pandora album ID,identifier of an album on the music streaming service Pandora
+P10139,Indonesian College Code,six-digit college code of Indonesian universities & colleges
+P10140,Institute of History of Ukraine ID,identifier of a person at the Institute of History of Ukraine
+P10141,Academy of Athens authority ID,identifier for an authority in the catalogue of the Academy of Athens Library
+P10142,ThENC@ ID,identifier for a thesis on ThENC@
+P10143,CDAEM person ID,identifier of a person in the Center of Documentation of Scenic Arts and Music
+P10144,Famitsu game ID,identifier of a video game in the Famitsu database
+P10145,EPA Facility Registry Service ID,identifier of a facility listed in the US EPA Enforcement and Compliance History Online database
+P10146,Levels.fyi company ID,unique identifier of a company listed on the Levels.fyi salary comparison website
+P10147,U-PAD author ID,"identifier for an author in UniMC - Pubblicazioni Aperte Digitali (U-PAD), the open-access repository of the University of Macerata"
+P10148,CAMPUS author ID,"identifier for an author in CAMPUS, the open-access repository of the University of Camerino"
+P10149,Original Esperanto Literature author ID,unique ID for an author on the website Original Esperanto Literature (OLE)
+P10150,iTunes genre,genre of media on media platform iTunes
+P10151,iTunes genre ID,identifier for a genre on the media platform iTunes
+P10152,Rutube channel ID,identifier of a RUTUBE channel of a person or organisation (not to be confused with the name of the channel)
+P10153,Nasha Versia ID,identifier for a dossier page of a person or organization on the Nasha Versia (Our Version) Russian tabloid website
+P10154,Irkipedia ID,identifier for an article in Irkipedia
+P10155,Babesdirectory ID,identifier of a person in the Babesdirectory database
+P10156,Numelyo ID,Numelyo digital library identifier
+P10157,ua-football.com player ID,identifier for a player at the ua-football.com
+P10158,soccerpunter.com player ID,identifier for a player at the soccerpunter.com
+P10159,pfl.uz player ID,identifier for a player at the pfl.uz
+P10160,PGM author ID,identifier for an author on Posie Grande Guerre
+P10161,Irish Times profile ID,ID of contributor profile on IrishTimes.com
+P10162,politika-crimea.ru person ID,identifier for a person at the politika-crimea.ru
+P10163,Kinomania.ru actor ID,
+P10164,Kinomania.ru film ID,
+P10165,bards.ru person ID,numerical identifier for person on bards.ru site
+P10166,Kinobaza person ID,identifier for a person involved in cinematography at the site kinobaza.com.ua
+P10167,Kinobaza film ID,identifier for a film at the site Kinobaza.com.ua
+P10168,Zrich Herbaria collector ID,numerical identifier for a botanical collector in the Zrich Herbaria
+P10169,N64-Database ID,identifier of a video game in the N64-database database
+P10170,Channel One Russia show ID,identifier of TV program for Channel One Russia
+P10171,Kanobu ID,identifier of a video game at the website Kanobu.ru
+P10172,Lambic.Info ID,
+P10173,Smotrim.ru film ID,identificator for film or TV-program in Smotrim.ru
+P10174,CH district ID,"four digit identifier for current or former administrative, statistical or electoral district in cantons of Switzerland"
+P10175,Digital Index of Middle English Verse ID,identifier for a poem in the Digital Index of Middle English Verse
+P10176,type host,the host taxon from which a parasite type specimen was obtained
+P10177,CSS code,
+P10178,Genie album ID,identifier for the album on the South Korean music streaming site Genie
+P10179,Genie song ID,identifier for a song on the South Korean music streaming site Genie
+P10180,Genie artist ID,identifier for the artist on the South Korean music streaming site Genie
+P10181,Austrian school ID,A 6-digit number used by the Austrian government to identify schools.
+P10182,DFIH business ID,identifier for a business on the DFIH website
+P10183,Corporate Identification Number (CIN) in India,unique identification number that is assigned by the Registrar of Companies (ROC) in India
+P10184,Ruskino actor ID,identifier for the actor in the Russian cinema database RUSKINO.RU
+P10185,Ruskino film ID,movie identifier on Ruskino.ru
+P10186,Joconde use ID,identifier for a use in the Joconde authority file of the Service des Muses de France
+P10187,JSTOR artwork ID,identifier for an artwork on the JSTOR website
+P10188,Dicionario da Real Academia Galega ID,entry for a word in the official dictionary of the Royal Galician Academy
+P10189,Bloomsbury Fashion Central ID,numerical identifier for an entry in the Bloomsbury Fashion Central database
+P10190,MTB Data ID,identifier of a person in the MTB Data database
+P10191,All About Birds ID,identifier for a species on the All About Birds online guide
+P10192,Homosaurus ID (V3),identifier for an authorized term in version 3 of Homosaurus: An International LGBTQ+ Linked Data Vocabulary
+P10193,GISAID identifier,identifier for a virus clade used by the GISAID project
+P10194,oKino.ua actor ID,identifier for a person at the site oKino.ua
+P10195,Library of Congress providers ID,"identifier for a provider (publisher, distributor, manufacturer, etc.) from the Library of Congress Linked Data Service"
+P10196,Norgeshistorie ID,Identifier for an item on Norgeshistorie.no
+P10197,Numista mint ID,unique identifier for a mint on Numista
+P10198,Austrian Street ID,six-digit identifier for named and inhabited streets within settlements in Austria (Stra§enkennziffer). May apply to settlements without named streets
+P10199,F6S ID,"identifier at f6s Network: person, company, startup, venture fund, competition, startup program, event, etc"
+P10200,EU Whoiswho ID,identifier for a person in the EU Whoiswho biographical database
+P10201,DFIH financier ID,identifier for a financier on the DFIH website
+P10202,Express Gazeta ID,
+P10203,All-Science Journal Classification Codes,"All-Science Journal Classification Codes, used in Elsevier Scopus"
+P10204,Repertorium Biblicum Medii Aevi ID,identifier for medieval literature commenting on the Bible
+P10205,Numista ID,"unique identifier for a coin, banknote, medal, or related item on Numista"
+P10206,Comparably company ID,identifier for a company on the Comparably website
+P10207,Folketinget actor ID,identifier for people and organisations in open data published by the Danish parliament
+P10208,Coub channel ID,identifier for a channel on video hosting site Coub
+P10209,number of triples,total amount of triples in an RDF dataset
+P10210,Sachsens-Schlsser-Kennung,identifier for a building in the Sachsens Schlsser database
+P10211,Index of Middle English Verse ID,identifier for medieval poems written in English
+P10212,Stack Exchange user ID,identifier of the account in the Stack Exchange network
+P10213,Listen Notes podcast ID,identifier of a podcast on Listen Notes
+P10214,URL for freedom of information requests,URL pointing to a form or other page allowing citizens to make freedom of information request to public organizations
+P10215,Casefile ID,numerical identifier for a case covered by the Casefile website
+P10216,ILAB ID,alphabetical identifier of a seller on the International League of Antiquarian Booksellers website
+P10217,Oslo Byleksikon ID,Identifier for an item in Oslo Encyclopedia
+P10218,Slovak Theatre Virtual Database ID,identifier for entries in the Slovak Theatre Virtual Database
+P10219,CNSflora ID,identifier for a person or an organization in the botanical database CNSflora
+P10220,Baseball Prospectus ID,identifier for a baseball player on the Baseball Prospectus website
+P10221,UNESCO ICH ID,identifier of an item on the UNESCO Intangible Cultural Heritage Lists
+P10222,Artland artist ID,identifier of an artist on the Artland website
+P10223,Genie media ID,identifier for media on the South Korean music streaming site Genie
+P10224,Regroupement qubcois de la danse (RQD) ID,unique identifier for members of the Regroupement qubcois de la danse (RQD)
+P10225,official shop URL,official URL where the agent sells products/merchandise
+P10226,Archivio Storico dell'Universit degli Studi di Cagliari person ID,identifier for a person connected with the University of Cagliari in the Archivio Storico dell'Universit degli Studi di Cagliari
+P10227,National Library of Ireland ID,identifier of a National Library of Ireland authority record
+P10228,facilitates flow of,the cargo/substrate actively transported or passively channeled by a protein
+P10229,next level in hierarchy,"qualifier: indicates the value at the next hierarchy level which is true for this item, when more than one is possible at the next level"
+P10230,Viber group ID,identifier of a community within the Viber instant messaging service
+P10231,WikiStrinda ID,identifier for an item in the internet encyclopedia WikiStrinda
+P10232,Volgograd Oblast address register,code of street (or another element of the planning structure) in the official address register of Volgograd and Volgograd Oblast
+P10233,NER portfolio ID,identifier of a profile of an engineer listed in the Engineers Australia National Engineering Register
+P10234,Der Spiegel topic ID,"identifier for topics in the German news portal ""Der Spiegel"""
+P10235,LocalWiki ID,
+P10236,Initiale ID,Initiale digital catalog identifier for a manuscript
+P10237,Joconde representation ID,identifier for a representation in the Service des Muses de France Joconde authority file
+P10238,Biografisches Handbuch Ð Todesopfer der Grenzregime am Eisernen Vorhang ID,identifier for a person in the Todesopfer der Grenzregime am Eisernen Vorhang database
+P10239,Filmovamista.cz film ID,identifier of a film in a Czech database of films and their filming locations
+P10240,Arthive person ID,identifier for a person on Arthive
+P10241,is an individual of taxon,"the taxon of an individual named organism (animal, plant)"
+P10242,Lur Encyclopedic Dictionary ID,identifier for an entry in the Lur Hiztegi Entziklopedikoa (Lur Encyclopedic Dictionary)
+P10243,NatureServe Explorer ID,identifier of a species or ecosystem in the Americas in the NatureServe Explorer database
+P10244,NT Place Names Register ID,numerical identifier for a place in the NT Place Names Register
+P10245,MedlinePlus drug identifier,identifier for a drug in the MedlinePlus database
+P10246,MedlinePlus supplement identifier,identifier for a herb or supplement in the MedlinePlus database
+P10247,eurasian-defence.ru person ID,identifier for a person at the eurasian-defence.ru
+P10248,everyeye.it ID,identifier of a video game at the website everyeye.it
+P10249,Triple J Unearthed artist ID,unique identifier of an artist on the Triple J Unearthed website
+P10250,Parque de la Memoria ID,identifier for people who were killed or went missing by action of the State terrorism in Argentina
+P10251,Bokselskap.no ID,identifier for a book published on Bokselskap.no
+P10252,Digital Mechanism and Gear Library ID,identifier for a person or an organisation in the Digital Mechanism and Gear Library
+P10253,reference image,"image, such as of an inscription, supporting a claim; use together with ""type of reference"" (P3865) in the reference or source part of a statement"
+P10254,associated cadastral district,cadastral district in which a place is located or is part of. Use only if distinct from administrative entities (P131) in predefined countries
+P10255,oKino.ua film ID,identifier for a cinematic work on the site Okino.ua
+P10256,AMPAS collections item ID,"identifier for an item archived in the collections of the Margaret Herrick Library, Academy of Motion Picture Arts and Sciences (AMPAS)"
+P10257,Pipe Organ Database organ ID,identifier for an organ in the Pipe Organ Database
+P10258,UNICA IRIS author ID,"identifier for an author in UNICA IRIS, the open-access repository of the University of Cagliari"
+P10259,IRIS UNISS author ID,"identifier for an author in IRIS UNISS, the open-access repository of the University of Sassari"
+P10260,AMS Glossary of Meteorology ID,identifier for an entry in the American Meteorological Society's Glossary of Meteorology
+P10261,EtymWb lemma ID,identifier for a lemma in the Etymological Dictionary of German by Wolfgang Pfeifer at dwds.de
+P10262,Offizielle Deutsche Charts album ID,identifier for an album on Offizielle Deutsche Charts site
+P10263,admission yield rate,percentage of admitted applicants who accept the admission offer
+P10264,ARCHER ID,"identifier for a person or an organization in ARCHER, the authority file of the American Numismatic Society"
+P10265,Senators of Spain (1834-1923) ID,identifier of senators of Spain between 1834-1923
+P10266,AdoroCinema person ID,identifier for a person in AdoroCinema database
+P10267,Kinofilms.ua film ID,
+P10268,Kinofilms.ua actor ID,
+P10269,kino-teatr.ru film ID,identifier for a film at the kino-teatr.ru
+P10270,Hermitage Museum work ID,identifier for an artwork in the Hermitage Museum
+P10271,Engineer's Line Reference,code for a railway line in Britain owned by Network Rail
+P10272,Archive ouverte UNIGE ID,identifier for a person in the Archive ouverte UNIGE operated by the University of Geneva
+P10273,Corruption Perceptions Index,Corruption Perceptions Index by Country
+P10274,Union of Bulgarian Composers ID,identifier for a person in the website of the Union of Bulgarian Composers
+P10275,AsianWiki ID,numeric identifier for an item on the AsianWiki website
+P10276,ENEA-IRIS Open Archive author ID,"identifier for an author in ENEA-IRIS Open Archive, the open-access repository of the ENEA"
+P10277,METRICA author ID,"identifier for an author in METRICA, the open-access repository of the INRIM"
+P10278,Encyclopedia of Russian Jewry ID,identifier for a person or place in the Encyclopedia of Russian Jewry
+P10279,TVFPlay series ID,identifier for a series on TVFPlay
+P10280,category for honorary citizens of entity,"category containing the honorary citizens of a settlement (administrative unit, country). Honorary citizens may or may not be citizens of the country"
+P10281,Orthodoxie.com topic ID,
+P10282,Slangopedia ID,unique identifier in Slangopedia
+P10283,OpenAlex ID,"identifier for works, authors, institutes, venues, concepts/subjects in OpenAlex"
+P10284,iCSO ID,identifier of civil society organizations in integrated Civil Society Organizations (iCSO) System of Department of Economic and Social Affairs
+P10285,Indeed company ID,alphabetical identifier for the company on the employment website Indeed
+P10286,podcast logo URL,URL for the image used as the promotional cover of a podcast
+P10287,DFG Science Classification,"German Research Foundation (DFG) classification of scientific disciplines, research areas, review boards, and subject areas"
+P10288,Muz-TV ID,identifier for a person or group on the website Muz-TV
+P10289,Podchaser numeric ID,Podchaser creator ID used by their API
+P10290,hotel rating,star rating of the hotel
+P10291,Wikisimpsons ID,identifier for a Wikisimpsons article
+P10292,Wrterbuch der Prpositionen ID,identifier for a lemma in the preposition dictionary at grammis.ids-mannheim.de
+P10293,Tretyakov Gallery work ID,identifier for a painting in the Tretyakov Gallery
+P10294,Grand Duchy of Lithuania encyclopedia ID,"identifier of an entry in the online encyclopedia ""Grand Duchy of Lithuania"""
+P10295,Amazon podcast ID,identifier for a podcast on Amazon Music
+P10296,Habr company ID,identifier for a company on the Russian website Habr
+P10297,Google Arts & Culture entity ID,"identifier for a person, event, place, or other entity on the Google Arts & Culture website"
+P10298,Sceneweb artist ID,identifier for theater artists on Sceneweb
+P10299,Leopoldina member ID (new),identifier for a Leopoldina member on the Leopoldina web site
+P10300,DPI for original size,"resolution in dots per inch (dpi) when printed at original size of painting or other work, value based on pixels of image and size of work (height, width)"
+P10301,German Lobbyregister ID,identity code for an organisation or a person in the lobby transparency register of the German Bundestag
+P10302,Film.ru actor ID,
+P10303,Film.ru film ID,
+P10304,Apple Podcasts podcast episode ID,identifier for a podcast episode on Apple Podcasts
+P10305,StarHit ID,
+P10306,North Data ID,identifier of a company or person at www.northdata.com
+P10307,CYT/CCS,identifier for authority control in Synergy of Metadata Resources in Taiwan
+P10308,director of publication,"the person who is legally responsible for a publication (text, images, audio, or video, including broadcast). Definitions and translations may vary depending on the country and legislation."
+P10309,LKI ID,identifier for a video game on the LKI database
+P10310,Unified book number,publication identifier used in China from 1956 to 1986
+P10311,official jobs URL,web page for jobs an employer offers
+P10312,AAGM artwork ID,"identifier of an artwork in the AAGM (Aberdeen Archives, Gallery & Museums) catalogue"
+P10313,Domain suburb profile ID,unique identifier of a suburb on the Domain real estate website
+P10314,Archivio Biografico Comunale (Palermo) ID,identifier for a person in the Archivio Biografico Comunale of the Italian municipality of Palermo
+P10315,Artland fair ID,identifier for an art fair on the Artland website
+P10316,dpi for A4 printing,"resolution in dots per inch (dpi) when printed on format A4 (210???297 mm), value based on pixels of image and aspect ratio"
+P10317,Artland gallery ID,identifier of a gallery on the Artland website
+P10318,Douban book series ID,identifier of a book series in the Douban website
+P10319,Douban book works ID,identifier for a collection of different versions/editions of one work
+P10320,Les Archives du spectacle organization ID,identifier for an organization in the Les Archives du spectacle database
+P10321,Urban Electric Transit city ID,identifier for a city in the Urban Electric Transit database
+P10322,time in the pouch,the time the animal spends in the pouch
+P10323,Bergen byleksikon ID,identifier for an article in Bergen city encyclopedia
+P10324,Ezeri.lv lake ID,identifier for a lake in Latvia in the Ezeri.lv database
+P10325,Japanese Canadian Artists Directory ID,identifier for a person or organization in the Japanese Canadian Artists Directory
+P10326,ICPSR Geographic Names Thesaurus ID,identifier for a geographic place in the ICPSR Geographic Names Thesaurus
+P10327,ICPSR Organization Names Authority List ID,identifier for an organization in the ICPSR Organization Names Authority List
+P10328,ICPSR Personal Names Authority List ID,identifier for a person in the ICPSR Personal Names Authority List
+P10329,ICPSR Subject Thesaurus ID,identifier for an index term in the ICPSR Subject Thesaurus
+P10330,Bugs! music video ID,identifier for a music video on the South Korean music streaming site Bugs!
+P10331,Washington Native Plant Society Plant Directory ID,identifier of a species or subspecies in the Washington Native Plant Society Plant Directory
+P10332,Kaspersky Encyclopedia ID,identifier for an entry in the Kaspersky Encyclopedia of Information Technology
+P10333,New York Flora Atlas ID,identifier of a taxon in the New York Flora Atlas
+P10334,doollee.com literary agent ID,identifier for a literary agent/agency on doollee.com
+P10335,doollee.com play ID,identifier for a play on doollee.com
+P10336,doollee.com play publisher ID,identifier for a play publisher on doollee.com
+P10337,doollee.com playwright ID,identifier for a playwright on doollee.com
+P10338,Dico en ligne Le Robert ID,identifier in the online dictionary Le Robert
+P10339,semantic gender,"used when a word is only used to refer to people of this gender or to animals of this sex, independent of the grammatical gender"
+P10340,Inventaire national du Patrimoine culturel immatriel ID,identifier of an item in the Inventaire national du Patrimoine culturel immatriel by the French Ministry of Culture
+P10341,Rseau documents d'artistes ID,alphabetical identifier for an artist in the Rseau documents d'artistes database
+P10342,Linguistic Atlas of Late Mediaeval English ID,identifier for Middle English manuscripts
+P10343,Key Biodiversity Areas factsheet ID,identifier of a factsheet for a place on the Key Biodiversity Areas website
+P10344,Viki ID,identifier for the video streaming site Viki
+P10345,Clavis Apocryphorum Novi Testamenti ID,identifier for biblical apocrypha in Clavis Apocryphorum Novi Testamenti
+P10346,Clavis Apocryphorum Veteris Testamenti ID,identifier for biblical apocrypha in Clavis Apocryphorum Veteris Testamenti
+P10347,World Economic Forum ID,identifier for a person on the World Economic Forum website
+P10348,USgamer ID,identifier of a video game at USgamer.net
+P10349,Podvig Naroda ID,"article identifier on the site ""Peoples feat"""
+P10350,Vesti.ru dossier ID,reference identifier for the Russian site Vesti.ru
+P10351,Turin University student ID,identifier for a student of the University of Turin in the database of its historical archive
+P10352,Naver TV ID,identifier for a user on the Naver TV website
+P10353,AusGamers ID,identifier for a video game on the AusGamers website
+P10354,PlayGround.ru ID,identifier for a video game on the playground.ru website
+P10355,Maritimt Magasin ship ID,identifier for a vessel in Maritimt Magasin
+P10356,TV3 show ID,identifier for a show in TV3 website
+P10357,TV3 video ID,identifier for a video in TV3 website
+P10358,original catalog description,"content of field labeled ""description"" in original institutional catalog metadata (for use on Wikimedia Commons)"
+P10359,IRIS UNIGE author ID,"identifier for an author in IRIS UNIGE, the open-access repository of the University of Genua"
+P10360,nzs.si player ID,identifier for a player at the nzs.si
+P10361,UK classification of science topics 2016,Swedish Higher Education Authority standard for classification of scientific articles from scientists in the higher education system of Sweden
+P10362,Lib.ru author ID,
+P10363,Hessian Literature Council author ID,identifier of an author on the Hessian Literature Council website
+P10364,Finnish real property ID,unique identifier of real property in Finland (Kiinteisttunnus). Format: nnn-nnn-nnnn-nnnn
+P10365,GoodGame.ru ID,identifier for a video game on the GoodGame.ru website
+P10366,Gardens Navigator ID,identifier for a plant taxon on Gardens Navigator
+P10367,number of lanes,number of lanes on this road in a given direction
+P10368,Tagoo video game ID,identifier of a video game in the Tagoo database of MSX games
+P10369,Lingua Libre ID,"identifier in Lingua Libre, the Wikimedia project and tool for pronunciation"
+P10370,Labyrinth database ID,identifier for an article in the Labyrinth database
+P10371,A9VG game ID,identifier for a video game on the A9VG website
+P10372,Offizielle Deutsche Charts composer ID,identifier for an composer on Offizielle Deutsche Charts site
+P10373,Mnemosine ID,Mnemosine Digital Library identifier (Mnemosine: Biblioteca Digital de la otra Edad de Plata)
+P10374,computational complexity,"the most specific complexity class this computational problem has been proved to belong to; if available, provide the tight complexity, otherwise both hardness and membership can be specified"
+P10375,Boris Yeltsin Presidential Library ID,
+P10376,ScienceDirect topic ID,identifier for a topic on the research publication website ScienceDirect
+P10377,Irish Registered Charity Number (RCN),Registered Charity Number of the Republic of Ireland
+P10378,CHY Number,Registered Charity Number in the Republic of Ireland according to the charitable tax exemption list of the Revenue Commissioners
+P10379,dailytelefrag.ru ID,identifier of a video game in the dailytelefrag.ru database
+P10380,Springer Nature Subjects Taxonomy ID,identifier for a subject area used by Springer Nature for the indexing of content
+P10381,VerbaAlpina ID,"identifies entities from the VerbaAlpina project (lexemes, concepts, localities)"
+P10382,Prosopographia Imperii Romani online ID,identifier for a person in the Prosopographia Imperii Romani Online
+P10383,Game World Navigator ID,identifier of a video game on the Game World Navigator website
+P10384,Bugs! track ID,identifier for a track on the South Korean music streaming site Bugs!
+P10385,Vsemirnaya Istoriya Encyclopedia ID,
+P10386,Databazeknih.cz work ID,numeric ID of work in Databazeknih.cz database
+P10387,Databazeknih.cz author ID,numeric ID of author in Databze knih
+P10388,MakeMyTrip hotel ID,identifier for hotels enlisted on MakeMyTrip website
+P10389,Urban Electric Transit model ID,identifier for rolling stock models in the Urban Electric Transit database
+P10390,GameGuru ID,identifier of a video game in the GameGuru database
+P10391,100-Year Guide to Hebrew Theatre person ID,identifier for a person on the website A 100-Year Guide to Hebrew Theatre 1889-1989
+P10392,INPA park ID,identifier for a park on the Israel Nature and Parks Authority website
+P10393,Riot Pixels game ID,identifier for a video game in the Riot Pixels database
+P10394,Old-Games.RU ID,identifier for a video game on the old-games.ru website
+P10395,Strongman Archives athlete ID,identifier for an athlete on the Strongman Archives website
+P10396,SBN work ID,identifier for a work issued by National Library Service (SBN) of Italy
+P10397,SBN place ID,identifier for a place issued by National Library Service (SBN) of Italy
+P10398,Kanobu numeric game ID,"numeric identifier for a video game on Kanobu; use as qualifier for the main property ""Kanobu ID (P10171)"""
+P10399,St. Sergius Institute authority ID,identifier for an authority in the catalogue of the Library of St. Sergius Institute
+P10400,CBDB.cz author ID,numeric ID of author in ?eskoslovensk bibliografick databze
+P10401,CBDB.cz book ID,numeric ID of a book in ?eskoslovensk bibliografick databze
+P10402,ULI ID,bibliographic record id in ULI
+P10403,NLC Bibliography ID (Chinese language),identifier for a Chinese-language work per National Library of China
+P10404,LMHL author ID,identifier for a person in the Lexicon of Modern Hebrew Literature
+P10405,Biographisches Portal der Rabbiner ID,ID of a rabbis in Biographisches Portal der Rabbiner
+P10406,Latvia water body classification code,"code for lakes, ponds and reservoirs used in Latvia as set by law"
+P10407,Encyclopedia of Database Systems ID,identifier for an entry on the live edition of the Encyclopedia of Database Systems
+P10408,created during,media file created during a specific event or occurrence (for use on Wikimedia Commons)
+P10409,UK standard classification of Swedish science topics 2011,Swedish Higher Education Authority standard for classification of scientific articles from scientists in the higher education system of Sweden
+P10410,QQ Music singer ID,singer identifier in QQ Music
+P10411,PubCRIS product number,unique identifier assigned to a chemical product registered for use in Australia for agricultural or veterinary purpose
+P10412,PKULaw CLI Code,identifier for a legal material in the PKULaw Chinalawinfo database [with prefix 'CLI']
+P10413,NVE glacier ID,identifier for a glacier in the NVE atlas
+P10414,iXBT Games ID,identifier for a video game in the iXBT Games database
+P10415,TVSA actor ID,identifier for a person in the TVSA database
+P10416,Knstlerdatenbank ID,identifier for a person in Knstlerdatenbank
+P10417,Culture.ru person ID,identifier of a person at Ministry of Culture of Russia website culture.ru
+P10418,Naver VIBE track ID,identifier for a track on the South Korean music streaming site Naver VIBE
+P10419,LastDodo-area-identifier,"identifier in LastDodo for a concept in collections of coins, stamps and postcards"
+P10420,Index to Organism Names ID,identifier of a taxon in the Index to Organism Names database
+P10421,ELF code,"code for entity legal form (ELF), assigned by the Global Legal Entity Identifier Foundation (GLEIF) per ISO 20275"
+P10422,Ghana Place Names URL,"URL for an entry in the ""Ghana Place Names"" website. Format: URL starting with ""https://sites.google.com/site/ghanaplacenames/"" or ""https://sites.google.com/view/ghanaplacenames/"""
+P10423,Historical Topography of Cultural Heritage object ID,identifier for object in a database of cultural and historical heritage on the Czech-German border
+P10424,Refuge.tokyo video game ID,identifier of a video game in the refuge.tokyo database
+P10425,Trip.com hotel ID,identifier for the hotel on the online travel agency website Trip.com
+P10426,tiket.com hotel ID,identifier for the hotel on the website tiket.com
+P10427,PegiPegi Hotel ID,identifier for the hotel on the website pegipegi.com
+P10428,parliament.uk member ID,identifier for an MP or Peer on parliament.uk
+P10429,RODI-DB player ID,identifier for an ice hockey player at the RODI-DB database
+P10430,HockeySlovakia.sk player ID,identifier for an ice hockey player at the HockeySlovakia.sk database
+P10431,Portable Antiquities Scheme object type identifier,"identifier for a type or class of archaeological object, in the United Kingdom Portable Antiquities Scheme database"
+P10432,MovieMeter series ID,identifier for a television series on the MovieMeter film database
+P10433,Gesher Theatre Archive person ID,identifier for a person in the Gesher Theater Archive
+P10434,Gesher Theatre Archive play ID,identifier for a play in the Gesher Theatre Archive
+P10435,Euro NCAP ID,numerical identifier for an automobile model on the Euro NCAP website
+P10436,Drammen city encyclopedia ID,identifier for an article in Drammen city encyclopedia
+P10437,GoHa.ru ID,identifier of a video game at GoHa.ru
+P10438,Norwegian thesaurus on genre and form identifier,identifier for a genre or form in the Norwegian thesaurus on genre and form
+P10439,Qichacha firm ID,firm identifier in Qichacha company information online database
+P10440,WorldFootball.net match ID,identifier for an association football (soccer) match at WorldFootball.net
+P10441,Michigan Legislative Bio ID,identifier for persons in the Michigan Legislative Biographical Database by the state Library of Michigan
+P10442,hostelworld hostel ID,identifier of a hostel listed on hostelworld.com
+P10443,Viciebsk Encyclopedia ID,
+P10444,Encyclopedia of Russian avant-garde ID,identifier of an article in the online encyclopedia Russian avant-garde
+P10445,NetEase Music artist ID,identifier for an artist in the NetEase Music database
+P10446,Chgk person ID,identifier for a person playing the Russian TV game What? Where? When?
+P10447,Pamyat Naroda ID,identifier of a participant in the Great Patriotic War in the Pamyat Naroda database
+P10448,Traveloka hotel ID,identifier of a hostel listed on traveloka.com
+P10449,trained by,personal trainer of the athlete
+P10450,police zone ID (Belgium),numeric identifier of a police zone (in Belgium)
+P10451,Berlin Street ID,"system of 5-digit unique numeric identifiers for geographic objects in Berlin used for addressing, mostly streets"
+P10452,Renacyt ID,"identifier for the National Scientific, Technological and Technological Innovation Registry, a Peruvian database"
+P10453,VGTimes ID,identifier of a video game at the website vgtimes.ru
+P10454,CineCartaz film ID,identifier at the Cinecartaz database of films of portuguese daily Pblico
+P10455,JeuxActu ID,identifier of a video game at the website jeuxactu.com
+P10456,Urban Electric Transit country ID,identifier for a country in the Urban Electric Transit database
+P10457,Change.org decision maker ID,identifier for a decision maker on the change.org website
+P10458,Podchaser episode ID,identifier of the episode in the podchaser database
+P10459,Rusactors actor ID,identifier for a person on the Rusactors.ru website
+P10460,Rusactors film ID,identifier for film or television series in the Rusactors.ru database
+P10461,Dumbarton Oaks object ID,identifier for objects at the Dumbarton Oaks Museum
+P10462,Encyclopedia of Russian America ID,identifer for a person in the Encyclopedia of Russian America
+P10463,Dansk Navneleksikon ID,identifier of an entry in the online encyclopedia ordnet.dk/dnl
+P10464,KLADR ID,identifier for a place in the KLADR database
+P10465,CiteSeerX person ID,identifier of a person on CiteSeerX
+P10466,CNKI author ID,identifier for an author in the CNKI database
+P10467,naturkartan.se ID,identifier for a place in the naturkartan.se database
+P10468,HaBima Archive play ID,identifier for a play in the HaBima Archive
+P10469,HaBima Archive person ID,identifier for a person in the HaBima Archive
+P10470,Vedomosti company ID,identifier for a company in the Vedomosti database
+P10471,GrabFood restaurant ID,identifier for a restaurant on the GrabFood website
+P10472,Chinese School Identifier,10-digit unique numeric id assigned by Ministry of Education of P.R.C.
+P10473,Drevo Encyclopedia ID,identifier for an article in the Drevo Encyclopedia
+P10474,svpressa.ru person ID,identifier for a person in the Svobodnaya Pressa database
+P10475,GameMAG ID,identifier of a video game in the GameMAG database
+P10476,identifies,class of entity this identifier identifies
+P10477,ICQ user ID,user account identifier on ICQ
+P10478,Scottish Built Ships ID,identifier of a ship in the Scottish Built Ships database
+P10479,histrf.ru person ID,identifier for a person in the histrf.ru database
+P10480,symogih.org ID,identifier for a resource in the symogih.org database
+P10481,Mapping Manuscript Migrations manuscript ID,identifier of a manuscript in the Mapping Manuscript Migrations database
+P10482,US trademark serial number,identifier of a trademark serial number issued by the United States Patent and Trademark Office
+P10483,NLC Bibliography ID (foreign-language),identifier for a foreign-language work in the National Library of China database
+P10484,GoFood restaurant ID,identifier for a restaurant on the GoFood website
+P10485,Official Internet Portal of Legal Information ID,law identifier on the Official Internet Portal of Legal Information
+P10486,Bavarian Monument Map Object-ID (building ensemble),"unique identifier for building ensembles in Bavaria, used in the Bavarian Monument Map Bavarian Monument Map, published by Bavarian State Office for Monument Protection"
+P10487,Skyscanner hotel ID,identifier for a hotel on the skyscanner website
+P10488,NGO Darpan ID,identifier for a Indian nonprofit organization in the NGO Directory (NGO-DARPAN) database
+P10489,LDT @ Library Name Authority ID,identifier for personal name authorities in LDT @ Library
+P10490,LDT @ Library Subject Terms Authority ID,identifier for subject term authorities in LDT @ Library
+P10491,LDT @ Library Classification Authority ID,identifier for a classification authority record in LDT @ Library
+P10492,USP Production Repository ID,identifier for works at the USP Production Repository database
+P10493,Transilien ID,alphabetical identifier for a place to visit on the Transilien website
+P10494,United Russia member ID,identifier of a member of the United Russia political party
+P10495,MovieMeter TV season ID,identifier for a television series season in the MovieMeter database
+P10496,Joshua Project people group ID,identifier for an ethnic group on the Joshua Project website
+P10497,Moscow Street ID,
+P10498,Moscow area ID,
+P10499,vc.ru company ID,identifier for a company on the vc.ru website
+P10500,Repetti on-line ID,identifier for a topic in the online encyclopedia Repetti on-line regarding Tuscany
+P10501,Cybersport.ru ID,identifier of a video game at the website Cybersport.ru
+P10502,State Heraldic Register of the Russian Federation ID,
+P10503,Qubec Enterprise Number,"unique identifier assigned to enterprises that register in the Province of Quebec, Canada"
+P10504,Discover Moscow ID,identifier of an article in the Discover Moscow database
+P10505,ArTS author ID,"identifier for an author in the Archivio della ricerca di Trieste (ArTS), the open-access repository of the University of Trieste"
+P10506,IRIS UNIUD author ID,"identifier for an author in IRIS UNIUD, the open-access repository of the University of Udine"
+P10507,Game Informer ID,identifier of a video game in the Game Informer database
+P10508,Ligue 2 player ID,identifier for a football player on the Ligue 2 website
+P10509,Femiwiki ID,identifier for a article in the Femiwiki encyclopedia
+P10510,Arachne entity ID,"identifier for an entity in the archaeological database Arachne, version 4"
+P10511,VideoGameGeek developer ID,identifier for a video game developer in the VideoGameGeek database
+P10512,Encyclopedia of Krasnoyarsk Krai ID,identifier of an article in the online encyclopedia of Krasnoyarsk Krai
+P10513,Oregon State Parks ID,identifier for a state park on the Oregon State Parks website
+P10514,Washington State Parks ID,identifier for a state park on the Washington State Parks website
+P10515,Sport24.ru person ID,identifier for an athlete on the Sport24.ru website
+P10516,SINGULART artist ID,identifier for an artist in the SINGULART database
+P10517,eBru ID,"identifier for streets, churches, statues, fountains, plaque's and museums in the Brussels-Capital Region"
+P10518,ICCROM authority ID,identifier for an authority in the catalogue of the ICCROM library
+P10519,Legal entity registered by the Ministry of Culture of the Czech Republic ID,ID of the legal (church/religious) entity registered by the Czech Ministry of Culture
+P10520,Rekhta book ID,"identifier for a book, in the Rekhta database of literature of Urdu language of India and Pakistan"
+P10521,ILO code,identifier of an international labour standard adopted by the International Labour Conference
+P10522,RedDoorz hotel ID,Indonesian/Singaporean hospitality industry website
+P10523,Naver VIBE video ID,the identifier for a video on the South Korean music streaming site Naver VIBE
+P10524,Zvuk artist ID,identifier for an artist on Zvuk
+P10525,Italian Women Writers ID,identifier for an Italian woman author born before 1945 in the Italian Women Writers database
+P10526,RBC company ID,identifier for a company on the RBC website
+P10527,documentation files at,institution that holds documentation files about the subject
+P10528,Madrean Discovery Expeditions Flora Database ID,identifier of a plant species in the Madrean Discovery Expeditions Flora Database
+P10529,Madrean Discovery Expeditions Fauna Database ID,identifier of an animal species in the Madrean Discovery Expeditions Fauna Database
+P10530,Encyclopedia of Transbaikalia ID,identifier of an article in the online encyclopedia of Transbaikalia
+P10531,Encyclopedia of Transbaikalia person ID,identifier for a person in the online encyclopedia of Transbaikalia
+P10532,Booking.com numeric ID,numeric identifier for a hotel on the Booking.com website
+P10533,Agoda hotel numeric ID,numeric identifier for an hotel on the Agoda website
+P10534,Australian Reptile Online Database ID,identifier for a taxon in the Australian Reptile Online Database
+P10535,RSPA modern author ID,identifier for a modern author in the database Rpertoire des sources philosophiques antiques (RSPA)
+P10536,RSPA ancient author ID,identifier for an ancient author in the database Rpertoire des sources philosophiques antiques (RSPA)
+P10537,1905.com film ID,identifier for a film in 1905.com movie database
+P10538,Leafsnap ID,identifier for a tree species of the United States and Canada on the Leafsnap electronic field guide
+P10539,ImagesDfense ID,author ID on imagesdefense.gouv.fr
+P10540,TASS Encyclopedia person ID,identifier of a person in the TASS Encyclopedia
+P10541,TASS Encyclopedia country ID,identifier of a country in the TASS Encyclopedia
+P10542,TASS Encyclopedia tag ID,identifier of a tag in the TASS Encyclopedia
+P10543,WIPO Pearl term ID,identifier for a term in the World Intellectual Property Organization Pearl terminology
+P10544,cantilever sign,image of a cantilever sign on the building
+P10545,Arizona State Legislators: Then & Now ID,"identifier for persons in the Arizona State Legislators: Then & Now online database by the Arizona State Library, Archives & Public Records"
+P10546,db.narb.by ID,"identifier for a settlement on the site ""Belarusian villages destroyed during the Great Patriotic War"""
+P10547,Kayak hotel ID,numerical identifier of an hotel on the Kayak.com website
+P10548,Melon music video ID,the identifier for a music video on the South Korean music streaming site Melon
+P10549,Evil Angel movie ID,identifier for a pornographic movie in the Evil Angel movie database
+P10550,ACE Repertory publisher ID,identifier for a publisher in the ACE Repertory
+P10551,supports qualifier,describes which qualifiers of the statement are supported by a reference
+P10552,World of Waterfalls ID,identifier for a waterfall on the World of Waterfalls website
+P10553,IxTheo authority ID,identifier for a person or an organization in the Index Theologicus (IxTheo)
+P10554,BillionGraves grave ID,"identifier for a grave, on the BillionGraves website"
+P10555,eSbrky institution ID,identifier for institution in esbirky.cz database
+P10556,Enciclopedia del Novecento ID,identifier for an item in the Enciclopedia del Novecento on the Institute of the Italian Encyclopaedia website
+P10557,Zotero ID,identifier for a person with an account at zotero.org
+P10558,My World@Mail.Ru ID,user account identifier on My World@Mail.Ru
+P10559,KSH code (historical),identifier for every former municipality (town and commune) in Hungary issued by the Hungarian Central Statistical Office
+P10560,Traveloka activities ID,identifier for an activity in the traveloka database
+P10561,Virginia Tech Dendrology Factsheets ID,identifier for a North American tree taxon in the Virginia Tech Dendrology Factsheets database
+P10562,SPLC group ID,identifier of an extremist group in the Southern Poverty Law Center's Extremist Files
+P10563,GuideStar India Organisations ID,ID in the Indian non-profit organizations database GuideStar
+P10564,NAF code,standard French code for industry classification
+P10565,Encyclopedia of China ID (Third Edition),identifer for an article in the online version of Encyclopedia of China (Third Edition)
+P10566,tiket to-do ID,identifier of an attraction or activity in the tiket.com database
+P10567,Speleologi del passato ID,identifier for a caver or a speleologist in the Italian biographic website Speleologi del passato
+P10568,maintains linking to,this collection resource maintains a consistent linking to this other collection resource
+P10569,L'Humanit journalist ID,identifier for a journalist on L'Humanit website
+P10570,L'Opinion journalist ID,identifier for a journalist on L'Opinion website
+P10571,Le Monde journalist ID,identifier for a journalist on Le Monde website
+P10572,Le Figaro journalist ID,identifier for a journalist on Le Figaro website
+P10573,Le Parisien journalist ID,identifier for a journalist on Le Parisien website
+P10574,Les chos journalist ID,identifier for a journalist on Les chos website
+P10575,Libration journalist ID,identifier for a journalist on Libration website
+P10576,Intesa Sanpaolo Historical Archive Map ID,identifier for the Intesa Sanpaolo Historical Archive Maps Intesa Sanpaolo Historical Archives Datasets
+P10577,Monoskop article ID,identifier for an article on Monoskop wiki
+P10578,IDU foreign theatre ID,identifier for foreign (non-Czech) theatres (not theatre buildings) in the Theatre Institute database
+P10579,IDU theatre building ID,identifier for theatre buildings in Czechia in the Theatre Institute database
+P10580,IDU theatrical ensemble ID,identifier for theatrical ensembles (not theatre buildings) in the Theatre Institute database
+P10581,Cameroun COG,COG identifier of an administrative territorial entity of Cameroon
+P10582,Author ID from the Modern Discussion website,A digital identifier for article writers on theModern discussion website
+P10583,SRSLY person ID,identify for person in SRSLY
+P10584,FAOTERM ID,identifier for a multilingual term published by Food and Agriculture Organization of the United Nations (F.A.O)
+P10585,Catalogue of Life ID,identifier of a taxon or synonym in the Catalogue of Life
+P10586,Trovo ID,identifier of a video game or video game series in the Trovo database
+P10587,IFPI GTIN,identifying sound recordings and music video recordings via their barcodes
+P10588,academic calendar type,academic calendar system used by an educational institution
+P10589,MangaDex title ID,ID of a title (work) on the MangaDex website
+P10590,All.Rugby club ID,identifier for a club on the All.Rugby website
+P10591,traveloka restaurant ID,
+P10592,maPZS trails/locations ID,identifiers with map points for trails and locations in the Slovenia mountains
+P10593,Kinowiki ID,"page on the German Kinowiki, a website about old and new cinema buildings in Germany and elsewhere in Europe"
+P10594,taxonomic treatment,subject has object as taxon treatment
+P10595,Marriott hotel ID,Marriott hotel identifier
+P10596,Chuvash Encyclopedia person ID,idenfity for article about a person in Chuvash Encyclopedia Online
+P10597,Chuvash Encyclopedia place ID,idenfity for article about a place in Chuvash Encyclopedia Online
+P10598,Chuvash Encyclopedia topic ID,idenfity for article about a topic in Chuvash Encyclopedia Online
+P10599,HarperCollins product ID,ID of the product on the HarperCollins website
+P10600,Atlas of Cultural Heritage Calabria cultural place ID,
+P10601,co-applicant,"co-applicant to a grant, program, or other funding agency"
+P10602,applicant,"applicant to a grant, program, or other funding agency or rating organization"
+P10603,XJustiz registration court ID,identifier for German registration courts
+P10604,type of a register in Germany,type of a register in Germany represented by code
+P10605,Atlante Beni Culturali Calabria item ID,
+P10606,notable role,"role in a theatrical, motion picture, television, or other work that a performer is particularly known for"
+P10607,athletics program,"the name of a school's athletics program, as opposed to individual teams in particular sports"
+P10608,FID performing arts ID,Specialised Information Service Performing Arts
+P10609,PLOS Thesaurus ID,identifier for subject area terms covering the wide range of research topics included in the PLOS (Public Library of Science) journals
+P10610,number of teachers,number of teachers at an educational facility
+P10611,has certification,states that an item has a certain certification
+P10612,choreography for,the song or work this item is the choreography for
+P10613,surrounds the enclave,inverse property of P501 (enclave within)
+P10614,has surface,the object is the 2-dimensional surface that partly or completely surrounds the subject in 3-dimensional space
+P10615,QQ Music album ID,identifier for a album in QQ Music website
+P10616,QQ Music track ID,identifier for a track in QQ Music
+P10617,Beatport track ID,identifier for a track on the music streaming platform Beatport
+P10618,Salzburger Literatur Netz ID,identifier for a writer in the Salzburger Literatur Netz
+P10619,Kramerius of Regional Library in Pardubice UUID,UUID identifier for scanned item (book edition/periodical/page) in Regional Library in Pardubice
+P10620,Literatur Netz Obersterreich ID,identifier for a writer in the Literatur Netz Obersterreich
+P10621,1905.com star ID,identifier for a person in 1905.com movie database
+P10622,per capita income,"average income earned per person in a given area (city, region, country, etc.) in a specified year"
+P10623,number of blood donors,number of people that have donated blood for an organization at a particular time
+P10624,official observer status in organisation,Organisation by which the entity is granted observer status
+P10625,OpaqueNamespace ID,identifier in the OpaqueNamespace linked data service
+P10626,deckenmalerei.eu ID,"Identifier for entities in the ""Corpus der barocken Deckenmalerei in Deutschland"" database"
+P10627,web interface software,software that generates the web interface for the source code repository
+P10628,Martian coordinates,planetocentric coordinates of a place on Mars with longitudes from 0¡ to 360¡ (East)
+P10629,suggested data fields,Wikidata property that can be used as a header of a Common's tabular data field
+P10630,medical indication,medical condition for which the net benefit of a medical procedure is expected to be positive
+P10631,ODOT county code,three-letter identifier assigned to a county in Ohio by the Ohio Department of Transportation for road inventory and traffic management
+P10632,OpenSanctions ID,"identifier of persons, companies, luxury vessels of political, criminal, or economic interest at opensanctions.org"
+P10633,CNGAL entry ID,identifier for Visual Novel already in CNGAL Database
+P10634,USA Track & Field athlete ID (www.usatf.org),identifier for an athlete on the USA Track & Field website www.usatf.org
+P10635,National Associations Register Number Spain,Number of the spanish National Associations Register to identify nationwide NGOs
+P10636,number of conferences,
+P10637,historic insurance number (building),"insurance number affixed to a building and used to identify it, historic numbering scheme generally unique within a locality"
+P10638,AperTO author ID,"identifier for an author in AperTO, the open-access repository of the University of Turin"
+P10639,IRIS UNIUPO author ID,"identifier for an author in IRIS UNIUPO, the open-access repository of the University of Eastern Piedmont"
+P10640,pole positions,number of races started in pole position
+P10641,AlloCin TV season ID,identifier for a television series season on the AlloCin film database
+P10642,place of disappearance,place where people or things have disappeared; link with P746 (date of disappearance)
+P10643,code name,"code word or name used, sometimes clandestinely, to refer to another name, word, project, or person; mainly for military purposes, or in espionage"
+P10644,Library of Parliament of Canada riding ID,external identifier for instances of Q17202187 (federal electoral district of Canada) on Q1125633 (Library of Parliament)
+P10645,reports to,the subject position reports to this position
+P10646,ARTEINFORMADO person ID,"person ID of artists and other professionals from the contemporary Ibero-American art world, maintained by the online platform ARTEINFORMADO"
+P10647,Slovak Olympic and Sports Committee athlete ID,"identifier for an athlete (sportsperson) at olympic.sk, a website of the Slovak Olympic and Sports Committee (Slovak: Slovensk? olympijsk? a ?portov? v?bor, SO?V)"
+P10648,podium finishes,number of podium finishes a participant achieved
+P10649,number of likes,"number of likes, favorites, stars, upvotes, or reactions received on a social media post or profile"
+P10650,number of dislikes,number of dislikes or downvotes received on a social media post
+P10651,number of comments,number of comments or replies received on a social media post
+P10652,International Jewish Cemetery Project ID,identifier for places on the International Jewish Cemetery Project website
+P10653,VIA Rail Canada station code,Identifier for train stations used by Via Rail
+P10654,rack system,type of rack-and-cogwheel system used by a certain rack railway
+P10655,oeconym,name of a family farm legally used as a personal name
+P10656,WikiApiary farm,MediaWiki farm described at WikiApiary
+P10657,DTB artistic gymnast ID,identifier for gymnast in the database of the DTB
+P10658,Basketball Bundesliga UUID,universally unique identifier for a Basketball Bundesliga player
+P10659,number of medals,
+P10660,C-SPAN person numeric ID,"identifier for a person's appearances on C-SPAN using the numeric ID format, replaces P2190's string format ID"
+P10661,exhibited creator,intellectual or creative entity (person or organization) responsible for the elements exhibited
+P10662,IndexCat ID,ID in the IndexCat database of historical medical publications
+P10663,applies to work,work or narration for or in which this statement is true
+P10664,featured track(s),soundtrack of this audiovisual work
+P10665,lieferando restaurant ID,
+P10666,IPU chamber ID,external identifier of legislative houses on the Inter-Parliamentary Union's website
+P10667,ACNP library ID,"identifier for a library in ACNP, the Italian catalog of periodicals"
+P10668,HuijiWiki article ID,identifier of an article on HuijiWiki (a Chinese wiki hosting service)
+P10669,TV Maze season ID,identifier for a television series season on the TV Maze film database
+P10670,Musik und Gender im Internet ID,identifier for female musicians in the ÒMusik und Gender im InternetÓ database
+P10671,MINEDEX project ID,"Register of the Western Australian Department of Mines, Industry Regulation and Safety"
+P10672,raw material processed,"raw or intermediate material, or a natural resource converted or consumed by a factory or industrial process, to manufacture a product, or to deliver energy (not to be confused with P186 that is used with products)"
+P10673,debut date,"date a person or group are considered they ""debuted"""
+P10674,FISH Archaeological Objects Thesaurus ID,"identifier for a type or class of archaeological object, in the FISH Archaeological Objects Thesaurus"
+P10676,number of references,"number of references of an item, e.g. of a scholarly article"
+P10677,Winterthur Glossar ID,identifier for an entry in the Winterthur Glossar
+P10678,100 Years of Alaska's Legislature bio ID,identifier for Alaskan legislator biographies from territory to the state's 30th Session
+P10679,Aldiwan poet ID,identifier for a poet in the Aldiwan poetry encyclopedia
+P10680,franchisor,"one who licenses some or all of its know-how, procedures, intellectual property, use of its business model, brand, and rights to sell its branded products and services to a franchisee"
+P10681,government debt-to-GDP ratio,ratio used to measure the level of debt in relationship to a country's GDP
+P10682,EIA plant ID,identifier of a power plant in the United States used by the Energy Information Administration
+P10683,Uber Eats store ID,restaurant listed on Uber Eats
+P10684,Aldiwan poem ID,identifier for a poem in the Aldiwan poetry encyclopedia
+P10685,ionic radius,radius of an atom's ion in ionic crystals structure
+P10686,Library of the Haskala person ID,Identifier for entries in the Library of the Haskala database
+P10687,Google Fonts ID,identifier for a font or typeface on Google Fonts
+P10688,Personality Database work ID,identifier of a audiovisual work on the Personality Database website
+P10689,OpenStreetMap object,"way or node in OpenStreetMap for the item, generally linking back to Wikidata"
+P10690,GEMET ID,identifier for a term in the General Multilingual Environmental Thesaurus (GEMET)
+P10691,Enciclopedia Colchagina ID,"identifier for the Enciclopedia Colchagina, from Chile"
+P10692,DBLP event ID,identifier for scientific events in the DBLP computer science bibliography
+P10693,CNKI institute ID,identifier for a research institute in CNKI database
+P10694,Royal Thai General System of Transcription,transcription of the Thai script in the Latin script using RTGS transcription
+P10695,introduced in,item that introduced the subject
+P10696,image set,images of a set
+P10697,Woolworths product ID,unique identifier of a product sold via the Woolworths online shop
+P10698,TE?S ID,identifier for an entry in the Biographical Dictionary of Turkish Literature (Trk Edebiyatõ ?simler Szl?)
+P10699,FamousFix topic ID,identifier for a subject in the topic on FamousFix
+P10700,Parcours de vies dans la Royale ID,identifier for a person on the 'Parcours de vies dans la Royale' website
+P10701,Reflora ID,identifier for a taxon on the Reflora Flora e Funga do Brasil website
+P10702,Hrono.ru article ID,identifier for a topic in the encyclopedic website Hrono.ru
+P10703,Bill Number,number assigned to a bill to be submitted to the parliament of the state or local government
+P10704,Biographical Memoirs of Fellows of the Royal Society ID,
+P10705,Historic Oregon Newspapers ID,identifier for a newspaper or periodical on the Historic Oregon Newspapers website
+P10706,DACS ID (2022),"code to identify 50,000 artists as members of the British collective rights management organisation DACS and sister organizations worldwide"
+P10707,AccessScience ID,identifier for content in the online encyclopedia AccessScience
+P10708,settlement area code in Sweden,identifier for a urban area in Sweden
+P10709,North Carolina Extension Gardener Plant Toolbox ID,identifier for a taxon in the North Carolina Extension Gardener Plant Toolbox
+P10710,Galaxy Store app ID,identifier for a application in Samsung Galaxy Store
+P10711,Invasive.org species ID,identifier for a species on Invasive.org
+P10712,EIA utility ID,identifier given by the Energy Information Administration of a company in the United States that maintains one or more power plants
+P10713,Biografiskt Lexikon fr Finland ID (urn.fi),urn.fi identifier in the Biografiskt Lexikon fr Finland released by Svenska litteratursllskapet i Finland
+P10714,WikiProject importance scale rating,rating of an article on a WikiProject's importance scale
+P10715,Investopedia term ID,identifier for a term on the financial information website Investopedia
+P10716,fanvue creator ID,creator username on fanvue.com
+P10717,Encyclopedia of Ideas ID,Hebrew-language encyclopedia describing philosophical ideas in daily life
+P10718,CXSMILES,line notation based on the SMILES but extended to allow describing compound classes
+P10719,RBMS Controlled Vocabulary ID,identifier for a term in the Controlled Vocabulary for Rare Materials Cataloging
+P10720,WhoSampled track ID,identifier for an audio track on WhoSampled
+P10721,Identifiant Les Recteurs d'Acadmie en France,identifier for the online version of the French education officers dictionary (1808-1940) by Jean-Franois Condette
+P10722,French Inspector General for Education (1802-1914) identifier,identifier for the online version of the French Inspector General for Education dictionary (1802-1914) supervised by Guy Caplat
+P10723,TheGuardian.com profile ID,ID of contributor profile on TheGuardian.com
+P10724,Hmoegirl ID,identifier for a Hmoegirlpedia article
+P10725,English Everipedia ID,identifier for content on English Everipedia
+P10726,class of property value,class of the value of a non-Item datatype property
+P10727,GeoSciML ID,Geoscience Vocabularies for Linked Data
+P10728,Prsent author ID,
+P10729,finisher,finishing move used by an athlete in professional wrestling
+P10730,Data Commons ID,identifier in the Data Commons knowledge graph
+P10731,support of a function,subset of the domain containing those elements which are not mapped to zero
+P10732,probability mass function,function that gives the probability that a discrete random variable is exactly equal to some value
+P10733,probability generating function,power series representation (the generating function) of the probability mass function of the random variable
+P10734,Fisher information,way of measuring the amount of information that an observable random variable X carries about an unknown parameter ? of a distribution that models X
+P10735,characteristic function,Fourier transform of the probability density function
+P10736,cumulative distribution function,probability that X will take a value less than or equal to x
+P10737,quantile function,value at which the probability of the random variable is less than or equal to the given probability
+P10738,mean of a probability distribution,long-run average value of repetitions of the experiment it represents
+P10739,median of a probability distribution,"value separating the higher half of a data sample, a population, or a probability distribution, from the lower half"
+P10740,mode of a probability distribution,value that appears most often in a set of data
+P10741,dance,dance style that the subject participates or participated in or is associated with
+P10742,OBD Memorial ID,identifier of a person in the OBD Memorial database
+P10743,variance of a probability distribution,expectation of the squared deviation of a random variable from its mean
+P10744,skewness,measure of the asymmetry of the probability distribution of a real-valued random variable about its mean
+P10745,excess kurtosis,"measure of the ""tailedness"" of the probability distribution of a real-valued random variable"
+P10746,information entropy,expected value (average) of the information contained in each message
+P10747,moment-generating function,alternative specification of its probability distribution
+P10748,GeolISSTerm ID,identifier for a term in the GeolISSTerm terminology dictionary
+P10749,Time.com author ID,ID of author profile on Time.com
+P10750,Database of Art Objects at the Jeu de Paume ID,identifier of an artwork in the Database of Art Objects at the Jeu de Paume
+P10751,declination component of proper motion,the value ?? as a component of the proper motion of a star
+P10752,right ascension component of proper motion,the value ?? as a component of the proper motion of a star
+P10753,Israeli Directors' Guild person ID,identifier for a member of the Israeli Directors' Guild
+P10754,distributed from,place or location where a good or service is distributed from
+P10755,Baidu Scholar paper ID,"identifier for a scholary article on Baidu Scholar, a Google Scholar-like academic search engine"
+P10756,number of reblogs,"number of reblogs, reposts, retweets, crossposts, or on-platform shares received on a social media post"
+P10757,Personality Database profile ID,"identifier of a human, fictional character, or other entity on the Personality Database website"
+P10758,TOBuilt ID,"identifier for buildings and architectural structures in Toronto, Canada"
+P10759,Linz DB ID,"identifier of an artwork in the Database on the ""Linz Collection"" (Fhrermuseum)"
+P10760,MCCP ID,identifier in the Munich Central Collecting Point database
+P10761,IRIS UNIFE author ID,"identifier for an author in IRIS UNIFE, the open-access repository of the University of Ferrara"
+P10762,IRIS UNIMORE author ID,"identifier for an author in IRIS UNIMORE, the open-access repository of the University of Modena and Reggio Emilia"
+P10763,IRIS UNIPR author ID,"identifier for an author in IRIS UNIPR, the open-access repository of the University of Parma"
+P10764,charge number,"for a particle, quotient of its electric charge and the elementary charge"
+P10765,Muziekweb composition ID,identifier for a musical composition in Muziekweb
+P10766,Chocolatey Community package ID,package name in the Chocolatey Community Repository
+P10767,Twitter moment ID,identifier of a moment feed on Twitter
+P10768,Similarweb ranking,the website's Similarweb global ranking
+P10769,Kino-kolo film ID,identifier for a film on the Kino-kolo website
+P10770,netkeiba horse ID,identifier for a horse in netkeiba
+P10771,Bookbinding and the Conservation of Books term ID,identifier for a term in the electronic edition of Bookbinding and the Conservation of Books: A Dictionary of Descriptive Terminology
+P10772,Lithuanian company code,organization identification number in Lithuania
+P10773,Afisha.ru movie ID,
+P10774,art is next artist ID,identifier for an artist on the art is next website
+P10775,Gun Violence Archive ID,identifier for shootings in the Gun Violence Archive database
+P10776,HeHaCham HaYomi ID,identifier of a person in the website HeHaCham HaYomi
+P10777,candidate position,numeric qualifier for position of a candidate in a particular election
+P10778,CPNI ID,identifier for a plant in Chinese Plant Names Index database of Scientific Database of China Plant Species
+P10779,Collection Hermann Gring DB ID,identifier in the database on the Collection Hermann Gring
+P10780,Radio France person ID,alphabetical identifier for a person on the Radio France website
+P10781,ANR project ID,"identifier of a project in the French research agency ""Agence Nationale de la Recherche"""
+P10782,Encyclopedia of Medieval Philosophy ID,identifier for a topic in the Encyclopedia of Medieval Philosophy (2011 edition)
+P10783,Umanity horse ID,identifier for the horse in Umanity
+P10784,ISKO Encyclopedia of Knowledge Organization ID,identifier for an entry in the ISKO Encyclopedia of Knowledge Organization
+P10785,JBIS horse ID,identifier for a race horse in the Japan Bloodstock Information System (JBIS)
+P10786,date of incorporation,"date when company, organization or city was incorporated"
+P10787,FactGrid property ID,identifier for a property in FactGrid
+P10788,in operation on service,service that a vehicle is operating on
+P10789,Lithuania Minor Encyclopedia ID,identifier for an entry in the online version of Lithuania Minor Encyclopedia
+P10791,PlantFiles taxon ID,identifier for a taxon in the PlantFiles database
+P10792,Garden.org Plants Database ID,identifier for a taxon in the Garden.org Plants Database
+P10793,Woody Plants Database ID,identifier for a taxon in Cornell University's Woody Plants Database
+P10794,Macaulay Library taxon ID,"identifier for a bird, mammal, amphibian, or fish taxon in the Macaulay Library wildlife media archive"
+P10795,coordination number,"number of atoms, molecules or ions bonded to in a molecule or crystal"
+P10796,Italian Chamber of Deputies government ID,identifier of Italian governments from the Italian Chamber of Deputies
+P10797,Italian Chamber of Deputies parliamentary group ID,identifier for a parliamentary group of the Italian Chamber of Deputies
+P10798,Midi libre journalist ID,identifier for a journalist on Midi libre website
+P10799,Heiligen.net ID,identifier for saints listed on the website heiligen.net
+P10800,Championat ID,"identifier of a team, sports facility, or player on the Championat website"
+P10801,Ukrainian Live Classic composer ID,identifier for a composer on the Ukrainian Live Classic website
+P10802,Esports Earnings game ID,identifier for an e-sports discipline on the Esports Earnings website
+P10803,Esports Earnings player ID,identifier for a professional gamer on the Esports Earnings website
+P10804,Twitter list ID,identifier of a list of accounts on Twitter
+P10805,Museum of Gothenburg object ID,identifier for an object in the Museum of Gothenburg
+P10806,orchestrator,person or body responsible for arranging a musical composition for orchestra
+P10807,HaBama person ID,identifier for a person at the HaBama site
+P10808,preceding halt on service,(qualifier) halt prior to this one at which the service stops
+P10809,following station on service,(qualifier) halt immediately following this one at which the service stops
+P10810,Shopee shop ID,identifier on the Shopee app for a restaurant or other business (mostly in South East Asia)
+P10811,Scottish Highland Bridges ID,Identifier for a bridge or other structure on the Scottish Highland Bridges website
+P10812,Rusakters.ru ID,identifier on the website ?????????? ? ????????? ??????
+P10813,Proza.ru author ID,identifier for a writer on literary site proza.ru
+P10814,number of housing units,"number of housing units (dwellings) in a specific place (such as city, county, state, country etc.)"
+P10815,neftegaz.ru person ID,identifier for a person at the Russian energy website neftegaz.ru
+P10816,National Union Catalog ID,"identifier for this work in The National Union Catalog, Pre-1956 Imprints"
+P10817,MAYA site company ID,identifier for a company traded on the Tel Aviv Stock Exchange on the MAYA website
+P10818,last entry,"time after which an establishment or attraction no longer admits entry, qualifier for P3025 (for closing time, use P8627)"
+P10819,Kino.mail.ru series ID,identifier for a television series on the Russian film portal kino.mail.ru
+P10820,Kino.mail.ru person ID,identifier for a person on the Russian film portal Kino.mail.ru
+P10821,Kino.mail.ru film ID,identifier for a film on the Russian film portal Kino.mail.ru
+P10822,homophone form,form with the same or very similar pronunciation as this one
+P10823,fastest laps,"number of fastest laps a driver is credited with over a series, season, or career"
+P10824,Ethereum token address,unique address for a token on the Ethereum blockchain
+P10825,BelTA dossier ID,"identifier for people, organizations, events etc. at the Belarusian state news agency BelTA"
+P10826,Talent Data Bank ID,identifier for a Japanese entertainer in the Talent Data Bank
+P10827,IRIS UNIVAQ author ID,"identifier for an author in IRIS UNIVAQ, the open-access repository of the University of L'Aquila"
+P10828,ARUd'A author ID,"identifier for an author in ARUd'A, the open-access repository of the D'Annunzio University of ChietiÐPescara"
+P10829,IRIS UNITE author ID,"identifier for an author in IRIS UNITE, the open-access repository of the University of Teramo"
+P10830,"COR form ID, level 1",identifier for lexical form in COR
+P10831,"COR lemma ID, niveau 1",identifier for lemma (lexeme) at level 1 in The Danish Central Word Register (Det centrale ordregister)
+P10832,WorldCat Entities ID,"identifier for a person, work, or place from the WorldCat Entities linked data service"
+P10833,Great Plant Picks ID,identifier for a plant listed in the Great Plant Picks website
+P10834,BVMC organization ID,"identifier of a corporate body on the Biblioteca Virtual Miguel de Cervantes, data.cervantesvirtual.com"
+P10835,UK Beetles ID,identifier for a beetle taxon on the UK Beetles website
+P10836,inker,"comics artist responsible for outlining, interpreting, finalizing, and retracing a drawing by using a pencil, pen or a brush"
+P10837,penciller,"artist who works on the creation of comic books, graphic novels, and similar visual art forms, with a focus on the initial pencil illustrations"
+P10838,Survey of Scottish Witchcraft - Case ID,identifier for cases in the Survey of Scottish Witchcraft database
+P10839,Russia.travel object ID,identifier for an object at the russia.travel website
+P10840,Yamaha Artists ID,identifier for a musician or musical ensemble on the Yamaha Artists website
+P10841,ifwizz ID,identifier of an interactive fiction in the ifwizz database
+P10842,IRFA ID,identifier for a French Catholic missionary on the IRFA website
+P10843,DeSmog ID,ID produced by the environmental misinformation watchdog group DeSmog
+P10844,Teresianum authority ID,identifier for an authority in the catalogue of the Library of the Teresianum
+P10845,AdoroCinema series ID,identifier for a series in AdoroCinema database
+P10846,CEU author ID,identifier for an author of the CEU (Central European University)
+P10847,Anime Characters Database tag ID,identifier for Anime Characters Database tag
+P10848,Beamish peerage database peerage ID,identifier for a peerage in the Beamish database
+P10849,Beamish peerage database person ID,identifier for a person in the Beamish database
+P10850,Kultboy video game ID,identifier of a video game in the Kultboy database
+P10851,Kultboy platform ID,identifier of a video game system in the Kultboy database
+P10852,Kultboy controller ID,identifier of a video game controller in the Kultboy database
+P10853,Kultboy magazine ID,identifier of a video game magazine in the Kultboy database
+P10854,Kultboy company ID,identifier of a company in the Kultboy database
+P10855,opus number,"number that is assigned to a musical composition, or to a set of compositions, to indicate the chronological order of the composer's production"
+P10856,National Archives of Australia entity ID,"identifier for government agencies created by, and people and organizations associated with, the Commonwealth of Australia, allocated by the National Archives of Australia"
+P10857,snookerscores.net player ID,identifier for an athlete on snookerscores.net
+P10858,Truth Social username,this item's username on Truth Social
+P10859,Material UI icon,URI that identifies an icon from Material UI collection
+P10860,Yarkipedia ID,identifier for a subject in Yarkipedia
+P10861,Springer Nature person ID,identifier for a researcher used by Springer Nature (SN) SciGraph
+P10862,Komoot ID,identifier for an itinerary or a point of interest on Komoot website
+P10863,Springer Nature article ID,identifier for an article in Springer Nature (SN) SciGraph
+P10864,Bibale ID,numerical identifier for a person in the French database Bibale
+P10865,WW2 Thesaurus Camp List ID,identifier for camps in the WW2 Thesaurus
+P10866,IRIS UNIMOL author ID,"identifier for an author in IRIS UNIMOL, the open-access repository of the University of Molise"
+P10867,MUSE publisher ID,identifier for a publisher in the Project MUSE bibliographic database
+P10868,France bleu journalist ID,identifier for a journalist on France bleu website
+P10869,HATVP organisation ID,identifier for an organisation on the High Authority for Transparency in Public Life website
+P10870,Accademia dei Georgofili author ID,identifier for an author who wrote articles in the reviews published by the Accademia dei Georgofili
+P10871,Delaware Division of Corporations file number,number associated with entities registered with the Delaware Department of State Division of Corporations
+P10872,Palmares Cultural Foundation process number,process number of the request for recognition of a quilombo community at the Palmares Cultural Foundation
+P10873,Mapping Museums ID,"identifier for a UK museum existing in the 1960 to 2022 period, in Mapping Museums database"
+P10874,gov.uk person ID,identifier for a minister or government official on gov.uk
+P10875,Kazakhstan.travel tourist spot ID,identifier for a tourist spot entry on the Kazakhstan.travel website
+P10876,CVX vaccine code,code for a vaccine administered by the CDC's National Center for Immunization and Respiratory Diseases
+P10877,Applied Ecology Resources document ID,identifier for a document in the Applied Ecology Resources database
+P10878,ClimateCultures Directory ID,identifier for a person in the ClimateCultures Directory
+P10879,Hamburger Professorinnen- und Professorenkatalog ID,identifier for a person
+P10880,Catalogus Professorum (TU Berlin) person ID,identifier for a person
+P10881,Kieler Gelehrtenverzeichnis ID,"identifier for persons in Kieler Gelehrtenverzeichnis, a database of professors from the University of Kiel, Germany"
+P10882,Met Constituent ID,"identifier from the Metropolitan Museum of Art that describes people, institutions, or entities attributed for the creation of a work"
+P10883,The Encyclopedia of Fantasy ID,identifier for an entry on the Encyclopedia of Fantasy website
+P10884,Gitee username,username on a website publishing user generated content
+P10885,Anghami artist ID,identifier for an artist on Anghami site
+P10886,Austria-Forum person ID,identifier for a person in the biographies section of Austria-Forum
+P10887,Base Bud person ID,identifier for a person in the French database Base Bud
+P10888,contains the statistical territorial entity,(list of) statistical territorial entities which are direct subdivisions of another statistical or administrative territorial entity
+P10889,Israeli Company Number,
+P10890,PM20 ware ID,identifier for a wares category in the 20th Century Press Archives' commodities/wares category system
+P10891,pad.ma person ID,"identifier for a person, in the pad.ma archive of Indian film"
+P10892,Bioconductor project,name for a software project hosted on the Bioconductor website
+P10893,recordist,the person or other agent who recorded the audio and/or video for this file
+P10894,spoken by,the person who is speaking in this audio or video file
+P10895,Broadway World person ID,identifier for a person or organization on the Broadway World website
+P10896,pad.ma video ID,identifier for a video (movie) in the pad.ma archive of Indian video
+P10897,ORKG ID,Open Research Knowledge Graph (ORKG) ID
+P10898,International Baccalaureate school ID,identifier for a school or college in the International Baccalaureate World School system
+P10899,Prophy author ID,identifier for an author in the Prophy database
+P10900,Telmore Musik artist ID,identifier for an artist on the Telmore Musik website
+P10902,FirstCycling rider ID,identifier for riders in First Cycling-Database
diff --git a/swarms/tools/kg/wikidata/readme.md b/swarms/tools/kg/wikidata/readme.md
new file mode 100644
index 00000000..9d2564af
--- /dev/null
+++ b/swarms/tools/kg/wikidata/readme.md
@@ -0,0 +1,56 @@
+# Wikidata Query
+
+Contributor: [Yuzhang Zhu](https://github.com/Zhu-Yuzhang)
+
+# Search in Wikidata Tool
+
+This Markdown document provides an introduction to the `Search in Wikidata` function implemented in the given code. The function allows users to search for factual information in Wikidata by querying entities, relations, and performing SPARQL queries.
+
+## Function Summary
+
+The `Search in Wikidata` function is a tool that enables users to search for factual information in Wikidata. It provides functionality for finding entities, retrieving entity details, searching for relations, and performing SPARQL queries.
+
+## Usage
+
+To use the `Search in Wikidata` function, follow the steps below:
+
+1. Call the desired endpoint with appropriate parameters to perform the specific search or query operation.
+2. The function returns a markdown-formatted table containing the results.
+
+## Endpoints
+
+The `Search in Wikidata` tool provides the following endpoints:
+
+### `/find_entity`
+
+- **Method**: GET
+- **Parameters**:
+ - `input`: The input entity to find relations and properties for.
+
+### `/find_entity_by_tail`
+
+- **Method**: GET
+- **Parameters**:
+ - `input`: The input tail to find head entities and relations for.
+
+### `/get_entity_id`
+
+- **Method**: GET
+- **Parameters**:
+ - `input`: The surface form to search for entities.
+
+### `/get_relation_id`
+
+- **Method**: GET
+- **Parameters**:
+ - `input`: The surface form to search for relations.
+
+### `/search_by_code`
+
+- **Method**: GET
+- **Parameters**:
+ - `query`: The SPARQL query to perform.
+
+## Error Handling
+
+If any invalid options or exceptions occur during the execution of the function, appropriate error messages are printed.
diff --git a/swarms/tools/kg/wikidata/test.py b/swarms/tools/kg/wikidata/test.py
new file mode 100644
index 00000000..fb1454d5
--- /dev/null
+++ b/swarms/tools/kg/wikidata/test.py
@@ -0,0 +1,12 @@
+
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'wikidata', "http://127.0.0.1:8079/tools/wikidata/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("")
\ No newline at end of file
diff --git a/swarms/tools/kg/wikidata/utils.py b/swarms/tools/kg/wikidata/utils.py
new file mode 100644
index 00000000..4885d83d
--- /dev/null
+++ b/swarms/tools/kg/wikidata/utils.py
@@ -0,0 +1,747 @@
+from copy import deepcopy
+from SPARQLWrapper import SPARQLWrapper, JSON
+import csv
+import regex as re
+import os
+
+DIRPATH = os.path.dirname(os.path.abspath(__file__))
+
+# Dictionary to store all property labels and description
+
+
+class PropertyDetails:
+ def __init__(self):
+ self.prop_details = dict()
+ with open(f'{DIRPATH}/property.csv', 'r', encoding='utf-8') as f:
+ reader = csv.reader(f, delimiter=',')
+ for prop in reader:
+ self.prop_details[prop[0]] = [prop[1], prop[2]]
+
+ def get_details(self, prop_id):
+ return self.prop_details.get(prop_id, ['', ''])
+
+
+sid_num = 0
+propdetails = PropertyDetails()
+
+
+def convert_sparql_to_backend(query):
+ all_var_str = '[() ]\?[a-zA-Z0-9_-]+[() ]'
+
+ filter_str = r'\(.+\(.* (\?.+)\) [Aa][Ss].*\)'
+
+ sparql_split = query.split('\n')
+ select = sparql_split[0]
+ select += ' '
+ sel_list = re.findall(all_var_str, select, overlapped=True)
+ sel_list = [sel[1:-1] for sel in sel_list]
+
+ rm_list = re.findall(filter_str, select)
+
+ for sel in rm_list:
+ sel_list.remove(sel)
+
+ # print(sel_list)
+
+ added_sel_list = []
+ basic_sel_list = []
+
+ for sel in sel_list:
+ if len(sel) > 0 and sel[0] == '?':
+ basic_sel_list.append(sel)
+ added_sel_list.append(sel + 'Label')
+ added_sel_list.append(sel + 'Description')
+
+ if len(rm_list) == 0:
+ for sel in added_sel_list:
+ select += ' ' + sel
+
+ # print(select)
+
+ sparql_split[0] = select
+
+ service_pos = -1
+
+ query = '\n'.join(sparql_split)
+
+ for i in range(len(query)-1, -1, -1):
+ if query[i] == '}':
+ service_pos = i
+ break
+
+ query = query[:service_pos] + \
+ 'SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }\n' + \
+ query[service_pos:] + '\nLIMIT 200'
+ basic_sel_list = [b[1:] for b in basic_sel_list]
+ return query, basic_sel_list
+
+
+def get_property_details_with_name(url: str, name: str):
+ id = url.split('/')[-1]
+ checkConst = url.split('/')[4]
+ if len(id) > 0 and id[0] == '#':
+ return {
+ name: id,
+ name + 'Label': '',
+ name + 'Description': '',
+ # name + 'uri': ''
+ }
+ elif checkConst[0] == '"':
+ label = url.split('"')[1]
+ type = url.split('<')[-1]
+ type = type[0:len(type)-1]
+ return {
+ name: '',
+ name + 'Label': label,
+ name + 'Description': "",
+ # name + 'uri': '',
+ # 'type': type
+ }
+ prop = propdetails.get_details(id)
+ id = id.split('+')
+ if len(id) == 1:
+ return {
+ name: id[0],
+ name + 'Label': prop[0],
+ name + 'Description': prop[1],
+ # 'propuri': url
+ }
+ labels = [propdetails.get_details(id_)[0] for id_ in id]
+
+ return {
+ name: '+'.join(id),
+ name + 'Label': '+'.join(labels),
+ name + 'Description': '',
+ # name + 'uri': ''
+ }
+
+
+def convert(dictt):
+ for key in dictt:
+ dictt[key] = {'value': dictt[key]}
+ return dictt
+
+
+def getResult(query):
+ sparql = SPARQLWrapper('https://query.wikidata.org/sparql',
+ agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36')
+
+ sparql.setQuery(query)
+
+ sparql.setReturnFormat(JSON)
+ result = sparql.query().convert()
+
+ return result['results']['bindings']
+
+
+def get_details_sparql(id):
+ condition = 'wd:{} rdfs:label ?label. wd:{} schema:description ?description. FILTER(lang(?label) = "en" && lang(?description) = "en")'.format(
+ id, id)
+ query = 'SELECT ?label ?description \nWHERE\n{\n' + \
+ condition + '\n}\n LIMIT 1'
+
+ return query
+
+# Get label & description of an entity
+
+
+def get_entity_details(url: str):
+ id = url.split('/')[-1]
+
+ if len(id) > 0 and id[0] == '#':
+ return {
+ 'id': id,
+ 'label': None,
+ 'description': None,
+ 'uri': None
+ }
+
+ if not (len(id) > 0 and id[0] in ['P', 'Q']):
+ return {
+ 'id': id,
+ 'label': None,
+ 'description': None,
+ 'uri': None
+ }
+
+ if (url[0:4] != 'http'):
+ return {
+ 'id': None,
+ 'label': None,
+ 'description': None,
+ 'uri': None
+ }
+
+ if url[7:23] != "www.wikidata.org":
+ return {
+ 'id': None,
+ 'label': None,
+ 'description': None,
+ 'uri': url
+ }
+
+ result = getResult(get_details_sparql(id))
+
+ if len(result) == 0:
+ return {
+ 'id': id,
+ 'label': None,
+ 'description': None,
+ 'uri': url,
+ 'type': ''
+ }
+
+ response = {
+ 'id': id,
+ 'label': result[0].get('label', {'value': ''})['value'],
+ 'description': result[0].get('description', {'value': ''})['value'],
+ 'uri': url,
+ 'type': 'uri'
+ }
+
+ return response
+
+
+# Get label & description of a property
+def get_property_details(url: str):
+ id = url.split('/')[-1]
+ checkConst = url.split('/')[4]
+ if len(id) > 0 and id[0] == '#':
+ return {
+ 'prop': id,
+ 'propLabel': '',
+ 'propDescription': '',
+ # 'propuri': ''
+ }
+ elif checkConst[0] == '"':
+ label = url.split('"')[1]
+ type = url.split('<')[-1]
+ type = type[0:len(type)-1]
+ return {
+ 'prop': '',
+ 'propLabel': label,
+ 'propDescription': "",
+ # 'propuri': '',
+ # 'type': type
+ }
+ prop = propdetails.get_details(id)
+ id = id.split('+')
+ if len(id) == 1:
+ return {
+ 'prop': id[0],
+ 'propLabel': prop[0],
+ 'propDescription': prop[1],
+ # 'propuri': url
+ }
+ labels = [propdetails.get_details(id_)[0] for id_ in id]
+
+ return {
+ 'prop': '+'.join(id),
+ 'propLabel': '+'.join(labels),
+ 'propDescription': '',
+ # 'propuri': ''
+ }
+
+
+def enc(i):
+ assert 'attr' in i and i['id'] != None
+ global sid_num
+ if i['attr'] == 'tmp':
+ return '?'+'tmp'+str(i['id'])+'_'
+ if i['attr'] == 'val':
+ return str(i['id'])
+ if i['attr'] == 'sid':
+ return '?'+'sid_'+str(i['id'])
+
+ if len(i['id'].split('|')) > 1:
+ Str = ''
+ for Id in i['id'].split('|'):
+ sid_num += 1
+ Str += i['attr']+':'+Id
+ Str += "|"
+ return Str[:-1]
+
+ if i['attr'] == 'wdt':
+ sid_num += 1
+ return 'p:{} ?sid_{}.\n?sid_{} ps:{}'.format(str(i['id']), sid_num, sid_num, str(i['id']))
+ return i['attr']+':'+str(i['id'])
+
+
+class Slot2Sparql:
+ class selection:
+ def __init__(self):
+ self.str0 = "SELECT " # 搜索的目标字符串
+ self.str1 = ''
+ self.str2 = ''
+ self.select = [] # select后内容
+ self.select_sid = [] # 最新statementId
+ self.new_select = [] # count max min select 的tmp id
+ self.trip = [] # 下方的搜索字符串
+ self.tmp = [] # 临时变量
+ self.state = []
+ self.tail = [] # 尾部
+
+ self.find_tuple_match = {}
+
+ def give_str(self):
+ need_label = (len(self.str1) == 0)
+
+ str = self.str0
+
+ for s in self.select:
+ cur_enc = enc(s)
+ str += cur_enc
+ if need_label:
+ str += ' {}Label {}Description'.format(cur_enc, cur_enc)
+ if len(self.select) == 1:
+ str += self.str1
+ str += self.str2
+ str += ' '
+
+ for s in self.select_sid:
+ str += enc(s)
+
+ str += "\nWHERE\n{\n"
+ for s in self.trip:
+ str += s
+ if (str[-1] != '{'):
+ str += '.'
+ str += '\n'
+
+ if need_label:
+ str += 'SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }\n'
+ str += "}"
+ for s in self.tail:
+ str += '\n'
+ str += s
+
+ str += '\n'
+ return str
+
+ def set_select(self, sele):
+ self.str0 = "SELECT "
+ self.select = [sele]
+ self.str1 = ""
+
+ def clear_all(self):
+ self.str0 = "SELECT " # 搜索的目标字符串
+ self.str1 = ''
+ self.str2 = ''
+ self.select = [] # select后内容
+ self.trip = [] # 下方的搜索字符串
+ self.tmp = [] # 临时变量
+ self.state = []
+ self.tail = [] # 尾部
+
+ def getCount(self):
+ str = self.str0
+
+ str += '(COUNT('
+
+ for s in self.select:
+ cur_enc = enc(s)
+ str += cur_enc
+ if len(self.select) == 1:
+ str += self.str1
+ str += ' '
+
+ str += ') AS ?cnt)'
+
+ str += "\nWHERE\n{\n"
+ for s in self.trip:
+ str += s
+ str += '.'
+ str += '\n'
+
+ str += "}"
+ for s in self.tail:
+ str += '\n'
+ str += s
+
+ str += '\n'
+ return str
+
+ def __init__(self):
+ self.select_lst = []
+ self.num = 0
+ sid_num = 0
+
+ def clear_all(self):
+ self.select_lst = []
+ self.num = 0
+
+ def new_select_lst(self):
+ self.select_lst.append(self.selection())
+
+ def prev_select_lst(self, idx):
+ self.select_lst.append(deepcopy(self.select_lst[idx]))
+
+ def find_select_lst(self, tar):
+ assert tar['attr'] == 'tmp' and tar['id'] < self.num
+ if tar in self.select_lst[-1].tmp:
+ return
+ for i in range(len(self.select_lst) - 2, -1, -1):
+ if tar in self.select_lst[i].select:
+ self.select_lst[-1].trip += self.select_lst[i].trip # 下方的搜索字符串
+ self.select_lst[-1].state += self.select_lst[i].state
+ self.select_lst[-1].tmp += self.select_lst[i].tmp
+ self.select_lst[-1].tail += self.select_lst[i].tail # 尾部
+ return
+
+ def head(self,):
+ pass
+
+ def body(self,):
+ pass
+
+ def find_tuple(self, tup):
+ self.new_select_lst()
+ target = []
+ for i in tup:
+ if tup[i]['attr'] == 'tmp' and tup[i]['id'] == None:
+ # 新的临时变量
+ tup[i]['id'] = self.num
+ self.num += 1
+ target.append(tup[i])
+ self.select_lst[-1].find_tuple_match[i] = enc(tup[i])[1:]
+ self.select_lst[-1].tmp.append(tup[i])
+ elif tup[i]['attr'] == 'tmp':
+ assert tup[i]['id'] < self.num
+ self.find_select_lst(tup[i])
+ target.append(tup[i])
+ self.select_lst[-1].find_tuple_match[i] = enc(tup[i])[1:]
+
+ if target == []:
+ is_triplet_full = True
+ for i in tup:
+ if tup[i]['attr'] == 'tmp':
+ self.find_select_lst(tup[i])
+ target.append(tup[i])
+ self.select_lst[-1].find_tuple_match[i] = enc(tup[i])[1:]
+ break
+ else:
+ is_triplet_full = False
+
+ self.select_lst[-1].select = target
+ self.select_lst[-1].state.append([tup['x'], tup['y'], tup['z']])
+
+ if type(tup['y']['id']) == str:
+ y_id_splited = tup['y']['id'].split('+')
+ else:
+ y_id_splited = []
+
+ tmpXZ = [tup['x']]
+ for i in range(len(y_id_splited)-1):
+ tmpXZ.append({'attr': 'tmp', 'id': self.num})
+ self.num += 1
+ tmpXZ.append(tup['z'])
+
+ idx = 0
+ str1 = ''
+ if len(y_id_splited) != 0:
+ for tmpY in y_id_splited:
+ newY = {'attr': 'wdt', 'id': tmpY}
+ str1 += enc(tmpXZ[idx])
+ str1 += ' '
+ str1 += enc(newY)
+ str1 += ' '
+ str1 += enc(tmpXZ[idx+1])
+ str1 += '.\n'
+ idx += 1
+ else:
+ str1 += enc(tup['x'])
+ str1 += ' '
+ str1 += enc(tup['y'])
+ str1 += ' '
+ str1 += enc(tup['z'])
+ str1 += '.\n'
+ str1 = str1[:-2]
+
+ print(str1)
+
+ self.select_lst[-1].select_sid = [{'attr': 'sid', 'id': sid_num}]
+ self.select_lst[-1].trip.append(str1)
+
+ if is_triplet_full:
+ self.change_tmpidx(target[0])
+
+ def find_entity(self, ent1):
+ self.new_select_lst()
+ self.select_lst[-1].str0 += 'DISTINCT '
+ self.select_lst[-1].select = [{}, {}, {}]
+ innerSelect = [{}, {}]
+
+ for t in self.select_lst[-1].select:
+ t['attr'] = 'tmp'
+ t['id'] = self.num
+ self.num += 1
+ self.select_lst[-1].tmp.append(t)
+ for t in innerSelect:
+ t['attr'] = 'tmp'
+ t['id'] = self.num
+ self.num += 1
+
+ if ent1['attr'] == 'tmp':
+ self.find_select_lst(ent1)
+ # ent1位于三元组的头
+ self.select_lst[-1].state.append(
+ [ent1, self.select_lst[-1].select[0], self.select_lst[-1].select[1], self.select_lst[-1].select[2]])
+ str1 = enc(ent1)
+ str1 += ' '
+ str1 += enc(self.select_lst[-1].select[0])
+ str1 += ' '
+ str1 += enc(self.select_lst[-1].select[1])
+ self.select_lst[-1].trip.append("{")
+ self.select_lst[-1].trip.append(str1)
+ self.select_lst[-1].trip.append("}\nUNION\n{")
+ str1 = enc(ent1)
+ str1 += ' '
+ str1 += enc(innerSelect[0])
+ str1 += ' '
+ str1 += enc(innerSelect[1])
+ self.select_lst[-1].trip.append(str1)
+ str1 = enc(innerSelect[1])
+ str1 += ' pq:P585 '
+ str1 += enc(self.select_lst[-1].select[2])
+ str1 += ';\n'
+ str1 += enc(self.select_lst[-1].select[0])
+ str1 += ' '
+ str1 += enc(self.select_lst[-1].select[1])
+ self.select_lst[-1].trip.append(str1)
+ self.select_lst[-1].trip.append("}")
+
+ if ent1['attr'] == 'wds':
+ str1 = 'FILTER(STRSTARTS ( STR ( {} ), "http://www.wikidata.org/prop/" ))'.format(
+ enc(self.select_lst[-1].select[0]))
+ else:
+ str1 = 'FILTER(STRSTARTS ( STR ( {} ), "http://www.wikidata.org/prop/direct/" ) || STRSTARTS ( STR ( {} ),"http://www.wikidata.org/prop/statement/" ))'.format(
+ enc(self.select_lst[-1].select[0]), enc(self.select_lst[-1].select[0]))
+ self.select_lst[-1].trip.append(str1)
+
+ def find_entity_by_tail(self, ent1):
+ self.new_select_lst()
+ self.select_lst[-1].str0 += 'DISTINCT '
+ self.select_lst[-1].select = [{}, {}]
+ for t in self.select_lst[-1].select:
+ t['attr'] = 'tmp'
+ t['id'] = self.num
+ self.num += 1
+ self.select_lst[-1].tmp.append(t)
+ if ent1['attr'] == 'tmp':
+ self.find_select_lst(ent1)
+ # ent1位于三元组的尾
+ self.select_lst[-1].state.append(
+ [self.select_lst[-1].select[0], self.select_lst[-1].select[1], ent1])
+ str1 = enc(self.select_lst[-1].select[0])
+ str1 += ' '
+ str1 += enc(self.select_lst[-1].select[1])
+ str1 += ' '
+ str1 += enc(ent1)
+ self.select_lst[-1].trip.append(str1)
+
+ str1 = 'FILTER(STRSTARTS ( STR ( {} ), "http://www.wikidata.org/entity/Q" ))'.format(
+ enc(self.select_lst[-1].select[0]))
+ self.select_lst[-1].trip.append(str1)
+
+ str1 = 'FILTER(STRSTARTS ( STR ( {} ), "http://www.wikidata.org/prop/" ))'.format(
+ enc(self.select_lst[-1].select[1]))
+ self.select_lst[-1].trip.append(str1)
+
+ def find_entity_by_relation(self, ent1):
+ self.new_select_lst()
+ self.select_lst[-1].str0 += 'DISTINCT '
+ self.select_lst[-1].select = [{}, {}]
+ for t in self.select_lst[-1].select:
+ t['attr'] = 'tmp'
+ t['id'] = self.num
+ self.num += 1
+ self.select_lst[-1].tmp.append(t)
+ if ent1['attr'] == 'tmp':
+ self.find_select_lst(ent1)
+ # ent1位于三元组的尾
+ self.select_lst[-1].state.append(
+ [self.select_lst[-1].select[0], self.select_lst[-1].select[1], ent1])
+ str1 = enc(self.select_lst[-1].select[0])
+ str1 += ' '
+ str1 += enc(ent1)
+ str1 += ' '
+ str1 += enc(self.select_lst[-1].select[1])
+ self.select_lst[-1].trip.append(str1)
+
+ str1 = 'FILTER(STRSTARTS ( STR ( {} ), "http://www.wikidata.org/entity/Q" ))'.format(
+ enc(self.select_lst[-1].select[0]))
+ self.select_lst[-1].trip.append(str1)
+
+ def binary_operation(self, ent1, op, ent2):
+ if op in ['>', '<', '=', '!=', '>=', '<=']:
+ self.new_select_lst()
+ assert ent1['attr'] == 'tmp'
+ self.find_select_lst(ent1)
+ # 使用 filter 表示比较关系
+ str1 = 'FILTER ('
+ str1 += enc(ent1)
+ str1 += ' '
+ str1 += op
+ str1 += ' '
+ str1 += enc(ent2)
+ str1 += ')'
+ self.select_lst[-1].trip.append(str1)
+ self.select_lst[-1].select = [ent1]
+ self.change_tmpidx(ent1)
+ if ent2['attr'] == 'tmp':
+ self.select_lst[-1].select.append(ent2)
+
+ elif op in ['+', '-', '*', '/']:
+ self.new_select_lst()
+ if ent1['attr'] == 'tmp':
+ self.find_select_lst(ent1)
+ if ent2['attr'] == 'tmp':
+ self.find_select_lst(ent2)
+ # 使用新的临时变量
+ # BIND(?tmpxx / 365.2425 AS ?tmpxx).
+ t = {}
+ t['attr'] = 'tmp'
+ t['id'] = self.num
+ self.num += 1
+ self.select_lst[-1].select = [t]
+ self.select_lst[-1].tmp.append(t)
+
+ str1 = 'BIND ('
+ str1 += enc(ent1)
+ str1 += ' '
+ str1 += op
+ str1 += ' '
+ str1 += enc(ent2)
+ str1 += ' AS '
+ str1 += enc(t)
+ str1 += ').'
+ self.select_lst[-1].trip.append(str1)
+
+ elif op in ['&&', '||', '~']:
+ self.new_select_lst()
+ assert ent1['attr'] == ent2['attr'] == 'tmp'
+ self.select_lst[-1].trip.append('{')
+ self.find_select_lst(ent1)
+ if op == '&&':
+ pass
+ elif op == '||':
+ self.select_lst[-1].trip.append('}\nUNION\n{')
+ else:
+ self.select_lst[-1].trip.append('}\nMINUS\n{')
+ self.find_select_lst(ent2)
+ self.select_lst[-1].trip.append('}')
+ # 使用新的临时变量
+ # BIND(?tmpxx / 365.2425 AS ?tmpxx).
+ t = {}
+ t['attr'] = 'tmp'
+ t['id'] = self.num
+ self.num += 1
+ tmp = []
+ self.select_lst[-1].select = [t]
+ self.select_lst[-1].tmp.append(t)
+ self.select_lst[-1].tmp.remove(ent1)
+ self.select_lst[-1].tmp.remove(ent2)
+ for line in self.select_lst[-1].trip:
+ nline = line.replace(enc(ent1), enc(t))
+ nline = nline.replace(enc(ent2), enc(t))
+ tmp.append(nline)
+ self.select_lst[-1].trip = tmp
+ for line in self.select_lst[-1].state:
+ for i in line:
+ if i == ent1 or i == ent2:
+ i = t
+ tmp = []
+ for line in self.select_lst[-1].tail:
+ nline = line.replace(enc(ent1), enc(t))
+ nline = nline.replace(enc(ent2), enc(t))
+ tmp.append(nline)
+ self.select_lst[-1].tail = tmp
+
+ def unitary_operation(self, ent, op, last_sparql_idx):
+ if op in ['ORDER', 'GROUP (ASC)', 'GROUP (DESC)']:
+ self.new_select_lst()
+ self.find_select_lst(ent)
+ self.select_lst[-1].select = [ent]
+ str1 = op.split(' ')[0] + ' BY '
+ str1 += enc(ent)
+ if 'GROUP' in op.split(' '):
+ str1 += ' {}Label {}Description'.format(enc(ent), enc(ent))
+ if op.split(' ')[-1] == '(DESC)':
+ str1 += '\nORDER BY DESC(?cnt)'
+ else:
+ str1 += '\nORDER BY ?cnt'
+
+ self.select_lst[-1].tail.append(str1)
+ self.change_tmpidx(ent)
+
+ if 'GROUP' in op.split(' '):
+ self.select_lst[-1].str2 = ' (COUNT({}) AS ?cnt) '.format(
+ enc(self.select_lst[-1].select[0]))
+
+ elif op in ['LIMIT', 'OFFSET']:
+ self.prev_select_lst(last_sparql_idx)
+ str1 = op + ' '
+ str1 += enc(ent)
+ self.select_lst[-1].tail.append(str1)
+ self.change_tmpidx(self.select_lst[-1].select[0])
+ self.select_lst[-1].new_select = self.select_lst[-1].select
+
+ elif op in ['DISTINCT', 'REDUCED']:
+ self.new_select_lst()
+ self.find_select_lst(ent)
+ self.select_lst[-1].select = [ent]
+ self.select_lst[-1].str0 += op
+ self.select_lst[-1].str0 += ' '
+
+ elif op in ['MIN', 'MAX', 'AVG', 'SUM', 'COUNT', 'SAMPLE']:
+ self.new_select_lst()
+ self.find_select_lst(ent)
+
+ t = {}
+ t['attr'] = 'tmp'
+ t['id'] = self.num
+ self.num += 1
+ self.select_lst[-1].new_select = [t]
+ self.select_lst[-1].tmp.append(t)
+
+ self.select_lst[-1].select = [ent]
+
+ self.select_lst[-1].str0 += '('
+ self.select_lst[-1].str0 += op
+ self.select_lst[-1].str0 += '('
+ self.select_lst[-1].str1 += ') AS '
+ self.select_lst[-1].str1 += enc(t)
+ self.select_lst[-1].str1 += ')'
+
+ def give_str(self, sparqlIdx=-1):
+ return self.select_lst[sparqlIdx].give_str(), self.select_lst[sparqlIdx].select
+
+ def give_tmp(self, sparqlIdx=-1):
+ return self.select_lst[sparqlIdx].tmp
+
+ def change_tmpidx(self, ent1, sparqlIdx=-1):
+ # 将ent1的tmp_id更新
+ t = {}
+ t['attr'] = 'tmp'
+ t['id'] = self.num
+ self.num += 1
+ tmp = []
+ self.select_lst[sparqlIdx].select = [t]
+ self.select_lst[sparqlIdx].tmp.append(t)
+ self.select_lst[sparqlIdx].tmp.remove(ent1)
+ for line in self.select_lst[sparqlIdx].trip:
+ nline = line.replace(enc(ent1), enc(t))
+ tmp.append(nline)
+ self.select_lst[sparqlIdx].trip = tmp
+ for line in self.select_lst[sparqlIdx].state:
+ for i in line:
+ if i == ent1:
+ i = t
+ tmp = []
+ for line in self.select_lst[sparqlIdx].tail:
+ nline = line.replace(enc(ent1), enc(t))
+ tmp.append(nline)
+ self.select_lst[sparqlIdx].tail = tmp
+
+ self.select_lst[sparqlIdx].str2 = self.select_lst[sparqlIdx].str2.replace(
+ enc(ent1), enc(t))
diff --git a/swarms/tools/map/__init__.py b/swarms/tools/map/__init__.py
new file mode 100644
index 00000000..62dfd5e8
--- /dev/null
+++ b/swarms/tools/map/__init__.py
@@ -0,0 +1,12 @@
+
+from ..registry import register
+
+@register("bing_map")
+def bing_map():
+ from .bing_map.api import build_tool
+ return build_tool
+
+@register("baidu_map")
+def baidu_map():
+ from .baidu_map.baidu_api import build_tool
+ return build_tool
diff --git a/swarms/tools/map/baidu_map/baidu_api.py b/swarms/tools/map/baidu_map/baidu_api.py
new file mode 100644
index 00000000..c0d0b60b
--- /dev/null
+++ b/swarms/tools/map/baidu_map/baidu_api.py
@@ -0,0 +1,210 @@
+# -*- coding: utf-8 -*-
+import requests
+from typing import Tuple, Optional,List
+import json
+from urllib.parse import quote
+import urllib
+import hashlib
+import os
+import json
+from ...tool import Tool
+
+class BaiduMapAPI:
+ def __init__(self, ak: str, sk: str):
+ self.ak = ak
+ self.sk = sk
+ self.base_url = 'http://api.map.baidu.com'
+
+ def generate_url_with_sn(self, url: str) -> str:
+ """
+ 生成百度地图API请求中的SN码
+ :param url: API请求的URL
+ :return: SN码
+ """
+ query_str = url[len('http://api.map.baidu.com/') - 1:]
+ encoded_str = quote(query_str, safe="/:=&?#+!$,;'@()*[]")
+ raw_str = encoded_str + self.sk
+ sn = hashlib.md5(urllib.parse.quote_plus(raw_str).encode('utf-8')).hexdigest()
+ url_with_sn = f'{url}&sn={sn}'
+ return url_with_sn
+
+ def get_location(self, address: str) -> Optional[Tuple[float, float]]:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 根据地址获取地点经纬度, return the coordinates
+ :param address: 地址
+ :return: 地点经纬度 (纬度, 经度),若无法获取则返回None; return (latitute, longitute)
+ """
+ url = f'{self.base_url}/geocoding/v3/?address={address}&output=json&ak={self.ak}&callback=showLocation'
+ url = self.generate_url_with_sn(url)
+ response = requests.get(url)
+ json_text = response.text[len('showLocation&&showLocation('):-1]
+ data = json.loads(json_text)
+ if data['status'] == 0:
+ result = data['result']
+ location = result['location']
+ return location['lat'], location['lng']
+ else:
+ return None
+
+ def get_address_by_coordinates(self, lat: float, lng: float) -> Optional[str]:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 根据经纬度获取地点名称
+ :param lat: 纬度
+ :param lng: 经度
+ :return: 地点名称列表,包含经纬度,具体地址等信息,若无法获取则返回None
+ """
+ url = f'{self.base_url}/reverse_geocoding/v3/?location={lat},{lng}&output=json&ak={self.ak}'
+ url = self.generate_url_with_sn(url)
+ response = requests.get(url)
+ data = response.json()
+ if data['status'] == 0:
+ result = data['result']['formatted_address']
+ return result
+ else:
+ return None
+ def get_nearby_places(self, location: Tuple[float, float], radius: int, keyword: Optional[str] = '餐厅') -> List[str]:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 查询某位置附近的地点
+ :param location: 地点的经纬度 (纬度, 经度)
+ :param radius: 查询半径(单位:米)
+ :param keyword: 查询关键词(必选)
+ :return: 地点名称列表
+ """
+ lat, lng = location
+ url = f'{self.base_url}/place/v2/search?query={keyword}&location={lat},{lng}&radius={radius}&output=json&ak={self.ak}'
+ if keyword:
+ url += f'&query={keyword}'
+ url = self.generate_url_with_sn(url)
+
+ response = requests.get(url)
+ data = response.json()
+ if data['status'] == 0:
+ results = data['results']
+ place_names = [result['name'] for result in results]
+ return place_names
+ else:
+ return []
+ def get_route(self, origin: str, destination: str) -> Optional[List[str]]:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 查询两地之间的路线
+ :param origin: 起点地址
+ :param destination: 终点地址
+ :return: 路线描述列表,若无法获取则返回None
+ """
+ origin_location = self.get_location(origin)
+ destination_location = self.get_location(destination)
+ if origin_location and destination_location:
+ origin_lat, origin_lng = origin_location
+ destination_lat, destination_lng = destination_location
+ url = f'{self.base_url}/direction/v2/transit?origin={origin_lat},{origin_lng}&destination={destination_lat},{destination_lng}&output=json&ak={self.ak}'
+ url = self.generate_url_with_sn(url)
+ response = requests.get(url)
+ data = response.json()
+ if data['status'] == 0:
+ routes = data['result']['routes']
+ instructions = []
+ for route in routes:
+ for step in route['steps']:
+ for item in step:
+ instructions.append(item['instructions'])
+ return instructions
+ return None
+
+ def get_distance(self, origin: str, destination: str) -> float:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 查询两地之间的距离
+ :param origin: 起点地址
+ :param destination: 终点地址
+ :return: 两地之间距离(米)
+ """
+ origin_location = self.get_location(origin)
+ destination_location = self.get_location(destination)
+ if origin_location and destination_location:
+ origin_lat, origin_lng = origin_location
+ destination_lat, destination_lng = destination_location
+ url = f'{self.base_url}/direction/v2/transit?origin={origin_lat},{origin_lng}&destination={destination_lat},{destination_lng}&output=json&ak={self.ak}'
+ url = self.generate_url_with_sn(url)
+ response = requests.get(url)
+ data = response.json()
+ if data['status'] == 0:
+ distance = data['result']['routes'][0]['distance']
+ return distance
+ return None
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Map Info",
+ "Look up map information in China",
+ name_for_model="Baidu_Map",
+ description_for_model="Plugin for look up map information in China",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ KEY = config["subscription_key"]
+ SK = config["baidu_secret_key"]
+ baidu_map = BaiduMapAPI(KEY, SK)
+
+ @tool.get("/get_location")
+ def get_location(address: str) -> Optional[Tuple[float, float]]:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 根据地址获取地点经纬度, return the coordinates
+ :param address: 地址
+ :return: 地点经纬度 (纬度, 经度),若无法获取则返回None; return (latitute, longitute)
+ """
+ return baidu_map.get_location(address)
+
+ @tool.get("/get_address_by_coordinates")
+ def get_address_by_coordinates(lat: float, lng: float) -> Optional[str]:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 根据经纬度获取地点名称
+ :param lat: 纬度
+ :param lng: 经度
+ :return: 地点名称列表,包含经纬度,具体地址等信息,若无法获取则返回None
+ """
+ return baidu_map.get_address_by_coordinates(lat, lng)
+
+ @tool.get("/get_nearby_places")
+ def get_nearby_places(location: Tuple[float, float], radius: int, keyword: Optional[str] = '餐厅') -> List[str]:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 查询某位置附近的地点
+ :param location: 地点的经纬度 (纬度, 经度)
+ :param radius: 查询半径(单位:米)
+ :param keyword: 查询关键词(必选)
+ :return: 地点名称列表
+ """
+ return baidu_map.get_nearby_places(location, radius, keyword)
+
+ @tool.get("/get_route")
+ def get_route(self, origin: str, destination: str) -> Optional[List[str]]:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 查询两地之间的路线
+ :param origin: 起点地址
+ :param destination: 终点地址
+ :return: 路线描述列表,若无法获取则返回None
+ """
+ return baidu_map.get_route(origin, destination)
+
+ @tool.get("/get_distance")
+ def get_distance(self, origin: str, destination: str) -> float:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 查询两地之间的距离
+ :param origin: 起点地址
+ :param destination: 终点地址
+ :return: 两地之间距离(米)
+ """
+ return baidu_map.get_distance(origin, destination)
+
+ return tool
+
diff --git a/swarms/tools/map/baidu_map/readme.md b/swarms/tools/map/baidu_map/readme.md
new file mode 100644
index 00000000..43df7a1e
--- /dev/null
+++ b/swarms/tools/map/baidu_map/readme.md
@@ -0,0 +1,70 @@
+# Map Service
+
+Contributor: [Kunlun Zhu](https://github.com/Kunlun-Zhu)
+
+To Get Baidu API Key [BAIDU MAP API](https://lbsyun.baidu.com/apiconsole/key?application=key#/home)
+After You Get Baidu API Key, chose 'SN校验方式' and obtain your SK from the setting page
+
+# Map Info Tool
+
+This Markdown document provides an introduction to the `Map Info` function implemented in the given code. The function allows users to look up map information in China using the Baidu Map API. It provides functionality for retrieving location coordinates, addresses by coordinates, nearby places, routes between locations, and distances between locations.
+
+## Function Summary
+
+The `Map Info` function is a tool that enables users to look up map information in China. It utilizes the Baidu Map API to provide various features related to locations, addresses, nearby places, routes, and distances.
+
+## Usage
+
+To use the `Map Info` function, follow the steps below:
+
+1. Set up the required configuration parameters, including the `subscription_key` and `baidu_secret_key`.
+2. Call the desired endpoint with appropriate parameters to perform the specific map-related operation.
+3. The function returns the requested map information or relevant data.
+
+## Endpoints
+
+The `Map Info` tool provides the following endpoints:
+
+### `/get_location`
+
+- **Method**: GET
+- **Parameters**:
+ - `address`: The address to retrieve location coordinates for.
+- **Returns**: The coordinates (latitude, longitude) of the specified address, or None if the coordinates cannot be obtained.
+
+### `/get_address_by_coordinates`
+
+- **Method**: GET
+- **Parameters**:
+ - `lat`: The latitude coordinate.
+ - `lng`: The longitude coordinate.
+- **Returns**: The location name corresponding to the given coordinates, or None if the address cannot be obtained.
+
+### `/get_nearby_places`
+
+- **Method**: GET
+- **Parameters**:
+ - `location`: The location coordinates (latitude, longitude) to search nearby places for.
+ - `radius`: The search radius in meters.
+ - `keyword`: The keyword to filter the search results (default: '餐厅' for restaurants).
+- **Returns**: A list of nearby place names based on the specified location and search parameters.
+
+### `/get_route`
+
+- **Method**: GET
+- **Parameters**:
+ - `origin`: The origin address of the route.
+ - `destination`: The destination address of the route.
+- **Returns**: A list of route descriptions for the specified origin and destination, or None if the route cannot be obtained.
+
+### `/get_distance`
+
+- **Method**: GET
+- **Parameters**:
+ - `origin`: The origin address.
+ - `destination`: The destination address.
+- **Returns**: The distance in meters between the specified origin and destination.
+
+## Error Handling
+
+If any invalid options or exceptions occur during the execution of the function, appropriate error messages will be returned.
diff --git a/swarms/tools/map/baidu_map/test_baidu.py b/swarms/tools/map/baidu_map/test_baidu.py
new file mode 100644
index 00000000..5be066eb
--- /dev/null
+++ b/swarms/tools/map/baidu_map/test_baidu.py
@@ -0,0 +1,159 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'Map', "http://127.0.0.1:8079/tools/map/"
+
+class BaiduMapAPI:
+ def __init__(self, ak: str, sk: str):
+ self.ak = ak
+ self.sk = sk
+ self.base_url = 'http://api.map.baidu.com'
+
+ def generate_url_with_sn(self, url: str) -> str:
+ """
+ 生成百度地图API请求中的SN码
+ :param url: API请求的URL
+ :return: SN码
+ """
+ query_str = url[len('http://api.map.baidu.com/') - 1:]
+ encoded_str = quote(query_str, safe="/:=&?#+!$,;'@()*[]")
+ raw_str = encoded_str + self.sk
+ sn = hashlib.md5(urllib.parse.quote_plus(raw_str).encode('utf-8')).hexdigest()
+ url_with_sn = f'{url}&sn={sn}'
+ return url_with_sn
+
+ def get_location(self, address: str) -> Optional[Tuple[float, float]]:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 根据地址获取地点经纬度, return the coordinates
+ :param address: 地址
+ :return: 地点经纬度 (纬度, 经度),若无法获取则返回None; return (latitute, longitute)
+ """
+ url = f'{self.base_url}/geocoding/v3/?address={address}&output=json&ak={self.ak}&callback=showLocation'
+ url = self.generate_url_with_sn(url)
+ response = requests.get(url)
+ json_text = response.text[len('showLocation&&showLocation('):-1]
+ data = json.loads(json_text)
+ if data['status'] == 0:
+ result = data['result']
+ location = result['location']
+ return location['lat'], location['lng']
+ else:
+ return None
+
+ def get_address_by_coordinates(self, lat: float, lng: float) -> Optional[str]:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 根据经纬度获取地点名称
+ :param lat: 纬度
+ :param lng: 经度
+ :return: 地点名称列表,包含经纬度,具体地址等信息,若无法获取则返回None
+ """
+ url = f'{self.base_url}/reverse_geocoding/v3/?location={lat},{lng}&output=json&ak={self.ak}'
+ url = self.generate_url_with_sn(url)
+ response = requests.get(url)
+ data = response.json()
+ if data['status'] == 0:
+ result = data['result']['formatted_address']
+ return result
+ else:
+ return None
+ def get_nearby_places(self, location: Tuple[float, float], radius: int, keyword: Optional[str] = '餐厅') -> List[str]:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 查询某位置附近的地点
+ :param location: 地点的经纬度 (纬度, 经度)
+ :param radius: 查询半径(单位:米)
+ :param keyword: 查询关键词(必选)
+ :return: 地点名称列表
+ """
+ lat, lng = location
+ url = f'{self.base_url}/place/v2/search?query={keyword}&location={lat},{lng}&radius={radius}&output=json&ak={self.ak}'
+ if keyword:
+ url += f'&query={keyword}'
+ url = self.generate_url_with_sn(url)
+
+ response = requests.get(url)
+ data = response.json()
+ if data['status'] == 0:
+ results = data['results']
+ place_names = [result['name'] for result in results]
+ return place_names
+ else:
+ return []
+ def get_route(self, origin: str, destination: str) -> Optional[List[str]]:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 查询两地之间的路线
+ :param origin: 起点地址
+ :param destination: 终点地址
+ :return: 路线描述列表,若无法获取则返回None
+ """
+ origin_location = self.get_location(origin)
+ destination_location = self.get_location(destination)
+ if origin_location and destination_location:
+ origin_lat, origin_lng = origin_location
+ destination_lat, destination_lng = destination_location
+ url = f'{self.base_url}/direction/v2/transit?origin={origin_lat},{origin_lng}&destination={destination_lat},{destination_lng}&output=json&ak={self.ak}'
+ url = self.generate_url_with_sn(url)
+ response = requests.get(url)
+ data = response.json()
+ if data['status'] == 0:
+ routes = data['result']['routes']
+ instructions = []
+ for route in routes:
+ for step in route['steps']:
+ for item in step:
+ instructions.append(item['instructions'])
+ return instructions
+ return None
+
+ def get_distance(self, origin: str, destination: str) -> float:
+ """
+ 该函数仅适用于中国境内地图(内陆),this function only suitable for locations in Mainland China
+ 查询两地之间的距离
+ :param origin: 起点地址
+ :param destination: 终点地址
+ :return: 两地之间距离(米)
+ """
+ origin_location = self.get_location(origin)
+ destination_location = self.get_location(destination)
+ if origin_location and destination_location:
+ origin_lat, origin_lng = origin_location
+ destination_lat, destination_lng = destination_location
+ url = f'{self.base_url}/direction/v2/transit?origin={origin_lat},{origin_lng}&destination={destination_lat},{destination_lng}&output=json&ak={self.ak}'
+ url = self.generate_url_with_sn(url)
+ print(url)
+ response = requests.get(url)
+ data = response.json()
+ if data['status'] == 0:
+ distance = data['result']['routes'][0]['distance']
+ return distance
+ return None
+
+
+ak= 'Your Own AK'
+sk = 'Your OWN SK'
+
+api = BaiduMapAPI(ak, sk)
+location = api.get_location('清华大学')
+print(location)
+name = api.get_address_by_coordinates(location[0], location[1])
+print(name)
+if location:
+ nearby_places = api.get_nearby_places(location, radius=1000, keyword='餐馆')
+ print(nearby_places)
+ if nearby_places:
+ print(f'附近的餐馆有:{", ".join(nearby_places)}')
+ else:
+ print('附近没有找到相关地点')
+else:
+ print('无法获取地点经纬度')
+directions = api.get_route('北京市海淀区中关村', '北京市朝阳区国贸')
+print('北京市海淀区中关村、北京市朝阳区国贸两地路线')
+if directions:
+ for i, direction in enumerate(directions, start=1):
+ print(f'路线{i}:{direction}')
+else:
+ print('无法获取路线信息')
+distance = api.get_distance('北京市海淀区中关村', '北京市朝阳区国贸')
+print('北京市海淀区中关村、北京市朝阳区国贸两地距离为:', distance, '米')
\ No newline at end of file
diff --git a/swarms/tools/map/bing_map/api.py b/swarms/tools/map/bing_map/api.py
new file mode 100644
index 00000000..61dcc471
--- /dev/null
+++ b/swarms/tools/map/bing_map/api.py
@@ -0,0 +1,96 @@
+
+import requests
+import os
+import json
+from ...tool import Tool
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Map Info form bing map api",
+ "Look up map information",
+ name_for_model="BingMap",
+ description_for_model="Plugin for look up map information",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ KEY = config["subscription_key"]
+ BASE_URL = 'http://dev.virtualearth.net/REST/V1/'
+
+ @tool.get("/get_distance")
+ def get_distance(start:str, end:str):
+ """Get the distance between two locations in miles"""
+ # Request URL
+ url = BASE_URL + "Routes/Driving?o=json&wp.0=" + start + "&wp.1=" + end + "&key=" + KEY
+ # GET request
+ r = requests.get(url)
+ data = json.loads(r.text)
+ # Extract route information
+ route = data["resourceSets"][0]["resources"][0]
+ # Extract distance in miles
+ distance = route["travelDistance"]
+ return distance
+
+ @tool.get("/get_route")
+ def get_route(start:str, end:str):
+ """Get the route between two locations in miles"""
+ # Request URL
+ url = BASE_URL + "Routes/Driving?o=json&wp.0=" + start + "&wp.1=" + end + "&key=" + KEY
+ # GET request
+ r = requests.get(url)
+ data = json.loads(r.text)
+ # Extract route information
+ route = data["resourceSets"][0]["resources"][0]
+ itinerary = route["routeLegs"][0]["itineraryItems"]
+ # Extract route text information
+ route_text = []
+ for item in itinerary:
+ if "instruction" in item:
+ route_text.append(item["instruction"]["text"])
+ return route_text
+
+ @tool.get("/get_coordinates")
+ def get_coordinates(location:str):
+ """Get the coordinates of a location"""
+ url = BASE_URL + "Locations"
+ params = {
+ "query": location,
+ "key": KEY
+ }
+ response = requests.get(url, params=params)
+ json_data = response.json()
+ coordinates = json_data["resourceSets"][0]["resources"][0]["point"]["coordinates"]
+ return coordinates
+
+ @tool.get("/search_nearby")
+ def search_nearyby(search_term:str="restaurant", latitude:float = 0.0, longitude:float = 0.0, places:str='unknown', radius:int = 5000): # radius in meters
+ """Search for places nearby a location, within a given radius, and return the results into a list"""
+ url = BASE_URL + "LocalSearch"
+ if places != 'unknown':
+ latitude = get_coordinates(places)[0]
+ longitude = get_coordinates(places)[1]
+ # Build the request query string
+ params = {
+ "query": search_term,
+ "userLocation": f"{latitude},{longitude}",
+ "radius": radius,
+ "key": KEY
+ }
+
+ # Make the request
+ response = requests.get(url, params=params)
+
+ # Parse the response
+ response_data = json.loads(response.content)
+
+ # Get the results
+ results = response_data["resourceSets"][0]["resources"]
+ addresses = []
+ for result in results:
+ name = result["name"]
+ address = result["Address"]["formattedAddress"]
+ addresses.append(f"{name}: {address}")
+ return addresses
+
+ return tool
diff --git a/swarms/tools/map/bing_map/readme .md b/swarms/tools/map/bing_map/readme .md
new file mode 100644
index 00000000..b0d00a04
--- /dev/null
+++ b/swarms/tools/map/bing_map/readme .md
@@ -0,0 +1,61 @@
+# Map Service
+
+Contributor: [Kunlun Zhu](https://github.com/Kunlun-Zhu)
+
+# Map Info from Bing Map API
+
+This Markdown document provides an introduction to the `Map Info` function implemented in the given code. The function allows users to look up map information using the Bing Map API. It provides functionality for retrieving distances between locations, routes between locations, coordinates of a location, and searching for nearby places.
+
+## Function Summary
+
+The `Map Info` function is a tool that enables users to look up map information using the Bing Map API. It provides features such as retrieving distances between locations, routes between locations, coordinates of a location, and searching for nearby places.
+
+## Usage
+
+To use the `Map Info` function, follow the steps below:
+
+1. Set up the required configuration parameters, including the `subscription_key`.
+2. Call the desired endpoint with appropriate parameters to perform the specific map-related operation.
+3. The function returns the requested map information or relevant data.
+
+## Endpoints
+
+The `Map Info` tool provides the following endpoints:
+
+### `/get_distance`
+
+- **Method**: GET
+- **Parameters**:
+ - `start`: The starting location address or coordinates.
+ - `end`: The destination location address or coordinates.
+- **Returns**: The distance in miles between the specified start and end locations.
+
+### `/get_route`
+
+- **Method**: GET
+- **Parameters**:
+ - `start`: The starting location address or coordinates.
+ - `end`: The destination location address or coordinates.
+- **Returns**: A list of route instructions for the specified start and end locations.
+
+### `/get_coordinates`
+
+- **Method**: GET
+- **Parameters**:
+ - `location`: The location to retrieve coordinates for.
+- **Returns**: The coordinates (latitude, longitude) of the specified location.
+
+### `/search_nearby`
+
+- **Method**: GET
+- **Parameters**:
+ - `search_term`: The keyword to search for nearby places (default: "restaurant").
+ - `latitude`: The latitude coordinate of the location (default: 0.0).
+ - `longitude`: The longitude coordinate of the location (default: 0.0).
+ - `places`: The location to search nearby places for. If specified, latitude and longitude will be automatically retrieved (default: 'unknown').
+ - `radius`: The search radius in meters (default: 5000).
+- **Returns**: A list of nearby places based on the specified parameters.
+
+## Error Handling
+
+If any invalid options or exceptions occur during the execution of the function, appropriate error messages will be returned.
diff --git a/swarms/tools/map/bing_map/test.py b/swarms/tools/map/bing_map/test.py
new file mode 100644
index 00000000..691bacb2
--- /dev/null
+++ b/swarms/tools/map/bing_map/test.py
@@ -0,0 +1,11 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'Map', "http://127.0.0.1:8079/tools/map/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("What's the driving distance from Beijing to Shanghai?")
\ No newline at end of file
diff --git a/swarms/tools/meta_analysis/__init__.py b/swarms/tools/meta_analysis/__init__.py
new file mode 100644
index 00000000..740bd786
--- /dev/null
+++ b/swarms/tools/meta_analysis/__init__.py
@@ -0,0 +1,7 @@
+from ..registry import register
+
+@register("meta_analysis")
+def meta_analysis():
+ from .api import build_tool
+ return build_tool
+
diff --git a/swarms/tools/meta_analysis/api.py b/swarms/tools/meta_analysis/api.py
new file mode 100644
index 00000000..24f2f3c4
--- /dev/null
+++ b/swarms/tools/meta_analysis/api.py
@@ -0,0 +1,544 @@
+import requests
+from pydantic import BaseModel
+import numpy as np
+from bs4 import BeautifulSoup
+import json
+from ..tool import Tool
+from typing import List, Optional, Union
+from tenacity import retry, wait_random_exponential, stop_after_attempt
+from numpy import dot
+from numpy.linalg import norm
+import openai
+import pickle
+
+@retry(wait=wait_random_exponential(min=1, max=20), stop=stop_after_attempt(6))
+def generate_response(prompt, token=2500):
+ response = openai.Completion.create(
+ model='text-davinci-003',
+ prompt=prompt,
+ temperature=0.1,
+ max_tokens=min(2500,token),
+ )
+ return response['choices'][0]['text']
+
+@retry(wait=wait_random_exponential(min=1, max=20), stop=stop_after_attempt(6))
+def get_embedding(text: str, model="text-embedding-ada-002"):
+ return openai.Embedding.create(input=[text], model=model)["data"][0]["embedding"]
+
+standard = ['type of study', 'purpose', 'challenge', 'dataset', 'task', 'design', 'method', 'backbone', 'baseline', 'model', 'participant', 'patient', 'intervention', 'group', 'duration', 'measurement', 'performance', 'result', 'conclusion', 'safety' ]
+stan_emb = []
+for item in standard:
+ stan_emb.append(np.array(get_embedding(item)))
+
+def dense(topic, docs):
+ try:
+ top_emb = np.array(get_embedding(topic))
+ except Exception as e:
+ return [-1]
+ nm = norm(top_emb)
+ doc_sim = []
+ for ky in docs.keys():
+ try:
+ if docs[ky] is None:
+ tmp = [0]*len(top_emb)
+ elif len(docs[ky].split(' '))>100:
+ tmp = get_embedding(docs[ky][0])
+ else:
+ tmp = [0]*len(top_emb)
+ except Exception as e:
+ tmp = [0]*len(top_emb)
+ sim = dot(top_emb, np.array(tmp))/(nm*norm(np.array(tmp))+1e-5)
+ doc_sim.append(sim)
+ doc_sim = np.array(doc_sim)
+ return doc_sim
+
+def semantic_query(term, retmax=100):
+ if retmax>100:
+ print('semantic searching fewer than 100!')
+ retmax = 100
+ for cnt in range(10):
+ url = 'https://api.semanticscholar.org/graph/v1/paper/search?query='+term.replace(' ', '+')+'&limit='+str(retmax)+'&fields=title,authors,abstract'
+ re = requests.get(url)
+ results = json.loads(re.text)
+ docs = {}
+ if 'data' in results:
+ break
+ tmp = 0
+ while tmp<10000:
+ tmp+=1
+ if 'data' not in results:
+ return docs
+ for item in results['data']:
+ if item['abstract'] is not None:
+ docs[item['title']] = item['abstract']
+ return docs
+
+def draw_term(topic):
+ prp = """Concatenate the searching keywords (fewer than 5) in the topic with '+'. For example, when given 'experiments about the harmness of using insulin for teenagers to treat diabetes', answer me with 'insulin+harmness+diabetes+teenager'; when given 'The Operational Situation of Bookstores after Digitalization of Reading', answer me with 'bookstore+digitalization'. Topic: """+topic+'. Give me the answer with no extra words. '
+ response = generate_response(prp)
+ terms = response.replace('\n', ' ').split('+')
+ st = ''
+ for term in terms[:4]:
+ st+=term+'+'
+ print(st)
+ return st[:-1]
+
+def initial(topic, term=None, ret=100):
+ if term is None:
+ term = draw_term(topic)
+ docs = semantic_query(term.replace(' ', '+')[:50], ret)
+ sims = dense(topic, docs)
+ return docs,sims
+
+def split_question(criteria):
+ prp = """Please decompose the complex query into a series of simple questions. You can refer to these examples: [QUERY] Randomized controlled and controlled clinical trials which evaluated individual education for adults with type 2 diabetes. The intervention was individual face-to-face patient education while control individuals received usual care, routine treatment or group education. Only studies that assessed outcome measures at least six months from baseline were included. [QUESTIONS] ###1 Is a randomised controlled trial (RCT) or a controlled clinical trial conducted in the article? ###2 Does the article compare individual face-to-face patient education versus usual care, routine treatment or group education? ###3 Are the patients in the article adults with type 2 diabetes? ###4 Does the article outcome measure at least six months from baseline? [QUERY] Studies were included if they conduct experiments of comparing graph neural networks with other deep learning models. Performance on molecular datasets is reported. [QUESTIONS] ###1 Does the article conduct experiments of graph neural networks? ###2 Does the article compare different deep learning models? ###3 Does the article report performance on molecular datasets?
+ Now the QUERY is:
+ """
+ prp+=criteria
+ prp+=" What are the decomposed QUESTIONS? "
+ response = generate_response(prp)
+ orig = response.strip('\n')
+ #print('Split Questions: '+orig)
+ if orig.find('###')==-1:
+ cnt = 1
+ while orig.find(str(cnt)+'. ')>-1:
+ orig = orig.replace(str(cnt)+'. ', '###'+str(cnt)+' ')
+ segs = orig.split('###')
+ ques = []
+ for seg in segs:
+ if len(seg.split(' '))<6:
+ continue
+ if seg[0].isdigit()==False:
+ continue
+ ques.append(seg[2:])
+ return ques
+
+def judge(pred):
+ if pred.find('No. ')>-1 or pred.find('No, ')>-1 or pred.find('are not')>-1 or pred.find('is not')>-1 or pred.find('does not')>-1 or pred.find('do not')>-1:
+ return 0
+ else:
+ return 1
+
+def check_doc(til, doc, ques):
+ string = ""
+ for idx, que in enumerate(ques):
+ string+=str(idx+1)+'. '+que+' Why? '
+ prp="""Read the following article and answer the questions.
+ [Article]
+
+ """
+ prp+=til+'. '+doc[:10000]
+ prp+="[Questions] "+string
+ lt = len(prp.split(' '))
+ response = generate_response(prp, 4000-2*lt)
+ orig = response.strip('\n')
+ #print('Title: ', til, ', Check: ', orig.replace('\n', ' '))
+ cnt = 2
+ preds = []
+ orig = ' '+orig.replace('\n', ' ')
+ if orig.find(' 1. ')>-1:
+ orig = orig.split(' 1. ')[-1]
+ while orig.find(' '+str(cnt)+'. ')>-1:
+ pred = orig.split(' '+str(cnt)+'. ')[0]
+ preds.append(pred)
+ orig = orig.split(' '+str(cnt)+'. ')[-1]
+ cnt+=1
+ preds.append(orig)
+ else:
+ preds = [orig]
+ sm = 0
+ prob = []
+ for idx,pred in enumerate(preds):
+ if judge(pred):
+ sm+=1
+ else:
+ if idx0.85:
+ item = standard[sr]
+ tag = 1
+ return item, tag
+
+def convert(table0):
+ dic = {}
+ table = []
+ for tab in table0:
+ if tab.find('|')==-1:
+ if len(tab.split(':'))==2:
+ tab = '| '+tab.split(':')[0]+' | '+tab.split(':')[1]+' |'
+ else:
+ continue
+ if tab.strip(' ')[0]!='|':
+ tab = '|'+tab
+ if tab.strip(' ')[-1]!='|':
+ tab = tab+'|'
+ table.append(tab)
+ if len(table)<2:
+ return dic
+ segs = table[0].strip('\n').strip(' ')[1:-1].split('|')
+ if len(segs)<2:
+ return dic
+ tag = 1
+ for seg in segs:
+ wd,tmptag = deep_reduce(seg)
+ if tmptag==0:
+ tag = 0
+ break
+ if tag and len(table)>2:
+ vals = table[2].strip('\n').strip(' ')[1:-1].split('|')
+ if len(vals)!=len(segs):
+ return {}
+ for idx in range(len(segs)):
+ wd,tmptag = deep_reduce(segs[idx])
+ dic[wd] = vals[idx]
+ return dic
+ for line in table:
+ wds = line.strip('\n').strip(' ')[1:-1].split('|')
+ if len(wds)!=2:
+ continue
+ wd,tmptag = deep_reduce(wds[0])
+ if tmptag:
+ dic[wd] = wds[1]
+ return dic
+
+def combine(tables, tables1=None, crit=None):
+ extra_query = []
+ if tables1 is not None:
+ if len(tables)!=len(tables1):
+ print('error')
+ else:
+ for idx in range(len(tables)):
+ if tables1[idx] is not None:
+ tables[idx].update(tables1[idx])
+ bigtab = {}
+ kys = []
+ for tab in tables:
+ kys+=list(tab.keys())
+ kys = set(kys)
+ if crit is not None:
+ for jdx,tab in enumerate(tables):
+ prp = ''
+ for ky in kys:
+ if ky not in tab:
+ prp+=ky+', '
+ if prp=='':
+ extra_query.append('')
+ else:
+ ask = 'We want to explore '+crit+'. Read the following article and list the '+prp[:-2]+' of the trial into a concise markdown table. Article: '
+ extra_query.append(ask)
+ for ky in kys:
+ line = ' | '
+ for tab in tables:
+ if ky not in tab:
+ line+='N/A'
+ else:
+ line+=tab[ky]
+ line+=' | '
+ bigtab[ky] = line
+ return bigtab, extra_query
+
+def get_table(pth, crit):
+ lines = open(pth).readlines()[1:]
+ tmprec = []
+ rec = []
+ for line in lines:
+ if line[:7]=='Table #':
+ rec.append(tmprec)
+ tmprec = []
+ else:
+ tmprec.append(line.strip('\n'))
+ rec.append(tmprec)
+ dicrec = []
+ for tab in rec:
+ dicrec.append(convert(tab))
+ orig_tab, extra = combine(dicrec, crit=crit)
+ return orig_tab, dicrec, extra
+
+def final_table(pth, dicrec):
+ lines = open(pth).readlines()[1:]
+ tmprec = []
+ rec = []
+ for line in lines:
+ if line[:7]=='Table #':
+ rec.append(tmprec)
+ tmprec = []
+ else:
+ tmprec.append(line.strip('\n'))
+ rec.append(tmprec)
+ dicrec1 = []
+ for tab in rec:
+ if len(tab)==0:
+ dicrec1.append(None)
+ else:
+ dicrec1.append(convert(tab))
+ final_tab, extra = combine(dicrec, tables1=dicrec1)
+ return final_tab
+
+def print_table(tab):
+ allcon = ''
+ kys = list(tab.keys())
+ if len(kys)==0:
+ return allcon
+ lt = len(tab[kys[0]].strip(' | ').split('|'))
+ header = ' | Elements | '
+ splitter = ' | ----- | '
+ for i in range(lt):
+ header+=str(i+1)+' | '
+ splitter+='---------- | '
+ print(header)
+ print(splitter)
+ allcon+=header+'\n'
+ allcon+=splitter+'\n'
+ for ky in kys:
+ line = ' | '+ky+tab[ky]
+ print(line)
+ allcon+=line+'\n'
+ return allcon
+
+class GetNameResponse(BaseModel):
+
+ """name list"""
+ names: List[str]
+
+class GetStructureResponse(BaseModel):
+
+ """structure list"""
+ state : int
+ content : Optional[str] = None
+
+class GetIDResponse(BaseModel):
+ state : int
+ content : Union[str, List[str]]
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Meta Analysis Plugin",
+ description="Analyzing literatures",
+ name_for_model="Meta Analysis",
+ description_for_model="Plugin for searching and analyzing literatures. All input should be a json like {'input': 'some input'}. Please use the provided questions and search step by step.",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com",
+ )
+ QRY = 'https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/'
+
+ @tool.get("/search_literature")
+ def search_literature( topic: str, maxnum: int, term: str ):
+ """search for the given topic literatures in the database and return the path of literatures file and the number of literatures. the searching term should be key words in the topic (2-5 words). the number of literatures will be less than maxnum (recommend 30) """
+ topic = topic.replace('AND', '').replace('OR', '')
+ if len(topic)<4:
+ term = topic
+ else:
+ term = term.replace('AND', '').replace('OR', '')
+ if len(term.split(' '))>4:
+ term = None
+ retmax = min(maxnum,50)
+ if retmax==1:
+ newdocs, sims = initial(topic, term, 1)
+ else:
+ docs, sims = initial(topic, term)
+ srts = np.argsort(-sims)
+ kys = list(docs.keys())
+ newdocs = {}
+ for sr in srts:
+ if sims[sr]<0.72 and len(newdocs)>0:
+ break
+ if len(newdocs)>=retmax:
+ break
+ newdocs[kys[sr]] = docs[kys[sr]]
+ pickle.dump(newdocs, open('searchdoc_'+topic.replace(' ', '_')[:50]+'.pkl', 'wb'))
+ js = {}
+ js['literature_path'] = 'searchdoc_'+topic.replace(' ', '_')[:50]+'.pkl'
+ js['literature_number'] = len(newdocs)
+ return js
+
+ @tool.get("/split_criteria")
+ def split_criteria( criteria:str ):
+ """split the screening requirements in the criteria of the literatures into a series of simple yes/no problems, and return the path of the splitted questions. """
+ ques = split_question(criteria)
+ np.save('split_ques_'+criteria.replace(' ', '_')[:50]+'.npy', ques)
+ js = {'question number': len(ques), 'question_path': 'split_ques_'+criteria.replace(' ', '_')[:50]+'.npy'}
+ return js
+
+ @tool.get("/literature_filter")
+ def literature_filter( concat_path:str ):
+ """ Check each literatures saved in the literature path according to the questions saved in the question path, and return the literatures that match the requirements. Concat path is the concatenated string of literature path and question path connected with '&&&'. """
+ if len(concat_path.split('&&&'))!=2:
+ js = {'error': "input path cannot recognize the literature path and the question path. please input 'LITERATURE_PATH&&&QUESTION_PATH'. "}
+ return js
+ liter_pth = concat_path.split('&&&')[0].strip(' ')
+ try:
+ docs = pickle.load(open(liter_pth, 'rb'))
+ except Exception as e:
+ js = {'error': 'cannot open the given literature path!'}
+ return js
+ ques_pth = concat_path.split('&&&')[1].strip(' ')
+ try:
+ ques = np.load(ques_pth, allow_pickle=True)
+ except Exception as e:
+ js = {'error': 'cannot open the given question path!'}
+ return js
+ tmp = []
+ for ky in docs:
+ sm, prob = check_doc(ky, docs[ky], ques)
+ tmp.append(sm)
+ tmp = np.array(tmp)
+ srts = np.argsort(-tmp)
+ finalrecs = []
+ kys = list(docs.keys())
+ for sr in srts:
+ if tmp[sr]<0.6 and len(finalrecs)>0:
+ break
+ if len(finalrecs)>9:
+ break
+ finalrecs.append(kys[sr])
+ finaldocs = {}
+ for ky in finalrecs:
+ finaldocs[ky] = docs[ky]
+ pickle.dump(finaldocs, open('final_'+liter_pth, 'wb'))
+ js = {'number of matched literatures': len(finaldocs),'matched_literature_path': 'final_'+liter_pth}
+ return js
+
+ @tool.get('/draw_table')
+ def draw_table( literature_path_and_topic:str):
+ """extract the important elements of the literatures recorded in the literature path and return the path of table records. concatenate the literature path and the analysis topic with '&&&' as the input.
+ """
+ if len(literature_path_and_topic.split('&&&'))!=2:
+ js = {'error': "input path cannot recognize the literature path and the topic. please input 'LITERATURE_PATH&&&TOPIC'. "}
+ return js
+ literature_path, topic = literature_path_and_topic.split('&&&')
+ try:
+ finaldocs = pickle.load(open(literature_path.strip(' '), 'rb'))
+ except Exception as e:
+ js = {'error': 'cannot open the given literature path!'}
+ return js
+ draw_subtable('subtable_'+literature_path.strip(' ').strip('.pkl')+'.txt', topic, finaldocs)
+ js = {'table_path': 'subtable_'+literature_path.strip('.pkl')+'.txt'}
+ return js
+
+ @tool.get('/combine_table')
+ def combine_table( literature_path: str, table_path: str, topic: str):#( table_path_and_topic: str ):
+ """combine several tables recorded in the table path into one comprehensive record table and return. give the literature path, table path and the exploring topic as the input.
+ """
+ #if len(table_path_and_topic.split('&&&'))!=2:
+ # js = {'error': "input path cannot recognize the table path and the topic. please input 'TABLE_PATH&&&TOPIC'. "}
+ # return js
+ #table_path, topic = table_path_and_topic.split('&&&')
+ try:
+ finaldocs = pickle.load(open(literature_path, 'rb'))
+ except Exception as e:
+ js = {'error': "cannot open the given literature path!"}
+ return js
+ orig_tab, dicrec, extra = get_table(table_path.strip(' '), topic)
+ extra_draw('extra_'+table_path.strip(' '), finaldocs, extra)
+ final_tab = final_table('extra_'+table_path.strip(' '), dicrec)
+ allcon = print_table(final_tab)
+ fw = open('big_'+table_path, 'w')
+ fw.write(allcon)
+ fw.close()
+ js = {'big table path': 'big_'+table_path}
+ return js
+
+ @tool.get('/generate_summary')
+ def generate_summary(topic: str, table_path: str):
+ """given the exploring topic and the record table path of the literatures, this tool generates a paragraph of summary.
+ """
+ try:
+ table = open(table_path).read()
+ except Exception as e:
+ js = {'error': 'cannot open the table file!'}
+ return js
+ con = draw_conclusion(topic, table)
+ js = {'summary': con}
+ return js
+
+ @tool.get('/print_literature')
+ def print_literature(literature_path: str, print_num: int):
+ """
+ given the literature path and number that are required to display, this tool returns the title and abstract of the literature.
+ """
+ try:
+ docs = pickle.load(open(literature_path, 'rb'))
+ except Exception as e:
+ js = {'error':'cannot open the literature file!'}
+ return js
+ try:
+ retmax = max(1,min(5,int(print_num)))
+ except Exception as e:
+ js = {'error':'illegal number of printing!'}
+ return js
+ kys = list(docs.keys())[:retmax]
+ print_docs = []
+ for ky in kys:
+ print_docs.append({'Title':ky, 'Abstract':docs[ky]})
+ js = {'literature_num':len(print_docs), 'content':print_docs}
+ return js
+
+ @tool.get('/print_tablefile')
+ def print_tablefile( table_path: str ):
+ """
+ given the table file path that are required to display, this tool reads the file and returns the string of the table.
+ """
+ try:
+ con = open(table_path).read()
+ except Exception as e:
+ js = {'error': 'cannot open the table file!'}
+ return js
+ js = {'table string': con}
+ return js
+
+
+ return tool
diff --git a/swarms/tools/meta_analysis/readme.md b/swarms/tools/meta_analysis/readme.md
new file mode 100644
index 00000000..3d53d3f2
--- /dev/null
+++ b/swarms/tools/meta_analysis/readme.md
@@ -0,0 +1,8 @@
+# Meta Analysis
+
+Contributor: [Zheni Zeng](https://github.com/Ellenzzn)
+
+
+
+A tool for searching and analyzing literatures
+
diff --git a/swarms/tools/meta_analysis/test.py b/swarms/tools/meta_analysis/test.py
new file mode 100644
index 00000000..5dac6b2f
--- /dev/null
+++ b/swarms/tools/meta_analysis/test.py
@@ -0,0 +1,14 @@
+
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'meta_analysis', "http://127.0.0.1:8079/tools/meta_analysis/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("How's the treatment for COVID-19 of Lianhua Qingwen? Answer this question by analyzing literatures that meet this criteria: trials are conducted for comparing Lianhua Qingwen with other conventional treatments for Coronavirus disease. Patients are adults with COVID-19 diagnosis.")
+agent("Recommend some literatures about trials of treating COVID-19 with Lianhua Qingwen for me. Print their title/abstract. ")
+agent.run(['Help me analyze trials of Lianhua Qingwen for treating COVID-19, and Paxlovid for treating COVID-19 separately, and then compare them.'])
diff --git a/swarms/tools/office/__init__.py b/swarms/tools/office/__init__.py
new file mode 100644
index 00000000..1338559e
--- /dev/null
+++ b/swarms/tools/office/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("office-ppt")
+def office_ppt():
+ from .ppt import build_tool
+ return build_tool
diff --git a/swarms/tools/office/ppt/__init__.py b/swarms/tools/office/ppt/__init__.py
new file mode 100644
index 00000000..bc824f38
--- /dev/null
+++ b/swarms/tools/office/ppt/__init__.py
@@ -0,0 +1 @@
+from .api import build_tool
\ No newline at end of file
diff --git a/swarms/tools/office/ppt/api.py b/swarms/tools/office/ppt/api.py
new file mode 100644
index 00000000..beb482fb
--- /dev/null
+++ b/swarms/tools/office/ppt/api.py
@@ -0,0 +1,150 @@
+import collections
+import collections.abc
+from pptx import Presentation
+import requests
+import os
+import time
+import json
+import sys
+
+from ...tool import Tool
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Slides Making",
+ "This tool allows you to create ppt slides with text, paragraph, images, with good looking styles",
+ name_for_model="Slides Making",
+ description_for_model="This tool allows you to create ppt slides with text, paragraph, images, with good looking styles",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="bokesyo2000@gmail.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ CWD = os.getcwd() # path of current working directory
+ LIB_DIR = os.path.dirname(__file__) # path of library
+ TEMPLATE_DIR = os.path.join(LIB_DIR, "templates") # path of templates
+ CACHE_DIR = os.path.join(CWD, "cache") # path of cache_dir
+ IMAGE_BED_PATTERN = 'https://source.unsplash.com/featured/?{}' # url pattern for image bed
+
+ if not os.path.exists(CACHE_DIR):
+ os.makedirs(CACHE_DIR)
+ # print(f"[system]: office.ppt: created cache directory: {CACHE_DIR}")
+
+ # print(f"[system]: office.ppt_functional: TEMPLATE_DIR = {TEMPLATE_DIR}")
+ # print(f"[system]: office.ppt_functional: CACHE_DIR = {CACHE_DIR}")
+
+ ppt_file = None # a pointer to the powerpoint object
+
+ def _return_timestamp():
+ return str(time.time())
+
+ def runtime_update_docstring(new_docstring: str) -> callable:
+ """ This is a decorator that can help update the docstring at runtime
+ """
+ def decorator(func: callable) -> callable:
+ func.__doc__ = new_docstring
+ return func
+ return decorator
+
+ # Update the template list, then update the docstring of create_file
+ ppt_template_names = []
+ all_files = os.listdir(TEMPLATE_DIR)
+ for file_name in all_files:
+ if file_name.lower().endswith('.pptx'):
+ ppt_template_names.append(file_name.split(".")[0])
+ updated_docstring_create_file = f"""create_file(theme:str) -> None: Create a pptx file with specific theme, available thems: {' / '.join(ppt_template_names)}."""
+
+ @tool.get("/create_file")
+ @runtime_update_docstring(updated_docstring_create_file)
+ def create_file(theme:str) -> str:
+ """create_file(theme:str) -> None Create a pptx file with specific themes. Available themes:
+ """
+ nonlocal ppt_file
+ ppt_file = Presentation(os.path.join(TEMPLATE_DIR, f"{theme}.pptx"))
+ return "created a ppt file."
+
+ @tool.get("/get_image")
+ def get_image(keywords:str) -> str:
+ """get_image(keywords:str) -> str Get an image given comma separated keywords, return the image path.
+ """
+ picture_url = IMAGE_BED_PATTERN.format(keywords)
+ response = requests.get(picture_url)
+ img_local_path = os.path.join(CACHE_DIR, f"{_return_timestamp()}.jpg")
+ with open(img_local_path, 'wb') as f:
+ f.write(response.content)
+ return img_local_path
+
+ @tool.get("/add_first_page")
+ def add_first_page(title:str, subtitle:str) -> str:
+ """add_first_page(title:str, subtitle:str) -> None: Add the first page of ppt.
+ """
+ nonlocal ppt_file
+ slide = ppt_file.slides.add_slide(ppt_file.slide_layouts[0]) # layout for first page (title and subtitle only)
+ title_shape = slide.shapes.title
+ subtitle_shape = slide.placeholders[1]
+
+ title_shape.text = title
+ subtitle_shape.text = subtitle
+
+ return "added page"
+
+ @tool.get("/add_text_page")
+ def add_text_page(title:str, bullet_items:str) -> str:
+ """add_text_page(title:str, bullet_items:str) -> None: Add text page (outline page is also applied).
+ bullet_items should be string, for multiple bullet items, please use [SPAN] to separate them.
+ """
+ nonlocal ppt_file
+ slide = ppt_file.slides.add_slide(ppt_file.slide_layouts[1])
+ title_shape = slide.shapes.title
+ body_shape = slide.placeholders[1]
+
+ title_shape.text = title
+
+ tf = body_shape.text_frame
+
+ bullet_items = bullet_items.split("[SPAN]")
+ for bullet_item in bullet_items:
+ bullet_item_strip = bullet_item.strip()
+ p = tf.add_paragraph()
+ p.text = bullet_item_strip
+ p.level = 1
+
+ return "added page"
+
+ @tool.get("/add_text_image_page")
+ def add_text_image_page(title:str, bullet_items:str, image:str) -> str:
+ """add_text_image_page(title:str, bullet_items:str, image:str) -> None: Add a text page with one image. (image should be a path)
+ bullet_items should be string, for multiple bullet items, please use [SPAN] to separate them.
+ """
+ nonlocal ppt_file
+ slide = ppt_file.slides.add_slide(ppt_file.slide_layouts[3])
+ title_shape = slide.shapes.title
+ title_shape.text = title
+
+ body_shape = slide.placeholders[1]
+
+ tf = body_shape.text_frame
+ bullet_items = bullet_items.split("[SPAN]")
+ for bullet_item in bullet_items:
+ bullet_item_strip = bullet_item.strip()
+ p = tf.add_paragraph()
+ p.text = bullet_item_strip
+ p.level = 1
+
+ image_shape = slide.placeholders[2]
+ slide.shapes.add_picture(image, image_shape.left, image_shape.top, image_shape.width, image_shape.height)
+
+ return "added page"
+
+ @tool.get("/submit_file")
+ def submit_file() -> None:
+ """submit_file() -> None: When all steps done, YOU MUST use submit_file() to submit your work.
+ """
+ nonlocal ppt_file
+ file_path = os.path.join(CACHE_DIR, f"{_return_timestamp()}.pptx")
+ ppt_file.save(file_path)
+ # retreival_url = upload_file(file_path)
+
+ return f"submitted. view ppt at {file_path}"
+
+ return tool
diff --git a/swarms/tools/office/ppt/readme.md b/swarms/tools/office/ppt/readme.md
new file mode 100644
index 00000000..2f3b44b0
--- /dev/null
+++ b/swarms/tools/office/ppt/readme.md
@@ -0,0 +1,3 @@
+# Office slides
+
+Contributor: [Bokai Xu](https://github.com/bokesyo)
\ No newline at end of file
diff --git a/swarms/tools/office/ppt/templates/flat.pptx b/swarms/tools/office/ppt/templates/flat.pptx
new file mode 100644
index 00000000..8a6260ab
Binary files /dev/null and b/swarms/tools/office/ppt/templates/flat.pptx differ
diff --git a/swarms/tools/office/ppt/templates/green.pptx b/swarms/tools/office/ppt/templates/green.pptx
new file mode 100644
index 00000000..e63213c2
Binary files /dev/null and b/swarms/tools/office/ppt/templates/green.pptx differ
diff --git a/swarms/tools/office/ppt/templates/orange.pptx b/swarms/tools/office/ppt/templates/orange.pptx
new file mode 100644
index 00000000..3ca6f860
Binary files /dev/null and b/swarms/tools/office/ppt/templates/orange.pptx differ
diff --git a/swarms/tools/office/ppt/templates/tech.pptx b/swarms/tools/office/ppt/templates/tech.pptx
new file mode 100644
index 00000000..f84cab39
Binary files /dev/null and b/swarms/tools/office/ppt/templates/tech.pptx differ
diff --git a/swarms/tools/python/__init__.py b/swarms/tools/python/__init__.py
new file mode 100644
index 00000000..de3491b8
--- /dev/null
+++ b/swarms/tools/python/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("python")
+def python():
+ from .api import build_tool
+ return build_tool
diff --git a/swarms/tools/python/api.py b/swarms/tools/python/api.py
new file mode 100644
index 00000000..1ce86a5e
--- /dev/null
+++ b/swarms/tools/python/api.py
@@ -0,0 +1,60 @@
+import requests
+import json
+from ..tool import Tool
+import os
+
+import sys
+from io import StringIO
+from typing import Dict, Optional
+
+
+class PythonREPL:
+ """Simulates a standalone Python REPL."""
+ def __init__(self) -> None:
+ self.globals: Optional[Dict] = globals()
+ self.locals: Optional[Dict] = None
+
+ def run(self, command: str) -> str:
+ """Run command with own globals/locals and returns anything printed."""
+ old_stdout = sys.stdout
+ sys.stdout = mystdout = StringIO()
+ try:
+ exec(command, self.globals, self.locals)
+ sys.stdout = old_stdout
+ output = mystdout.getvalue()
+ except Exception as e:
+ sys.stdout = old_stdout
+ output = repr(e)
+ print(output)
+ return output
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Python REPL",
+ "Run python code",
+ name_for_model="Python REPL",
+ description_for_model=(
+ "A Python shell. Use this to execute python commands. "
+ "Input should be a valid python command. "
+ "If you want to see the output of a value, you should print it out "
+ "with `print(...)`."
+ ),
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ python_repl = PythonREPL()
+ sanitize_input: bool = True
+
+
+ @tool.get("/run_python")
+ def run_python(query : str):
+ '''Run python code in a REPL.
+ '''
+ if sanitize_input:
+ query = query.strip().strip("```")
+ return python_repl.run(query)
+
+
+ return tool
diff --git a/swarms/tools/python/readme.md b/swarms/tools/python/readme.md
new file mode 100644
index 00000000..3d7b54a0
--- /dev/null
+++ b/swarms/tools/python/readme.md
@@ -0,0 +1,3 @@
+# Python commands
+
+Contributor: [Sihan Zhao](https://github.com/Sarah816)
\ No newline at end of file
diff --git a/swarms/tools/python/test.py b/swarms/tools/python/test.py
new file mode 100644
index 00000000..2b6f3dd0
--- /dev/null
+++ b/swarms/tools/python/test.py
@@ -0,0 +1,11 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'python', "http://127.0.0.1:8079/tools/python/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("What is the 10th fibonacci number?")
\ No newline at end of file
diff --git a/swarms/tools/registry.py b/swarms/tools/registry.py
new file mode 100644
index 00000000..6392feb3
--- /dev/null
+++ b/swarms/tools/registry.py
@@ -0,0 +1,38 @@
+from .tool import Tool
+from typing import Dict, Callable, Any, List
+
+ToolBuilder = Callable[[Any], Tool]
+FuncToolBuilder = Callable[[], ToolBuilder]
+
+
+class ToolsRegistry:
+ def __init__(self) -> None:
+ self.tools : Dict[str, FuncToolBuilder] = {}
+
+ def register(self, tool_name : str, tool : FuncToolBuilder):
+ print(f"will register {tool_name}")
+ self.tools[tool_name] = tool
+
+ def build(self, tool_name, config) -> Tool:
+ ret = self.tools[tool_name]()(config)
+ if isinstance(ret, Tool):
+ return ret
+ raise ValueError("Tool builder {} did not return a Tool instance".format(tool_name))
+
+ def list_tools(self) -> List[str]:
+ return list(self.tools.keys())
+
+tools_registry = ToolsRegistry()
+
+def register(tool_name):
+ def decorator(tool : FuncToolBuilder):
+ tools_registry.register(tool_name, tool)
+ return tool
+ return decorator
+
+def build_tool(tool_name : str, config : Any) -> Tool:
+ print(f"will build {tool_name}")
+ return tools_registry.build(tool_name, config)
+
+def list_tools() -> List[str]:
+ return tools_registry.list_tools()
diff --git a/swarms/tools/retriever.py b/swarms/tools/retriever.py
new file mode 100644
index 00000000..a75c6887
--- /dev/null
+++ b/swarms/tools/retriever.py
@@ -0,0 +1,50 @@
+from langchain.embeddings import OpenAIEmbeddings
+from typing import List, Dict
+from queue import PriorityQueue
+from dotenv import load_dotenv
+
+load_dotenv(".env")
+
+
+import os
+
+
+class Retriever:
+ def __init__(self,
+ openai_api_key: str = None,
+ model: str = "text-embedding-ada-002"):
+ if openai_api_key is None:
+ openai_api_key = os.environ.get("OPENAI_API_KEY")
+ self.embed = OpenAIEmbeddings(
+ openai_api_key=openai_api_key, model=model)
+ self.documents = dict()
+
+ def add_tool(self, tool_name: str, api_info: Dict) -> None:
+ if tool_name in self.documents:
+ return
+ document = api_info["name_for_model"] + \
+ ". " + api_info["description_for_model"]
+ document_embedding = self.embed.embed_documents([document])
+ self.documents[tool_name] = {
+ "document": document,
+ "embedding": document_embedding[0]
+ }
+
+ def query(self, query: str, topk: int = 3) -> List[str]:
+ query_embedding = self.embed.embed_query(query)
+
+ queue = PriorityQueue()
+ for tool_name, tool_info in self.documents.items():
+ tool_embedding = tool_info["embedding"]
+ tool_sim = self.similarity(query_embedding, tool_embedding)
+ queue.put([-tool_sim, tool_name])
+
+ result = []
+ for i in range(min(topk, len(queue.queue))):
+ tool = queue.get()
+ result.append(tool[1])
+
+ return result
+
+ def similarity(self, query: List[float], document: List[float]) -> float:
+ return sum([i * j for i, j in zip(query, document)])
diff --git a/swarms/tools/sceneXplain/__init__.py b/swarms/tools/sceneXplain/__init__.py
new file mode 100644
index 00000000..6ae17954
--- /dev/null
+++ b/swarms/tools/sceneXplain/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("sceneXplain")
+def sceneXplain():
+ from .api import build_tool
+ return build_tool
\ No newline at end of file
diff --git a/swarms/tools/sceneXplain/api.py b/swarms/tools/sceneXplain/api.py
new file mode 100644
index 00000000..d8d6052d
--- /dev/null
+++ b/swarms/tools/sceneXplain/api.py
@@ -0,0 +1,55 @@
+import requests
+import json
+from ..tool import Tool
+import os
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Image Explainer",
+ "Tool that adds the capability to explain images.",
+ name_for_model="Image Explainer",
+ description_for_model=(
+ "An Image Captioning Tool: Use this tool to generate a detailed caption "
+ "for an image. The input can be an image file of any format, and "
+ "the output will be a text description that covers every detail of the image."
+ ),
+ logo_url="https://scenex.jina.ai/SceneX%20-%20Light.svg",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ scenex_api_key = config["subscription_key"]
+ scenex_api_url: str = (
+ "https://us-central1-causal-diffusion.cloudfunctions.net/describe"
+ )
+
+
+ @tool.get("/describe_image")
+ def describe_image(image : str):
+ '''Get the text description of an image.
+ '''
+ headers = {
+ "x-api-key": f"token {scenex_api_key}",
+ "content-type": "application/json",
+ }
+ payload = {
+ "data": [
+ {
+ "image": image,
+ "algorithm": "Ember",
+ "languages": ["en"],
+ }
+ ]
+ }
+ response = requests.post(scenex_api_url, headers=headers, json=payload)
+ response.raise_for_status()
+ result = response.json().get("result", [])
+ img = result[0] if result else {}
+ description = img.get("text", "")
+ if not description:
+ return "No description found."
+
+ return description
+
+ return tool
diff --git a/swarms/tools/sceneXplain/readme.md b/swarms/tools/sceneXplain/readme.md
new file mode 100644
index 00000000..899e6cc1
--- /dev/null
+++ b/swarms/tools/sceneXplain/readme.md
@@ -0,0 +1,3 @@
+# Image Description Queries
+
+Contributor: [Sihan Zhao](https://github.com/Sarah816)
\ No newline at end of file
diff --git a/swarms/tools/sceneXplain/test.py b/swarms/tools/sceneXplain/test.py
new file mode 100644
index 00000000..8e2af071
--- /dev/null
+++ b/swarms/tools/sceneXplain/test.py
@@ -0,0 +1,12 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'sceneXplain', "http://127.0.0.1:8079/tools/sceneXplain/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("What is in this image https://storage.googleapis.com/causal-diffusion.appspot.com/imagePrompts%2F0rw369i5h9t%2Foriginal.png?")
+agent("Describe Van Gogh's painting The Starry Night.")
\ No newline at end of file
diff --git a/swarms/tools/serve.py b/swarms/tools/serve.py
new file mode 100644
index 00000000..2856492e
--- /dev/null
+++ b/swarms/tools/serve.py
@@ -0,0 +1,101 @@
+import fastapi
+import uvicorn
+from .registry import build_tool, list_tools
+from .retriever import Retriever
+from typing import List, Dict
+from pydantic import BaseModel
+
+class RetrieveRequest(BaseModel):
+ query: str
+ topk: int = 3
+
+def _bind_tool_server(t : "ToolServer"):
+ """ Add property API to ToolServer.
+ t.api is a FastAPI object
+ """
+
+ @t.api.get("/")
+ def health():
+ return {
+ "status": "ok",
+ }
+
+ @t.api.get("/list")
+ def get_tools_list():
+ return {
+ "tools": t.list_tools(),
+ }
+
+ @t.api.get("/loaded")
+ def get_loaded_tools():
+ return {
+ "tools": list(t.loaded_tools),
+ }
+
+ @t.api.get("/.well-known/ai-plugin.json", include_in_schema=False)
+ def get_api_info():
+ return {
+ "schema_version": "v1",
+ "name_for_human": "SwarmTools",
+ "name_for_model": "SwarmTools",
+ "description_for_human": "tools for swarms",
+ "description_for_model": "tools for swarms",
+ "auth": {
+ "type": "none",
+ },
+ "api": {
+ "type": "openapi",
+ "url": "/openapi.json",
+ "is_user_authenticated": False,
+ },
+ "logo_url": None,
+ "contact_email": "",
+ "legal_info_url": "",
+ }
+
+ @t.api.post("/retrieve")
+ def retrieve(request: RetrieveRequest):
+ tool_list = t.retrieve(request.query, request.topk)
+ return {
+ "tools": tool_list
+ }
+
+class ToolServer:
+ """ This class host your own API backend.
+ """
+ def __init__(self) -> None:
+ # define the root API server
+ self.api = fastapi.FastAPI(
+ title="Swarm tools",
+ description="Tools for swarms",
+ )
+ self.loaded_tools = dict()
+ self.retriever = Retriever()
+ _bind_tool_server(self)
+
+ def load_tool(self, name: str, config: Dict = {}):
+ if self.is_loaded(name):
+ raise ValueError(f"Tool {name} is already loaded")
+ try:
+ tool = build_tool(name, config)
+ except BaseException as e:
+ print(f"Cannot load tool {name}: {repr(e)}")
+ return
+ self.loaded_tools[name] = tool.api_info
+ self.retriever.add_tool(name, tool.api_info)
+
+ # mount sub API server to the root API server, thus can mount all urls of sub API server to /tools/{name} route
+ self.api.mount(f"/tools/{name}", tool, name)
+ return
+
+ def is_loaded(self, name : str):
+ return name in self.loaded_tools
+
+ def serve(self, host : str = "0.0.0.0", port : int = 8079):
+ uvicorn.run(self.api, host=host, port=port)
+
+ def list_tools(self) -> List[str]:
+ return list_tools()
+
+ def retrieve(self, query: str, topk: int = 3) -> List[str]:
+ return self.retriever.query(query, topk)
diff --git a/swarms/tools/shell/__init__.py b/swarms/tools/shell/__init__.py
new file mode 100644
index 00000000..277a6d71
--- /dev/null
+++ b/swarms/tools/shell/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("shell")
+def shell():
+ from .api import build_tool
+ return build_tool
\ No newline at end of file
diff --git a/swarms/tools/shell/api.py b/swarms/tools/shell/api.py
new file mode 100644
index 00000000..356823c2
--- /dev/null
+++ b/swarms/tools/shell/api.py
@@ -0,0 +1,160 @@
+import requests
+import json
+from ..tool import Tool
+import os
+
+import platform
+import re
+import subprocess
+from typing import TYPE_CHECKING, List, Union
+from uuid import uuid4
+
+import pexpect
+
+def _lazy_import_pexpect() -> pexpect:
+ """Import pexpect only when needed."""
+ if platform.system() == "Windows":
+ raise ValueError("Persistent bash processes are not yet supported on Windows.")
+ try:
+ import pexpect
+
+ except ImportError:
+ raise ImportError(
+ "pexpect required for persistent bash processes."
+ " To install, run `pip install pexpect`."
+ )
+ return pexpect
+
+class BashProcess:
+ """Executes bash commands and returns the output."""
+
+ def __init__(
+ self,
+ strip_newlines: bool = False,
+ return_err_output: bool = False,
+ persistent: bool = False,
+ ):
+ """Initialize with stripping newlines."""
+ self.strip_newlines = strip_newlines
+ self.return_err_output = return_err_output
+ self.prompt = ""
+ self.process = None
+ if persistent:
+ self.prompt = str(uuid4())
+ self.process = self._initialize_persistent_process(self.prompt)
+
+ @staticmethod
+ def _initialize_persistent_process(prompt: str) -> pexpect.spawn:
+ # Start bash in a clean environment
+ # Doesn't work on windows
+ pexpect = _lazy_import_pexpect()
+ process = pexpect.spawn(
+ "env", ["-i", "bash", "--norc", "--noprofile"], encoding="utf-8"
+ )
+ # Set the custom prompt
+ process.sendline("PS1=" + prompt)
+
+ process.expect_exact(prompt, timeout=10)
+ return process
+
+ def run(self, commands: Union[str, List[str]]) -> str:
+ """Run commands and return final output."""
+ print("entering run")
+ if isinstance(commands, str):
+ commands = [commands]
+ commands = ";".join(commands)
+ print(commands)
+ if self.process is not None:
+ return self._run_persistent(
+ commands,
+ )
+ else:
+ return self._run(commands)
+
+ def _run(self, command: str) -> str:
+ """Run commands and return final output."""
+ print("entering _run")
+ try:
+ output = subprocess.run(
+ command,
+ shell=True,
+ check=True,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ ).stdout.decode()
+ except subprocess.CalledProcessError as error:
+ if self.return_err_output:
+ return error.stdout.decode()
+ return str(error)
+ if self.strip_newlines:
+ output = output.strip()
+ return output
+
+ def process_output(self, output: str, command: str) -> str:
+ # Remove the command from the output using a regular expression
+ pattern = re.escape(command) + r"\s*\n"
+ output = re.sub(pattern, "", output, count=1)
+ return output.strip()
+
+ def _run_persistent(self, command: str) -> str:
+ """Run commands and return final output."""
+ print("entering _run_persistent")
+ pexpect = _lazy_import_pexpect()
+ if self.process is None:
+ raise ValueError("Process not initialized")
+ self.process.sendline(command)
+
+ # Clear the output with an empty string
+ self.process.expect(self.prompt, timeout=10)
+ self.process.sendline("")
+
+ try:
+ self.process.expect([self.prompt, pexpect.EOF], timeout=10)
+ except pexpect.TIMEOUT:
+ return f"Timeout error while executing command {command}"
+ if self.process.after == pexpect.EOF:
+ return f"Exited with error status: {self.process.exitstatus}"
+ output = self.process.before
+ output = self.process_output(output, command)
+ if self.strip_newlines:
+ return output.strip()
+ return output
+
+
+def get_platform() -> str:
+ """Get platform."""
+ system = platform.system()
+ if system == "Darwin":
+ return "MacOS"
+ return system
+
+def get_default_bash_process() -> BashProcess:
+ """Get file path from string."""
+ return BashProcess(return_err_output=True)
+
+
+def build_tool(config) -> Tool:
+
+ tool = Tool(
+ "Terminal",
+ "Tool to run shell commands.",
+ name_for_model="Terminal",
+ description_for_model = f"Run shell commands on this {get_platform()} machine.",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ process: BashProcess = get_default_bash_process()
+ """Bash process to run commands."""
+
+
+ @tool.get("/shell_run")
+ def shell_run(commands: str):
+ '''Run commands and return final output.
+ Queries to shell_run must ALWAYS have this structure: {\"commands\": query}.\n",
+ and query should be a command string.
+ '''
+ return process.run(commands)
+
+ return tool
diff --git a/swarms/tools/shell/readme.md b/swarms/tools/shell/readme.md
new file mode 100644
index 00000000..16be89c9
--- /dev/null
+++ b/swarms/tools/shell/readme.md
@@ -0,0 +1,27 @@
+# Shell Commands
+
+Contributor: [Sihan Zhao](https://github.com/Sarah816)
+
+# Terminal Tool
+
+This tool allows you to run shell commands on a machine.
+
+## Setup
+
+The tool is initialized with the following parameters:
+
+- **name_for_model**: "Terminal"
+- **description_for_model**: "Run shell commands on this machine."
+- **logo_url**: "https://your-app-url.com/.well-known/logo.png"
+- **contact_email**: "hello@contact.com"
+- **legal_info_url**: "hello@legal.com"
+
+## Endpoint
+
+The tool provides the following endpoint:
+
+- **/shell_run**: Run commands and return final output. The input should be a command string.
+
+## Function Description
+
+- **shell_run(commands: str)**: This function runs commands and returns the final output. The commands should be a string. The function returns the output of the executed commands.
\ No newline at end of file
diff --git a/swarms/tools/shell/test.py b/swarms/tools/shell/test.py
new file mode 100644
index 00000000..45d74b27
--- /dev/null
+++ b/swarms/tools/shell/test.py
@@ -0,0 +1,11 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'shell', "http://127.0.0.1:8079/tools/shell/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("print 'Hello World!'")
\ No newline at end of file
diff --git a/swarms/tools/singletool.py b/swarms/tools/singletool.py
new file mode 100644
index 00000000..e7da1cb0
--- /dev/null
+++ b/swarms/tools/singletool.py
@@ -0,0 +1,234 @@
+from langchain.llms import OpenAI
+from langchain import OpenAI, LLMChain, PromptTemplate, SerpAPIWrapper
+from langchain.agents import ZeroShotAgent, AgentExecutor, initialize_agent, Tool
+import importlib
+import json
+import os
+import requests
+import yaml
+from .apitool import RequestTool
+from .executor import Executor, AgentExecutorWithTranslation
+from swarms.utils import get_logger
+from .BabyagiTools import BabyAGI
+# from .models.customllm import CustomLLM
+
+
+logger = get_logger(__name__)
+
+
+def import_all_apis(tool_json):
+ '''import all apis that is a tool
+ '''
+ doc_url = tool_json['api']['url']
+ response = requests.get(doc_url)
+
+ logger.info("Doc string URL: {}".format(doc_url))
+ if doc_url.endswith('yaml') or doc_url.endswith('yml'):
+ plugin = yaml.safe_load(response.text)
+ else:
+ plugin = json.loads(response.text)
+
+ server_url = plugin['servers'][0]['url']
+ if server_url.startswith("/"):
+ server_url = "http://127.0.0.1:8079" + server_url
+ logger.info("server_url {}".format(server_url))
+ all_apis = []
+ for key in plugin['paths']:
+ value = plugin['paths'][key]
+ for method in value:
+ api = RequestTool(root_url=server_url, func_url=key, method=method, request_info=value)
+ all_apis.append(api)
+ return all_apis
+
+def load_single_tools(tool_name, tool_url):
+
+ # tool_name, tool_url = "datasette", "https://datasette.io/"
+ # tool_name, tool_url = "klarna", "https://www.klarna.com/"
+ # tool_name, tool_url = 'chemical-prop', "http://127.0.0.1:8079/tools/chemical-prop/"
+ # tool_name, tool_url = 'douban-film', "http://127.0.0.1:8079/tools/douban-film/"
+ # tool_name, tool_url = 'weather', "http://127.0.0.1:8079/tools/weather/"
+ # tool_name, tool_url = 'wikipedia', "http://127.0.0.1:8079/tools/wikipedia/"
+ # tool_name, tool_url = 'wolframalpha', "http://127.0.0.1:8079/tools/wolframalpha/"
+ # tool_name, tool_url = 'klarna', "https://www.klarna.com/"
+
+
+ get_url = tool_url +".well-known/ai-plugin.json"
+ response = requests.get(get_url)
+
+ if response.status_code == 200:
+ tool_config_json = response.json()
+ else:
+ raise RuntimeError("Your URL of the tool is invalid.")
+
+ return tool_name, tool_config_json
+
+
+
+class STQuestionAnswerer:
+ def __init__(self, openai_api_key = "", stream_output=False, llm='ChatGPT'):
+ if len(openai_api_key) < 3: # not valid key (TODO: more rigorous checking)
+ openai_api_key = os.environ.get('OPENAI_API_KEY')
+
+ self.openai_api_key = openai_api_key
+ self.llm_model = llm
+
+ self.set_openai_api_key(openai_api_key)
+ self.stream_output = stream_output
+
+
+
+ def set_openai_api_key(self, key):
+ logger.info("Using {}".format(self.llm_model))
+
+ if self.llm_model == "GPT-3.5":
+ self.llm = OpenAI(temperature=0.0, openai_api_key=key) # use text-darvinci
+ elif self.llm_model == "ChatGPT":
+ self.llm = OpenAI(model_name="gpt-3.5-turbo", temperature=0.0, openai_api_key=key) # use chatgpt
+ else:
+ raise RuntimeError("Your model is not available.")
+
+ def load_tools(self, name, meta_info, prompt_type="react-with-tool-description", return_intermediate_steps=True):
+
+ self.all_tools_map = {}
+ self.all_tools_map[name] = import_all_apis(meta_info)
+
+ logger.info("Tool [{}] has the following apis: {}".format(name, self.all_tools_map[name]))
+
+ if prompt_type == "zero-shot-react-description":
+ subagent = initialize_agent(self.all_tools_map[name], self.llm, agent="zero-shot-react-description", verbose=True, return_intermediate_steps=return_intermediate_steps)
+ elif prompt_type == "react-with-tool-description":
+ # customllm = CustomLLM()
+ description_for_model = meta_info['description_for_model'].replace("{", "{{").replace("}", "}}").strip()
+
+ prefix = f"""Answer the following questions as best you can. General instructions are: {description_for_model}. Specifically, you have access to the following APIs:"""
+ #suffix = """Begin! Remember: (1) Follow the format, i.e,\nThought:\nAction:\nAction Input:\nObservation:\nFinal Answer:\n (2) Provide as much as useful information in your Final Answer. (3) YOU MUST INCLUDE all relevant IMAGES in your Final Answer using format , and include relevant links. (3) Do not make up anything, and if your Observation has no link, DO NOT hallucihate one. (4) If you have enough information, please use \nThought: I have got enough information\nFinal Answer: \n\nQuestion: {input}\n{agent_scratchpad}"""
+ suffix = """Begin! Remember: (1) Follow the format, i.e,\nThought:\nAction:\nAction Input:\nObservation:\nFinal Answer:\n. The action you generate must be exact one of the given API names instead of a sentence or any other redundant text. The action input is one json format dict without any redundant text or bracket descriptions . (2) Provide as much as useful information (such as useful values/file paths in your observation) in your Final Answer. Do not describe the process you achieve the goal, but only provide the detailed answer or response to the task goal. (3) Do not make up anything. DO NOT generate observation content by yourself. (4) Read the observation carefully, and pay attention to the messages even if an error occurs. (5) Once you have enough information, please immediately use \nThought: I have got enough information\nFinal Answer: \n\nTask: {input}\n{agent_scratchpad}"""
+
+ prompt = ZeroShotAgent.create_prompt(
+ self.all_tools_map[name],
+ prefix=prefix,
+ suffix=suffix,
+ input_variables=["input", "agent_scratchpad"]
+ )
+ llm_chain = LLMChain(llm=self.llm, prompt=prompt)
+ # llm_chain = LLMChain(llm=customllm, prompt=prompt)
+ logger.info("Full prompt template: {}".format(prompt.template))
+ tool_names = [tool.name for tool in self.all_tools_map[name] ]
+ agent = ZeroShotAgent(llm_chain=llm_chain, allowed_tools=tool_names)
+ if self.stream_output:
+ agent_executor = Executor.from_agent_and_tools(agent=agent, tools=self.all_tools_map[name] , verbose=True, return_intermediate_steps=return_intermediate_steps)
+ else:
+ agent_executor = AgentExecutorWithTranslation.from_agent_and_tools(agent=agent, tools=self.all_tools_map[name], verbose=True, return_intermediate_steps=return_intermediate_steps)
+ return agent_executor
+ elif prompt_type == "babyagi":
+ # customllm = CustomLLM()
+ tool_str = "; ".join([t.name for t in self.all_tools_map[name]])
+ prefix = """You are an AI who performs one task based on the following objective: {objective}. Take into account these previously completed tasks: {context}.\n You have access to the following APIs:"""
+ suffix = """YOUR CONSTRAINTS: (1) YOU MUST follow this format:
+ \nThought:\nAction:\nAction Input: \n or \nThought:\nFinal Answer:\n (2) Do not make up anything, and if your Observation has no link, DO NOT hallucihate one. (3) The Action: MUST be one of the following: """ + tool_str + """\nQuestion: {task}\n Agent scratchpad (history actions): {agent_scratchpad}."""
+
+ prompt = ZeroShotAgent.create_prompt(
+ self.all_tools_map[name],
+ prefix=prefix,
+ suffix=suffix,
+ input_variables=["objective", "task", "context","agent_scratchpad"]
+ )
+
+ logger.info("Full prompt template: {}".format(prompt.template))
+ # specify the maximum number of iterations you want babyAGI to perform
+ max_iterations = 10
+ baby_agi = BabyAGI.from_llm(
+ llm=self.llm,
+ # llm=customllm,
+ prompt=prompt,
+ verbose=False,
+ tools=self.all_tools_map[name],
+ stream_output=self.stream_output,
+ return_intermediate_steps=return_intermediate_steps,
+ max_iterations=max_iterations,
+ )
+
+ return baby_agi
+ elif prompt_type == "autogpt":
+ from langchain.vectorstores import FAISS
+ from langchain.docstore import InMemoryDocstore
+ from langchain.embeddings import OpenAIEmbeddings
+ from langchain.tools.file_management.write import WriteFileTool
+ from langchain.tools.file_management.read import ReadFileTool
+
+ # Define your embedding model
+ embeddings_model = OpenAIEmbeddings()
+ # Initialize the vectorstore as empty
+ import faiss
+
+ embedding_size = 1536
+ index = faiss.IndexFlatL2(embedding_size)
+ vectorstore = FAISS(embeddings_model.embed_query, index, InMemoryDocstore({}), {})
+
+ #TODO refactor to use the flow class
+ from .autogpt.agent import AutoGPT
+ from langchain.chat_models import ChatOpenAI
+ from langchain.schema import (
+ AIMessage,
+ ChatGeneration,
+ ChatMessage,
+ ChatResult,
+ HumanMessage,
+ SystemMessage,
+ )
+
+ # customllm = CustomLLM()
+ # class MyChatOpenAI(ChatOpenAI):
+ # def _create_chat_result(self, response):
+ # generations = []
+ # for res in response["choices"]:
+ # message = self._convert_dict_to_message(res["message"])
+ # gen = ChatGeneration(message=message)
+ # generations.append(gen)
+ # llm_output = {"token_usage": response["usage"], "model_name": self.model_name}
+ # return ChatResult(generations=generations, llm_output=llm_output)
+
+ # def _generate(self, messages, stop):
+ # message_dicts, params = self._create_message_dicts(messages, stop)
+ # response = customllm(message_dicts)
+ # response = json.loads(response)
+ # # response = self.completion_with_retry(messages=message_dicts, **params)
+ # return self._create_chat_result(response)
+
+ # def _convert_dict_to_message(self, _dict: dict):
+ # role = _dict["role"]
+ # if role == "user":
+ # return HumanMessage(content=_dict["content"])
+ # elif role == "assistant":
+ # return AIMessage(content=_dict["content"])
+ # elif role == "system":
+ # return SystemMessage(content=_dict["content"])
+ # else:
+ # return ChatMessage(content=_dict["content"], role=role)
+
+ # should integrate WriteFile and ReadFile into tools, will fix later.
+ # for tool in [WriteFileTool(), ReadFileTool()]:
+ # self.all_tools_map[name].append(tool)
+
+ agent = AutoGPT.from_llm_and_tools(
+ ai_name="Tom",
+ ai_role="Assistant",
+ tools=self.all_tools_map[name],
+ llm=ChatOpenAI(temperature=0),
+ # llm=MyChatOpenAI(temperature=0),
+ memory=vectorstore.as_retriever()
+ )
+ # Set verbose to be true
+ agent.chain.verbose = True
+ return agent
+
+if __name__ == "__main__":
+
+ tools_name, tools_config = load_single_tools()
+ print(tools_name, tools_config)
+
+ qa = STQuestionAnswerer()
+
+ agent = qa.load_tools(tools_name, tools_config)
+
+ agent("Calc integral of sin(x)+2x^2+3x+1 from 0 to 1")
diff --git a/swarms/tools/stock/__init__.py b/swarms/tools/stock/__init__.py
new file mode 100644
index 00000000..769e2dfa
--- /dev/null
+++ b/swarms/tools/stock/__init__.py
@@ -0,0 +1,7 @@
+
+from ..registry import register
+
+@register("stock")
+def stock():
+ from .api import build_tool
+ return build_tool
diff --git a/swarms/tools/stock/api.py b/swarms/tools/stock/api.py
new file mode 100644
index 00000000..8709fb09
--- /dev/null
+++ b/swarms/tools/stock/api.py
@@ -0,0 +1,105 @@
+
+import requests
+import json
+from datetime import date, datetime, timedelta
+import os
+from ..tool import Tool
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Stock Info",
+ "Look up stock information",
+ name_for_model="Stock",
+ description_for_model="Plugin for look up stock information",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ functions = ['TIME_SERIES_INTRADAY', 'TIME_SERIES_INTRADAY_EXTENDED','TIME_SERIES_DAILY', 'TIME_SERIES_DAILY_ADJUSTED']
+ types = ['open', 'close', 'high', 'low']
+
+ KEY = config["subscription_key"]
+ BASE_URL = 'https://www.alphavantage.co/query?'
+
+ def get_json_data(function, symbol, interval = '5min', adjusted='true', outputsize='compact', datatype='json'):
+ url = BASE_URL + 'function=' + function + '&symbol=' + symbol + '&apikey=' + KEY
+ r = requests.get(url)
+ data = json.loads(r.text)
+ return data
+
+ @tool.get("/get_today_date")
+ def get_today_date():
+ '''Get today's date
+ '''
+ today = date.today()
+ return today.strftime("%Y-%m-%d")
+
+ @tool.get('/add_date')
+ def add_date(date : str, days : int):
+ '''Add days to a date. Date should be pass as 'yyyy-mm-dd'.
+ '''
+ date = datetime.strptime(date, "%Y-%m-%d")
+ new_date = date + timedelta(days=days)
+ return new_date.strftime("%Y-%m-%d")
+
+ @tool.get('/get_daily_prices')
+ def get_daily_prices(symbol : str, date : str = ''):
+ '''Get the stock price of an entity in the stock market. Date should be pass as 'yyyy-mm-dd'.
+ '''
+ if "," in symbol:
+ symbol, date = symbol.split(",")
+ if date.strip() == "":
+ return "Please specify a date and try again. You can you get_today_date to up-to-date time information."
+ data = get_json_data('TIME_SERIES_DAILY_ADJUSTED', symbol)
+ #print(data.keys())
+ time_series = data["Time Series (Daily)"]
+ final_time = ''
+ print(time_series)
+ # 查找最接近查询日期的数据
+ for timestamp, daily_data in time_series.items():
+ print(timestamp)
+ if timestamp == date:
+ open_price = daily_data["1. open"]
+ high_price = daily_data["2. high"]
+ low_price = daily_data["3. low"]
+ close_price = daily_data["4. close"]
+ volume = daily_data["6. volume"]
+ break
+ elif timestamp < date:
+ final_time = timestamp
+ open_price = time_series[timestamp]["1. open"]
+ high_price = time_series[timestamp]["2. high"]
+ low_price = time_series[timestamp]["3. low"]
+ close_price = time_series[timestamp]["4. close"]
+ volume = time_series[timestamp]["6. volume"]
+ break
+ return {'open':open_price, 'close':close_price, 'high':high_price, 'low':low_price, 'symbol':symbol, 'date':final_time, 'volume':volume}
+
+
+ @tool.get('/get_open_info')
+ def get_open_info(region : str = 'United States'):
+ '''get information about if the market in the region is open
+ '''
+ url = 'https://www.alphavantage.co/query?function=MARKET_STATUS&apikey=' + KEY
+ r = requests.get(url)
+ data = json.loads(r.text)
+ for item in data['markets']:
+ if item['region'] == region:
+ return item['current_status']
+ return ' not found'
+
+ @tool.get('/get_exchange_rate')
+ def get_exchange_rate(from_currency : str = 'USD', to_currency : str = 'BTC'):
+ '''This API returns the realtime exchange rate for a pair of digital currency (e.g., Bitcoin) and physical currency (e.g., USD).
+ '''
+ url = 'https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency='+ from_currency + '&to_currency='+ to_currency + '&apikey=' + KEY
+ r = requests.get(url)
+ data = json.loads(r.text)
+ try:
+ rate = data['Realtime Currency Exchange Rate']['5. Exchange Rate']
+ return rate
+ except:
+ return 'error'
+
+ return tool
diff --git a/swarms/tools/stock/readme.md b/swarms/tools/stock/readme.md
new file mode 100644
index 00000000..a9837239
--- /dev/null
+++ b/swarms/tools/stock/readme.md
@@ -0,0 +1,37 @@
+# Stock Market Service
+
+Contributor: [Kunlun Zhu](https://github.com/Kunlun-Zhu)
+
+You can get your free Alpha Vantage key here: https://www.alphavantage.co/support/#api-key
+
+# Stock Info Tool
+
+This tool allows you to look up stock information.
+
+## Setup
+
+The tool is initialized with the following parameters:
+
+- **name_for_model**: "Stock Info"
+- **description_for_model**: "Plugin for look up stock information"
+- **logo_url**: "https://your-app-url.com/.well-known/logo.png"
+- **contact_email**: "hello@contact.com"
+- **legal_info_url**: "hello@legal.com"
+
+## Endpoint
+
+The tool provides the following endpoints:
+
+- **/get_today_date**: Get today's date.
+- **/add_date**: Add days to a date. Date should be pass as 'yyyy-mm-dd'.
+- **/get_daily_prices**: Get the stock price of an entity in the stock market. Date should be pass as 'yyyy-mm-dd'.
+- **/get_open_info**: Get information about if the market in the region is open.
+- **/get_exchange_rate**: This API returns the realtime exchange rate for a pair of digital currency (e.g., Bitcoin) and physical currency (e.g., USD).
+
+## Function Descriptions
+
+- **get_today_date()**: This function returns today's date.
+- **add_date(date: str, days: int)**: This function adds a certain number of days to a date. The date should be passed as 'yyyy-mm-dd'.
+- **get_daily_prices(symbol: str, date: str = '')**: This function gets the stock price of an entity in the stock market. The date should be passed as 'yyyy-mm-dd'.
+- **get_open_info(region: str = 'United States')**: This function gets information about if the market in the region is open.
+- **get_exchange_rate(from_currency: str = 'USD', to_currency: str = 'BTC')**: This function returns the realtime exchange rate for a pair of digital currency (e.g., Bitcoin) and physical currency (e.g., USD).
\ No newline at end of file
diff --git a/swarms/tools/stock/test.py b/swarms/tools/stock/test.py
new file mode 100644
index 00000000..0164b59c
--- /dev/null
+++ b/swarms/tools/stock/test.py
@@ -0,0 +1,11 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'Stock', "http://127.0.0.1:8079/tools/stock/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("What's the close price of Apple stock at 2022/02/21?")
\ No newline at end of file
diff --git a/swarms/tools/tool.py b/swarms/tools/tool.py
index a5ad3f75..4bbafdca 100644
--- a/swarms/tools/tool.py
+++ b/swarms/tools/tool.py
@@ -1,13 +1,13 @@
-"""Base implementation for tools or skills."""
-from __future__ import annotations
+import fastapi
+from typing import Optional
+import copy
-import asyncio
-import inspect
-import warnings
-from abc import abstractmethod
-from functools import partial
-from inspect import signature
-from typing import Any, Awaitable, Callable, Dict, List, Optional, Tuple, Type, Union
+class Tool(fastapi.FastAPI):
+ r""" Tool is inherited from FastAPI class, thus:
+ - It can act as a server
+ - It has get method, you can use Tool.get method to bind a function to an url
+ - It can be easily mounted to another server
+ - It has a list of sub-routes, each route is a function
from langchain.callbacks.base import BaseCallbackManager
from langchain.callbacks.manager import (
@@ -68,32 +68,17 @@ def create_schema_from_function(
) -> Type[BaseModel]:
"""Create a pydantic schema from a function's signature.
Args:
- model_name: Name to assign to the generated pydandic schema
- func: Function to generate the schema from
- Returns:
- A pydantic model with the same arguments as the function
- """
- # https://docs.pydantic.dev/latest/usage/validation_decorator/
- validated = validate_arguments(func, config=_SchemaConfig) # type: ignore
- inferred_model = validated.model # type: ignore
- if "run_manager" in inferred_model.__fields__:
- del inferred_model.__fields__["run_manager"]
- if "callbacks" in inferred_model.__fields__:
- del inferred_model.__fields__["callbacks"]
- # Pydantic adds placeholder virtual fields we need to strip
- valid_properties = _get_filtered_args(inferred_model, func)
- return _create_subset_model(
- f"{model_name}Schema", inferred_model, list(valid_properties)
- )
-
-
-class ToolException(Exception):
- """An optional exception that tool throws when execution error occurs.
-
- When this exception is thrown, the agent will not stop working,
- but will handle the exception according to the handle_tool_error
- variable of the tool, and the processing result will be returned
- to the agent as observation, and printed in red on the console.
+ - tool_name (str): The name of the tool.
+ - description (str): The description of the tool.
+ - name_for_human (str, optional): The name of the tool for humans. Defaults to None.
+ - name_for_model (str, optional): The name of the tool for models. Defaults to None.
+ - description_for_human (str, optional): The description of the tool for humans. Defaults to None.
+ - description_for_model (str, optional): The description of the tool for models. Defaults to None.
+ - logo_url (str, optional): The URL of the tool's logo. Defaults to None.
+ - author_github (str, optional): The GitHub URL of the author. Defaults to None.
+ - contact_email (str, optional): The contact email for the tool. Defaults to "".
+ - legal_info_url (str, optional): The URL for legal information. Defaults to "".
+ - version (str, optional): The version of the tool. Defaults to "0.1.0".
"""
pass
@@ -694,149 +679,55 @@ class StructuredTool(BaseTool):
tool = StructuredTool.from_function(add)
tool.run(1, 2) # 3
"""
-
- if func is not None:
- source_function = func
- elif coroutine is not None:
- source_function = coroutine
- else:
- raise ValueError("Function and/or coroutine must be provided")
- name = name or source_function.__name__
- description = description or source_function.__doc__
- if description is None:
- raise ValueError(
- "Function must have a docstring if description not provided."
- )
-
- # Description example:
- # search_api(query: str) - Searches the API for the query.
- sig = signature(source_function)
- description = f"{name}{sig} - {description.strip()}"
- _args_schema = args_schema
- if _args_schema is None and infer_schema:
- _args_schema = create_schema_from_function(f"{name}Schema", source_function)
- return cls(
- name=name,
- func=func,
- coroutine=coroutine,
- args_schema=_args_schema,
+ Diagram:
+ Root API server (ToolServer object)
+ │
+ ├───── "./weather": Tool object
+ │ ├── "./get_weather_today": function_get_weather(location: str) -> str
+ │ ├── "./get_weather_forecast": function_get_weather_forcast(location: str, day_offset: int) -> str
+ │ └── "...more routes"
+ ├───── "./wikidata": Tool object
+ │ ├── "... more routes"
+ └───── "... more routes"
+ """
+ super().__init__(
+ title=tool_name,
description=description,
- return_direct=return_direct,
- **kwargs,
+ version=version,
)
-
-def tool(
- *args: Union[str, Callable, Runnable],
- return_direct: bool = False,
- args_schema: Optional[Type[BaseModel]] = None,
- infer_schema: bool = True,
-) -> Callable:
- """Make tools out of functions, can be used with or without arguments.
-
- Args:
- *args: The arguments to the tool.
- return_direct: Whether to return directly from the tool rather
- than continuing the agent loop.
- args_schema: optional argument schema for user to specify
- infer_schema: Whether to infer the schema of the arguments from
- the function's signature. This also makes the resultant tool
- accept a dictionary input to its `run()` function.
-
- Requires:
- - Function must be of type (str) -> str
- - Function must have a docstring
-
- Examples:
- .. code-block:: python
-
- @tool
- def search_api(query: str) -> str:
- # Searches the API for the query.
- return
-
- @tool("search", return_direct=True)
- def search_api(query: str) -> str:
- # Searches the API for the query.
- return
- """
-
- def _make_with_name(tool_name: str) -> Callable:
- def _make_tool(dec_func: Union[Callable, Runnable]) -> BaseTool:
- if isinstance(dec_func, Runnable):
- runnable = dec_func
-
- if runnable.input_schema.schema().get("type") != "object":
- raise ValueError("Runnable must have an object schema.")
-
- async def ainvoke_wrapper(
- callbacks: Optional[Callbacks] = None, **kwargs: Any
- ) -> Any:
- return await runnable.ainvoke(kwargs, {"callbacks": callbacks})
-
- def invoke_wrapper(
- callbacks: Optional[Callbacks] = None, **kwargs: Any
- ) -> Any:
- return runnable.invoke(kwargs, {"callbacks": callbacks})
-
- coroutine = ainvoke_wrapper
- func = invoke_wrapper
- schema: Optional[Type[BaseModel]] = runnable.input_schema
- description = repr(runnable)
- elif inspect.iscoroutinefunction(dec_func):
- coroutine = dec_func
- func = None
- schema = args_schema
- description = None
- else:
- coroutine = None
- func = dec_func
- schema = args_schema
- description = None
-
- if infer_schema or args_schema is not None:
- return StructuredTool.from_function(
- func,
- coroutine,
- name=tool_name,
- description=description,
- return_direct=return_direct,
- args_schema=schema,
- infer_schema=infer_schema,
- )
- # If someone doesn't want a schema applied, we must treat it as
- # a simple string->string function
- if func.__doc__ is None:
- raise ValueError(
- "Function must have a docstring if "
- "description not provided and infer_schema is False."
- )
- return Tool(
- name=tool_name,
- func=func,
- description=f"{tool_name} tool",
- return_direct=return_direct,
- coroutine=coroutine,
- )
-
- return _make_tool
-
- if len(args) == 2 and isinstance(args[0], str) and isinstance(args[1], Runnable):
- return _make_with_name(args[0])(args[1])
- elif len(args) == 1 and isinstance(args[0], str):
- # if the argument is a string, then we use the string as the tool name
- # Example usage: @tool("search", return_direct=True)
- return _make_with_name(args[0])
- elif len(args) == 1 and callable(args[0]):
- # if the argument is a function, then we use the function name as the tool name
- # Example usage: @tool
- return _make_with_name(args[0].__name__)(args[0])
- elif len(args) == 0:
- # if there are no arguments, then we use the function name as the tool name
- # Example usage: @tool(return_direct=True)
- def _partial(func: Callable[[str], str]) -> BaseTool:
- return _make_with_name(func.__name__)(func)
-
- return _partial
- else:
- raise ValueError("Too many arguments for tool decorator")
+ if name_for_human is None:
+ name_for_human = tool_name
+ if name_for_model is None:
+ name_for_model = name_for_human
+ if description_for_human is None:
+ description_for_human = description
+ if description_for_model is None:
+ description_for_model = description_for_human
+
+ self.api_info = {
+ "schema_version": "v1",
+ "name_for_human": name_for_human,
+ "name_for_model": name_for_model,
+ "description_for_human": description_for_human,
+ "description_for_model": description_for_model,
+ "auth": {
+ "type": "none",
+ },
+ "api": {
+ "type": "openapi",
+ "url": "/openapi.json",
+ "is_user_authenticated": False,
+ },
+ "author_github": author_github,
+ "logo_url": logo_url,
+ "contact_email": contact_email,
+ "legal_info_url": legal_info_url,
+ }
+
+ @self.get("/.well-known/ai-plugin.json", include_in_schema=False)
+ def get_api_info(request : fastapi.Request):
+ openapi_path = str(request.url).replace("/.well-known/ai-plugin.json", "/openapi.json")
+ info = copy.deepcopy(self.api_info)
+ info["api"]["url"] = str(openapi_path)
+ return info
diff --git a/swarms/tools/tools/python/api.py b/swarms/tools/tools/python/api.py
new file mode 100644
index 00000000..e578305e
--- /dev/null
+++ b/swarms/tools/tools/python/api.py
@@ -0,0 +1,60 @@
+import requests
+import json
+from tool import Tool
+import os
+
+import sys
+from io import StringIO
+from typing import Dict, Optional
+
+
+class PythonREPL:
+ """Simulates a standalone Python REPL."""
+ def __init__(self) -> None:
+ self.globals: Optional[Dict] = globals()
+ self.locals: Optional[Dict] = None
+
+ def run(self, command: str) -> str:
+ """Run command with own globals/locals and returns anything printed."""
+ old_stdout = sys.stdout
+ sys.stdout = mystdout = StringIO()
+ try:
+ exec(command, self.globals, self.locals)
+ sys.stdout = old_stdout
+ output = mystdout.getvalue()
+ except Exception as e:
+ sys.stdout = old_stdout
+ output = repr(e)
+ print(output)
+ return output
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Python REPL",
+ "Run python code",
+ name_for_model="Python REPL",
+ description_for_model=(
+ "A Python shell. Use this to execute python commands. "
+ "Input should be a valid python command. "
+ "If you want to see the output of a value, you should print it out "
+ "with `print(...)`."
+ ),
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ python_repl = PythonREPL()
+ sanitize_input: bool = True
+
+
+ @tool.get("/run_python")
+ def run_python(query : str):
+ '''Run python code in a REPL.
+ '''
+ if sanitize_input:
+ query = query.strip().strip("```")
+ return python_repl.run(query)
+
+
+ return tool
diff --git a/swarms/tools/tools/travel/__init__.py b/swarms/tools/tools/travel/__init__.py
new file mode 100644
index 00000000..2bd9e08b
--- /dev/null
+++ b/swarms/tools/tools/travel/__init__.py
@@ -0,0 +1,7 @@
+
+from registry import register
+
+@register("travel")
+def travel():
+ from api import build_tool
+ return build_tool
diff --git a/swarms/tools/tools_controller.py b/swarms/tools/tools_controller.py
new file mode 100644
index 00000000..c67f0c1d
--- /dev/null
+++ b/swarms/tools/tools_controller.py
@@ -0,0 +1,133 @@
+from langchain.llms import OpenAI
+from langchain import OpenAI, LLMChain
+from langchain.agents import ZeroShotAgent, AgentExecutor
+import importlib
+import json
+import os
+import requests
+import yaml
+from .apitool import Tool
+from .singletool import STQuestionAnswerer
+from .executor import Executor, AgentExecutorWithTranslation
+from swarms.utils import get_logger
+
+logger = get_logger(__name__)
+
+def load_valid_tools(tools_mappings):
+ tools_to_config = {}
+ for key in tools_mappings:
+ get_url = tools_mappings[key]+".well-known/ai-plugin.json"
+
+ response = requests.get(get_url)
+
+ if response.status_code == 200:
+ tools_to_config[key] = response.json()
+ else:
+ logger.warning("Load tool {} error, status code {}".format(key, response.status_code))
+
+ return tools_to_config
+
+
+
+class MTQuestionAnswerer:
+ """Use multiple tools to answer a question. Basically pass a natural question to
+ """
+ def __init__(self, openai_api_key, all_tools, stream_output=False, llm='ChatGPT'):
+ if len(openai_api_key) < 3: # not valid key (TODO: more rigorous checking)
+ openai_api_key = os.environ.get('OPENAI_API_KEY')
+ self.openai_api_key = openai_api_key
+ self.stream_output = stream_output
+ self.llm_model = llm
+ self.set_openai_api_key(openai_api_key)
+ self.load_tools(all_tools)
+
+ def set_openai_api_key(self, key):
+ logger.info("Using {}".format(self.llm_model))
+ if self.llm_model == "GPT-3.5":
+ self.llm = OpenAI(temperature=0.0, openai_api_key=key) # use text-darvinci
+ elif self.llm_model == "ChatGPT":
+ self.llm = OpenAI(model_name="gpt-3.5-turbo", temperature=0.0, openai_api_key=key) # use chatgpt
+ else:
+ raise RuntimeError("Your model is not available.")
+
+ def load_tools(self, all_tools):
+ logger.info("All tools: {}".format(all_tools))
+ self.all_tools_map = {}
+ self.tools_pool = []
+ for name in all_tools:
+ meta_info = all_tools[name]
+
+ question_answer = STQuestionAnswerer(self.openai_api_key, stream_output=self.stream_output, llm=self.llm_model)
+ subagent = question_answer.load_tools(name, meta_info, prompt_type="react-with-tool-description", return_intermediate_steps=False)
+ tool_logo_md = f''
+ for tool in subagent.tools:
+ tool.tool_logo_md = tool_logo_md
+ tool = Tool(
+ name=meta_info['name_for_model'],
+ description=meta_info['description_for_model'].replace("{", "{{").replace("}", "}}"),
+ func=subagent,
+ )
+ tool.tool_logo_md = tool_logo_md
+ self.tools_pool.append(tool)
+
+ def build_runner(self, ):
+ from langchain.vectorstores import FAISS
+ from langchain.docstore import InMemoryDocstore
+ from langchain.embeddings import OpenAIEmbeddings
+ embeddings_model = OpenAIEmbeddings()
+ import faiss
+ embedding_size = 1536
+ index = faiss.IndexFlatL2(embedding_size)
+ vectorstore = FAISS(embeddings_model.embed_query, index, InMemoryDocstore({}), {})
+
+ # TODO refactor to use the flow
+ from swarms.tools.autogptmulti.agent import AutoGPT
+ from langchain.chat_models import ChatOpenAI
+ agent_executor = AutoGPT.from_llm_and_tools(
+ ai_name="Tom",
+ ai_role="Assistant",
+ tools=self.tools_pool,
+ llm=ChatOpenAI(temperature=0),
+ memory=vectorstore.as_retriever()
+ )
+ '''
+ # 可以修改prompt来让模型表现更好,也可以修改tool的doc
+ prefix = """Answer the following questions as best you can. In this level, you are calling the tools in natural language format, since the tools are actually an intelligent agent like you, but they expert only in one area. Several things to remember. (1) Remember to follow the format of passing natural language as the Action Input. (2) DO NOT use your imagination, only use concrete information given by the tools. (3) If the observation contains images or urls which has useful information, YOU MUST INCLUDE ALL USEFUL IMAGES and links in your Answer and Final Answers using format . BUT DO NOT provide any imaginary links. (4) The information in your Final Answer should include ALL the informations returned by the tools. (5) If a user's query is a language other than English, please translate it to English without tools, and translate it back to the source language in Final Answer. You have access to the following tools (Only use these tools we provide you):"""
+ suffix = """\nBegin! Remember to . \nQuestion: {input}\n{agent_scratchpad}"""
+
+
+ prompt = ZeroShotAgent.create_prompt(
+ self.tools_pool,
+ prefix=prefix,
+ suffix=suffix,
+ input_variables=["input", "agent_scratchpad"]
+ )
+ llm_chain = LLMChain(llm=self.llm, prompt=prompt)
+ logger.info("Full Prompt Template:\n {}".format(prompt.template))
+ tool_names = [tool.name for tool in self.tools_pool]
+ agent = ZeroShotAgent(llm_chain=llm_chain, allowed_tools=tool_names)
+ if self.stream_output:
+ agent_executor = Executor.from_agent_and_tools(agent=agent, tools=self.tools_pool, verbose=True, return_intermediate_steps=True)
+ else:
+ agent_executor = AgentExecutorWithTranslation.from_agent_and_tools(agent=agent, tools=self.tools_pool, verbose=True, return_intermediate_steps=True)
+ '''
+ return agent_executor
+
+
+
+if __name__ == "__main__":
+ tools_mappings = {
+ "klarna": "https://www.klarna.com/",
+ "chemical-prop": "http://127.0.0.1:8079/tools/chemical-prop/",
+ "wolframalpha": "http://127.0.0.1:8079/tools/wolframalpha/",
+ "weather": "http://127.0.0.1:8079/tools/weather/",
+ }
+
+ tools = load_valid_tools(tools_mappings)
+
+ qa = MTQuestionAnswerer(openai_api_key='', all_tools=tools)
+
+ agent = qa.build_runner()
+
+ agent("How many carbon elements are there in CH3COOH? How many people are there in China?")
+
diff --git a/swarms/tools/translation/__init__.py b/swarms/tools/translation/__init__.py
new file mode 100644
index 00000000..d6e8dd7f
--- /dev/null
+++ b/swarms/tools/translation/__init__.py
@@ -0,0 +1,13 @@
+
+from ..registry import register
+
+@register("nllb-translation")
+def translator():
+ from .nllb import build_tool
+ return build_tool
+
+@register("baidu-translation")
+def translator():
+ from .baidu import build_tool
+ return build_tool
+
diff --git a/swarms/tools/translation/baidu/__init__.py b/swarms/tools/translation/baidu/__init__.py
new file mode 100644
index 00000000..aead338d
--- /dev/null
+++ b/swarms/tools/translation/baidu/__init__.py
@@ -0,0 +1 @@
+from .api import build_tool
diff --git a/swarms/tools/translation/baidu/api.py b/swarms/tools/translation/baidu/api.py
new file mode 100644
index 00000000..e6a979bd
--- /dev/null
+++ b/swarms/tools/translation/baidu/api.py
@@ -0,0 +1,48 @@
+import os
+import random
+import requests
+import hashlib
+from ...tool import Tool
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Translator Info",
+ "Translate a given text from one language to another.",
+ name_for_model="Translator",
+ description_for_model="Plugin for translating text from one language to another.",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="shihaoliang0828@gmail.com",
+ legal_info_url="hello@legal.com"
+ )
+ subscription_key = os.getenv("BAIDU_TRANSLATE_KEY", None)
+ if subscription_key is None:
+ raise Exception("BAIDU_TRANSLATE_KEY is not set")
+ secret_key = os.getenv("BAIDU_SECRET_KEY", None)
+ if secret_key is None:
+ raise Exception("BAIDU_SECRET_KEY is not set")
+ endpoint = 'https://fanyi-api.baidu.com/api/trans/vip/translate'
+ fromLang = 'auto'
+ salt = random.randint(32768,65536)
+ header = {'Content-Type': 'application/x-www-form-urlencoded'}
+
+ @tool.get("/get_translation")
+ def get_translation(text:str, tgt_lang:str) -> str:
+ sign = subscription_key + text + str(salt) + secret_key
+ md = hashlib.md5()
+ md.update(sign.encode(encoding='utf-8'))
+ sign =md.hexdigest()
+ data = {
+ "appid": subscription_key,
+ "q": text,
+ "from": fromLang,
+ "to": tgt_lang,
+ "salt": salt,
+ "sign": sign
+ }
+ response = requests.post(endpoint, params= data, headers= header)
+ text = response.json()
+ results = text['trans_result'][0]['dst']
+ return results
+
+ return tool
diff --git a/swarms/tools/translation/baidu/test.py b/swarms/tools/translation/baidu/test.py
new file mode 100644
index 00000000..6b7120f6
--- /dev/null
+++ b/swarms/tools/translation/baidu/test.py
@@ -0,0 +1,13 @@
+
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'baidu-translation', "http://127.0.0.1:8079/tools/baidu-translation/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+print(tools_config)
+agent = qa.load_tools(tools_name, tools_config)
+
+answer = agent("Translate this sentence into Chinese(zh): Hello, world!")
+print(answer)
\ No newline at end of file
diff --git a/swarms/tools/translation/nllb/__init__.py b/swarms/tools/translation/nllb/__init__.py
new file mode 100644
index 00000000..aead338d
--- /dev/null
+++ b/swarms/tools/translation/nllb/__init__.py
@@ -0,0 +1 @@
+from .api import build_tool
diff --git a/swarms/tools/translation/nllb/api.py b/swarms/tools/translation/nllb/api.py
new file mode 100644
index 00000000..24d8e6ca
--- /dev/null
+++ b/swarms/tools/translation/nllb/api.py
@@ -0,0 +1,31 @@
+
+from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
+from ...tool import Tool
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Translator Info",
+ "Translate a given text from one language to another.",
+ name_for_model="Translator",
+ description_for_model="Plugin for translating text from one language to another.",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="shihaoliang0828@gmail.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ BASE_MODEL = (config["model"] if "model" in config else "facebook/nllb-200-distilled-600M")
+ SRC_LANG = (config["src_lang"] if "src_lang" in config else "eng_Latn")
+ tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL, use_auth_token=True, src_lang=SRC_LANG)
+ model = AutoModelForSeq2SeqLM.from_pretrained(BASE_MODEL, use_auth_token=True)
+ @tool.get("/get_translation")
+ def get_translation(input_text:str or list, tgt_lang:str, max_length:int) -> str or list:
+ inputs = tokenizer(input_text, return_tensors="pt", padding=True)
+ translated_tokens = model.generate(
+ **inputs, forced_bos_token_id=tokenizer.lang_code_to_id[tgt_lang], max_length=max_length)
+ if isinstance(input_text, str):
+ translations = tokenizer.batch_decode(translated_tokens, skip_special_tokens=True)[0]
+ elif isinstance(input_text, list):
+ translations = tokenizer.batch_decode(translated_tokens, skip_special_tokens=True)
+ return translations
+
+ return tool
diff --git a/swarms/tools/translation/nllb/test.py b/swarms/tools/translation/nllb/test.py
new file mode 100644
index 00000000..fed6f5d6
--- /dev/null
+++ b/swarms/tools/translation/nllb/test.py
@@ -0,0 +1,13 @@
+
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'nllb-translation', "http://127.0.0.1:8079/tools/nllb-translation/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+print(tools_config)
+agent = qa.load_tools(tools_name, tools_config)
+
+answer = agent("Translate this sentence into Chinese(zho_Hans): Hello, world!")
+print(answer)
\ No newline at end of file
diff --git a/swarms/tools/translation/readme.md b/swarms/tools/translation/readme.md
new file mode 100644
index 00000000..c2e8cf63
--- /dev/null
+++ b/swarms/tools/translation/readme.md
@@ -0,0 +1,70 @@
+# Translation Queries
+
+Contributor: [Shihao Liang](https://github.com/pooruss)
+
+# NLLB as translation tool:
+- Language code should be included in queries in case the NLLB model cannot recognize the target language.
+- Default source language is English. Change the nllb model path and source language in host_local_tools.py by passing a dict like this: {"model": ${your_nllb_path}, "src_lang": "eng_Latn"}
+- Refer to paper [No Language Left Behind: Scaling Human-Centered Machine Translation](https://arxiv.org/abs/2207.04672) for all supported languages.
+
+## Translator Info Tool
+
+This tool allows you to translate a given text from one language to another.
+
+## Setup
+
+The tool is initialized with the following parameters:
+
+- **name_for_model**: "Translator Info"
+- **description_for_model**: "Plugin for translating text from one language to another."
+- **logo_url**: "https://your-app-url.com/.well-known/logo.png"
+- **contact_email**: "shihaoliang0828@gmail.com"
+- **legal_info_url**: "hello@legal.com"
+
+## Model
+
+The tool uses a model for translation. The base model is "facebook/nllb-200-distilled-600M" and the source language is "eng_Latn" by default. You can change these parameters in the config.
+
+## Endpoint
+
+The tool provides the following endpoint:
+
+- **/get_translation**: Translate a given text from one language to another. The input should be a text string or a list of text strings, the target language, and the maximum length of the translated text.
+
+## Function Description
+
+- **get_translation(input_text: str or list, tgt_lang: str, max_length: int) -> str or list**: This function translates a given text from one language to another. The input_text should be a string or a list of strings, tgt_lang should be a string representing the language code, and max_length should be an integer. The function returns the translated text or a list of translated texts.
+
+
+# BAIDU translate api as translation tool:
+- Set your APP ID and Secert Key in secret_keys.sh.
+- Language code should also be included in queries.
+- Refer to [Baidu translate](https://fanyi-api.baidu.com/product/11) for all supported languages.
+
+## Translator Info Tool with Baidu
+
+This tool allows you to translate a given text from one language to another.
+
+## Setup
+
+The tool is initialized with the following parameters:
+
+- **name_for_model**: "Translator Info"
+- **description_for_model**: "Plugin for translating text from one language to another."
+- **logo_url**: "https://your-app-url.com/.well-known/logo.png"
+- **contact_email**: "shihaoliang0828@gmail.com"
+- **legal_info_url**: "hello@legal.com"
+
+## API Key
+
+The tool requires an API key and a secret key from Baidu. You can sign up for a free account at https://fanyi-api.baidu.com/, create a new API key and secret key, and add them to environment variables.
+
+## Endpoint
+
+The tool provides the following endpoint:
+
+- **/get_translation**: Translate a given text from one language to another. The input should be a text string and the target language.
+
+## Function Description
+
+- **get_translation(text: str, tgt_lang: str) -> str**: This function translates a given text from one language to another. The text should be a string and the target language should be a string representing the language code. The function returns the translated text.
\ No newline at end of file
diff --git a/swarms/tools/translator.py b/swarms/tools/translator.py
new file mode 100644
index 00000000..d3ee0021
--- /dev/null
+++ b/swarms/tools/translator.py
@@ -0,0 +1,122 @@
+from langchain.llms import OpenAI
+from langchain.prompts import PromptTemplate
+from langchain.chains import LLMChain
+
+import py3langid as langid
+from iso639 import languages
+
+from typing import Dict
+from copy import deepcopy
+import os
+
+def detect_lang(text: str):
+ lang_code = langid.classify(text)[0]
+ lang_name = languages.get(part1=lang_code[:2]).name
+ return lang_name
+
+class Translator:
+
+ def __init__(self,
+ openai_api_key: str = None,
+ model_name: str = "gpt-3.5-turbo"):
+ self.openai_api_key = openai_api_key
+ self.model_name = model_name
+ self.init_flag = False
+
+ def init_model(self):
+ llm = self.create_openai_model(self.openai_api_key, self.model_name)
+ prompt = self.create_prompt()
+ self.chain = LLMChain(llm=llm, prompt=prompt)
+ self.init_flag = True
+
+ def __call__(self, inputs: Dict[str, str]) -> Dict[str, str]:
+ if not self.init_flag:
+ self.init_model()
+
+ question = inputs["input"]
+ answer = inputs["output"]
+
+ src_lang = detect_lang(answer)
+ tgt_lang = detect_lang(question)
+
+ if src_lang != tgt_lang:
+ translated_answer = self.chain.run(text=answer, language=tgt_lang)
+ outputs = deepcopy(inputs)
+ outputs["output"] = translated_answer
+ return outputs
+ else:
+ return inputs
+
+ def create_openai_model(self, openai_api_key: str, model_name: str) -> OpenAI:
+ if openai_api_key is None:
+ openai_api_key = os.environ.get('OPENAI_API_KEY')
+ llm = OpenAI(model_name=model_name,
+ temperature=0.0,
+ openai_api_key=openai_api_key)
+ return llm
+
+ def create_prompt(self) -> PromptTemplate:
+ template = """
+ Translate to {language}: {text} =>
+ """
+ prompt = PromptTemplate(
+ input_variables=["text", "language"],
+ template=template
+ )
+ return prompt
+
+if __name__ == "__main__":
+ lang = {
+ "zh": {
+ "question": "帮我介绍下《深海》这部电影",
+ "answer": "《深海》是一部中国大陆的动画、奇幻电影,由田晓鹏导演,苏鑫、王亭文、滕奎兴等人主演。剧情简介是在大海的最深处,藏着所有秘密。一位现代少女(参宿)误入梦幻的 深海世界,却因此邂逅了一段独特的生命旅程。",
+ },
+ "ja": {
+ "question": "映画「深海」について教えてください",
+ "answer": "「深海」は、中国本土のアニメーションおよびファンタジー映画で、Tian Xiaopeng が監督し、Su Xin、Wang Tingwen、Teng Kuixing などが出演しています。 あらすじは、海の最深部にはすべての秘密が隠されているというもの。 夢のような深海の世界に迷い込んだ現代少女(さんすけ)は、それをきっかけに独特の人生の旅に出くわす。 ",
+ },
+ "ko": {
+ "question": "영화 딥씨에 대해 알려주세요",
+ "answer": "\"Deep Sea\"는 Tian Xiaopeng 감독, Su Xin, Wang Tingwen, Teng Kuixing 등이 출연한 중국 본토의 애니메이션 및 판타지 영화입니다. 시놉시스는 바다 가장 깊은 곳에 모든 비밀이 숨겨져 있다는 것입니다. 현대 소녀(산스케)는 꿈 같은 심해 세계로 방황하지만 그것 때문에 독특한 삶의 여정을 만난다. ",
+ },
+ "en": {
+ "question": "Tell me about the movie '深海'",
+ "answer": "\"Deep Sea\" is an animation and fantasy film in mainland China, directed by Tian Xiaopeng, starring Su Xin, Wang Tingwen, Teng Kuixing and others. The synopsis is that in the deepest part of the sea, all secrets are hidden. A modern girl (Sansuke) strays into the dreamy deep sea world, but encounters a unique journey of life because of it. ",
+ },
+ "de": {
+ "question": "Erzähl mir von dem Film '深海'",
+ "answer": "\"Deep Sea\" ist ein Animations- und Fantasyfilm in Festlandchina unter der Regie von Tian Xiaopeng mit Su Xin, Wang Tingwen, Teng Kuixing und anderen in den Hauptrollen. Die Zusammenfassung ist, dass im tiefsten Teil des Meeres alle Geheimnisse verborgen sind. Ein modernes Mädchen (Sansuke) verirrt sich in die verträumte Tiefseewelt, trifft dabei aber auf eine einzigartige Lebensreise. ",
+ },
+ "fr": {
+ "question": "Parlez-moi du film 'Deep Sea'",
+ "answer": "\"Deep Sea\" est un film d'animation et fantastique en Chine continentale, réalisé par Tian Xiaopeng, avec Su Xin, Wang Tingwen, Teng Kuixing et d'autres. Le synopsis est que dans la partie la plus profonde de la mer, tous les secrets sont cachés. Une fille moderne (Sansuke) s'égare dans le monde onirique des profondeurs marines, mais rencontre un voyage de vie unique à cause de cela. ",
+ },
+ "ru": {
+ "question": "Расскажите о фильме 'Глубокое море'",
+ "answer": "«Глубокое море» — это анимационный и фэнтезийный фильм в материковом Китае, снятый Тянь Сяопином, в главных ролях Су Синь, Ван Тинвэнь, Тэн Куйсин и другие. Суть в том, что в самой глубокой части моря скрыты все секреты. Современная девушка (Сансукэ) заблудилась в мечтательном глубоководном мире, но из-за этого столкнулась с уникальным жизненным путешествием. ",
+ },
+ }
+
+ translator = Translator()
+ for source in lang:
+ for target in lang:
+ print(source, "=>", target, end=":\t")
+ question = lang[target]["question"]
+ answer = lang[source]["answer"]
+ inputs = {
+ "input": question,
+ "output": answer
+ }
+
+ result = translator(inputs)
+ translated_answer = result["output"]
+
+ if detect_lang(question) == detect_lang(translated_answer) == languages.get(part1=target).name:
+ print("Y")
+ else:
+ print("N")
+ print("====================")
+ print("Question:\t", detect_lang(question), " - ", question)
+ print("Answer:\t", detect_lang(answer), " - ", answer)
+ print("Translated Anser:\t", detect_lang(translated_answer), " - ", translated_answer)
+ print("====================")
diff --git a/swarms/tools/travel/api.py b/swarms/tools/travel/api.py
new file mode 100644
index 00000000..adbb3462
--- /dev/null
+++ b/swarms/tools/travel/api.py
@@ -0,0 +1,338 @@
+import os
+import re
+import json
+import requests
+from ..tool import Tool
+from typing import Optional
+from bs4 import BeautifulSoup
+from serpapi import GoogleSearch
+from datetime import datetime, timedelta
+from amadeus import Client, ResponseError
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Travel Info",
+ "Look up travel infomation about lodging, flight, car rental and landscape",
+ name_for_model="Travel",
+ description_for_model="""This is a plugin for look up real travel infomation. Results from this API are inaccessible for users. Please organize and re-present them.""",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ SERPAPI_KEY = os.environ.get('SERPAPI_KEY', '')
+ if SERPAPI_KEY == '':
+ raise RuntimeError("SERPAPI_KEY not provided, please register one at https://serpapi.com/search-api and add it to environment variables.")
+
+ AMADEUS_ID = os.environ.get('AMADEUS_ID', '')
+ if AMADEUS_ID == '':
+ raise RuntimeError("AMADEUS_ID not provided, please register one following https://developers.amadeus.com/ and add it to environment variables.")
+
+ AMADEUS_KEY = os.environ.get('AMADEUS_KEY', '')
+ if AMADEUS_KEY == '':
+ raise RuntimeError("AMADEUS_KEY not provided, please register one following https://developers.amadeus.com/ and add it to environment variables.")
+
+ def cName2coords(place_name: str,
+ limits: Optional[int] = 1):
+ """
+ This function accepts a place name and returns its coordinates.
+ :param (str) place_name: a string standing for target city for locating.
+ :param (str) limits: number of searching results. Usually 1 is enough.
+ :return: (longitude, latitude)
+ """
+ url = f"https://serpapi.com/locations.json?q={place_name}&limit={limits}"
+ response = requests.get(url)
+ if response.status_code == 200:
+
+ if response.json():
+ locations = response.json()
+ return locations[0]['gps']
+
+ # if not a city, use google map to find this place
+ else:
+ params = {"engine": "google_maps", "q": place_name, "type": "search", "api_key": SERPAPI_KEY}
+ search = GoogleSearch(params)
+ results = search.get_dict()
+ coords = results["place_results"]['gps_coordinates']
+
+ return coords["longitude"], coords["latitude"]
+
+ else:
+ return None
+
+
+ def cName2IATA(city_name: str):
+ """
+ This function accepts a city name and returns a IATA pilot code of the local airport.
+ :param (str) city_name: city name a s a string like 'Beijing'
+ :return: 3-letter IATA code like 'PEK'
+
+ """
+ try:
+ url = f"https://www.iata.org/en/publications/directories/code-search/?airport.search={city_name}"
+ response = requests.get(url)
+ html_content = response.content
+
+ soup = str(BeautifulSoup(html_content, "html.parser"))
+ head = soup.find(f"
{city_name}
")
+
+ string = soup[head:]
+ pattern = r"
(.*?)
"
+ matches = re.findall(pattern, string)
+
+ # Extract the desired value
+ desired_value = matches[2] # Index 2 corresponds to the third match (WUH)
+
+ return desired_value # Output: WUH
+
+ except:
+ raise ValueError("The input city may not have an IATA registered air-port.")
+
+
+ @tool.get("/lodgingProducts")
+ def lodgingProducts(
+ destination: str,
+ exhibit_maxnum: Optional[int] = 3,):
+ """
+ This function returns the lodging resources near a given location.
+ :param (str) destination: the destination can be a city, address, airport, or a landmark.
+ :param (int, optional) exhibit_maxnum: int like 2, 3, 4. It determines how much items to exhibit.
+ :return: lodging information at a given destination.
+ """
+
+ try:
+ # Convert destination to geographic coordinates
+ coords = cName2coords(destination)
+
+ # Set parameters for Google search
+ params = {
+ "engine": "google_maps",
+ "q": "hotel",
+ "ll": f"@{coords[1]},{coords[0]},15.1z",
+ "type": "search",
+ "api_key": SERPAPI_KEY
+ }
+
+ # Call GoogleSearch API with given parameters
+ search = GoogleSearch(params)
+ results = search.get_dict()
+ local_results = results["local_results"]
+
+ # hotel with website links are preferred
+ filtered_results = sorted(local_results, key=lambda x: 1 if "website" in x else 0, reverse=True)[:exhibit_maxnum]
+
+ # Return error message if no results match criteria
+ if not filtered_results:
+ return {"error": "No searching results satisfy user's demand."}
+
+ # Parse and format relevant information for each result
+ final_results = []
+ for item in filtered_results:
+ info = {}
+ for metadata in ("title", "website", "address","description","gps_coordinates", "open_state", "thumbnail"):
+ if metadata in item:
+ info[metadata] = item[metadata]
+ final_results.append(info)
+
+ # Return formatted results along with recommendations for next steps
+ return json.dumps({"data":final_results})
+
+ except ResponseError as error:
+ print("ResponseError", error)
+
+
+ @tool.get("/flightProducts")
+ def flightProducts(
+ origin: str,
+ destination: str,
+ departureDate: Optional[str] = None,
+ adult_num: Optional[str] = None,
+ exhibit_maxnum: Optional[int] = 3,
+ ):
+ """
+ This function returns the flight information between two cities.
+ :param origin: (str) city name, origin of departure
+ :param destination: (str) city name, destination of arrival
+ :param departureDate: (str, optional) Date formatted as "yyyy-mm-dd". It shoule be LATER than the PRESENT date. Pass None if not sure about this.
+ :param adult_num: (str, optional) Number of adults for flight tickets
+ :param exhibit_maxnum: (int, optional) Maximum number of items to show
+ :return: (dict) information about flight.
+
+ """
+ amadeus = Client(
+ client_id=AMADEUS_ID,
+ client_secret=AMADEUS_KEY,
+ )
+
+ # set default date if none or past date is given
+ defaultDate = (
+ f"{(datetime.now() + timedelta(days=1)).year}-{'0' + str((datetime.now() + timedelta(days=1)).month) if (datetime.now() + timedelta(days=1)).month < 10 else (datetime.now() + timedelta(days=1)).month}-{(datetime.now() + timedelta(days=1)).day}"
+ )
+ if not departureDate or departureDate < defaultDate:
+ departureDate = defaultDate
+
+ try:
+ # Call API to search flight offers
+ response = amadeus.shopping.flight_offers_search.get(
+ originLocationCode=cName2IATA(origin),
+ destinationLocationCode=cName2IATA(destination),
+ departureDate=departureDate,
+ adults=adult_num,
+ )
+
+ # Filter results based on exhibit_maxnum
+ filterd_results = response.data[:exhibit_maxnum]
+
+ # If no results found return error message
+ if not filterd_results:
+ return {"error": "No search results satisfy user's demand."}
+
+ final_results = []
+ for item in filterd_results:
+ info = {}
+ metadata = [
+ "itineraries",
+ "travelerPricings",
+ "lastTicketingDate",
+ "numberOfBookableSeats",
+ "source"]
+
+ # Only include relevant metadata in info
+ for key in metadata:
+ if key in item:
+ info[key] = item[key]
+
+ final_results.append(info)
+
+ # Return formatted results along with recommendations for next steps
+ return json.dumps({"data": final_results})
+ except ResponseError as error:
+ print("ResponseError", error)
+
+
+ @tool.get("/landscapeProducts")
+ def landscapeProducts(destination: str,
+ exhibit_maxnum: Optional[int] = 3, ):
+ """
+ This function returns the scenic spot information given a destination.
+ :param (str) destination: string of cityname, destination of arrival
+ :param (int, optional) exhibit_maxnum: int like 3, 4, 5. It determines how many spots to display.
+ :return: Information about landscape around that destination.
+
+ """
+
+ try:
+ # Get the coordinates of the destination using the cName2coords function
+ coords = cName2coords(destination)
+
+ # Set parameters for the GoogleSearch API call
+ params = {
+ "engine": "google_maps",
+ "q": "tourist attractions",
+ "ll": f"@{coords[1]},{coords[0]},15.1z",
+ "type": "search",
+ "api_key": SERPAPI_KEY
+ }
+
+ # Call the GoogleSearch API
+ search = GoogleSearch(params)
+ results = search.get_dict()
+ local_results = results["local_results"]
+
+ # Sort the results by the specified keyword if provided
+ sorting_keywords = "reviews"
+ if sorting_keywords:
+ local_results = sorted(local_results, key=lambda x: x[sorting_keywords] if sorting_keywords in x else 0, reverse=True)
+
+ # Filter the results to exhibit_maxnum number of items
+ filterd_results = local_results[:exhibit_maxnum]
+
+ # Return an error message if no results are found
+ if not filterd_results:
+ return {"error": "No searching results satisfy user's demand."}
+
+ # Format the results into a dictionary to be returned to the user
+ final_results = []
+ for item in filterd_results:
+ final_results.append({"spot_name": item["title"]})
+
+ for keywords in ("description", "address", "website", "rating", "thumbnail"):
+ if keywords in item:
+ final_results[-1][keywords] = item[keywords]
+
+ # Return the formatted data and some extra information to the user
+ return json.dumps({"data":final_results})
+
+ except ResponseError as error:
+ print("ResponseError", error)
+
+ @tool.get("/carProducts")
+ async def carProducts(
+ pickup_location: str,
+ exhibit_maxnum: Optional[int] = 3,
+ ):
+ """
+ Given a pickup location, returns a list of car rentals nearby.
+ :param pickup_location: string of city name or location for the car rental pickups.
+ :param exhibit_maxnum: number of rental cars to display.
+ :return: a dict of data and some extra-information for the LLM.
+ """
+ try:
+ coords = cName2coords(pickup_location)
+ # Construct search query params with SERPAPI_KEY
+ params = {
+ "engine": "google_maps",
+ "q": "car rentals",
+ "ll": f"@{coords[1]},{coords[0]},15.1z",
+ "type": "search",
+ "api_key": SERPAPI_KEY
+ }
+
+ # Search for nearby car rentals on SERPAPI
+ search = GoogleSearch(params)
+ results = search.get_dict()
+ local_results = results["local_results"]
+
+ # Sort results by rating or reviews keywords if sorting_keywords is specified
+ sorting_keywords = "reviews"
+ if sorting_keywords:
+ local_results = sorted(
+ local_results,
+ key=lambda x: x.get(sorting_keywords, 0),
+ reverse=True
+ )
+
+ # Make sure spots with a website appear first
+ local_results = sorted(
+ local_results,
+ key=lambda x: 'website' in x,
+ reverse=True
+ )
+
+ # Choose the exhibit_maxnum rentals to display
+ filtered_results = local_results[:exhibit_maxnum]
+
+ # Return an error if there are no results
+ if not filtered_results:
+ return {"error": "No results found."}
+
+ # Format the output dictionary with relevant data
+ final_results = []
+ for item in filtered_results:
+ spot = {"spot_name": item["title"]}
+
+ for keyword in ("description", "address", "website", "rating", "thumbnail"):
+ if keyword in item:
+ spot[keyword] = item[keyword]
+
+ final_results.append(spot)
+
+ # Return the formatted output dictionary with extra information
+ # Return formatted results along with recommendations for next steps
+ return json.dumps({"data": final_results})
+
+ except ResponseError: # Handle response error exceptions
+ return {"error": "Response error."}
+
+ return tool
diff --git a/swarms/tools/travel/readme.md b/swarms/tools/travel/readme.md
new file mode 100644
index 00000000..d8cc8b80
--- /dev/null
+++ b/swarms/tools/travel/readme.md
@@ -0,0 +1,5 @@
+# Travel Information
+
+Contributor: [Runchu Tian](https://github.com/Rachum-thu)
+
+You can get the API keys from https:https://serpapi.com/search-api and https://developers.amadeus.com/
\ No newline at end of file
diff --git a/swarms/tools/travel/test.py b/swarms/tools/travel/test.py
new file mode 100644
index 00000000..233059e8
--- /dev/null
+++ b/swarms/tools/travel/test.py
@@ -0,0 +1,15 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+from datetime import datetime, timedelta
+
+tool_name, tool_url = 'travel', "http://127.0.0.1:8079/tools/travel/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+month_later = str(datetime.now() + timedelta(days=30)).split()[0]
+agent(f"I will go to Seattle from Beijing on {month_later}. Can you make a recommendation on hotels and flight please?")
+agent("Please help me rent a car near Tsinghua University.")
+agent("Where can I visit on weekend if I am going to University of Washington this summer?")
\ No newline at end of file
diff --git a/swarms/tools/tutorial/__init__.py b/swarms/tools/tutorial/__init__.py
new file mode 100644
index 00000000..9b50b606
--- /dev/null
+++ b/swarms/tools/tutorial/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("tutorial")
+def tutorial():
+ from .api import build_tool
+ return build_tool
diff --git a/swarms/tools/tutorial/api.py b/swarms/tools/tutorial/api.py
new file mode 100644
index 00000000..5fc52106
--- /dev/null
+++ b/swarms/tools/tutorial/api.py
@@ -0,0 +1,39 @@
+import os
+import random
+import requests
+import hashlib
+from ..tool import Tool
+
+from langchain.prompts import PromptTemplate
+from langchain.chains import LLMChain
+from langchain.llms import OpenAI
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ tool_name="Tutorial",
+ description="Provide tutorial for foundation model based on a given objective.",
+ name_for_model="Tutorial",
+ description_for_model="Plugin for providing tutorial for a given objective.",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="xin.cong@outlook.com",
+ legal_info_url="hello@legal.com"
+ )
+ prompt = PromptTemplate.from_template(
+ "You are a planner who is an expert at coming up with a todo list for a given objective. Come up with a todo list for this objective: {objective}"
+ )
+
+ key = os.environ.get("OPENAI_API_KEY")
+ llm = OpenAI(model_name="gpt-3.5-turbo", temperature=0.0, openai_api_key=key)
+
+ chain = LLMChain(llm=llm, prompt=prompt)
+
+ @tool.get("/tutorial")
+ def tutorial(text: str) -> str:
+ """
+ tutorial(text: str) -> str: Providing a TODO list as a toturial for the foundation model based on the given objective.
+ """
+ result = chain.run(text)
+ return result
+
+ return tool
diff --git a/swarms/tools/tutorial/readme.md b/swarms/tools/tutorial/readme.md
new file mode 100644
index 00000000..e1bdd1bc
--- /dev/null
+++ b/swarms/tools/tutorial/readme.md
@@ -0,0 +1,31 @@
+# Tutorial Service
+
+Contributor: [Xin Cong](https://github.com/congxin95)
+
+# Tutorial Tool
+
+This tool provides a tutorial for a foundation model based on a given objective.
+
+## Setup
+
+The tool is initialized with the following parameters:
+
+- **name_for_model**: "Tutorial"
+- **description_for_model**: "Plugin for providing tutorial for a given objective."
+- **logo_url**: "https://your-app-url.com/.well-known/logo.png"
+- **contact_email**: "xin.cong@outlook.com"
+- **legal_info_url**: "hello@legal.com"
+
+## API Key
+
+The tool requires an API key from OpenAI. You can sign up for a free account at https://www.openai.com/, create a new API key, and add it to environment variables.
+
+## Endpoint
+
+The tool provides the following endpoint:
+
+- **/tutorial**: Provide a TODO list as a tutorial for the foundation model based on the given objective. The input should be a text string representing the objective.
+
+## Function Description
+
+- **tutorial(text: str) -> str**: This function provides a TODO list as a tutorial for the foundation model based on the given objective. The text should be a string representing the objective. The function returns a TODO list as a tutorial.
\ No newline at end of file
diff --git a/swarms/tools/tutorial/test.py b/swarms/tools/tutorial/test.py
new file mode 100644
index 00000000..6628639f
--- /dev/null
+++ b/swarms/tools/tutorial/test.py
@@ -0,0 +1,13 @@
+
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'tutorial', "http://127.0.0.1:8079/tools/tutorial/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+print(tools_config)
+agent = qa.load_tools(tools_name, tools_config)
+
+answer = agent("I want to cook pizza.")
+print(answer)
\ No newline at end of file
diff --git a/swarms/tools/walmart/__init__.py b/swarms/tools/walmart/__init__.py
new file mode 100644
index 00000000..b2f135bd
--- /dev/null
+++ b/swarms/tools/walmart/__init__.py
@@ -0,0 +1,7 @@
+
+from ..registry import register
+
+@register("walmart")
+def walmart():
+ from .api import build_tool
+ return build_tool
diff --git a/swarms/tools/walmart/api.py b/swarms/tools/walmart/api.py
new file mode 100644
index 00000000..f03d4885
--- /dev/null
+++ b/swarms/tools/walmart/api.py
@@ -0,0 +1,64 @@
+import os
+import re
+import json
+import requests
+from ..tool import Tool
+from typing import Optional
+from bs4 import BeautifulSoup
+from serpapi import GoogleSearch
+from amadeus import Client, ResponseError
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "walmart Info",
+ "Query about information about retail commodity on Walmart Platform.",
+ name_for_model="walmart",
+ description_for_model="""This is a plugin for look up real walmart infomation. Results from this API are inaccessible for users. Please organize and re-present them.""",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ SERPAPI_KEY = config["subscription_key"]
+
+ @tool.get("/ItemQuery")
+ def ItemQuery(
+ item: str,
+ option_num: Optional[int] = 3,
+ ):
+ """
+ This API gather retail information about queried items at walmart
+ :param item: product name presented as string.
+ :param option_num: the number of items presented for each queried item.
+ :return: a dict walmart retail information about queried items.
+ """
+
+ try:
+
+ params = {
+ "engine": "walmart",
+ "query": item,
+ "api_key": SERPAPI_KEY,
+ }
+ search = GoogleSearch(params)
+ results = search.get_dict()
+ organic_results = results["organic_results"]
+
+ item_res = []
+ for idx in range(min(option_num, len(results["organic_results"]))):
+ item_res.append({})
+ item_res[idx]["name"] = organic_results[idx]["title"]
+ item_res[idx]["description"] = organic_results[idx]["description"]
+ item_res[idx]["price"] = organic_results[idx]["primary_offer"]["offer_price"]
+ item_res[idx]["price_unit"] = organic_results[idx]["price_per_unit"]["unit"]
+ item_res[idx]["url"] = organic_results[idx]["product_page_url"]
+ item_res[idx]["rating"] = organic_results[idx]["rating"]
+ item_res[idx]["seller_name"] = organic_results[idx]["seller_name"]
+
+ return json.dumps(item_res)
+
+ except Exception: # Handle response error exceptions
+ return {"error": "Response error."}
+
+ return tool
\ No newline at end of file
diff --git a/swarms/tools/walmart/readme.md b/swarms/tools/walmart/readme.md
new file mode 100644
index 00000000..f9190690
--- /dev/null
+++ b/swarms/tools/walmart/readme.md
@@ -0,0 +1,7 @@
+# Walmart Information
+
+Contributor: [Runchu Tian](https://github.com/Rachum-thu)
+
+You can get the API keys from https:https://serpapi.com/search-api
+
+We will modify this plugin by designing better prompts for interaction.
\ No newline at end of file
diff --git a/swarms/tools/walmart/test.py b/swarms/tools/walmart/test.py
new file mode 100644
index 00000000..de0123e2
--- /dev/null
+++ b/swarms/tools/walmart/test.py
@@ -0,0 +1,9 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'walmart', "http://127.0.0.1:8079/tools/walmart/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+
+qa = STQuestionAnswerer()
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("I want to have Kung Pao Chicken tonight. Please help me buy some onions on walmart.")
diff --git a/swarms/tools/weather/__init__.py b/swarms/tools/weather/__init__.py
new file mode 100644
index 00000000..0174dd78
--- /dev/null
+++ b/swarms/tools/weather/__init__.py
@@ -0,0 +1,7 @@
+
+from ..registry import register
+
+@register("weather")
+def weather():
+ from .api import build_tool
+ return build_tool
diff --git a/swarms/tools/weather/api.py b/swarms/tools/weather/api.py
new file mode 100644
index 00000000..af91ce2b
--- /dev/null
+++ b/swarms/tools/weather/api.py
@@ -0,0 +1,93 @@
+import requests
+import json
+from ..tool import Tool
+import os
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Weather Info",
+ "Look up weather information",
+ name_for_model="Weather",
+ description_for_model="Plugin for look up weather information",
+ logo_url="https://cdn.weatherapi.com/v4/images/weatherapi_logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ KEY = config["subscription_key"]
+ URL_CURRENT_WEATHER= "http://api.weatherapi.com/v1/current.json"
+ URL_FORECAST_WEATHER = "http://api.weatherapi.com/v1/forecast.json"
+
+ @tool.get("/get_weather_today")
+ def get_weather_today(location : str):
+ '''Get today's the weather
+ '''
+ param = {
+ "key": KEY,
+ "q": location
+ }
+ res_completion = requests.get(URL_CURRENT_WEATHER, params=param)
+ data = json.loads(res_completion.text.strip())
+ output = {}
+ output["overall"]= f"{data['current']['condition']['text']},\n"
+ output["name"]= f"{data['location']['name']},\n"
+ output["region"]= f"{data['location']['region']},\n"
+ output["country"]= f"{data['location']['country']},\n"
+ output["localtime"]= f"{data['location']['localtime']},\n"
+ output["temperature"]= f"{data['current']['temp_c']}(C), {data['current']['temp_f']}(F),\n"
+ output["percipitation"]= f"{data['current']['precip_mm']}(mm), {data['current']['precip_in']}(inch),\n"
+ output["pressure"]= f"{data['current']['pressure_mb']}(milibar),\n"
+ output["humidity"]= f"{data['current']['humidity']},\n"
+ output["cloud"]= f"{data['current']['cloud']},\n"
+ output["body temperature"]= f"{data['current']['feelslike_c']}(C), {data['current']['feelslike_f']}(F),\n"
+ output["wind speed"]= f"{data['current']['gust_kph']}(kph), {data['current']['gust_mph']}(mph),\n"
+ output["visibility"]= f"{data['current']['vis_km']}(km), {data['current']['vis_miles']}(miles),\n"
+ output["UV index"]= f"{data['current']['uv']},\n"
+
+ text_output = f"Today's weather report for {data['location']['name']} is:\n"+"".join([f"{key}: {output[key]}" for key in output.keys()])
+ return text_output
+
+ @tool.get("/forecast_weather")
+ def forecast_weather(location : str, days : int):
+ '''Forecast weather in the upcoming days.
+ '''
+ param = {
+ "key": KEY,
+ "q": location,
+ "days": int(days),
+ }
+ res_completion = requests.get(URL_FORECAST_WEATHER, params=param)
+ res_completion = json.loads(res_completion.text.strip())
+ MAX_DAYS = 14
+ res_completion = res_completion["forecast"]["forecastday"][int(days)-1 if int(days) < MAX_DAYS else MAX_DAYS-1]
+ output_dict = {}
+ for k, v in res_completion["day"].items():
+ output_dict[k] = v
+ for k, v in res_completion["astro"].items():
+ output_dict[k] = v
+
+ output = {}
+ output["over all weather"] = f"{output_dict['condition']['text']},\n"
+ output["max temperature"] = f"{output_dict['maxtemp_c']}(C), {output_dict['maxtemp_f']}(F),\n"
+ output["min temperature"] = f"{output_dict['mintemp_c']}(C), {output_dict['mintemp_f']}(F),\n"
+ output["average temperature"] = f"{output_dict['avgtemp_c']}(C), {output_dict['avgtemp_f']}(F),\n"
+ output["max wind speed"] = f"{output_dict['maxwind_kph']}(kph), {output_dict['maxwind_mph']}(mph),\n"
+ output["total precipitation"] = f"{output_dict['totalprecip_mm']}(mm), {output_dict['totalprecip_in']}(inch),\n"
+ output["will rain today"] = f"{output_dict['daily_will_it_rain']},\n"
+ output["chance of rain"] = f"{output_dict['daily_chance_of_rain']},\n"
+ output["total snow"] = f"{output_dict['totalsnow_cm']}(cm),\n"
+ output["will snow today"] = f"{output_dict['daily_will_it_snow']},\n"
+ output["chance of snow"] = f"{output_dict['daily_chance_of_snow']},\n"
+ output["average visibility"] = f"{output_dict['avgvis_km']}(km), {output_dict['avgvis_miles']}(miles),\n"
+ output["average humidity"] = f"{output_dict['avghumidity']},\n"
+ output["UV index"] = f"{output_dict['uv']},\n"
+ output["sunrise time"] = f"{output_dict['sunrise']},\n"
+ output["sunset time"] = f"{output_dict['sunset']},\n"
+ output["moonrise time"] = f"{output_dict['moonrise']},\n"
+ output["moonset time"] = f"{output_dict['moonset']},\n"
+
+ text_output = f"The weather forecast for {param['q']} at {param['days']} days later is: \n"+"".join([f"{key}: {output[key]}" for key in output.keys()])
+ return text_output
+
+ return tool
diff --git a/swarms/tools/weather/readme.md b/swarms/tools/weather/readme.md
new file mode 100644
index 00000000..3d2b6efc
--- /dev/null
+++ b/swarms/tools/weather/readme.md
@@ -0,0 +1,35 @@
+# Weather Queries
+
+Contributor: [Yujia Qin](https://github.com/thuqinyj16)
+
+You can get the API keys from https://www.weatherapi.com/
+
+# Weather Info Tool
+
+This tool allows you to look up weather information.
+
+## Setup
+
+The tool is initialized with the following parameters:
+
+- **name_for_model**: "Weather Info"
+- **description_for_model**: "Plugin for look up weather information"
+- **logo_url**: "https://cdn.weatherapi.com/v4/images/weatherapi_logo.png"
+- **contact_email**: "hello@contact.com"
+- **legal_info_url**: "hello@legal.com"
+
+## API Key
+
+The tool requires an API key from WeatherAPI. You can sign up for a free account at https://www.weatherapi.com/, create a new API key, and add it to environment variables.
+
+## Endpoint
+
+The tool provides the following endpoints:
+
+- **/get_weather_today**: Get today's weather. The input should be a location string.
+- **/forecast_weather**: Forecast weather in the upcoming days. The input should be a location string and the number of days for the forecast.
+
+## Function Descriptions
+
+- **get_weather_today(location: str) -> str**: This function gets today's weather for a given location. The location should be a string. The function returns a string with the weather information.
+- **forecast_weather(location: str, days: int) -> str**: This function forecasts the weather for a given location in the upcoming days. The location should be a string and days should be an integer. The function returns a string with the weather forecast.
\ No newline at end of file
diff --git a/swarms/tools/weather/test.py b/swarms/tools/weather/test.py
new file mode 100644
index 00000000..07cdbf3a
--- /dev/null
+++ b/swarms/tools/weather/test.py
@@ -0,0 +1,11 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'weather', "http://127.0.0.1:8079/tools/weather/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("What's the weather in London today?")
\ No newline at end of file
diff --git a/swarms/tools/wikipedia/__init__.py b/swarms/tools/wikipedia/__init__.py
new file mode 100644
index 00000000..7e7b684e
--- /dev/null
+++ b/swarms/tools/wikipedia/__init__.py
@@ -0,0 +1,7 @@
+
+from ..registry import register
+
+@register("wikipedia")
+def wikipedia():
+ from .api import build_tool
+ return build_tool
diff --git a/swarms/tools/wikipedia/api.py b/swarms/tools/wikipedia/api.py
new file mode 100644
index 00000000..cd1cea74
--- /dev/null
+++ b/swarms/tools/wikipedia/api.py
@@ -0,0 +1,150 @@
+import requests
+from bs4 import BeautifulSoup
+from ..tool import Tool
+from fastapi import Request
+from uuid import UUID
+
+def clean_str(p):
+ return p.encode().decode("unicode-escape").encode("latin1").decode("utf-8")
+
+class WikiPage:
+ def __init__(self):
+ self.page = ""
+ self.paragraphs = []
+ self.sentences = []
+ self.lookup_cnt = 0
+ self.lookup_list = []
+ self.lookup_keyword = None
+
+ def reset_page(self):
+ self.page = ""
+ self.paragraphs = []
+ self.sentences = []
+ self.lookup_cnt = 0
+ self.lookup_list = []
+ self.lookup_keyword = None
+
+ def get_page_obs(self, page):
+ self.page = page
+ paragraphs = []
+ sentences = []
+ # find all paragraphs
+ paragraphs = page.split("\n")
+ paragraphs = [p.strip() for p in paragraphs if p.strip()]
+
+ # find all sentence
+ sentences = []
+ for p in paragraphs:
+ sentences += p.split('. ')
+ sentences = [s.strip() + '.' for s in sentences if s.strip()]
+ self.paragraphs = paragraphs
+ self.sentences = sentences
+ return ' '.join(sentences[:5])
+
+ def construct_lookup_list(self, keyword : str):
+ sentences = self.sentences
+ parts = []
+ for index, p in enumerate(sentences):
+ if keyword.lower() in p.lower():
+ parts.append(index)
+ self.lookup_list = parts
+ self.lookup_keyword = keyword
+ self.lookup_cnt = 0
+
+currentPage = WikiPage()
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Wikipedia Search",
+ "Plugin for wikipedia",
+ name_for_model="Wikipedia",
+ name_for_human="Wikipedia",
+ description_for_model="A tool to search entity, view content and disambiguate entity on Wikipedia.\nCurrent endpoint for each function is simple and you should only use exact entity name as input for search and disambiguate. And the keyword input to lookup api should also be simple like one or two words.\nSome Tips to use the APIs bertter:\n1. When the search api doesn't find the corresponding page, you should search a related entity in the return list.\n2. You can only search one entity name in each action, so, don't concat multiple entity names in one search input.\n3. The lookup api can only be used after search api since it depends on the result page of search.\n4. When search api result in an entity page that is not related, you should disambiguate the searched entity to find other entities with the same name.\n5. Don't over rely one this simple tool, you may figure out the next action based on your own knowledge.",
+ description_for_human="A tool to search entity, view content and disambiguate entity on Wikipedia.\nCurrent endpoint for each function is simple and you should only use exact entity name as input for search and disambiguate. And the keyword input to lookup api should also be simple like one or two words.",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ @tool.get("/search")
+ def search(entity : str, request : Request):
+ '''The input is an exact entity name. The action will search this entity name on Wikipedia and returns the first five sentences if it exists. If not, it will return some related entities to search next.
+ '''
+
+ entity_ = entity.replace(" ", "+")
+ search_url = f"https://en.wikipedia.org/w/index.php?search={entity_}"
+ response_text = requests.get(search_url).text
+ soup = BeautifulSoup(response_text, features="html.parser")
+ result_divs = soup.find_all("div", {"class": "mw-search-result-heading"})
+ if result_divs: # mismatch
+ result_titles = [clean_str(div.get_text().strip()) for div in result_divs]
+ obs = f"Could not find {entity}. Similar: {result_titles[:5]}."
+ else:
+ local_page = [p.get_text().strip() for p in soup.find_all("p") + soup.find_all("ul")]
+ if any("may refer to:" in p for p in local_page):
+ obs = search("[" + entity + "]", request)
+ else:
+ currentPage.reset_page()
+ page = ""
+ for p in local_page:
+ if len(p.split(" ")) > 2:
+ page += clean_str(p)
+ if not p.endswith("\n"):
+ page += "\n"
+ obs = currentPage.get_page_obs(page)
+ return obs
+
+ @tool.get("/lookup")
+ def lookup(keyword : str, request : Request) -> str:
+ '''The input is a keyword. This action will look up in the current passage and return the next several sentences containing the keyword in current passage.
+ '''
+ # lookup_keyword = request.session["lookup_keyword"]
+ # lookup_list = request.session["lookup_list"]
+ # lookup_cnt = request.session["lookup_cnt"]
+ # sentences = request.session["sentences"]
+ lookup_keyword = currentPage.lookup_keyword
+ if lookup_keyword != keyword: # reset lookup
+ currentPage.construct_lookup_list(keyword)
+ lookup_list = currentPage.lookup_list
+ lookup_cnt = currentPage.lookup_cnt
+ sentences = currentPage.sentences
+ if lookup_cnt >= len(lookup_list):
+ obs = "No more results."
+ else:
+ index = lookup_list[lookup_cnt]
+ before_sentence_num = min(index, 1)
+ max_sentence_num = 3 # 一共3句话
+ lookup_result = ' '.join(sentences[index - before_sentence_num: index - before_sentence_num + max_sentence_num])
+ obs = f"(Result {lookup_cnt + 1} / {len(lookup_list)}) " + lookup_result
+ currentPage.lookup_cnt += 1
+ return obs
+
+ @tool.get("/disambiguation")
+ def disambiguation(entity : str) -> str:
+ '''The input is an entity name. This action will disambiguate this entity name to find other entities with similar names in Wikipedia.
+ '''
+ # self.reset_pages()
+ url = f"https://en.wikipedia.org/wiki/{entity}_(disambiguation)"
+ # url = f"https://en.wikipedia.org{href}"
+ response = requests.get(url)
+ html_code = response.content
+ soup = BeautifulSoup(html_code, "html.parser")
+ # Extract all the list items from the page
+ list_items = soup.find_all("li")
+ # Extract the text content of each list item and print it
+ titles = []
+ for item in list_items:
+ link = item.find("a")
+ if link and entity.lower() in item.get_text().lower() and "/wiki" in link["href"]:
+ titles.append(link.get_text())
+ # print(f"{link.get_text()} - {link['href']}")
+ # print(item.get_text())
+ # print("\n")
+ whether_need_disambiguation = True
+ max_return_titles = 5
+ if len(titles) > max_return_titles:
+ titles = titles[:max_return_titles]
+ obs = f"Related entities to {entity}: {titles}"
+ return obs
+
+ return tool
\ No newline at end of file
diff --git a/swarms/tools/wikipedia/readme.md b/swarms/tools/wikipedia/readme.md
new file mode 100644
index 00000000..24eb1798
--- /dev/null
+++ b/swarms/tools/wikipedia/readme.md
@@ -0,0 +1,28 @@
+# Search in Wikipedia
+
+Contributor: [Yufei Huang](https://github.com/huangyf530)
+
+# Wikipedia Search Tool
+
+This tool allows you to search for entities, view content, and disambiguate entities on Wikipedia.
+
+## Setup
+
+The tool is initialized with the following parameters:
+
+- **name_for_model**: "Wikipedia Search"
+- **description_for_model**: "Plugin for wikipedia"
+
+## Endpoint
+
+The tool provides the following endpoints:
+
+- **/search**: Search for an entity on Wikipedia.
+- **/lookup**: Look up a keyword in the current passage.
+- **/disambiguation**: Disambiguate an entity name to find other entities with similar names on Wikipedia.
+
+## Function Descriptions
+
+- **search(entity: str) -> str**: This function searches for an entity on Wikipedia and returns the first five sentences if it exists. If not, it returns some related entities to search next. The entity should be a string.
+- **lookup(keyword: str) -> str**: This function looks up a keyword in the current passage and returns the next several sentences containing the keyword. The keyword should be a string.
+- **disambiguation(entity: str) -> str**: This function disambiguates an entity name to find other entities with similar names on Wikipedia. The entity should be a string.
\ No newline at end of file
diff --git a/swarms/tools/wikipedia/test.py b/swarms/tools/wikipedia/test.py
new file mode 100644
index 00000000..531bc5bd
--- /dev/null
+++ b/swarms/tools/wikipedia/test.py
@@ -0,0 +1,22 @@
+
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+import requests
+import json
+
+# at = "{\"entity\": \"Arthur\"s Magazine\"}"
+# print(at[19])
+# print(len(at))
+# a = json.loads("{\"entity\": \"Arthur\"s Magazine\"}")
+# print(a)
+
+tool_name, tool_url = 'wikipedia', "http://127.0.0.1:8079/tools/wikipedia/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("Which magazine was started first, Arthur’s Magazine or First for Women?")
+
+agent("when was the first hunger games book published?")
\ No newline at end of file
diff --git a/swarms/tools/wolframalpha/__init__.py b/swarms/tools/wolframalpha/__init__.py
new file mode 100644
index 00000000..1f18c30f
--- /dev/null
+++ b/swarms/tools/wolframalpha/__init__.py
@@ -0,0 +1,6 @@
+from ..registry import register
+
+@register("wolframalpha")
+def wolframalpha():
+ from .api import build_tool
+ return build_tool
\ No newline at end of file
diff --git a/swarms/tools/wolframalpha/api.py b/swarms/tools/wolframalpha/api.py
new file mode 100644
index 00000000..1943e9cb
--- /dev/null
+++ b/swarms/tools/wolframalpha/api.py
@@ -0,0 +1,61 @@
+
+import requests
+from ..tool import Tool
+from typing import Any
+import os
+import xmltodict
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Wolfram",
+ "Wolfram",
+ name_for_model="Wolfram",
+ name_for_human="Wolfram",
+ description_for_model=""""Dynamic computation and curated data from WolframAlpha and Wolfram Cloud.\nOnly use the getWolframAlphaResults endpoints; all other Wolfram endpoints are deprecated.\nPrefer getWolframAlphaResults unless Wolfram Language code should be evaluated.\nTry to include images returned by getWolframAlphaResults. Queries to getWolframAlphaResults must ALWAYS have this structure: {\"input\": query}.\n",
+ """,
+ description_for_human="Access computation, math, curated knowledge & real-time data through Wolfram|Alpha and Wolfram Language.",
+ logo_url="https://www.wolframcdn.com/images/icons/Wolfram.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ @tool.get("/getWolframAlphaResults")
+ def getWolframAlphaResults(input:str):
+ """Get Wolfram|Alpha results using natural query. Queries to getWolframAlphaResults must ALWAYS have this structure: {\"input\": query}. And please directly read the output json.
+ """
+ URL = "https://api.wolframalpha.com/v2/query"
+
+ APPID = config["subscription_key"]
+
+ params = {'appid': APPID, "input": input}
+
+ response = requests.get(URL, params=params)
+
+ json_data = xmltodict.parse(response.text)
+
+ if 'pod' not in json_data["queryresult"]:
+ return "WolframAlpha API cannot parse the input query."
+ rets = json_data["queryresult"]['pod']
+
+ cleaned_rets = []
+ blacklist = ["@scanner", "@id", "@position", "@error", "@numsubpods", "@width", "@height", "@type", "@themes","@colorinvertable", "expressiontypes"]
+
+ def filter_dict(d, blacklist):
+ if isinstance(d, dict):
+ return {k: filter_dict(v, blacklist) for k, v in d.items() if k not in blacklist}
+ elif isinstance(d, list):
+ return [filter_dict(i, blacklist) for i in d]
+ else:
+ return d
+
+ for ret in rets:
+ ret = filter_dict(ret, blacklist=blacklist)
+ # Do further cleaning to retain only the input and result pods
+ if "@title" in ret:
+ if ret["@title"] == "Input" or ret["@title"] == "Result":
+ cleaned_rets.append(ret)
+
+ return cleaned_rets
+
+ return tool
\ No newline at end of file
diff --git a/swarms/tools/wolframalpha/readme.md b/swarms/tools/wolframalpha/readme.md
new file mode 100644
index 00000000..af09f99e
--- /dev/null
+++ b/swarms/tools/wolframalpha/readme.md
@@ -0,0 +1,29 @@
+# Query Wolframalpha Service
+
+Contributor [Shengding Hu](https://github.com/shengdinghu)
+
+You can get the API keys from https://products.wolframalpha.com/api/
+
+# Wolfram Tool
+
+This tool provides dynamic computation and curated data from WolframAlpha and Wolfram Cloud.
+
+## Setup
+
+The tool is initialized with the following parameters:
+
+- **name_for_model**: "Wolfram"
+- **description_for_model**: "Dynamic computation and curated data from WolframAlpha and Wolfram Cloud."
+- **logo_url**: "https://www.wolframcdn.com/images/icons/Wolfram.png"
+- **contact_email**: "hello@contact.com"
+- **legal_info_url**: "hello@legal.com"
+
+## Endpoint
+
+The tool provides the following endpoint:
+
+- **/getWolframAlphaResults**: Get Wolfram|Alpha results using a natural query.
+
+## Function Description
+
+- **getWolframAlphaResults(input: str) -> dict**: This function gets Wolfram|Alpha results using a natural query. The input should be a string. The function returns a dictionary containing the results. Note that queries to getWolframAlphaResults must ALWAYS have this structure: {"input": query}. Please directly read the output JSON.
\ No newline at end of file
diff --git a/swarms/tools/wolframalpha/test.py b/swarms/tools/wolframalpha/test.py
new file mode 100644
index 00000000..a22270a5
--- /dev/null
+++ b/swarms/tools/wolframalpha/test.py
@@ -0,0 +1,12 @@
+
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'wolframalpha', "http://127.0.0.1:8079/tools/wolframalpha/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("Calc integral of sin(x)+2x^2+3x+1 from 0 to 1")
\ No newline at end of file
diff --git a/swarms/tools/zillow/__init__.py b/swarms/tools/zillow/__init__.py
new file mode 100644
index 00000000..12c3f74b
--- /dev/null
+++ b/swarms/tools/zillow/__init__.py
@@ -0,0 +1,7 @@
+
+from ..registry import register
+
+@register("zillow")
+def zillow():
+ from .api import build_tool
+ return build_tool
diff --git a/swarms/tools/zillow/api.py b/swarms/tools/zillow/api.py
new file mode 100644
index 00000000..0b6e7d5c
--- /dev/null
+++ b/swarms/tools/zillow/api.py
@@ -0,0 +1,353 @@
+import requests
+import json
+from datetime import date, datetime, timedelta
+import os
+from ..tool import Tool
+
+from typing import Optional, Dict
+
+
+def build_tool(config) -> Tool:
+ tool = Tool(
+ "Real Estate Information",
+ "Look up rental and housing information",
+ name_for_model="Zillow",
+ description_for_model="Plugin for look up real estate information",
+ logo_url="https://your-app-url.com/.well-known/logo.png",
+ contact_email="hello@contact.com",
+ legal_info_url="hello@legal.com"
+ )
+
+ BASE_URL = "https://zillow-com1.p.rapidapi.com"
+ KEY = config["subscription_key"]
+ HEADERS = {
+ "X-RapidAPI-Key": KEY,
+ "X-RapidAPI-Host": "zillow-com1.p.rapidapi.com"
+ }
+
+
+ @tool.get("/search_properties")
+ def search_properties(location: str, page: Optional[int] = None, status_type: Optional[str] = None,
+ home_type: Optional[str] = None, sort: Optional[str] = None, polygon: Optional[str] = None,
+ minPrice: Optional[float] = None, maxPrice: Optional[float] = None,
+ rentMinPrice: Optional[float] = None, rentMaxPrice: Optional[float] = None,
+ bathsMin: Optional[int] = None, bathsMax: Optional[int] = None,
+ bedsMin: Optional[int] = None, bedsMax: Optional[int] = None,
+ sqftMin: Optional[int] = None, sqftMax: Optional[int] = None,
+ buildYearMin: Optional[int] = None, buildYearMax: Optional[int] = None,
+ daysOn: Optional[str] = None, soldInLast: Optional[str] = None,
+ isBasementFinished: Optional[int] = None, isBasementUnfinished: Optional[int] = None,
+ isPendingUnderContract: Optional[int] = None, isAcceptingBackupOffers: Optional[int] = None,
+ isComingSoon: Optional[bool] = None, otherListings: Optional[int] = None,
+ isNewConstruction: Optional[bool] = None, keywords: Optional[str] = None,
+ lotSizeMin: Optional[str] = None, lotSizeMax: Optional[str] = None,
+ saleByAgent: Optional[str] = None, saleByOwner: Optional[str] = None,
+ isForSaleForeclosure: Optional[bool] = None, isWaterfront: Optional[bool] = None,
+ hasPool: Optional[bool] = None, hasAirConditioning: Optional[bool] = None,
+ isCityView: Optional[bool] = None, isMountainView: Optional[bool] = None,
+ isWaterView: Optional[bool] = None, isParkView: Optional[bool] = None,
+ isOpenHousesOnly: Optional[bool] = None, is3dHome: Optional[bool] = None,
+ coordinates: Optional[str] = None, hoa: Optional[float] = None,
+ includeHomesWithNoHoaData: Optional[bool] = None, isAuction: Optional[bool] = None):
+
+ """
+ Function to search properties based on a set of parameters.
+
+ Parameters:
+ location (str): Location details, address, county, neighborhood or Zip code.
+ page (int): Page number if at the previous response totalPages > 1.
+ status_type (str): Status type of the property.
+ home_type (str): Type of the home.
+ sort (str): Sorting option for the results.
+ polygon (str): Polygon coordinates for the search.
+ minPrice (float): Minimum price of the property.
+ maxPrice (float): Maximum price of the property.
+ rentMinPrice (float): Minimum rent price of the property.
+ rentMaxPrice (float): Maximum rent price of the property.
+ bathsMin (int): Minimum number of bathrooms.
+ bathsMax (int): Maximum number of bathrooms.
+ bedsMin (int): Minimum number of bedrooms.
+ bedsMax (int): Maximum number of bedrooms.
+ sqftMin (int): Minimum square feet area of the property.
+ sqftMax (int): Maximum square feet area of the property.
+ buildYearMin (int): Minimum year of construction of the property.
+ buildYearMax (int): Maximum year of construction of the property.
+ daysOn (str): Days on Zillow.
+ soldInLast (str): Property sold in the last days.
+ isBasementFinished (int): Whether the basement is finished or not.
+ isBasementUnfinished (int): Whether the basement is unfinished or not.
+ isPendingUnderContract (int): Whether the property is under contract or not.
+ isAcceptingBackupOffers (int): Whether the property is accepting backup offers or not.
+ isComingSoon (bool): Whether the property is coming soon or not.
+ otherListings (int): Whether to include other listings or not.
+ isNewConstruction (bool): Whether the property is new construction or not.
+ keywords (str): Keywords to filter the search.
+ lotSizeMin (str): Minimum lot size of the property.
+ lotSizeMax (str): Maximum lot size of the property.
+ saleByAgent (str): Whether the property is for sale by agent or not.
+ saleByOwner (str): Whether the property is for sale by owner or not.
+ isForSaleForeclosure (bool): Whether the property is for sale by foreclosure or not.
+ isWaterfront (bool): Whether the property is a waterfront property or not.
+ hasPool (bool): Whether the property has a pool or not.
+ hasAirConditioning (bool): Whether the property has air conditioning or not.
+ isCityView (bool): Whether the property has a city view or not.
+ isMountainView (bool): Whether the property has a mountain view or not.
+ isWaterView (bool): Whether the property has a water view or not.
+ isParkView (bool): Whether the property has a park view or not.
+ isOpenHousesOnly (bool): Whether to only include properties with open houses.
+ is3dHome (bool): Whether the property has a 3D home tour.
+ coordinates (str): Coordinates of the location for the search.
+ hoa (float): Maximum HOA.
+ includeHomesWithNoHoaData (bool): Whether to include homes with no HOA data.
+ isAuction (bool): Whether the property is for auction.
+
+ Returns:
+ A response object from the Zillow API.
+ """
+ params = {
+ "location": location,
+ "page": page,
+ "status_type": status_type,
+ "home_type": home_type,
+ "sort": sort,
+ "polygon": polygon,
+ "minPrice": minPrice,
+ "maxPrice": maxPrice,
+ "rentMinPrice": rentMinPrice,
+ "rentMaxPrice": rentMaxPrice,
+ "bathsMin": bathsMin,
+ "bathsMax": bathsMax,
+ "bedsMin": bedsMin,
+ "bedsMax": bedsMax,
+ "sqftMin": sqftMin,
+ "sqftMax": sqftMax,
+ "buildYearMin": buildYearMin,
+ "buildYearMax": buildYearMax,
+ "daysOn": daysOn,
+ "soldInLast": soldInLast,
+ "isBasementFinished": isBasementFinished,
+ "isBasementUnfinished": isBasementUnfinished,
+ "isPendingUnderContract": isPendingUnderContract,
+ "isAcceptingBackupOffers": isAcceptingBackupOffers,
+ "isComingSoon": isComingSoon,
+ "otherListings": otherListings,
+ "isNewConstruction": isNewConstruction,
+ "keywords": keywords,
+ "lotSizeMin": lotSizeMin,
+ "lotSizeMax": lotSizeMax,
+ "saleByAgent": saleByAgent,
+ "saleByOwner": saleByOwner,
+ "isForSaleForeclosure": isForSaleForeclosure,
+ "isWaterfront": isWaterfront,
+ "hasPool": hasPool,
+ "hasAirConditioning": hasAirConditioning,
+ "isCityView": isCityView,
+ "isMountainView": isMountainView,
+ "isWaterView": isWaterView,
+ "isParkView": isParkView,
+ "isOpenHousesOnly": isOpenHousesOnly,
+ "is3dHome": is3dHome,
+ "coordinates": coordinates,
+ "hoa": hoa,
+ "includeHomesWithNoHoaData": includeHomesWithNoHoaData,
+ "isAuction": isAuction
+ }
+
+ # Remove parameters that are None
+ params = {k: v for k, v in params.items() if v is not None}
+ url = BASE_URL + '/propertyExtendedSearch'
+ # Send GET request to Zillow API endpoint
+ response = requests.get(url, headers=HEADERS, params=params)
+
+ return response.json()
+
+ @tool.get("/rent_estimate")
+ def rent_estimate(propertyType: str, address: Optional[str] = None, long: Optional[float] = None, lat: Optional[float] = None,
+ d: Optional[float] = None, beds: Optional[int] = None, baths: Optional[int] = None,
+ sqftMin: Optional[int] = None, sqftMax: Optional[int] = None):
+ """
+ Estimate rent for a property.
+
+ Args:
+ propertyType (str): Type of the property. This is a required parameter. Options are 'SingleFamily', 'Condo', 'MultiFamily', 'Townhouse', 'Apartment'
+ address (str, optional): Address of the property.
+ long (float, optional): Longitude of the property.
+ lat (float, optional): Latitude of the property.
+ d (float, optional): Diameter in miles. The max and low values are 0.5 and 0.05 respectively. The default value is 0.5.
+ beds (int, optional): Number of bedrooms in the property.
+ baths (int, optional): Number of bathrooms in the property.
+ sqftMin (int, optional): Minimum square footage of the property.
+ sqftMax (int, optional): Maximum square footage of the property.
+
+ Returns:
+ A response object from the Zillow API with rent estimate and comparable rentals information.
+ """
+ params = {
+ "propertyType": propertyType,
+ "address": address,
+ "long": long,
+ "lat": lat,
+ "d": d,
+ "beds": beds,
+ "baths": baths,
+ "sqftMin": sqftMin,
+ "sqftMax": sqftMax,
+ }
+
+ # Remove parameters that are None
+ params = {k: v for k, v in params.items() if v is not None}
+ url = BASE_URL + '/rentEstimate'
+ # Send GET request to Zillow API endpoint
+ response = requests.get(url, headers=HEADERS, params=params)
+
+ return response.json()
+
+ @tool.get("/zillow_property")
+ def zillow_property(zpid: Optional[int] = None, property_url: Optional[str] = None):
+ """
+ Fetch property details and Zestimate value.
+
+ Args:
+ zpid (int, optional): Unique ID that Zillow gives to each property.
+ property_url (str, optional): Full page URL of the property on Zillow.
+
+ Returns:
+ A response object from the Zillow API with property details and Zestimate value.
+ """
+ params = {
+ "zpid": zpid,
+ "property_url": property_url,
+ }
+
+ # Remove parameters that are None
+ params = {k: v for k, v in params.items() if v is not None}
+ url = BASE_URL + '/property'
+ # Send GET request to Zillow API endpoint
+ response = requests.get(url, headers=HEADERS, params=params)
+
+ return response.json()
+
+ @tool.get("/property_by_coordinates")
+ def property_by_coordinates(long: float, lat: float, d: Optional[float] = None, includeSold: Optional[bool] = None):
+ """
+ Search property by coordinates.
+
+ Args:
+ long (float): Longitude of the property. This is a required parameter.
+ lat (float): Latitude of the property. This is a required parameter.
+ d (float, optional): Diameter in miles. The max and low values are 0.5 and 0.05 respectively. The default value is 0.1.
+ includeSold (bool, optional): Include sold properties in the results. True or 1 to include (default), False or 0 to exclude.
+
+ Returns:
+ A response object from the Zillow API with an array of zpid.
+ """
+ params = {
+ "long": long,
+ "lat": lat,
+ "d": d,
+ "includeSold": includeSold,
+ }
+
+ # Remove parameters that are None
+ params = {k: v for k, v in params.items() if v is not None}
+ url = BASE_URL + '/propertyByCoordinates'
+ # Send GET request to Zillow API endpoint
+ response = requests.get(url, headers=HEADERS, params=params)
+
+ return response.json()
+
+ @tool.get("/property_by_mls")
+ def property_by_mls(mls: str):
+ """
+ Search property by MLS #.
+
+ Args:
+ mls (str): MLS # of the property. This is a required parameter.
+
+ Returns:
+ A response object from the Zillow API with an array of zpid.
+ """
+ params = {
+ "mls": mls,
+ }
+ url = BASE_URL + '/propertyByMls'
+ # Send GET request to Zillow API endpoint
+ response = requests.get(url, headers=HEADERS, params=params)
+
+ return response.json()
+
+ @tool.get("/location_suggestions")
+ def location_suggestions(q: str):
+ """
+ Search location by name.
+
+ Args:
+ q (str): Name of the state, county, neighborhood, city, or street. This is a required parameter.
+
+ Returns:
+ A response object from the Zillow API with suggested locations.
+ """
+ params = {
+ "q": q,
+ }
+ url = BASE_URL + '/locationSuggestions'
+ # Send GET request to Zillow API endpoint
+ response = requests.get(url, headers=HEADERS, params=params)
+
+ return response.json()
+
+ @tool.get("/similar_property")
+ def similar_property(zpid: Optional[int]=None, property_url: Optional[str]=None):
+ """
+ Get similar properties for sale. Either zpid or property_url is a required parameter.
+
+ Args:
+ zpid (int, optional): Zillow's unique identifier for a property. This can be obtained from /propertyExtendedSearch
+ or /propertyByCoordinates endpoints, or extracted from a full URL.
+ property_url (str, optional): Full page URL of the property.
+
+ Returns:
+ A response object from the Zillow API with similar properties for sale.
+ """
+ if not zpid and not property_url:
+ raise ValueError("Either zpid or property_url must be provided.")
+
+ params = {}
+ if zpid:
+ params["zpid"] = zpid
+ if property_url:
+ params["property_url"] = property_url
+ url = BASE_URL + '/similarProperty'
+ # Send GET request to Zillow API endpoint
+ response = requests.get(url, headers=HEADERS, params=params)
+
+ return response.json()
+
+ @tool.get("/similar_for_rent")
+ def similar_for_rent(zpid: Optional[int]=None, property_url: Optional[str]=None):
+ """
+ Get similar properties for rent. Either zpid or property_url is a required parameter.
+
+ Args:
+ zpid (int, optional): Zillow's unique identifier for a property. This can be obtained from /propertyExtendedSearch
+ or /propertyByCoordinates endpoints, or extracted from a full URL.
+ property_url (str, optional): Full page URL of the property.
+
+ Returns:
+ A response object from the Zillow API with similar properties for rent.
+ """
+ if not zpid and not property_url:
+ raise ValueError("Either zpid or property_url must be provided.")
+
+ params = {}
+ if zpid:
+ params["zpid"] = zpid
+ if property_url:
+ params["property_url"] = property_url
+ url = BASE_URL + '/similarForRent'
+ # Send GET request to Zillow API endpoint
+ response = requests.get(url, headers=HEADERS, params=params)
+
+ return response.json()
+
+ return tool
diff --git a/swarms/tools/zillow/readme.md b/swarms/tools/zillow/readme.md
new file mode 100644
index 00000000..045116ff
--- /dev/null
+++ b/swarms/tools/zillow/readme.md
@@ -0,0 +1,7 @@
+# Zillow Service
+
+Contributor: [Kunlun Zhu](https://github.com/Kunlun-Zhu)
+
+You can get your RAIPID key here: https://rapidapi.com/hub
+
+You ought to subscribe 'Zillow API' in your account to use this tool
\ No newline at end of file
diff --git a/swarms/tools/zillow/test.py b/swarms/tools/zillow/test.py
new file mode 100644
index 00000000..21c43c33
--- /dev/null
+++ b/swarms/tools/zillow/test.py
@@ -0,0 +1,11 @@
+from bmtools.agent.singletool import load_single_tools, STQuestionAnswerer
+
+tool_name, tool_url = 'Zillow', "http://127.0.0.1:8079/tools/zillow/"
+tools_name, tools_config = load_single_tools(tool_name, tool_url)
+print(tools_name, tools_config)
+
+qa = STQuestionAnswerer()
+
+agent = qa.load_tools(tools_name, tools_config)
+
+agent("List some houses in Santa Monica, CA.")
\ No newline at end of file
diff --git a/swarms/utils/knowledge_extraction.py b/swarms/utils/knowledge_extraction.py
new file mode 100644
index 00000000..0e0bc786
--- /dev/null
+++ b/swarms/utils/knowledge_extraction.py
@@ -0,0 +1,79 @@
+import json
+import os
+import requests
+import numpy as np
+import paramiko
+
+from nltk.stem import WordNetLemmatizer
+from nltk.corpus import wordnet, stopwords
+from nltk.tokenize import word_tokenize
+import nltk
+
+from swarms.tools.database.utils.db_parser import get_conf
+from swarms.tools.database.utils.database import DBArgs, Database
+from swarms.tools.db_diag.anomaly_detection import detect_anomalies
+from swarms.tools.db_diag.anomaly_detection import prometheus
+
+from swarms.tools.db_diag.example_generate import bm25
+
+# match with external knowledge for in-context learning
+
+class KnowledgeExtraction():
+
+ def __init__(self, file_path, topk=3, keyword_matching_func=bm25):
+
+ # select an attribute in the jsons to embed
+ self.names = {"matched_attr": "cause_name"}
+ self.cause_name = self.names["matched_attr"]
+
+ nltk.download('stopwords')
+ nltk.download('punkt')
+ nltk.download('averaged_perceptron_tagger')
+ nltk.download('wordnet')
+ self.wnl = WordNetLemmatizer()
+ self.keyword_matching_func = keyword_matching_func
+
+ self.topk = topk
+
+ self.corpus, self.preprocessed_corpus, self.matched_attr, self.stop_words = self.knowledge_load(file_path)
+
+ def knowledge_load(self, file_path):
+
+ # file_path = "/swarms/tools/db_diag/root_causes_dbmind.jsonl"
+ with open(str(os.getcwd()) + file_path, 'r') as f:
+ data = json.load(f)
+ self.corpus = [example["desc"] for example in data]
+ self.matched_attr = [example[self.names["matched_attr"]] for example in data]
+ self.stop_words = set(stopwords.words('english'))
+
+ self.preprocessed_corpus = []
+ for c in self.corpus:
+ word_tokens = word_tokenize(c)
+ self.preprocessed_corpus.append([self.wnl.lemmatize(w,pos='n') for w in word_tokens if not w in self.stop_words]) # remove useless words and standardize words
+
+ return self.corpus, self.preprocessed_corpus, self.matched_attr, self.stop_words
+
+ def match(self, detailed_metrics):
+
+ metrics_str = []
+ for metrics in detailed_metrics.keys():
+ metrics = metrics.replace("_"," ")
+ word_tokens = word_tokenize(metrics)
+ metrics_str.extend([self.wnl.lemmatize(w,pos='n') for w in word_tokens if not w in self.stop_words])
+ metrics_str = list(set(metrics_str))
+
+ best_index = self.keyword_matching_func(self.topk, metrics_str, self.preprocessed_corpus)
+ best_docs = [self.corpus[b] for b in best_index]
+ best_names = [self.matched_attr[b] for b in best_index]
+ docs_str = ""
+ print("Best docs: ", best_docs)
+ for i, docs in enumerate(best_docs):
+ docs_str = docs_str + "{}: ".format(best_names[i]) + docs + "\n\n"
+ print("docs_str: ", docs_str)
+
+ return docs_str
+
+
+if __name__ == "__main__":
+ matcher = KnowledgeExtraction("/root_causes_dbmind.jsonl")
+ print(matcher.match({"memory_resource_contention":123, "node_scrape_collector_duration_seconds": 1293}))
diff --git a/swarms/utils/tool_logging.py b/swarms/utils/tool_logging.py
new file mode 100644
index 00000000..47145dd0
--- /dev/null
+++ b/swarms/utils/tool_logging.py
@@ -0,0 +1,285 @@
+# coding=utf-8
+# Copyright 2020 Optuna, Hugging Face
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# BMTools copied from Huggingface Transformers
+""" Logging utilities."""
+
+import logging
+import os
+import sys
+import threading
+from logging import CRITICAL # NOQA
+from logging import DEBUG # NOQA
+from logging import ERROR # NOQA
+from logging import FATAL # NOQA
+from logging import INFO # NOQA
+from logging import NOTSET # NOQA
+from logging import WARN # NOQA
+from logging import WARNING # NOQA
+from typing import Optional
+
+
+_lock = threading.Lock()
+_default_handler: Optional[logging.Handler] = None
+
+log_levels = {
+ "debug": logging.DEBUG,
+ "info": logging.INFO,
+ "warning": logging.WARNING,
+ "error": logging.ERROR,
+ "critical": logging.CRITICAL,
+}
+
+_default_log_level = logging.INFO
+
+
+def _get_default_logging_level():
+ """
+ If BMTOOLS_VERBOSITY env var is set to one of the valid choices return that as the new default level. If it is
+ not - fall back to ``_default_log_level``
+ """
+ env_level_str = os.getenv("BMTOOLS_VERBOSITY", None)
+ if env_level_str:
+ if env_level_str in log_levels:
+ return log_levels[env_level_str]
+ else:
+ logging.getLogger().warning(
+ f"Unknown option BMTOOLS_VERBOSITY={env_level_str}, "
+ f"has to be one of: { ', '.join(log_levels.keys()) }"
+ )
+ return _default_log_level
+
+
+def _get_library_name() -> str:
+
+ return __name__.split(".")[0]
+
+
+def _get_library_root_logger() -> logging.Logger:
+
+ return logging.getLogger(_get_library_name())
+
+
+def _configure_library_root_logger() -> None:
+
+ global _default_handler
+
+ with _lock:
+ if _default_handler:
+ # This library has already configured the library root logger.
+ return
+ _default_handler = logging.StreamHandler() # Set sys.stderr as stream.
+ _default_handler.flush = sys.stderr.flush
+ formatter = logging.Formatter(
+ "\033[1;31m[%(levelname)s|(BMTools)%(module)s:%(lineno)d]%(asctime)s >> \033[0m %(message)s")
+ _default_handler.setFormatter(formatter)
+
+ # Apply our default configuration to the library root logger.
+ library_root_logger = _get_library_root_logger()
+ library_root_logger.addHandler(_default_handler)
+ library_root_logger.setLevel(_get_default_logging_level())
+
+
+ library_root_logger.propagate = False
+
+
+def _reset_library_root_logger() -> None:
+
+ global _default_handler
+
+ with _lock:
+ if not _default_handler:
+ return
+
+ library_root_logger = _get_library_root_logger()
+ library_root_logger.removeHandler(_default_handler)
+ library_root_logger.setLevel(logging.NOTSET)
+ _default_handler = None
+
+
+def get_log_levels_dict():
+ return log_levels
+
+
+
+def get_verbosity() -> int:
+ """
+ Return the current level for the 🤗 Transformers's root logger as an int.
+ Returns:
+ :obj:`int`: The logging level.
+
+ 🤗 Transformers has following logging levels:
+ - 50: ``transformers.logging.CRITICAL`` or ``transformers.logging.FATAL``
+ - 40: ``transformers.logging.ERROR``
+ - 30: ``transformers.logging.WARNING`` or ``transformers.logging.WARN``
+ - 20: ``transformers.logging.INFO``
+ - 10: ``transformers.logging.DEBUG``
+ """
+
+ _configure_library_root_logger()
+ return _get_library_root_logger().getEffectiveLevel()
+
+
+def set_verbosity(verbosity: int) -> None:
+ """
+ Set the verbosity level for the 🤗 Transformers's root logger.
+ Args:
+ verbosity (:obj:`int`):
+ Logging level, e.g., one of:
+ - ``transformers.logging.CRITICAL`` or ``transformers.logging.FATAL``
+ - ``transformers.logging.ERROR``
+ - ``transformers.logging.WARNING`` or ``transformers.logging.WARN``
+ - ``transformers.logging.INFO``
+ - ``transformers.logging.DEBUG``
+ """
+
+ _configure_library_root_logger()
+ _get_library_root_logger().setLevel(verbosity)
+
+
+def set_verbosity_info():
+ """Set the verbosity to the ``INFO`` level."""
+ return set_verbosity(INFO)
+
+
+def set_verbosity_warning():
+ """Set the verbosity to the ``WARNING`` level."""
+ return set_verbosity(WARNING)
+
+
+def set_verbosity_debug():
+ """Set the verbosity to the ``DEBUG`` level."""
+ return set_verbosity(DEBUG)
+
+
+def set_verbosity_error():
+ """Set the verbosity to the ``ERROR`` level."""
+ return set_verbosity(ERROR)
+
+
+def disable_default_handler() -> None:
+ """Disable the default handler of the HuggingFace Transformers's root logger."""
+
+ _configure_library_root_logger()
+
+ assert _default_handler is not None
+ _get_library_root_logger().removeHandler(_default_handler)
+
+
+def enable_default_handler() -> None:
+ """Enable the default handler of the HuggingFace Transformers's root logger."""
+
+ _configure_library_root_logger()
+
+ assert _default_handler is not None
+ _get_library_root_logger().addHandler(_default_handler)
+
+
+def add_handler(handler: logging.Handler) -> None:
+ """adds a handler to the HuggingFace Transformers's root logger."""
+
+ _configure_library_root_logger()
+
+ assert handler is not None
+ _get_library_root_logger().addHandler(handler)
+
+
+def remove_handler(handler: logging.Handler) -> None:
+ """removes given handler from the HuggingFace Transformers's root logger."""
+
+ _configure_library_root_logger()
+
+ assert handler is not None and handler not in _get_library_root_logger().handlers
+ _get_library_root_logger().removeHandler(handler)
+
+
+def disable_propagation() -> None:
+ """
+ Disable propagation of the library log outputs. Note that log propagation is disabled by default.
+ """
+
+ _configure_library_root_logger()
+ _get_library_root_logger().propagate = False
+
+
+def enable_propagation() -> None:
+ """
+ Enable propagation of the library log outputs. Please disable the HuggingFace Transformers's default handler to
+ prevent double logging if the root logger has been configured.
+ """
+
+ _configure_library_root_logger()
+ _get_library_root_logger().propagate = True
+
+
+def enable_explicit_format() -> None:
+ """
+ Enable explicit formatting for every HuggingFace Transformers's logger. The explicit formatter is as follows:
+ ```
+ [LEVELNAME|FILENAME|LINE NUMBER] TIME >> MESSAGE
+ ```
+ All handlers currently bound to the root logger are affected by this method.
+ """
+ handlers = _get_library_root_logger().handlers
+
+ for handler in handlers:
+ formatter = logging.Formatter("[%(levelname)s|%(filename)s:%(lineno)s] %(asctime)s >> %(message)s")
+ handler.setFormatter(formatter)
+
+
+def reset_format() -> None:
+ """
+ Resets the formatting for HuggingFace Transformers's loggers.
+ All handlers currently bound to the root logger are affected by this method.
+ """
+ handlers = _get_library_root_logger().handlers
+
+ for handler in handlers:
+ handler.setFormatter(None)
+
+
+def warning_advice(self, *args, **kwargs):
+ """
+ This method is identical to ``logger.warning()``, but if env var TRANSFORMERS_NO_ADVISORY_WARNINGS=1 is set, this
+ warning will not be printed
+ """
+ no_advisory_warnings = os.getenv("TRANSFORMERS_NO_ADVISORY_WARNINGS", False)
+ if no_advisory_warnings:
+ return
+ self.warning(*args, **kwargs)
+
+
+logging.Logger.warning_advice = warning_advice
+
+
+def get_logger(name: Optional[str] = None, verbosity='info') -> logging.Logger:
+ """
+ Return a logger with the specified name.
+ This function is not supposed to be directly accessed unless you are writing a custom transformers module.
+ """
+
+ if name is None:
+ name = _get_library_name()
+
+ _configure_library_root_logger()
+ logger = logging.getLogger(name)
+ logger.setLevel(log_levels[verbosity])
+
+ # Set up a file handler to write log messages to a file
+ # file_handler = logging.FileHandler('/Users/xuanhe/Documents/our-paper/instructdb/code/BMTools/bmtools/tools/database/my_log_file.log')
+ # file_handler.setLevel(log_levels[verbosity])
+ # logger.addHandler(file_handler)
+
+ return logger
\ No newline at end of file
diff --git a/swarms/workers/__init__.py b/swarms/workers/__init__.py
deleted file mode 100644
index dc72e565..00000000
--- a/swarms/workers/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-# from swarms.workers.worker import Worker
diff --git a/swarms/workers/base.py b/swarms/workers/base.py
deleted file mode 100644
index 358810bd..00000000
--- a/swarms/workers/base.py
+++ /dev/null
@@ -1,93 +0,0 @@
-from typing import Dict, List, Optional, Union
-
-
-class AbstractWorker:
- """(In preview) An abstract class for AI worker.
-
- An worker can communicate with other workers and perform actions.
- Different workers can differ in what actions they perform in the `receive` method.
- """
-
- def __init__(
- self,
- name: str,
- ):
- """
- Args:
- name (str): name of the worker.
- """
- # a dictionary of conversations, default value is list
- self._name = name
-
- @property
- def name(self):
- """Get the name of the worker."""
- return self._name
-
- def run(self, task: str):
- """Run the worker agent once"""
-
- def send(
- self,
- message: Union[Dict, str],
- recipient, # add AbstractWorker
- request_reply: Optional[bool] = None,
- ):
- """(Abstract method) Send a message to another worker."""
-
- async def a_send(
- self,
- message: Union[Dict, str],
- recipient, # add AbstractWorker
- request_reply: Optional[bool] = None,
- ):
- """(Aabstract async method) Send a message to another worker."""
-
- def receive(
- self,
- message: Union[Dict, str],
- sender, # add AbstractWorker
- request_reply: Optional[bool] = None,
- ):
- """(Abstract method) Receive a message from another worker."""
-
- async def a_receive(
- self,
- message: Union[Dict, str],
- sender, # add AbstractWorker
- request_reply: Optional[bool] = None,
- ):
- """(Abstract async method) Receive a message from another worker."""
-
- def reset(self):
- """(Abstract method) Reset the worker."""
-
- def generate_reply(
- self,
- messages: Optional[List[Dict]] = None,
- sender=None, # Optional["AbstractWorker"] = None,
- **kwargs,
- ) -> Union[str, Dict, None]:
- """(Abstract method) Generate a reply based on the received messages.
-
- Args:
- messages (list[dict]): a list of messages received.
- sender: sender of an Agent instance.
- Returns:
- str or dict or None: the generated reply. If None, no reply is generated.
- """
-
- async def a_generate_reply(
- self,
- messages: Optional[List[Dict]] = None,
- sender=None, # Optional["AbstractWorker"] = None,
- **kwargs,
- ) -> Union[str, Dict, None]:
- """(Abstract async method) Generate a reply based on the received messages.
-
- Args:
- messages (list[dict]): a list of messages received.
- sender: sender of an Agent instance.
- Returns:
- str or dict or None: the generated reply. If None, no reply is generated.
- """
diff --git a/swarms/workers/worker.py b/swarms/workers/worker.py
deleted file mode 100644
index 9986666a..00000000
--- a/swarms/workers/worker.py
+++ /dev/null
@@ -1,301 +0,0 @@
-import os
-import random
-from typing import Dict, Union
-
-import faiss
-from langchain.chains.qa_with_sources.loading import (
- load_qa_with_sources_chain,
-)
-from langchain.docstore import InMemoryDocstore
-from langchain.embeddings import OpenAIEmbeddings
-from langchain.tools import ReadFileTool, WriteFileTool
-from langchain.tools.human.tool import HumanInputRun
-from langchain.vectorstores import FAISS
-from langchain_experimental.autonomous_agents import AutoGPT
-
-from swarms.agents.message import Message
-from swarms.tools.autogpt import (
- WebpageQATool,
- process_csv,
-)
-from swarms.utils.decorators import error_decorator, timing_decorator
-
-# cache
-ROOT_DIR = "./data/"
-
-
-class Worker:
- """
- Useful for when you need to spawn an autonomous agent instance as a worker to accomplish complex tasks,
- it can search the internet or spawn child multi-modality models to process and generate images and text or audio and so on
-
- Parameters:
- - `model_name` (str): The name of the language model to be used (default: "gpt-4").
- - `openai_api_key` (str): The OpenvAI API key (optional).
- - `ai_name` (str): The name of the AI worker.
- - `ai_role` (str): The role of the AI worker.
- - `external_tools` (list): List of external tools (optional).
- - `human_in_the_loop` (bool): Enable human-in-the-loop interaction (default: False).
- - `temperature` (float): The temperature parameter for response generation (default: 0.5).
- - `llm` (ChatOpenAI): Pre-initialized ChatOpenAI model instance (optional).
- - `openai` (bool): If True, use the OpenAI language model; otherwise, use `llm` (default: True).
-
- Usage
- ```
- from swarms import Worker
-
- node = Worker(
- ai_name="Optimus Prime",
-
- )
-
- task = "What were the winning boston marathon times for the past 5 years (ending in 2022)? Generate a table of the year, name, country of origin, and times."
- response = node.run(task)
- print(response)
- ```
-
- llm + tools + memory
-
- """
-
- def __init__(
- self,
- ai_name: str = "Autobot Swarm Worker",
- ai_role: str = "Worker in a swarm",
- external_tools=None,
- human_in_the_loop=False,
- temperature: float = 0.5,
- llm=None,
- openai_api_key: str = None,
- ):
- self.temperature = temperature
- self.human_in_the_loop = human_in_the_loop
- self.llm = llm
- self.openai_api_key = openai_api_key
- self.ai_name = ai_name
- self.ai_role = ai_role
- self.coordinates = (
- random.randint(0, 100),
- random.randint(0, 100),
- ) # example coordinates for proximity
-
- self.setup_tools(external_tools)
- self.setup_memory()
- self.setup_agent()
-
- def reset(self):
- """
- Reset the message history.
- """
- self.message_history = ["Here is the conversation so far"]
-
- @property
- def name(self):
- """Name of the agent"""
- return self.ai_name
-
- def receieve(self, name: str, message: str) -> None:
- """
- Receive a message and update the message history.
-
- Parameters:
- - `name` (str): The name of the sender.
- - `message` (str): The received message.
- """
- self.message_history.append(f"{name}: {message}")
-
- def send(self) -> str:
- """Send message history."""
- self.agent.run(task=self.message_history)
-
- def add(self, task, priority=0):
- """Add a task to the task queue."""
- self.task_queue.append((priority, task))
-
- def setup_tools(self, external_tools):
- """
- Set up tools for the worker.
-
- Parameters:
- - `external_tools` (list): List of external tools (optional).
-
- Example:
- ```
- external_tools = [MyTool1(), MyTool2()]
- worker = Worker(model_name="gpt-4",
- openai_api_key="my_key",
- ai_name="My Worker",
- ai_role="Worker",
- external_tools=external_tools,
- human_in_the_loop=False,
- temperature=0.5)
- ```
- """
- query_website_tool = WebpageQATool(
- qa_chain=load_qa_with_sources_chain(self.llm)
- )
-
- self.tools = [
- WriteFileTool(root_dir=ROOT_DIR),
- ReadFileTool(root_dir=ROOT_DIR),
- process_csv,
- query_website_tool,
- HumanInputRun(),
- # compile,
- # VQAinference,
- ]
- if external_tools is not None:
- self.tools.extend(external_tools)
-
- def setup_memory(self):
- """
- Set up memory for the worker.
- """
- openai_api_key = os.getenv("OPENAI_API_KEY") or self.openai_api_key
- try:
- embeddings_model = OpenAIEmbeddings(openai_api_key=openai_api_key)
- embedding_size = 1536
- index = faiss.IndexFlatL2(embedding_size)
-
- self.vectorstore = FAISS(
- embeddings_model.embed_query, index, InMemoryDocstore({}), {}
- )
-
- except Exception as error:
- raise RuntimeError(
- "Error setting up memory perhaps try try tuning the embedding size:"
- f" {error}"
- )
-
- def setup_agent(self):
- """
- Set up the autonomous agent.
- """
- try:
- self.agent = AutoGPT.from_llm_and_tools(
- ai_name=self.ai_name,
- ai_role=self.ai_role,
- tools=self.tools,
- llm=self.llm,
- memory=self.vectorstore.as_retriever(search_kwargs={"k": 8}),
- human_in_the_loop=self.human_in_the_loop,
- )
-
- except Exception as error:
- raise RuntimeError(f"Error setting up agent: {error}")
-
- # @log_decorator
- @error_decorator
- @timing_decorator
- def run(self, task: str = None):
- """
- Run the autonomous agent on a given task.
-
- Parameters:
- - `task`: The task to be processed.
-
- Returns:
- - `result`: The result of the agent's processing.
- """
- try:
- result = self.agent.run([task])
- return result
- except Exception as error:
- raise RuntimeError(f"Error while running agent: {error}")
-
- # @log_decorator
- @error_decorator
- @timing_decorator
- def __call__(self, task: str = None):
- """
- Make the worker callable to run the agent on a given task.
-
- Parameters:
- - `task`: The task to be processed.
-
- Returns:
- - `results`: The results of the agent's processing.
- """
- try:
- results = self.agent.run([task])
- return results
- except Exception as error:
- raise RuntimeError(f"Error while running agent: {error}")
-
- def health_check(self):
- pass
-
- # @log_decorator
- @error_decorator
- @timing_decorator
- def chat(self, msg: str = None, streaming: bool = False):
- """
- Run chat
-
- Args:
- msg (str, optional): Message to send to the agent. Defaults to None.
- language (str, optional): Language to use. Defaults to None.
- streaming (bool, optional): Whether to stream the response. Defaults to False.
-
- Returns:
- str: Response from the agent
-
- Usage:
- --------------
- agent = MultiModalAgent()
- agent.chat("Hello")
-
- """
-
- # add users message to the history
- self.history.append(Message("User", msg))
-
- # process msg
- try:
- response = self.agent.run(msg)
-
- # add agent's response to the history
- self.history.append(Message("Agent", response))
-
- # if streaming is = True
- if streaming:
- return self._stream_response(response)
- else:
- response
-
- except Exception as error:
- error_message = f"Error processing message: {str(error)}"
-
- # add error to history
- self.history.append(Message("Agent", error_message))
-
- return error_message
-
- def _stream_response(self, response: str = None):
- """
- Yield the response token by token (word by word)
-
- Usage:
- --------------
- for token in _stream_response(response):
- print(token)
-
- """
- for token in response.split():
- yield token
-
- @staticmethod
- def _message_to_dict(message: Union[Dict, str]):
- """Convert a message"""
- if isinstance(message, str):
- return {"content": message}
- else:
- return message
-
- def is_within_proximity(self, other_worker):
- """Using Euclidean distance for proximity check"""
- distance = (
- (self.coordinates[0] - other_worker.coordinates[0]) ** 2
- + (self.coordinates[1] - other_worker.coordinates[1]) ** 2
- ) ** 0.5
- return distance < 10 # threshold for proximity