我正在使用 Jena 自动实例化 OWL 模型。因为每个人都需要一个唯一的标识符。
我怎么知道给定 OWL 类的个体数量,以便id
为下一个个体在这个类中实例化生成一个新的?
我已经尝试使用以下 Jena Java 代码,方法listIndividuals
是 Here It is,但它不起作用。
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
可以帮助我更轻松地做到这一点?
如果不 !我怎么能更正我的代码。
感谢您的回复!