有没有人能够在RDF中给我一个简单的具体化例子?我想知道我是否理解正确。
例如,我建议以下案例
Tolkien -> wrote -> Lord of the rings
/|\
|
Wikipedia said that
如何用和编写而不用具体化(即作为一个简单的RDF语句而不需要具体化)?
答案 0 :(得分:35)
:Tolkien :wrote :LordOfTheRings .
顺便说一句,这是使用RDF的Turtle表示法。有tools在线将其转换为RDF / XML。
使用reification,您可以拥有一个代表语句的单独资源,以便您可以声明有关语句本身的其他信息,例如“Wikipedia说的那样”:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
_:x rdf:type rdf:Statement .
_:x rdf:subject :Tolkien .
_:x rdf:predicate :wrote .
_:x rdf:object :LordOfTheRings .
_:x :said :Wikipedia .
在现实生活中,你会想要使用共享词汇表,这样任何使用RDF的人都知道你在谈论那个 Tolkien和那个 LOTR :
http://dbpedia.org/resource/The_Lord_of_the_Rings
http://dbpedia.org/property/author
http://dbpedia.org/resource/dbppedia/J._R._R._Tolkien
答案 1 :(得分:6)
更好的方法是使用单例属性方法。
例如,您创建一个singleton属性来将此语句表示为:
Tolkien wrote#1 "Lord of the rings" .
wrote#1 rdf:singletonPropertyOf wrote .
wrote#1 asserted_by Wikipedia .
您可能希望在论文中阅读更多相关信息&#34;不要像RDF Reification一样?使用singleton属性制作关于语句的陈述&#34;或其幻灯片http://www.slideshare.net/ntkimvinh7/www2014-singleton-propertyfinal ...
答案 2 :(得分:2)
不幸的是,到目前为止,关系实例(即W3C文档中称为关系扩展的元素)或数学中称为对的元素(即关系的元素)尚未被认为是成为头等公民。
语义网络生态系统宣称AAA口号,任何人都可以说任何事情。但是,如果此处的第一个“任何内容”是图形的单个边缘,则情况并非如此。即使RDF本身有能力表达关于单个边缘的知识,W3C RDF语义文档也会尽力而为,而不是支持这种表达。
基本上,有4种方法可以对边缘进行说明: -不受欢迎,膨胀的RDF语句松散 -物业单身人士 -名为图的单个语句(四边形中的第四个元素是图ID) -关联节点(类似于UML关联类)
属性单例绝对是解决该问题的最简单方法,因为它们不添加任何内容-您只是在避免犯错以[再]一遍又一遍地[重用]类级别的属性标识符。对元建模(例如,MOF)有清晰理解的其他建模生态系统,很少会犯这种错误。类级边缘连接类级节点,而实例级边缘连接实例级节点。就是这样。
如果您正确地做到了这一点(如Vinh和他的同事所建议的那样),那么您将处于推理者的冲突之路上,这些推理者根据W3C RDF语义文档进行了硬编码。
您可以暂时犯下此错误(只要W3C尚未标准化属性单例),就可以进行另一个设计缺陷,并将属性单例实现为类级属性的subPropertyOf-s(而不是使其成为实例)。 。 然后,当前的RDFS推理程序将从 :my_label_0815 rdfs:subPropertyOf rdfs:label。 :some_node:my_label_0815“ some_string”。 那 :some_node rdfs:label“ some_string”。 这是一个肮脏的解决方法,因为它破坏了元级别的明确分离。
我们那里有很多设计得很糟糕的模型,只是因为,我们没有一种直接的方式来表达关于引用(实例级边缘)的信息。
答案 3 :(得分:0)
从2020年开始,您可以按以下方式使用RDF *:
<<:Tolkien:写:LordOfTheRings >>:说:Wikipedia。
在2020年,许多领先的三元店都采用了这种方法。还有一些工具可以将标准版本转换为RDF *,以减少三倍膨胀。 Ontotext的GraphDB Triple存储区以及其他几个存储区报告说,这种方法在三元组的数量和加载数据的速度方面都是有效的。
处了解此方法的起源