代码之家  ›  专栏  ›  技术社区  ›  user3222372

本体设计:类或个体

  •  2
  • user3222372  · 技术社区  · 8 年前

    设计一个本体,在这里我需要捕获微观策略文档及其包含的信息。例如,下面是三份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的谓词/属性,它将文档与信息类连接起来。 我的问题是-我应该创建mstr文档作为文档的子类,并为其定义hasInformation谓词,还是创建文档的个人/实例?

    请注意,每个文档还将具有名称、项目名称、url和参数等属性。这个属性应该定义为个人或类的数据类型属性吗?

    谢谢你的帮助…谢谢。

    1 回复  |  直到 8 年前
        1
  •  2
  •   Ivo Velitchkov    8 年前

    在OWL中,类表示集合。所以你可以上课 :MicrostrategyManual 成员,它们是表示具体文件或纸质副本的URI,可以分类为 a :MicrostrategyManual .

    关于:

    有一个名为hasInformation的谓词/属性,它连接 具有信息类的文档。

    唯一可以将个人与类链接起来的属性(下面的选项3除外)是 rdf:type 课间休息时间是 rdfs:subClassOf 。当您想以某种方式将某个属性与OWL类相关联时,您有两种选择:要么将该类用于域和范围(很少是一种好的做法),要么在类描述中包含该属性(分类的必要条件,使用 rdfs:subClassOf ),或定义(分类的必要和充分条件,使用 owl:equivalentClass ).

    根据您的目标,您可以用不同的方式设计本体。这里有两个选项:

    1. 如果只想对文档进行分类,那么可以将类别定义为个人、 skos:Concept 您可以将它们分组到 skos:Collection 这将作为“代码列表”。然后,你可以用以下方式将个人2和3联系起来:

    :InvestToGrowCountry skos:broader :Country

    1. 如果您想将文档与它们包含的资源关联起来,这些资源可以以不同的方式进行分类,那么您可以使用信息类的方法。

    关于文档属性,如果您有一些文档类,其中应该有与单个文档相同的元数据,那么这些应该定义为注释属性。最好是尽可能多地重用核心词汇表/本体。例如,对于名称,最好使用 rdfs:label 或者让你的 :documentName 作为的子财产 rdfs:标签 。然后您可以使用数据类型属性进一步描述文档。然而,在某些情况下,当您想进一步描述这些特征时(例如,当您想要管理它们的生命周期时),可以考虑使用对象属性,而不是注释和数据类型属性。

    1. 还有一种中间方法,即应用OWL2 punning 但由于我没有经验,我不知道有什么风险。

    2. 将类重命名为 :CountryDocument 等,并对文档进行分类(直接或通过对其他属性的推断),因此 :hasInformation 被解散,因为它不需要,反正不是为了这个目的。