jena+fuseki+python查詢

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 算是這個數據庫的名稱,可以隨便取名

這樣就算運行成功了

之後進入http://localhost:3030

就得到了

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'])
得到

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章