Vous pouvez interroger un graphe de connaissances pour rechercher un sous-ensemble des entités et des relations qu’il contient et voir comment différentes entités sont connectées les unes aux autres. Consultez les exemples ci-dessous :
- À partir d’un graphe de connaissances représentant la propagation d’une maladie infectieuse, examinez les personnes et les animaux associés via une relation avec une ressource donnée.
- À partir d’un graphe de connaissances représentant une chaîne d’approvisionnement de fabrication, examinez le contenu associé à un composant spécifique, y compris les fournisseurs, les moyens de livraison, les entrepôts, etc.
- À partir d’un graphe de connaissances représentant une organisation, examinez les appareils d’un type donné et répertoriez-en les propriétés, y compris le nom de l’employé responsable.
Vous pouvez identifier le sous-ensemble d’entités et de relations, ou leurs propriétés, en interrogeant le graphe de connaissances. Utilisez le langage de requête openCypher pour écrire des requêtes openCypher afin de découvrir les entités associées et leurs propriétés et utilisez cet ensemble restreint d’informations dans le graphe de connaissances, une carte ou un diagramme de liens.
Écrire une requête openCypher
Les requêtes openCypher sont aux bases de données orientées graphe ce que les requêtes SQL sont aux bases de données relationnelles. Voici un exemple de base : imaginez un diagramme décrivant les produits d’une entreprise et les usines dans lesquelles ces produits sont fabriqués. Le constructeur automobile possède des usines qui sont des entités, identifiées par la variable f ; les modèles de véhicule qu’il fabrique sont des entités m et il existe une relation HasModel (Possède un modèle) entre l’usine et les modèles qu’elle fabrique, hm.
- Pour trouver les dix premières entités de type modèle, vous pouvez utiliser une requête telle que MATCH (m:Model) RETURN m LIMIT 10
- Pour savoir quels modèles sont associés à quelles usines, vous pouvez appairer les entités via la relation HasModel (Possède un modèle) à l’aide d’une requête telle que MATCH (f:Facility)-[ :HasModel]->(m) RETURN f,m.
- Votre requête peut renvoyer des propriétés spécifiques d’une entité ou d’une relation en plus ou à la place de son nom d’affichage. Par exemple, pour renvoyer le modèle de véhicule ainsi que la propriété de catégorie du modèle, vous pouvez utiliser une requête telle que MATCH (f:Facility)-[ :HasModel]->(m) RETURN f,m,m.category.
Vous en saurez plus sur le langage de requête openCypher dans un document fourni par Amazon. ArcGIS Knowledge ne prend pas en charge tous les aspects du langage de requête openCypher. Par exemple, les requêtes ne peuvent pas être utilisées pour mettre à jour le graphe de connaissances, mais uniquement pour renvoyer des valeurs.
Interroger le contenu de l’enquête
Vous pouvez explorer un ensemble plus petit d’entités et de relations dans une enquête en interrogeant son contenu dans la vue de l’enquête.
- Ouvrez une enquête et parcourez son contenu.
- En haut de la vue de l’enquête, cliquez sur la zone de texte de recherche ou appuyez sur Ctrl+F.
Le contrôle de recherche apparaît.
- Cliquez sur Query Mode (Mode de requête) en bas du contrôle de recherche.
La légende affichée dans la zone de texte de recherche est remplacée par Run graph query on knowledge graph (Exécuter la requête de graphe sur le graphe de connaissances), le bouton Expand Query Window (Développer la fenêtre de requête) s’affiche et le mode Search Mode (Mode de recherche) apparaît en bas du contrôle de recherche.
- Saisissez une requête openCypher dans la zone de texte de recherche.
Par exemple, une requête telle que MATCH (p:Person)-->(v:Vehicle) RETURN p, v renvoie toutes les entités Person (Personne) ayant un type de relation quelconque avec une entité Vehicle (Véhicule), et renvoie les entités Person (Personne) et Vehicle (Véhicule) dans les résultats.
- Appuyez sur la touche Entrée.
Les résultats de la requête apparaissent dans la vue de l’enquête.
- Cliquez sur la zone de texte de requête pour modifier la requête et saisir vos modifications.
Par exemple, redéfinissez la requête sur MATCH (p:Person)-[hv:HasVehicle]->(v:Vehicle) RETURN p, hv, v pour renvoyer toutes les entités Person (Personne) ayant la relation HasVehicle (Possède un véhicule) avec une entité Vehicle (Véhicule), et renvoyer l’entité Person (Personne), la relation HasVehicle (Possède un véhicule) et l’entité Vehicle (Véhicule) dans les résultats.
- Appuyez sur Entrée pour exécuter la requête modifiée.
Les résultats de la requête mise à jour apparaissent dans la vue de l’enquête. Les entités et les relations renvoyées par la requête sont identifiées par les icônes appropriées.
- Si vous avez besoin de plus d’espace pour écrire une requête openCypher plus longue, cliquez sur le bouton Expand Query Window (Développer la fenêtre de requête) .
La requête actuelle s’ouvre dans une zone de texte de requête multiligne plus grande au lieu de figurer directement dans la zone de texte à une seule ligne située en haut du contrôle.
- Saisissez les modifications à apporter à la requête en utilisant autant de lignes que nécessaire pour la clarté.
Par exemple, redéfinissez la requête sur MATCH (p:Person)-[hv:HasVehicle]->(v:Vehicle) WHERE hv.acquisitionDate = NULL RETURN p, hv, v, v.make, v.model, v.year pour renvoyer toutes les entités Person (Personne) ayant la relation HasVehicle (Possède un véhicule) avec une entité Vehicle (Véhicule) où la propriété acquisitionDate (Date d’acquisition) de la relation HasVehicle (Possède un véhicule) possède une valeur nulle. Renvoyez les mêmes entités et relations que précédemment, mais incluez également des valeurs issues des propriétés make (marque), model (modèle) et year (année) de l’entité Vehicle (Véhicule) dans les résultats.
Les résultats de la requête mise à jour apparaissent dans la vue de l’enquête. Les entités et les relations renvoyées par la requête sont identifiées par les icônes appropriées.
- Cliquez sur le bouton Run Query (Exécuter la requête) .
Lorsque vous utilisez la fenêtre de requête développée, appuyer sur la touche Entrée a pour effet de déplacer le pointeur vers une nouvelle ligne dans la zone de texte multiligne au lieu d’exécuter la requête.
Les résultats de la requête apparaissent dans la vue de l’enquête.
- Cliquez sur le bouton Reset Search (Réinitialiser la recherche) dans la zone de texte de requête pour effacer la requête et en supprimer les résultats.
Les éléments graphiques qui étaient précédemment répertoriés dans la vue de l’enquête réapparaissent.
- Lorsque la zone de texte de requête est vide, cliquez dessus pour ouvrir le contrôle de requête et répertorier les trois dernières requêtes. Cliquez sur une requête dans la liste pour l’exécuter de nouveau.
La requête sélectionnée est exécutée et les résultats de la requête apparaissent dans l’enquête.
- Cliquez sur le bouton Reset Search (Réinitialiser la recherche) dans la zone de texte de requête pour effacer la requête et supprimer ses résultats de l’enquête. Cliquez sur la zone de texte de requête vide pour ouvrir le contrôle de requête, puis cliquez sur le bouton Remove From History (Supprimer de l’historique) d’une requête spécifique dans la liste pour la supprimer de l’historique.
La requête spécifiée est supprimée de la liste. Votre historique récent est mis à jour pour afficher les trois dernières requêtes.
- Si vous n’avez plus besoin de la zone de texte de requête multiligne, cliquez sur le bouton Collapse Query Window (Réduire la fenêtre de requête) situé à droite de la zone de texte de requête.
Lorsque vous modifiez une requête, elle est mise à jour directement dans la zone de texte de requête sur une ligne. Appuyez sur Entrée pour exécuter une requête mise à jour.
Interroger un graphe de connaissances dans la fenêtre Search And Filter (Rechercher et filtrer)
La fenêtre Search And Filter (Rechercher et filtrer) peut être utilisée avec une vue d’enquête pour en interroger le contenu, avec une carte pour interroger le contenu d’une couche de graphe de connaissances ou avec un diagramme de liens pour interroger les entités et les relations qu’elle décrit.
- Ouvrez une enquête.
- Ouvrez la fenêtre Search And Filter (Rechercher et filtrer) en procédant de l’une des manières suivantes :
- Dans l’onglet Investigation (Enquête) du ruban, dans le groupe Search (Rechercher), cliquez sur Search And Filter (Rechercher et filtrer) .
- Cliquez sur une couche de graphe de connaissances dans la fenêtre Contents (Contenu) de la carte. Accédez à l’onglet Data (Données) à partir de l’onglet Knowledge Graph Layer (Couche de graphe de connaissances) du ruban. Dans le groupe Search (Rechercher), cliquez sur le bouton Search And Filter (Rechercher et filtrer) .
- Dans l’onglet Link Chart (Diagramme de liens) du ruban, dans le groupe Search (Rechercher), cliquez sur Search And Filter (Rechercher et filtrer) .
La fenêtre Search And Filter (Rechercher et filtrer) apparaît.
- Cliquez sur la liste déroulante Dataset (Jeu de données) puis sur le nom de l’enquête, de la carte ou du diagramme de liens que vous souhaitez interroger.
- Cliquez sur le nom de l’enquête dans votre projet pour explorer la partie du graphe de connaissances s’affichant dans la liste des contenus de l’enquête. Par exemple, si l’entité Person (Personne) est sélectionnée dans la fenêtre Contents (Contenu) de l’enquête et que les 1 000 premières entités sont répertoriées, l’histogramme représente le contenu associé uniquement aux 1 000 entités Person (Personne). Si l’enquête est nommée Investigation (Enquête), l’entrée figurant dans la liste déroulante Dataset (Jeu de données) est Investigation (Enquête).
- Cliquez sur le nom de la couche de graphe de connaissances sur la carte pour explorer la partie du graphe de connaissances apparaissant sur la carte. Par exemple, si la carte ne comprend que les entités Person (Personne), Pet (Animal domestique) et Veterinarian (Vétérinaire) et les relations HasPet (Possède un animal domestique) et HasPatient (A un patient), seuls ces types d’entité et ces types de relation sur la carte sont représentés par les histogrammes. Si la carte est nommée Map (Carte) et la couche de graphe de connaissances sur la carte est nommée MyKnowledgeGraph (Mon graphe de connaissances), l’entrée figurant dans la liste déroulante Dataset (Jeu de données) est Map - MyKnowledgeGraph (Carte - Mon graphe de connaissances).
- Cliquez sur le nom du diagramme de liens pour explorer la partie du graphe de connaissances apparaissant dans le diagramme de liens. Par exemple, si le diagramme de liens ne comprend qu’un ensemble interrogé d’entités Person (Personne) et Vehicle (Véhicule) et la relation HasVehicle (Possède un véhicule), seules les entités et les relations spécifiques dans le diagramme de liens sont représentées par les histogrammes. Si le diagramme de liens est nommé Link Chart (Diagramme de liens), l’entrée figurant dans la liste déroulante Dataset (Jeu de données) est Link Chart (Diagramme de liens).
- Si vous souhaitez explorer le graphe de connaissances entier référencé par l’enquête, la couche de graphe de connaissances sur une carte ou le diagramme de liens, cliquez sur l’entrée correspondant à la vue ou à la couche de carte suivie de Knowledge Graph (Graphe de connaissances). Par exemple, si la carte est nommée Map (Carte) et la couche de graphe de connaissances sur la carte est nommée MyKnowledgeGraph (Mon graphe de connaissances), l’entrée figurant dans la liste déroulante Dataset (Jeu de données) correspondant au graphe de connaissances entier est Map - MyKnowledgeGraph.- Knowledge Graph (Carte - Mon graphe de connaissances.- Graphe de connaissances).
- Cliquez sur l’onglet Query (Requête) .
- Saisissez une requête openCypher dans la zone de texte Query (Requête).
- Cliquez sur Apply (Appliquer).
Les résultats de la requête sont affichés dans la liste Results (Résultats).
Conseil :
Les graphes de connaissances peuvent représenter de nombreuses entités et relations. Si le renvoi des résultats de votre requête prend trop de temps, vous pouvez arrêter de générer la liste de résultats en cliquant sur l’indicateur occupé dans la partie inférieure de la liste Search and Filter (Rechercher et filtrer). Une fois que ArcGIS Pro a terminé de générer la liste de résultats, l’indicateur occupé s’arrête et le bouton Refresh Results (Actualiser les résultats) apparaît.
Par défaut, la fenêtre Search And Filter (Rechercher et filtrer) peut être trop étroite pour explorer les résultats de la requête. Vous pouvez la détacher afin de l’élargir sans affecter la disposition des autres vues et fenêtres dans la fenêtre principale de ArcGIS Pro.
Explorer les résultats de requête
Une requête openCypher peut renvoyer une variété de résultats. Lorsque la requête renvoie une liste d’entités ou de relations, celles-ci sont affichées dans la liste des résultats avec une entité ou relation par ligne. Les valeurs renvoyées par la requête apparaissent dans des colonnes étiquetées comme indiqué dans la requête elle-même.
Une requête openCypher peut renvoyer des résultats indiquant quelles entités ont une relation donnée avec une autre entité. Dans ce cas, la liste des résultats comporte une ligne pour chaque triple, un triple étant constitué de l’origine de l’entité, de la relation et de l’entité cible. Par exemple, une requête telle que MATCH (p:Person)-[r]->(e) RETURN p,r,e renvoie une liste de résultats où chaque ligne de résultat représente une personne, une relation entre cette personne et une autre entité et l’entité cible de la relation. Dans ce cas, la liste des résultats comporte une colonne pour la personne intitulée p, une colonne pour la relation intitulée r et une colonne pour l’entité cible intitulée e.
Si à la place la requête renvoie des propriétés spécifiques d’entité ou de relation, la liste des résultats affiche ces valeurs dans des colonnes nommées de manière appropriée selon la requête. Par exemple, une requête telle que MATCH (p:Person)-[ :HasVehicle]->(v) RETURN p,v,v.year renvoie le nom d’affichage de l’entité Person (Personne) dans la colonne p, le nom d’affichage de l’entité Vehicle (Véhicule) dans la colonne v et la valeur de la propriété year (année) de l’entité Vehicle (Véhicule) dans les colonnes v.year. Si une entité ne possède pas de valeur pour une propriété spécifique renvoyée par une requête, la valeur nulle indique qu’il n’y a aucune valeur à afficher.
L’exemple ci-dessous illustre une requête qui renvoie une entité Person (Personne) et une entité Vehicle (Véhicule), où la personne participe dans une relation HasVehicule (Possède un véhicule) avec le véhicule. La requête renvoie également la propriété acquisitionDate (Date d’acquisition) de la relation HasVehicle (Possède un véhicule) et les propriétés make (marque), model (modèle) et year (année) de l’entité Vehicle (Véhicule). Si une propriété ne possède pas de valeur, le texte null (nulle) apparaît dans une colonne.
Les colonnes contenant une entité ou une relation affichent le nom d’affichage de l’élément graphique avec son icône. Dans la capture d’écran ci-dessus, les propriétés Person (Personne) et Vehicle (Véhicule) renvoyées apparaissent dans les colonnes p et v, respectivement. La propriété acquisitionDate (Date d’acquisition) de la relation HasVehicle (Possède un véhicule) est affichée dans la colonne hv.acquisitionDate. Les valeurs des propriétés make (marque), model (modèle) et year (année) des entités Vehicle (Véhicule) apparaissent dans les colonnes v.make, v.model et v.year, respectivement.
Pour effectuer une analyse approfondie, vous pouvez ajouter à une carte ou à un diagramme de liens des entités et des relations renvoyées par une requête.
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?