• Lettre ouverte au Grog et à Opale

    logo du web sémantique

    Le Web Sémantique est un concept ambitieux imaginé notamment par TBL (inventeur du web et directeur du W3C) concrétisé par plusieurs technologies.
    L'idée maîtresse est de faire un web des données au lieu d'un web des documents. Un web où l'on pourrait automatiquement agréger des données ou naviguer de l'une à l'autre, au lieu de devoir le faire à la main en lisant les documents.
    Exemple concret : si le GROG fournit une représentation sémantique de ses données, une librairie pourra donner une liste de livres qu'elle vend, en pointant vers les données du GROG. Une ville pourra référencer sémantiquement toutes les librairies qu'elle contient, et ainsi un habitant pourra, avec une simple et unique recherche, trouver si on vend quelque part dans sa ville (et où) la dernière extension de L5R.

    Techniquement, voici comment ça marche :

    La première brique est le RDF, norme du W3C pour modéliser des données.
    Le but est de pouvoir tout représenter, comme ça, dès le début, le modèle est évolutif, et les agrégations possibles. Pour cela, le modèle reprend le principe universelle de la phrase (sujet, verbe, complément) pour définir des triples, de la forme (ressource, propriété, valeur) et (ressource, propriété, ressource).
    Exemple :

       La ressource <http://www.legrog.org/jeux/livre-des-cinq-anneaux> est un <Jeu>
       La ressource <http://www.legrog.org/jeux/livre-des-cinq-anneaux> a pour nom "Le Livre des Cinq Anneaux"
       La ressource <http://www.legrog.org/jeux/livre-des-cinq-anneaux> est édité par <http://www.legrog.org/editeurs/alderac-entertainment-group>
       La ressource <http://www.legrog.org/jeux/livre-des-cinq-anneaux> est édité par <http://www.legrog.org/editeurs/edge-entertainment>
       La ressource <http://www.legrog.org/editeurs/alderac-entertainment-group> a pour nom "Alderac Entertainment Group"

    Le deuxième principe est d'utiliser des URI comme identifiants (assurant ainsi l'unicité, et dans le cas d'URL déréférençable, l'accès à plus d'information)

    La deuxième brique est le schéma RDF (RDFS), encore une norme du W3C, pour définir classes (sous classes), et propriétés (et divers autres infos).
    Par exemple : on définit la classe <Jeu>. On définit la méthode "a pour nom" qui à un <Jeu> associe un littéral. On définit la classe <Éditeur>. On définit la méthode "est édité par" qui à un <Jeu> associe un <Éditeur>.

    La troisième brique (et la dernière dont je parlerai ici, même s'il y en a d'autres) est SPARQL, toujours une norme du W3C définissant un langage de requête sur des données RDF, assez proche du SQL dans l'esprit.
    Exemple :

    select ?a, ?jeu WHERE ?a est_une <personne>, ?a auteur_de ?jeu, ?jeu categorie <MedFan>, ?a présent_à ?conv, ?conv date ?date FILTER ?date > 2015-01-01

    Cette (pseudo) requête va renvoyer la liste des auteurs de jeux MedFan (et ce jeu) qui étaient présent à des convs s'étant déroulées depuis le 1er janvier 2015.

    Encore plus techniquement, pour implémenter tout ça, il y a plusieurs façon de faire. La meilleure est de faire du full web sémantique :
    Un triplestore pour stocker le RDF (la base de donnée), une bibliothèque dans le langage de notre choix pour injecter et manipuler les triples, et une API SPARQL pour faire des requêtes (qui pourront parfaitement être utilisées par la couche business par exemple).

    Quels avantages par rapport à des bases de données relationnelles ?

    Interopérabilité :

    Vu que les données utilisent le même format (les triples : RDF) et réutilisent le plus souvent les mêmes vocabulaires (les schémas : RDFS), l’agrégation de données est immédiate.
    Ex : si un site expose une base des conventions rôlistes, un autre des salons littéraires, et un troisième des salon de jeux de sociétés, les participants pourront décrire à quels événements ils vont se rendre, et une personne pourra rechercher ceux qui ont au moins participé à un événement de chaque type.

    Évolutivité :

    Vu que le modèle permet de tout décrire, il n'est jamais un frein à des ajouts ou des enrichissements.
    Ex : Supposons que l'on manipule les 2 entités suivantes : Rôliste, et Association. Et la relation : un Rôliste est membre d'une Association. Et enfin, on a une requête qui renvoie la liste des membres d'une Association. Ça se fait bien avec une base relationnelle. Par contre, le jour où on se rappelle qu'une Association peut aussi être membre d'une autre Association, côté web sémantique, il suffit le modifier la relation membre pour dire qu'elle peut avoir une Association comme sujet. Et on ne change rien à la requête. Côté base relationnelle, il faut un nouveau champ, une nouvelle table de liaison, et la requête doit être revue.

    Recherche :

    Le modèle RDF a été pensé pour faciliter la recherche d'information. D'une part, l'héritage des classes permet de trouver des ressources qui correspondent à un type demandé. D'autre part le principe simple et léger de triples permet de rajouter des conditions très facilement, sans avoir à manipuler de multiples jointures.

    Visibilité :

    Lorsqu'on a réuni des données dans une base relationnelle, il faut développer des APIs, ou des pages web (qui ne pourrons généralement pas être réutilisées). Avec l'approche sémantique, plein de possibilités : export des triples en RDF (réutilisable directement, contrairement aux exports SQL), API SPARQL (rien à développer), affichage d'une ressource en XHTML ou RDF selon la requête, et dans le cas du XHTML enrichissement par RDFa (ce qui en plus augmente le SSO). Bref, quand on a fait un gros travail de récupération de données, et qu'on veut avoir de la visibilité, il vaut mieux utiliser les possibilités offertes par le web sémantique.

    Et pour les rôlistes ?

    Pour revenir à ce qui nous concerne, le but serait de structurer les données du Grog (pour les jeux, les auteurs et les conventions), et si possible celles d'Opale (les utilisateurs, les parties) de façon sémantiques, afin de pouvoir profiter de tous les avantages listés plus haut, à commencer par pouvoir répondre à Je cherche un jeu medfan humoristique et sans dé, dont un des auteurs a écrit au moins un scenario WoD officiel, Je cherche une partie avec ce jeu en one-shot, sur Paris et environs, et dont au moins un des autre PJs a déjà présenté son jeu amateur en convention et J'ajoute à mon calendrier toutes les conventions à venir, à moins de 100km de chez moi, et où il y a la possibilité de faire des murders.


    Pour information, j'ai déjà communiqué cette proposition aux sites concernés.

    « Génération Perdue : pas la peine de chercherQue peut-on partager ? »

  • Commentaires

    1
    Lundi 4 Janvier 2016 à 12:39

    C'est une excellente idée, mais êtes-vous prêt à faire le travail correspondant ? Je ne me représente pas la somme de boulot en question, n'étant pas informaticien, mais je sais que les programmeurs du GRoG ne sont ni assez nombreux ni assez disponible pour réaliser ceci.

    2
    Mercredi 6 Janvier 2016 à 15:06

    Si un tel projet voit le jour, il est évident que je serais ravi d'y participer.

    Néanmoins, il nécessitera forcément des programmeurs côté GRoG, ne serait-ce que pour l'accès au serveur, à la BdD et pour les réflexions sur le modèle à utiliser.

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :