我可以将skos属性与rdfs属性混合以定义类吗?

时间:2015-02-25 15:34:12

标签: syntax rdf semantic-web rdfs skos

要指定rdfs:Class并组织本体,我想使用SKOS。我可以使用RDFS属性来定义我的类:

:MyClass a rdfs:Class;
    rdfs:label "my label";
    rdfs:comment "this is a comment";
    .

我可以将:MyClass定义为具有SKOS属性和RDFS属性的skos:Concept吗?我会有类似的东西:

:MyClass a rdfs:Class;
    rdfs:subClassOf skos:Concept;
    rdfs:label "my label";
    skos:prefLabel "my label";
    rdfs:comment "this is a comment";
    skos:notes "this is a comment";
    .

我有read可以通过SKOS属性映射某些RDFS属性。那么,这种语法有兴趣吗? RDFS和SKOS在这里提供相同的冗余信息吗?

1 个答案:

答案 0 :(得分:3)

  

我可以将MyClass定义为skos:具有SKOS属性和RDFS的概念   porperties?

语义Web技术的一个优点是你可以做任何你想做的事情。 RDF,资源描述框架描述资源有关。你并没有真正定义事物,而是描述它们,因为毕竟有人可以在以后再说些其他事情。

现在,关于描述中的冗余信息,如:

 :MyClass a rdfs:Class;
    rdfs:subClassOf skos:Concept;
    rdfs:label "my label";
    skos:prefLabel "my label";
    rdfs:comment "this is a comment";
    skos:notes "this is a comment" .

这没有什么关系,尽管如你所说,在某些情况下有点多余。如果您愿意,您可以做的是声明您自己的属性,这些属性是RDFS和SKOS属性的子属性。例如,你可以:

:myComment rdfs:subPropertyOf rdfs:comment, skos:notes .
:myLabel rdfs:subPropertyOf rdfs:label, skos:label .

然后你可以说

 :MyClass a rdfs:Class;
    rdfs:subClassOf skos:Concept;
    :myLabel "my label" ;
    :myComment "this is a comment" .

当然,如果您没有使用推理器,或者目标消费者没有使用推理器,那么他们就不会知道""我的标签"和"这是评论"是资源的RDFS和SKOS标签和注释。这实际上取决于您希望如何使用这些信息。你真的需要一个rdfs:label skos:prefLabel吗?或者你只会使用一个?我建议(并且这是一种意见)认为保持更简单是有意义的,直到你需要它们变得更复杂。

其他说明

  

我可以将MyClass定义为skos:具有SKOS属性和RDFS的概念   性能?我会有类似的东西:

:MyClass a rdfs:Class;
    rdfs:subClassOf skos:Concept;

请注意,您没有定义:MyClass作为skos:Concept",而是您定义:MyClass作为skos的子类:Concept。"那里有很大的不同。如果:MyClass应该是一个skos:Concept,你需要说:

:MyClass a rdfs:Class;
         a skos:Concept;

或者更简洁:

:MyClass a rdfs:Class, skos:Concept;