亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Javascript查詢DBpedia小應用

系統(tǒng) 1972 0

上一篇文章 中,我們了解了SPARQL、SPARQL Endpoint,并簡單做了一個SPARQLWrapper.js,來從DBpedia中查詢了一些數據。

本文則嘗試利用SPARQLWrapper.js來讀取DBpedia的數據,并顯示出來。

?

目標

通過輸入一個英文單詞,然后返回WIKI中相關的信息。

那么主要要解決的問題就是怎樣的SPARQL語句能夠查詢到我們需要的東西。

?

先看一段簡單的SPARQL查詢語句

      PREFIX : 
      
        <
      
      http:
      
        //
      
      aabs.purl.org
      
        /
      
      music#
      
        >
      
      
        SELECT
      
      
         ?instrument

      
      
        WHERE
      
      
         {
 :andrew :playsInstrument ?instrument .
}
      
    

首先定義一個域名空間http://aabs.purl.org/music#。

然后選擇這樣子的instrument變量,他滿足:

主語是http://aabs.purl.org/music#andrew,謂語是http://aabs.purl.org/music#playsInstrument,賓語是該instrument。

?

bif:contains()

bif:contains()是contains()函數的變種函數,顧名思義是判斷是否包含的函數。

利用這個我們能查詢到我們需要的數據了。

      prefix foaf: 
      
        <
      
      http:
      
        //
      
      xmlns.com
      
        /
      
      foaf
      
        /
      
      
        0.1
      
      
        />
      
      
        select
      
      
        distinct
      
      
         ?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 . 
} 
limit 
      
      
        10
      
    

這段SPARQL語句是查詢包含China的名字的詞條,然后將其圖片的url、homepage的url,以及簡介返回回來。

下面讓我們把整個程序寫完。

?

