Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Imprecise description of profile backmatter resolution #1442

Open
GaryGapinski opened this issue Sep 1, 2022 · 15 comments
Open

Imprecise description of profile backmatter resolution #1442

GaryGapinski opened this issue Sep 1, 2022 · 15 comments
Assignees
Labels
Aged A label for issues older than 2023-01-01 bug question
Milestone

Comments

@GaryGapinski
Copy link

Describe the bug

See https://pages.nist.gov/OSCAL/concepts/processing/profile-resolution/#d2e1377-head, which states

The output's backmatter MUST be generated by copying in each resource object from the backmatters of the imported catalogs/profiles in top-to-bottom order, then by copying in each resource object from the backmatter of the source profile itself. These objects MUST be processed in the order they are defined in each respective document.

Neither "top-to-bottom order" nor "the order they are defined in each respective document" have sufficient precision. Nor does this describe the order in which the "catalogs/profiles" should be processed (which should likely be the order in which they are cited in the "source profile", namely "document order"), nor the order in which the back-matter/resource elements of each "catalogs/profiles" should be processed (likely "document order"), nor the source profile's back-matter/resource element processing (likely "document order").

Who is the bug affecting

Profile resolution aficionados.

What is affected by this bug

Documentation

How do we replicate this issue

See https://pages.nist.gov/OSCAL/concepts/processing/profile-resolution/#d2e1377-head.

Expected behavior (i.e. solution)

The term "document order" should be used.

The order in which "catalogs/profiles" are processed should likely be the "document order" in which they are cited, followed ultimately by the "source profile".

I am uncertain if catalog or profile importation entails transitive catalog and profile importation and resolution, though that seems likely.

Other comments

A cat attempted to collaborate on this issue but was dissuaded.

Perhaps it is mentioned elsewhere: there is no explicit accommodation of XML comments or processing-instructions, nor of whitespace handling/normalization. For an XML profile resolution a simple accommodation would be to copy all descendant nodes of each the involved back-matter elements (in document order).

@aj-stein-nist
Copy link
Contributor

aj-stein-nist commented Jan 31, 2023

As Dave has rolled off the project, I will re-assign this to myself in the interim until I can update it.

@aj-stein-nist aj-stein-nist removed their assignment Mar 1, 2023
@aj-stein-nist
Copy link
Contributor

aj-stein-nist commented Mar 1, 2023

@aj-stein-nist aj-stein-nist self-assigned this Mar 3, 2023
@GaryGapinski
Copy link
Author

GaryGapinski commented Mar 4, 2023

Perhaps related: the subsequent (to "Backmatter Resolution") section "Metadata Resolution" first bullet asserts "The output catalog's metadata MUST have a unique top-level UUID (metadata:uuid)…". The metadata element does not possess a UUID. The "top-level UUID" might perhaps be the document root UUID, but that is not metadata.

@GaryGapinski
Copy link
Author

GaryGapinski commented Mar 4, 2023

The fourth bullet in "Metadata Resolution" asserts "The value of metadata:last-modified in the target MUST be set with a valid timestamp representing the time the profile resolution completed." [emphasis mine]. This requires extraordinary effort to achieve when using XSLT for profile resolution. Use of XPath current-dateTime() during a transformation will provide the time of transformation initiation: not transformation termination.

Edit: this observation has been filed as #1699 for separate treatment.

@aj-stein-nist
Copy link
Contributor

This requires extraordinary effort to achieve when using XSLT for profile resolution. Use of XPath current-dateTime() during a transformation will provide the time of transformation initiation: not transformation termination.

Point well made but a little out of scope for this issue. Would you be comfortable filing a new issue for us in regards to that? Thanks.

aj-stein-nist added a commit that referenced this issue Mar 5, 2023
Some order of operations for processing being described in back matter
resource resolution and other key operations of the specification are
described as 'top-down order' and similar phrases that are approachable
but less precise than 'document order' for underlying markup and data
languages we use, like XML, where 'document order' has a more precise
meaning.
@aj-stein-nist aj-stein-nist moved this from Todo to In Progress in NIST OSCAL Work Board Mar 5, 2023
@aj-stein-nist aj-stein-nist linked a pull request Mar 5, 2023 that will close this issue
6 tasks
@aj-stein-nist
Copy link
Contributor

aj-stein-nist commented Mar 5, 2023

