正如您所提到的,无法使用 OWL-DL 在类和个人之间创建关系。因此,您必须修改表示领域知识的方式,如果您希望能够使用推理器,这是唯一的解决方案。
这里服务实例可以链接到位置实例,或者您也可以使用类而不是个人来描述特定服务。然后,您可以在存在限制之间创建关系Service1
并Location
使用存在限制。
使用个人的示例:
:hasInput rdf:type owl:ObjectProperty ;
rdfs:domain :Service .
:Location rdf:type owl:Class .
:Service rdf:type owl:Class .
:Location1 rdf:type :Location , owl:NamedIndividual .
:Service1 rdf:type :Service , owl:NamedIndividual ;
:hasInput :Location1 .
使用类的示例:
:hasInput rdf:type owl:ObjectProperty ;
rdfs:domain :Service .
:Location rdf:type owl:Class .
:Service rdf:type owl:Class .
:Service1 rdf:type owl:Class .
rdfs:subClassOf :Service ,
[ rdf:type owl:Restriction ;
owl:onProperty :hasInput ;
owl:someValuesFrom :Location
] .