-
Notifications
You must be signed in to change notification settings - Fork 1
Description
initial situation
Rule:
[equivalentSymmetric: (?a owl:equivalentClass ?b) -> (?b owl:equivalentClass ?a)]
Model:
(foo owl:equivalentClass bar)
(bar owl:equivalentClass foo) << inferred
what I did
remove the first statement
what happened
Model:
(foo owl:equivalentClass bar) << inferred
(bar owl:equivalentClass foo) << inferred
what to do?
The commit 01e2f4b fixes this problem for my special use case, but makes everything slower -- every insert and removal takes longer, as well as every sparql query. Where before only the first query was slow, and all removals/insertions were fast.
The problem seems to be the consecutive call of performInference(), which is still called when rules are added/removed! The documentation says this should be fine, though:
Normally inferencing is done once new statements are added to the model or statements are removed. This method performs inferencing on the whole model. It is useful for initializing a model that already contains statements or update the model if it has been modified bypassing this filter model.
I don't really know how to solve this yet, or why it's so slow...