1.Jena的安裝配置及使用(Eclipse平臺)
2. jena組件的使用
Apache Jena提供TDB、Rule Reasoner、Fuseki組件,其中TDB是Jena用於存儲RDF類型數據的組件,屬於存儲層面的技術;Rule Reasoner可進行簡單規則推理,支持用戶進行自定義推理規則;Fuseki是Jena提供的SPARQL服務器,支持SPARQL語言進行檢索,可在單機和服務器端高效運行。
2.1 TDB組件的使用
主要就是將RDF類型數據轉爲TDB類型數據,方便jena使用。
第一步:準備RDF的數據集
這裏的數據我是從https://wiki.dbpedia.org/data-set-33這裏下載的。
我下載的是紅色標註的數據,下載解壓後得到articles_label_zh.nt文件。之後運行
tdbloader.bat --loc="/pythonPro/KGQA_test/data/tdb" "/pythonPro/KGQA_test/data/rdf/articles_label_zh.nt"
就將RDF轉化爲TDB了。
這樣就算運行成功了
2.2 Fuseki組件的使用
下載地址爲:http://jena.apache.org/download/index.cgi
解壓好之後cmd進入該文件夾,運行
fuseki-server --loc=D:\pythonPro\KGQA_test\data\tdb /test
其中loc=後面是TDB數據所在目錄,/test 算是這個數據庫的名稱,可以隨便取名
這樣就算運行成功了
就得到了
3. 通過python使用sparql查詢
from SPARQLWrapper import SPARQLWrapper, JSON
sparql = SPARQLWrapper("http://localhost:3030/test/sparql")
sparql.setQuery("""
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT ?subject ?predicate ?object
WHERE {
?subject ?predicate ?object
}
LIMIT 25
""")
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
for result in results["results"]["bindings"]:
print(result["subject"]["value"])
print(result['predicate']['value'])
print(result['object']['value'])
得到