필자는 OntClass를 얻으려는 특정 클래스 URI를 가지고 있습니다. 모델은 정규 모델입니다.JDK가 Ontology에 캐스팅하려고 할 때 ConversionException을 던졌습니다.
필자는 올바른 진술이 모델에 있는지를 알아 내기 위해 몇 가지 코드를 작성했기 때문에 이것이 내가 왜 OntClass로 보지 못하게되는지 이해할 수없는 것처럼 보입니다.
[kps:datasource/EnsembleMS#translation_stable_id, http://www.w3.org/1999/02/22-rdf-syntax-ns#type, http://www.w3.org/2002/07/owl#Class]
[kps:datasource/EnsembleMS#translation_stable_id, http://www.w3.org/1999/02/22-rdf-syntax-ns#type, http://www.w3.org/2000/01/rdf-schema#Class]
[kps:datasource/EnsembleMS#translation_stable_id, http://www.w3.org/2000/01/rdf-schema#isDefinedBy, kps:datasource/EnsembleMS]
[kps:datasource/EnsembleMS#translation_stable_id, http://www.w3.org/2000/01/rdf-schema#label, "translation_stable_id"]
false
com.hp.hpl.jena.ontology.ConversionException: Cannot convert node kps:datasource/EnsembleMS#translation_stable_id to OntClass: it does not have rdf:type owl:Class or equivalent
at com.hp.hpl.jena.ontology.impl.OntClassImpl$1.wrap(OntClassImpl.java:81)
at com.hp.hpl.jena.enhanced.EnhNode.convertTo(EnhNode.java:155)
at com.hp.hpl.jena.enhanced.EnhNode.convertTo(EnhNode.java:34)
at com.hp.hpl.jena.enhanced.Polymorphic.asInternal(Polymorphic.java:66)
at com.hp.hpl.jena.enhanced.EnhNode.as(EnhNode.java:110)
at com.KPS.myApp.exampleMethod(myApp.java:123)
왜 예외를 던지고과 어떻게 URI tblURI와 자원에 대한 OntClass를 얻을 수 있습니다 :
Resource tblR = m.createResource(tblURI);
List<Statement> prp = tblR.listProperties().toList();
for(Statement s : prp)
System.out.println(s);
System.out.println(tblR.canAs(OntClass.class));
OntClass tbl = tblR.as(OntClass.class);
이것은 출력 (tblURI는 메소드의 매개 변수로 전달되는 문자열이다)? 어떤 포인터
제 질문의 첫 줄에 m은 정규 모델, 즉 OntModel이 아닙니다. OntClass를 얻기 위해서는 m이 OntModel 일 필요가 있습니까? 그렇다면 모델을 OntModel로 변환하는 가장 좋은 방법은 무엇입니까? – ec2011
접두사와 관련하여 m.createResource()에 접두사가 붙은 URI를 매개 변수로 제공하는 것이 좋습니까? – ec2011
편집 된 질문에서 질문에 대한 답변을보십시오. –