2017-02-01 4 views
0

안녕하세요 pizzas에 대한 자문서를 작성했습니다. 올빼미 파일이있어. 파일을 RDF/XML 형식으로 저장했습니다. 이제 파일의 데이터에 대한 정보를 얻으려고합니다. 상황이 좋아 :Sparql에서 관계 요청을 요청했습니다.

"Select * where { 
?s rdfs:subClassOf owl:Thing 
} 

일을. 이제 "hasTopping"과 관련된 모든 주제와 객체를 얻고 싶습니다.

OntModel m = ModelFactory.createOntologyModel(OWL_MEM); 

    InputStream in = FileManager.get().open("pizza1.owl"); 
    m.read(in, "RDF/XML"); 
    String queryString = 
        "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " + 
        "PREFIX : <http://www.pizza.com/ontologies/pizza.owl> " + 
        "PREFIX owl: <http://www.w3.org/2002/07/owl#>" + 
        "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>" + 
        "PREFIX xml: <http://www.w3.org/XML/1998/namespace>" + 
        "SELECT * WHERE" + 
        "{" + 
        "?s :hasTopping ?o" + 
        "}"; 
    Query query = QueryFactory.create(queryString); 
    QueryExecution qexec = QueryExecutionFactory.create(query,m); 
    try { 
     ResultSet results = qexec.execSelect(); 
     while(results.hasNext()) { 
      QuerySolution soln = results.nextSolution(); 
      RDFNode name = soln.get("s"); 
      RDFNode name1 = soln.get("o"); 


      //RDFNode name2 = soln.get("s"); 
      System.out.println("Subject:" + name); 
      System.out.println("Object:" + name1); 

      //System.out.println(name2); 
     } 
    } finally { 
     qexec.close(); 
    } 

하지만 결과는 항상 비어 있습니다. 누군가 나를 도울 수 있기를 바랍니다.

친절히 알려주세요.

답변

1

:의 접두사 선언에 # 또는 과 같은 구분 기호가 없습니다 - 온톨로지에서 정의 된 방법에 따라 다릅니다.

:hasTopping을 사용하면 URI가 http://www.pizza.com/ontologies/pizza.owlhasTopping