繁体   English   中英

使用 Python 从 Grakn 获取数据

[英]Fetching data from Grakn with Python

我将 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)

如果您有制作人和流派的特定名称,则可以使用此查询

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;

Graql 根据您提供的约束给出结果,基本上排除了任何不符合您给出的标准的结果。 在您的查询中,您将$s限制为具有特定的song-namesinger 删除这些约束将为您提供您要求的结果:

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

这现在匹配任何具有特定制作人和流派的歌曲。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM