[Pellet-users] Single SWRL rule with ~20 individuals blows 1.5G heap
Evren Sirin
evren at clarkparsia.com
Fri Mar 7 13:16:12 UTC 2008
There are two different rule implementations in Pellet 1.5.1. If you
change the options to the other rule strategy this ontology can be
processed in milliseconds without additional memory:
PelletOptions.USE_CONTINUOUS_RULES = true;
FWIW, the alternative rule strategy performs much better in almost all
cases. At the time of Pellet 1.5.1 release there were some examples
where it performed worse (which is why we didn't make it default) but
further investigations showed that slow down was due to a problem in
another part of the reasoner that we now fixed. This strategy will be
default in the next release and you would be better off to use it.
Cheers,
Evren
On 3/7/08 2:03 AM, James Howison wrote:
> I'm having trouble with executing some SWRL rules with Pellet.
>
> If they are included in an ontology Pellet rapidly consumes all the
> heap space I can give, regardless of the number of individuals
> involved, and drives the CPU to ~95% until the heap error (minutes?).
> Everything works as expected without the SWRL rules.
>
> The modeling domain is threaded mailing lists.
>
> The relevant part of the main ontology[1] says:
>
> Venue hasThread Thread .
> Thread hasEvent MailingListEvent .
>
> The SWRL rule (written in Protege 3.4 beta) says:
>
> hasEvent(?thread, ?event) ^ hasThread(?venue, ?thread) -> hasEvent(?
> venue, ?event)
>
> (So it's basically transitivity on the hasEvent property, I do have
> more complex rules, if I can get this to work ;).
>
> There are no Domains or Ranges on the Properties (so hasEvent should
> be fine with Venue).
>
> I've put together a test case with just a little set of individuals
> [2] and a single SWRL rule [3] (change doSWRL to false to see it
> without SWRL):
>
> http://floss.syr.edu/ontologies/2008/code/MinimalSWRLTest.java
>
> I'm hoping someone could be so kind as to take a look and let me know
> whether this ought to work, and how I might get it to do so (hey, a
> naive procedural approach would take no time at all :).
>
> If I can get it to do so, any estimates of the scaling of CPU/Memory
> requirements (I'm anticipating many individuals, in the order of
> 10,000s, but they might be able to be done incrementally).
>
> I'm using the Pellet 1.5.1 release and have tried this with the latest
> OWLAPI release and OWLAPI SVN, platform is Mac OS X 10.5. I've set
> IGNORE_UNSUPPORTED_AXIOMS to false, but don't see any errors. Pellet
> via Jena gives the same issues, if Jena code showing that would help
> others take a look, I'm happy to provide that.
>
> Thanks in advance,
> James
>
> [1]: http://floss.syr.edu/ontologies/2008/flosscomms-basic.owl
> [2]: http://floss.syr.edu/ontologies/2008/gaim-cabal-tiny.rdf
> [3]: http://floss.syr.edu/ontologies/2008/flosscomms-swrl-single.owl
>
> These are joined via one of these:
>
> http://floss.syr.edu/ontologies/2008/gaim-cabal-tiny.owl
> http://floss.syr.edu/ontologies/2008/gaim-cabal-tiny-swrl.owl
>
> _______________________________________________
> Pellet-users mailing list
> Pellet-users at lists.owldl.com
> http://lists.owldl.com/mailman/listinfo/pellet-users
> _______________________________________________
>
> Sponsored by Clark & Parsia, LLC http://clarkparsia.com/
>
More information about the Pellet-users
mailing list