如何修改Zefix数据库SPARQL查询仅获取CompanyUID?
修改SPARQL查询以仅返回CompanyUID记录
要实现仅返回包含CompanyUID的单条记录,只需在查询中添加针对identifier_name的过滤条件,精准匹配目标标识符类型即可。修改后的查询如下:
PREFIX schema: <http://schema.org/> PREFIX admin: <https://schema.ld.admin.ch/> SELECT ?company_uri ?name ?company_type ?municipality ?adresse ?locality ?identifier_value ?identifier_name WHERE { ?company_uri a admin:ZefixOrganisation ; schema:name ?name ; admin:municipality ?muni_id . ?muni_id schema:name ?municipality . ?company_uri schema:additionalType ?type_id . ?type_id schema:name ?company_type . ?company_uri schema:address ?adr. ?company_uri schema:identifier ?identifier . ?identifier schema:value ?identifier_value . ?identifier schema:name ?identifier_name . ?adr schema:streetAddress ?adresse ; schema:addressLocality ?locality . filter langMatches(lang(?company_type), "de") . # 新增过滤条件,仅保留CompanyUID类型的标识符 FILTER(?identifier_name = "CompanyUID") } LIMIT 10
修改说明
- 在原查询的过滤部分新增
FILTER(?identifier_name = "CompanyUID"),直接筛选出名称为CompanyUID的标识符条目,确保每个公司仅返回对应该标识符的单条记录; - 若某公司不存在CompanyUID条目,该公司将不会出现在查询结果中,满足“若无则返回空”的需求。
内容的提问来源于stack exchange,提问作者Maru
相关产品推荐
相关产品推荐

