Leonard; Does one of your rules create a bnode?  The default
configuration for TopSPIN is to execute until no new triples are
created (pretty typical forward-chaining rule behavior).  Since a
bnode is always unique, the script will never terminate.  There are a
few solutions, including configuring TopSPIN to use Single-pass
reasoning.  To do this, open Configure Inferencing and double-click on
the TopSPIN module.

Another simple fix is to use spif:buildURI() in the body of the where
clause.  So instead of:
CONSTRUCT { _:b0 ?myprop ?myvalue}
WHERE { ... ?x ?myprop ?myvalue .}

...instead define a URI for the bnode:
CONSTRUCT { ?uri ?myprop ?myvalue}
WHERE
{ ... ?x ?myprop ?myvalue .
    BIND (spif:buildURI(spif:generateUUID()) AS ?uri)
}

Lastly, you can specify the maximum number of iterations each rule
type through the spin:rulePropertyMaxIterationCount.  E.g.:
  {spin:rule  spin:rulePropertyMaxIterationCount 2}

In terms of scale, it's really difficult to say.  Mostly it depends on
the amount of memory allocated to the JVM.  I can say that 73k classes
would be considered small-to-medium sized.  With that size, if rule
execution doesn't terminate within a couple of minutes, it would be
time to look at the rules to assess the complexity of the WHERE
clauses.  Or make sure no bnodes are being created by the rules.

-- Scott


On Sep 2, 2:56 pm, Leonard Jacuzzo <[email protected]> wrote:
> Hello list,
>
> I would like to make a request/suggestion.
>
> I have enjoyed learning from the TQ blogs and from this list. In fact, I
> learned a bit last week.
>
> However, when I attempt to apply what I have learned I find that TBC is very
> slow with reasoning.
>
> For example, I have a model with 73,000 classes, each class is a subclass of
> a restriction on a property with 'hasValue' ( much like the example with the
> price of an orange).
>
> Instead of using RL, I used only two rules that were required. (I have the
> correct one's thanks to Scott and Irene). I put two instances in so that I
> can test it out.
>
> I left it running on "reason" yesterday when I left work. After dropping in
> just now, TBC is still working on the task.
>
> The model I am working with is fairly simple, but has lots of classes. The
> only task I am attempting is to get two instances to classify based upon
> which class they are instances of. For example, I made them instances of
> orange and I want the price classified.
>
> So my request is for a blog about tips for scalability. If there is such a
> blog, that is not about SPIN, please let me know. If not, I could really use
> some help with constructing models facilitate scalability.  How many classes
> is too many?
>
> If I can't get things to work more quickly, nobody will want to use this
> technology for our tasks. So any help will be appreciated.
>
> Thanks a lot,
>
> Best wishes,
> Leonard

-- 
You received this message because you are subscribed to the Google
Group "TopBraid Suite Users", the topics of which include TopBraid Composer,
TopBraid Live, TopBraid Ensemble, SPARQLMotion and SPIN.
To post to this group, send email to
[email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/topbraid-users?hl=en

Reply via email to