sparql-micro-service
SPARQL micro-services: A lightweight approach to query Web APIs with SPARQL
Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 10 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.6%) to scientific vocabulary
Keywords
Repository
SPARQL micro-services: A lightweight approach to query Web APIs with SPARQL
Basic Info
Statistics
- Stars: 37
- Watchers: 7
- Forks: 9
- Open Issues: 3
- Releases: 11
Topics
Metadata Files
README.md
SPARQL Micro-Services
The 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.
Each 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.
#### Configuration options to fit most specific APIs: - Add any HTTP headers to the Web API query; - Support for APIs with OAuth2 authentication (see example); - Native support for JSON-based Web APIs. XML-based Web APIs are supported with an additional component (see example);
Implementation features:
- Easy Docker-based deployment;
- Simple: a micro-service consists of a configuration file, a JSON-LD profile and a SPARQL query
- Dynamic: simply drop off your files and your service is ready to go.
- Cache database with configurable expiration time, to improve performance;
- Provenance information about the API invokation (time, parameterr etc.);
- Web API invokation with HTTP GET method, POST is not supported.
- Dynamic generation of an HTML documentation and test interface
Quick start guide
The most straightforward way to run SPARQL micro-services is using the Docker deployment option.
Then, these slides describe the main concepts behind SPARQL micro-services and provide a guide to quickly write and setup your first SPARQL micro-service.
Examples and Demo
You can check out some services we published at https://sparql-micro-services.org/. The source of these services is provided in a separate Github repository: sparql-micro-services.org/
The HTML documentation and test interface is generated dynamically from the micro-service descriptions, that embeds Schema.org markup to make the services discoverable using for instance Google Dataset Search.
A demo 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.
This project comes with several example SPARQL micro-services, allowing for instance to search photos matching some tags on Flickr, or tunes whose titles match a given name in MusicBrainz.
Also, in the TaxrefWeb repository we provide services to query major biodiversity data sources such as the GBIF, BHL or EoL.
Documentation
- How to use SPARQL micro-services
- Configuring a SPARQL micro-service
- Docker-based deployment
- Complete non-Docker installation procedure (for more advanced deployments)
- Dynamic HTML documentation
- Adding provenance information
Cite this work:
Michel F., Faron C., Gargominy O. & Gandon F. (2018). Integration of Web APIs and Linked Data Using SPARQL Micro-Services—Application to Biodiversity Use Cases. Information 9(12):310. DOI, HAL.
bibtex
@article{michel_sparqlmicroservices_2018,
title = {Integration of {{Web APIs}} and {{Linked Data Using SPARQL Micro}}-{{Services}}\textemdash{{Application}} to {{Biodiversity Use Cases}}},
volume = {9},
copyright = {Licence Creative Commons Attribution 4.0 International (CC-BY)},
issn = {2078-2489},
language = {en},
number = {12},
journal = {Information},
doi = {10.3390/info9120310},
author = {Michel, Franck and Faron, Catherine and Gargominy, Olivier and Gandon, Fabien},
month = dec,
year = {2018},
pages = {310},
url = {https://hal.archives-ouvertes.fr/hal-01947589}
}
Publications
Journal
[3] Michel F., Faron C., Gargominy O. & Gandon F. (2018). Integration of Web APIs and Linked Data Using SPARQL Micro-Services—Application to Biodiversity Use Cases. Information 9(12):310. DOI, HAL.
Conference
[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.
[2] Michel F., Gargominy O., Tercerie S. & 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.
[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.
Poster
Michel F., Faron-Zucker C. & 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.
Demo
Michel F., Faron-Zucker C. & 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, HAL. Available online: https://sparql-micro-services.org/demo-sms?param=Delphinapterus%20leucas
Owner
- Name: Franck Michel
- Login: frmichel
- Kind: user
- Location: France
- Company: CNRS
- Website: https://w3id.org/people/franckmichel
- Repositories: 6
- Profile: https://github.com/frmichel
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: SPARQL Micro-Services
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Franck
family-names: Michel
email: franck.michel@inria.fr
affiliation: 'Univ. Côte d''Azur, CNRS, Inria'
orcid: 'https://orcid.org/0000-0001-9064-0463'
repository-code: 'https://github.com/frmichel/sparql-micro-service'
license: Apache-2.0
version: 0.5.8
date-released: '2024-07-22'
CodeMeta (codemeta.json)
{
"@context": "https://doi.org/10.5063/schema/codemeta-2.0",
"@type": "SoftwareSourceCode",
"license": "https://spdx.org/licenses/Apache-2.0",
"codeRepository": "https://github.com/frmichel/sparql-micro-service.git",
"dateCreated": "2018-06-19",
"datePublished": "2018-06-19",
"dateModified": "2024-02-07",
"issueTracker": "https://github.com/frmichel/sparql-micro-service/issues",
"name": "SPARQL micro-service",
"version": "0.5.7",
"description": "The SPARQL Micro-Service architecture [is meant to allow the combination of Linked Data with data from Web APIs. It enables querying non-RDF Web APIs with SPARQL, and allows on-the-fly assigning dereferenceable URIs to Web API resources that do not have a URI in the first place. This project is a PHP implementation for JSON-based Web APIs. It comes with multiple configuration options to fit most specific APIs (e.g. add specific HTTP headers, configure a cache database) and can generate provenance information added to the graph being produced at the time a SPARQL micro-service is invoked.",
"developmentStatus": "active",
"referencePublication": "https://hal.archives-ouvertes.fr/hal-02060966",
"keywords": [
"web API",
"SPARQL",
"RDF",
"mapping",
"mediator"
],
"programmingLanguage": [
"PHP"
],
"softwareRequirements": [
"https://github.com/frmichel/sparql-micro-service/blob/master/composer.json"
],
"author": [
{
"@type": "Person",
"@id": "https://orcid.org/0000-0001-9064-0463",
"givenName": "Franck",
"familyName": "Michel",
"email": "franck.michel@inria.fr",
"affiliation": {
"@type": "Organization",
"name": "University Côte d'Azur, CNRS, Inria"
}
}
]
}
GitHub Events
Total
- Create event: 1
- Issues event: 1
- Release event: 1
- Watch event: 2
- Push event: 1
Last Year
- Create event: 1
- Issues event: 1
- Release event: 1
- Watch event: 2
- Push event: 1
Dependencies
- easyrdf/easyrdf 1.0.*
- ext-mbstring *
- ext-xml *
- ml/json-ld 1.2.*
- mongodb/mongodb ^1.2
- monolog/monolog 1.*
- php >=7.1.0
- openjdk 11.0.14-jdk-bullseye build
- frmichel/corese4sms latest
- frmichel/sparql-micro-service latest
- mongo 3.7
- php 7.4-apache build
- frmichel/corese4sms v4.3.1
- frmichel/sparql-micro-service v0.5.4
- mongo 3.7