ISO/IEC JTC 1/SC 34N0860

ISO/IEC logo

ISO/IEC JTC 1/SC 34

Information Technology --
Document Description and Processing Languages

TITLE: Oslo 2007-03 Minutes - ISO/IEC CD 19756 - Information technology - Topic Maps - Constraint Language (TMCL)
SOURCE: Mr. Graham Moore; Mr. Dmitry Bogachev; Ms. Mary Nishikawa
PROJECT: CD 19756: Information technology - Topic Maps - Constraint language (TMCL)
PROJECT EDITOR: Mr. Dmitry Bogachev; Mr. Graham Moore; Ms. Mary Nishikawa
STATUS: Minutes
ACTION: For Information
DATE: 2007-04-23
DISTRIBUTION: SC34 and Liaisons
REPLY TO:

Dr. James David Mason
(ISO/IEC JTC 1/SC 34 Chairman)
Y-12 National Security Complex
Bldg. 9113, M.S. 8208
Oak Ridge, TN 37831-8208 U.S.A.
Telephone: +1 865 574-6973
Facsimile: +1 865 574-1896
Network: [email protected]
http://www.y12.doe.gov/sgml/sc34/
ftp://ftp.y12.doe.gov/pub/sgml/sc34/

Mr. G. Ken Holman
(ISO/IEC JTC 1/SC 34 Secretariat - Standards Council of Canada)
Crane Softwrights Ltd.
Box 266,
Kars, ON K0A-2E0 CANADA
Telephone: +1 613 489-0999
Facsimile: +1 613 489-0995
Network: [email protected]
http://www.jtc1sc34.org



TMCL Minutes from WG 3 Meeting in Oslo, 2007

For ease of reference, these minutes contain the presentation made by the TMCL editors, Graham Moore and Dmitry Bogachev, as well as the comments and decisions made during the meeting. Comments and decisions from the meeting are shown in italic text.

  1. The TMQL is not correct on many of the constraint interpretations.
    • More prose description required and examples more useful and less abstract. rho to help.
  2. Are there any missing constraint types from TMCL Schema?
    • scope
    • otherroleconstraint (lost the player topic types)
  3. Extension mechanisms for things of type constraint
    • Non-issue.
  4. Representating tmcl using tmcl
    • Yes do it. As annex.
  5. conflict items
    • one level is that NO conflict items returned. Tough on users.
    • define conflict item PSI
    • should we define the association type connecting a CI back to the bad boy constraint.
    • in the rule where we define interpretation to define the conflict constructor
    • Just do true | false. extension left to implementations.
  6. Do we need two names any more? TMCL Schema TMCL Rule?
    • No.
  7. How is tmcl rule defined in a topic map form?
  8. constraint
    
    ctm:template grasrule($a)
    	g1 isa gracons
    	gracons iko constraint
    	g1 interpretation "tmql expression"
    	
    
    maybe interpretation octype is not enough, assert type and the other one. 	
    	
    
  9. Statement on effects of inheritance?
    • No need as TMDM already says enough.
  10. List of PSIs is not complete
    • remove from top of document.
    • define inline inside templates.
    • use tmcl:
  11. PSIs form needs rationalisation
    • use tmdm styley.
  12. Do we really want schema reference?
    • No.
  13. How do you create a collection of constraints?
    • tmclschema topic type.
    • relationship to constraints that form the schema.
  14. ctm representations and especially templates
  15. djc isa disjointConstraint
    djc_includes_type(
    	djc : djc_includes_type_constraintrole,
    	person : jc_includes_type_typerole)
    
    djc_includes_type(
    	djc : djc_includes_type_constraintrole,
    	cow : jc_includes_type_typerole)
    	
    djc_includes_type(
    	djc : djc_includes_type_constraintrole,
    	house : jc_includes_type_typerole)
    	
    djc_includes_type(
    	djc : djc_includes_type_constraintrole,
    	plane : jc_includes_type_typerole)
    
    djc I "TMQL eval..."
    
    ----
    
    possible implicit semantics for template. 
    Currently used as scope identifier in ctm.
    
    djc isa.......
    djc_includes_type (
      ......
      @types : jc_includes_type_typerole)
    
    -----
    
    
    disjointConstraint(person, cow)
    disjointConstraint(car, cow)
    disjointConstraint(house, cow)
    
    
    Lists.
    
    ctm:template expand($a, $b)
    	
    
    tmcl:co
    tmcl_rule1 isa tmcl:constraint
    
    
    tmcl_rule1 ($a, $b)
    		
    
  16. LMG TMCL Meta Model
    • Type for constraint. Yes.
  17. GDM TMCL Meta model
  18. - section prose topic type psi
    
    - topic_type is an instance of itself
    
    - constraint that anything used as a topic type that is not
    an instance of this is in error.
    
    TMCL Defines this:
    
    topic_type http://psi.isotopicmaps.org/metatypes/topic_type
    
    And to be interoperable you should use it like this:
    
    person isa topic_type
    
    OR
    
    ctm:template topicType($a, $b, ...)
    	ttc1 isa tt_constraint
    	$a isa topic_type
    
    
    OR
    
    Prose for declaration of intent as topic type
    
    topic_type http://psi.isotopicmaps.org/metatypes/topic_type
    
    
    ctm:template topicType(topic_type)
    	any topics that are instances of topics that are not in this 
    	list are in violation.
    	=> this would be a real query.
    	
    
    And same for Association Type, Role Type, Occurrence Type, Name Type, Name Scoping Type etc
    
    
    • Agreement we need this.
  19. Style of PSIs
    • done above.
  20. PSIs for CTM Templates
    • SHALL get fixed by other fixes.
  21. All constraints must exist as constraint topics and not end up as 'briefer' annotations to types. e.g. IsAbstract.

Issues:

  • How to emded constraints in XTM or CTM?
  • Where have the ontology statements gone?
  • -> they are just Topic Map statements, 
    instanceOf, superclass-subclass
    

    Comments:

    1. disjoint constraint should be a list. CTM should fix this. Variable number of parameters to templates.
    2. that the tmql interpretation should actually be a function that is created and bound as part of the template invocation. Function returns true | false , conflict item

    Fixes and Changes:

    1. Remove by example part of constraint def
    2. Put template first
    3. Template 'returns' a constraint topic
    4. interpretation should be defined in terms of the constraint topic returned.
    5. CTM templates must generate new topics from templates.
    ctm:template disjointCostraint(atype, btype) =>
    	djc isa disjointconstraint
    
    	djc_includes_type(
    			djc : djc_includes_type_constraintrole,
    			atype : jc_includes_type_typerole)
    
    	djc_includes_type(
    			djc : djc_includes_type_constraintrole,
    			btype : jc_includes_type_typerole)
    	
    	djc constraint_eval_fn "blah blah $this ..."
    
    
    ctm:template disjointCostraint(atype, btype) =>
    	djc isa disjointconstraint
    
    	djc_includes_type(
    			djc : djc_includes_type_constraintrole,
    			atype : jc_includes_type_typerole)
    
    	djc_includes_type(
    			djc : djc_includes_type_constraintrole,
    			btype : jc_includes_type_typerole)