0

Protege-Owl API を使用してフクロウ ファイルを操作する必要があります。クラスやプロパティを作成するのはさほど難しいことではありませんが、クラスやプロパティを削除する方法がわかりません。フクロウ ファイルをグラフとして扱う場合、クラスを削除するということは、ノードとその直接エッジを削除することを意味します。例:

<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 は、ここで説明されている API であり、ここで説明さている OWL API ではありません。

4

1 に答える 1

0

@ Joshua Taylor、ご回答ありがとうございます!私は新しいユーザーで、この問題を2回投稿するのを間違えました.申し訳ありません.最初はコードにいくつかの間違いがあり、今日はそれを修正しようとしました.次のコードは、クラスまたはプロパティを削除できます。

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

}

}
于 2014-04-03T16:25:31.850 に答える