{"id":32991132,"url":"https://github.com/anapsid/anapsid","last_synced_at":"2026-01-10T22:48:03.164Z","repository":{"id":9032691,"uuid":"10793342","full_name":"anapsid/anapsid","owner":"anapsid","description":"An adaptive query processing engine for SPARQL endpoints.","archived":false,"fork":false,"pushed_at":"2017-09-13T12:30:48.000Z","size":834,"stargazers_count":18,"open_issues_count":2,"forks_count":6,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-05-13T09:34:30.616Z","etag":null,"topics":["python","query","query-engine","sparql","sparql-endpoints"],"latest_commit_sha":null,"homepage":"https://anapsid.github.io/anapsid/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anapsid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-06-19T13:36:08.000Z","updated_at":"2023-08-21T00:37:55.000Z","dependencies_parsed_at":"2022-09-12T23:22:42.430Z","dependency_job_id":null,"html_url":"https://github.com/anapsid/anapsid","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/anapsid/anapsid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anapsid%2Fanapsid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anapsid%2Fanapsid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anapsid%2Fanapsid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anapsid%2Fanapsid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anapsid","download_url":"https://codeload.github.com/anapsid/anapsid/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anapsid%2Fanapsid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284538091,"owners_count":27022334,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-15T02:00:06.050Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","query","query-engine","sparql","sparql-endpoints"],"created_at":"2025-11-13T09:00:33.277Z","updated_at":"2025-11-15T10:01:07.790Z","avatar_url":"https://github.com/anapsid.png","language":"Python","readme":"ANAPSID\n=======\n\nAn adaptive query processing engine for SPARQL endpoints.\n\n[1] Maribel Acosta, Maria-Esther Vidal, Tomas Lampo, Julio Castillo,\nEdna Ruckhaus: ANAPSID: An Adaptive Query Processing Engine for SPARQL\nEndpoints. International Semantic Web Conference (1) 2011: 18-34\n\n[2] Gabriela Montoya, Maria-Esther Vidal, Maribel Acosta: A\nHeuristic-Based Approach for Planning Federated SPARQL Queries. COLD\n2012\n\nInstalling ANAPSID\n==================\n\nANAPSID is known to run on Debian GNU/Linux and OS X. These instructions were tested \non the latest Debian Stable and OS X. The recommended way to\nexecute ANAPSID is to use Python 2.7. \n\n\n1. Download ANAPSID.\n\n   You can do this by cloning this repository using Git.\n\n   `$ git clone https://github.com/anapsid/anapsid.git ~/anapsid`\n   \n   OR\n\n   You can download the latest release from Github [here](https://github.com/anapsid/anapsid/releases) \n\n2. Go to your local copy of ANAPSID and run:\n\n   `$ pip install -r requirements.txt`\n\n   This will install ANAPSID's Python dependencies. Right now, the only library required to execute ANAPSID is ply 3.3 (https://pypi.python.org/pypi/ply/3.3)\n\n3. When step 2 is done you can now install ANAPSID. This will install\n   it only to your current user caged VirtualEnv as to prevent\n   polluting Python's global site-packages.\n\n   `$ python setup.py install`\n\n4. Go ahead and move to the next section on configuring ANAPSID.\n\nSetting up ANAPSID\n==================\n\nRunning ANAPSID depends on a endpoint description file. This file\ndescribes each endpoint URL and the predicates this endpoint\nhandles. ANAPSID comes bundled with a helper script to generate your\nendpoints descriptions as to prevent errors.\n\n1. Create a file, e.g. endpointsURLs.txt, with the URLs of your\n   endpoints, one per line.\n\n2. Run the script. It will contact each endpoint and retrieve their\n   predicates, so it might take a while. This will save your endpoint\n   descriptions on endpointsDescriptions.txt\n\n   `$ get_predicates endpointsURLs.txt endpointsDescriptions.txt`\n\n3. You are ready to run ANAPSID.\n\nAbout supported endpoints\n------------------------\n\nANAPSID currently supports endpoints that answer queries either on XML\nor JSON. Expect hard failures if you intend to use ANAPSID on\nendpoints that answer in any other format.\n\nRunning ANAPSID\n===============\n\nOnce you have installed ANAPSID and retrieved endpoint descriptions,\nyou can run ANAPSID using our run_anapsid script.\n\n`$ run_anapsid`\n\nIt will output a usage text and the options switches you can\nselect. We run our experiments, however, using the scripts bundled on\nutils/ so you might want to check that out to get an idea.\n\nANAPSID Parameters\n------------------\nAlternatively,  you can execute the following command to run a given query with ANAPSID:\n\n```\n$python $ANAPSIDROOT/run_anapsid -e $ENDPOINTS -q $query -p \u003cplanType\u003e -s False \n-o False -d \u003cTypeofDecompostion\u003e -a True -w False [-k \u003cspecial\u003e]  [-V \u003ctypeOfEndpoint\u003e] -r False\n```\n\nWhere:\n\n`$ANAPSIDROOT`: directory where ANAPSID is stored.\n\n`$ENDPOINTS`: path and name of the file where the description of the endpoints is stored.\n\n`$query`: path and name of the filw where the query is stored.\n\n`\u003cplanType\u003e`: can be **b** if the plan is bushy, **ll** is the plan is left linear, and **naive** for naive binary tree plan. \n\n`-o`: can be True or False. **True** indicates that the input query is in SPARQL1-1 and no decomposition is needed; **False**, otherwise.\n\n`-d`: indicates the type of Decomposition. \u003cTypeofDecompostion\u003e can be **SSGM** (Star Shaped\nGroup Multiple Endpoints), **SSGS** (Star Shaped Group Single Endpoint), **EG** (Exclusive Groups), Recommended SSGM.\n\n`-a`: indicates if the adaptive operators will be used. Recommended value **True**.\n\n`-w`:  can be True or False. Indicates if the cardinality of the queries will be estimated by contacting the sources (**True**) or by using a cost model (**False**). Turning True this feature may affect execution time.\n\n`-w`: can be y or c. The value **y** indicates that the plan will be produced, while **c** asks that decomposition. This parameter is optional, and should be set up only if the plan of the query wants to be produced. \n\n`-r`: can be True or False. Use **True** if the answer of the query will be output and **False** if only a summary of the execution will be produced. \n\n`-V`: can be True or False. **True** indicates if the endpoints to contact are Virtuoso, **False** is of any other type, e.g., OWLIM.\n\n\nIncluded query decomposing heuristics\n=====================================\n\nWe include three heuristics used for decomposing queries to be\nevaluated by a federation of endpoints. These are:\n\n1. Exclusive Groups (EG).\n2. Star-Shaped Group Single endpoint selection (SSGS). See [2].\n3. Star-Shaped Group Multiple endpoint selection (SSGM). See [2].\n \nRunning FedBench with ANAPSID\n=============================\nFedBench (see http://fedbench.fluidops.net) is a benchmark for testing federated query processing on RDF data sets.\n\nIn order to execute ANAPSID, it is necessary first to provide the endpoint descriptions. Endpoint descriptions are of the form `\u003cURLEndpoint\u003e \u003cLISTOfPredicates\u003e`. The file endpoints/endpointsFedBench provides \nthe description of the endpoints of the dataset collections in FedBench. The current URLs of the endpoints\nhave to be included as follows:\n```\n \u003chttp://URLnytimes_dataset/sparql\u003e URL of the NYTime endpoint\n \u003chttp://URLchebi_dataset/sparql\u003e URL of the Chebi endpoint\n \u003chttp://URLSWDF_dataset/sparql\u003e URL of the SW Dog Food endpoint\n \u003chttp://URLdrugbank_dataset/sparql\u003e URL of the Drugbank endpoint\n \u003chttp://URLjamendo_dataset/sparql\u003e URL of the Jamendo endpoint\n \u003chttp://URLkegg_dataset/sparql\u003e URL of the Kegg endpoint\n \u003chttp://URLlinkedmdb_dataset/sparql\u003e URL of the LinkedMDB endpoint\n \u003chttp://URLSP2B/sparql\u003e URL of the SP^2Bench 10M endpoint\n \u003chttp://URLgeonames/sparql\u003e URL of the Geonames endpoint\n```\n\nThe FedBench queries (see http://fedbench.fluidops.net/resource/Queries) are also available in the folder queries/fedbBench.  \n\nAbout and Contact\n=================\n\nANAPSID was developed at\n[Universidad Simón Bolívar](http://www.usb.ve) as an ongoing academic effort. You\ncan contact the current maintainers by email at mvidal[at]ldc[dot]usb[dot]ve.\n\nWe strongly encourage you to please report any issues you have with\nANAPSID. You can do that over our contact email or creating a new\nissue here on Github.\n\n- Simón Castillo: scastillo [at] ldc [dot] usb [dot] ve\n- Guillermo Palma: gpalma [at] ldc [dot] usb [dot] ve\n- Maria-Esther Vidal: mvidal [at] ldc [dot] usb [dot] ve\n- Gabriela Montoya: Gabriela [dot] Montoya [at] univ-nantes [dot] fr\n- Maribel Acosta: maribel [dot] acosta [at] kit [dot] edu\n\n\nLicense\n=======\n\nThis work is licensed under [GNU/GPL v2](https://www.gnu.org/licenses/gpl-2.0.html).\n","funding_links":[],"categories":["SPARQL"],"sub_categories":["Federated SPARQL"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanapsid%2Fanapsid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanapsid%2Fanapsid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanapsid%2Fanapsid/lists"}