Haven OnDemand : les Graphes

Un graphe est un ensemble de points qui sont reliés par des traits ou des flèches. L'ensemble des traits entre ces points (ou noeuds) forme une figure qui peut s’apparenter à un réseau. On pourra mentionner que les liens sont orientés ou symétriques et indiquent la nature de la relation existant entre ces points.

Les Graphes sont utilisés pour créer, visualiser et explorer les données et les relations pouvant exister entre différentes entités. Un Graphe pouvant se définir comme un ensemble de noeuds reliés entre eux, chaque noeud pourra faire référence à une entité. Dans le domaine de l’analyse de l’information, ces entités pourront représenter des concepts, mais aussi des personnes, des lieux, voire même toute autre donnée qui sera porteuse de sens par rapport à d’autres entités. Il sera également possible de positionner dans ces graphes des informations élémentaires ou métadonnées qui permettront de représenter les caractéristiques d’autres entités. Par exemple, pour une page web, les noms de personnes citées ou les thématiques abordées pourront être représentés dans un graphe dans lequel les métadonnées de la page seront reliées entre elles. Les noeuds pourront donc être des éléments d’un document (les destinataires ou expéditeurs d’un email par exemple) et sont connectés les uns aux autres. Pour illustrer le concept de Graphe, la plate-forme Haven OnDemand fournit un exemple de graphe basé sur les données de Wikipedia, version anglaise. Dans ce graphe, chaque lien cliquable d’une page a été indexé et est représentable sous la forme d’un noeud. Le Graphe permet alors de visualiser de quelle façon les pages sont reliées entre elles et quel serait le plus court chemin qui relierait deux pages Wikipedia. Il permet ainsi aux développeurs de comprendre les relations entre chaque page et comment les sujets peuvent être reliés les uns aux autres. Ces API montrent des connexions sous la forme d’un graphe que l’on peut utiliser dans une application de plus haut niveau.

1 - Son fonctionnement

Pour réaliser et utiliser (dans les sens de navigation) des graphes, la plate-forme expose plusieurs API. Chacune de ces API peut être testée en ligne sur la structure de graphe provenant des liens Wikipedia. Le noeud est, dans une approche graphe, un sommet du graphe. On parlera aussi de neighbors et de neighborhood. C’est à dire de voisins et de voisinage. Par exemple, le voisinage d’un sommet est l’ensemble de tous les sommets proches. Voici l’ensemble des API disponibles autour des Graphes :

API

Description

Get Common Neighbors

trouve les voisins communs entre les noeuds qui ont été

spécifiés par le développeur

Get Neighbors

 

retourne les voisins d’un ou plusieurs sommets. Par défaut,

l’API trouve les voisins par similarité sur les noeuds déclarés

Get Nodes

Donne la liste de tous les sommets du graphe. Par défaut, l’API les classe par hiérarchie

Get Shortest Path

Cette API définit le chemin le plus court dans un graphe entre 2 sommets spécifiés

Get Subgraph

retourne le sous-graphe que l’on peut avoir sur un jeu de noeuds.

Suggest Links

suggère des noeuds proches d’un noeud défini par le développeur mais sur lesquels nous ne sommes pas connectés.

Summarize Graph

Cette API fournit un résumé du nombre de noeuds du graphe courant et les détails des attributs des noeuds

2 - Exemple d’utilisation

Voici un exemple d’utilisation avec l’API « Get Common Neighbors » :

URL de l’API = https://api.havenondemand.com/1/api/sync/getcommonneighbors/v1

Paramètre d’authentification = apikey

Paramètre obligatoire = ID ou Nom de la source / ID ou Nom de la cible Paramètre optionnel = Nombre maximal de résultat / Nombre minimum de points communs entre la source et la cible.

Ce qui donne pour l’exemple de Wikipedia en anglais :

https-://-api.havenondemand.com/1/api/sync/getcommonneighbors/v1&graph=wiki_eng&max_results=5&source_name=Barack Obama,François Hollande&apikey=votre_apikey

Démarrage rapide

Les requêtes doivent spécifier un ou plusieurs noeuds pour lesquels vous voulez trouver les voisins communs :

* Pour trouver les « voisins sortants » d’un noeud (c’est-à-dire les « noeuds cibles » vers lesquels le « noeud source » d'entrée fait référence), utiliser les paramètres source_names ou source_ids.

* Pour trouver les « voisins entrants » d’un noeud (c’est-à-dire les « noeuds sources » qui pointent vers le « noeud cible » d'entrée), utiliser les paramètres target_names ou target_ids.

Pour illustrer ce fonctionnement, prenons l'exemple suivant qui renvoie cinq pages Wikipédia qui sont liées à partir d’au minimum l'une des pages suivantes : Le Royaume-Uni, la France, ou l'Italie.

POST /1/api/[async|sync]/getcommonneighbors/v1?source_names=United Kingdom,France,Italy&max_results=5

L'API renvoie tous les voisins des noeuds que vous spécifiez, avec la valeur des points communs (« commonality ») entre les noeuds, qui indique le nombre de lien entre les noeuds d'entrée et leur voisin. Par exemple, une valeur de trois points communs (commonality = 3) montre que le noeud indiqué est lié (ou voisin) à 3 des noeuds d'entrée.

Spécifier « Source » et « noeuds cibles »

Il est possible de spécifier les deux types de noeuds (source et cible) dans la même requête. Par exemple, la requête suivante renvoie les pages qui sont liées à la page «Royaume-Uni» et qui ont également un lien vers la page "France".

POST /1/api/[async|sync]/getcommonneighbors/v1?source_names=United Kingdom&target_names =France&min_commonality=2

Pour en savoir plus

https://dev.havenondemand.com/apis?category=Graph%20Analysis
https://dev.havenondemand.com/docs/HowTo_Graph.html

Les vidéos autour d'Haven OnDemand

  • Ayni (startup) : Haven onDemand Speech-to-text API pour l’apprentissage d’une nouvelle langue.
  • Blink (startup) : Haven onDemand Facial Recognition API pour le speed dating.
  • SocialCapital (startup) : Haven onDemand Concept Extraction API pour le recrutement.
  • Transparent (application) : Haven onDemand Image Recognition API pour le recrutement.
  • Haven onDemand<span"> : présentation de l’API reconnaissance faciale
  • CollabNotes : présentation des APIs Concept & Entity Extraction


Les liens essentiels d’Haven OnDemand