transition-bibliographique / poc-fne

Preuve de concept basée sur Wikibase pour le "Fichier National d'Entités" (Abes/BNF). Projet réalisé en 2019.
http://www.abes.fr/Autorites-et-referentiels/Projet-FNE-Fichier-National-d-Entites
4 stars 1 forks source link

Le query service installé à l'ABES ne fonctionne pas #206

Closed benbober closed 5 years ago

benbober commented 5 years ago

Le service ne marche pas du tout : une requête simple ne renvoie aucun résultat et en plus le fait dans un fichier json à part, et non dans un tableau en dessous de la requête, comme le fait le query service de wikidata. Pas non plus d'autocomplétion. Comme je ne suis pas sûr qu'il s'agisse d'un problème semblable à celui du ticket sur l'autocomplétion (le problème se pose sur l'adresse publique comme sur l'adresse interne), je fais un ticket à part.

maxlath commented 5 years ago

un premier problème semble être dû à des changements de gestion de configuration qui faisait requêter wikidata.org plutôt que l'instance Wikibase local (d'où, j'imagine, l'échec de la démo d'une sprint review précédente), je vais voir si un rebase sur la branche master de wikimedia suffit à résoudre le problème, ou s'il faut supprimer les volumes et recharger les entités Wikibase local. Le plus simple serait de supprimer les volumes et repartir de zero : ce serait ok pour vous ou vous avez commencer à construire des entités que vous aimeriez conserver ? cc @gotnc

gotnc commented 5 years ago

ok de notre côté

benbober commented 5 years ago

ok aussi pour l'ABES

maxlath commented 5 years ago

Compte-rendu d'exploration du problème :

J'ai mis un bout de temps à m'en rendre compte, mais il y a un décalage entre wmde/wikibase-docker#master (et donc abes-esr/poc-fne-wikibase-docker#poc-fne) et les images Docker taggué comme latest mais en fait déjà plus à jour qui sont celles utilisées lorsque l'on exécute docker-compose -f docker-compose.yml up, ce fichier docker-compose.yml se basant sur ces images outdatées. Nous continuons donc à utiliser une image antérieur au patch devant résoudre le problème que j'évoquais dans le commentaire plus haut

Pour utiliser des images à jour, en attendant que celles-ci soient publiées par wmde, il faudrait (à vérifier) soit rebuilder l'image voulu avec un tag écrasant localement celui de hub.docker.com - cd wdqs-frontend/latest && docker build -t wdqs-frontend:latest ., soit utiliser le fichier docker-compose alternatif docker-compose -f docker-compose-build.yml up

Dans un cas comme dans l'autre, cela suppose une installation Docker récente compatible avec la version des Dockerfile à rebuild, ce qui ne semble pas être le cas du serveur de l'ABES; cd wdqs-frontend/latest && docker build -t wdqs-frontend:latest . génère l'erreur suivante :

Sending build context to Docker daemon 9.728 kB
Step 1/19 : FROM ubuntu:xenial as fetcher
Error parsing reference: "ubuntu:xenial as fetcher" is not a valid repository/tag: invalid reference format

Reste la possibilité de corriger manuellement l'erreur, mais c'est une béquille temporaire qu'il faudra refaire à chaque rebuild des containers, en attendant qu'une des solutions précédentes marche.