完整代碼

      
        <
      
      
        html
      
      
        >
      
      
        <
      
      
        head
      
      
        >
      
      
        <
      
      
        meta 
      
      
        charset
      
      
        ="utf-8"
      
      
        >
      
      
        <
      
      
        title
      
      
        >
      
      SPARQL DEMO
      
        </
      
      
        title
      
      
        >
      
      
        <
      
      
        script 
      
      
        src
      
      
        ="SPARQLWrapper.js"
      
      
        ></
      
      
        script
      
      
        >
      
      
        <
      
      
        script
      
      
        >
      
      
        var
      
      
         $ 
      
      
        =
      
      
        function
      
      
        (id){
            
      
      
        return
      
      
         document.getElementById(id);
        },
        sparql 
      
      
        =
      
      
        new
      
      
         SPARQLWrapper(
      
      
        "
      
      
        http://dbpedia.org/sparql
      
      
        "
      
      
        ),
        results 
      
      
        =
      
      
         [];
    
    
      
      
        function
      
      
         getInfo(name){
        name 
      
      
        =
      
      
         name.replace(
      
      
        /
      
      
        \s
      
      
        /
      
      
        g, 
      
      
        "
      
      
        _
      
      
        "
      
      
        );
        
      
      
        var
      
      
         command 
      
      
        =
      
      
        "
      
      
        prefix foaf: <http://xmlns.com/foaf/0.1/> 
      
      
        "
      
      
        +
      
      
        "
      
      
        select distinct ?url ?alma ?comment 
      
      
        "
      
      
        +
      
      
        "
      
      
        where { 
      
      
        "
      
      
        +
      
      
        "
      
      
        ?s foaf:name ?sname . 
      
      
        "
      
      
        +
      
      
        "
      
      
        ?sname bif:contains '
      
      
        "
      
      
        +
      
      
         name 
      
      
        +
      
      
        "
      
      
        '. 
      
      
        "
      
      
        +
      
      
        "
      
      
        ?s foaf:depiction ?url . 
      
      
        "
      
      
        +
      
      
        "
      
      
        ?s dbpedia-owl:wikiPageExternalLink ?alma . 
      
      
        "
      
      
        +
      
      
        "
      
      
        ?s rdfs:comment ?comment . 
      
      
        "
      
      
        +
      
      
        "
      
      
        } 
      
      
        "
      
      
        +
      
      
        "
      
      
        limit 10
      
      
        "
      
      
        ;
            sparql.setQuery(command);
            sparql.query(
      
      
        function
      
      
        (json){
                showInfo((eval(
      
      
        "
      
      
        (
      
      
        "
      
      
        +
      
      
         json 
      
      
        +
      
      
        "
      
      
        )
      
      
        "
      
      
        )).results.bindings);
            });
    }
    
    
      
      
        function
      
      
         showInfo(results){
        
      
      
        var
      
      
         text 
      
      
        =
      
      
        ""
      
      
        ;
        
      
      
        if
      
      
        (results.length 
      
      
        !==
      
      
        0
      
      
        ){
            
      
      
        for
      
      
        (
      
      
        var
      
      
         i 
      
      
        =
      
      
        0
      
      
        ; i 
      
      
        <
      
      
         results.length; i
      
      
        ++
      
      
        ){
                text 
      
      
        +=
      
      
        "
      
      
        <img src = '
      
      
        "
      
      
        +
      
      
         results[i].url.value 
      
      
        +
      
      
        "
      
      
        ' /><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 />
      
      
        "
      
      
        ;
                $(
      
      
        "
      
      
        result
      
      
        "
      
      
        ).innerHTML 
      
      
        =
      
      
         text;
            }
        }
      
      
        else
      
      
        {
            $(
      
      
        "
      
      
        result
      
      
        "
      
      
        ).innerHTML 
      
      
        =
      
      
        "
      
      
        沒有任何相關信息!
      
      
        "
      
      
        ;
        }
        
    }
                    
    
      
      
        </
      
      
        script
      
      
        >
      
      
        </
      
      
        head
      
      
        >
      
      
        <
      
      
        body
      
      
        >
      
      
        <
      
      
        p
      
      
        >
      
      目前只支持英文查詢。
      
        </
      
      
        p
      
      
        >
      
      
        <
      
      
        input 
      
      
        type
      
      
        ="text"
      
      
         id
      
      
        ="name"
      
      
        />
      
      
        <
      
      
        input 
      
      
        type
      
      
        ="button"
      
      
         onclick
      
      
        ="getInfo(document.getElementById('name').value);"
      
      
         value
      
      
        ="Wiki Search"
      
      
        />
      
      
        <
      
      
        div 
      
      
        id
      
      
        ="result"
      
      
        ></
      
      
        p
      
      
        >
      
      
        </
      
      
        body
      
      
        >
      
      
        </
      
      
        html
      
      
        >
      
    

?

遺留問題

不太清楚中文怎么查詢,如有知道的朋友,麻煩告知一下,謝謝。

?

例子

http://pan.baidu.com/share/link?shareid=293219&uk=855675565

?

?

Javascript查詢DBpedia小應用


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲高清免费 | 97视频在线观看视频在线精品 | 欧洲在线免费视频 | 亚洲精品99久久一区二区三区 | 一区二区日韩欧美 | 色精品一区二区三区 | 赛车总动员2在线观看 | 综合色区| 九九热视频这里只有精品 | 日本三级做a全过程在线观看 | 国产精品tv | 国产精品日韩一区二区三区 | 国产成人a毛片 | 四虎国产精品永久地址99 | 亚洲国产www | 国产精品久久久久久久久齐齐 | 国产伦精品一区二区三区无广告 | 97se狠狠狠狠狼亚洲综合网 | 国产精品大全国产精品 | 爱神马午夜 | 国产你懂的| 欧美亚洲h在线一区二区 | 综合亚洲色图 | 欧美香蕉网 | 色婷婷精品大全在线视频 | 国产伦精品一区三区视频 | 亚洲三级欧美 | 久久精品国产精品亚洲毛片 | 国产亚洲免费观看 | 国产日韩精品视频一区二区三区 | a级亚洲片精品久久久久久久 | 久草男人天堂 | 免费精品国产自产拍在 | 真实国产乱弄免费视频 | 亚洲精品视频在线看 | 国产爱久久久精品 | 福利视频精品 | 日日艹夜夜艹 | 日韩最新视频一区二区三 | 国产精品福利在线观看免费不卡 | 人人狠狠综合久久亚洲88 |