sparql语句进行查询

2019-04-22  本文已影响0人  飘涯

depedia

1、打开网站:http://dbpedia.org/sparql/
2、查询有哪些书和书的简介
输入:

SELECT ?book ?com
WHERE 
{
  ?book rdf:type dbo:Book.
  ?book rdfs:comment ?com.
}

结果: image.png

3、程序进行查询
安装SPARQLWrapper

from SPARQLWrapper import SPARQLWrapper, JSON
import json
sparql = SPARQLWrapper("http://dbpedia.org/sparql")

sparql.setQuery("""
    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    SELECT ?book ?com
    WHERE 
    {
      ?book rdf:type dbo:Book.
      ?book rdfs:comment ?com.
    }
""")
#英语的过滤语言的简写是EN,在这里中文语言是ZH,FILTER是一个过滤器
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
# result_1=json.loads(results)
print(results)
for result in results["results"]["bindings"]:
    print(result["name"]["value"],result["date"]["value"],result["abstract"]["value"],"\n")

完整查询

    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX dbo: <http://dbpedia.org/ontology/>
    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    PREFIX dc: <http://purl.org/dc/elements/1.1/>

    Select distinct ?birthdate ?thumbnail ?scientist ?name ?description WHERE {
    ?scientist rdf:type dbo:Scientist ;
               dbo:birthDate ?birthdate ;
               rdfs:label ?name ;
               dct:description ?description
    FILTER ((lang(?name)="en")&&(lang(?description)="en")&&(STRLEN(STR(?birthdate))>6)&&(SUBSTR(STR(?birthdate),6)=STR("05-14")) ).
    OPTIONAL { ?scientist dbo:thumbnail ?thumbnail .} 
    } ORDER BY ?birthdate
    """

wikidata

1、网站:https://query.wikidata.org/
2、sparql语句查询有哪些猫

SELECT ?item ?itemLabel 
WHERE 
{
  ?item wdt:P31 wd:Q146.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "zh". }
}

order by desc(?itemLabel)

SELECT ?person ?personLabel 
WHERE 
{
  ?person wdt:P39 wd:Q268218.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "zh". }
}
order by desc(?personLabel) 

结果如下:查到了中国所有的皇帝


image.png

步骤二:
再添加条件
朝代P27,唐朝,Q9683

SELECT ?person ?personLabel 
WHERE 
{
  ?person wdt:P39 wd:Q268218.
  ?person wdt:P27 wd:Q9683
  SERVICE wikibase:label { bd:serviceParam wikibase:language "zh". }
}
order by desc(?personLabel) 

结果:


image.png
上一篇下一篇

猜你喜欢

热点阅读