[sc34wg3] TMCL-WG Summary of Contributions

Mary Nishikawa sc34wg3@isotopicmaps.org
Sun, 09 Feb 2003 10:57:25 +0900


Hi,

Thank you very much in providing initial feedback on the TMCL. I am very 
encouraged to work with such an enthusiastic and knowledgeable group of 
people.  If I missed your comments, or misrepressented anything please 
forgive me and correct it immediately!

I have compiled most if not all of the points discussed on and agreed to on 
the TMCL-WG list so far and placed some additional information into a 
Requirements Specification Template based on IEEE Standard 830-1993. 
Various ideas on specific functional requirments had already been proposed, 
but they are not included here.

What is also not included here are various TMCL ideas and discussions that 
have taken place on the SC34WG3 or topicmapmail lists.

If you want to contribute to TMCL, please do so through the TMCL-WG list. 
Thanks.

I will send out a separate request for functional requirements and how to 
submit these.

This is in a pre draft state. After receiving your contributions of 
functional requirements, and other necessary additions this will become a 
working draft. Please comment and suggest content for missing parts or 
categories that are not needed. Thank you.

Cheers,
Mary

---------------------------------
Requirements for a
Topic Map Constraint Language (TMCL)

Source: TMCL-WG
Rrequirement Editors: Graham Moore, Mary Nishikawa
Project Editor: Steve Pepper

1. Introduction

1.1 Purpose of the document

What is the goal of the project?
What is the purpose of having a TMCL?
Who Should read this document?


The Topic Map Constraint Language (TMCL) will  provide a means of 
validation over and above the constraints currently defined by the Standard 
Application Model. It's goal will be to ensure consistency within a topic 
map or within a class of topic maps.

It may provide more intuitive user interfaces for creating and maintaining 
topic maps.


1.2 Scope of the Language

Exactly what are you specifying?
What will not be specified?
Are there any limitations?

WHAT IT MUST SPECIFY

The TMCL must define a standard way to explicitly indicate how information 
item types and properties as defined in the Standard Application Model for 
Topic Maps are to be constrained.

TMCL shall be specified in terms of the SAM.  This will automatically allow 
it to support both XTM & HyTM s well as LTM and AsTMa=, since these all 
have mappings to the SAM.

WHAT IT MAY SPECIFY

TMCL  may be  based on an XML syntax using XSDL/DTD/DSDL, or
in the very least one informative syntax would be provided.

This may include

   - a fully-fledged expression language
  a) TMCL shall support detailed constraints through the use of an
     expression language.

   - a more down-to-earth 'lite' version for those who live more on the
     template level
  b) TMCL shall support simple declarative constraints that do not
     require the use of an expression language.

  c) The expression language used in TMCL shall be TMQL, or a suitable
     subset thereof.

It may also  include but is not limited to the following.

Definitions of Classes and relationships of Classes and Instances:
Explicily indicate topics as classes
Describe relationships as classes
Describe kinds of classes
Represent regularities about class instances
Represent partially known information about instances

Cardinality:
Cardinality of infomation item types and properties

Data Typing:
Provide data typing not currently defined in the SAM.

Validation and Exceptions:
Define which topic map information  item types and properties are allowed 
(Validity constainst beyond what has already been defined by the SAM.)
Allow any topic map instance element to be constrained, ie, not just topics 
and associations, but names resource references, variants, etc.

1. Must define set of validation exceptions and should be unambiguous as to 
what validation exceptions are possible
2. Define the operational semantics of validation and set of validation 
exceptions.

Application of the constraint language without a validation requirement
The schema may imply templating  or prototyping but does not necessarily 
require validation.

Application of the constraint language with validation.

(May or may not be a validation requirement?)

Issue: Seems to be a need to define a validating (strict) versus loose 
validation or non validating.
We need to define these if we think that they are important.

Some definitions from posts:

Strict validating topic map application MUST ensure that only instances of 
schema constructs exist in the map, ie only topics of types defined inthe 
schema can exist and that all constraints defined arre conformed to in the 
topic map.

A validating topic map application MUST ensure that any structure tht can 
be constrained conform to the constraints of the schema.

ISSUE:  Why should we have two different conformance levels?

If we had two levels of validation, what would they be?


Use of TMQL
The TMCL should make use of the TMQL. The TMCL may use the TMQL to locate 
the information item or property to be constrained or the TMQL may use the 
TMCL to identity particular situations and the task of TMQL is only to 
generate output.

The TMCL may use schema information to create a UI or "template."

Use of Topic Map Published Subjects indicators


WHAT IT WILL NOT SPECIFY

TMCL shall not be specified in terms of  any serialisation format for topic
maps.

It will not state when these constraints are applied.

It will not define domain or vertical market ontologies however these may 
be used for illustrative purposes in usage scenarios.

Any information item types or properties that are not defined as part of 
the Standard Application Model will not be specified by the Topic Map 
Constraint language.


1.3 Definitions, Acronyms and Abbreviations

The keywords "MUST,"  "MUST NOT,"  "REQUIRED,"  "SHALL,"  "SHALL NOT," 
"SHOULD,"  "SHOULD NOT,"  "RECOMMEND," "MAY," and "OPTIONAL will be used in 
this document as defined in [RFC 2119].

Definition:  Validity constraints defined by TMCL versus XTM.dtd

Definitions of ontology and metamodel

From: Pidcock, Woody
Sent: 13 January 2003 22:42
Subject: DRAFT Ontology FAQ

