Conception d'un outil de centralisation des informations des CHATONS

Je suis d’accord pour le YAML, et effectivement @neil un jour il va falloir choisir,

Pour l’instant :

  • Chaque chaton indique clairement une URL complète pour indiquer où est son fichier .yaml ou .json, du coup pas encore besoin d’un well-known, et pas besoin de tester .json ou .yaml puisque l’URL l’indique complètement. On peut donc fonctionner avec les 2 en // au moins au début.
  • Selon moi le YAML présente l’intérêt majeur d’être KISS, et donc d’être autant générable/éditable/lisible par un humain ou un programme. C’est bien l’automatisation mais quand on peut régler un problème rapidement en dégainant un vim c’est pas plus mal. J’ai rien contre JSON, mais les ", { [ : " à répétition quand on peut avoir la même chose avec des tabulations, des sauts de lignes et des tirets… C’est plus human-compatible.
  • Comme dit précédemment le problème du générateur de fichier service chatons, n’est pas technique, mais politique (comme d’hab’) :
    • On met quoi comme valeurs,
    • on met quoi comme liste de valeurs possible pour tel paramètre,
    • on tiens comment à jour la liste de valeurs possibles ?
    • On met quoi comme champs coté IHM ?
      Au final, j’ai peur qu’on se lance dans une usine à gaz, là ou un simple fichier est relativement simple à éditer pour peut qu’on dispose d’une bonne documentation sous la main…

Je vais essayer de donner un peu de contexte, et à la fin, j’ai trois questions très concrètes, et des solutions aussi :slight_smile:

Contexte - Problème à résoudre

Quel est le problème que nous essayons de résoudre ici?

Si on se place du point de vue de l’utilisateur, celui ci va poser la question « Comment éditer un document à plusieurs » dans son moteur de recherche. Et le moteur de recherche va répondre une liste de site avec la question et donc potentiellement la réponse pour la question initiale. (Bravo framapad, 2eme résultat avec google en nav privée).

Plus spécifiquement, dans le contexte des chatons, l’idée est d’aider les utilisateurs à trouver des outils qui correspondent à l’usage qu’ils ont besoin, fournit par un hébergeur « labellisé » chatons.

Ceci est un problème de taxonomie. (je lie et relie la page wikipedia plusieurs fois par an, et je commence à peine à comprendre).
De ce que je comprends, nous essayons de catégoriser les différents chatons sous différents critères, pour ensuite aider l’utilisateur à trouver le chatons ou le service dont il a besoin.

(si vous n’êtes pas d’accord à ce stade, il faut le dire, parce que le reste va dépendre de cela).

Solutions

Moteur de recherche

PYG au départ aurait pu développer un moteur de recherche :slight_smile:

Vous l’aurez compris, c’est plus compliqué :slight_smile:

Mais ce que je veux dire par là c’est que c’est le métier des moteur de recherche d’aider les utilisateurs à trouver des réponses à leur questions.

Meme on peut aller plus loin et dire que c’est 2 façons de trouver de l’information sur Internet, avec un moteur de recherche ou un annuaire. Les annuaires sont apparus en premier.

Et les moteur de recherche font de la taxonomie pour classifier les pages web et essayer de comprendre si c’est une personne, un lieux, un évènement ou un hébergeur de pad.

Une des méthodes est d’utiliser de l’intelligence artificielle pour effectuer cette taxonomie.

