You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SPARQL查询中实现两个特定值的过滤筛选

SPARQL双条件过滤查询解决方案

样例数据集中文说明

你给出的RDF数据里的单条书籍实体对应信息如下,该书籍出版年份为2012年,不会匹配你要的2010年查询条件:

  • 实体ID:DL_lib:Book_3,类型为书籍、OWL命名个体
  • 内容描述:介绍了软件工程师的职责定义、软件工程原则在软件开发全生命周期的应用、软件配置管理规则、软件版本管理等内容
  • 作者:DL_lib:Ivan_Marsic
  • ISBN编号:978-0-672-32990-6
  • 页数:335
  • 书名:《Software Engineering》(软件工程)
  • 所属分类:计算机科学与通识类、计算机编程与数据类
  • 馆藏位置:HEC
  • 出版年份:2012
  • 出版社:培生教育(DL_lib:Pearson_Education)

完整查询代码

以下查询可直接匹配「书名对应软件工程、2010年出版」两个过滤条件:

# 声明和你数据集匹配的命名空间前缀
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX DL_lib: <http://www.semanticweb.org/aungyekyaw/ontologies/2020/8/DL_lib#>

# 可自定义要返回的字段
SELECT ?book ?title ?author ?isbn ?pages ?location
WHERE {
  # 匹配实体类型为书籍
  ?book rdf:type DL_lib:Book .
  # 过滤条件1:书名完全匹配软件工程(英文数据集匹配英文标题,中文数据集可替换为中文关键词)
  ?book DL_lib:hasTitle "Software Engineering" .
  # 过滤条件2:出版年份完全匹配2010
  ?book DL_lib:published 2010 .
  # 绑定其他要返回的属性
  ?book DL_lib:hasAuthor ?author .
  ?book DL_lib:hasISBN ?isbn .
  ?book DL_lib:hasPages ?pages .
  ?book DL_lib:locatedIn ?location .
}

灵活调整规则

  • 如果需要模糊匹配书名中包含「软件工程」的书籍,不需要完全一致,可替换书名匹配行为:删除?book DL_lib:hasTitle "Software Engineering" .行,新增FILTER(CONTAINS(LCASE(?title), "software engineering"))即可,中文数据集直接替换为中文关键词。
  • 如果是要匹配分类为软件工程的书籍,不是匹配书名,可将书名匹配的条件替换为?book DL_lib:isInCategory 【软件工程分类对应的URI】 .即可。

内容的提问来源于stack exchange,提问作者Ye Kyaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:45:03