2012-02-24 78 views
1

我想检查属性是否有效。我想:使用SPARQL查询检查属性是否有效

ASK { 
    pz:isBase owl:isInverseFunctional . 
} 

,但它是一个语法错误。我怎样才能检查一个属性是否有效?

+0

你想知道该属性是否为InverseFunctionalProperty? – 2012-02-28 04:56:50

+0

通常,您可以检查[第2节,从结构规范到RDF图的映射](http://www.w3.org/TR/owl2-mapping-to-rdf/#Mapping_from_the_Structural_Specification_to_RDF_Graphs),以了解各种OWL公理将被映射到RDF(因此,如何使用SPARQL查询它们)。在这种特殊情况下,OWL公理“InverseFunctionalObjectProperty(OPE)”被翻译成RDF三元组'T(OPE)rdf:type owl:InverseFunctionalProperty .'。 – 2013-09-19 20:33:07

回答

3

尝试:

ASK {pz:isBase rdf:type owl:InverseFunctionalProperty} 

为了解释:即RDF表示模式,并且其SPARQL查询,是三元subject predicate object,或换句话说一个二进制谓词。你正在考虑一个一元谓词isInverseFunctional(),但RDF不会执行一元谓词。相反,这种类型或类型的信息被编码为一个带有特殊谓词rdf:type的二元谓词,您可以将其视为isKindOfis member of the class

因此,要发现在您的域模型中表示特定谓词的资源是否为反函数属性,您要问该资源是否属于该类,即具有所有反函数属性的类或owl:InverseFunctionalProperty