题
RDF和XMP有什么区别?
据我所知,XMP是从RDF派生的...那么它提供了RDF不提供的?
我的特殊情况是:我有一些图像需要标记,并详细介绍如何执行实验以及对图像进行了哪种数据分析。我的一位同事正在推动XMP,但他将这些图像视为照片 - 它们并不是真正的,它们只是一点点数据。
从我所看到的(主要是通过在记事本++中打开图像),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>
感谢您的建议 :)
解决方案
如果您需要完全的灵活性,请使用普通RDF。您提到您需要一个灵活的数据模型,然后最好的选择是直接使用RDF,并且可以在RDF中重复使用现有词汇。如果您对域进行评论一点,我可以对本体可重复使用性有更多建议。
如果任何XMP模板都适合您的数据层,请使用这些模板。
其他提示
我不是这个专家,但这就是我理解的方式。 RDF是存储几乎所有您想要的信息并定义如何存储它的通用方法。 XMP使用RDF的子集,并配备了许多用于数据存储的预制模板,例如IPTC和Dublin Core。您仍然可以存储任意数据,但鼓励使用定义的模板。换句话说,如果已经在其他地方,请不要重新定义“图像描述”。
我要说的是看都柏林核心和IPTC,看看这是否对您有用。如果是这样,请走XMP路线。如果一切都是习俗,RDF可能是更好的方法。
XMP是一种由Adobe开发和推动的元数据格式,基本上提供了一个定义的词汇来指定文件的内容。 XMP本身重新解释了其他标准词汇 - 例如,都柏林核心术语由XMP广泛重复使用。
这确实不是RDF与XMP的问题:最常见的是,XMP被序列化为RDF,如果您以Adobe自己的规格查看,他们会根据RDF序列化谈论XMP。同样重要的是要注意,RDF是可扩展的。...因此,MSALVADORS的答案是一个很好的答案:如果XMP词汇可以让您说出您想对图片说的话,使用它并在RDF中使用它,则使用它。这样,如果需要说其他内容,您不在XMP词汇中,可以自己扩展它或将其与其他词汇(序列化为RDF)结合使用,以使您可以说自己想说的话。
希望这可以帮助。