DBpedia所有编程语言详细信息所需的SPARQL查询帮助 [英] SPARQL query help needed for DBpedia all programming language details

查看:101
本文介绍了DBpedia所有编程语言详细信息所需的SPARQL查询帮助的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我正在运行的查询,以获取所有编程语言的这些详细信息。每种编程语言都会影响其他语言或受其他语言影响。因此,可能有许多语言受其影响或受其影响。现在,概率在打印时将其所有值分别打印在行中。您可以查看图片。我希望所有其影响或影响力的编程语言都在同一行中。查询如下。

This is the query I am running to get these details of All programming languages.Every programming language has some influenced other languages or influenced by other language. So there may be many languages in influenced or influenced by. Now the prob is when it is printing all the values of it prints every values separately in rows. You can look into the picture. I want all its influenced or influencedBy programming languages in a single row. Query is below.

SELECT ?pl ?abstract ?influenced ?influencedBy
    WHERE { 
        ?pl dbo:abstract ?abstract .
            ?pl dbo:influenced ?influenced .
            ?pl dbo:influencedBy ?influencedBy .
            ?pl rdf:type dbo:ProgrammingLanguage .
            FILTER (LANG(?abstract) = 'en') .
          }

我的结果的屏幕截图

您可以看到该语言有两个影响力dBy值,并且将它们打印在单独的行中。

You can see that This language has two influencedBy values and it is printing them in separate rows.

网站数据示例

推荐答案

为@ AKSW说,类似-

As @AKSW said, something like --

SELECT                                                      ?pl 
                                                            ?abstract
       ( group_concat ( ?_influenced; separator="; " )   AS ?influenced )
       ( group_concat ( ?_influencedBy; separator="; " ) AS ?influencedBy ) 
WHERE
  { ?pl  dbo:abstract      ?abstract . 
    ?pl  dbo:influenced    ?_influenced . 
    ?pl  dbo:influencedBy  ?_influencedBy . 
    ?pl  rdf:type          dbo:ProgrammingLanguage . 
    FILTER ( LANG ( ?abstract ) = 'en' ) . 
  } 
GROUP BY ?pl ?abstract



编辑添加



要获取 ?pl_label (我猜是 ?_ influenced_label ?_ influencedBy_label ),现在您说要,就需要(和/或想要)稍微调整一下...

Edit to Add

To get the ?pl_label (and I'm guessing, the ?_influenced_label and ?_influencedBy_label) you now say you want, you will need (and/or want) to tweak things a bit...

SELECT                                                            ?pl 
                                                                  ?pl_label
       ( group_concat ( DISTINCT ?_influenced_label; separator="; " )   AS ?influenced )
       ( group_concat ( DISTINCT ?_influencedBy_label; separator="; " ) AS ?influencedBy ) 
                                                                  ?abstract
WHERE
  { ?pl             rdf:type          dbo:ProgrammingLanguage .
    ?pl             dbo:abstract      ?abstract . 
                    FILTER ( LANG ( ?abstract ) = 'en' ) 
    ?pl             rdfs:label         ?pl_label
                    FILTER ( LANG ( ?pl_label ) = 'en' ) .
    ?pl             dbo:influenced    ?_influenced . 
    ?_influenced    rdfs:label         ?_influenced_label
                    FILTER ( LANG ( ?_influenced_label ) = 'en' ) .
    ?pl             dbo:influencedBy  ?_influencedBy . 
    ?_influencedBy  rdfs:label         ?_influencedBy_label
                    FILTER ( LANG ( ?_influencedBy_label ) = 'en' ) .
          } 
GROUP BY ?pl ?pl_label ?abstract

这篇关于DBpedia所有编程语言详细信息所需的SPARQL查询帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