当前位置: 首页 > 知识库问答 >
问题:

使用OWL DL推理器创建并连接个人

夏飞鹏
2023-03-14

我有一个包含不同类型事件的本体论。因此我有三个类:A、B、C和一个helper类Temp。

我希望推理器为每找到一对个体a(RDF:TypeOf a)和b(RDF:TypeOf b)创建一个新个体作为C的子类。这个新个体应该包含关于a和B的信息。

在过去,我使用一个带有自己规则文件的jena推理器来得到这个结果,但现在我想切换到一个标准的OWL DL推理器。

a onto:hasB b

和ad为a提供Temp类型,对Temp有以下限制:

hasbB some B

现在我要创建一个新的C类个体,并对TEMP进行限制:

hasC some C

通过这个新的个人资料,我可以访问a和B的信息。

    null

用一个更好的例子来阐明我的目标:

我有一个包含不同类型事件的本体论。

我的目标是通过形成一个新的个体(事件),在推理器的帮助下描述这种关系,将某些属于一起的个体(事件)联系起来。

    null
(alarm1 rdf:type "Alarm")
(out1 rdf:type "PowerOutage")
(alarm1 rdf:type "Alarm")
(out1 rdf:type "PowerOutage")
(man1 rdf:type "PowerManipulation")
(man1 ont:hasRealtadInd alarm1)
(man1 ont:hasRealtedInd out1)

以前,我使用Jena规则和Jena推理器来完成这个任务。但我想切换到一个标准的OWL DL推理器。

有没有可能在基本的限制条件下完成这项任务?或者我需要SWRL规则,或者SPIN(见Williams下面的回答)?

共有1个答案

戚修雅
2023-03-14

您可以很容易地使用自旋构造函数和自旋插入来完成此操作。

http://www.w3.org/submission/2011/subm-spin-modeling-20110222/#spin-rules-construct

http://www.w3.org/submission/2011/subm-spin-modeling-20110222/#spin-rules-update

def model = new GroovyRdfModel()
model.add(""" some turtle data """)
model.add(""" some OWL rules """)
model.add(""" some SPIN rules """)
def inferredModelByOWLReasoning = model.owl()
def inferredModelBySPINRules = model.spin()
 类似资料:
  • 我正在尝试在分布式模式下运行Kafka辅助角色。与独立模式不同,我们在分布式模式下启动辅助角色时无法传递连接器属性文件。在分布式模式下,辅助角色是单独启动的,我们使用REST API部署和管理这些辅助角色上的连接器 参考链接 - https://docs.confluent.io/current/connect/managing/configuring.html#connect-managing-

  • 问题内容: 下面的代码通过SSH在一台计算机上运行grep并打印结果: 我如何一次将5台机器全部置入grep(这样就不会造成重大延迟),而不是将所有这些都放入5个变量中并全部打印出来。 问题答案: 您需要将调用放在单独的线程(或进程中,但这可能会过大),这反过来又要求代码位于函数中(无论如何,这是一个好主意:模块的顶部没有大量代码水平)。 例如: If you had many more than

  • 我想创建一个类的实例,该类可以访问底层的嵌入式derby数据库,并使用声明性服务将该类传递给绑定到数据库包的每个包。 我在derby留档中看到,为多个线程共享一个连接有很多陷阱。所以我在考虑为我正在创建的类的每个实例创建一个连接。由于我只想要一种非常简单的方法来创建多个连接并管理它们,因此在这里使用“MiniConnectionPoolManager”似乎是一个不错的选择。derby的示例代码如下

  • 我有这个使用HikariCP连接池的代码: 我通过发出命令“Show Processlist”来监控mysql中的连接,我看到在行之后创建了100个连接: 。。。正在运行。我肯定这不是命中注定的,对吧?它应该在稍后执行pooledDataSource时创建连接。getConnection()。 我做错了什么?为什么它会立即创建100个连接??

  • 我正在尝试在Spring Cloud Data Flow中创建一个流 > 一个源,即订单源和订单消息将被发布到 RabbitMQ 主题/队列。 两个并行处理器,即产品处理器和装运处理器 这两个处理器都将是 RabbitMQ 主题/队列的订阅者并获取订单消息,每个处理器将单独处理这些订单消息并更新订单,订单消息将发布到 RabbitMQ 主题/队列。 一个汇点,即支付汇点汇点将是RabbitMQ主题

  • 我想创建新的推理器(隐士)。 2)使用构造函数:[org.semanticweb.hermit.reasoner]