Je ne sais pas si on peut développer une intelligence artificielle pour détecter un chatons, mais certains arrivent à détecter un logiciel libre avec le design moche, donc pourquoi pas ( # petite blague, sarcasm tout ça :slight_smile: )

Ontologie

L’autre méthode est de développer une ontologie (Pareil, je la lie plusieurs fois par an, c’est complexe :confused: ).
Une ontologie est un vocabulaire pour la taxonomie (je crois avoir compris ça).

PYG est parti sur cette voie là au commencement de chatons, et il a définie une ontology, un schéma dans une base de donnée, qui se transforme en questionnaire pour chaque chatons, à remplir.
Enfin, pour l’utilisateur final, il peut rechercher grâce à ce formulaire.

C’est en effet beaucoup plus facile à faire qu’un moteur de recherche :slight_smile: C’est un annuaire de chatons.

Il existe de nombreuses ontologies, FriendOfAFriend, activityPub, https://schema.org

Conclusion

Nous sommes d’accord à ce stade que c’est un problème de taxonomie, et que la façon la plus simple de la résoudre est de créer une ontologie.
PYG en a déjà créé une, et elle est utilisé sur le site entraide.
(Quoi qu’il arrive, il faut se mettre tous d’accord sur une ontologie et la maintenir).
Et ici, une autre ontologie est proposée.
Reste aussi à parler du moyen technique, jusqu’à maintenant, on utilise une base de donnée drupal, avec un formulaire, et celui-ci peut exporter du json, et même du yaml si on le décide je pense.

Semantic Web

Comme dit plus haut, Google investit massivement dans l’intelligence artificielle pour essayer de comprendre de quoi parle une page. Une autre méthode poussée par les moteur de recherche (pas que google hein), et que les pages disent elles-mêmes ce qu’elles représentent.
Et pour se faire, les moteurs de recherche demandent aux éditeur de site de décrire le document avec un langage compris par les machines.
Et ils développent même une motivation pour se faire. Si vous voulez avoir de plus « beaux » résultats, il faut respecter notre schéma.

Et donc google avec d’autres, poussent le développement du semantic web.

Je vous recommande d’aller faire un tour sur ces liens pour comprendre ce dont il s’agit:

Et c’est une techno w3c.

Tim Berners Lee (un des concepteur du web) essaye de pousser cette techno. (D’ailleurs Michiel De Jong avec qui j’ai créé IndieHost travaille maintenant avec lui :slight_smile: et sa page est semantic avec la techno microformat. )

Et enfin, je vous recommande cette video sur LinkedData, un TED avec Tim Berners Lee.

Technos

Dans le web semantique, il y a plusieurs moyens technique de le mettre en place:

(J’ai pas vu de yaml-ld pour le moment désolé)

Ontologies

Il y a énormément d’ontologies, seulement schema.org est reconnu par les moteurs de recherche.

Questions

Du coup, à ce stade, je pense qu’il devient naturel de se poser 3 questions:

  • est-ce qu’on veut faire du web semantic ?
  • quelle techno on utilise?
  • quelle ontologie

Ma réponse

Oui, bien sur, on veut faire du web sémantic :slight_smile:

Comme Google et Bing utilisent des résultats enrichies avec shema.org, je propose qu’on utilise cette ontologie.
Et enfin, je pense que le json-ld est le plus facile en mettre en œuvre, donc je recommande celui ci.

Comme sur librehosters au final (chatons au niveau européen.)

Pourquoi pas le chemin well/known

→ le chemin well known: https://lab.libreho.st/librehosters/directory/issues/5

PraticoPratiquement maintenant

Du coup, si on est d’accord avec le semantic web, cela veut dire que l’information se trouve sur le site du chatons.

Il faut donc créer un outils capable d’aller chercher cette info et la digérer pour la présenter à l’utilisateur final.

écrire un json-ld

Pour les gens qui disent c’est difficile de mettre un json sur son site, si on utilise des standards, cela est positif, cela veut dire que d’autres gens travaille aussi dessus.
Par exemple, il existe des plugins wordpress pour publier du json-ld.
Et je ne serais pas surpris de voir d’autre CMS avoir cette fonctionnalité.
( Pour hugo, c’est juste super simple )

outils pour aider à générer le json du chatons

On peut aussi imaginer un outils qui fait ce travail. Aujourd’hui d’ailleurs, drupal le fait. Et on pourrait imaginer le garder. Et ajouter une fonctionnalité qui permet d’export son json-ld, ou meme définir le drupal comme source de vérité, comme c’est le cas pour le site entraide.

aller chercher l’information

Ensuite, pour afficher l’information sur un site comme entraide, il faut d’abord aller la chercher.
Aujourd’hui, la source de vérité est le drupal.

Si on passe en semantic, il faut aller chercher l’info chez tous les chatons.
Il existe déjà un langage pour cela, SPARQL.
Je ne suis pas expert, mais il faut creuser.

Et donc, on peut imaginer un outils, qui prends le tableau des urls des chatons en entrée et sort un json avec toute les infos nécessaires pour construire les différentes pages de entraide par exemple.

Il y a déjà beaucoup de données sémantique dans une page web html:

  • titre
  • description
  • favicon
  • tags twitter (semantic web aussi)
  • tags facebook (social graph est une autre ontology)

Et si il y avait une quantité infinie de temps, on pourrait imaginer que notre outils puisse comprendre cela.

Afficher l’information

Une fois que l’information est là, il devient simple de l’afficher, transfomer une base de donnée en html (drupal) ou json en html (le site entraide), on sait faire.

Conclusion

Beaucoup de gens, beaucoup plus intelligents que moi réfléchissent à ce problème depuis beaucoup plus longtemps que moi, et je pense qu’il faut s’appuyer sur leurs travaux.

Je pense sincèrement que le semantic web, c’est l’avenir, mais que cela va encore prendre beaucoup de temps. C’est aussi une manière pour nous de pouvoir développer des annuaires sans la complexité du développement d’un moteur de recherche.

Je pense personnellement que json-ld et schema.org sont la voie à suivre, car cela permet au chatons une visibilité accrue sur les moteurs de recherche. Et on peut s’appuyer sur l’expérience de librehosters pour cela.

Enfin, quels outils pour le mettre en oeuvre? Je ne sais pas, j’ai pas d’opinion forte pour le moment, et encore moins car j’ai pas le temps pour développer cela.
Si c’est drupal qui va chercher le json-ld de chaque chatons et qui permet de compléter sa base de donnée, avec aussi la possibilité de remplir un formulaire, et que c’est ensuite utilisé par un site statique avec une api qui va chercher un json du drupal, ça me va :slight_smile:

Et surtout, si on développe des outils pour json-ld et schema.org, ils pourront s’inscrire dans un écosystème, et non dans un entre-soi.
(Dans tous les cas, si ce n’est pas le cas, on peut aussi développer des « traducteurs », mais ça va être beaucoup plus complexe :slight_smile: )

My 1 euro :slight_smile: (Oui, c’est un peu plus que 2cents à ce stade :wink: )

Héhé… Pour ma défense, je trouve étonnamment difficile de trouver la référence au logiciel libre sur le site de ce logiciel. Elle y est quand même ! Mea culpa. :wink:

1 « J'aime »

Ok tu t’en charges :smiley:

Bonjour !

@Bertille @Adrien_L étiez-vous présent le 17 Décembre 19, on a fait une courte présentation du web de données à l’UTC avec l’équipe de reconnexion (.app)
Présentation qui s’est d’ailleurs transformée en Tx :slight_smile: Il y a Sébastien Rosset (qui connais très bien Activity Pub) qui est membre de cette Tx du coup.

Du côté de l’Assemblée Virtuelle, c’est un peu notre passion de faire des cartographies et référencer des objets, plutôt de manière distribuée (c’est à dire que chacun choisit où il héberge son profil, ça peut être chez lui s’il en a les compétences et l’énergie, chez un ami, chez un chaton, etc…) du moment qu’il est libre de choisir et que les informations qu’il y stocke sont interopérable avec d’autres qui font du référencement.

C’est fort de ce constat qu’on a lancé Transiscope. Chaque source héberge des données (dans ce cadre elles sont hétérogènes donc on utilise un ETL qu’on a développé (le bus sémantique ) pour harmoniser les données. ça nous pose des problèmes de modération de contenu, de doublons, etc… et on y travaille. (pour info, nous mettre d’accord sur la taxonomie a pris beaucoup, beaucoup de temps :slight_smile: ).

En // on développe un outil basé sur Activity Pub et les triples store pour permettre de mettre en ligne facilement des serveurs interopérables (et donc faciliter les cartographies distribuées). On fait une petite présentation le 20 Mai au soir si ça vous intéresse https://framaforms.org/inscription-meetup-semapps-1-1588664069

Dans le benchmark, il y a également les amis de https://murmurations.network qui ont bossé sur un challenge similaire. Leur raisonnement est intéressant et pourra peut être vous permettre d’alimenter vos réflexions !

J’ai notifié les amis du web semantique de ce sujet. On échange principalement sur Matrix, mais nul doute que quelques une viendront faire un tour par ici.

A bientôt,
Pierre

1 « J'aime »

Voila, du coup, si vous avez pas compris:

Si on décide de bouger vers du web sémantique, cela veut dire, à peu prêt, qu’il « suffira » de pointer transiscope vers le drupal chatons pour avoir tous les chatons là-bas aussi :slight_smile:

Ce serait cool hein? :slight_smile:

La lecture annuelle de wikipedia c’est sympa, mais au cas où tu te lasses je recommande http://www.linkeddatatools.com/semantic-web-basics :slight_smile:

Une confusion que j’ai faite pendant longtemps : Semantique ne signifie pas interopérable. Semantique signifie que ta base de données est en graph (Jenna/Fuseki) et non tabulaire. ça ne signifie pas que tu es interopérable, il est nécessaire d’avoir un middleware qui le permette.
Et donc, tu peux être sémantique et pas intéropérable, et tu peux être tabulaire (non sémantique) et intéropérable (API - ça demande de traduire les données à chaque fois SAUF si tu as une API standard - ce qu’ils font https://talk.incommon.cc/)

1 « J'aime »

Waouw, j’ai rien compris ! J’essaie hein pourtant je vous jure…

Ça se tripatouille pas mal le concept, ça j’ai bien compris.

Mais CONCRÈTEMENT qui pose la première ligne de code ?
Parce que votre truc là j’ai pas le début d’une idée de ce que ça veut diable dire,

Donc si vous voulez « pointer transiscope vers le Drupal chatons » (!KAMOULOX!), vous attendez quoi ? Un POC que diable ! Et si c’est mieux, nous on range nos billes.

Cordialement,

1 « J'aime »

Qui c’est qui s’occupe de mettre @djayroma en PLS ? :mage:

J’avoue qu’on arrive avec nos gros sabots de conceptualisateurs relou :o

  1. ou est ce qu’on t’as perdu exactement ?
  2. est-ce que c’est plus convenable qu’on vous laisse POCer ici tranquillemement et qu’on-ceptualise sur un autre fil ?
    → C’est vrai qu’on est un peu hors scope par rapport au thème relativement simple de la Tx (basic crawler), mais en même temps

alors moi dès que je lis ça, je me chauffe ! :fire:

Désolé d’avoir apporté du bruit ! (même si je pense que ça vaut le coup de jeter un :eye: à murmurations)

1 « J'aime »

Le transiscope:
https://transiscope.org/carte-des-alternatives/#/carte/@46.32,2.50,6z?cat=all

Le site https://chatons.org est un drupal et peut déjà donner du json:
https://chatons.org/fr/entraide/json

Et ce que je souhaite pour chatons ressemble fortement à librehosters:
https://libreho.st/

If you would like to be included in this list please add a [librehost.json file](https://lab.libreho.st/librehosters/librehost-api) to your projects website and add the project itself to the [librehosters directory repository](https://lab.libreho.st/librehosters/directory).

Ça aide?

1 « J'aime »

Yep ça aide, je comprends mieux …

MAIS !

L’idée avec le POC TX, c’est de faire un crawler pour que chacun gère sa partie des services (décentralisation POWA)
ET àmha si on veut « pointer transiscop » il vaudra mieux le faire à terme sur entraide,
ET à terme exit chatons/drupal
ET c’est entraide qui sera le plus pertinent (parce que décentralisé… suivez un peu),
quitte à ce que que chatons/drupal aille puiser dans entraide sa Base…

Bref #mes2kopecs : Le crawler sera bien plus pertinent à terme, qu’une base de donnée centralisée et mise à jour via un formulaire (dixit Paul Mockapetris jeune stagiaire)…

Et l’objectif du crawler c’est bien de pisser du JSON si chère à ton cœur…

Elle est où ma PLS ?

2 « J'aime »

Après si tu as le JSON et si tu peux entrer dans transiscop : Go !

Fais toi plaisir, on te regarde.

Peut-être que Transiscope n’est pas vraiment le top pour faire un POC car il a déjà sa propre classification.
En revanche, on peut utiliser (simplement) gogocarto - logiciel libre qui génère la carte de Transiscope pour afficher les chatons sur la carte et avoir un rendu peut être un peu plus design que https://chatons.org/find avec une classification sur laquelle vous avez la main.

JSON/YAML → crawler → gogocarto

1 « J'aime »

Ca tombe bien, gogocarto.fr est hébergé par le chaton Colibris Outils Libres! :slight_smile:
Mais en effet le sujet n’est pas encore la restitution car à l’heure actuelle ce serait plus facile et bien plus opérationnel de faire drupal (en place) > gogocarto (en place) que JSON/YAML (à définir) → crawler (à coder/tester) → gogocarto

D’ailleurs c’est aussi un peu mon avis sur ce sujet, on est en train de décentraliser pour recentraliser après avec un autre outil (mais cette fois c’est un script python, c’est quand même mieux qu’un cms avec une interface (sarcasme)), sans que l’on ai pris le temps de discuter bien comme il faut du modèle des données.

Pourtant il y a tout le travail historique de @pyg et @angie sur les champs pour un chaton, les champs pour la conformité d’un chaton, et les champs nouveaux pour les services des chatons (et pour l’instant les formats de données proposées prennent en compte cette partie là mais moins le reste, qu’il serait intéressant à avoir) sur lequel s’appuyer, et donc ya du boulot pour que le nouveau modèle soit aussi complet que l’existant…

Je plussoies aussi la remarque de @neil sur le mélange français / anglais dans les données, il faudrait trancher.

Et enfin, j’ai un peu peur du travail d’animation que cela demanderait pour inciter tous les chatons à créer leur json chez eux, car je n’ose imaginer l’énorme temps d’animation pour @lise et @angie pour que les données soient bien saisies juste a un endroit avec un formulaire tout fait…

Pour moi, il est en tout cas impératif de prendre le temps de bien structurer les données qui permettent de qualifier un chaton, sa conformité à la charte, et tous ses services proposés, avant de discuter de si on le fait en yaml ou json ou json-ld, en centralisé ou en décentralisé, etc,…

2 « J'aime »

La remontée d’informations des membres par un tel système, voilà qui parait très très intéressant \o/

On me souffle que des projets similaires existent dans le monde du Fediverse :

Vous connaissez ? Peut-être une source d’inspiration ?

Les projets semblent ne pas manquer :

Quelqu’un aurait une vision globale de où cela en est ? Un bilan pour en tirer des bonnes pratiques ? :slight_smile:

2 « J'aime »

Pour info, pour le Chapril, on expérimente nodeinfo2 et serviceinfo :slight_smile:
Une combinaison pertinente semble être RFC6415 + serviceinfo.
Si pas suffisant pour le CHATONS, une solution possible est d’envisager RFC6415 + ChatonsInfo :wink:

3 « J'aime »

Bonjour à tous.

Le fil de discussion a largement dérivé. Le travail des étudiants (que j’encadre) est borné dans le temps (il reste 1 mois à raison d’une journée par semaine environ de travail) et doit aboutir à des propositions concrètes. L’idée d’un autre fil pour des échanges plus prospectifs est donc une bonne idée.

Au stade où en est le travail, on ne changera pas pour YAML, outre la discussion de savoir si c’est mieux ou pas, ce serait un travail sans grand intérêt pour eux (la TX reste un processus pédagogique) et sans grand intérêt pour le POC ; si l’idée est bonne mais que JSON pose problème, il sera remplacé, ce sera du parsing à ajuster dans le code.

Là, et c’est l’idée d’une preuve de concept, est donc de faire marcher quelque chose avant la fin, afin de voir ce qu’on peut en dire en pratique (et non en projection théorique).

Si vous avez envie de contribuer concrètement à ce travail, vous pouvez alimenter le crawler en éditant le JSON de votre Chaton et en mettant à dispo votre URL. On pourra ainsi discuter en pratique de cette hypothèse.
Vous pouvez aussi faire des retours pour améliorer ce qui est fait au niveau code, modèle de données, documentation, etc. (merci beaucoup à ceux qui l’ont fait). Mais si vous avez envie de proposer autre chose, ce n’est pas dans le scope limité des étudiants que ça entrera. Et si vous ne souhaitez pas contribuer parce que vous n’aimez pas quelque chose dans ce projet, aucun souci, c’est la liberté de chacun.

Merci à vous,
Stéphane.

3 « J'aime »

Désolé si ça a dérivé, en tout cas une bonne raison pour eux d’apprendre ce bon vieux xkcd

https://xkcd.com/927/

Chez les librehosters, on a déjà un json, je sais que ce n’est pas le même schéma, mais peut peut-être vous pouvez vous amuser avec?

https://libreho.st/directory.json

Bon courage à eux :slight_smile:

1 « J'aime »

Salut,

@stph je te cite :

Et ensuite :

J’ai proposé (en MR sur le projet) de permettre de parser du YAML en plus, pas de tout remplacer, mais de permettre en se basant sur l’URL de parser du JSON ou du YAML.

Je ne vois pas pourquoi tu refuses cette évolution du code, la MR est vraiment petite : https://framagit.org/bertille/tx-collecte-chatons/-/merge_requests/6/diffs

C’est pas un REMPLACEMENT, c’est un AJOUT, le code se base sur l’URL que le chaton fourni, avec un fichier exemple ça me semble vraiment simple.

Cordialement,

1 « J'aime »

Bonjour,

Je ne refuse rien, je n’ai pas ce pouvoir ni cette envie, je priorise uniquement le travail des étudiants dans leur cadre pédagogique ; la suite appartiendra aux Chatons et cette MR pourra tout à fait être acceptée, ce n’est certainement pas moi qui déciderai.

Gérer deux formats, c’est gérer deux logiques de validation, d’édition, c’est poser la question de JSON-LD avec YAML, c’est des conversions pour le moteur de recherche en JS qu’ils sont en train de faire, bref, c’est plein de « petites » choses, qui vont les ralentir dans leurs investigations, alors qu’ils ont d’autres sujets à creuser et peu d’énergie restante.

C’est l’idée d’un POC telle que je la conçois, on ne cherche pas forcément la meilleure solution, on cherche à faire fonctionner quelque chose presque en vrai pour ensuite continuer de se poser des questions (comme JSON vs YAML si c’est ce qui ressort de cette expérience).

J’ai peut-être eu tord de chercher à mettre les étudiants en situation réelle dans le contexte du CHATONS, dans ce cas je m’en excuse, et comme dit précédemment, sentez vous libre de ne pas répondre. Je pensais que ce serait chouette pour eux et pour le collectif de mixer les dynamiques, mais finalement j’ai un doute je ne pense pas que je reprendrai cette initiative de la même façon en tous cas.

In fine, cela reste un travail pédagogique, c’est donc cet axe qui prime (on pourra aussi ne pas être d’accord avec ce que je trouve « pédagogique » et ce que d’autres trouveront plus « pédagogique », mais disons que là c’est mon job et que je n’ai pas prévu d’en parler sur cette liste).

Voilà, encore désolé des déceptions suscitées au sein du collectif et chez les étudiants, je ferai différemment à l’avenir.

Bonne continuation à tous,

Stéphane.

3 « J'aime »