1
我正在開發一個提取元數據的語義反向代理。我使用Django,dj-revproxy和RDFLib(以及用於存儲的我使用MySQL),但是我正在使用python綁定切換到redland的框架以管理語義部分。問題與查詢,Redland和python綁定
但我有一個重要的問題。在RDF存儲之後(數據在Mysql數據庫中,我選中了)我想要做一個sparql查詢,結果是「none」。也許查詢的方法執行不力。
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)
結果是這樣的:
[email protected]: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>
謝謝:)