Allison; The setting is on the spin:rule property itself. Double-
click spin:rule and you will find the
spin:rulePropertyMaxIterationCount in the Property Form. Fill that
out with the value you want - 1, 2, etc.
Note that spin:rule is an RDF property, just like any other property.
Its special characteristics are that TBC expects the contents to be a
SPARQL query (in SPIN RDF form) and that the TopSPIN engine will look
for spin:rule properties on classes then execute the rule on each
member of the class.
You can also create different rule sets by creating subproperties of
spin:rule. The rules are then defined on the subproperty created.
For example, if you create {:myRuleSet rdfs:subPropertyOf spin:rule}
then you can create rules using :myRuleSet instead of spin:rules. You
can set the max iteration count for each of these rule sets using the
max iteration count for the property. The order in which the rule sets
are executed can also be set by the spin:nextRuleProperty, as Holger
stated when pointing to the SPIN section (http://spinrdf.org/
spin.html#spin-rules-order), which is worth a read. This provides a
great deal of flexibility for controlling how rules are executed.
-- Scott
On Sep 8, 10:44 am, Alison Callahan <[email protected]> wrote:
> Hi Scott,
>
> Thanks for your reply.
>
> I am not sure that I am setting the spin:rulePropertyMaxIterationCount for
> the rule itself. In TBC 3.5.1 I added this property to the class that the
> spin:rule is associated with, using the 'Add widget for property' option.
> When I do this, the class display includes a drop down menu called 'Other
> properties' where the spin:rulePropertyMaxIterationCount is shown.
>
> Is this the correct way to set spin:rulePropertyMaxIterationCount for a
> spin:rule associated with a class?
>
> Thanks,
>
> Alison
>
> On Thu, Sep 8, 2011 at 10:36 AM, Scott Henninger <[email protected]
>
> > wrote:
> > Alison, see responses inline:
>
> > On Sep 8, 9:25 am, Alison Callahan <[email protected]> wrote:
> > > Hi again Holger,
>
> > > On a related note, I would have expected that setting
> > > the spin:rulePropertyMaxIterationCount to 1 for the spin:rules that use
> > > smf:buildUniqueURI to have the same effect as selecting 'Single pass only
> > > (no iteration)' in the 'Configure Inferencing' menu.
>
> > Yes, this is correct.
>
> > > However, when I set
> > > spin:rulePropertyMaxIterationCount to 1 for the requisite spin:rules,
> > > running TopSPIN still goes into 10s of iterations when incremental
> > > inferencing is selected ... Why is this?
>
> > I tried this using TBC-ME 3.5 and it works as it should. I take it
> > the rules are defined for the property spin:rule and that
> > spin:rulePropertyMaxIterationCount is set for spin:rule, i.e.:
> > {spin:rule spin:rulePropertyMaxIterationCount 1}
>
> > Check that, and if the problem persists let us know what else may be
> > going on that causes multiple iterations.
>
> > -- Scott
>
> > > Thanks,
>
> > > Alison
>
> > > On Thu, Sep 8, 2011 at 9:55 AM, Alison Callahan
> > > <[email protected]>wrote:
>
> > > > Hi Holger,
>
> > > > Thanks for your reply. If I set the max iteration count to 1, does the
> > > > default behaviour of TopSPIN (inferencing until no new triples are
> > created)
> > > > still apply? As in, will a spin:rule that specifies triples created by
> > > > another spin:rule in its WHERE clause still execute as expected?
>
> > > > Alison
>
> > > > On Wed, Sep 7, 2011 at 6:43 PM, Holger Knublauch <
> > [email protected]>wrote:
>
> > > >> Yes, and in case you only want to do a single iteration in which the
> > order
> > > >> of rules is predictable, have a look at
>
> > > >> http://spinrdf.org/spin.html#spin-rules-order
>
> > > >> Your rule makes use of smf:buildUniqueURI which rings some alarm bells
> > to
> > > >> me as this may potentially create infinite loops unless you set max
> > > >> iteration count to 1 (in the inferencing configuration).
>
> > > >> Holger
>
> > > >> On Sep 8, 2011, at 2:59 AM, Scott Henninger wrote:
>
> > > >> > Allison; The default for TopSPIN is to run all rules until no more
> > new
> > > >> > triples are created. This enables the kind of forward-chaining
> > > >> > inference you are looking for. So, yes, by way of this mechanism,
> > > >> > which is quite separate from subClassOf relationships between the
> > > >> > classes, the inferences from one rule will be seen on the next pass
> > by
> > > >> > the rule engine. Specifically, the following:
>
> > > >> >> can someone suggest an alternative approach that would allow me
> > > >> >> to use triples created by one spin:rule in another spin:rule?
>
> > > >> > Is the default behavior for the SPIN engine.
>
> > > >> > -- Scott
>
> > > >> > On Sep 7, 11:34 am, Alison Callahan <[email protected]>
> > wrote:
> > > >> >> Hello all,
>
> > > >> >> I am using TopBraid Composer Maestro version 3.5.1 in Ubuntu 11.04.
>
> > > >> >> I am trying to execute a spin:rule for a subclass B that depends on
> > > >> triples
> > > >> >> constructed by a spin:rule of its superclass A. Consider an example
> > > >> case
> > > >> >> where I have the following spin:rule for the superclass A:
>
> > > >> >> CONSTRUCT {
> > > >> >> ?this example:has_score ?x_score .
> > > >> >> ?x_score example:derives_from ?y_score .
> > > >> >> ?x_score example:has_value 0 .}
>
> > > >> >> WHERE {
> > > >> >> ?game example:has_part ?this .
> > > >> >> ?this example:has_smaller_part ?y .
> > > >> >> ?y example:has_score ?y_score .
> > > >> >> BIND (smf:buildUniqueURI("example:{?this}_score") AS ?x_score)
> > .
>
> > > >> >> }
>
> > > >> >> And this is the spin:rule for the subclass B:
>
> > > >> >> DELETE {
> > > >> >> ?x_score example:has_value ?x_score_value .}
>
> > > >> >> INSERT {
> > > >> >> ?x_score example:has_value ?new_x_score_value .}
>
> > > >> >> WHERE {
> > > >> >> ?this example:has_score ?x_score .
> > > >> >> ?x_score example:has_value ?x_score_value .
> > > >> >> ?this example:has_smaller_part ?y .
> > > >> >> ?y example:has_score ?y_score .
> > > >> >> ?y_score example:has_value ?y_score_value .
> > > >> >> ?x_score example:derives_from ?y_score .
> > > >> >> BIND ((?x_score_value + ?y_score_value) AS ?new_x_score_value)
> > .
>
> > > >> >> }
>
> > > >> >> As you can hopefully see from this example, the spin:rule of class
> > B
> > > >> >> specifies triples constructed by the spin:rule of class A in its
> > WHERE
> > > >> >> clause. My question is: is this possible? When using TopSPIN for
> > > >> >> inferencing, will the spin:rule of class B be able to query for
> > triples
> > > >> >> created by the spin:rule of class A? If not, can someone suggest an
> > > >> >> alternative approach that would allow me to use triples created by
> > one
> > > >> >> spin:rule in another spin:rule?
>
> > > >> >> Thanks,
>
> > > >> >> Alison
>
> > > >> > --
> > > >> > 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
>
> > > >> --
> > > >> 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
>
> > --
> > 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
--
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