SPARQL 查询中返回值的类型

Type of returned value in SPARQL Query

是否可以知道 SPARQL 查询中 return 值的类型? 例如,是否有定义 ?x ?price ?p 类型的函数 在以下查询中?

SELECT DISTINCT ?x ?price ?p
                    WHERE {
                        ?x a :Product .
                        ?x :price ?price .
                        ?x ?p ?o .
                    }

我想知道

typeOf(x) = resource
typeOf(?p) = property
typeOf(?price) = property target etc.

数据类型(?x)

数据类型函数会告诉您结果是资源还是文字,在后一种情况下,它会告诉您确切的数据类型。

例如,以下关于 https://dbpedia.org/sparql...

的查询
SELECT DISTINCT ?x ?code ?p datatype(?x) datatype(?code) datatype(?p)
                    WHERE {
                        ?x a dbo:City.
                        ?x dbo:areaCode ?code .
                        ?x ?p ?o .
                    } limit 1

...will return:

然而,这不会区分“资源”和“属性”,因为资源可能是 属性。您的意思可能是“个人”和“属性”,但即使 属性 也可以被视为个人,例如在三元组 rdfs:label rdfs:label "label".

但是您始终可以查询资源的 rdf:type,这可能会给您 rdf:Property、owl:DatatypeProperty 或 owl:ObjectProperty。