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

[next] La carte des organisations ne fonctionne plus #140

Closed
mguihal opened this issue Oct 27, 2023 · 6 comments
Closed

[next] La carte des organisations ne fonctionne plus #140

mguihal opened this issue Oct 27, 2023 · 6 comments
Labels
bug Something isn't working

Comments

@mguihal
Copy link
Collaborator

mguihal commented Oct 27, 2023

Décrivez le bug
Les organisations ne s'affichent plus en basculant la vue Organisation vers la carte.

D'après mes investigations, dans cette vue, les ressources ont un objet vide dans l'attribut hasLocation, requis ici côté front : https://github.com/assemblee-virtuelle/archipelago/blob/master/frontend/src/resources/Agent/Actor/Organization/OrganizationList.js#L42-L43

Sur la branche master, il y avait auparavant cette ligne : https://github.com/assemblee-virtuelle/archipelago/blob/master/middleware/config/containers.js#L12 pour déréférencer les locations justement, mais si je comprends bien elle est sensée ne plus être nécessaire depuis la version 0.6.0-alpha.0 du middleware...

Est-ce que ça pourrait être dû à tes modifications sur les blankNodes @srosset81 ?
La suite des investigations dépasse un peu mes compétences si le bug se situe à ce niveau

Comment peut-on corriger ça ? Ca parait plutôt impactant sur l'application comme souci :/

@mguihal mguihal added the bug Something isn't working label Oct 27, 2023
@srosset81
Copy link
Contributor

srosset81 commented Nov 1, 2023

Théorétiquement, depuis assemblee-virtuelle/semapps#1160 les requêtes SPARQL faites depuis le frontend devraient automatiquement déréférencer les blank nodes. Tu devais pouvoir vérifier ça en regardant la requête SPARQL envoyée au serveur ? Tu as bien mis aussi à jour le frontend vers la v0.6, pas seulement le backend ?

