我正在学习推理和知识工程,我编写了以下示例:
@prefix : <http://example.org#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <http://www.w3.org/2002/07/owl> .
[ rdf:type owl:Ontology
] .
:value rdf:type owl:DatatypeProperty ;
rdfs:range xsd:string .
:humiditySensor rdf:type owl:Class ;
rdfs:subClassOf :sensor .
:location rdf:type owl:Class .
:room rdf:type owl:Class ;
rdfs:subClassOf :location .
:sensor rdf:type owl:Class.
:temperatureSensor rdf:type owl:Class ;
rdfs:subClassOf :sensor .
:temp1 rdf:type owl:NamedIndividual ,
:temperatureSensor ;
:room 201 ;
:value 29 .
我试图推断temp1属于传感器类型。当我向Eye推理器(向后链接)提出以下查询时,我得不到任何结果,即即使subClassOf是传递的,也不推断temp1属于传感器类型的事实:
@prefix : <http://example.org#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
{
?x a :sensor.
?x :value ?y.
}
=>
{
?x :value ?y.
}.
如果我手动编写一些规则来表达subClassOf的这种传递属性,它将起作用。但是,证明中的CWM推理器(正向链接)正确表明temp1属于传感器类型,没有附加规则。
这是因为前向和后向链接的区别吗?
我希望我有意义。