美文网首页
sparql语句进行查询

sparql语句进行查询

作者: 飘涯 | 来源:发表于2019-04-22 14:13 被阅读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)

  • 解释
    所有属性是猫的实体,
    wdt表示关系,P31表示性质
    wd表示实体,Q146表示猫
    3、查询结果


    image.png

    4、练习:查询中国唐朝的皇帝有哪些?
    步骤1:从一个实体出发
    wikidata查一个具体的皇帝
    找到属性和实体代号
    P39职业,Q268218,中国皇帝

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

相关文章

  • sparql语句进行查询

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

  • 计算最近的仓库的sql

    进行查询的查询语句

  • SPARQL常用查询

    查看查询结果戳DBPedia sparql endpointPREFIX定义如下: 查询所有谓词 一个类似的需求是...

  • SQL学习10 使用子查询

    查询(query)任何SQL语句都是查询。但此术语一般指SELECT语句。 利用子查询进行过滤

  • mysql查询缓存

    查询缓存工作原理 mysql手册地址一条查询语句在被解析之前,就会和查询缓存进行对比,查询的语句,必须完全相同,才...

  • Explain命令

    explain命令用来查询sql语句的执行计划。使得我们可以针对sql查询语句进行优化。例如:查看select *...

  • 复习数据库MySQL语句(一)

    创建表语句 插入语句 多值插入语句 查询语句 查询条件语句 查询包含语句 范围查询语句 过滤查询 更新语句/修改语...

  • 子查询和联结表

    子查询 子查询即嵌套在其它查询中的查询。 利用子查询进行过滤 下面是两个单独的查询语句: 上面两个子查询进行组合:...

  • MySQL组合索引的一个小问题

    现在有几个sql查询语句,分别对表中的a,b,c字段进行查询,有如下语句: where a=x and b=x a...

  • Hibernate继续进阶之hql语句和QBC查询

    Hibernate--hql语句查询 HQL查询: Criteria查询对查询条件进行了面向对象封装,符合编程人员...

网友评论

      本文标题:sparql语句进行查询

      本文链接:https://www.haomeiwen.com/subject/onsygqtx.html