RDF-定义新名称空间的正确策略



我正在努力寻找定义新名称空间的正确策略。

策略1:

尽可能使用标准名称空间-理解

策略2:

创建自己的命名空间以基本上提高可读性和可维护性,例如

@prefix dimd: <https://www.company.com/products/di#> .
dimd:Table a rdfs:Resource ;
rdfs:subClassOf dimd:Dataset .
dimd:column rdfs:range dimd:Column ;
rdfs:domain dimd:Dataset .

长URI策略

但是我该如何处理长URI,例如具有列的数据集

<https://mycompany.com/sub/dataset/connection/shared/catalog/EU/Population.csv> a dimd:Dataset ;
dimd:column <https://mycompany.com/sub/dataset/connection/shared/catalog/EU/Population.csv/SINGLE> .
<https://mycompany.com/sub/dataset/connection/shared/catalog/EU/Population.csv/SINGLE> dimd:Column ;
xsd:boolean .

有没有一个符号来代替";https://mycompany.com/sub/dataset/connection/shared/catalog"例如;实例";?

instance:/catalog/EU/Population.csv a dimd:Dataset ;
dimd:column instance:/catalog/EU/Population.csv/SINGLE> .
instance/catalog/EU/Population.csv/SINGLE> dimd:Column ;
xsd:boolean .

在这种情况下,名称空间/前缀的概念由于斜杠而不起作用,是吗?

前缀名称的本地部分中的斜杠需要使用反斜杠进行转义:

instance:/catalog/EU/Population.csv
instance:/catalog/EU/Population.csv/SINGLE

为了使这些名称更加友好和简短,您可以为每个目录创建一个前缀(带有尾部斜杠(:

@prefix eu-population: <https://example.com/sub/dataset/connection/shared/catalog/EU/Population.csv/> .
@prefix us-population: <https://example.com/sub/dataset/connection/shared/catalog/US/Population.csv/> .
<https://example.com/sub/dataset/connection/shared/catalog/EU/Population.csv> a dimd:Dataset ;
        dimd:column eu-population:SINGLE .

文件与数据集

您可能需要区分目录文件和该文件包含的数据集。这不仅允许您对每个实体(创建/更新日期、作者等(做出不同的声明,而且您还可以使用较短的前缀来引用数据集:

eu-population: a dimd:Dataset ;
ex:file <https://example.com/sub/dataset/connection/shared/catalog/EU/Population.csv> ;
dimd:column eu-population:SINGLE .

因此,https://example.com/sub/dataset/connection/shared/catalog/EU/Population.csv将是文件的URI,https://example.com/sub/dataset/connection/shared/catalog/EU/Population.csv/将是数据集的URI。(您也可以考虑从数据集URI中省略.csv,这样您就不会引用文件类型,以防将来发生更改。(

但是,如果这些URI不在您的控制之下,您应该遵循发布者的定义。

最新更新