sparql-micro-service

SPARQL micro-services: A lightweight approach to query Web APIs with SPARQL

https://github.com/frmichel/sparql-micro-service

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

api-wrapper linked-data microservice microservices-architecture rdf semantic-web sparql web-of-data
Last synced: 6 months ago · JSON representation ·

Repository

SPARQL micro-services: A lightweight approach to query Web APIs with SPARQL

Basic Info
  • Host: GitHub
  • Owner: frmichel
  • License: apache-2.0
  • Language: PHP
  • Default Branch: master
  • Homepage:
  • Size: 3.53 MB
Statistics
  • Stars: 37
  • Watchers: 7
  • Forks: 9
  • Open Issues: 3
  • Releases: 11
Topics
api-wrapper linked-data microservice microservices-architecture rdf semantic-web sparql web-of-data
Created about 8 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog License Citation Authors Codemeta

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

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

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

composer.json packagist
  • easyrdf/easyrdf 1.0.*
  • ext-mbstring *
  • ext-xml *
  • ml/json-ld 1.2.*
  • mongodb/mongodb ^1.2
  • monolog/monolog 1.*
  • php >=7.1.0
deployment/docker/build/corese4sms/Dockerfile docker
  • openjdk 11.0.14-jdk-bullseye build
deployment/docker/build/docker-compose.yml docker
  • frmichel/corese4sms latest
  • frmichel/sparql-micro-service latest
  • mongo 3.7
deployment/docker/build/sparql-micro-service/Dockerfile docker
  • php 7.4-apache build
deployment/docker/docker-compose.yml docker
  • frmichel/corese4sms v4.3.1
  • frmichel/sparql-micro-service v0.5.4
  • mongo 3.7