Difference between revisions of "Tools - Outils"

From KarstLink
(very first draft of my notes - to be completed and checked.)
m (Added a bit about GraphQL)
 
(One intermediate revision by one other user not shown)
Line 44: Line 44:
 
  | English, French, German
 
  | English, French, German
 
  | [http://3.22.46.53/about Skos Play] is a tool that we will perhaps use to develop our controlled vocabularies
 
  | [http://3.22.46.53/about Skos Play] is a tool that we will perhaps use to develop our controlled vocabularies
  | [http://3.22.46.53/about Skos Play] est un outils que nous allons, peut-être, utiliser pour élaborer nos vocabulaires contrôlés  
+
  | [http://3.22.46.53/about Skos Play] est un outil que nous allons, peut-être, utiliser pour élaborer nos vocabulaires contrôlés  
 
  |-
 
  |-
  |}
+
  | RDF database and social network
 +
| English, French, German
 +
| [http://semantic-forms.cc:1952/ semantic-forms] is a web site backed by a SPARQL database where everyone can put person, organization, etc, profile 
 +
| [http://semantic-forms.cc:1952/ semantic-forms] est un site web propulsé par une base de données SPARQL où chacun peut ajouter: personne, organisation, etc.
 +
|}
 
    
 
    
 
  {| class="wikitable alternance"
 
  {| class="wikitable alternance"
Line 67: Line 71:
  
 
* Web API side (REST type, returning from JSON) we will find a tool from the semantic web team at Inria: SPARQL micro-services: https://github.com/frmichel/sparql-micro-service. It is rather intended to dynamically request a Web API in SPARQL. If the data is not too big, it can also be used to transform all the content of the API into RDF in one-shot mode.
 
* Web API side (REST type, returning from JSON) we will find a tool from the semantic web team at Inria: SPARQL micro-services: https://github.com/frmichel/sparql-micro-service. It is rather intended to dynamically request a Web API in SPARQL. If the data is not too big, it can also be used to transform all the content of the API into RDF in one-shot mode.
 +
 +
* GraphQL is a query language which is an alternative to JSON as an API for database queries. It uses less requests to get the same data so can be more efficient. https://graphql.org
  
 
  | valign="top" width="50%"| Voici une liste de ressources pour des articles et des outils aidant à implémenter des liens avec d'autres bases de données.
 
  | valign="top" width="50%"| Voici une liste de ressources pour des articles et des outils aidant à implémenter des liens avec d'autres bases de données.

Latest revision as of 06:17, 31 August 2022

Tools (en) Outils (fr)
Please mention hereunder any resources that you find useful for understanding the semantic web, building an ontology, creating a database, etc. Indiquez ici les ressources que vous trouvez utile pour comprendre le web séamantique, construire une ontologie, créer une base de donnée, etc.


Theme Language Presentation (en) Présentation (fr)
Ontology French A course explaining how to create a ontology with Protégé un cours expliquant comment créer une ontologie avec Protégé
Ontology English A tutorial explaining Protégé un tutoriel pour Protégé
Semantic Web French A course presenting the semantic web in great detail with examples and exercises un cours de l'Inria présentant le web sémantique de manière très détaillée avec des exemples et des exercices
Semantic Web English the book of Manning is practical to start with the semantic web Le livre de Manning est une bonne façon de commencer à s'intéresser au web sémantique
Semantic Web English (Transcript in 28 languages) A very clear video from Tim Barners Lee Une vidéo très claire de Tim Barners Lee
Software English, French, German Skos Play is a tool that we will perhaps use to develop our controlled vocabularies Skos Play est un outil que nous allons, peut-être, utiliser pour élaborer nos vocabulaires contrôlés
RDF database and social network English, French, German semantic-forms is a web site backed by a SPARQL database where everyone can put person, organization, etc, profile semantic-forms est un site web propulsé par une base de données SPARQL où chacun peut ajouter: personne, organisation, etc.
"Linking with non-RDF databases" "Connexions avec des bases non RDF"
Here is a list of resources to articles and tools helping to implement links with other databases.

KarstLink is about linking databases together, whatever structure/language/APIs they have. The connection (ontologies, requests language) is using the web semantics formalisms and tools, but we do not want the authors of the databases to rebuild them entirely, only to adapt their interfaces, or even to export them in some linkable format.

lists a lot of approaches intended for various bases/formats. Not necessarily up to date, but there are already many!

  • For relational databases there are historically many existing tools, and a W3C recommendation: R2RML (RDB-> RDF mapping language). You can find a state of the art here: https://hal.archives-ouvertes.fr/hal-01066663v5. It is a bit dated but many things are still valid.
  • For other types of databases, there is an extension of R2RML, called xR2RML, which supports any type of database, and there exists an implementation for MongoDB.
  • RML is a bit of a competitor to R2RML, but with a very active community of developers and users (much larger and more active than xR2RML).
  • Web API side (REST type, returning from JSON) we will find a tool from the semantic web team at Inria: SPARQL micro-services: https://github.com/frmichel/sparql-micro-service. It is rather intended to dynamically request a Web API in SPARQL. If the data is not too big, it can also be used to transform all the content of the API into RDF in one-shot mode.
  • GraphQL is a query language which is an alternative to JSON as an API for database queries. It uses less requests to get the same data so can be more efficient. https://graphql.org
Voici une liste de ressources pour des articles et des outils aidant à implémenter des liens avec d'autres bases de données.

KarstLink veut échanger les données entre les bases, quelle que soit la structure / le langage / les API qu'elles possèdent. La connexion (ontologies, langage de requêtes) utilisera les formalismes et les outils du Web sémantique, mais nous ne voulons pas que les auteurs des bases de données les reconstruisent entièrement, mais adapte seulement leurs interfaces, ou même les exporte dans un format pouvant être utilisé comme source de données au format RDF..

recense des tas d'approches destinées à des bases/formats variés. Pas forcément à jour, mais il y en a deja beaucoup!

  • Pour les bases relationnelles il y a historiquement pleins de choses, et une recommandation W3C : R2RML (langage de mapping RDB->RDF). On peut trouver un état de l'art ici : https://hal.archives-ouvertes.fr/hal-01066663v5. Ca date un peu mais pleins de choses sont encore valides.
  • Pour d'autre types de bases, il y a une extension de R2RML, appelée xR2RML, qui supporte tout type de base de données, et il existe une implémentation pour MongoDB.
  • RML est un travail un peu concurrent a R2RML, mais avec une communauté très active de développeurs et d'utilisateurs (beaucoup grosse et active plus que xR2RML).
  • Côté API Web (type REST, retournant du JSON) on trouvera un outil de l'équipe web sémantique à l'Inria : les SPARQL micro-services: https://github.com/frmichel/sparql-micro-service. C'est plutôt destiné à requêter dynamiquement une API Web en SPARQL. Si les données ne sont pas trop grosses, ça peut aussi s'utiliser pour transformer tout le contenu de l'API en RDF en mode one-shot.
"Some suggestions of tools to link your database " "Quelques idees d'outils pour connecter votre base de donnees"
I have listed here some hints I got from a discussion with one of the engineer in the Web Semantic team at Inria, who has developed some tools, and published a number of articles on this topic.

TBC


Je donne ici quelques idees provenant d'une discussion avec un des ingenieurs de l'equipe Web Semantique a l'Inria, qui a construit des otuils et publies pas mal d'articles sur ce sujet. Il y a plusieurs strategies possibles, selon la nature des bases, et ce qu'on veut faire.
  • Coreze ou Virtuoso: contiennent des moteurs SparQL multibases: peuvent interroger plusieurs bases en parallele, et restituer le resultat (RDF ou XML) sous diverses formes, par example en HTML dans une page web. Dans cette configuration, les bases ressources doivent accepter des requetes SparQL.

Dans Corese, avec "SparQL micro-services", le mapping (traduction SparQL vers Json ou XML de chaque base ressource) peut etre defini dans Corese, donc la base source n'a pas a etre modifiee.

  • Developement d'API RDF/SparQL sur une base classique: R2RML est un langage standard pour construire ces mappings. Voir l'outil ONTOP de l'Univ Bozen-Bolzano (https://ontop-vkg.org/)

R2RML permet d'interroger en RDF des bases dedonnees relationnelles, soit par traduction brutale de la totalite de la base en RDF, soit par traduction de la requete en SQL.