On Jan 8, 2009, at 10:15 AM, Schmitz, Jeffrey A wrote:

> yes, in general I think I understand and really like the concept of  
> adding type checked properties to classes via instantiated Arguments.
>
> My real concern (espcially as a possible SPIN runtime implementer)  
> is not being sure of what the rules are regarding what kinds of  
> resources can be used as the subject of a spin:constraint so that  
> the TBC spin runtime (and by extensions any SPIN adherent runtime)  
> will know how to properly execute the specified constraint?  e.g.  
> from what I've seen here there are at least two rules:
>
> 1. They can be specified as a sp:Ask or specialized sp:Construct  
> query.
> 2. They can be specified as an instatiated sp:Argument where the  
> sp:Ask query to be executed by the constraint checker is specified  
> via Argument's spin:body property.

spl:Argument and Attribute are just examples of the more general  
concept of SPIN templates. The rules of the runtime are simpler:

1) They can be specified as ASK or CONSTRUCT queries
2) They can be specified as template instances where the body of the  
template must be an ASK or CONSTRUCT query.

In general, just iterate over all values of spin:constraint.
a) if it's a template instance then substitute it with the body, pre- 
binding the arguments of the template
b) execute the query (which by now is an ASK or a CONSTRUCT query)

A confusing aspect here is that, similar to RDF Schema and OWL, SPIN  
uses itself as its metalanguage. So templates use spl:Arguments to  
define their arguments which are then used at run time. All a bit meta- 
meta, but fortunately only the implementors of the engine need to  
really understand those details :)

Just a thought, but perhaps a new 'argument' property would be useful  
to add to the standard instead of overloading spin:constraint?

Yes I thought about this as well - this could be made a sub-property  
of spin:constraint to make sure that the constraint mechanism will  
still execute them. Right now I'd prefer to keep the language smaller  
but if more people find the same need then such a property could be  
introduced. Having said this, OWL also uses rdfs:subClassOf for the  
restrictions, and not an owl:restriction property...

Holger


--~--~---------~--~----~------------~-------~--~----~
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