python使用rdflib建立rdf,在jena fuseki上執行SPARQL查詢

  1. 創建並啓動jena fuseki服務
    參考:http://www.javashuo.com/article/p-rdwlbtxs-hu.html
  2. 使用rdflib建立rdf文件
import rdflib

def create_rdf():
    g = rdflib.Graph()
    # 實體
    pinganfu = rdflib.URIRef('http://www.example.org/pinganfu')
    yiwaixian = rdflib.URIRef('http://www.example.org/yiwaixian')
    # 關係
    price = rdflib.URIRef('http://www.example.org/price')
    product_from = rdflib.URIRef('http://www.example.org/from')
    # 屬性
    price_100 = rdflib.URIRef('http://www.example.org/100')
    price_200 = rdflib.URIRef('http://www.example.org/200')
    from_paic = rdflib.URIRef('http://www.example.org/paic')
    from_pajiankang = rdflib.URIRef('http://www.example.org/pingan jiankangxian')
    g.add((pinganfu, price, price_100))
    g.add((yiwaixian, price, price_200))
    g.add((pinganfu, product_from, from_paic))
    g.add((yiwaixian, product_from, from_pajiankang))

    g.serialize("graph.rdf")

if __name__ == "__main__":
    create_rdf()
  1. jena fuseki導入生成的rdf文件,須要utf-8格式
    html

  2. 執行查詢
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

select *
where {
  ?product <http://www.example.org/price> ?price .
}

where裏的三個值分別表示主謂賓
其中?product ?price表示須要展現的字段,http://www.example.org/price至關於sql中的where條件,查詢謂語等於http://www.example.org/price的全部結果python

查詢結果

jena數據格式
sql

參考:
http://www.javashuo.com/article/p-vdvzgmqh-ka.html
https://www.w3.org/TR/sparql11-query/#WritingSimpleQueriesspa

相關文章
相關標籤/搜索