【问题标题】:Manipulate owl file using Protege-OWL API.(delete classes,delete properties)使用 Protege-OWL API 操作 owl 文件。(删除类,删除属性)
【发布时间】:2014-05-14 01:54:14
【问题描述】:

我需要使用 Protege-Owl API 来操作 owl 文件。要知道,创建类和属性并不太难。但是我不知道如何删除一个类或属性。如果我们把owl文件当作一个图,删除一个类意味着删除一个节点及其直接边。对于例子:

<owl:unionOf rdf:parseType="Collection">
                <rdf:Description rdf:about="&data;DataBundle"/>
                <rdf:Description rdf:about="&data;DataItem"/>
</owl:unionOf>

如果我想删除类DataItem,

  1. 我应该如何使用 Protege-OWL API 做到这一点? RDFResource.delete() 能做到这一点吗?我试过了,但我不能做到这一点,可能有什么问题。

  2. 删除 DataItem 后会得到什么?

  3. 如果DataItem是属性的域,删除后会得到什么?

希望能得到你的答复。

编辑:Protege OWL API 是 here 描述的 api,而不是 here 描述的 OWL API。

【问题讨论】:

  • 我认为您至少需要展示一些代码。您提到您使用过 RDFResource#delete,但它不起作用。你是如何使用它的?有什么不好的地方?
  • 感谢您的回答!今天我尝试修复我的代码,现在它运行良好。
  • 很高兴您找到了解决问题的方法。您可以在答案中的代码中添加一些 cmets 以向人们展示有什么区别吗?另外,请accept your answer 让其他用户知道您找到了解决方案。

标签: class owl protege object-property


【解决方案1】:

@Joshua Taylor,谢谢您的回答!我是新用户,两次发布此问题时犯了一个错误。对此感到抱歉。起初我在代码中犯了一些错误,今天我尝试修复它.以下代码可以删除一个类或属性。

 import java.io.FileInputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
 import java.net.URI;
 import edu.stanford.smi.protegex.owl.ProtegeOWL;
 import edu.stanford.smi.protegex.owl.jena.JenaOWLModel;
 import edu.stanford.smi.protegex.owl.model.RDFResource;

 public class DeleteClass {

public static void main(String[] args) throws Exception {
    // TODO Auto-generated method stub

    //get model from an owl file
    String filePath = "D:\\ss.owl";
    FileInputStream inFile= new FileInputStream(filePath);
    Reader in = new InputStreamReader(inFile,"UTF-8");
    JenaOWLModel jenaOwlModel = ProtegeOWL.createJenaOWLModelFromReader(in);
    //get an class from the model
    RDFResource oneClass=jenaOwlModel.getRDFResource("Person");
    RDFResource oneDataProperty=jenaOwlModel.getRDFResource("age");
    //delete the resource
    oneClass.delete();
    oneDataProperty.delete();
    //save the model to another owl file
    URI file=URI.create("file:///D:/ssChange.owl");
    System.out.println(file);
    jenaOwlModel.save(file);
    //System.out.println(oneClass);

}

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多