Javascript クエリ DBpedia 小規模アプリケーション
前の記事 では、SPARQL と SPARQL エンドポイントについて学び、DBpedia のデータをクエリするための SPARQLWrapper.js を簡単に作成しました。
この記事では、SPARQLWrapper.js を使用して DBpedia データを読み取り、表示することを試みます。
目標
英単語を入力すると、WIKIに関連する情報が返されます。
解決すべき主な問題は、どのような種類の SPARQL ステートメントで必要なものをクエリできるかということです。
まず、単純な SPARQL クエリ ステートメントを見てみましょう
PREFIX :
SELECT ?instrument
WHERE {
:andrew :playsInstrument ?instrument . 🎜>
まず、ドメイン名空間 http://aabs.purl.org/music# を定義します。
次に、次の条件を満たす楽器変数を選択します。
主語は http://aabs.purl.org/music#andrew、述語は http://aabs.purl.org/music#playsInstrument 、そしてオブジェクトは楽器です。
bif:contains()
bif:contains() は、その名前が示すように、contains() 関数が含まれるかどうかを決定する関数です。 。 これを使用して、必要なデータをクエリできます。
prefix foaf:
select unique ?url ?alma ?comment
where {
?s foaf:name ?sname .
?sname bif:contains 'China'. 🎜>?s foaf:depiction ?url .
?s dbpedia-owl:wikiPageExternalLink ?alma .
?s rdfs:comment ?comment .
this SPARQL ステートメントは、中国の名前を含むエントリをクエリし、その写真の URL、ホームページの URL、および紹介文を返すことです。
プログラム全体を書き終えましょう。
完全なコード
コードをコピー
コードは次のとおりです: /title> src=" SPARQLWrapper.js"> <script> <div class="codebody" id="code48485">return document.getElementById(id); >sparql = new SPARQLWrapper("http://dbpedia.org/sparql"), <br>results = []; <br>function getInfo(name){ <br>name = name.replace(/s/g, "_" ); <br>var command = "prefix foaf: <http://xmlns.com/foaf/0.1/> " <br> "select unique ?url ?alma ?comment " <br> " { " <br> "?s foaf:name ?sname . " <br> "?sname bif:contains '" name "'。 " <br> "?s foaf:depiction ?url . dbpedia-owl :wikiPageExternalLink ?alma . " <br> "?s rdfs:comment ?comment . " <br> "} " <br> "limit 10"; <br>sparql.setQuery(command); <br>sparql .query( function(json){ <br>showInfo((eval("(" json ")")).results.bindings); <br>}); <br>} <br>function showInfo(results){ <br> var text = ""; <br>if(results.length !== 0){ <br>for(var i = 0; i < results.length; i ){ <BR>text = "< ;img src = '" results[i].url.value "' /><br />"; <br>text = "homepage:" "<a href = '" results[i].alma .value " ' >" results[i].alma.value "</a><br>text = "<p>" results[i].comment.value "< ;/p> ;<br /><br /><br />"; <br>$("result").innerHTML = text; <br>} <br>}else{ <br>$( "result").innerHTML = "関連情報はありません。 "; <br>} <br>} <br></script>
現在は英語のクエリのみをサポートしています。
残りの問題
中国語でのクエリの方法がわかりません。知っている人がいたら教えてください。
例