Skip to content

Conversation

@vulnmaster
Copy link

Adds investigation:Technician as a new role class to the CASE investigation ontology, addressing Issue #184.

A technician is a forensics role focused on technical tasks during investigations, such as evidence collection, preservation, processing, initial analysis, and repair.

Changes:

  • Added investigation:Technician class definition to investigation.ttl
  • Created comprehensive test example (technician_role_PASS.json) demonstrating Identity-role-performer pattern with temporal tracking
  • Updated test suite (Makefile and test_validation.py)
  • Updated ChangeLog

The implementation follows the established pattern used by other role classes (Attorney, Examiner, Investigator, Subject) and maintains backward compatibility.

Tests demonstrate:

  • Technician role instances with appointment dates (startTime)
  • Identity linked to Technician role via uco-core:role
  • Technician role as performer of InvestigativeAction
  • Integration with Investigation, File, and ProvenanceRecord

All SHACL validation tests pass.

This is a low risk addition to CASE.

Ready for solution review.

@vulnmaster vulnmaster added Community-Vote Thumbs up or down for voting on a change. Project-NewObject Add a new object to the ontology. labels Oct 22, 2025
@vulnmaster vulnmaster removed their assignment Oct 22, 2025
@ajnelson-nist
Copy link
Member

Thank you @sbarnum for noting uco-core:role is in the test, and will need to be removed.

@ajnelson-nist ajnelson-nist added this to the CASE 1.5.0 milestone Dec 2, 2025
@ajnelson-nist ajnelson-nist linked an issue Dec 2, 2025 that may be closed by this pull request
15 tasks
@ajnelson-nist
Copy link
Member

@vulnmaster , this PR will need to be rebased to develop. It was started from master. This will need a Git force-push to correct. Do you wish to do that, or would you like me to?

@vulnmaster
Copy link
Author

vulnmaster commented Dec 2, 2025 via email

@ajnelson-nist
Copy link
Member

Alex - can you do this for me? I probably need to refork CASE to re-align to the current Main. Vulnmaster

The issue is not a stale repository. The issue is the CASE GitHub repository is one of the CDO repositories that uses Git-Flow, as described here. This needed to be started from develop.

I can do this from command-line if you checked the "Allow maintainers to modify" box (I forget the wording, it's on this page visible to you). I might be able to do this from the GitHub interface - I forget what a certain Edit feature does. I'll give it a try, maybe two, now.

@ajnelson-nist ajnelson-nist marked this pull request as draft December 2, 2025 23:12
@ajnelson-nist ajnelson-nist changed the base branch from master to develop December 2, 2025 23:13
@ajnelson-nist
Copy link
Member

Ok, the button only did half of what it needed to do. Force-pushing in a moment.

Adds investigation:Technician as a new role class to the CASE
investigation ontology, addressing Issue casework#184.

A technician is a forensics role focused on technical tasks during
investigations, such as evidence collection, preservation, processing,
initial analysis, and repair.

Changes:
- Added investigation:Technician class definition to investigation.ttl
- Created comprehensive test example (technician_role_PASS.json)
  demonstrating Identity-role-performer pattern with temporal tracking
- Updated test suite (Makefile and test_validation.py)
- Updated ChangeLog

The implementation follows the established pattern used by other role
classes (Attorney, Examiner, Investigator, Subject) and maintains
backward compatibility.

Tests demonstrate:
- Technician role instances with appointment dates (startTime)
- Identity linked to Technician role via uco-core:role
- Technician role as performer of InvestigativeAction
- Integration with Investigation, File, and ProvenanceRecord

All SHACL validation tests pass.

Closes casework#184
@ajnelson-nist ajnelson-nist force-pushed the 184-addition-of-investigationTechnician-role-class branch from 34ec2fa to 9d5b625 Compare December 2, 2025 23:15
@ajnelson-nist
Copy link
Member

Ok. Further revisions coming in light of the test review done prior to this morning.

No effects were observed on Make-managed files.

Signed-off-by: Alex Nelsin <alexander.nelson@nist.gov>
References:
* casework#184

Signed-off-by: Alex Nelsin <alexander.nelson@nist.gov>
Note this patch does not tie the role to the action, nor does it define
an investigation to tie the action, person, role, relationship, etc.,
together, due to needing to address broader design issues pertaining to
`uco-role:Role`, some of which are under exploration in CASE-Examples
Issue 155.

This patch also fixes a typo'd concept - `uco-core:Identity` was used
instead of `uco-identity:Identity`.
This was not revised to `uco-identity:Person` in light of discussion
going on in UCO Issue 652.

No effects were observed on Make-managed files.

References:
* casework#184
* casework/CASE-Examples#155
* ucoProject/UCO#652

Signed-off-by: Alex Nelsin <alexander.nelson@nist.gov>
@ajnelson-nist
Copy link
Member

@plbt5 - May this PR have your review, esp. with an eye to patch bed10f7 and its commit message?
@vulnmaster - do you agree with patch bed10f7 ? I forget if you can "Review" your own PR.

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

Labels

Community-Vote Thumbs up or down for voting on a change. Project-NewObject Add a new object to the ontology.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Technician Role Class to CASE

3 participants