[tmcl-wg] Comments: New version of TMCL specification, 2.2

Dmitry dmitryv@cogeco.ca
Thu, 28 Oct 2004 19:41:07 -0400


On Oct 27, 2004, at 9:03 AM, Lars Marius Garshol wrote:
>
> 2.2: NOTE 1: Robert Barta's AsTMa! can be used to filter topic maps so
> that only the constructs that would be valid according to the schema
> are included in the output. I think this is a really valuable
> function, and it would be nice if TMCL could specify this as an
> alternative way to apply the TMCL schema.
>

Thanks for comments!

I think it is an interesting use case, but it is out of scope of 2.2.

We try to define basic operation (operator) "validate" in 2.2  with 
well defined result. Purpose of ConflictItem is to provide reference to 
elements which are reason for a conflict (when it is possible to 
identify these elements).

"Filtering" sounds for me as an example of conflict resolution 
strategy. But not all conflicts can be resolved this way.

For example, let's say that we have a constraint: "Each type topic  
should have not more than 7 sub types". I am not sure that idea of 
filtering works well in this case. I also think that in general 
conflict resolution is a non monotonic operation in a sense that  
conflict state can be resolved by moving to various   (often mutually 
inconsistent) states.

TMCL-Rule allows also do define  DiagnosticItem which can be used to 
provide advice about different conflict resolution strategies.

There is BTW missing piece now in TM-Schema - explanation of how it  
generates  ConflictItem and NotificationItem in consistent with 
TMCL-Rule manner.

In real life I am thinking about some "software wizards" (implemented 
as operators on top of basic "validate" operator) which help users to 
analyze and resolve conflicts and try different conflict resolution 
strategies.


What I think is missing now in 2.2 is a more general definition of 
validate operator which can handle following use cases:
1) Schema is attached to topic map. Operator validates against internal 
schema. (and for attached schemas we have well defined schema merging 
process)
2) We allow do specify external schema in validate operator
3) We allow some combination of external schemas such as (SC1 and SC2) 
or SC3 in validate operator


Dmitry