我想知道,如果我们可以知道两个资源是否具有相同类别或一些子类(即属于一些常见supercategory的类别)在DBpedia中? 我试图在DBpedia中端点此查询,但它是错误的:
select distinct ?s ?s2 where {
?s skos:subject <http :// dbpedia.org/resource/ Category ?c.
?s2 skos:subject <http :// dbpedia.org/resource/ Category ?c2.
?c=?c2.
}
DBpedia中不使用skos:subject
资源,而是涉及资源使用他们的维基百科类dcterms:subject
。 你可以找出哪些数据可通过浏览网页资源。 例如,你可能有一个看http://dbpedia.org/resource/Mount_Monadnock 。 如果你想找到两个资源具有共同的类别,只要使用同一个变量。 例如,
?subject1 dcterms:subject ?category .
?subject2 dcterms:subject ?category .
你可以更简洁与写^property
符号和对象名单。 写作o ^ps
是一样的书写spo
。 对象列表让你写sp o1, o2
,而不是sp o1. sp o2.
sp o1. sp o2.
。 把这些在一起,我们可以这样写:
?category ^dcterms:subject ?subject1, ?subject2 .
例如,下面是找到诺纳德诺克山和斯波福德湖的常见类型的查询。 这里只有一个结果,柴郡,新罕布什尔州的地貌,因为他们只拥有一个共同的类别。
select * where {
?category ^dcterms:subject dbpedia:Mount_Monadnock, dbpedia:Spofford_Lake .
}
SPARQL结果
现在,类别由与他们supercategories在DBpedia中skos:broader
,你可以在看http://dbpedia.org/page/Category:Landforms_of_Cheshire_County,_New_Hampshire ,那里有链接
- http://dbpedia.org/resource/Category:Landforms_of_New_Hampshire_by_county和
- http://dbpedia.org/resource/Category:Geography_of_Cheshire_County,_New_Hampshire
现在,这意味着,如果两个东西都具有一些共同的类别(或supercategory),每个将与该类别通过带路径dcterms:subject
链接,其次是零个或多个skos:broader
联系。 因此,你可以使用像查询
select * where {
?category ^(dcterms:subject/skos:broader*) dbpedia:Mount_Monadnock, dbpedia:Spofford_Lake .
}
你会发现,不幸的是,在DBpedia的端点运行与该查询内存使用的问题,所以你不能运行它完全一样的。 然而,DBpedia的SPARQL端点支持属性路径的功能,其实并没有使它成为标准; 可以编写p{n,m}
表示长度至少的链n
且至多m
。 这意味着你可以把一些范围上,将让你最相同的结果的*
:
select distinct ?category where {
?category ^(dcterms:subject/(skos:broader{0,3})) dbpedia:Mount_Monadnock, dbpedia:Spofford_Lake .
}
SPARQL结果
这适用于汤姆·克鲁斯和麦当娜为好,但你需要缩减的路径长度一点,因为内存的问题。 例如,下面的查询返回74结果。
select distinct ?category where {
?category
^(dcterms:subject/(skos:broader{0,2}))
<http://dbpedia.org/resource/Tom_Cruise>,
<http://dbpedia.org/resource/Madonna_(entertainer)> .
}
SPARQL结果
值得一提的,不过,维基百科分类并不是类型。 因此,尽管这两个资源都理所当然地认为是地貌,无论是地理还是,因为你会在以后的查询,新罕布什尔见。 维基百科类别更关注的话题不是一个类型的层次结构。
相关阅读
有一个相关的(但不是完全重复的问题),你可能会发现有用的还有: 使用SPARQL来定位与同一属性的多个实例的对象 。