niemopen / niem-naming-design-rules

NIEM Naming and Design Rules Specification
Other
4 stars 2 forks source link

Reorganize/Rewrite NDR for NIEM 6.0 #41

Open TomCarlson-NTAC opened 9 months ago

TomCarlson-NTAC commented 9 months ago

Steps to a NIEM 6.0 NDR:

  1. Separate normative from guidance that should go into other support documents
    1. Organize into Base/CFM, XML, etc
      1. Leverage existing work from Dr. Scott
  2. Schematron-based rules for XML NDR (concurrent with above, these are a priority for the tooling)
    1. Test against NIEM 6.0
      1. Update or remove as needed
      2. Add any needed additions
    2. Remove Schematron rules to an attachment or appendix
    3. Replace with plain English descriptions
      1. Extract rules text from assert structures, e.g. "A simple type definition MUST be top-level."
      2. Potentially leverage ChatGPT for initial explanations, e.g. "So, in simpler terms, this Schematron pattern is ensuring that in an XML Schema document, any definition of a simple type (like a basic data type) should be placed directly within the schema and not inside another construct. If it finds a simple type definition nested inside something else, it will raise an assertion error with the specified message."
      3. Modify and improve manually.
    4. Pass/fail test cases for new or modified rules
  3. Non-Schematron-based rules
    1. Re-word other rules in plain language as needed, many will be fine as-is
  4. Resolve and close outstanding issues
  5. Reorganize options:
    1. Potential Organization from [[Christina Medlin]]
    2. Reorganize by conformance targets?
    3. Along training lines?
      1. Mirror IEPD process?
    4. Top-down rather than bottom-up?
      1. Group concepts, then rules for that concept?
    5. Don't reorganize
  6. Other updates:
    1. Update definitions
    2. Update general text
    3. Request and apply OASIS template
  7. Schematron rules for CMF, where useful
iamdrscott commented 9 months ago

on # 1. Separate normative from guidance – I think this is an open question on # 2. Schematron rules: I sorted the existing rules by new conformance target. There are four SCH files in the dev branch; these can be tested now. We need new rules for the open issues and the new appinfo. I will work on those. What is the drop dead date? on # 7. I hope to avoid Schematron rules for CMF, because they can't be translated to CMF.

iamdrscott commented 9 months ago

NDR Rewrite [2024-02-07 draft]

What do we have yet to write?

I think that sooner or later we have to write the following normative specifications:

Do we want to write mappings for metamodel to XSD and metamodel to CMF? Or do we want the metamodel to just be informative documentation? There are about a dozen NDRs that can be expressed once at the metamodel level, if we write the mappings. But we might want to reiterate them in the XNDR anyway.

We aren't writing JSON Schema NDR, because JSON Schema is not a modeling formalism. I think the CMF to JSON Schema mapping is informative. I don't think it needs to go in the new NDR.

I suspect we will eventually need a Message Specification Specifcation, but for now it's just going to be guidance.

We want (early in the document) a How to read this document section and a Explaining the crazy s$!@ you're about to read section. (Titled, perhaps, Overview of the NIEM Technical Architecture. in the final draft.) I think perhaps we can get most of the latter section out of the data modeling paper (section 1), the Understanding the NIEM Technical Architecture paper, and the principles from NDR 5. I can glue that together and add anything else we want in it.

What do we not have to write?

When do we have to write it?

Tools are more important than specifications at this point. What specifications are critical path for tools?

The message specification guidance is worth writing as soon as the tools are usable. Or maybe a little before that.

What must be part of NDR 6.0 PS01? What can wait until later?

How do we want to organize it?

How should you respond now?

TomCarlson-NTAC commented 8 months ago

Contessa 6.0 (validation functionality in the API) needs the final Schematron rules, yes!