I pushed up this local work to catch back up on it when I return, or for others. The changes are very small, but I updated my previous comment checklist in #1442 (comment) resolve. to review both implementations. I am not 100% sure it is correct but seems likely, but do need to double check.

@aj-stein-nist aj-stein-nist moved this from In Progress to Under Review in NIST OSCAL Work Board Mar 5, 2023
@iMichaela
Copy link
Contributor

Perhaps related: the subsequent (to "Backmatter Resolution") section "Metadata Resolution" first bullet asserts "The output catalog's metadata MUST have a unique top-level UUID (metadata:uuid)…". The metadata element does not possess a UUID. The "top-level UUID" might perhaps be the document root UUID, but that is not metadata.

@aj-stein-nist - the new issue created by Gary (#1699) does not include the confusing description raised by @GaryGapinski above (thank you Gary! Good catch). Do you want another issue for the wording correction around UUID being document's root level UUID and not metadata's UUID or would you prefer this wording correction to be addressed as part of the of #1548?

@aj-stein-nist
Copy link
Contributor

Perhaps related: the subsequent (to "Backmatter Resolution") section "Metadata Resolution" first bullet asserts "The output catalog's metadata MUST have a unique top-level UUID (metadata:uuid)…". The metadata element does not possess a UUID. The "top-level UUID" might perhaps be the document root UUID, but that is not metadata.

@aj-stein-nist - the new issue created by Gary (#1699) does not include the confusing description raised by @GaryGapinski above (thank you Gary! Good catch). Do you want another issue for the wording correction around UUID being document's root level UUID and not metadata's UUID or would you prefer this wording correction to be addressed as part of the of #1548?

I will circle back on my PR today and update this issue with a follow-up comment when I have made up my mind on this. It seems simple enough, but wanted to keep the issues and their PRs more thematically organized moving forward.

aj-stein-nist added a commit that referenced this issue Mar 15, 2023
Address feedback from @GaryGapinski and @iMichaela in issue comment that
is linked below.

#1442 (comment)
@aj-stein-nist aj-stein-nist moved this from Under Review to Todo in NIST OSCAL Work Board Mar 17, 2023
@aj-stein-nist
Copy link
Contributor

This was not added to Sprint 65, it can be added to a follow-on sprint. The remainder of work todo is PR review and merging. Then we will close be able to close this in said subsequent sprint.

@aj-stein-nist aj-stein-nist removed their assignment Apr 6, 2023
@aj-stein-nist aj-stein-nist added this to the Next milestone Sep 27, 2023
@aj-stein-nist
Copy link
Contributor

I will move forward this to next sprint, but think it is best to work on not updating this in develop, but the feature branch merged from a wonderful community member in #1596 and then prepare that for a release. Will have to discuss this during sprint planning.

@aj-stein-nist
Copy link
Contributor

aj-stein-nist commented Oct 30, 2023

This issue was discussed during sprint review. There was not sufficient time to meet, brain storm, and agree to the wording modification needed during this sprint. It will have to be moved forward to the next sprint. @JustKuzya will need to meet with @aj-stein-nist, @nikitawootten-nist, and @wendellpiez to move this forward.

@Compton-US Compton-US added the Aged A label for issues older than 2023-01-01 label Nov 2, 2023
@nikitawootten-nist nikitawootten-nist moved this from Todo to In Progress in NIST OSCAL Work Board Nov 2, 2023
@JustKuzya
Copy link
Contributor

JustKuzya commented Nov 6, 2023

After deep-dive with team we came to the conclusion that we don't have a better version of the profile resolution guidance wording at the moment. If @GaryGapinski and/or any other community member(s) have any ideas for better wording in the profile resolution description - we are open to the changes suggested.

The second conclusion of the discussion was: we do need more examples of the profile resolution with one and more base catalogs, that may have multiple unique as well as matching and/or similar back-matter items. For the purposes of generating examples we should have illustrative material presented in a brief concise form to not overburden the readers.

@Arminta-Jenkins-NIST
Copy link
Contributor

At 11/9/23 Triage Meeting: @JustKuzya suggested that this ticket along with #1314 will be superseded by a new issue in order to create examples and if needed clarify the profile resolution specification.

@iMichaela
Copy link
Contributor

@JustKuzya and @Compton-NIST - is this issue closable? It is marked Done.

@Arminta-Jenkins-NIST
Copy link
Contributor

At the 11/30 Triage Meeting: this issue is closable. The remaining work will be captured in a separate issue by @JustKuzya.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment