如何解决插入数据集Jena ARQ中未提交的SPARQL数据
我想用SPARQL查询和Jena ARQ在我的Jena模型('modelInput)中插入一个新类。 我正在将ONT-API(Java)用于我的项目,以便管理OWLOntologies和SPARQL查询。
我的问题是:应该插入到“ modelInput”中的新类未插入。
这是我的代码:
package test.model;
import com.github.owlcs.ontapi.OntManagers;
import com.github.owlcs.ontapi.Ontology;
import org.apache.jena.atlas.lib.StrUtils;
import org.apache.jena.query.*;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.update.*;
import org.apache.jena.vocabulary.RDFS;
import org.semanticweb.owlapi.model.*;
import java.util.Iterator;
public class TestDatasetAxiomMigration {
public static void main(String[] args) throws OWLOntologyCreationException,OWLOntologyStorageException {
OWLOntologyManager manager = OntManagers.createONT();
OWLDataFactory factory = manager.getOWLDataFactory();
OWLOntology ontology = manager.createOntology(IRI.create("http://ontology/"));
ontology.addAxiom(factory.getOWLSubClassOfAxiom(factory.getOWLClass("first-class"),factory.getOWLThing()));
Model modelInput = ((Ontology)ontology).asGraphModel();
modelA.createResource("second-class").addProperty(RDFS.subClassOf,modelA.createResource("first-class"));
Dataset dataset = DatasetFactory.create();
dataset.begin(ReadWrite.WRITE) ;
dataset.addNamedModel("http://ontology/",modelInput);
// ... perform a SPARQL Update
GraphStore graphStore = GraphStoreFactory.create(dataset) ;
String sparqlUpdateString = StrUtils.strjoinNL(
"PREFIX ont: <http://ontology/>","PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>","INSERT DATA { ont:University a rdfs:Class } "
) ;
UpdateAction.parseExecute(sparqlUpdateString,dataset);
dataset.commit() ;
Model modelOut = dataset.getNamedModel("http://ontology/");
System.out.print("Size: "+modelInput.size()+" ; "+modelOut.size());
}
}
当我们触发执行时,“ modelInput”不会更新:更改未提交给模型; modelOutput与“ modelInput”具有相同的大小。 我没有错误,因此无法理解我在哪里做错了。
谢谢您的帮助。
NB:下面的这个小样本并没有揭示孔项目的复杂性。 顺便说一下,我正在使用数据集对象,因为我打算使用SPARQL查询将一些公理从一个本体复制到另一个本体。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。