SPARQL查询,用于检索关于一个个体的所有对象属性(在Protege中)

SPARQL查询,用于检索关于一个个体的所有对象属性(在Protege中),sparql,owl,ontology,protege,rdf-xml,Sparql,Owl,Ontology,Protege,Rdf Xml,我有20个品种的数据,如个体,以及它们的成本、能量水平、适应性水平、低过敏性,以及它们作为对象属性的目的。我想检索单个中的所有对象属性 到目前为止,我的问题是: PREFIX dog: <http://www.owl-ontologies.com/guguk_test.owl#> SELECT * WHERE { ?dog dog:hasAdaptability ?adaptability . ?dog dog:hasCost ?cost . ?dog dog

我有20个品种的数据,如
个体
,以及它们的成本、能量水平、适应性水平、低过敏性,以及它们作为
对象属性的目的。我想检索单个中的所有
对象属性

到目前为止,我的问题是:

PREFIX dog: <http://www.owl-ontologies.com/guguk_test.owl#>
SELECT *
WHERE {
    ?dog dog:hasAdaptability ?adaptability .
    ?dog dog:hasCost ?cost .
    ?dog dog:hasEnergy ?energy .
    ?dog dog:hasHypoallergenic ?hypoallergenic .
    ?dog dog:hasPurpose ?purpose .
}
试试这个

PREFIX dog: <http://www.owl-ontologies.com/guguk_test.owl#>

SELECT *
WHERE {
    VALUES ?dog { dog:Basenji } .
    ?dog dog:hasAdaptability ?adaptability .
    ?dog dog:hasCost ?cost .
    ?dog dog:hasEnergy ?energy .
    ?dog dog:hasHypoallergenic ?hypoallergenic .
    ?dog dog:hasPurpose ?purpose .
}
前缀狗:
挑选*
在哪里{
值?dog{dog:Basenji}。
?狗狗:有适应性?适应性。
狗:成本?成本。
狗:有能量?能量。
?狗狗:Hashypoallergenec?低过敏性。
狗:有目的吗。
}
试试这个

PREFIX dog: <http://www.owl-ontologies.com/guguk_test.owl#>

SELECT *
WHERE {
    VALUES ?dog { dog:Basenji } .
    ?dog dog:hasAdaptability ?adaptability .
    ?dog dog:hasCost ?cost .
    ?dog dog:hasEnergy ?energy .
    ?dog dog:hasHypoallergenic ?hypoallergenic .
    ?dog dog:hasPurpose ?purpose .
}
前缀狗:
挑选*
在哪里{
值?dog{dog:Basenji}。
?狗狗:有适应性?适应性。
狗:成本?成本。
狗:有能量?能量。
?狗狗:Hashypoallergenec?低过敏性。
狗:有目的吗。
}

请注意,您也可以将变量用于属性。即使您更改了本体,此查询也将获取所有这些内容:

PREFIX dog: <http://www.owl-ontologies.com/guguk_test.owl#>

SELECT * WHERE {
    dog:Basenji ?property ?value
}
前缀狗:
选择*WHERE{
狗:Basenji?财产?价值
}
或者,您可以使用将要检索的品种分配给变量

PREFIX dog: <http://www.owl-ontologies.com/guguk_test.owl#>

SELECT * WHERE {
    BIND (dog:Basenji AS ?dog)

    ?dog ?property ?value
}
前缀狗:
选择*WHERE{
绑定(狗:Basenji AS?狗)
狗的财产价值
}

请注意,您也可以将变量用于属性。即使您更改了本体,此查询也将获取所有这些内容:

PREFIX dog: <http://www.owl-ontologies.com/guguk_test.owl#>

SELECT * WHERE {
    dog:Basenji ?property ?value
}
前缀狗:
选择*WHERE{
狗:Basenji?财产?价值
}
或者,您可以使用将要检索的品种分配给变量

PREFIX dog: <http://www.owl-ontologies.com/guguk_test.owl#>

SELECT * WHERE {
    BIND (dog:Basenji AS ?dog)

    ?dog ?property ?value
}
前缀狗:
选择*WHERE{
绑定(狗:Basenji AS?狗)
狗的财产价值
}

我们不知道您的本体,那么我们如何知道第二个查询不匹配的原因呢?显然,要么属性
hasbrides
错误,要么没有
dog:Basenji
。。。或者其他属性中的一个没有该品种的值…你看,没有数据->不可能帮助!屏幕截图通常不会被看到。如果您以文本形式提供结果,我相信@AKSW会看到我所做的。。。。现在我看到了@Talled的答案。。。您的本体中是否根本没有属性?从你不可读的小屏幕截图上,我看不出一只狗与一个品种有什么关系……我们不知道你的本体论,那么我们怎么知道第二个查询不匹配的原因呢?显然,要么属性
hasbrides
错误,要么没有
dog:Basenji
。。。或者其他属性中的一个没有该品种的值…你看,没有数据->不可能帮助!屏幕截图通常不会被看到。如果您以文本形式提供结果,我相信@AKSW会看到我所做的。。。。现在我看到了@Talled的答案。。。您的本体中是否根本没有属性?从你看不懂的小截图上,我看不出一只狗和一个品种有什么关系。。。