2012-02-15 3 views
1

Ajax를 통해 dbperdia에 쿼리를 보내려고합니다. 그것은 잘 작동하지만 검색어에 특수 문자가있는 경우 항상 오류 메시지가 나타납니다. 나는 다음과 같은 오류 메시지가 특수 문자가있는 sparql 쿼리

var IKS_QUERY = "PREFIX ontology: <http://dbpedia.org/ontology/> PREFIX property: <http://dbpedia.org/property/> PREFIX resource: <http://dbpedia.org/resource/> PREFIX position:<http://www.w3.org/2003/01/geo/wgs84_pos#> SELECT DISTINCT ?Abstract ?ThumbnailURL WHERE { resource:"+where+" ontology:abstract ?Abstract. resource:"+where+" ontology:thumbnail ?ThumbnailURL. FILTER (lang(?Abstract)=\"en\")}"; 
var IKS_URL = "http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=" + escape(IKS_QUERY) + "&format=json"; 

및 검색어 특별있는 Charactes을 가진

처럼

내 코드 보인다.

Virtuoso 37000 Error SP030: SPARQL compiler, line 3: syntax error at ',' before '_Italy' 

    SPARQL query: 
    define sql:big-data-const 0 
    #output-format:application/sparql-results+json 
    define input:default-graph-uri <http://dbpedia.org> PREFIX ontology: <http://dbpedia.org/ontology/> PREFIX property: <http://dbpedia.org/property/> PREFIX resource: <http://dbpedia.org/resource/> PREFIX position:<http://www.w3.org/2003/01/geo/wgs84_pos#> SELECT DISTINCT ?Abstract ?ThumbnailURL WHERE { resource:Venice,_Italy ontology:abstract ?Abstract. resource:wherePlaceHolder ontology:thumbnail ?ThumbnailURL. FILTER (lang(?Abstract)="en")} 

제안 사항?

미리 감사드립니다.

답변

3

생성 된 쿼리가 유효하지 않습니다.이 쿼리는 AJAX를 통해 보내는 것과 아무 관련이 없습니다. Virtuoso 오류 메시지의 쿼리에 잘못된 SPARQL 구문 인 resource:Venice,_Italy 같은 것이 있습니다.

한 가지 해결 방법은 여기에 전체 URI를 사용하는 것입니다. 따라서 현재 URI로 건물 QName을 사용하는 대신 전체 URI를 작성해야합니다. 대신 당신처럼의 QName의

<http://dbpedia.org/resource/" + where + "> 

현재 수행

resource:" + where + " 
+0

주셔서 감사합니다 응답을 많이. 다음 행이 var IKS_QUERY = "PREFIX 온톨로지"처럼 보일 때 도와 주시겠습니까? <http://dbpedia.org/ontology/> PREFIX 속성 : PREFIX 리소스 : http://dbpedia.org/resource/> 프리픽스 (Prefix) 위치 : SELECT DISTINCT? 요약? ThumbnailURL WHERE {resource : "+ where where"ontology : Abstract? 초록 리소스 : "+ where on": 온톨로지 : 축소판 그림? ThumbnailURL. FILTER (lang (? Abstract) = \ "en \")} "; – user160820

+1

'resource : "+ where +"'비트를 내가 대체 대답으로 제시 한 대체 전체 URI 형식으로 대체하십시오. – RobV