RDF和XMP有什么区别?
据我所知,XMP源自RDF ......那么RDF没有提供什么呢?
我的具体情况是:我有一些图像需要标记实验的执行方式,以及对图像进行了哪种数据分析。我的一位同事正在推动XMP,但他认为图像是照片 - 它们不是真的,它们只是数据的一部分。
从我所看到的(主要是通过在notepad ++中打开图像),XMP数据看起来与RDF非常相似 - 甚至在标签名称中使用RDF(例如<rdf:Seq>
)。
我希望其他使用类似仪器进行类似实验的人可以使用这些数据,因此创建一个迷你标准(架构?)似乎就是这样。
抱怨缺乏有趣的理解 - 我是博士,而不是程序员!如果它有所不同,选择的语言将是C#。
编辑以获取更多信息: 首先,感谢优秀的回复 - 将XMP视为RDF的词汇使事情变得更加清晰。
我将存储的数据类型在任何预定义集合中都不可用。它将详细介绍实验设置,位置和结果。我认为使用RDF是可行的方法。
这种事物的一个例子(存储在当前的XML中)将是:
<Experiment name="test2" loc="lab" timestamp="65420233400">
<Instrument name="a1" rev="1.0"/>
<Calibration>
<date>13-02-10</date>
<type>complete</type>
</Calibration>
</Experiment>
在我的脑海中,我想我将把它存储在RDF中,如下所示:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:zotty="http://www.zotty.com/rdf/">
<zotty:experiment>
<rdf:Bag>
<zotty:name>test2</zotty:name>
<zotty:loc>lab</zotty:loc>
<zotty:timestamp>65420233400</zotty:timestamp>
<zotty:instrument>
<rdf:Bag>
<zotty:name>a1</zotty:name>
<zotty:rev>1.0</zotty:rev>
<zotty:calibration>
<rdf:bag>
<zotty:date>13-02-10</zotty:date>
<zotty:type>complete</zotty:type>
</rdf:bag>
</zotty:calibration>
</rdf:Bag>
</zotty:instrument>
<rdf:Bag>
</zotty:experiment>
</rdf:RDF>
感谢您的建议:)
答案 0 :(得分:3)
如果您需要充分的灵活性,请使用普通RDF。您提到您需要灵活的数据模型,那么最好的选择是直接使用RDF以及可以在RDF中重用现有词汇表的任何地方。如果你对域名发表评论,我可以就本体可重用性提出更多建议。
如果任何XMP模板适合您的数据层,请使用这些模板。
答案 1 :(得分:2)
我不是这方面的专家,但这是我理解它的方式。 RDF是一种存储您想要的任何信息并定义您希望如何存储它的通用方法。 XMP使用RDF的一个子集,并附带一堆预先构建的数据存储模板,如IPTC和Dublin Core。您仍然可以存储任意数据,但鼓励使用定义的模板。换句话说,如果它已经存在于其他地方,请不要重新定义“图像描述”。
我要说的是看看都柏林核心和IPTC,看看它是否适合你。如果是这样,请沿着XMP路线前进。如果一切都是自定义的,RDF可能是更好的方式。
答案 2 :(得分:2)
XMP是Adobe开发和推送的元数据格式,基本上提供了用于指定文件内容的已定义词汇表。 XMP本身可以恢复其他标准词汇表 - 例如,都柏林核心术语被XMP广泛重用。
这真的不是RDF与XMP的问题:最常见的是,XMP被序列化为RDF,如果你看一下Adobe自己的规范,他们会谈论RDF序列化方面的XMP。同样重要的是要注意,RDF是可随意扩展的....所以msalvadores答案是一个很好的答案:如果XMP词汇表让你说出你想对图片说的话,使用它并在RDF中使用它序列化 - 以这种方式,如果你需要说出哪些不在XMP词汇中的其他内容,可以自己扩展它或将它与其他词汇表(序列化为RDF)结合起来,这样你就可以说出你想说的内容。
希望这有帮助。