2

我已经安装了 RDFlib 3.0 和所需的一切,但是当我运行以下代码时出现错误。下面的代码来自:http ://code.google.com/p/rdflib/wiki/IntroSparql 。我已经尝试了几个小时来解决这个问题,但没有成功。可以请人帮忙吗?

import rdflib
rdflib.plugin.register('sparql', rdflib.query.Processor,
                       'rdfextras.sparql.processor', 'Processor')
rdflib.plugin.register('sparql', rdflib.query.Result,
                       'rdfextras.sparql.query', 'SPARQLQueryResult')

from rdflib import ConjunctiveGraph
g = ConjunctiveGraph()
g.parse("http://bigasterisk.com/foaf.rdf")
g.parse("http://www.w3.org/People/Berners-Lee/card.rdf")

from rdflib import Namespace
FOAF = Namespace("http://xmlns.com/foaf/0.1/")
g.parse("http://danbri.livejournal.com/data/foaf")
[g.add((s, FOAF['name'], n)) for s,_,n in g.triples((None, FOAF['member_name'], None))]

for row in g.query(
        """SELECT ?aname ?bname
           WHERE {
              ?a foaf:knows ?b .
              ?a foaf:name ?aname .
              ?b foaf:name ?bname .
           }""",
        initNs=dict(foaf=Namespace("http://xmlns.com/foaf/0.1/"))):
    print "%s knows %s" % row

我得到的错误是:

Traceback (most recent call last):
  File "...", line 18 in <module>
    initNs=dict(foaf=Namespace("http://xmlns.com/foaf/0.1/"))):
TypeError: query() got an unexpected keyword argument 'initNS'
4

2 回答 2

2

与此同时,我找到了一种解决方法,即安装 minGW32 并用它进行编译。所以对于任何有类似问题的人:

  1. 从 sourceforge 下载 minGW32 安装程序
  2. 当您安装该工具并出现询问要安装哪些组件的屏幕时,选择“MinGW 基础工具”、“g++ 编译器”和“MingW make”。
  3. 安装 MinGW 后,将 C:\MinGW\bin 添加到 Path 环境变量中

来自http://code.google.com/p/rdflib/issues/detail?id=104#c4

于 2010-10-15T15:06:54.377 回答
1

好的,我终于找到了答案。你可以在这里阅读: http ://blog.eddsn.com/2010/05/unable-to-find-vcvarsall-bat/

于 2010-05-19T19:25:30.127 回答