An ontology is a controlled vocabulary and a grammar for using that
vocabulary to express something meaningful within a specified domain of
interest.  The grammar contains formal constraints (e.g., specifies what it
means to be a well-formed statement, assertion, query, etc.) on how terms in
the ontology's controlled vocabulary can be used together. People make
commitments to use a specific ontology for a specific domain of interest.
Enforcement of an ontology's grammar may be rigorous or lax.  Frequently,
the grammar for an ontology is not completely specified, i.e., it has
implicit rules that are not explicitly documented.

A meta-model is an explicit model of the constructs and rules needed to
build specific models within a domain of interest.  A valid meta-model is an
ontology, but not all ontologies are modeled explicitly as meta-models.  A
meta-model can be viewed from three different perspectives:
(1) as a set of building blocks and rules used to build models
(2) as a model of a domain of interest, and
(3) as an instance of another model.


Editor note: need to collect definitions as required.

1.4 References

Editor note: need to collect references as required.


2. Overview of the TMCL Requirements

2.1 TMCL Perspective

Describe the relation to other Topic map standards, the XML infoset and any 
other standards or recommendations.

  Pre-existing specifications and established best practice for knowledge 
representation and data modeling will contribute to the function requirements.
These include OWL, DAML/OIL, KIF, OKBC,OCL, PAL (Protege Axiom Language), 
and XML Schema. Some aspects of TMCL my depend heavily on one or more of these.


2.2 TMCL Functions

Describe the Main functions that the TMCL must perform

2.3 User Characteristics

Who will use the language?  ---
Implementers writing interfaces (expression language) data modelers, 
designers of system ontologies

2.4 General Constraints

Describe limitations and Constraints

2.5 Assumptions and Dependencies

List factors that can  affect the requirements. What if changed, will 
change the requirements.

3. Specific Requirements

3.1 Business Requirements (there was a reques to separate out business 
requirements from Functional requirements -- I don't have any business 
requirements now- unless I missed them.)

Business Requirement #1


3.2 Functional Requirements (These should be very specific and relate to 
the information items in the SAM.)

Functional Requirement #1
Source: Name person submitting the requirement.
Criticality: "MUST,"  "MUST NOT,"  "REQUIRED,"  "SHALL,"  "SHALL NOT," 
"SHOULD,"  "SHOULD NOT,"  "RECOMMEND," "MAY," and "OPTIONAL
Definition:
Information flow (how is the information flowing between parts?)
Process description (usage scenario)
Define Data constructs if any (data types, arrays, class fields, etc.)
data dictionary (A list of all data items in the function. Should at least 
have name and data type -- short explanation, life span acuracy, which 
functions or processes the data is used in.)

Functional Requirement #2
Source: Name person submitting the requirement.
Criticality: "MUST,"  "MUST NOT,"  "REQUIRED,"  "SHALL,"  "SHALL NOT," 
"SHOULD,"  "SHOULD NOT,"  "RECOMMEND," "MAY," and "OPTIONAL
Definition:
Information flow (how is the information flowing between parts?)
Process description (usage scenario)
Define Data constructs if any (data types, arrays, class fields, etc.)
data dictionary (A list of all data items in the function. Should at least 
have name and data type -- short explanation, life span acuracy, which 
functions or processes the data is used in.)


3.3 Classes (object-oriented)
NOTE:These are here to illustrate the usage scenarios described in 3.2 
Include syntax examples here too?

Can use some class examples that would refer to functional requirements 
described above.
We can use this section to clarify the context of the usage scenarios 
above. We may want to describe that  the constraint may be described at the 
schema level or application level and use pseudo code for the application 
level descriptions.

Source (Dymtry)
1. I see here something like that:
isa(instance:server,class:metaClass)

2. superclass-subclass is just basic relationship here. There are some
others:
isDefinedByInstances(
     class:Continent,
     instance:Eurasia,
     instance: Africa,
     instance:North_America,
     instance:South_America,
     instance:Australia,
     instance: Antarctica),
for example.

3. Personally, I see value in separating classes as basic, abstract  and
specializations. So I see here something like that:
isa(instance:server,class:metaClass),
isa(instance:server,class:basicClass),
subclass(subclass:basicClass,superclass:metaClass),
isa(instance:sqlServer,class:spesializationClass),
subclass(subclass:sqlServer,superclass:server)

4. Something like that:
eachHasToHaveResourceOccurrence(
     subjectClass:server,
     resourceClass:serverDescription),

eachHasToHaveDataOccurrence(
     subjectClass:server,
     resourceClass:installationDate,
     resourceDataClass:date),

eachDefinesClassRestrictionOnInstancePlayingRole(
     objectClass:server,
     objectAssociationRole: objectOfOwnership,
     associationClass:ownership,
     otherObjectAssociationRole:owner,
     otherObjectClassRestriction:itSpecialist)

5. Something like that:

hasCardinalityRestrictionOnNumberOfInstancesPlayingRole (
     instance:john3000,
     instanceRole:who,
     associationClass:hasSisters,
     restrictedRole:sisters,
     cardinalityRestriction:2)


3.4 Design Constraints
standards compliance,  limitations

3.5 Quality Attributes or Non Functional attributes

reliability
availability
security
maintability
portability
binary compatibility
usability
versioning
data updating
Resource utilization
serviceability
internationalization

3.7 Requirements for testing

Need to be described in a canonical syntax?

3.7 Non Requirements

Describe in detail what will not be addressed.

3.8 Risks