简体   繁体   English

从dbpedia仅获取英语值和整数

[英]Get only english values and integers from dbpedia

I am trying to retrieve only English values and probably integers from dbpedia. 我正在尝试仅从dbpedia检索英语值和可能的整数。 For example, the following SPARQL query 例如,以下SPARQL查询

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbpedia2: <http://dbpedia.org/property/>
PREFIX dbpedia: <http://dbpedia.org/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX dbo: <http://dbpedia.org/ontology/>
select distinct ?p ?o where {
dbr:Cristiano_Ronaldo ?p ?o
filter(langMatches(lang(?o),'en'))}
}

It returns properly the English values. 它会正确返回英文值。 However it missed important details such as the date of birth, height, number of caps etc. are being missed because it is integer. 但是,由于它是整数,因此错过了重要的细节,例如出生日期,身高,瓶盖数量等。 How can make an RDF resultset that is consisting of a proper set of information about Cristiano Ronaldo? 如何使RDF结果集包含有关Cristiano Ronaldo的适当信息集?

PREFIX dbr: <http://dbpedia.org/resource/>
SELECT DISTINCT ?p ?o where {
  dbr:Cristiano_Ronaldo ?p ?o
  BIND(datatype(?o) as ?dt)
  FILTER(IF(isliteral(?o) && !bound(?dt), langMatches(lang(?o),'en'), true))
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM