{"id":38976307,"url":"https://github.com/frmichel/sparql-micro-service","last_synced_at":"2026-01-17T16:46:55.413Z","repository":{"id":50375463,"uuid":"116708689","full_name":"frmichel/sparql-micro-service","owner":"frmichel","description":"SPARQL micro-services: A lightweight approach to query Web APIs with SPARQL","archived":false,"fork":false,"pushed_at":"2024-11-04T14:17:35.000Z","size":3705,"stargazers_count":38,"open_issues_count":3,"forks_count":9,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-09-04T18:50:59.329Z","etag":null,"topics":["api-wrapper","linked-data","microservice","microservices-architecture","rdf","semantic-web","sparql","web-of-data"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/frmichel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":"codemeta.json","zenodo":null}},"created_at":"2018-01-08T17:46:25.000Z","updated_at":"2025-07-20T22:56:33.000Z","dependencies_parsed_at":"2023-01-29T14:15:25.192Z","dependency_job_id":"f3920c9b-de62-4b22-a9bb-ba848815d14c","html_url":"https://github.com/frmichel/sparql-micro-service","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/frmichel/sparql-micro-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frmichel%2Fsparql-micro-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frmichel%2Fsparql-micro-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frmichel%2Fsparql-micro-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frmichel%2Fsparql-micro-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frmichel","download_url":"https://codeload.github.com/frmichel/sparql-micro-service/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frmichel%2Fsparql-micro-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28511870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["api-wrapper","linked-data","microservice","microservices-architecture","rdf","semantic-web","sparql","web-of-data"],"created_at":"2026-01-17T16:46:55.318Z","updated_at":"2026-01-17T16:46:55.392Z","avatar_url":"https://github.com/frmichel.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SPARQL Micro-Services\n\nThe SPARQL Micro-Service architecture [1, 3] enables **querying Web APIs with SPARQL**, as well as **assigning dereferenceable URIs to Web API resources** that do not have a URI in the first place.\n\nEach SPARQL micro-service is a **lightweight SPARQL endpoint** that typically provides access to a small, resource-centric graph. It takes arguments that depend on the Web API, query the Web API, and build a graph that uses **any vocabulary or ontology of your choice**.\n\n #### Configuration options to fit most specific APIs:\n- Add any **HTTP headers** to the Web API query;\n- Support for APIs with **OAuth2 authentication** (see [example](services/advanced_examples/oauth2));\n- Native support for **JSON-based** Web APIs. XML-based Web APIs are supported with an additional component (see [example](services/advanced_examples/xml_api));\n\n#### Implementation features:\n- Easy **Docker-based deployment**;\n- **Simple**: a micro-service consists of a configuration file, a JSON-LD profile and a SPARQL query\n- **Dynamic**: simply drop off your files and your service is ready to go.\n- **Cache database** with configurable expiration time, to improve performance;\n- **Provenance information** about the API invokation (time, parameterr etc.);\n- Web API invokation with **HTTP GET method**, POST is not supported.\n- Dynamic generation of an HTML documentation and test interface\n\n\n## Quick start guide\n\nThe most straightforward way to run SPARQL micro-services is using the [Docker deployment](deployment/docker/) option.\n\nThen, these [slides](doc/quick-start-guide.pdf) describe the main concepts behind SPARQL micro-services and provide a guide to **quickly write and setup your first SPARQL micro-service**.\n\n\n\n## Examples and Demo\n\nYou can check out some services we published at [https://sparql-micro-services.org/](https://sparql-micro-services.org/). The source of these services is provided in a separate Github repository: \n[sparql-micro-services.org/](https://github.com/frmichel/sparql-micro-service.org)\n\nThe **HTML documentation and test interface** is [generated dynamically](doc/03-html-doc.md) from the micro-service descriptions, that embeds Schema.org markup to **make the services discoverable** using for instance [Google Dataset Search](https://datasetsearch.research.google.com/search?query=flickr%20sparql\u0026docid=88YllZoR%2BmJMuXMgAAAAAA%3D%3D).\n\nA **[demo](http://sparql-micro-services.org/demo-sms?param=Delphinapterus+leucas)** showcases the use of SPARQL micro-services to integrate, within a single SPARQL query, biodiversity data from a regular Linked Data source with non-RDF data resources: photos, scientific articles, life traits, audio recordings, all obtained through dedicated Web APIs wrapped in SPARQL micro-services.\n\nThis project comes with [several example](services/advanced_examples/) SPARQL micro-services, allowing for instance to search photos matching some tags on [Flickr](https://www.flickr.com/), or tunes whose titles match a given name in [MusicBrainz](https://musicbrainz.org/).\n\nAlso, in the [TaxrefWeb](https://github.com/frmichel/taxrefweb/tree/master/sparql-micro-services) repository we provide services to query major biodiversity data sources such as the [GBIF](https://www.biodiversitylibrary.org/), [BHL](https://www.biodiversitylibrary.org/) or [EoL](http://eol.org/traitbank).\n\n\n## Documentation\n\n- [How to use SPARQL micro-services](doc/01-usage.md)\n- [Configuring a SPARQL micro-service](doc/02-config.md)\n- [Docker-based deployment](deployment/docker/)\n- [Complete non-Docker installation procedure](doc/04-install.md) (for more advanced deployments)\n- [Dynamic HTML documentation](doc/03-html-doc.md)\n- [Adding provenance information](doc/05-prov.md)\n\n\n## Cite this work:\n\nMichel F., Faron C., Gargominy O. \u0026 Gandon F. (2018). Integration of Web APIs and Linked Data Using SPARQL Micro-Services—Application to Biodiversity Use Cases. *Information 9(12):310*. [DOI](https://dx.doi.org/10.3390/info9120310), [HAL](https://hal.archives-ouvertes.fr/hal-01947589).\n\n\n```bibtex\n@article{michel_sparqlmicroservices_2018,\n  title = {Integration of {{Web APIs}} and {{Linked Data Using SPARQL Micro}}-{{Services}}\\textemdash{{Application}} to {{Biodiversity Use Cases}}},\n  volume = {9},\n  copyright = {Licence Creative Commons Attribution 4.0 International (CC-BY)},\n  issn = {2078-2489},\n  language = {en},\n  number = {12},\n  journal = {Information},\n  doi = {10.3390/info9120310},\n  author = {Michel, Franck and Faron, Catherine and Gargominy, Olivier and Gandon, Fabien},\n  month = dec,\n  year = {2018},\n  pages = {310},\n  url = {https://hal.archives-ouvertes.fr/hal-01947589}\n}\n```\n\n\n## Publications\n\n### Journal\n\n[3] Michel F., Faron C., Gargominy O. \u0026 Gandon F. (2018). Integration of Web APIs and Linked Data Using SPARQL Micro-Services—Application to Biodiversity Use Cases. *Information 9(12):310*. [DOI](https://dx.doi.org/10.3390/info9120310), [HAL](https://hal.archives-ouvertes.fr/hal-01947589).\n\n### Conference\n\n[1] Michel F., Faron-Zucker C. and Gandon F. SPARQL Micro-Services: Lightweight Integration of Web APIs and Linked Data. In *Proceedings of the Linked Data on the Web Workshop (LDOW2018)*. [HAL](https://hal.archives-ouvertes.fr/hal-01722792).\n\n[2] Michel F., Gargominy O., Tercerie S. \u0026 Faron-Zucker C. (2017). A Model to Represent Nomenclatural and Taxonomic Information as Linked Data. Application to the French Taxonomic Register, TAXREF. In *Proceedings of the 2nd International Workshop on Semantics for Biodiversity (S4BioDiv) co-located with ISWC 2017*. Vienna, Austria. CEUR vol. 1933. [HAL](https://hal.archives-ouvertes.fr/hal-01617708).\n\n[4] Michel F., Faron-Zucker C., Corby O. and Gandon F. Enabling Automatic Discovery and Querying of Web APIs at Web Scale using Linked Data Standards. In *LDOW/LDDL'19, companion proceedings of the 2019 World Wide Web Conference (WWW'19 Companion)*. [HAL](https://hal.archives-ouvertes.fr/hal-02060966).\n\n\n### Poster\n\nMichel F., Faron-Zucker C. \u0026 Gandon F. (2018). Bridging Web APIs and Linked Data with SPARQL Micro-Services. In *The Semantic Web: ESWC 2018 Satellite Events, LNCS vol. 11155, pp. 187–191*. Heraklion, Greece. Springer, Cham. [HAL](https://hal.archives-ouvertes.fr/hal-01783936v1).\n\n### Demo\n\nMichel F., Faron-Zucker C. \u0026 Gandon F. (2018). Integration of Biodiversity Linked Data and Web APIs using SPARQL Micro-Services. In *Biodiversity Information Science and Standards 2: e25481 (TDWG 2018)*. Dunedin, New Zealand. Pensoft. [DOI](https://dx.doi.org/10.3897/biss.2.25481), [HAL](https://hal.archives-ouvertes.fr/hal-01856365). \nAvailable online: https://sparql-micro-services.org/demo-sms?param=Delphinapterus%20leucas\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrmichel%2Fsparql-micro-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrmichel%2Fsparql-micro-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrmichel%2Fsparql-micro-service/lists"}