如何从SPARQL查询结果中排除一个实例

时间:2016-02-05 13:57:32

标签: sparql rdf semantic-web owl ontology

我有一个查询来获取特定实例的一些类似实例,即owbes:Dies_Irae实例。这是查询:

CONSTRUCT { ?recommendable0 ?predicate0 ?similarity0 } WHERE {
  ?recommendable0 ?predicate0 ?object0.
  owbes:Dies_Irae ?predicate0 ?object0.
  ?predicate0 owbes:hasSimilarityValue ?similarity0.
  ?recommendable0 rdf:type ?someType.
  ?someType rdfs:subClassOf owbes:Recommendable.
}

它工作正常,我得到的结果是我应该的。但是,我也得到了相同的实例owbes:Dies_Irae。有没有办法将其从结果中排除?

嗯,我确定有。我试图搜索,我发现有一个过滤器,我试图使用它,但没有成功。这是我应用FILTER (?recmmendable0 != owbes:Dies_Irae)

的过滤器

我还试图检查它们是否都有相同的rdf:about,但它没有用。

在这里你得到结果:

<http://www.welovethesemanticweb.com/recommendation-systems#Requiem:_Sequentia>
        recommendation-systems:hasArtist
                "0.4"^^xsd:double .

recommendation-systems:Le_nozze_di_Figaro
        recommendation-systems:hasArtist
                "0.4"^^xsd:double .

recommendation-systems:Dies_Irae
        recommendation-systems:hasArtist
                "0.4"^^xsd:double .

如您所见,最后一个实例是我想要排除

的实例

1 个答案:

答案 0 :(得分:2)

FILTER (?recmmendable0 != owbes:Dies_Irae)

您没有在过滤器中正确拼写recommendable0。由于变量未在其他任何地方使用,因此它永远不会有值,因此过滤器没有任何可比较的内容。