0

My question is short, I am confused about the above predicate. I have used it like this;

ex:Superclass a skos:Concept;
            skos:prefLabel "Superclass";
            skos:altLabel "Parent class";
            skos:hasTopConcept ex:Class, ex:ClassHierarchy .

It seems to me that this predicate is used the same way as Broader, can I get some clarification on this

Thank

4

1 回答 1

0

skos:ConceptScheme描述了一个知识组织系统,一个概念的容器。通常,一个概念最多存在一个方案中,因为例如skos:notation应该为其方案中的概念提供一个值(对于不同方案中的等效概念,存在特定的映射关系)。

您的用法不正确,因为skos:hasTopConcept它用于概念方案,概念为对象。这意味着该概念在某种程度上是最通用、最广泛的,即在该方案中没有更广泛的内容(但一般而言,在其他方案中可能存在)。倒数是skos:topConceptOf,这意味着skos:inScheme

假设您的方案用于表示特定类之间的关系,您可能打算以这种方式对其进行建模:

ex:ClassRelations a skos:ConceptScheme ;
  skos:hasTopConcept ex:Class .

ex:Class a skos:Concept ;
  skos:topConceptOf ex:ClassRelations . # redundant since the inverse was already specified (inScheme is sufficient)

ex:Superclass a skos:Concept ;
  skos:broader ex:Class .

但是我不认为这是对 SKOS 的一个很好的使用。我们在这里建模类关系,虽然“是超类”是有道理的,但它并不比“是类”更具体,因为那没有意义。指定一个普通的旧 RDF 属性同样有效。

结合某些编程语言中的“类层次结构”概念,它更适合实际的层次结构,如类型、引用/值类型、接口等,或特定的类/类型,如 Object、String、Collection、List 等。

于 2020-12-21T23:27:23.937 回答