rdf – Sparql:列出史蒂文斯皮尔伯格在dbpedia.org上的电影

rdf – Sparql:列出史蒂文斯皮尔伯格在dbpedia.org上的电影,第1张

概述示例输出,使用 http://dbpedia.org/page/Steven_Spielberg作为示例 格式:film_name,screen_player(零到多,用“|”分隔),生成器(零到多,用“|”分隔) 示例输出1:Hook_(电影),Frank Marshall | Kathleen Kennedy | Gerald R. Molen,James V. Hart | Malia Sc 示例输出,使用 http://dbpedia.org/page/Steven_Spielberg作为示例

格式:film_name,screen_player(零到多,用“|”分隔),生成器(零到多,用“|”分隔)

示例输出1:Hook_(电影),Frank Marshall | Kathleen Kennedy | Gerald R. Molen,James V. Hart | Malia Scotch Marmo

输出示例2:Jaws_(电影),Richard D. Zanuck | DavID brown,Peter Benchley | Carl GottlIEb

终点
http://dbpedia.org/sparql

我的查询到目前为止,这远远不是示例1和示例2.

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-Syntax-ns#>PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>PREFIX dbpprop: <http://dbpedia.org/property/>PREFIX dbres: <http://dbpedia.org/resource/>PREFIX foaf: <http://xmlns.com/foaf/0.1/>select?filmname,(GROUP_CONCAT(?producername ; SEParaTOR = "|") AS ?producernames),(GROUP_CONCAT(?screenPlayername ; SEParaTOR = "|") AS ?screenPlayernames)where {?film dbpedia-owl:director dbres:Steven_SpIElberg .?film rdfs:label ?filmname .optional {        ?film dbpprop:screenplay ?screenPlayer .?screenPlayer foaf:name ?screenPlayername .         }optional {?film dbpedia-owl:producer ?producer .?producer foaf:name ?producername .}}order by?filmname

我的问题:基本上,我需要像上面两个例子那样展示史蒂文斯皮尔伯格的所有电影.

解决方法 尝试:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-Syntax-ns#>PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>PREFIX dbpprop: <http://dbpedia.org/property/>PREFIX dbres: <http://dbpedia.org/resource/>PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT( CONCAT ( SAMPLE(?filmname),",GROUP_CONCAT(disTINCT ?producername ; SEParaTOR = "|"),GROUP_CONCAT(disTINCT ?screenPlayername ; SEParaTOR = "|")         ) AS ?formatted )WHERE{    ?film dbpedia-owl:director dbres:Steven_SpIElberg .    ?film rdfs:label ?filmname .    optional {                ?film dbpprop:screenplay ?screenPlayer .        ?screenPlayer foaf:name ?screenPlayername .             }    optional {        ?film dbpedia-owl:producer ?producer .        ?producer foaf:name ?producername .    }    FILTER (lang(?filmname) = 'en')}GROUP BY ?film

Try the query out

大部分工作都在SELECT表达式中,它将各种元素结合在一起.

另一个变化是GROUP BY?电影,它收集元素,因此每部电影有一行.因此,我们必须使用SAMPLE(?filmname):可能有多个名称. (实际上大多数电影由于语言不同而有多个名称,我们用过滤器来抑制)

总结

以上是内存溢出为你收集整理的rdf – Sparql:列出史蒂文斯皮尔伯格在dbpedia.org上的电影全部内容,希望文章能够帮你解决rdf – Sparql:列出史蒂文斯皮尔伯格在dbpedia.org上的电影所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1074609.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存