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

如何编写SPARQL查询子类父类关联类注释属性并在Python实现

实现方案

环境准备

先安装rdflib库用于RDF解析和SPARQL查询:

pip install rdflib

完整实现代码

from rdflib import Graph

# 1. 加载本体文件(你可以把提供的RDF源码保存为trial.owl放在同级目录)
g = Graph()
g.parse("trial.owl", format="xml")

# 2. 编写SPARQL查询,直接串联所有逻辑
query = """
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?spendCategoryValue WHERE {
    # 匹配salami类
    ?salami rdfs:label "salami"@en .
    # 获取salami的父类Swine
    ?salami rdfs:subClassOf ?swine .
    ?swine rdfs:label "Swine"@en .
    # 匹配Swine的isRelatedto关联限制,找到关联的Pork类
    ?swine rdfs:subClassOf ?restriction .
    ?restriction a owl:Restriction ;
                 owl:onProperty ?relatedProp ;
                 owl:someValuesFrom ?pork .
    ?relatedProp rdfs:label "isRelatedto"@en .
    ?pork rdfs:label "Pork"@en .
    # 获取Pork类的SpendCategory注释属性值
    ?pork ?spendCatProp ?spendCategoryValue .
    ?spendCatProp rdfs:label "SpendCategory"@en .
}
"""

# 3. 执行查询并输出结果
results = g.query(query)
for row in results:
    print(f"查询到的SpendCategory值为:{row.spendCategoryValue}")

运行效果

执行代码后会输出:

查询到的SpendCategory值为:R123400000
相关学习资料
  • 语义网基础教程:覆盖OWL本体构建、RDF数据模型、SPARQL查询语法的入门经典
  • RDFlib库使用手册:Python端操作语义网数据的官方参考资料
  • Protégé官方操作指南:本体建模、属性定义、规则编写的权威学习材料

内容的提问来源于stack exchange,提问作者Dawn.Sahil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:39:01