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

how to exclude one instance from SPARQL query result

我有一个查询要为特定实例获取一些相似实例,即 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 .

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

FILTER (?recmmendable0 != owbes:Dies_Irae)

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