I believe you need to use the ?this variable instead of ?city in the
constraint.  This should give you the OO behavior that you expected.

On Apr 3, 3:03 am, PaulZ <[email protected]> wrote:
> I'm trying a few things out and I'm puzzled by following behaviour.
>
> I have
> 1 class :City with two subclasses :Actual_City, Historic_City.
>
> On :City i have two spin rules
>
> # Infer actual city
> CONSTRUCT {
>     ?city a :Actual_City .}
>
> WHERE {
>     ?city a :City .
>     ?city dct:temporal ?Period .
>     OPTIONAL {
>         ?Period :endDate ?enddate .
>     } .
>     FILTER (!bound(?enddate)) .
>
> }
>
> and a similar one for infering a :Historic_City
> (Trying to 'templatize' those is left for another exercise.)
>
> Now running the spin inference and the city instances show up in the
> correct subclass.
>
> Now on the subclasses I add some spin constraints.
> e.g. on :Actual_City
>
> ASK WHERE {
>      ?city dct:temporal ?period .
>     ?period :endDate ?enddate .
>
> }
>
> This constraint doesn't work.
> I need to add the line
>  ?city a :Actual_City .
>
> ASK WHERE {
>     ?city a :Actual_City .
>     ?city dct:temporal ?period .
>     ?period :endDate ?enddate .
>
> }
>
> to get it up,
> which seems a little bit odd since one is working in a OO oriented
> way
> and the constraint is set on the class itself.
>
> I suppose the previous inference done, which has not been persisted,
> is not taken into account.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TopBraid Composer Users" group.
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-composer-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to