首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询、Redland和python绑定的问题

查询、Redland和python绑定的问题
EN

Stack Overflow用户
提问于 2011-06-15 17:20:20
回答 1查看 220关注 0票数 1

我正在开发一个提取元数据的语义反向代理。我使用Django,dj-revproxy和RDFLib (对于存储,我使用MySQL),但是我切换到redland的框架和python绑定来管理语义部分。

但我有一个很重要的问题。在存储RDF (数据在Mysql数据库中,我检查过了)之后,我想执行一个sparql查询,结果是"none“。也许查询的方法实现得很糟糕。

代码语言:javascript
复制
def sparql_query(query, user, password, db, output, dbSystem='mysql'):

    if dbSystem == 'mysql':
        st= connect_librdf_mysql(user, password, db)
    else:
        st= connect_librdf_sqlite(db)

    options = 'database=\'' + db + '\''
    model=RDF.Model(st, options_string=options)

    q1 = RDF.Query(query ,query_language='sparql')

    #q1Result = q1.execute(model) 
    q1Result = model.execute(q1) 

    print("[ SPARQL QUERY DONE ]")

    if q1Result.is_graph():
        return q1Result.as_stream()
    else:
        return str(q1Result)

结果是这样的:

代码语言:javascript
复制
slok@sLoKAsus:utils$ python ./test_redland.py
[ CONNETED TO redland2 DATABASE ]
[ RDF STORED ]
[ CONNETED TO redland2 DATABASE ]
[ SPARQL QUERY DONE ]
<?xml version="1.0" encoding="utf-8"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
  <head>
    <variable name="aname"/>
    <variable name="bname"/>
  </head>
  <results>
  </results>
</sparql>

谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-14 22:03:45

在升级到所有Redland库(raptor,rasqal...)的GIT版本后,我发现了这个问题。问题是,当我连接到MySQL数据库时,new=true会销毁所有存储的数据(数据仍然存在,但查询为空)。

换句话说,要解决这个问题,您必须更新库,然后在第一次连接(或创建) MySQL模式(Db)时将新标志设置为true,然后始终将标志设置为false。我把我做的一些函数的代码放在这里:Gist of MySQL and Redland example

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6355557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档