2 つのオントロジー間のオントロジー調整に取り組んでいます。jena/pellet プラットフォームをローカルに適用し、sparql ルールを可能な限り適用します。何を試しても、挿入の場合は成功しますが、削除の場合は成功しません。これにより、sparql の削除が jena/pellet でサポートされているかどうかという疑問が生じます。お知らせ下さい!
以下の関連するコード スニペットを見つけてください。最初にコード、次に sparql DELETE クエリです。
public void executeDelete(String mySparqlFile, OntModel o ) {
UpdateRequest updateObj = null;
UpdateProcessor up = null;
GraphStore graphStore = GraphStoreFactory.create();
graphStore.setDefaultGraph( o.getGraph() );
updateObj = UpdateFactory.read( mySparqlFile );
up = UpdateExecutionFactory.create(updateObj, graphStore);
up.execute();
}
public static void main() {
static OntModel ontModel = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC, rawModel);
static OntModel stanfordModel = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC);
stanfordModel.read("path/to/modelA.owl");
ontModel.addSubModel(stanfordModel);
executeDelete("path/to/delQuery.sparql", ontModel);
}
ファイル「delQuery.sparql」
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX stfd: <http://www.semanticweb.org/brandtp/ontologies/2014/6/Goose-stanford-metamodel.owl#>
DELETE { ?c a stfd:Token . }
WHERE {
?c stfd:hasFeature stfd:Determiner .
}