Class 使用ProtegeOWLAPI操作owl文件。(删除类,删除属性)

Class 使用ProtegeOWLAPI操作owl文件。(删除类,删除属性),class,owl,protege,object-property,Class,Owl,Protege,Object Property,我需要使用protegeowlapi操作owl文件。你知道,创建类和属性并不难。但我不知道如何删除类或属性。如果我们将owl文件视为一个图形,则删除类意味着删除节点及其直接边。例如: <owl:unionOf rdf:parseType="Collection"> <rdf:Description rdf:about="&data;DataBundle"/> <rdf:Description r

我需要使用protegeowlapi操作owl文件。你知道,创建类和属性并不难。但我不知道如何删除类或属性。如果我们将owl文件视为一个图形,则删除类意味着删除节点及其直接边。例如:

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

如果要删除类DataItem

  • 我应该如何使用Protege OWL API来实现它?RDFResource.delete()是否可以实现这一点?我已经试过了,但我不能做到这一点,也许是出了什么问题

  • 删除数据项后将得到什么

  • 如果DataItem是一个属性的域,那么删除它后我将得到什么

  • 我希望得到你的答复


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

    @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);
    
    }
    
    }
    

    我认为您至少需要显示一些代码。您提到您使用了RDFResource#delete,但它不起作用。你是怎么用的?什么不起作用?复制于谢谢你的回答!今天我试图修复我的代码,现在它运行良好。我很高兴你找到了解决问题的方法。你能在回答中给代码添加一些注释来告诉人们区别是什么吗?另外,请告知其他用户您找到了解决方案。