En l'occurence, le problème est l'absence du fichier custom-config.json dans le container wdqs-frontend (comme l'indique l'erreur 404 sur la requête GET http://localhost:8282/custom-config.json depuis l'interface du Query Service), ce qui peut être réparé avec la commande suivante (reproduisant donc la commande d'entrypoint.sh patché sur master mais pas encore patché dans l'image wdqs-frontend:lastest):

container_id=$(docker ps | grep wdqs-frontend | awk '{print $1}')
docker exec -it $container_id sh -c 'envsubst < /templates/custom-config.json > /usr/share/nginx/html/custom-config.json'

Je viens d'executer cette commande sur l'instance de l'ABES, cela résoud les problèmes de configuration du endpoint SPARQL et d'autocompletion : @benbober peux-tu réessayer de faire tes requêtes, voir qui continuerait de ne pas marcher ?

benbober commented 5 years ago

Les requêtes ultra-simples que j'ai testées fonctionnent et renvoient bien sur notre instance sans avoir à déclarer d'espace de noms, que ce soit depuis l'adresse publique ou l'adresse interne ABES. En revanche, l'auto-complétion, la coloration syntaxique, la numérotation des lignes ne fonctionnent pas et l'affichage des résultats se fait toujours dans un fichier json à part. Il ne me semble pas possible de modifier ce comportement depuis l'interface utilisateur

maxlath commented 5 years ago

si tes requêtes sont faites depuis https://poc-fne-query.abes.fr, il est possible qu'on soit dans un problème similaire à #205

benbober commented 5 years ago

J'ai testé aussi bien https://poc-fne-query.abes.fr que l'adresse interne.

maxlath commented 5 years ago

@benbober pourrais-tu faire un gif d'illustration ainsi qu'un copier-coller des logs dans la console du navigateur ? (dans Firefox : Ctrl+Shift+K pour ouvrir la console, puis clic-droit sur un des messages de logs, sélectionner "Copier les messages visibles de la console dans le presse-papiers")

benbober commented 5 years ago

Ok, je m'en charge, mais régler ce problème spécifique ne me semble pas être une priorité pour ce sprint pour Vincent et toi. @AnilAng @gotnc vous en pensez quoi ?

gotnc commented 5 years ago

D'accord avec toi @benbober ; sauf si le problème s'avère bloquant, les tickets créés pour le sprint en cours sont prioritaires

benbober commented 5 years ago

@maxlath On en est revenu au même point qu'initialement: une requête select * where {wd:Q1 ?b ?c.} ne renvoie rien

maxlath commented 5 years ago

@benbober oui, les logs pendant le chargement semblait indiquer des problèmes :

wdqs-updater_1   | 15:29:32.987 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized subjects: [https://poc-fne.abes.fr/prop/P11, https://poc-fne.abes.fr/prop/novalue/P11, https://poc-fne.abes.fr/prop/qualifier/P11, https://poc-fne.abes.fr/entity/P11, https://poc-fne.abes.fr/prop/reference/P11, https://poc-fne.abes.fr/prop/qualifier/value/P11, https://poc-fne.abes.fr/prop/direct/P11, https://poc-fne.abes.fr/prop/statement/value/P11, https://poc-fne.abes.fr/wiki/Special:EntityData/P11, https://poc-fne.abes.fr/prop/statement/P11, https://poc-fne.abes.fr/prop/reference/value/P11] while processing http://wikibase.svc/entity/P11.  Expected only sitelinks and subjects starting with http://wikibase.svc/wiki/Special:EntityData/ and http://wikibase.svc/entity/
wdqs-updater_1   | 15:29:32.987 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/prop/P11 p:http://www.w3.org/1999/02/22-rdf-syntax-ns#type o:http://www.w3.org/2002/07/owl#ObjectProperty
wdqs-updater_1   | 15:29:32.987 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/prop/novalue/P11 p:http://www.w3.org/1999/02/22-rdf-syntax-ns#type o:http://www.w3.org/2002/07/owl#Class
wdqs-updater_1   | 15:29:32.987 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/prop/novalue/P11 p:http://www.w3.org/2002/07/owl#complementOf o:_:genid-3040b608b2904a47afd73d1b9c08dcc5-genid1
wdqs-updater_1   | 15:29:32.987 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/prop/qualifier/P11 p:http://www.w3.org/1999/02/22-rdf-syntax-ns#type o:http://www.w3.org/2002/07/owl#DatatypeProperty
wdqs-updater_1   | 15:29:32.987 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://www.w3.org/1999/02/22-rdf-syntax-ns#type o:http://wikiba.se/ontology#Property
wdqs-updater_1   | 15:29:32.987 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://www.w3.org/1999/02/22-rdf-syntax-ns#type o:http://wikiba.se/ontology#Property
wdqs-updater_1   | 15:29:32.987 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://wikiba.se/ontology#propertyType o:http://wikiba.se/ontology#String
wdqs-updater_1   | 15:29:32.988 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://wikiba.se/ontology#directClaim o:https://poc-fne.abes.fr/prop/direct/P11
wdqs-updater_1   | 15:29:32.988 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://wikiba.se/ontology#claim o:https://poc-fne.abes.fr/prop/P11
wdqs-updater_1   | 15:29:32.988 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://wikiba.se/ontology#statementProperty o:https://poc-fne.abes.fr/prop/statement/P11
wdqs-updater_1   | 15:29:32.988 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://wikiba.se/ontology#statementValue o:https://poc-fne.abes.fr/prop/statement/value/P11
wdqs-updater_1   | 15:29:32.988 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://wikiba.se/ontology#qualifier o:https://poc-fne.abes.fr/prop/qualifier/P11
wdqs-updater_1   | 15:29:32.988 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://wikiba.se/ontology#qualifierValue o:https://poc-fne.abes.fr/prop/qualifier/value/P11
wdqs-updater_1   | 15:29:32.988 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://wikiba.se/ontology#reference o:https://poc-fne.abes.fr/prop/reference/P11
wdqs-updater_1   | 15:29:32.988 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://wikiba.se/ontology#referenceValue o:https://poc-fne.abes.fr/prop/reference/value/P11
wdqs-updater_1   | 15:29:32.988 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://wikiba.se/ontology#novalue o:https://poc-fne.abes.fr/prop/novalue/P11
wdqs-updater_1   | 15:29:32.988 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://www.w3.org/2000/01/rdf-schema#label o:"unimarc_008"@fr
wdqs-updater_1   | 15:29:32.988 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://www.w3.org/2004/02/skos/core#prefLabel o:"unimarc_008"@fr
wdqs-updater_1   | 15:29:32.988 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://schema.org/name o:"unimarc_008"@fr
wdqs-updater_1   | 15:29:32.988 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - Unrecognized statement: s:https://poc-fne.abes.fr/entity/P11 p:http://www.w3.org/2000/01/rdf-schema#label o:"unimarc_008"@en
wdqs-updater_1   | 15:29:32.989 [update 8] INFO  o.wikidata.query.rdf.tool.rdf.Munger - More than 20 unrecognized statements, further statements not logged.

ça doit être une des raisons

maxlath commented 5 years ago

le problème ne semble pas venir de wikibase(le server retourne des entités serialisé avec le prefixe wd (ex: wd:Q327)) mais plutôt de wdqs-updater qui remplacerait wd: par https://poc-fne.abes.fr/entity, URL qui n'est pas reconnu comme un sujet valide.

Unrecognized subjects:  [https://poc-fne.abes.fr/entity/Q3278, https://poc-fne.abes.fr/entity/statement/Q3278-e3cadb76-44b1-cc3b-e090-9d4459cd6f2f].
Expected only sitelinks and subjects starting with http://poc-fne.abes.fr/wiki/Special:EntityData/ and http://poc-fne.abes.fr/entity/

D'où wdqs-updater déduit il le nom de domain avec ce protocole ? J'ai essayé de jouer avec les variables d'environement disponible pour ce service (WIKIBASE_HOST et UPDATER_OPTS) mais aucune ne semble accepter de protocole. Une autre possibilité serait que le protocole soit déduit directement du server Wikibase, mais je n'arrive pas à déterminer où cela se fait

maxlath commented 5 years ago

en attendant de résoudre ce problème, j'ai donc généré, formaté et chargé un dump manuellement dans BlazeGraph, de sorte qu'il est possible de faire des requêtes sur les entités présentement dans Wikibase

Exemple:

PREFIX fne: <https://poc-fne.abes.fr/entity/>
PREFIX fnet: <https://poc-fne.abes.fr/prop/direct/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX p: <https://poc-fne.abes.fr/prop/>
PREFIX ps: <https://poc-fne.abes.fr/prop/statement/>
PREFIX pq: <https://poc-fne.abes.fr/prop/qualifier/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX bd: <http://www.bigdata.com/rdf#>

SELECT  ?personne {
  ?personne fnet:P31 fne:Q6 .
}
maxlath commented 5 years ago

dans la configuration actuel, Wikibase retourne des fichier ttl avec des URI en https ( see https://poc-fne.abes.fr/wiki/Special:EntityData/Q1969.ttl?flavor=dump ) Ce qui ne plait toujours pas à wdqs-updater, malgré la variable d'environement WIKIBASE_SCHEME=https. J'en viens à suspecter que le support des URI https n'est pas complet, query.wikidata.org semblant utiliser des URI wikidata en http simple. Une solution pourrait être de changer $wgServer de https://poc-fne.abes.fr à http://poc-fne.abes.fr, mais cela risque d'avoir des répercussions ailleurs, je pense donc préférable d'en rester là pour le moment, à savoir avec un Query Service mis à jour avec un dump #218

gotnc commented 5 years ago

Comme discuté ce matin, l'itération 6 étant terminée il est décidé de ne pas poursuivre sur la résolution de ce ticket. Je clos.