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

SPARQL递归查询求助:泰式炒粉相关欧洲美食查询

SPARQL查询实现:泰式炒粉相关欧洲食物匹配

完整查询代码

SELECT DISTINCT
  ?food
  (COALESCE(CONCAT(?foodLabel, " – ", ?foodDescription), ?foodLabel) AS ?foodInfo)
  (GROUP_CONCAT(DISTINCT ?sharedIngredientLabel; SEPARATOR="; ") AS ?commonIngredients)
  (GROUP_CONCAT(DISTINCT ?europeanCuisineLabel; SEPARATOR="; ") AS ?cuisines)
WHERE {
  # 递归获取泰式炒粉的所有层级配料
  wd:Q730298 wdt:P527* ?padThaiIngredient.
  
  # 递归获取欧洲菜系及其所有子类
  wd:Q579316 wdt:P279* ?europeanCuisine.
  
  # 匹配有共同递归配料的欧洲菜系食物
  ?food wdt:P527* ?padThaiIngredient;
        wdt:P361 ?europeanCuisine.
  
  # 获取英文标签和描述
  OPTIONAL { ?food rdfs:label ?foodLabel FILTER(LANG(?foodLabel) = "en") }
  OPTIONAL { ?food schema:description ?foodDescription FILTER(LANG(?foodDescription) = "en") }
  OPTIONAL { ?padThaiIngredient rdfs:label ?sharedIngredientLabel FILTER(LANG(?sharedIngredientLabel) = "en") }
  OPTIONAL { ?europeanCuisine rdfs:label ?europeanCuisineLabel FILTER(LANG(?europeanCuisineLabel) = "en") }
}
GROUP BY ?food ?foodLabel ?foodDescription
ORDER BY ?foodLabel

关键逻辑说明

  • 递归配料获取:使用wdt:P527*实现多步递归,覆盖泰式炒粉的直接配料及配料的配料等所有层级
  • 欧洲菜系范围:通过wdt:P279*递归获取欧洲菜系的所有子类,确保包含所有分支菜系
  • 食物匹配:?food wdt:P527* ?padThaiIngredient确保食物的递归配料中存在与泰式炒粉的共同配料
  • 结果格式化:
    • 用COALESCE处理描述缺失的情况,生成统一的“标签 – 描述”格式
    • 用GROUP_CONCAT将多个共同配料、所属菜系合并为分号分隔的字符串
    • DISTINCT避免重复条目,保证结果简洁

内容的提问来源于stack exchange,提问作者Klaudyna Niedzin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:15:34