gpt4 book ai didi

rdf - RDF 数据中的简单版本控制

转载 作者:行者123 更新时间:2023-12-04 17:54:09 24 4
gpt4 key购买 nike

许多数据集都有变化的历史。将历史数据作为关联数据提供可能是一个挑战。我正在考虑的一般情况是,数据集包含有关具有可以随时间变化的属性的事物的数据。一个例子可能是温莎城堡的历史:它过去有很多配置,但它仍然可以被认为是同一件事。处理这个问题的一种方法可能是对属性进行时间注释。但随后就进入了每个 RDF 三元组都有元数据的尴尬领域。我认为更简单的解决方案是考虑事物的版本:当资源的一个或多个属性发生变化时,就会产生一个新版本。

以下是某人在特定日期更改姓名的简单示例:

@prefix : <http://www.example.com/mydataset/> .
@base <http://www.example.com/mydataset/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

:p1 a foaf:Person ;
foaf:name "Bob" ;
dcterms:valid "start=2015-06-20;" ;
dcterms:replaces <p1/version1> .

<p1/version1> a foaf:Person ;
foaf:name "Alfred" ;
dcterms:valid "start=1975-08-01; end=2015-06-19;" ;
dcterms:isVersionOf :p1 ;
dcterms:isReplacedBy :p1 .

在此示例中,主 URI ( :p1 ) 始终指向最新版本。这很有用,因为可能并不总是需要历史数据。当前数据确实具有指向先前版本的链接。属性 dcterms:replacesdcterms:isReplacedBy可以形成一个旧版本链。

我喜欢这个设置,因为它很简单,并且不依赖于 SPARQL 之类的东西来工作。然而,一个问题是时间有效性的规范。我能找到的唯一合适的术语是 dcterms:valid .但它的范围是一个字面意思。这适用于 DCMI Period Encoding Scheme ,但我认为能够使用常见的时间数据类型(如 xsd:dateTime)会更有用。或 xsd:gYear .这将有助于查询(按时间范围或按时间点)和对数据进行大量排序。例如,SPARQL 中的时间查询依赖于数据类型 xsd:dateTime .

所以我的问题是:有人可以为链接数据建议一个简单的版本控制方案,它可以在时间上使用常见的数据类型吗?或者也许只是 dcterms:valid 的替代方案?

更新:一个建议是查看 PROV ,它为出处和替代方案提供语义。 PROV 确实包含了有效性的概念,并且已经尝试映射 dct:valid省。我的声誉太低,无法发布额外的超链接,所以我引用:

dct:valid: "Date (often a range) of validity of a resource." This property could correspond to PROV's generation and invalidation of the resource or one of its specializations. However, dct:valid can be used to set expiry dates (e.g., resource valid until 2015), which is not provenance (it is not about past events). Thus this property is left out of the mapping.



对于这个问题所涉及的历史数据,事实是 dct:valid可以设置 future 日期无所谓。所以PROV的生成和失效仍然适用。相关的PROV术语好像是 prov:generatedAtTimeprov:invalidatedAtTime .它们可用于表达版本的时间有效性。但是,这些属性的范围是 xsd:dateTime ,这意味着每次都需要知道秒级。特别是对于数字时代之前的历史数据,这并不总是为人所知。有时,已知的只是年份或日期。所以看起来 PROV 在另一个方面太严格了。

最佳答案

支持此类更改的词汇表是例如 ChangeSet

http://vocab.org/changeset/

如果你用它建模,一方面你有你的数据,另一方面有关于变化的元数据。

关于rdf - RDF 数据中的简单版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41830542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com