- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想获得尽可能小但仍然自洽且有效的示例,该示例使用来自 RDFLib 的 SPARQL。我有 RDFLib 版本“4.0.1”。
我想要一个执行以下操作的代码
已添加
我自己试过(首先没有写入和读取文件)但我做不到。这是我的:
import rdflib
g = rdflib.ConjunctiveGraph()
has_border_with = rdflib.URIRef('www.example.org/has_border_with')
located_in = rdflib.URIRef('www.example.org/located_in')
germany = rdflib.URIRef('www.example.org/country1')
france = rdflib.URIRef('www.example.org/country2')
china = rdflib.URIRef('www.example.org/country3')
mongolia = rdflib.URIRef('www.example.org/country4')
europa = rdflib.URIRef('www.example.org/part1')
asia = rdflib.URIRef('www.example.org/part2')
g.add((germany,has_border_with,france))
g.add((china,has_border_with,mongolia))
g.add((germany,located_in,europa))
g.add((france,located_in,europa))
g.add((china,located_in,asia))
g.add((mongolia,located_in,asia))
x = g.query("""select ?country where { ?country www.example.org/located_in www.example.org/part1 }""")
print x
结果我得到:
Traceback (most recent call last):
File "hello_world.py", line 23, in <module>
x = g.query("""select ?country where { ?country www.example.org/located_in www.example.org/part1 }""")
File "/usr/local/lib/python2.7/dist-packages/rdflib-4.0.1-py2.7.egg/rdflib/graph.py", line 1045, in query
query_object, initBindings, initNs, **kwargs))
File "/usr/local/lib/python2.7/dist-packages/rdflib-4.0.1-py2.7.egg/rdflib/plugins/sparql/processor.py", line 72, in query
parsetree = parseQuery(strOrQuery)
File "/usr/local/lib/python2.7/dist-packages/rdflib-4.0.1-py2.7.egg/rdflib/plugins/sparql/parser.py", line 1034, in parseQuery
return Query.parseString(q, parseAll=True)
File "/usr/lib/python2.7/dist-packages/pyparsing.py", line 1032, in parseString
raise exc
pyparsing.ParseException: Expected "}" (at char 24), (line:1, col:25)
最佳答案
有几个问题:
http://
开头命名您的资源<>
在他们身边Graph
而不是 ConjunctiveGraph
Graph.serialize
和 Graph.parse
保存和读取文件的方法(见代码)尝试对您的示例代码进行以下修改:
import rdflib
g = rdflib.Graph()
has_border_with = rdflib.URIRef('http://www.example.org/has_border_with')
located_in = rdflib.URIRef('http://www.example.org/located_in')
germany = rdflib.URIRef('http://www.example.org/country1')
france = rdflib.URIRef('http://www.example.org/country2')
china = rdflib.URIRef('http://www.example.org/country3')
mongolia = rdflib.URIRef('http://www.example.org/country4')
europa = rdflib.URIRef('http://www.example.org/part1')
asia = rdflib.URIRef('http://www.example.org/part2')
g.add((germany,has_border_with,france))
g.add((china,has_border_with,mongolia))
g.add((germany,located_in,europa))
g.add((france,located_in,europa))
g.add((china,located_in,asia))
g.add((mongolia,located_in,asia))
q = "select ?country where { ?country <http://www.example.org/located_in> <http://www.example.org/part1> }"
x = g.query(q)
print list(x)
# write graph to file, re-read it and query the newly created graph
g.serialize("graph.rdf")
g1 = rdflib.Graph()
g1.parse("graph.rdf", format="xml")
x1 = g1.query(q)
print list(x1)
关于python - 是否有使用 RDFLib 的 SPARQL 的 Hello World 示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16829351/
我在我的 python 模块中使用 rdflib-4.0.1 和 rdfextras-0.4。 我在将数据加载到 rdfstore 时收到以下消息: No handlers could be foun
我已经安装了 RDFlib 3.0 和所有需要的东西,但是当我运行以下代码时出现错误。以下代码来自:http://code.google.com/p/rdflib/wiki/IntroSparql .
不确定这是否是一个愚蠢的问题,但我正在寻找一个使用的示例程序 rdflib 与本地本体一起使用。我看到很多使用像 FOAF 这样的标准本体的例子, 但我想编写一个 python 程序,它可以在本地机器
我对使用 rdflib 相当陌生,我的问题相当简单。我有几个 n-triple 文件,其中包含相当多的数据,虽然每个文件的主题都有相同的域,但每个文件的对象中的域都不同。现在我想输入一个或多个文件,并
我正在解析三元组文件并将三元组添加到我的本地三元组存储中。 代码片段: graph = ConjunctiveGraph('Sleepycat') graph.open("mytriplestore"
我对链接数据和 rdflib 很陌生,我很迷茫。我正在尝试使用 rdflib 与“Sleepycat”建立持久性存储以加载 DBLP 数据库 rdf 文件,然后开始查询它。这就是我所做的: impor
我有一个 RDF 数据集,其中三元组以 N-Triples 格式存储,如下所示: . _:AmapX3aXcountryX5fXcountryX5fXnameX5fXclassMapX40XX4
我使用的是 rdflib 版本 3.2.3,一切正常。升级到 4.0.1 后我开始收到错误: RDFa parsing Error! 'ascii' codec can't decode byte 0
我有一个现有的 rdf 图,我想修改它。我想在 n 变量中添加信息。 # source graph g = source.graph #new entry n = (URIRef(obj.pid),
在以下最小测试用例中: from rdflib import Graph, Namespace, Literal, RDF base = "http://test.com/ns" foobar = N
我有一些文字列表,我想将它们作为 rdf:lists 添加到图表中。我可以使用 rdflib.collection.Collection 毫无问题地读取 rdf:lists,但我无法将这些列表添加到其
我想使用短前缀来指定 rdflib 中的命名空间,但我遇到了麻烦。我想答案一定很简单。这是有问题的代码: g = rdflib.parse("some_rdf.rdf") rdf=rdflib.Nam
我开始使用 rdflib 库在 Python 中处理 rdf 数据。目前,我想创建一些 rdf 图的 .n3 文件,如下所示: @prefix ns1: . @prefix ns2: @prefi
我正在尝试将数据集的名称添加到图形对象并稍后检索它们,很确定必须有简单的方法来完成它,但到目前为止找不到任何东西......谢谢 最佳答案 我认为您正在寻找的是将上下文附加到图形。这就像创建一个图来解
我通过使用 rdflib-jsonld 解析数据库中的记录来创建 rdflib 图。但是,三元组的主题在 url 中缺少 /。要添加它,我使用以下代码: for s,p,o in graph1:
我正在尝试理解这种行为。这绝对不是我所期望的。我有两个程序,一个阅读器和一个编写器。读者打开一个RDFlib graph store,然后每2秒执行一次查询 import rdflib import
我一直在尝试使用 RDFlib (SPARQL) 查询 OWL 数据,但我不明白为什么它不起作用。我在 Protege(SPARQL 查询)中测试了相同的查询,它运行得很好!这是我的代码: impor
我有一个用 OWL/RDF 编写的本体(使用 Protege)。这个本体已经为每个概念填充了一些个体。我已经使用 rdflib 和 FuXi 包将它移植到 python 中。我可以成功地解析我的本体并
假设我在 mongoDB 中有某种集合,我想使用 rdflib 创建具有所有可能关系的图形。例如,如果我的数据库中有 3 个条目: FIRST{color:red, name:Ben, age: 29
我刚开始使用 rdflib,我有一个程序需要获取一个人的出生日期(在本例中为 Lewis Carroll)。我的程序会这样做,但是当我尝试打印它打印的日期时:(rdflib.term.Literal(
我是一名优秀的程序员,十分优秀!