私は Jena を使用して OWL モデルの自動インスタンス化に取り組んでいます。すべての個人が一意の識別子を必要とするため。
id
この Class でインスタンス化する次の個体の新しいを生成するために、特定の OWL クラスの個体の数をどのように知ることができますか?
メソッドを使用して、次の Jena Java コードを試してみましたがlistIndividuals
、ここにありますが、機能していません。
import com.hp.hpl.jena.ontology.*;
import com.hp.hpl.jena.model.*;
import com.hp.hpl.jena.util.iterator.ExtendedIterator;
public static int individualSize(Resource res){
int size = 0;
ExtendedIterator<Individual> individuals = domainModel.listIndividuals(res);
while (individuals.next() != null){ size++; }
return size;
}
static String xmlbase = "http://www.semantic.org/ontologies/exemple.owl#";
OntModel domainModel = ModelFactory.createOntologyModel(ProfileRegistry.OWL_DL_LANG);
domainModel.read((new FileInputStream(ontoInPath)), null);
int nextId = individualSize(domainModel.getOntClass(xmlbase+"Event"));
System.out.print(nextId);
エラーは次のとおりです。
Exception in thread "main" java.util.NoSuchElementException
at com.hp.hpl.jena.util.iterator.NiceIterator.ensureHasNext(NiceIterator.java:37)
at com.hp.hpl.jena.util.iterator.UniqueExtendedIterator.next(UniqueExtendedIterator.java:77)
at soctrace.Intology.individualSize(Intology.java:225)
at soctrace.Intology.manageOntologies(Intology.java:124)
at soctrace.Intology.main(Intology.java:65)
Jena API
これをより簡単に行うのに役立つ方法はありますか?
いいえの場合!コードを修正するにはどうすればよいですか。
返信ありがとうございます。