1

我正在尝试在 sgvizler 中创建一个动态 sparql 查询。

当前查询是这样的:

<div id="query1"
                data-sgvizler-query="
                    SELECT * 
                    WHERE {
                    [] <http://localhost:2020/resource/vocab/rankings_university> ?Name ;
                    <http://localhost:2020/resource/vocab/rankings_id> ?Id ;
                    <http://localhost:2020/resource/vocab/rankings_overall_score> ?overall_score ;
                    FILTER regex(?Name, '(here comes a variable')
                    }
                    LIMIT 10"
                data-sgvizler-chart="sText"
                data-sgvizler-loglevel="2"
            ></div>

使用 jquery 我执行以下操作:

$(function() {
$("#searchsubmit").click( function()
{
value1 = $("#uni1").val(); 
alert(value1);
sgvizler.go();
}
);
});

我得到的只是一个没有错误的空页面,而以下内容确实有效:

$(document).ready(sgvizler.go());

知道如何解决这个问题吗?先感谢您

4

2 回答 2

1

这就是我的工作方式:首先,您需要使用主干版本来支持它。 SGvizler 中继版

其次,您需要创建一个 (jquery) 函数来创建 sparql 查询:

function myQuery (containerID, name) {
            var Q = new sgvizler.query(containerID),
            query = "SELECT * " + 
                    "WHERE { " +
                    "<ontology url> ?p ?Name ; " +
                    "FILTER regex(?Name, '" +  name + "')" +
                    "} " +
                    "LIMIT 10" ;
                    Q.draw({ query: query });
        }

然后点击以下功能:

$(function() {
            $("#yourbutton").click( function()
                {
                    value1 = $("#inputfield").val(); 
                    myQuery('query1', value1);
                }
            );
        });

的HTML:

<div id="query1"
                data-sgvizler-chart="sText"
                data-sgvizler-loglevel="2"
            ></div>

通过这种方式,您可以在 sgvizler 中创建动态 sparql 查询,我向 sgvizler 的制造商学习了thanx。

这很好用。我唯一的问题是执行多个查询时的跨域错误。

于 2012-10-11T11:01:52.683 回答
1

这个问题也可以在 http://code.google.com/p/sgvizler/issues/detail?id=38中找到并回答。

这是一个新的小提琴,它从用户那里获取输入构建查询并使用 sgvizler 在 html 容器中呈现结果:http: //jsfiddle.net/sgvizler/L5ztf/。另请参阅小提琴代码中的注释。

于 2012-10-11T08:48:34.490 回答