2014-10-12 57 views
0

我有一個SPARQL查詢,使用sgvizlers drucalagraph可視化。我想要一個搜索容器,用戶可以輸入音樂藝術家。在查詢中,此時用戶無法輸入音樂藝術家。我想要這部分:搜索容器作爲sparql查詢的輸入

?song dbpedia-owl:writer dbpedia:Eric_Clapton。

有一個由用戶輸入的變量,而不是dbpedia:Eric_Clapton就像現在一樣。我該怎麼做呢?這是我到目前爲止的代碼:資源的標籤作爲輸入查詢:

<div id="ex" 
    data-sgvizler-endpoint="http://live.dbpedia.org/sparql" 
    data-sgvizler-query=" 

     SELECT ?song_label ?artist_label ?writer ?producer 
WHERE { 
     ?song dbpedia-owl:writer dbpedia:Eric_Clapton. ?song rdfs:label ?song_label . 
    OPTIONAL {{?song dbpedia-owl:artist ?artist} UNION {?song dbpedia-owl:musicalArtist ?artist.}} 
    {?song dbpedia-owl:writer ?writer. } 
    {?song dbpedia-owl:producer ?producer. } 
    {?artist rdfs:label ?artist_label .} 

    #FILTER (?writer&&?artist!=dbpedia:Eric_Clapton) 

    } limit 100" 
    data-sgvizler-chart="sgvizler.visualization.DraculaGraph" 
    // data-sgvizler-chart-options="maxnodesize: 15; minnodesize: 2" 
    style="width:100%; height:100%; border:1px solid black; display: inline-block;"> 

</div> 
+0

你問怎麼辦查詢的SPARQL,或如何在draculagraph中實現搜索容器?如果它是前一個問題,那麼不用'歌曲dbpedia-owl:作家dbpedia:Eric_Clapton'。我會添加一些東西,如'歌曲dbpedia-owl:作家?作家。 ?作家dbprop:姓名「用戶在這裏輸入的內容」。 (或使用藝術家標籤)。這種方式是用戶輸入「Eric Clapton」或「Clapton,Eric」,您將檢索該資源。是你的問題嗎? – 2014-10-14 18:21:28

+0

thnx很多爲您的幫助!我點擊了左邊的箭頭,但又一次點擊了它。對不起。 – michAmir 2014-10-16 14:13:39

+0

我現在有這樣的代碼: – michAmir 2014-10-16 14:14:01

回答

0

問題是由使用RDFS解決

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