Sparql DBPedia-每个资源最相关的谓词

Sparql DBPedia-每个资源最相关的谓词,sparql,rdf,semantic-web,dbpedia,linked-data,Sparql,Rdf,Semantic Web,Dbpedia,Linked Data,我想为DBPedia和Yago中的任何资源确定最相关的属性/谓词(而不是对象)(例如前20个)。例如,直觉上,对于一个音乐艺术家来说,你会对他的年龄、流派、音乐标签、唱片等感兴趣 一个好的算法应该是什么样子来解决这个问题? 我目前天真的做法如下 首先,我检索所有的类,按它们的“大小”排序。(警告,非常昂贵的查询!) 然后,我对这些类中的每一个进行查询,以获得该类中具有特定属性的实体的数量 SELECT distinct ?prop (count(distinct ?e) as ?c) WHERE

我想为DBPedia和Yago中的任何资源确定最相关的属性/谓词(而不是对象)(例如前20个)。例如,直觉上,对于一个音乐艺术家来说,你会对他的年龄、流派、音乐标签、唱片等感兴趣

一个好的算法应该是什么样子来解决这个问题? 我目前天真的做法如下

首先,我检索所有的类,按它们的“大小”排序。(警告,非常昂贵的查询!)

然后,我对这些类中的每一个进行查询,以获得该类中具有特定属性的实体的数量

SELECT distinct ?prop (count(distinct ?e) as ?c)
WHERE {
    ?e rdf:type <--CLASS--> .
    ?e ?prop []
}
ORDER BY DESC(?c)
它告诉我,哪些属性与哪个类最相关。当然,像
http://www.w3.org/2002/07/owl#sameAs
应在以后的步骤中忽略

然而,实体存在于多个类中,可能每个类都很重要,并提供了额外的信息。例如,
dbr:John_Lennon
出现在
dbo:Person
dbo:MusicalArtist
中。我需要合并这些类别的房地产排名。我想到了以下方法,但我不确定这是否是一个合理的解决方案

所以我的想法是计算每个属性(例如classA中的propX)的相对权重,方法是将classA中具有propX的实体数除以classA中的属性总数。如果我想合并两个类,例如classA和classB(或者Person和MusicalArtist),我只需将这两个类的属性按相对权重排序(这是合法的比较吗?)。如果两个类中都有一个属性,我会计算这两个类的调和平均值


假设上述步骤实际可行(请让我知道您的想法),我还有一个问题。我想合并来自DBPedia和Yago的信息,因此对于
dbr:John_Lennon
我想从Yago获取等价的(
owl:sameAs
yr:John_Lennon
。如何合并这两个数据集中的属性排名,最终得到由DBP和Yago属性组成的前20个最相关属性的列表?

不清楚如何定义相关性。例如,您的示例
dbr:John_Lennon
属于
dbo:Person
dbo:MusicalArtist
,因为后者是前者的子类。显然,如果某些属性仅由子类使用,则它们的区别性更强。在这种情况下,定义“相关性”其实并不简单。例如,我也没有一个客观的方法来评估我的解决方案,一旦它完成。评估可能是手动查看一些随机选取的示例,并主观检查结果是好是坏。但是你对如何进行还有什么建议吗?特别是在合并两个或多个数据集的排名方面……不清楚如何定义相关性。例如,您的示例
dbr:John_Lennon
属于
dbo:Person
dbo:MusicalArtist
,因为后者是前者的子类。显然,如果某些属性仅由子类使用,则它们的区别性更强。在这种情况下,定义“相关性”其实并不简单。例如,我也没有一个客观的方法来评估我的解决方案,一旦它完成。评估可能是手动查看一些随机选取的示例,并主观检查结果是好是坏。但是你对如何进行还有什么建议吗?特别是在合并两个或多个数据集的排名方面。。。
SELECT distinct ?prop (count(distinct ?e) as ?c)
WHERE {
    ?e rdf:type <--CLASS--> .
    ?e ?prop []
}
ORDER BY DESC(?c)
"dbo:Agent": {
    "count": 1974654,
    "properties": {
        "http://www.w3.org/1999/02/22-rdf-syntax-ns#type": 399948,
        "http://www.w3.org/2002/07/owl#sameAs": 67799,
        "dbp:name": 22272,
        "dbp:hasPhotoCollection": 13122,
        "http://xmlns.com/foaf/0.1/givenName": 10799,
        "dbo:birthPlace": 10055,
        "dbo:birthDate": 9953,
        "dbo:birthYear": 9735
    }
},
"dbo:Person": {
    count: 
...