2017-10-23 2 views
-1

SGvizler로 테이블을 만들려고합니다. sgvizler를 사용할 때 구문 분석 오류가 발생했습니다.

<script> 
    var boatValue; 
    $("#res").click(function() { 
    var boat = document.getElementById('boat'); 
    if (boat.checked) 
    { 
    boatValue = boat.value; 
    } 
    else 
    { 
    boatValue = "speedboat"; 
    } 
    console.log(boatValue) 

    $("#query").click(function() 
    {var Q = new sgvizler.Query(); 
    Q.query(`SELECT ?boat WHERE { ?boat s:BoatorNoat s:`+boatValue+` .}`)            
    .endpointURL("http://localhost/query/")             
    .endpointOutputFormat("json")             
    .chartFunction("google.visualization.Table") 
    .draw("myElementID"); 
</script> 

내가 어쩌면의 var에 boatValue 몇 번을 반복 :

3.084s: loadGVizScript: loading packages: sgvizler.js:952 
3.087s: loadGVizScript: loading packages: table sgvizler.js:952 
4.742s: Error: A 'parsererror' occurred in Query.saveQueryResults() sgvizler.js:952 
5.049s: loadGVizScript: packages LOADED: sgvizler.js:952 
5.052s: loadGVizScript: packages LOADED: table 

내가 사용하는 코드는 다음과 같다 : 나는 테이블을 만들려고 할 때, 나는 다음과 같은 오류가 발생합니다 브라우저의 메모리/사용에 문제가 있지만 불행히도 나는 그것에 익숙하지 않습니다. 바라건대, 누군가이 문제를 해결하는 방법을 말해 줄 수 있습니다.

건배!

답변

0
내가 찾을 수있는 문서를 바탕으로, 당신의 구문이 올바르지 여기 보이는

:

Q.query("SELECT ?boat WHERE { ?boat s:BoatorNoat s:" + boatValue + ".}")

추가 된 몇 가지 코드를 :

Q.query(`SELECT ?boat WHERE { ?boat s:BoatorNoat s:`+boatValue+` .}`)

난 당신과 같이 큰 따옴표를 사용할 필요가 있다고 생각 아래에 도움이 될 것 같아요. 당신이 가진 모든 클릭 처리기가없는 HTML이 게시되지가 이후 어떤 확실하지 :

$("#query").click(function() { 
 
    var boat = document.getElementById('boat'); 
 
    if (boat.checked) { 
 
    boatValue = boat.value; 
 
    } else { 
 
    boatValue = "speedboat"; 
 
    } 
 

 
    var query = "SELECT ?boat WHERE { ?boat s:BoatorNoat s:" + 
 
    boatValue + ".}"; 
 

 
    console.log(query); 
 
    /*Plug into your code below*/ 
 
    /*var Q = new sgvizler.Query(); 
 
    Q.query(query) 
 
    .endpointURL("http://localhost/query/") 
 
    .endpointOutputFormat("json") 
 
    .chartFunction("google.visualization.Table") 
 
    .draw("myElementID");*/ 
 

 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" id="boat" value="someOtherKindOfBoat"> 
 
<input type="button" id="query" value="See Query">

+0

아쉽게도이 방법으로 문제가 해결되지 않습니다. + boatValue +라는 단어가 이제 쿼리에 있으며 더 이상 변수 boatValue에 연결되지 않습니다. – Max

+0

죄송합니다. 나는 나의 대답을 업데이트했다. – tommyO

+0

문제는 콘솔에서 나와 작동하지만, sgvizler를 사용하여 테이블을 만들려고 할 때 발생하는 문제가 아닙니다. 위에서 언급 한 오류가 계속 발생합니다. – Max

0

접두사 "의"정의되어 있지 않습니다. 이것은 SPARQL의 구문 분석 오류입니다.

+0

필자는 localhost (stardog) 데이터베이스와 html 파일에이 파일을 정의 했으므로 문제가 아닌 것으로 생각합니다. – Max

+0

또한이 응답을 얻었다 : {메시지 : "접두사 '의'에 대한 여러 접두사 선언"코드 "MalformedQuery"} 코드 : "MalformedQuery" 메시지 : – Max

+0

"접두사 '의'에 대한 여러 접두사 선언" 하나의 접두어를 제거하여 문제를 해결했지만 주요 문제는 여전히 존재합니다. – Max

관련 문제