问候Ignazio Palmisano教授,
我有一个关于OWL-APIV5的问题
我添加了一个新的单独的“x”作为Thing的子类,并添加了单独的属性。
初始化reasoner和precomputeInferences()
目标:
子问题:
2)我是否必须保存新的推断本体,然后按照断言处理它,以便检索那个类?我不喜欢这样做,因为我的兴趣只是用推断的超类替换当前的单个超类。
我试图找到如何做到这一点,我遇到了:EntitySearcher.getTypes(OWLIndividual,OWLOntology),但是这只检索原始断言的超类,而不是推断的超类。
诚挚的问候。
为了用推断的类(或多个类--可能不止一个)替换断言的类,您需要执行以下操作:
因此,称为r
的owlReasoner
实例,i
的owlindividual
,t
的原始类型和t
的推断类型:
OWLOntology o = ...
OWLReasoner r = ...
// This returns the node of direct types - i.e., the set of equivalent classes that are the most specific named types including i among their instances
// This will always be a Node even for a single class. If the reasoner can infer that there are equivalent classes, they all will appear in the Node
Node<OWLClass> types = r.getTypes(i, true);
// remove existing type assertions
o.removeAxioms(o.getClassAssertionAxioms(i));
// add the new ones
OWLDataFactory df = ...
Stream<OWLAxiom> axiomsToAdd = types.entities().map(T->df.getOWLClassAssertionAxiom(T, i));
o.addAxioms(OWLAPIStreamUtils.asList(axiomsToAdd));
现在o包含新的断言来代替旧的断言。根据需要保存或进一步阐述本体论。
问题内容: 我有一些这样的代码。 超级班 子类 所以问题是我可以将超类的对象转换为子类吗?这个问题对我来说是正确的吗? 但它给Class Cast异常。 问题答案: 您可以将子类转换为超级类,反之亦然。如果“车辆”是“超级类”,而“汽车”是子类,则所有“汽车”(子代)都是“汽车”(“超级”),但并非所有“车辆”都是“汽车”。
我在wordpress中为buddypress创建了一个自定义菜单。 链接始终包含当前用户。在本例中,用户"admin /成员/管理员/个人资料/ 我必须做什么才能使链接始终指向当前用户?
我现在正在读《实践中的Rest》一书。我无法理解以下术语超媒体,超媒体格式,超媒体控件,域应用协议。作者建议需要特定领域的超媒体格式。我很难理解这些。我在谷歌上搜索了这些术语,但没有找到正确的答案。谁能解释一下这些术语,以及为什么我们需要特定于领域的超媒体格式而不是应用程序/XML?
一个jFrame:HomeView、一个jPanel:TopicListView、另一个jPanel:ReplyListView。 在HomeView中,我有一个菜单项,可以单击它来显示TopicListView。在TopicListView中,我希望有一个可以单击以显示ReplyListView的按钮。单击按钮时,它将调用openReplyListView()方法。该方法将创建一个新的JPane
假设我有一个抽象类Person。有另一个类学生扩展了Person。但是学生类有一个成员变量,比如String类型的学院,它在Person类中不存在。 我们知道我们可以从超类引用子类,例如, 人p=新学生(); 对象p会有成员学院吗?
它是在Android上的,在加载到WebView之前需要修复html。 这可以在JAVA内部完成还是必须在WebView的JavaScript内部完成?