1

我正在使用 rdflib 从字符串三元组构建一个小型知识图。一个典型的三元组看起来像:"Bob" "went" "home",我将它们添加到我的图表中,如下所示(我知道我应该使用标准对象和命名空间,但这是构建最“准系统”图,我可以):

for s, p, o in triples:
    g.add((Literal(s), Literal(p), Literal(o)))

我正在尝试使用 SPARQL 查询这样的图表,而我从上述三元组中提取“Bob”的查询如下所示:

q = """
       SELECT ?s 
       WHERE { (?s) %s Literal("home"). }
    """ % (Literal('went'))

这给了我下面的错误,告诉我查询格式错误:

ParseException: Expected {SelectQuery | ConstructQuery | DescribeQuery | AskQuery}, found 'w'  (at char 23), (line:1, col:24)

我已经尝试插入实际的字符串(例如“went”而不是 Literal(“went”)),但这也不起作用。像this answerthis answer这样的几篇文章解决了如何匹配文字,但这似乎没有帮助。

所以我的问题是,是否可以在 SPARQL 中使用文字或简单字符串作为谓词,如果可以,如何使用?任何帮助将非常感激。

4

0 回答 0