Releases: casework/CASE-Implementation-PROV-O
0.14.0
0.13.0
What's Changed
Adjustments
- In the event a node is dual-typed as
prov:Entityandprov:Agent,prov:Agent's styling prevails ( #118 ) prov:Activityis now re-aligned totime:Intervalinstead oftime:ProperInterval, allowing for instantaneous activities ( #113 , #117 )
Internal details
Entitytemporal sequencing steps are now handled withSELECTSPARQL queries ( #119 )pydotrendering logic for nodes is now consolidated with less reliance on cachedicts ( #127 )
Fixes
Dependencies
- The Python latter tested version is now 3.13 ( #110 )
- Type signatures for pySHACL usage are updated ( #105 )
- Type signatures for
pydotusage are updated ( #114 ) - GitHub Action pins are updated ( #106 )
- The build step in CI now uses the
buildmodule ( #107 )
Maintenance
- The
check-supply-chainrecipe now reviews type signatures ( #115 ) - The
check-supply-chainrecipe now runs nightly ( #109 ) - Relax
pre-commitupdate enforcement has been relaxed, only raising a notice if code would be changed from a pin update ( #104 ) - The CI "build" step now disambiguates some built resources ( #108 )
Licensing
- NIST licensing text is updated ( #111 )
Full Changelog: 0.12.2...0.13.0
0.12.2
This release sets a ceiling on two dependencies for users of case-prov < 0.13.0, and catches up on build system maintenance.
This release replaces 0.12.1, which was accidentally created against an unintended branch.
Release notes drafted by @ajnelson-nist .
Release posted by @vulnmaster .
0.12.0
New features:
case-utils0.16.0 is now adopted.
0.11.0
New features:
case-utils0.15.0 is now adopted.
0.10.0
This is a maintenance release, primarily issued to bump adoption of case-utils to 0.14.0 and incorporate a behavior change in handling SHACL Qualified Shapes.
The newest tested version of Python is now 3.12.
0.9.1
This is a maintenance release, not revising any user user-facing features or interfaces.
- "Supply chain" review was scheduled for nightly refreshes. This is now done instead as a pre-release check for this repository.
- The CASE-Examples repository now uses
case-prov, so the dependency this repository had on CASE-Examples became circular, and is now removed.
0.9.0
New features:
case-utils 0.13.0is now adopted.
Requirement updates:
- The minimal required Python version is now 3.9.
Maintenance updates:
- CASE example data is now brought in through direct submodule tracking of CASE-Examples and the CASE website repository.
0.8.0
New features:
case-utils0.11.0 is now adopted.- OWL-Time is now incorporated into the inferencing logic of
case_prov_rdfandcase_prov_dot, following the non-normative PROV-O alignment suggestions of OWL-Time Section 5.7. Thecase-provREADME documents the illustration and inference effects.- To have time objects (
time:Intervals and their boundarytime:Instants) be visibly displayed, rather than only invisibly influencing layout, pass--display-time-linkstocase_prov_dot.
- To have time objects (
- Timestamps used on
case-investigation:InvestigativeActions now have a visual timeline behavior incase_prov_dot.- Those timestamps can also be used for timelining analysis from
time:Instants inferred bycase_prov_rdf. For example, an investigative action that has auco-observable:Fileas a result induces atime:Instantrepresenting the instant the file was created, which might or might not eventually receive a timestamp in an analyst's workflow, but the timestamp is asserted to betime:beforethe endingtime:Instantof the investigative action. - A caveat on timestamp ordering: Only timestamps with a timezone will be cast into
time:inXSDDateTimeStamp. (At the time of the 2022-11-15 OWL-Time draft,time:inXSDDateTimeis deprecated.) This is left to the user as a UCO data preparation responsibility.time:Instants will still be inferred and topologically linked for timestamps without timezones. - Another caveat on timestamp ordering: Currently, only timestamps with a timezone (i.e. ending with either
+00:00orZ) will influence timeline sorting bycase_prov_dot. Help is welcome to implement general timezone sorting in a futurecase-provrelease.
- Those timestamps can also be used for timelining analysis from
- On an investigative action, a
uco-action:endTimetimestamp is treated as a designation the action has an end. In general, an investigative action is not assumed to have an end, though all investigative actions are assumed to have a beginning. case_prov_dotandcase_prov_dotnow have some generated effects that can be influenced from UUID randomization. A flag--use-deterministic-uuids is now provided for these commands.- Using the inherence functions from
case-utils0.11.0,prov:Influences (Association,Attribution, etc.) andprov:InstantaneousEvents (Generation,Start, etc.) are now handled in Python code rather than SPARQLCONSTRUCTqueries. This is to avoid generating blank nodes, and to also incorporate run-time requests to use non-deterministic UUIDs or not (whether through inherence incase_utils.inherent_uuid, or the "demo" nonrandom UUIDs fromcase_utils.local_uuid). - (Also a bug fix.) Node labels from
case_prov_dotare no longer limited to a single label string (e.g. if there were twordfs:comments, only one would display). - Node labels from
case_prov_dotnow preserve the annotating predicate as part of the label's line ordering. case_prov_rdfnow carries forwarduco-core:descriptionrather than casting its contents to anrdfs:comment.case_prov_rdfnow carries forwarduco-core:name, andcase_prov_dotnow displays it, for UCO nodes inferred to beprov:Activitys,prov:Agents, orprov:Entitys.
Maintenance updates:
- Documentation for modules now includes doctests (inlined code samples) for functions.
case_provis now type-reviewed withmypy --strict.- The project's home page link from PyPI has been fixed.
case_prov_dot's code flow has been nearly totally reordered and inline-documented.
0.7.0
New features:
- case-utils 0.10.0 is now adopted.
case-provnow reviews data using CASE ontology version 1.2.0.- Python 3.8 is now the earlist version of Python reviewed.
Maintenance updates:
pre-commitmodule versions are now reviewed nightly.- Some type signatures have been revised to accommodate a recent update in RDFLib.