查询函数Javascript查询DBpedia小应用

本文介绍如何使用SPARQLWrapper.js从DBpedia中获取包含特定字符串的词条信息,并展示了具体的SPARQL查询语句及完整的JavaScript实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间紧张,先记一笔,后续优化与完善。

    上一篇文章中,我们了解了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

 

 

文章结束给大家分享下程序员的一些笑话语录: 那是习惯决定的,一直保持一个习惯是不好的!IE6的用户不习惯多标签,但是最终肯定还是得转到多标签的浏览器。历史(软件UI)的进步(改善)不是以个人意志(习惯)为转移的!


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值