(@BastienSig devrait déployer très prochainement la version next sur https://archipel.assemblee-virtuelle.org, ça permettra de vérifier ça.)

@mguihal
Copy link
Collaborator Author

mguihal commented Nov 1, 2023

Oui, les versions étaient concordantes.
Je préconiserais de ne pas attendre de déployer l'application en production pour vérifier la présence de ce bug (j'ai d'ailleurs déjà testé sur l'instance de Nantes et j'ai dû rollback)

Voici un scénario de reproduction en local :

  • Se mettre sur la branche next d'Archipelago
  • Mettre ses dépendances frontend et middleware à jour via yarn
  • Démarrer le fuseki local via docker-compose up -d fuseki
  • Démarrer le frontend et le middleware
  • Créer une nouvelle organisation en allant ici http://localhost:4000/Organization/create
  • Ajouter une adresse à l'organisation dans le formulaire d'édition et sauvegarder
  • Aller sur http://localhost:4000/Organization?view=map et constater que l'organisation ne s'affiche pas

La réponse de la requête Sparql est la suivante.

{
    "@graph": [
        {
            "@id": "_:b0",
            "@type": "http://virtual-assembly.org/ontologies/pair#PostalAddress",
            "addressCountry": "France",
            "addressLocality": "Nantes",
            "addressStreet": "8 Rue Lekain",
            "addressZipCode": "44000"
        },
        {
            "@id": "_:b1",
            "@type": "http://virtual-assembly.org/ontologies/pair#Place",
            "hasPostalAddress": "_:b0",
            "label": "8 Rue Lekain, 44000 Nantes, France",
            "http://virtual-assembly.org/ontologies/pair#latitude": 47.214577,
            "http://virtual-assembly.org/ontologies/pair#longitude": -1.562779
        },
        {
            "@id": "http://localhost:3000/organizations/organisation-test",
            "@type": "http://virtual-assembly.org/ontologies/pair#Organization",
            "created": "2023-11-01T16:27:25.133Z",
            "creator": "http://localhost:3000/users/0828fa12-fd5e-4c1e-9932-7712d6ead9d4",
            "modified": "2023-11-01T16:27:57.563Z",
            "hasLocation": "_:b1",
            "label": "Organisation test"
        }
    ],
    "@context": {
        "addressStreet": {
            "@id": "http://virtual-assembly.org/ontologies/pair#addressStreet"
        },
        "addressZipCode": {
            "@id": "http://virtual-assembly.org/ontologies/pair#addressZipCode"
        },
        "addressLocality": {
            "@id": "http://virtual-assembly.org/ontologies/pair#addressLocality"
        },
        "addressCountry": {
            "@id": "http://virtual-assembly.org/ontologies/pair#addressCountry"
        },
        "hasLocation": {
            "@id": "http://virtual-assembly.org/ontologies/pair#hasLocation",
            "@type": "@id"
        },
        "creator": {
            "@id": "http://purl.org/dc/terms/creator",
            "@type": "@id"
        },
        "label": {
            "@id": "http://virtual-assembly.org/ontologies/pair#label"
        },
        "modified": {
            "@id": "http://purl.org/dc/terms/modified",
            "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
        },
        "created": {
            "@id": "http://purl.org/dc/terms/created",
            "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
        },
        "longitude": {
            "@id": "http://virtual-assembly.org/ontologies/pair#longitude",
            "@type": "http://www.w3.org/2001/XMLSchema#double"
        },
        "latitude": {
            "@id": "http://virtual-assembly.org/ontologies/pair#latitude",
            "@type": "http://www.w3.org/2001/XMLSchema#double"
        },
        "hasPostalAddress": {
            "@id": "http://virtual-assembly.org/ontologies/pair#hasPostalAddress",
            "@type": "@id"
        },
        "ldp": "http://www.w3.org/ns/ldp#"
    }
}

En comparaison, celle sur la branche master est la suivante :

{
    "@graph": [
        {
            "@id": "_:b0",
            "@type": "pair:PostalAddress",
            "addressCountry": "France",
            "addressLocality": "Nantes",
            "addressStreet": "8 Rue Lekain",
            "addressZipCode": "44000"
        },
        {
            "@id": "_:b1",
            "@type": "pair:Place",
            "hasPostalAddress": "_:b0",
            "label": "8 Rue Lekain, 44000 Nantes, France",
            "pair:latitude": 47.214577,
            "pair:longitude": -1.562779
        },
        {
            "@id": "http://localhost:3000/organizations/organisation-test",
            "@type": "pair:Organization",
            "created": "2023-11-01T16:27:25.133Z",
            "creator": "http://localhost:3000/users/0828fa12-fd5e-4c1e-9932-7712d6ead9d4",
            "modified": "2023-11-01T16:27:57.563Z",
            "hasLocation": "_:b1",
            "label": "Organisation test"
        }
    ],
    "@context": {
        "addressStreet": {
            "@id": "http://virtual-assembly.org/ontologies/pair#addressStreet"
        },
        "addressZipCode": {
            "@id": "http://virtual-assembly.org/ontologies/pair#addressZipCode"
        },
        "addressLocality": {
            "@id": "http://virtual-assembly.org/ontologies/pair#addressLocality"
        },
        "addressCountry": {
            "@id": "http://virtual-assembly.org/ontologies/pair#addressCountry"
        },
        "hasLocation": {
            "@id": "http://virtual-assembly.org/ontologies/pair#hasLocation",
            "@type": "@id"
        },
        "creator": {
            "@id": "http://purl.org/dc/terms/creator",
            "@type": "@id"
        },
        "label": {
            "@id": "http://virtual-assembly.org/ontologies/pair#label"
        },
        "modified": {
            "@id": "http://purl.org/dc/terms/modified",
            "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
        },
        "created": {
            "@id": "http://purl.org/dc/terms/created",
            "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
        },
        "longitude": {
            "@id": "http://virtual-assembly.org/ontologies/pair#longitude",
            "@type": "http://www.w3.org/2001/XMLSchema#double"
        },
        "latitude": {
            "@id": "http://virtual-assembly.org/ontologies/pair#latitude",
            "@type": "http://www.w3.org/2001/XMLSchema#double"
        },
        "hasPostalAddress": {
            "@id": "http://virtual-assembly.org/ontologies/pair#hasPostalAddress",
            "@type": "@id"
        },
        "sec": "https://w3id.org/security#",
        "ldp": "http://www.w3.org/ns/ldp#",
        "pair": "http://virtual-assembly.org/ontologies/pair#"
    }
}

La différence visible entre les deux branches sont le nommage des attributs géographiques http://virtual-assembly.org/ontologies/pair#latitude sur next, contre pair:latitude sur master, mais je ne sais pas si ça peut avoir un impact.

Par contre, côté front, l'objet récupéré via useListContext contient un objet vide pour le champ hasLocation. Le bug serait alors côté semantic-data-provider ?

@mguihal
Copy link
Collaborator Author

mguihal commented Nov 1, 2023

Le bug peut être résolu en ajoutant :

blankNodes: ['pair:hasLocation', 'pair:hasLocation/pair:hasPostalAddress'],

dans le dataModel.list de la ressource Organization, mais ça semble plus palliatif qu'autre chose si les blankNodes sont sensés être trouvés automatiquement :/

Je ferai une PR demain pour proposer cette correction si on n'a pas d'autre piste.

@srosset81
Copy link
Contributor

C'est lié à la fonction getEmbedFramequi est appellée par fetchSparqlEndpoints lors du compactage des données. Si on passe l'option list.explicitEmbedOnFraming = false, ça marche. Je regarde plus précisément.

@srosset81
Copy link
Contributor

srosset81 commented Nov 2, 2023

Fixé assemblee-virtuelle/semapps@c3beda1#diff-b739929b6e96b3ef47f22183465b1e9c4c49c2a057f27002bad241af3e23716e

Tu peux t'occuper de faire une release de la branche next (en alpha) si le besoin de déployer est urgent @mguihal ?
(Pour publier sur NPM, il faut que tu te crée un compte sur https://npmjs.com et que tu m'indiques ton username.)

@mguihal
Copy link
Collaborator Author

mguihal commented Nov 2, 2023

Merci de la correction. Mon username sur npmjs c'est mguihal aussi.

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

2 participants