Prez est un framework d'API de données liées configurable par les données qui fournit des profils de données Knowledge Graph conformément à la norme Content Négociation par profil.
Où est l'interface utilisateur ?
Prez fournit uniquement des données - généralement RDF mais peut être GeoJSON, XML, etc. - et fournit une forme spéciale de RDF qui inclut des étiquettes pour tous les objets et prédicats que Prez peut trouver dans sa base de données.
Si vous souhaitez une interface utilisateur capable de restituer le RDF étiqueté Prez au format HTML et d'autres widgets graphiques sophistiqués, consultez l'interface utilisateur de Prez.
Pour obtenir une copie de Prez sur votre ordinateur, exécutez :
git clone https://github.com/RDFLib/prez
Prez est développé avec Poetry, un outil d'empaquetage et de dépendance Python. Poetry présente toutes les dépendances de Prez (autres packages Python) dans le fichier pyproject.toml
situé dans le répertoire racine du projet.
Pour installer les dépendances Python, exécutez :
poetry install
Remarque : Poetry doit être installé sur le système. Pour vérifier si Poetry est installé, exécutez
poetry --version
. Pour obtenir des conseils sur l'installation et la gestion de groupes de dépendances spécifiques, consultez la documentation.
Prez fournit les points de terminaison suivants :
Point de terminaison | MT par défaut |
---|---|
/ | texte/anot+tortue |
/docs | texte/html |
/catalogues/{catalogId} | texte/anot+tortue |
/catalogues/{catalogId}/collections | texte/anot+tortue |
/catalogs/{catalogId}/collections/{recordsCollectionId} | texte/anot+tortue |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items | texte/anot+tortue |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items/{itemId} | texte/anot+tortue |
/purge-tbox-cache | application/json |
/tbox-cache | application/json |
/santé | application/json |
/préfixes | texte/anot+tortue |
/concept-hiérarchie/{parent_curie}/narrowers | texte/anot+tortue |
/concept-hiérarchie/{parent_curie}/top-concepts | texte/anot+tortue |
/cql | texte/anot+tortue |
/profils | texte/anot+tortue |
/recherche | texte/anot+tortue |
/profils/{profile_curie} | texte/anot+tortue |
/objet | texte/anot+tortue |
/identifiant/redirection | N / A |
/identifiant/curie/{iri} | texte/plain |
/identifiant/iri/{curie} | texte/texte |
Les points de terminaison de l'API des fonctionnalités OGC sont basés sur la RACINE /catalogs/{catalogId}/collections/{recordsCollectionId}/
Point de terminaison | MT par défaut |
---|---|
{ROOT}/fonctionnalités | application/json |
{ROOT}/features/docs | texte/html |
{ROOT}/features/conformité | application/json |
{ROOT}/fonctionnalités/collections | application/json |
{ROOT}/features/collections/{collectionId} | application/json |
{ROOT}/features/collections/{collectionId}/items | application/géo+json |
{ROOT}/features/collections/{collectionId}/items/{featureId} | application/géo+jso |
Les variables d'environnement suivantes peuvent être utilisées pour configurer Prez : Dans la plupart des cas, tout ce qui est requis est la variable SPARQL_ENDPOINT.
Ceux-ci peuvent être définis dans un fichier '.env' qui sera lu via python-dotenv. Vous pouvez également les définir directement dans l'environnement à partir duquel Prez est exécuté.
sparql_endpoint
: point de terminaison SPARQL en lecture seule pour Prez. La valeur par défaut est None
.sparql_username
: Un nom d'utilisateur pour le point de terminaison Prez SPARQL, si la base de données RDF l'exige. La valeur par défaut est None
.sparql_password
: Un mot de passe pour le point de terminaison Prez SPARQL, si requis par la base de données RDF. La valeur par défaut est None
.enable_sparql_endpoint
: s'il faut activer le point de terminaison SPARQL. C'est-à-dire si prez expose le point de terminaison SPARQL du référentiel distant (généralement un triplestore). La valeur par défaut est False
. NB : le point de terminaison SPARQL, lorsqu'il est activé, prend en charge les requêtes POST. Prez lui-même n'effectue aucune mise à jour du référentiel distant (par exemple, le Triplestore distant). Cependant, si le point de terminaison SPARQL distant est activé, il est alors possible que les utilisateurs puissent effectuer des mises à jour du référentiel distant à l'aide du point de terminaison SPARQL. protocol
: Le protocole utilisé pour livrer Prez. La valeur par défaut est "http"
.host
: Nom de domaine hôte de Prez. La valeur par défaut est "localhost"
.port
: Le port Prez est rendu accessible sur. La valeur par défaut est 8000
. system_uri
: Un IRI pour le système Prez dans son ensemble. Cette valeur apparaît dans la landing page RDF livrée par Prez ( "/"
). La valeur par défaut est f"{protocol}://{host}:{port}"
. log_level
: niveau de journalisation. La valeur par défaut est "INFO"
.log_output
: destination de la sortie de journalisation. La valeur par défaut est "stdout"
. prez_title
: Titre de l'instance Prez. La valeur par défaut est "Prez"
.prez_desc
: Description de l'instance Prez. La valeur par défaut est une description de l'API du framework Web Prez.prez_version
: Version de l'instance Prez. La valeur par défaut est None
. curie_separator
: Séparateur utilisé dans les CURIE. La valeur par défaut est ":"
. Ce séparateur apparaît dans les liens générés par Prez, et à son tour dans les chemins d'URL. order_lists_by_label
: s'il faut classer les listes par étiquette. La valeur par défaut est True
. Utilisé pour afficher RDF avec des étiquettes lisibles par l'homme.
label_predicates
: Liste des prédicats utilisés pour les étiquettes. La valeur par défaut inclut :skos:prefLabel
dcterms:title
rdfs:label
sdo:name
Lorsqu'un type de média annoté (
+anot
) est utilisé, Prez inclut des triples pour chaque URI de la réponse initiale qui possède l'une des propriétés ci-dessus. Ces triples d'annotations sont ensuite mis en cache. Les annotations sont utilisées à des fins d'affichage, par exemple pour les pages HTML.
Semblable aux prédicats d’étiquette ci-dessus.
description_predicates
: Liste des prédicats utilisés pour les descriptions. La valeur par défaut inclut :skos:definition
dcterms:description
sdo:description
Semblable aux prédicats de provenance ci-dessus.
provenance_predicates
: Liste des prédicats utilisés pour la provenance. La valeur par défaut inclut :dcterms:provenance
Le mécanisme d'annotation peut en outre être utilisé pour renvoyer généralement certaines propriétés lorsqu'elles sont présentes.
other_predicates
: Liste des autres prédicats. La valeur par défaut inclut :sdo:color
reg:status
skos:narrower
skos:broader
sparql_repo_type
: Type de référentiel SPARQL. La valeur par défaut est "remote"
. Les options sont "remote"
, "pyoxigraph"
et "oxrdflib"
sparql_timeout
: Délai d'expiration des requêtes SPARQL. La valeur par défaut est 30
. prez_contact
: Coordonnées de Prez. La valeur par défaut est None
. disable_prefix_generation
: s'il faut désactiver la génération de préfixe. Il est recommandé de désactiver la génération de préfixes pour les référentiels de données volumineux . De plus, il est recommandé de toujours spécifier les préfixes dans le répertoire prez/reference_data/prefixes/
. La valeur par défaut est False
. default_language
: Langue par défaut pour Prez. La valeur par défaut est "en"
.default_search_predicates
: prédicats de recherche par défaut. La valeur par défaut inclut :rdfs:label
skos:prefLabel
sdo:name
dcterms:title
Utilisé en conjonction avec le dépôt Pyoxigraph. Spécifie un répertoire (à partir de la racine du référentiel) à charger dans le graphique de données Pyoxigraph en mémoire. Non utilisé pour d'autres types de référentiels.
local_rdf_dir
: Répertoire des fichiers RDF locaux. La valeur par défaut est "rdf"
. endpoint_structure
: Structure par défaut des endpoints, utilisée pour générer des liens. La valeur par défaut est ("catalogs", "collections", "items")
. system_endpoints
: Liste des points de terminaison du système. La valeur par défaut inclut :ep:system/profile-listing
ep:system/profile-object
listing_count_limit
: nombre maximum d'éléments à compter pour un point de terminaison de liste. Les comptes supérieurs à cette limite seront renvoyés sous la forme ">N", où N est la limite. La valeur par défaut est 100
.search_count_limit
: Le nombre maximum d'éléments à renvoyer dans un résultat de recherche. La valeur par défaut est 10
. temporal_predicate
: Le prédicat utilisé pour les propriétés temporelles. La valeur par défaut est sdo:temporal
. endpoint_to_template_query_filename
: un dictionnaire mappant les points de terminaison aux noms de fichiers de modèles de requête. La valeur par défaut est un dictionnaire vide. Cette section est destinée au développement de Prez localement. Consultez les options d'exécution ci-dessous pour exécuter Prez en production.
Pour exécuter le serveur de développement (avec rechargement automatique lors des modifications de code) :
poetry run python main.py
Les images de conteneurs Prez sont créées à l'aide d'une action Github et sont disponibles ici.
Le Dockerfile du référentiel peut également être utilisé pour créer une image Docker.
Le nom de l'image est ghcr.io/rdflib/prez
.
La latest
balise pointe vers la dernière version stable de Prez. Toutes les dernières versions stables ont une balise majeure, majeure et mineure, et majeure, mineure et patch pointant vers elles.
Par exemple, pour une version avec une balise git de 3.2.4, les balises suivantes seront sur l'image du conteneur :
3
3.2
3.2.4
latest
Les nouveaux commits sur la branche main
créent une image de développement continue avec la balise dev
. Les versions de développement incluront également une balise sous la forme major.minor.{patch+1}-dev.{commits-since-last-release}.{short-commit-sha}. Ceci est conforme au versioning sémantique et sera reconnu par les systèmes d’orchestration pour effectuer des versions automatiques.
Par exemple, si la dernière version est la 3.2.4 et qu'il y a eu 7 nouveaux commits depuis la version et que le court commit SHA est fc82562, alors la balise d'image du conteneur sera :
3.2.5-dev.7.fc82562
Pour exécuter l'image Docker extraite :
docker run -p 8000:8000
-e SPARQL_ENDPOINT=<your_sparql_endpoint>
<your_image_id>
La commande ci-dessus démarre un conteneur Docker exécutant Prez sur le port 8000, connecté au point de terminaison sparql spécifié.
Prez utilise PyTest et Coverage pour les tests et les rapports de couverture des tests.
Pour exécuter tous les tests disponibles :
poetry run pytest tests
Pour exécuter tous les tests disponibles pour l'analyse de couverture :
poetry run coverage run -m pytest tests
Pour générer un rapport de couverture :
poetry run coverage report
En tant que serveur de données liées, Prez fournit un service de redirection sur /identifier/redirect
qui accepte un paramètre de requête iri
, recherche dans la base de données un iri
foaf:homepage
avec une valeur et, s'il existe, renvoie une réponse de redirection à la valeur.
Cette fonctionnalité est utile pour les institutions qui émettent leurs propres identifiants persistants sous un nom de domaine qu'elles contrôlent. Le mappage de l'identifiant persistant vers la ressource Web cible est stocké dans le magasin SPARQL backend.
Il s'agit d'une solution alternative aux services d'identification persistants tels que w3id.org. Dans certains cas, il peut être utilisé avec de tels services d'identification persistants pour éviter d'avoir à fournir le mappage de redirection dans la configuration du serveur Web (NGINX, Apache HTTP, etc.) et à la place, définir la configuration en tant que données RDF.
Pour que Prez puisse fournir des données via ses différents sous-systèmes, les données doivent être conformes à certaines exigences minimales : vous ne pouvez pas, par exemple, exécuter VocPrez sans qu'aucun ConceptScheme SKOS soit défini !
Tous les profils répertoriés ci-dessus fournissent des validateurs qui peuvent être utilisés avec les données RDF pour tester leur validité. Si c’est le cas, Prez s’en sortira très bien.
Les validateurs de profils sont tous disponibles à partir des profils eux-mêmes (accédez aux listes d'autres ressources de profils via les liens de spécification ci-dessus) et ils sont également chargés dans l'outil en ligne RDFTools que vous pouvez utiliser sans rien télécharger ni installer :
Recherchez les validateurs VocPrez Compounded et similaires. Le bit « composé » signifie que le validateur validera les données par rapport à toutes les exigences VocPrez et héritées.
REMARQUE : Cet outil open source est activement développé et pris en charge par KurrawongAI, une petite société australienne Knowledge Graph, des développeurs de l'Université de Melbourne et également par des contributeurs open source.
Pour signaler des problèmes ou soulever des questions, veuillez créer des problèmes dans Issue Tracker ou vous pouvez contacter les développeurs en utilisant leurs coordonnées ci-dessous.
Voici les principaux développeurs :
KurrawongAI https://kurrawong.net
David Habgood [email protected]
Nicolas Car [email protected]
Edmond Chuc [email protected]
Université de Melbourne - Prez UI principalement Jamie Feiss [email protected]
Nous aimons les contributions à cet outil et vous encourageons à créer des problèmes dans le suivi des problèmes de ce référentiel ou à soumettre une Pull Request !
Il existe de la documentation sur la contribution à Prez, voir README-Dev.md.
Cette version de Prez et le contenu de ce référentiel sont également disponibles sous la licence BSD-3-Clause. Voir le fichier LICENSE de ce référentiel pour plus de détails.