当前位置: 首页 > 知识库问答 >
问题:

删除Protege中未删除的具有OWL API的本体个体

利博远
2023-03-14

我在Protege创建了一个onology。我使用Eclipse加载了本体。我试图使用以下代码从ontology中删除一个特定的个体:

File file = new File("D:/diana/e/2012_2013/d/protege/picture8.owl");
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
OWLOntology localPicture = manager.loadOntologyFromOntologyDocument(file);
OWLReasonerFactory reasonerFactory = new StructuralReasonerFactory();
OWLReasoner reasoner = reasonerFactory.createReasoner(localPicture, config);
OWLDataFactory fac = manager.getOWLDataFactory();

//the individual that I want to delete
OWLNamedIndividual ind = fac.getOWLNamedIndividual(IRI.create("http://www.semanticweb.org/diana/ontologies/2013/0/picture4.owl#Water1"));
OWLEntityRemover remover = new OWLEntityRemover(Collections.singleton(localPicture));
remover.visit(ind);
// or ind.accept(remover);
manager.applyChanges(remover.getChanges());

你能告诉我如何才能从Eclipse中删除个人,以免出现在Protege中吗?

共有1个答案

蒲功
2023-03-14

之后保存本体了吗?

在应用更改之后,您需要调用Manager.SaveOntology(localPicture);,否则它们只对本体的内存副本有效。

 类似资料:
  • applyChange()方法总是返回“unsuccessful”,我找不到任何关于注释删除不起作用的文档。 注:在http://sourceforge.net/p/owlapi/mailman/message/28203984/here似乎起作用

  • 我的两个实体有一对一的关系 我尝试通过此方法删除我的用户实体 PasswordResetTokenRepository类,我在服务方法中调用了该类,用于删除用户,我使用了常规Hibernate方法deleteById(Long id) 但是当我尝试通过此方法删除时,出现此错误:not-null 属性引用 null 或瞬态值:kpi.diploma.ovcharenko.entity.user.Pa

  • 删除父实体时,我还想删除关联的子实体(从数据库中)。我试图在删除时使用级联,如下所示,但我一定做错了什么。 当对父实体对象调用删除时,我收到错误消息:“该实体仍在数据库的其他地方引用”。我可以确认该实体在数据库的其他地方引用的唯一地方是在下面的两个表中(如果我手动从数据库中删除子行,对父实体对象的删除调用工作正常)。在过去的9个小时里,我一直在阅读实体对象并尝试不同的东西。我做错了什么? 这是我的

  • 有两个实体具有关系@ManyToOne和@OneTomany(类别和产品)。当我启用(cascade=cascadeType.all)时,Products中的一条记录会删除一个类别,这是不好的。该实体的结果是只有删除发生在一个地方(表)而没有级联(相关)删除为另一个引用必须做什么???我使用的是spring 5.1.5(不是spring boot)谢谢! spring 5/TOMCAT 9/jac