DBpedia 所有编程语言详细信息所需的 SPARQL 查询帮助
SPARQL query help needed for DBpedia all programming language details
这是我的查询 运行 获取所有编程的这些详细信息 languages.Every 编程语言对其他语言有一些影响或受其他语言的影响。所以可能有很多语言受到影响或受其影响。现在的问题是当它打印它的所有值时,它会在行中单独打印每个值。你可以看看图片。我希望所有受其影响或影响的编程语言都在一行中。查询如下。
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') .
}
我的结果的屏幕截图
您可以看到 This language 有两个 influencedBy 值,并且将它们打印在不同的行中。
网站数据示例
正如@AKSW 所说,类似 --
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
) 你现在说你想要,你将需要(and/or 想要)稍微调整一下...
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
这是我的查询 运行 获取所有编程的这些详细信息 languages.Every 编程语言对其他语言有一些影响或受其他语言的影响。所以可能有很多语言受到影响或受其影响。现在的问题是当它打印它的所有值时,它会在行中单独打印每个值。你可以看看图片。我希望所有受其影响或影响的编程语言都在一行中。查询如下。
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') .
}
我的结果的屏幕截图
您可以看到 This language 有两个 influencedBy 值,并且将它们打印在不同的行中。
网站数据示例
正如@AKSW 所说,类似 --
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
) 你现在说你想要,你将需要(and/or 想要)稍微调整一下...
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