- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 DBpedia SPARQL endpoint 时如何排除一组概念?我使用以下基本查询来获取概念列表:
SELECT DISTINCT ?concept
WHERE {
?x a ?concept
}
LIMIT 100
这给了我 100 个概念的列表。我想排除属于 YAGO 类/组的所有概念(即,其 IRI 以 http://dbpedia.org/class/yago/
开头)。我可以像这样过滤掉单个概念:
SELECT DISTINCT ?concept
WHERE {
?x a ?concept
FILTER (?concept != <http://dbpedia.org/class/yago/1950sScienceFictionFilms>)
}
LIMIT 100
但我似乎无法理解的是如何从结果中排除所有 YAGO 子类?我尝试使用这样的 *
但这没有实现任何目标:
FILTER (?concept != <http://dbpedia.org/class/yago/*>)
这个使用regex
的查询似乎可以解决问题,但它真的非常非常慢而且丑陋。我真的很期待更好的选择。
SELECT DISTINCT ?type WHERE {
[] a ?type
FILTER( regex(str(?type), "^(?!http://dbpedia.org/class/yago/).+"))
}
ORDER BY ASC(?type)
LIMIT 10
最佳答案
这可能看起来有点尴尬,但是您关于转换为字符串并进行一些基于字符串的检查的评论可能是正确的。您可以使用 SPARQL 1.1 函数更有效地完成此操作 strstarts
:
SELECT DISTINCT ?concept
WHERE {
?x a ?concept
FILTER ( !strstarts(str(?concept), "http://dbpedia.org/class/yago/") )
}
LIMIT 100
另一种选择是找到顶级 YAGO 类,并排除 rdfs:subClassOf
的那些概念。那个顶级类(class)。从长远来看,这可能是一个更好的解决方案(因为它不需要转换为字符串,并且它基于图形结构)。不幸的是,看起来没有一个顶级 YAGO 类可以与 owl:Thing
相媲美。 。我刚刚从 DBpedia's download page 下载了 YAGO 类型层次结构并针对它运行此查询,该查询要求没有父类(super class)的类:
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select distinct ?root where {
[] rdfs:subClassOf ?root
filter not exists { ?root rdfs:subClassOf ?superRoot }
}
我得到了这九个结果:
----------------------------------------------------------------
| root |
================================================================
| <http://dbpedia.org/class/yago/YagoLegalActorGeo> |
| <http://dbpedia.org/class/yago/WaterNymph109550125> |
| <http://dbpedia.org/class/yago/PhysicalEntity100001930> |
| <http://dbpedia.org/class/yago/Abstraction100002137> |
| <http://dbpedia.org/class/yago/YagoIdentifier> |
| <http://dbpedia.org/class/yago/YagoLiteral> |
| <http://dbpedia.org/class/yago/YagoPermanentlyLocatedEntity> |
| <http://dbpedia.org/class/yago/Thing104424418> |
| <http://dbpedia.org/class/yago/Dryad109551040> |
----------------------------------------------------------------
鉴于 YAGO 概念的结构不像其他一些概念那样,看起来基于字符串的方法在这种情况下可能是最好的。但是,如果您愿意,您可以执行像这样的非基于字符串的查询,它要求 100 个概念,不包括那些将这九个结果之一作为父类(super class)的概念:
select distinct ?concept where {
[] a ?concept .
filter not exists {
?concept rdfs:subClassOf* ?super .
values ?super {
yago:YagoLegalActorGeo
yago:WaterNymph109550125
yago:PhysicalEntity100001930
yago:Abstraction100002137
yago:YagoIdentifier
yago:YagoLiteral
yago:YagoPermanentlyLocatedEntity
yago:Thing104424418
yago:Dryad109551040
}
}
}
limit 100
我不确定哪个最终会更快。第一个需要转换为字符串,而 strstarts
,如果以简单的方式实现,则必须消耗 http://dbpedia.org/class/
在每个概念之前,某些东西是不匹配的。第二个需要九次比较,如果 IRI 被保留,那么这些比较只是对象身份检查。这是一个值得进一步研究的有趣问题。
关于sparql - 根据 URI 前缀从 DBpedia SPARQL 查询中排除结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19044871/
我正在尝试查询所有机场及其 IATA 代码的列表: PREFIX p: PREFIX o: PREFIX rdf: SELECT DISTINCT ?airport ?iata ?name WH
我知道 live.dbpedia.org 更接近 dbpedia.org 数据的实时版本,但这引发了一个问题,常规 dbpedia 提取/更新进程运行的频率是多少?数据转储多久更新一次?此外,据说除了
我正在使用 dbpedia download page 提供的不同数据集。并发现它有点过时了。 然后我从 dbpedia live 下载了最新的转储地点。当我提取 6 月 30 日的文件时,我得到了一
使用 dbpedia-spotlight API 是否有任何限制? 我找到了此处记录的端点 https://www.dbpedia-spotlight.org/api但该页面并未提及任何限制(例如 r
使用 dbpedia-spotlight API 是否有任何限制? 我找到了此处记录的端点 https://www.dbpedia-spotlight.org/api但该页面并未提及任何限制(例如 r
我正在处理 DBpedia 数据集,并使用 Apache Jena 在本地 Jena TDB 数据集上执行 SPARQL。我只从 DBpedia Downloads 下载了部分文件这样我就可以将数据集
在使用 DBpedia 提取框架时,我遇到了来自核心数据集的 csv 文件的问题。我有兴趣从 dbpedia 转储(RDF 格式)中提取数据(在我的例子中,是所有公司维基百科页面的摘要)。我正在按照
访问 http://dbpedia.org/resource/Cupertino显示有关库比蒂诺的 DBpedia RDF 信息。如您所见,它具有以下属性和值(value): dbpedia-owl:
我正在尝试使用 sparql 从 dbpedia 中提取包含人名等的实体字典。 PREFIX owl: PREFIX dbpprop: SELECT ?name WHERE { ?pers
我的理解是,根据 http://wiki.dbpedia.org/Datasets,DBpedia 从 YAGO 获取类层次结构,而不是实体。 .但是,类似 http://dbpedia.org/cl
DBPedia/SPARQL/语义数据初学者。我运行了以下查询以“找出每个运动员的运动” select ?athlete ?sport where { ?athlete rdf:type .
我正在探索如何使用Wikipedia的分类信息从内容中提取标签/关键字。 我找到了有关DBPedia的文章。 DBpedia是社区的一项工作,旨在从Wikipedia中提取结构化信息,并使该信息在We
我可以定义(或计算)DBPedia 和维基百科数据之间的差异,例如有关厄瓜多尔人的数据吗? DBpedia 是否包含与 Wikipedia 中存在的厄瓜多尔人相同的内容?如果不是 - 有什么区别(例如
我想开始使用 DBpedia。目前我所知道的是 DBpedia 是 Wikipedia 数据的结构化形式,可以使用 SPARQL 进行查询。对我来说,DBpedia 的基本思想(为维基百科数据提供结构
我有一些非常基本的 DBpedia 查询,它们的响应速度非常慢。我不确定这是否是 DBpedia.org 本身的性能问题。例如,以下 DBpedia 查询对我来说需要 2 到 4 秒,我的网络术语非常
我从 http://spotlight.dbpedia.org/download/release-0.5/dbpedia-spotlight-quickstart.zip 安装了 DBpedia Sp
我对这个语义网络主题有点陌生,尤其是 DBpedia,尽管我阅读了很多相关内容,但我找不到任何关于确定 DBpedia 对象之间链接权重的可能性的信息。例如,是否有可能确定 PHP 与 Symfony
我正在尝试使用此 SPARQL 查询从 DBpedia 获取所有类型: select ?type { ?type a owl:Class . } 现在,我还想包括查询返回的每种类型的英文标签。我
如何从 dbpedia 中获取前 10 名最 Alpine 的列表? 我不知道如何开始,因为我在寻找特定山峰的正确属性时已经失败了。我在中找不到“海拔”或“高度”的任何属性 http://dbpedi
我已经忘记了关于 DBpedia 和 SPARQL 的所有新知识,并且在我用 Google 搜索时发现所有示例都太复杂且难以理解。 我想做的是传入两个或三个维基百科页面,并取回所有页面所属的维基百科类
我是一名优秀的程序员,十分优秀!