Извлечение данных из Grakn с Python - PullRequest
5 голосов
/ 26 апреля 2020

Я использую Grakn с драйвером Python. Я пытаюсь использовать случай, когда пользователь может найти песню, например, Despacito, а затем получить рекомендации других похожих песен. Результат должен содержать песни того же жанра и от одного производителя. Когда я ищу песню, я могу найти связанные сущности, такие как певец, продюсер и жанр песни. Что я хочу дальше, так это другие песни, связанные с этим продюсером и жанром.

from grakn.client import GraknClient
uri = "localhost:48555"
keyspace = "grakn_demo"
client = GraknClient(uri=uri)
session = client.session(keyspace=keyspace)
tx = session.transaction().write()
graql = 'match $s isa song, has producer "Records X", song-name "Despacito", singer "Luis Fonsi", genre "Reggaeton"; get;' 
tx.query(graql)

Ответы [ 2 ]

5 голосов
/ 28 апреля 2020

Если у вас указано c название продюсера и жанра, вы можете использовать этот запрос

match $s isa song, 
has producer "Records X", 
has song-name $songName, 
has singer $singerName, 
has genre "Reggaeton"; 
get;

Вы получите все песни (их имена и исполнителей), которые имеют жанр "Reggaeton" и продюсер "Records X".

Если вы не знаете название жанра и продюсера, вы можете сначала получить их по названию песни, а затем выполнить запрос секунд, чтобы получить similar песен

Запросить продюсера и жанр по названию песни. После этого вы можете использовать первый запрос

match $s isa song, 
has producer $producer, 
has song-name "Despacito", 
has genre $genre; 
get;
4 голосов
/ 28 апреля 2020

Graql дает результаты на основе предоставленных вами ограничений, по сути исключая любой результат, который не соответствует критериям, которые вы даете. В вашем запросе вы ограничиваете $s определенными song-name и singer. Снятие этих ограничений даст вам запрошенные результаты:

match $s isa song, has producer "Records X", has genre "Reggaeton"; get;

Теперь это соответствует любой песне, которая имеет определенного продюсера и жанр. :)

...