SPARQL-从skos中选择:类别-大师37000

SPARQL-从skos中选择:类别-大师37000,sparql,semantic-web,dbpedia,virtuoso,linked-data,Sparql,Semantic Web,Dbpedia,Virtuoso,Linked Data,我对SPARQL有问题。我想从类别中选择一些内容。例如,主题。我是这样问的 我有37000个错误大师。我不明白为什么 另外,这本书是SPARQL初学者的好书吗?学习SPARQL,第二版 使用SPARQL 1.1查询和更新?您至少有一个语法错误:第二个三元组中的第二个冒号(:) 语义上。。。我真的不知道dbpedia中的类或谓词。。。但是skos:Concept可以既是类型又是谓词吗 我写了一个有效的查询,返回“美国朋克摇滚吉他手”类别的10名成员 我把这一点放在一起,是为了让自己熟悉 前缀dbp

我对SPARQL有问题。我想从类别中选择一些内容。例如,主题。我是这样问的

我有37000个错误大师。我不明白为什么

另外,这本书是SPARQL初学者的好书吗?学习SPARQL,第二版
使用SPARQL 1.1查询和更新?

您至少有一个语法错误:第二个三元组中的第二个冒号(:)

语义上。。。我真的不知道dbpedia中的类或谓词。。。但是skos:Concept可以既是类型又是谓词吗

我写了一个有效的查询,返回“美国朋克摇滚吉他手”类别的10名成员

我把这一点放在一起,是为了让自己熟悉

前缀dbpcat:
选择“主题”类别
哪里
{价值观?类别{dbpcat:美国朋克摇滚吉他手}。
?主题dct:主题?类别}
限制10

您至少有一个语法错误:第二个三元组中的第二个冒号(:)

语义上。。。我真的不知道dbpedia中的类或谓词。。。但是skos:Concept可以既是类型又是谓词吗

我写了一个有效的查询,返回“美国朋克摇滚吉他手”类别的10名成员

我把这一点放在一起,是为了让自己熟悉

前缀dbpcat:
选择“主题”类别
哪里
{价值观?类别{dbpcat:美国朋克摇滚吉他手}。
?主题dct:主题?类别}
限制10

就37000错误而言,您的错误如下:

  • 你在第2行的skos:Concept之后有了。你还漏掉了“美国朋克摇滚吉他手”的前缀

  • 美国朋克摇滚吉他手应该是dbpcat:美国朋克摇滚吉他手。虽然这将给您一个空结果,但语法正确的版本或查询是:

    前缀dbpcat:
    选择?类别?主题,在哪里
    {
    ?a类SKO:概念。
    ?SKO类别:概念dbp:美国朋克摇滚吉他手。
    ?dct类别:主题?主题。
    }限制1000
    
    由于以下原因,这将返回一个空集:

  • askos:Concept是一个类,而不是属性。在{主语-谓语-宾语}方面,您只会在适当的SPARQL查询[1]中将skos:概念视为主语和/或宾语。区分类和属性的一种简单方法是,类应该以大写字母开头(例如:skos:Concept),属性(谓词)应该以小写字母开头(例如:rdf:type

    bdbpcat:美国朋克摇滚吉他手属于“skos:概念”类型。如果查看该实体的DBPedia页面(?subject),您将在“rdf:type”行中看到它。进一步看,你会发现这个概念是各种其他实体的dct:subject[2]

    除了@Mark Miller的查询外,该查询还将提供以下结果:

    prefix dbpcat: <http://dbpedia.org/resource/Category:>
    
        SELECT  ?subject ?category
        WHERE
          { ?subject dct:subject ?category.
            ?category a skos:Concept.
            filter(?category = dbpcat:American_punk_rock_guitarists).
    
          }
        LIMIT   10
    
    前缀dbpcat:
    选择“主题”类别
    哪里
    {?主题dct:主题?类别。
    ?a类SKO:概念。
    过滤器(?category=dbpcat:美国朋克摇滚吉他手)。
    }
    限制10
    
    这里不需要skos:Concept,只是作为一个示例,说明如果您正在寻找“all?category of type-skos:Concept”之类的东西,它将如何使用

    链接:


  • 就演奏家37000的错误而言,您的错误如下:

  • 你在第2行的skos:Concept之后有了。你还漏掉了“美国朋克摇滚吉他手”的前缀

  • 美国朋克摇滚吉他手应该是dbpcat:美国朋克摇滚吉他手。虽然这将给您一个空结果,但语法正确的版本或查询是:

    前缀dbpcat:
    选择?类别?主题,在哪里
    {
    ?a类SKO:概念。
    ?SKO类别:概念dbp:美国朋克摇滚吉他手。
    ?dct类别:主题?主题。
    }限制1000
    
    由于以下原因,这将返回一个空集:

  • askos:Concept是一个类,而不是属性。在{主语-谓语-宾语}方面,您只会在适当的SPARQL查询[1]中将skos:概念视为主语和/或宾语。区分类和属性的一种简单方法是,类应该以大写字母开头(例如:skos:Concept),属性(谓词)应该以小写字母开头(例如:rdf:type

    bdbpcat:美国朋克摇滚吉他手属于“skos:概念”类型。如果查看该实体的DBPedia页面(?subject),您将在“rdf:type”行中看到它。进一步看,你会发现这个概念是各种其他实体的dct:subject[2]

    除了@Mark Miller的查询外,该查询还将提供以下结果:

    prefix dbpcat: <http://dbpedia.org/resource/Category:>
    
        SELECT  ?subject ?category
        WHERE
          { ?subject dct:subject ?category.
            ?category a skos:Concept.
            filter(?category = dbpcat:American_punk_rock_guitarists).
    
          }
        LIMIT   10
    
    前缀dbpcat:
    选择“主题”类别
    哪里
    {?主题dct:主题?类别。
    ?a类SKO:概念。
    过滤器(?category=dbpcat:美国朋克摇滚吉他手)。
    }
    限制10
    
    这里不需要skos:Concept,只是作为一个示例,说明如果您正在寻找“all?category of type-skos:Concept”之类的东西,它将如何使用

    链接:


  • 第二种三重模式显然是错误的。请检查那里的语法。然后,你想“从类别中选择一些东西,例如主题”-这完全让人困惑,你把事情搞混了:属于一个类别的东西作为类别的主题。请参阅下面的答案,这是正确的方法。为了将来参考,通常会显示完整的错误文本
    prefix dbpcat: <http://dbpedia.org/resource/Category:>
    
    SELECT ?category ?subject WHERE
        {
        ?category a skos:Concept .
        ?category skos:Concept dbp:catAmerican_punk_rock_guitarists.
        ?category dct:subject ?subject .
        } LIMIT 1000
    
    prefix dbpcat: <http://dbpedia.org/resource/Category:>
    
        SELECT  ?subject ?category
        WHERE
          { ?subject dct:subject ?category.
            ?category a skos:Concept.
            filter(?category = dbpcat:American_punk_rock_guitarists).
    
          }
        LIMIT   10