1
我需要檢查,在給定的本體,通過SPARQL查詢的手段,不具有RDFS數據類型屬性:定義的範圍。例如,在下面的代碼中,我正在查找的結果是dataproperty2
。如何獲得,在給定的本體,數據類型的屬性沒有定義RDFS:範圍
ont:Class1 a owl:Class .
ont:Class2 a owl:Class .
ont:dataProperty1 a owl:DatatypeProperty ;
rdfs:domain ont:Class1 ;
rdfs:label "dataProperty1"@en ;
rdfs:range xsd:string .
ont:dataProperty2 a owl:DatatypeProperty ;
rdfs:domain ont:Class2 ;
rdfs:label "dataProperty2"@en .
我定義這個SPARQL查詢檢索與此條件相匹配的屬性的數量,但由於是一個聚合函數,即COUNT,我有問題要得到數據類型的屬性,數量不限,沒有定義rdfs:範圍。
SELECT ?return WHERE
{
{
SELECT (COUNT(?p) as ?pCount)
WHERE
{
?p rdf:type owl:DatatypeProperty .
?p rdfs:range ?range .
}
}
{
SELECT DISTINCT (COUNT(?p) as ?prop)
WHERE
{
?p rdf:type owl:DatatypeProperty .
}
}
BIND((?prop - ?pCount) as ?return)
}