【问题标题】:SPARQL query to get the parent class and then find relations of the parent class to a third class and find annotations of the third classSPARQL查询获取父类,然后查找父类与第三类的关系并查找第三类的注释
【发布时间】:2021-10-08 07:43:30
【问题描述】:

我是本体领域的新手,正在尝试在 Protégé 中构建一些东西。我有一个看起来像这样的示例结构:

这个想法是,如果我查询 Salami - 它应该转到其父类“Swine”并检查 Swine 是否具有与任何特定支出类别的关系的任何属性。如果有一个属性 - 在我的情况下,我有一个将猪连接到猪肉的属性“isRelatedTo”。我想从“Pork”中检索注释“spendcategory”。

<?xml version="1.0"?>
<rdf:RDF xmlns="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#"
 xml:base="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql"
 xmlns:owl="http://www.w3.org/2002/07/owl#"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:xml="http://www.w3.org/XML/1998/namespace"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
 xmlns:trial-sparql="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#">
<owl:Ontology rdf:about="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql"/>



<!-- 
///////////////////////////////////////////////////////////////////////////////////////
//
// Annotation properties
//
///////////////////////////////////////////////////////////////////////////////////////
 -->




<!-- http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLAnnotationProperty_ea40c8b6_5f54_4d6a_b186_1fdd794ccd64 -->

<owl:AnnotationProperty rdf:about="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLAnnotationProperty_ea40c8b6_5f54_4d6a_b186_1fdd794ccd64">
    <rdfs:label xml:lang="en">SpendCategory</rdfs:label>
</owl:AnnotationProperty>



<!-- 
///////////////////////////////////////////////////////////////////////////////////////
//
// Object Properties
//
///////////////////////////////////////////////////////////////////////////////////////
 -->




<!-- http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLObjectProperty_d75c5f32_6c22_44f9_9707_1a1a640aa013 -->

<owl:ObjectProperty rdf:about="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLObjectProperty_d75c5f32_6c22_44f9_9707_1a1a640aa013">
    <rdfs:label xml:lang="en">isRelatedto</rdfs:label>
</owl:ObjectProperty>



<!-- 
///////////////////////////////////////////////////////////////////////////////////////
//
// Classes
//
///////////////////////////////////////////////////////////////////////////////////////
 -->




<!-- http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLClass_41cec2ba_48bc_423e_b8dd_1c24d4db3f43 -->

<owl:Class rdf:about="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLClass_41cec2ba_48bc_423e_b8dd_1c24d4db3f43">
    <rdfs:label xml:lang="en">SpendCategory</rdfs:label>
</owl:Class>



<!-- http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLClass_41dcbdc3_93af_4f15_bd7e_0388bc117a7a -->

<owl:Class rdf:about="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLClass_41dcbdc3_93af_4f15_bd7e_0388bc117a7a">
    <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLClass_adf820bb_7f9c_4e40_b1fd_014278cb9d4c"/>
    <rdfs:label xml:lang="en">sausage</rdfs:label>
</owl:Class>



<!-- http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLClass_4b569d99_c827_42d4_a22a_65bfb5f64ffc -->

<owl:Class rdf:about="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLClass_4b569d99_c827_42d4_a22a_65bfb5f64ffc">
    <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLClass_41cec2ba_48bc_423e_b8dd_1c24d4db3f43"/>
    <OWLAnnotationProperty_ea40c8b6_5f54_4d6a_b186_1fdd794ccd64>R123400000</OWLAnnotationProperty_ea40c8b6_5f54_4d6a_b186_1fdd794ccd64>
    <rdfs:label xml:lang="en">Pork</rdfs:label>
</owl:Class>



<!-- http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLClass_5d60365c_44fa_4870_a8ed_eea94ff99728 -->

<owl:Class rdf:about="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLClass_5d60365c_44fa_4870_a8ed_eea94ff99728">
    <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLClass_adf820bb_7f9c_4e40_b1fd_014278cb9d4c"/>
    <rdfs:label xml:lang="en">salami</rdfs:label>
</owl:Class>



<!-- http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLClass_adf820bb_7f9c_4e40_b1fd_014278cb9d4c -->

<owl:Class rdf:about="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLClass_adf820bb_7f9c_4e40_b1fd_014278cb9d4c">
    <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLObjectProperty_d75c5f32_6c22_44f9_9707_1a1a640aa013"/>
            <owl:someValuesFrom rdf:resource="http://www.semanticweb.org/rdkarkhasa/ontologies/2021/9/trial-sparql#OWLClass_4b569d99_c827_42d4_a22a_65bfb5f64ffc"/>
        </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:label xml:lang="en">Swine</rdfs:label>
</owl:Class>
</rdf:RDF>

我想在 Python 中执行此操作。我尝试在查询的基础上进行构建,但无法理解如何在我的情况下获得某些东西,即获得意大利腊肠的父类 - 即。 Swine,然后搜索 Swine 将具有的属性,然后获取 Pork 的注释。如何进行此链接?任何要阅读的指针也很感激。

【问题讨论】:

    标签: python sparql owl ontology


    【解决方案1】:

    我不太清楚你想要达到什么目标,因此很难给出答案。你说“去父类”并找到任何属性。但是属性通常用于连接个人。所以你想...

    1. ...查询类/属性级别的信息?在您的情况下,这是不可能的,因为您没有详细信息,例如关于您的属性的域或范围。
    2. ...查询实际数据,即类中的个人及其与其他个人的关系?您的本体不包含任何个体,因此无需查询。

    如果你想实现(1)你需要更多细节,例如,你需要isRelatedToSwine 类的个体与Pork 类的个体联系起来的显式信息,并且你的注释应用于类Pork

    如果你想实现(2),你首先需要数据,即你的类的个体和他们之间的关系。此外,您应该重新表述您的问题。如果您想查询特定类 (Salami) 并跟踪模型中所有意大利腊肠的关系 isRelatedTo,则无需“转到父类”,因为您已经在查询特定个体通过isRelatedTo 与一些猪肉个体相关。

    我不想听起来刺耳,但我建议通过一些基础书籍来更熟悉本体的基础知识,例如"Semantic Web for the Working Ontologist: Effective Modeling for Linked Data, RDFS, and OWL"
    如果您喜欢更“亲力亲为”的东西,我推荐最新版本的official Protege tutorial

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-30
      • 2019-04-10
      • 1970-01-01
      • 2011-02-21
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 2017-01-11
      相关资源
      最近更新 更多