如何使用SPARQL&dbpedia获取美国所有学院和大学的学校信息框数据
问题描述:
试图创建SPARQL查询以提取dbpedia上的所有学校信息框数据。该数据集是否已经存在? (在尝试阅读和理解示例后,我仍然感到困惑。)似乎这个特定的维基百科信息框数据必须存在于dbpedia中,但我无法弄清楚它是否已经存在。如果我想导出所有大学和学校的信息框数据是否可以轻松做到这一点?如何使用SPARQL&dbpedia获取美国所有学院和大学的学校信息框数据
答
在DBpedia中的所有类有可能是与学校或学院(略去了YAGO类):
select ?cls where {
?cls a owl:Class.
filter(regex(str(?cls), 'college|school', 'i'))
}
输出:
+------------------------------------------+
| cls |
+------------------------------------------+
| http://dbpedia.org/ontology/College |
| http://dbpedia.org/ontology/CollegeCoach |
| http://dbpedia.org/ontology/SambaSchool |
| http://dbpedia.org/ontology/School |
+------------------------------------------+
如果我们把http://dbpedia.org/ontology/School作为一个例子,查询来获取所有数据将像
select * where {
?s a <http://dbpedia.org/ontology/School> ;
?p ?o
}
一大量的数据是rdf:type
,rdfs:label
,owl:sameAs
等,但一看就知道也是其他更有趣的数据返回,你可以尝试
select * where {
?s a <http://dbpedia.org/ontology/School> .
?s ?p ?o
filter(?p not in (rdf:type, owl:sameAs, rdfs:label, rdfs:comment, rdfs:seeAlso))
}
注意,这个查询可能不会返回您需要的所有数据,我只是想告诉你如何开始