使用文字或字符串作为SPARQL谓词

使用文字或字符串作为SPARQL谓词,sparql,rdflib,knowledge-graph,Sparql,Rdflib,Knowledge Graph,我正在使用rdflib从字符串的三元组构造一个小知识图。一个典型的三元组看起来像:“Bob”“God”“home”,我正在将它们添加到我的图形中,如下所示(我知道我应该使用标准对象和名称空间,但这是一个构建我所能构建的最“裸骨”图形的实验): 我正试图使用SPARQL查询这样一个图,从上述三元组中提取“Bob”的查询如下所示: q = """ SELECT ?s WHERE { (?s) %s Literal("home&qu

我正在使用rdflib从字符串的三元组构造一个小知识图。一个典型的三元组看起来像:“Bob”“God”“home”,我正在将它们添加到我的图形中,如下所示(我知道我应该使用标准对象和名称空间,但这是一个构建我所能构建的最“裸骨”图形的实验):

我正试图使用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)
我曾尝试插入实际字符串(例如,“God”而不是Literal(“God”)),但这也不起作用。有几篇文章喜欢并讨论如何匹配文字,但这似乎没有帮助


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

这是不可能的,请看一下SPARQL规范:顺便说一下,在RDF中也不可能在主语或谓语位置使用文本:-如果rdflib不想遵循RDF规范,那么您必须使用rdflib特定的操作来处理这些rdflib特定(无效RDF)图,但是通过标准的SPARQLAh是不可能的,这是非常有用的!谢谢@unformeduser。我将更多地使用W3C规范!这是不可能的,请看一下SPARQL规范:顺便说一句,在RDF中也不可能在主语或谓语位置使用文本:-如果rdflib不想遵循RDF规范,那么您必须使用rdflib特定的操作来处理这些rdflib特定(无效RDF)图,但通过标准SPARQLAh是不可能的,这很有帮助!谢谢@unformeduser。我将更多地使用W3C规范!
ParseException: Expected {SelectQuery | ConstructQuery | DescribeQuery | AskQuery}, found 'w'  (at char 23), (line:1, col:24)