Skip to content

Declare conformance to Process Run Crate and fix validation issues - #23

Open
faizollah wants to merge 1 commit into
13-improve-rocrate-usagefrom
20-process-run-crate-conformance
Open

Declare conformance to Process Run Crate and fix validation issues#23
faizollah wants to merge 1 commit into
13-improve-rocrate-usagefrom
20-process-run-crate-conformance

Conversation

@faizollah

Copy link
Copy Markdown
Collaborator

Root conformsTo now lists https://w3id.org/ro/wfrun/process/0.5 alongside the FL
profile. That was enough for rocrate-validator to auto-detect both profiles, so no
manual selection is needed:

detected: ro-crate-1.2
detected: process-run-crate-0.5

One thing not in the issue: RO-Crate 1.2 requires every profile listed in root
conformsTo to have a contextual entity whose @type includes Profile, so both
profile entities are now ["CreativeWork", "Profile"] with a version.

Validation issues resolved (step 3)

The crate now validates against ro-crate-1.2 at REQUIRED severity with no issues.
Getting there surfaced real defects:

  • timestamps carried microseconds (...:37.218919+00:00), failing the ISO 8601 checks
    8.4/8.5 - now isoformat(timespec="seconds")
  • final_model.pt had no encodingFormat
  • File entities had no contentSize - now add_file(..., record_size=True)
  • #fl-strategy had no url, and neither did any dependency missing from our
    KNOWN_FRAMEWORKS map

One change worth flagging: version instead of softwareVersion

ro-crate-1.2_32.3 marks version REQUIRED on SoftwareApplication and does not
accept softwareVersion; all five of ours failed, including entities that already
carried a good softwareVersion. process-run-crate-0.5_4.1 accepts either, so
version satisfies both.

Flagging it because Process Run Crate says not to specify both and that consumers
prioritise softwareVersion, and softwareVersion is schema.org's property for this
type. Happy to reverse this if you'd rather we kept softwareVersion.

Remaining Process Run Crate failure — handled in #14/#15

process-run-crate-0.5 still reports ro-crate-1.1_5.3, the inherited RO-Crate 1.1
descriptor check, since ro-crate-py 0.15 writes 1.2. Per your suggestion, setting
disable_inherited_profiles_issue_reporting = True clears it.

The example crate is regenerated to match. 51 tests pass.

Closes #20

Root conformsTo now lists the Process Run Crate profile alongside the FL
profile, with a Profile contextual entity for each as RO-Crate 1.2 requires.

Validating with rocrate-validator surfaced several defects, all fixed:
timestamps carried sub-second precision that failed ISO 8601 checks, the
model file had no encodingFormat, File entities had no contentSize, and
SoftwareApplication entities for the strategy and for dependencies outside
the known-frameworks map had no url. Version is now recorded as version
rather than softwareVersion, which the RO-Crate 1.2 profile requires.

The crate validates against ro-crate-1.2 at REQUIRED severity with no
issues. The example crate is regenerated to match.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant