执行SPARQL查询

执行SPARQL查询,sparql,ontology,Sparql,Ontology,我创建了一个小本体。它只有一个名为methods的类和一个数据类型属性action\u nb(整数) 然后我创造了两个人: AHP=>行动\u nb=20 electre=>action_nb=50 我想执行一个简单的查询。选择nb_作用 20 50 理解如何实现这一点的关键是理解RDF三元组是如何定义的。您已经说过,action\u nb是一个属性,它的值是要比较的整数。因此,请使用该属性创建查询: PREFIX untitled-ontology-77: <http://www.sem

我创建了一个小本体。它只有一个名为
methods
的类和一个数据类型属性
action\u nb
(整数)

然后我创造了两个人:

AHP=>行动\u nb=20

electre=>action_nb=50

我想执行一个简单的查询。选择nb_作用<40的方法,结果应为EL1。

]>
20
50

理解如何实现这一点的关键是理解RDF三元组是如何定义的。您已经说过,
action\u nb
是一个属性,它的值是要比较的整数。因此,请使用该属性创建查询:

PREFIX untitled-ontology-77: <http://www.semanticweb.org/diabolico/ontologies/2016/3/untitled-ontology-77#>
SELECT ?inst
WHERE {
    ?inst untitled-ontology-77:action_nb ?value .
    FILTER (?value < 40)
}

我怀疑您在这种情况下是否需要
DISTINCT
,请注意,查找所有DISTINCT值是在查询之后执行的,但会成对应用于所有选定的值。也就是说,它可能无法很好地处理大型结果集。因此,只有在必要时才可以使用
DISTINCT

非常感谢您的帮助,先生。如何定义前缀(?inst)?我应该在里面放什么?我在寻找答案,但我只找到了有关(foaf)的文档。
表示变量,而不是名称空间<代码>:表示一个带前缀的名称空间,为了清晰起见,我添加了一个名称空间。关于查询语言的更多信息,请尝试谷歌搜索SPARQL。对不起,我的意思是前缀(例如:)我还有很多工作要做(java),这只是它的一部分,因为这是我的PFE项目,没有多少时间了。。。帮个忙,我会很感激的我想我现在把它修好了。。但是结果是空的。。它没有显示任何东西,你必须发布一些示例数据,以供任何人提供更多帮助。
PREFIX untitled-ontology-77: <http://www.semanticweb.org/diabolico/ontologies/2016/3/untitled-ontology-77#>
SELECT ?inst
WHERE {
   ?inst rdf:type untitled-ontology-77:methods .
   ?inst untitled-ontology-77:action_nb ?value .
   FILTER (?value < 40)
}