Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Urls relatives au rootContainer à la place d'urls du serveur semapps stockées en dur dans Fuseki #536

Closed
scenaristeur opened this issue Jan 27, 2021 · 7 comments
Labels
bug Something isn't working

Comments

@scenaristeur
Copy link
Contributor

Décrivez le bug
Les ressources sont stockées avec l'url (localhost:3000) en dur dans Fuseki ce qui pourrait nuire à la portabilité du truc et semble hypothétiquement source d'erreur...
exemples :

  • lancement depuis un autre port localhost:3001 -> plus rien ne correspond,
  • accès à semapps depuis un autre nom de machine par résolution DNS -> les ressources seront enregistrées sous https://nom_de_machine/persons/... une machine peut avoir plusieurs noms

Comportement attendu
Avoir des urls relatives au rootContainer, ou/et des urls absolues incluant un nom de domaine pour garantir leur unicité.
exemple d'url relative dans un fichier .acl sur un pod Solid

@prefix : <#>.
@prefix n1: <http://www.w3.org/ns/auth/acl#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@prefix c0: </profile/card#>.

:owner
    a n1:Authorization;
    n1:accessTo <bidule.txt>;
    n1:agent c0:me;
    n1:mode n1:Control, n1:Read, n1:Write.
:public
    a n1:Authorization;
    n1:accessTo <bidule.txt>;
    n1:agentClass foaf:Agent;
    n1:mode n1:Read.

---> @prefix c0: </profile/card#>. correspond sur chaque pod à la ressource contenant le webid -> https://spoggy-test6.solidcommunity.net/profile/card#
---> n1:accessTo <bidule.txt>; correspond à la ressource bidule.txt dans le même container

@scenaristeur scenaristeur added the bug Something isn't working label Jan 27, 2021
@srosset81
Copy link
Contributor

srosset81 commented Jan 27, 2021

Je me trompe peut-être, mais il me semble que dans un triple store comme Fuseki, le principe est d'utiliser des URIs complètes partout. Après si c'est possible d'utiliser des URIs relatives, tant mieux, y a-t-il de la documentation dans ce sens ?

L'exemple de fichier turtle que tu montres, c'est plutôt une question de formattage. On pourrait afficher les données de cette manière sans pour autant changer les URIs stockés dans le triple store.

Lorsqu'une requête SPARQL est effectuée, il faudrait quand même pouvoir retourner les URIs complets (avec le nom de domaine), sinon les résultats sont inutilisables.

@srosset81
Copy link
Contributor

Une idée @simonLouvet ?

@simonLouvet
Copy link
Contributor

J'aurais pas dit mieux @srosset81

@scenaristeur
Copy link
Contributor Author

scenaristeur commented Jan 29, 2021

le principe est d'utiliser des URIs complètes partout

totalement d'accord, je soumettais juste l'idée que si on y accède par le port 3001 au lieu de 3000 ou part un nom de domaine, les urls complètes risquent de ne plus être cohérentes les unes entre elles... ou il faudrait prévoir un système de migration.

@srosset81
Copy link
Contributor

J'ai déjà eu à faire ce type de migration, une requête SPARQL avait suffit, mais je ne crois pas l'avoir sauvegardée. Peut-être qu'on pourrait proposer un service Moleculer pour faciliter ce type de migration, ou d'autres types d'opérations complexes. Par exemple une action migration.changeBaseUri avec comme paramètres oldUri et newUri.

Une idée sur d'autres besoins qu'il pourrait y avoir en terme de requêtes complexes ?

@simonLouvet
Copy link
Contributor

++ pour un service de migration. Idéalement il pourrait être déclenché automatiquement lors d'un changement d'URL de base.

@srosset81
Copy link
Contributor

OK j'ai créé une issue spécifique #561. Continuons la discussion là-bas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants