重用标准RDF词汇 - 第1部分

2021-03-18 23:24:00

这是Adam Retter的Guest Blog Post作出的二进制文件,他是全国档案馆项目欧米茄的顾问技术架构师......

在TNA(国家档案馆)项目Omega的第1阶段,我们评估了几种不同现有的模型和词汇表/本体,以确定他们表达TNA新的Pan-Archival目录数据的适用性。我们出版了一份相当综合的考察报告,并提出了前进的方式:目录模型提案。

总之,我们认为没有现有的模型是完美的。我们认识到,ICA的RIC(国际档案馆关于上下文中的档案记录)非常有前途,但目前为TNA的需求开发。最终,我们觉得在开发马特宏峰数据模型中采取的方法具有很大的优势,我们将采取类似的路径。

试图遵守RIC概念模型的更广泛的原则,但丢弃了RIC的本体论。

遵循马特宏峰RDF数据模型的方法,即重复使用现有词汇表,而不是创建自己的。

我们开始使用Matterhorn中指定的模型,并根据我们需要的其他共享和标准化词汇表添加了附加属性和类。我们的数据模型的(正在进行的)文件:Omega目录数据模型。

现在我们在项目欧米茄的第2阶段,并以龟RDF的形式将数据导出到此数据模型中,我们开始重新审视我们关于重用的一些初始假设。

重用现有词汇的美丽(假设您选择了流行和标准化的词汇),是任何开发人员,数据科学家或与RDF一起工作的用户可能已经了解并与我们的数据合作。例如,让我们考虑记录的简化描述:

@prefix tna:< http://www.nationalarchives.gov.uk/> 。 @prefix dct:< http://purl.org/dc/terms/> 。 tna:res.fo.2020.3j.p.1 dct:标识符" fo.2020.3j.p.1" ; DCT:描述"这是关于...&#34的外交办公室记录; ; 。

DCT(都柏林核心术语)是自2008年以来一直存在的词汇,其使用是无处不在的。即使某种方式用户不知道都柏林核心,条款的命名也是直截了当的。作为人类,我可能会推断DCT:标识符作为保存资源的标识符的标识符,以及DCT:描述作为保留资源的描述。如果您觉得需要,您可以通过检查都柏林核心标准文档本身确认您的怀疑,但这是您没有必要的点,这意味着已经知道或至少几乎明显。这是重用流行词汇表的主要好处,因为它既可以减少与数据一起使用的人的认知负载,并使我们能够形成和使用共享语言,即使在使用众异的数据集时也可以使用共享语言。

在倒塌方面,重新使用流行的共享词汇表的缺点是它们通常是通过设计,在其定义中非常通用。这当然是必要的,广泛受众可以接受的共同术语需要通过该受众来令人满意,因此通用和/或模糊的术语更加卑鄙。

定义自己的词汇表具有绝对优势,允许您精确定义世界观,并准确地界定您的意思。这是强大的东西!

@prefix tna:< http://www.nationalarchives.gov.uk/> 。 tna:res.fo.2020.3j.p.1 tna:oci" fo.2020.3j.p.1" ; TNA:范围内容"这是关于...&#34的外交办公室记录; ; 。

如果您在档案部门工作,您可能会猜测TNA:范围内容持有记录的范围和内容......但是档案部门以外的人究竟知道"范围和内容"记录?即便如此,你可能会知道TNA的含义:OCI!它' omega目录标识符,并且意识甚至在整个TNA中都没有组织。我们当然会写入owl和文档来定义什么TNA:OCI和TNA:范围内容意味着,但用户必须先阅读并读取它们可以使用数据。

权衡最终是:通过重用共享词汇表Vs.精确/正确表达您的域和数据来易消化。

在Omega,我们的潜在原则是首先尝试重复使用。我们正在发现有时,只能从流行的标准化词汇中重复使用,只有一个合适的财产或类。

作为一个例子,让我解释一下我们最近不得不解决项目Omega的用例。 TNA的目录目前包含每个描述单位的覆盖日期(文件夹的单个文档)。这些覆盖日期是所描述的记录的时间段。它们在1到3之间表示:日期文本(如描述单位上显示),第一次(期间开始)以及期间的最后日期(期末)。

最初我们决定使用普通词汇的财产来表达这些,都柏林核心条款(也许你知道它!)。我们最初选择的属性是DCT:时间。正如我解释DCT(Dublin核心术语)标准,它看起来是DCT:时间旨在描述资源的时间覆盖,即资源中讨论/所示的时间段而不是资源的日期创建。因此,在进一步考虑之后,我们决定使用其他东西而不是DCT:时间,这是我们必须开始进行权衡的地方。

使用DCT:改为创建。不幸的是DCT:创建是一个数据类型属性,所以需要一个文字值,但我们需要存储3个文字值(日期文本,第一个日期和最后一个日期)。为了实现这一目标,我们可以:a)使用ISO 8601-1,W3CDTF,EDTF或DCMI期间将3个文字值编码为1个文字值。这具有对SPARQL查询此功能的缺点变得复杂,需要各种字符串分割操作。例如,使用DCMI期间的编码可能会产生单个文字字符串值:name = 1941-1951;方案= W3C-DTF; start = 1941-01-01z;结束= 1951-01-01z。 b)忽略这里的Dublin核心细节,并使用对象属性。我们可以在某种程度上强制使用Shacl和文档来强制这种方法。然而,那些习惯于都柏林核心的人可能会感到惊讶; DCT的SPARQL查询:我们的系统中的创建将不同于其他系统。这否定了使用来自共享标准化词汇的财产的优势!

使用时间:更换。这是来自W3C时间本体在OWL中的通用属性。这是一个对象属性,使我们能够完全按照我们所需的方式表达我们的覆盖日期。不幸的是,TME:赶紧只告诉我们有一个时间,而不是那个时间代表的时间。它太过通用,无法充分描述这些是记录的创建日期; DCT:创建会更精确!

创建自己的词汇属性。我们有两个如何接近的主要选择:a)在我们自己的词汇表中定义自己的独立财产。 b)如果常见的词汇属性接近我们所需要的常见词汇,我们可以定义我们自己的属性,该属性来自此。

虽然DCT:创建了infers(对人类)我们正在寻找它的含义,并不让我们存储我们所需要的信息。时间:Hastime属性是相反的,它缺乏足够的精确含义,但允许我们如何存储我们的覆盖日期的极大灵活性。因此,由于没有常见词汇的易于合适的财产,我们几乎没有选择,而是创造自己的!

作为属性时间:Hastime允许我们存储我们需要的数据,但缺乏足够的描述性,而不是定义自己的独立财产,而不是定义我们的房产,而是从时间派生我们的财产:加速并添加进一步的描述性信息。我们的新派生属性将是TNA:创建,可以看出这样的东西:

@prefix owl< http://www.w3.org/2002/07/owl#> 。 @prefix rdfs< http://www.w3.org/2000/01/rdf-schema#> 。 @prefix tna:< http://www.nationalarchives.gov.uk/> 。 @prefix dct:< http://purl.org/dc/terms/> 。 @prefix时间:< http://www.w3.org/2006/time#& gt; 。 @prefix rdae:< http://rdaregistry.info/elements/e/> 。 TNA:创建了一只猫头鹰:ObjectProperty; rdfs:subpropertyof时间:匆匆; RDFS:标签"创建的日期" ; RDFS:评论"创建资源的日期,或者创建资源的日期期间。历史上,在国家档案中,这也被称为'覆盖日期' (描述单位)。" @en; RDFS:Seealso DCT:创建,RDAE:P20214。

上面的TNA定义:创建将其声明为时间的子属性:汇率,但提供有关其使用的更多信息,并通过查看DCT来通知我们,创建和RDAE可以找到其他信息:P20214。

在实际使用中,我们之前的RDF增强了我们的覆盖日期,现在终于看起来像:

@prefix tna:< http://www.nationalarchives.gov.uk/> 。 @prefix dct:< http://purl.org/dc/terms/> 。 @prefix时间:< http://www.w3.org/2006/time#& gt; 。 @prefix xsd:< http://www.w3.org/2001/xmlschema#& gt; 。 tna:res.fo.2020.3j.p.1 dct:标识符" fo.2020.3j.p.1" ; DCT:描述"这是关于...&#34的外交办公室记录; ; TNA:创建[时间:proceptinterval; DCT:描述" 1941-1951" ;时间:hasbeginning [时间:即时;时间:inxsddate" 1941-01-01z" ^^ xsd:date];时间:哈打[时间:瞬发;时间:Inxsddate" 1951-12-31z" ^^ xsd:date]]。

我们仍然利用DCT:标识符和DCT:上面的描述,因为它们是重复使用的合适。虽然新的TNA:创建完全展示了我们的权衡!

早些时候,我解释说我们想要重复使用DCT:创建,因为它是一个广泛使用和理解的属性,但它不适合存储我们的覆盖日期(因为它被指定为数据类型属性)。由于我们找不到来自现有流行词汇的合适物业,我们可以重用,我们被迫创造自己的。这个属性,TNA:创建,有两个重要的设计方面:

它的名字是直截了当的。即使是来自档案部门之外的人也可能猜测它是意义和目的。有人不太可能看看我们的猫头鹰定义或文档,以便能够开始与之合作。非常有意的是,这一目了然看起来很像DCT:创造了。

虽然这个属性是TNA特定的并且阐述了精确的含义,但它并不是独立的。相反,它通过从时间衍生出来的ovl(一种流行的词汇本身)来重用W3C时间本体论:Hastime属性。

对于项目Omega - 我们仍然可以随时随地重复使用,因为它可以让他人更容易消耗。创建新的属性或类(即使从公共词汇中派生)有时是不可避免的,但应该被视为绝对的最后一个度假胜地,并且只有在没有共同属性时才进行,或者所述财产未能充分描述数据。

希望本文为您提供了一些洞察力,以严格试图重用现有的词汇表以及可能所需的权衡时出现的挑战。