2017-05-22 17 views
0

나는 완벽하게 작동하는 명령커맨드 라인 인터페이스로 Apache Jena에서 내 SPARQL 쿼리 결과를 거북이 형식으로 만들 수 있습니까?

./bin/arq --data ./bin/dbpedia_2015-10.nt --query ./bin/166.rq 

을하고 난 내 명령 줄 인터페이스에 내 결과를 볼 수 있습니다. jena RIOT을 사용하여 file.ttl에서 결과를 얻으 려합니다. 그러나 커맨드 라인과 리눅스에 익숙하지 않기 때문에 어떻게해야할지 모르겠다. 거기에 어떤 제안이있다. dbpedia 데이터 세트를 사용하고 싶지 않습니다. 내 sparql 쿼리의 결과 만 필요합니다.

내 코드`

select DISTINCT ?instance ?domain ?range ?subClassOf # 
where { 
    ?instance rdf:type ?type; 
      rdfs:domain ?domain; 
      rdfs:range ?range; 
      rdfs:subClassOf* ?subClassOf. 
} 

` 이다 '하지만 난 때 변화가 구축 오류를'사용하면 그것은 거북이 구문에있을 것입니다

construct { DISTINCT ?instance ?domain ?range ?subClassOf.} 
where { 
    ?instance rdf:type ?type; 
      rdfs:domain ?domain; 
      rdfs:range ?range; 
      rdfs:subClassOf* ?subClassOf. 
} 
+2

RDF 형식으로 결과를 나타내려면 먼저 CONSTRUCT 쿼리를 사용해야합니다. – chrisis

답변

1

CONSTRUCT 또는 DESCRIBE 질문.

+0

이것이 내 코드입니다.'DISTINCT? instance? domain? range? subClassOf # 을 선택하십시오. 여기서 { ? instance rdf : type? type; rdfs : domain? domain; rdfs : range? 범위; rdfs : subClassOf *? subClassOf. } ' '하지만 '{DISTINCT? instance? domain? range? subClassOf}'을 구성 할 때 오류가 발생합니다. { ? instance rdf : type? type; rdfs : domain? domain; rdfs : range? 범위; rdfs : subClassOf *? subClassOf. } –

1

당신의 목표가 터틀 출력을 생성하고 터틀이 RDF 직렬화 형식이라면 RDF 트리플을 구성해야합니다. 예 :

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
CONSTRUCT { ?instance rdf:type ?type; 
      rdfs:domain ?domain ; 
      rdfs:range ?range; 
      rdfs:subClassOf ?subClassOf . 
} 
where { 
    ?instance rdf:type ?type; 
      rdfs:domain ?domain; 
      rdfs:range ?range; 
      rdfs:subClassOf* ?subClassOf. 
} 
+0

대답은 구문 적으로 정확하지만 의미 적으로는 내 관점에서 이해가되지 않습니다. 쿼리의 목표는 무엇입니까? 도메인 및 범위 명령문 때문에 등록 정보가 필요합니까? 그렇다면'subClassOf' 트리플 패턴은 어떨까요? OWL 2를 사용하고 있습니까? 즉, 속성을 클래스로 사용하고 있습니까? 또는'rdfs : subPropertyOf'가 더 있어야합니까? – AKSW