我开发了一种算法(java代码),它在OWL本体中找到两个给定类之间的特定路径(属性链)。这是本体论
实际上,Pellet需要花费太多的时间来响应我的查询,大约5-7秒来检查一个类F
是否通过属性r
由一对一与类D
相关联,而且这个查询在我的算法中是重复的,但是,如果我在类似的类上重新运行它,它的执行速度要快得多(我认为这与内存模型或RAM内存缓存有关)。然而,在第一次,它大约需要4-5分钟(取决于所做的检查次数)。
F ⊑ =1 r.D
这个瓶颈与本体和推理者本身有关:(如果我在没有推理器的情况下运行它,它会立即执行!)
问题:
我可以不考虑推理者的时间来评估表现吗?例如:如果我们忽略了推理者所占用的时间,它的执行是立即的!
在这种情况下,有什么方法可以提高业绩吗?
发布于 2015-05-15 06:30:09
我对第一次调用所需的额外时间的猜测是,Pellet也在执行其他任务(例如,它可能需要首先对本体进行分类)。
为了将推理时间与算法分开,您可以运行代码两次(在同一个VM中),并且只考虑第二次使用的时间--这将从总数中删除任何初始化成本。
https://stackoverflow.com/questions/30242918
复制相似问题