使用 sameAS 将本体从 DBpedia 链接到外部本体

Posted

技术标签:

【中文标题】使用 sameAS 将本体从 DBpedia 链接到外部本体【英文标题】:Link ontologies from DBpedia to external ones with sameAS 【发布时间】:2014-09-15 18:43:53 【问题描述】:

SPARQL 中是否有一种方法可以自动连接 DBpedia 中一个本体的实例和另一个数据库中的另一个实例。 例如

http://yago-knowledge.org/resource/Daphne_Gere 和http://dbpedia.org/page/Daphne_Gere

相似并与 sameAs 相关联,但我希望能够对它们所属的所有本体实例进行此操作

http://yago-knowledge.org/resource/wordnet_actor_109765278 和 http://dbpedia.org/ontology/Actor

因此,例如,结果将是一个表,其中包含一个类中的所有实例及其在另一个类中的等价物。

【问题讨论】:

请注意,http://dbpedia.org/page/Daphne_Gere 不是 DBpedia 上的 Daphne_Gere 资源。资源是http://dbpedia.org/resource/Daphne_Gere。当您将后者放在 Web 浏览器中时,您只会被重定向到前者,以 html 表示有关资源的数据。 DBpedia 已经有很多这样的信息。检索它的查询就足够了吗? 复制到 answers.semanticweb.com answers.semanticweb.com/questions/29411/… 【参考方案1】:

对已经包含(大部分?)您想要的链接的 DBpedia 进行简单查询怎么样?

select ?dbid ?yagoid where 
  ?dbid a dbpedia-owl:Actor ;
        owl:sameAs ?yagoid .
  filter strstarts( str(?yagoid), 'http://yago-knowledge.org/resource/' )

limit 100

SPARQL results

dbid                                       yagoid
-------------------------------------------------------------------------------------------
http://dbpedia.org/resource/Amy_Fisher     http://yago-knowledge.org/resource/Amy_Fisher
http://dbpedia.org/resource/Angel_Dark     http://yago-knowledge.org/resource/Angel_Dark
http://dbpedia.org/resource/Anita_Mui      http://yago-knowledge.org/resource/Anita_Mui
http://dbpedia.org/resource/Annabel_Chong  http://yago-knowledge.org/resource/Annabel_Chong
…                                          …

【讨论】:

非常感谢!但是,如果我想在其他两个数据库之间进行操作。例如,YAGO 生产者:http://yago-knowledge.org/resource/wordnet_producer_110480018LinkedMDB producer http://data.linkedmdb.org/page/movie/producer 甚至更少,例如,如果我想将 DBpedia 链接到 LinkedMDB,其中 URI 的表示方式不同(例如,http://data.linkedmdb.org/resource/producer/10019 @Suvimo 我不确定你的意思;我在您发布的 LinkedMDB URL 中没有看到任何 owl:sameAs 链接。您是在尝试检索 owl:sameAs 链接,还是尝试启发式地识别相同的个体?如果您尝试识别尚未通过 owl:sameAs 链接连接的相同个体,则需要使用您尝试使用的启发式方法更新您的问题。 @Suvimo 我看到你在我的两个小时后发布(并删除)了一个答案。它与我发布的内容基本相同,除了使用FILTER(contains(str(?entity2),"yago")) 测试与filter strstarts( str(?yagoid), 'http://yago-knowledge.org/resource/' ) 略有不同的东西。 strstarts 测试“更便宜”,因为它可以更快地失败,而 contains 检查将匹配其中包含 yago 的任何内容,即使它是某人姓名或其他内容的一部分。我认为包含检查可能更强大一些。 首先感谢您的持续支持 我看到您的 SPARQL 的问题是,除非在 URL 中指定名称,否则查询无法检测到它。例如,它不会在 DBpedia http://dbpedia.org/resource/Jet_Li 和 linkedMDB http://data.linkedmdb.org/resource/producer/9712 中检测到这个匹配我删除的评论中的查询实际上也检测到了这些,但我只是不认为它是基于“sameAs”的实际逻辑“..

以上是关于使用 sameAS 将本体从 DBpedia 链接到外部本体的主要内容,如果未能解决你的问题,请参考以下文章

从 dbpedia 或 LinkedGeoData 中提取城市数据

找不到资源语料库/wordnet(运行 quepy dbpedia 示例应用程序)

使用本体从原始数据中生成语义完整信息

Rails 虚拟属性未更新

将“EngMath”(数学本体)从 lisp 转换为 OWL

如何在DBPedia中获取一个城市的POI及其所在国家的经纬度?