是否有一个简单的 SPARQL Construct 查询 select 通过特定谓词值的所有主题相关语句

IS there a simple SPARQL Construct query to select all subject related statements by certain predicate value

我是一个完整的语义网初学者和RDF4J初学者。目前我有一些 RDF xml,但我无法按主题值向 select 所有相关语句编写简单的构造查询。 我有这个:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description rdf:about="http://example.org/cocktail#Mimosa">
    <rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
    <prefLabel xmlns="http://www.w3.org/2004/02/skos/core#">Mimosa</prefLabel>
    <altLabel xmlns="http://www.w3.org/2004/02/skos/core#">bla</altLabel>
    <altLabel xmlns="http://www.w3.org/2004/02/skos/core#">huuh</altLabel>
    <altLabel xmlns="http://www.w3.org/2004/02/skos/core#">owiii</altLabel>
    <broader xmlns="http://www.w3.org/2004/02/skos/core#">Wine cocktail</broader>
</rdf:Description>

<rdf:Description rdf:about="http://example.org/cocktail#White Russian">
    <rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
    <prefLabel xmlns="http://www.w3.org/2004/02/skos/core#">White Russian</prefLabel>
    <altLabel xmlns="http://www.w3.org/2004/02/skos/core#">Ruski</altLabel>
    <altLabel xmlns="http://www.w3.org/2004/02/skos/core#">kasdnjkldfan</altLabel>
    <altLabel xmlns="http://www.w3.org/2004/02/skos/core#">oasdasi</altLabel>
    <broader xmlns="http://www.w3.org/2004/02/skos/core#">Wine cocktail</broader>
</rdf:Description>

</rdf:RDF>

我想写一个简单的查询,它将 prefLabel 作为参数,select 是一整块语句(描述中的所有内容,包括描述本身)。 例如,我为 prefLabel 设置了一个值“Mimosa”,现在我希望得到这个:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description rdf:about="http://example.org/cocktail#Mimosa">
    <rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
    <prefLabel xmlns="http://www.w3.org/2004/02/skos/core#">Mimosa</prefLabel>
    <altLabel xmlns="http://www.w3.org/2004/02/skos/core#">bla</altLabel>
    <altLabel xmlns="http://www.w3.org/2004/02/skos/core#">huuh</altLabel>
    <altLabel xmlns="http://www.w3.org/2004/02/skos/core#">owiii</altLabel>
    <broader xmlns="http://www.w3.org/2004/02/skos/core#">Wine cocktail</broader>
</rdf:Description>

</rdf:RDF>

您可以按如下方式进行:

   CONSTRUCT 
   WHERE { 
         ?c a skos:Concept ;
            skos:prefLabel "Mimosa" ;
            ?property ?value .
   }

说明:WHERE 子句的第一行选择了所有 skos:Concept 类型的资源。第二行将其进一步缩小到仅包含 prefLabel 值为 "Mimosa" 的那些概念。然后最后一行获取所选概念的所有可能属性和值。

提示:不关注 RDF/XML 语法会有所帮助。将 RDF 视为图表,而不是 XML 文档。它可能会帮助您以不同的语法处理 RDF 文件,例如 Turtle(它也更符合 SPARQL 中的工作方式)。