sparql 检索最小约束的值
sparql to retrieve the value of a min constraint
如何使用 sparql 检索 class' 属性的最小约束?我有value min 1000 decimal
,我想得到1000
在假设的世界里你有这样的说法:
Class: X subClassOf: hasObjectProperty min 1 Y
如果将 SPARQL 查询编写为:
SELECT *
WHERE {
?s rdfs:subClassOf ?o.
}
您必须提取所有 refs:subClassOf
公理。但是,如果您需要精确并知道哪些有基数限制,则需要更进一步:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix : <http://example.com#>
SELECT *
WHERE {
?s rdfs:subClassOf ?o.
?o ?x ?y.
filter(?s = :X)
}
其中,您可以看到以下结果:
如您所见,有2个相关项,一个是Y
,一个是呈现为非负整数的数字。因此,获取每一项的一种方法是在 SPARQL 查询中为 ?x
放置一个过滤器,并逐一获取每一项。例如,过滤器 owl:onClass
会给你 ?y
:
prefix : <http://example.com#>
SELECT *
WHERE {
?s rdfs:subClassOf ?o.
?o owl:onClass ?y.
filter(?s = :X)
这是我在 Artemis 的回答后使用的 sparql 查询
SELECT ?min
WHERE {?s rdfs:subClassOf ?o.
?o owl:minQualifiedCardinality ?min.
FILTER(?s = :value) }
对于jena,我使用getLiteral("min").getFloat();
如何使用 sparql 检索 class' 属性的最小约束?我有value min 1000 decimal
,我想得到1000
在假设的世界里你有这样的说法:
Class: X subClassOf: hasObjectProperty min 1 Y
如果将 SPARQL 查询编写为:
SELECT *
WHERE {
?s rdfs:subClassOf ?o.
}
您必须提取所有 refs:subClassOf
公理。但是,如果您需要精确并知道哪些有基数限制,则需要更进一步:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix : <http://example.com#>
SELECT *
WHERE {
?s rdfs:subClassOf ?o.
?o ?x ?y.
filter(?s = :X)
}
其中,您可以看到以下结果:
如您所见,有2个相关项,一个是Y
,一个是呈现为非负整数的数字。因此,获取每一项的一种方法是在 SPARQL 查询中为 ?x
放置一个过滤器,并逐一获取每一项。例如,过滤器 owl:onClass
会给你 ?y
:
prefix : <http://example.com#>
SELECT *
WHERE {
?s rdfs:subClassOf ?o.
?o owl:onClass ?y.
filter(?s = :X)
这是我在 Artemis 的回答后使用的 sparql 查询
SELECT ?min
WHERE {?s rdfs:subClassOf ?o.
?o owl:minQualifiedCardinality ?min.
FILTER(?s = :value) }
对于jena,我使用getLiteral("min").getFloat();