SPIN constraint checking changed between version 3.3 and 3.5 ?

8 views
Skip to first unread message

PaulZH

unread,
Feb 13, 2012, 8:12:08 AM2/13/12
to TopBraid Suite Users
I had for a TBCME 3.3 installation written some SPIN Constraints.

If I run these constraints (refresh and show problems) with version
3.3, I get 1 warning.
If I click and open the related resource, the display constraint
violation warning icon indicates indeed the issue.

When I run the same constraints file with TBCME 3.5 I get 4247
warnings.
If I click a related resource of a warning, the display constraint
violation warning icon is still grayed out.
Hence I cannot make sense out of the warnings.

I checked the same in version 3.6 beta getting also the 4247 warnings.

Anything changed between versions or any other input to pinpoint the
reason of the different behavior?


Paul

Scott Henninger

unread,
Feb 13, 2012, 9:49:04 AM2/13/12
to TopBraid Suite Users
Paul; There have been some changes in SPIN since TBS 3.3. You can see
the change logs at http://www.topquadrant.com/docs/versions/changes-3.4.0.txt
and http://www.topquadrant.com/products/release_notes/v3_5.html

The core problem seems to be that SPIN rules are being applied against
SPIN deefinitions. If you're using the OWL axioms with CWA (closed-
world assumptions), I'd suggest using the Ontology Profile (go to
Ontology Home and select Profile sub-tab) to specify that library.
Otherwise you may try importing your rules via spin:imports, which
will import the file just as in owl:imports, but will not run rules
against those imported triples.

If neither of those work, then we'd need a bit more on what the rules
are and some examples of the warnings (screen shots?) so we can get a
better idea of what may be happening.

-- Scott

PaulZH

unread,
Feb 13, 2012, 11:42:22 AM2/13/12
to TopBraid Suite Users
Hi Scott,

Thanks for this input.
I think your diagnosis is correct.
Have just run the inluded SKOS constraints with later versions and
they work as expected.

However I'm not sure how to do the migration from my existing
situation to the wished one.

I have for the moment in 3.3 a file 'constraints.n3' containing my
spin constraints which imports:
- OWRT.s2r (the content of a Sesame triple store)
- spin.ttl

I cannot delete the owl:imports spin.ttl otherwise I'm loosing my
constraints.

I created a new file
which spin:imports 'constraints.n3' and owl:imports 'OWRT.s2r' but
that doesn't make a difference.


Paul


On Feb 13, 3:49 pm, Scott Henninger <shennin...@topquadrant.com>
wrote:
> Paul; There have been some changes in SPIN since TBS 3.3.  You can see
> the change logs athttp://www.topquadrant.com/docs/versions/changes-3.4.0.txt
> andhttp://www.topquadrant.com/products/release_notes/v3_5.html

Scott Henninger

unread,
Feb 13, 2012, 12:49:54 PM2/13/12
to TopBraid Suite Users
Paul; Am I understanding it correctly that OWLRT.s2r contains the data
that you want to run SPIN constraints on? In that case, I'd suggest
using spin:imports to import constraints.n3 into the file - i.e.
{<OWLRT.s2r> spin:imports <constraints.n3>}. Then constraints.n3 can
import spin.ttl - {<constraints.n3> owl:imports <spin.ttl>} - and
this should resolve the issue.

If not, then some examples of what you see would be helpful.

BTW, please note that we have cleaned up our text serialization
extensions in TBS 3.6. We no longer include .n3 to avoid potential
confusion that TBS supports N3. All .n3 files are interpreted as
Turtle files, and the .ttl extension should be used.

-- Scott

Holger Knublauch

unread,
Feb 15, 2012, 9:09:55 PM2/15/12
to topbrai...@googlegroups.com
Hi Paul,

I have meanwhile looked over your example with Scott and we discovered that this is triggered by a change in behavior of the ARQ engine since the Jena version that came with TopBraid 3.3. But ARQ is now correct and the old code of SPIN relied on this behaving differently. I need to change the implementation of the pre-binding of ?this to adjust to the new behavior and will try to do this for 3.6.0 final.

In the meantime, the work-around is to remove unnecessary blocks inside of the constraint queries, e.g. if you have

WHERE {
{
BIND (ex:fun(?this) AS ?result) .
}
FILTER (?result != 1) .
}

then remove the inner block { } so that it becomes

WHERE {
BIND (ex:fun(?this) AS ?result) .
FILTER (?result != 1) .
}

The inner block wasn't needed anyway, so I believe you will get this to work with 3.6.

Thanks,
Holger

> --
> You received this message because you are subscribed to the Google
> Group "TopBraid Suite Users", the topics of which include Enterprise Vocabulary Network (EVN), TopBraid Composer,
> TopBraid Live, TopBraid Ensemble, SPARQLMotion and SPIN.
> To post to this group, send email to
> topbrai...@googlegroups.com
> To unsubscribe from this group, send email to
> topbraid-user...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/topbraid-users?hl=en

Reply all
Reply to author
Forward
0 new messages