2014-07-10 2 views
0

내가 SPARQL에 안돼서, SPARQL QUERY RDF FILE

나는 다음과 같은 구조의 RDF 있습니다

<rdf:RDF 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
    xmlns:ns2="http://fia.upm.es/ontologies/opendata/smartod/smartod.owl#" 
    xmlns:ns3="http://www.opengis.net/ont/geosparql#" > 


<rdf:Description rdf:about="http://fia.upm.es/parcelas/1"> 
<ns2:CONV_INT rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</ns2:CONV_INT> 
<ns3:defaultGeometry rdf:resource="http://fia.upm.es/parcelas/Geometry/d9927de3ace3435ea192ea000b487e8a1db6c9c5" /> 
<ns2:CCAA_INENP rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</ns2:CCAA_INENP> 
<ns2:DN_OID rdf:datatype="http://www.w3.org/2001/XMLSchema#float">1.10088e+09</ns2:DN_OID> 
<ns2:INENP rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</ns2:INENP> 
<ns2:MAB_CODE rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</ns2:MAB_CODE> 
<ns2:Shape_Area rdf:datatype="http://www.w3.org/2001/XMLSchema#float">101.359</ns2:Shape_Area> 
<ns2:Shape_Leng rdf:datatype="http://www.w3.org/2001/XMLSchema#float">44.8041</ns2:Shape_Leng> 
<ns3:hasGeometry rdf:resource="http://fia.upm.es/parcelas/Geometry/d4fcb8dd21917066d9ff3945e12c8fab2c62c3af" /> 

... ....

<rdf:Description rdf:about="http://fia.upm.es/parcelas/Geometry/d4fcb8dd21917066d9ff3945e12c8fab2c62c3af"> 
    <rdf:type rdf:resource="http://www.opengis.net/ont/sf#Point" /> 
    <ns3:asWKT rdf:datatype="http://www.opengis.net/ont/sf#wktLiteral">POINT (101456.13051790577 4685032.686725916)</ns3:asWKT> 
</rdf:Description> 

....

다음 쿼리를 실행하려고 시도했지만 아무 것도 반환하지 않습니다. 제발 도와 줄 수 있습니까?

쿼리 : 너무 많은

PREFIX ns2: <http://fia.upm.es/ontologies/opendata/smartod/smartod.owl#> 
PREFIX ns3: <http://www.opengis.net/ont/geosparql#> 

SELECT ?geometry_point ?geometry_uri ?uri 
WHERE { 

?uri a <http://fia.upm.es/parcelas/10> . 
?uri ns3:hasGeometry ?geometry_uri . 
?geometry_uri ns3:asWKT ?geometry_point 
} 

감사

+0

http://fia.upm.es/parcelas/10 -> http://fia.upm.es/parcelas/1 – enridaga

+0

이 변경 사항과 함께 은 유형이 아닌 명령문의 대상입니다. SPARQL의 "a"키워드는 rdf : type의 줄임말입니다. – enridaga

답변

2

쿼리가 잘못,에 해당하는

?uri a <http://fia.upm.es/parcelas/10> . 

을 제거하려고 :

?uri rdf:type <http://fia.upm.es/parcelas/10> . 

이제 경우 너는 그 dat을 본다. A :

  • 이 더 RDF는 없다 : 유형 문
  • 자원 http://fia.upm.es/parcelas/1 (또는/10? 오타가?) 실제로 문의 내용이 아니라 유형입니다.

실제로 동작하는 쿼리는 다음과 같습니다

PREFIX ns2: <http://fia.upm.es/ontologies/opendata/smartod/smartod.owl#> 
PREFIX ns3: <http://www.opengis.net/ont/geosparql#> 

SELECT ?geometry_point ?geometry_uri 
WHERE { 
    <http://fia.upm.es/parcelas/10> ns3:hasGeometry ?geometry_uri . 
    ?geometry_uri ns3:asWKT ?geometry_point 
} 

당신이 달성하려는 작업에 따라 달라집니다.