如何在rdfs中表达"all members of containers of class C must be of class M"?

How to express "all members of containers of class C must be of class M" in rdfs?

我有这些三元组(用海龟表示):

:C rdf:subClassOf rdfs:Container.
:M a rdfs:Class.

如何指定只有 :M 的实例可以成为 :C 的成员?我查看了 this,但找不到答案。

您不能用 RDFS ontology 来表达这一点(也就是说,作为根据 RDFS entailment regime). You can't express this with an OWL DL ontology (that is, an OWL ontology interpreted according to the OWL direct semantics). However, it can be expressed with OWL Full (that is, as an RDF graph interpreted according to the OWL RDF-based semantics). In Turtle:

解释的 RDF 图
[
  a  owl:Restriction;
  owl:onProperty  rdfs:member;
  owl:someValuesFrom  :C
]
rdfs:subClassOf  :M .

如果您不想使其与 OWL DL 兼容,则不得使用 RDF 容器,但您可以制作自己的 class 容器:

:Container  a  owl:Class .
:C  rdfs:subClassOf  :Container .
:M  a  owl:Class .
:member  a  owl:ObjectProperty .
[
  a  owl:Restriction;
  owl:onProperty  :member;
  owl:someValuesFrom  :C
]
rdfs:subClassOf  :M .