Hi,
I have some trouble with the semantic application of Telefónica domain we
are working on, since the efficiency while performing inference is too low.
Im using Swift owlim with an OWL ontology whose size is 3M. It defines 800
OWL equivalent classes (rules of the domain) using someValuesRestriction,
which fulfil a property to a specific value, and its population has about
87000 individuals. Each individual is composed by twelve relations which
their corresponding values.
The problem appears when I try to perform the inference for all those
individuals in order to query what value they have if they have satisfied
any rule. Im trying to load the ontology model into an owlim repository and
then create each individual using the API methods. The execution goes quite
well when I use a subset of all the rules and vary the number of instances
created (5000, 10000, 20000,
). But as I add more rules the performance get
worse exponentially, so it seems better to throw small threads which process
small amounts of instances.
Next, to sum up the problem, some examples of time response output:
Number of rules applied Number of instances created Output
time after inference
6 rules 5000
15 seconds
6 rules 40000
1 min 46 seconds
6 rules 87000
4 minutes
----------------------------------------------------------------------------
------------
39 rules 5000
3 min 25 seconds
39 rules 40000
42 min 41 seconds
Is this behaviour normal? Is there any mechanism to improve this
performance, taking into account that our goal is to execute using all the
rules and all the instances? For example, using owlim rules instead of OWL
ones, using Big owlim because Swift owlim cant handle this domain, creating
the instances in other way,
Could anybody bring some light to this problem?
Thanks in advance!
Cheers,
Marta
_______________________________________________
OWLIM-discussion mailing list
[email protected]
http://ontotext.com/mailman/listinfo/owlim-discussion