1

我开发了一种算法(java 代码),它可以在 OWL-DL 本体中的两个给定类之间找到特定路径(属性链)。这是本体

实际上,Pellet 推理器花费了太多时间来响应我的查询,大约 5-7 秒来检查一个类是否通过属性F与一个类一对一相关,但是这个查询在我的算法中是重复的,如果我在类似的类上重新运行它,它的执行速度会更快(我认为这与内存模型或 RAM 内存缓存有关......)。但是第一次大约需要 4-5 分钟(取决于完成的检查次数)。Dr

F ⊑ =1 r.D

这个瓶颈与本体和推理器本身有关:(如果我在没有推理器的情况下运行它,它会立即执行!)

问题:

1-我可以在不考虑推理时间的情况下评估性能吗?即类似:如果我们忽略推理器所花费的时间,它的执行是立即的!

2-在这种情况下有什么方法可以提高性能吗?

4

1 回答 1

1

我对第一次调用所需的额外时间的猜测是,Pellet 也在执行其他任务(例如,它可能需要先对本体进行分类)。

为了将推理时间与算法分开,您可以运行代码两次(在同一个 VM 中)并且只考虑第二次使用的时间 - 这将从总数中删除任何初始化成本。

于 2015-05-15T06:30:09.130 回答