sparql检索最小约束的值

时间:2015-06-02 21:12:06

标签: sparql jena

如何检索课程的最小约束?使用sparql的属性?我有value min 1000 decimal,我想获得1000

2 个答案:

答案 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)
}

其中,您可以看到以下结果: enter image description here

如您所见,有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();