Design decisions

Phase 1

Phase 2

Protocole

Data must be expressed in a semantic way in the API and must respect the OWL DFC model

User-friendly and easy to implement

Phase 1 + professional protocol

Stateless or stateful

Stateless

Stateless

Granularity

low granularity service

Phase 1+ high granularity via queries

URL

REST resource driven sémantic, without parameter

Phase 1 + parameters enabling queries (SPARQL or HyperGraphQL)

Service specifications

OpenAPI except for the input/output data structure, for which use OWL. LDP specification compliant.

- Complete OpenAPI specifications for standard services. LDP specification compliant.

- SPARQL spec for high granularity service by Query.

Serialization

JSON-LD

LDP specification compliant.

JSON-LD (JSON-LD in the data attribute if HyperGraphQL)

LDP specification compliant.

Transport layer

HTTP + LDP

HTTP + LDP HTTP + SPARQL or HyperGraphQL

Single or multi-source

Simple access to one logical source

Query on multiple sources

Right delegation

No (all or nothing, all decided by the platform)

Yes (web ACL if SOLID used)

Identification and authentication

OIDC (hébergé par les communs)

OIDC (or web-idOIDC if mature via Solid)

Data storage

Distributed

Phase 1 + centralized cache to improve performances

User data

ID centralized by user

Phase 1 or web-id/OIDC if mature enough in order to achieve a decentralized authentication

Product data

ID provided by Open Food Facts

Decentralized ID management using the semantic web and SOLID

Federation or syndication

Ontology: Federation

Taxonomy: Federation

Storage: Syndication

Identification and authentication : Federation

Validation: ?

Synchronisation / caching: Federation

Notification: ?

Serialisation : Federation

Others aspects of the protocol: Federation

Ontology: Federation

Taxonomy: Federation

Storage: Syndication

Identification and authentication : Federation

Validation: ?

Synchronisation / caching: Federation

Notification: ?

Serialisation : Federation

Others aspects of the protocol: Federation

Interface

Native web components

Phase 1 + Startin’blox or SemViz

Federation: all entities follow the same protocol

Syndication: entities may have different protocols