Ontology 设计:class 或个人

Ontology design : class or individuals

设计一个 ontology 我需要在其中捕获微策略文档及其包含的信息类型。例如以下是三个 mstr 文档。

1. Finance summary (has finance inforamtion)
2. Country finance summary (has finance & country info)
3. Invest to grow country finance summary (has finance, country, invest to grow country info)

除此之外,我还定义了信息 类,如下所示。

1. Finance
2. Country
3. InvestToGrowCountry (subclass of country)

有一个名为 hasInformation 的 predicate/property,它将文档与信息 类 连接起来。 我的问题是 - 我应该将 mstr 文档创建为 sub类 文档并为其定义 hasInformation 谓词还是创建 individuals/instances 文档?

请注意,每个文档还将包含 属性 名称、项目名称、url 等参数。这个 属性 应该定义为个人数据类型 属性 还是 类?

感谢您的帮助...谢谢。

在OWL中classes表示集合。所以你可以有一个 class :MicrostrategyManual 和成员,这些成员是代表具体文件或纸质副本的 URI,可以 class 化为 a :MicrostrategyManual

关于:

There is a predicate/property called hasInformation which joins documents with information classes.

唯一(除了下面的选项 3)属性 可以 link 个人 class 是 rdf:type 和 [=59= 之间的那个]es 是 rdfs:subClassOf。当你想以某种方式将某个 属性 与 OWL class 相关联时,你有两个选择:要么使用 class 作为域和范围(这很少是一个好的做法), 或当你在 class 描述中包含 属性 (class化的必要条件, 使用 rdfs:subClassOf), 或定义 ([=59的充要条件) =]化,使用owl:equivalentClass).

根据你的 objective 是什么,你可以用不同的方式设计你的 ontology。这里有两个选项:

  1. 如果您只想 class 化文档,那么您可以将类别定义为个体,skos:Concept 的成员,您可以将它们分组在一个 skos:Collection 中,作为"code list"。然后你可以通过以下方式将你的个体 2 和 3 联系起来:

:InvestToGrowCountry skos:broader :Country

  1. 如果您想将您的文档与它们包含的资源相关联,这可能会以不同的方式 class 化,那么您可以使用 classes 信息的方法。

关于文档属性,如果您有一些 classes 文档应该具有与单个文档相同的元数据,那么这些应该被定义为注释属性。最好尽可能多地重复使用核心 vocabularies/ontologies 中的那些。例如,对于名称,最好使用 rdfs:label 或将您的 :documentName 作为 rdfs:label 的子 属性。然后您可以使用数据类型属性来进一步描述您的文档。然而,在某些情况下,当你想进一步描述这个特性时(例如当你想管理他们的生命周期时),可以考虑使用对象属性,而不是注释和数据类型属性。

  1. 还有一个折衷的方法,应用OWL2 punning特性,但由于我没有使用过,不知道有什么风险.

  2. 将您的 classes 重命名为 :CountryDocument 等,并 class 验证您的文档(直接或通过推断其他属性),因此 :hasInformation 已解散,因为不需要它,反正不是为了这个目的。