Sparql dbpedia以英语以外的语言获取实体

Sparql dbpedia以英语以外的语言获取实体,sparql,owl,wikipedia,dbpedia,foaf,Sparql,Owl,Wikipedia,Dbpedia,Foaf,我正在尝试使用sparql从dbpedia中提取实体字典,其中包含人名等 PREFIX owl: <http://dbpedia.org/ontology/> PREFIX dbpprop: <http://dbpedia.org/property/> SELECT ?name WHERE { ?person a owl:Person . ?person dbpprop:name ?name . FILTER(lang(?name) = "en") }

我正在尝试使用sparql从dbpedia中提取实体字典,其中包含人名等

PREFIX owl: <http://dbpedia.org/ontology/>
PREFIX dbpprop: <http://dbpedia.org/property/>
SELECT ?name
WHERE {
    ?person a owl:Person .

    ?person dbpprop:name ?name . FILTER(lang(?name) = "en")
}
我尝试使用

SELECT DISTINCT ?lanName
WHERE {
    ?person a owl:Person .
    ?person dbpprop:language ?lanName .
}

结果集包含
English

您正在查找名称的
rdfs:label
,当然所有名称都是英文的,您正在查看英文数据库

PREFIX owl: <http://dbpedia.org/ontology/>
PREFIX dbpprop: <http://dbpedia.org/property/>
SELECT distinct *
WHERE {
    ?person a owl:Person .
    ?person rdfs:label ?name . 
    FILTER(lang(?name) = "fr")
}

您需要根据属性值的语言进行筛选。不是每个属性都有不同语言的值,但有些属性会。从您的示例来看,dbpprop:name并不是在每种语言中都有值。如果查看其他语言特定的DBpediae,您可能会在其他语言中找到更多值

但是,对于名称之类的内容,如果使用rdfs:label属性,可能会得到多语言结果。例如,要用俄语说出巴拉克·奥巴马、丹尼尔·韦伯斯特和约翰尼·卡什的名字,你可以:

select?标签{
价值观?人物{dbpedia:Johnny\u Cash dbpedia:Barack\u Obama dbpedia:Daniel\u Webster}
?人员rdfs:标签?标签。
过滤语言匹配(语言(?标签),“ru”)
}

另一方面,请注意在匹配语言标记时使用的是而不是相等。这通常是一种更好的方法,因为它将正确处理一种语言中的不同语言标记。例如(从SPARQL规范),您可以找到两种法语文本:

"Cette Série des Années Soixante-dix"@fr .
"Cette Série des Années Septante"@fr-BE .

使用langMatches(lang(?title),“fr”),但只有第一个使用lang(?title)=“fr”

运行
select?label{dbpedia:England rdfs:label?label}
返回时,只有一个是英文的。“您正在寻找rdfs:名称的标签,当然所有名称都是英文的”这一点并不清楚。使用
langMatches(lang(?name),“fr”)
lang(?name)=“fr”
更好。谢谢,有关于这些属性的详细文档吗?官方本体层次结构(如)只包含一些简单的注释。@在
http://dbpedia.org/ontology/
来自DBpedia本体,通常比
http://dbpedia.org/property/
,它们与原始信息框数据非常接近。看一看。非常感谢!我正在检查本体页面。顺便问一下,dbpediasparql端点是否限制了结果集的大小?即使增加超时字段,我也只能获得10001条记录。
    PREFIX owl: <http://dbpedia.org/ontology/>
    PREFIX dbpprop: <http://dbpedia.org/property/>
    SELECT distinct *
        WHERE {
    ?person a owl:Person .
    ?person rdfs:label ?name .
    ?person dbpprop:language <http://dbpedia.org/resource/English_language>.
}
"Cette Série des Années Soixante-dix"@fr .
"Cette Série des Années Septante"@fr-BE .