[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