我可以将 :MyClass 定义为具有 SKOS 属性和 RDFS 的 skos:Concept
属性?
语义网技术的优点之一是您可以做任何您想做的事。 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 标签和 cmets。这实际上取决于您期望如何使用这些信息。无论如何,您真的需要 rdfs:label 和 skos:prefLabel 吗?还是你只会使用一个?我建议(这是一种观点)在您需要将它们变得更复杂之前,保持事物更简单是有意义的。
其他说明
我可以将 :MyClass 定义为具有 SKOS 属性和 RDFS 的 skos:Concept
财产?我会有类似的东西:
:MyClass a rdfs:Class;
rdfs:subClassOf skos:Concept;
请注意,您没有“将 :MyClass 定义为 skos:Concept”,而是将 :MyClass 定义为 skos:Concept 的子类。”这有很大的不同。如果 :MyClass 应该是 skos :概念,你需要说:
:MyClass a rdfs:Class;
a skos:Concept;
或者更简洁:
:MyClass a rdfs:Class, skos:Concept;