Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 作为sparql查询输入的搜索容器_String_Variables_Search_Sparql_Sgvizler - Fatal编程技术网

String 作为sparql查询输入的搜索容器

String 作为sparql查询输入的搜索容器,string,variables,search,sparql,sgvizler,String,Variables,Search,Sparql,Sgvizler,我有一个SPARQL查询,我使用sgvizlers drucalagraph将其可视化。我想有一个搜索容器,用户可以输入一个音乐艺术家。在查询中,用户目前无法输入音乐艺术家。我想要这部分: 歌曲《猫头鹰》:作者《猫头鹰》:埃里克·克莱普顿 让用户输入一个变量而不是dbpedia:Eric_Clapton,就像现在一样。我该怎么做?以下是我目前的代码: 通过使用资源的rdfs:label作为查询的输入,可以解决此问题: SELECT distinct ?clapton ?clapton_label

我有一个SPARQL查询,我使用sgvizlers drucalagraph将其可视化。我想有一个搜索容器,用户可以输入一个音乐艺术家。在查询中,用户目前无法输入音乐艺术家。我想要这部分:

歌曲《猫头鹰》:作者《猫头鹰》:埃里克·克莱普顿

让用户输入一个变量而不是dbpedia:Eric_Clapton,就像现在一样。我该怎么做?以下是我目前的代码:


通过使用资源的rdfs:label作为查询的输入,可以解决此问题:

SELECT distinct ?clapton ?clapton_label ?artist ?artistlabel where {
{
  {?artist dbpedia-owl:associatedBand ?clapton} 
UNION 
  {?artist dbpedia-owl:associatedMusicalArtist ?clapton} 
} 
?clapton rdfs:label '<?= ucwords($_GET['query']) ?>'@en. 
?clapton rdfs:label ?clapton_label . 
?artist rdfs:label ?artistlabel . 
} limit 100

您是在问如何在SPARQL中执行查询,还是在draculagraph中实现搜索容器?如果这是前一个问题,那么我将添加类似于“song dbpedia owl:writer?writer?”的内容,而不是“song dbpedia owl:writer dbpedia:Eric_Clapton”?writer dbprop:用户在此处输入的名称。或者使用艺术家标签。如果用户输入Eric Clapton或Clapton,Eric,您将检索该资源。那是你的问题吗?非常感谢你的帮助!我点击了左边的箭头,但无意中又点击了一次。。对不起,我现在有这个代码:选择不同的?克拉普顿?克拉普顿标签?艺术家?艺术家标签在哪里{?艺术家?pred?克拉普顿{?艺术家dbpedia猫头鹰:关联乐队?克拉普顿}联盟{艺术家dbpedia猫头鹰:关联音乐艺术家?克拉普顿}{?克拉普顿rdfs:label@en.}克拉普顿rdfs:标签?克拉普顿标签?艺术家rdfs:标签?艺术家标签。}这解决了你的问题吗?如果有,那么你应该将其作为答案发布,并将其标记为已解决。在您的查询中,我认为最后两条语句是多余的?clapton rdfs:label?clapton_label?艺术家rdfs:标签?artistlabel。如果您以前将标签绑定到@en。