如何检索课程的最小约束?使用sparql的属性?我有value min 1000 decimal
,我想获得1000
答案 0 :(得分:1)
在一个假设的世界里,你有这样的陈述:
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)
答案 1 :(得分:0)
这是我在Artemis'回答
之后使用的sparql查询SELECT ?min
WHERE {?s rdfs:subClassOf ?o.
?o owl:minQualifiedCardinality ?min.
FILTER(?s = :value) }
使用jena,我使用getLiteral("min").getFloat();