gpt4 book ai didi

rdf - jena直接推断图

转载 作者:行者123 更新时间:2023-12-02 03:55:46 25 4
gpt4 key购买 nike

我是耶拿的新手,正在阅读这篇文章 page ,更具体地说,在图 5(iii) -“直接推断关系”中,我找到了我所需要的。基本上,我的 OntModel 需要遵守以下规则:“不能允许可以推断的直接陈述”。但不幸的是,我不知道如何在耶拿实现这个想法。

我的示例代码是:

    String baseUri="http://entidades.owl";
OntModel base = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);

OntClass studant = base.createClass(baseUri +"#Student");

OntClass person = base.createClass(baseUri +"#Person");
OntClass ser = base.createClass(baseUri +"#ThingLive");

Property isA = base.createTransitiveProperty(baseUri+"#IsA", true);
nome.addDomain(person);
base.add(new StatementImpl(studant, isA, person));
base.add(new StatementImpl(person, isA, ser));

base.createIndividual(baseUri+"#JonhDoe",studant);
base.createIndividual(baseUri+"#JonhDoe",person);
base.createIndividual(baseUri+"#JonhDoe",ser);
base.write(System.out);

OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF,base);
model.write(System.out);

嗯,

  1. 我尝试将“isA”属性构建为“transitiveProperty”,但推理器无法识别它。我该如何解决?

  2. 如果我改变:base.add(new StatementImpl(studant, isA, person));base.add(new StatementImpl(person, isA, ser));

到:

person.addSubClass(学生);ser.addSubClass(person);

reasoner 能够完美地进行推断,但不幸的是,OntModel“base”和 OntModel“model”向我展示了相同的 RDF。我认为“模型”应该向我显示反射(reflect)的最小 RDF 图。

我该怎么做才能看到 RDF 结构中的这种变化?

非常感谢你们!!!!!!

最佳答案

你的代码很好,唯一的问题是:

model.write(System.out);

调用 OntModel.write(),它被定义为仅写入基本模型。这是因为许多用户希望能够有一个读取模型、操作模型、保存模型的工作流程,并且不希望保存的版本被传递属性的闭包污染。

如果您查询模型,您的查询将看到推断的三元组以及基本模型三元组。这里只有 write() 受到影响。如果您真的想编写整个模型进行调试,包括推导的三元组,请使用 OntModel.writeAll()

关于rdf - jena直接推断图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12711394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com