Skip to content

Commit

Permalink
Merge pull request #22 from casework/release-0.2.0
Browse files Browse the repository at this point in the history
Release 0.2.0
  • Loading branch information
ajnelson-nist authored Mar 25, 2022
2 parents bf11689 + 30955e2 commit bdc4078
Show file tree
Hide file tree
Showing 106 changed files with 4,532 additions and 2,323 deletions.
37 changes: 37 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# This software was developed at the National Institute of Standards
# and Technology by employees of the Federal Government in the course
# of their official duties. Pursuant to title 17 Section 105 of the
# United States Code this software is not subject to copyright
# protection and is in the public domain. NIST assumes no
# responsibility whatsoever for its use by other parties, and makes
# no guarantees, expressed or implied, about its quality,
# reliability, or any other characteristic.
#
# We would appreciate acknowledgement if the software is used.

name: Continuous Integration

on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]

jobs:
build:

runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8]

steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Start from clean state
run: make clean
- name: Run tests
run: make check
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
[submodule "dependencies/CASE-Examples-QC"]
path = dependencies/CASE-Examples-QC
url = https://github.com/ajnelson-nist/CASE-Examples-QC.git
[submodule "dependencies/CASE-Utilities-Python"]
path = dependencies/CASE-Utilities-Python
url = https://github.com/casework/CASE-Utilities-Python.git
[submodule "dependencies/prov"]
path = dependencies/prov
url = https://github.com/trungdong/prov.git
Expand Down
7 changes: 5 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@ all: \
git submodule update
$(MAKE) \
--directory dependencies/CASE-Examples-QC \
.git_submodule_init.done.log \
.lib.done.log
.git_submodule_init.done.log
touch $@

check: \
Expand All @@ -43,6 +42,10 @@ check: \
clean: \
clean-figures \
clean-tests
@rm -f \
dependencies/CASE-Examples-QC/.git_submodule_init.done.log
@rm -f \
.git_submodule_init.done.log

clean-figures:
@$(MAKE) \
Expand Down
19 changes: 11 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ Participation by NIST in the creation of the documentation of mentioned software
This software currently does not install.

The [tests](tests/) directory demonstrates the two standalone scripts run against CASE example JSON-LD data.
* `case_prov_rdf.py` - This script takes as input a CASE graph file, and outputs a graph file that adds annotations to the CASE nodes that serve as a standalone PROV-O graph.
* `case_prov_dot.py` - This script takes as input a PROV-O graph file, and outputs a Dot render.
* `case_prov_rdf.py` - This script takes as input one or more CASE graph files, and outputs a graph file that adds annotations to the CASE nodes that serve as a standalone PROV-O graph.
* `case_prov_dot.py` - This script takes as input one or more PROV-O graph files, and outputs a Dot render.

On using `case_prov_rdf.py` to create a PROV-O graph, it is possible to provide that graph to a PROV-O consumer, such as a [PROV-CONSTRAINTS](https://www.w3.org/TR/prov-constraints/) validator. This CASE project runs a Python package listed on the [W3C 2013 implementations report](https://www.w3.org/TR/2013/NOTE-prov-implementations-20130430/), [`prov-check`](https://github.com/pgroth/prov-check), as part of its sample output. For instance, the [CASE-Examples repository](https://github.com/casework/CASE-Examples) is analyzed [here](tests/CASE-Examples/examples/prov-constraints.log).

Expand All @@ -35,7 +35,7 @@ This repository follows [CASE community guidance on describing development statu

The status of this repository is:

3 - Alpha
4 - Beta


## Versioning
Expand All @@ -45,10 +45,10 @@ This project follows [SEMVER 2.0.0](https://semver.org/) where versions are decl

## Ontology versions supported

This repository supports the CASE and UCO ontology versions that are linked as submodules in the [CASE Examples QC](https://github.com/ajnelson-nist/CASE-Examples-QC) repository. Currently, those are:
This repository supports the CASE and UCO ontology versions that are distributed with the [CASE-Utilities-Python repository](https://github.com/casework/CASE-Utilities-Python), at its submodule-tracked state [here](dependencies/CASE-Utilities-Python). Currently, those ontology versions are:

* CASE 0.3.0
* UCO 0.5.0
* CASE 0.6.0
* UCO 0.8.0


## Repository locations
Expand All @@ -64,6 +64,7 @@ Releases and issue tracking will be handled at the [casework location](https://g

Some `make` targets are defined for this repository:
* `all` - Build PROV-O mapping files based on CASE examples, and generate figures.
- **Non-Python dependency** - Figures require [`dot`](https://graphviz.org/) be installed.
* `check` - Run unit tests.
* `clean` - Remove built files.
* `distclean` - Also remove test-installation artifacts.
Expand Down Expand Up @@ -92,12 +93,14 @@ The following notes describe visual-design decisions.

### Visual-design credits

The `case_prov_dot` module adopts the design vocabulary used by Trung Dong Huynh's MIT-licensed Python project [`prov`](https://github.com/trungdong/prov). `prov`'s [short tutorial landing page](https://trungdong.github.io/prov-python-short-tutorial.html) illustrates the shape and color selections for various nodes, edges, and annotations. The `case_prov_dot` uses this instead of the W3C's design vocabulary, illustrated in [Figure 1 of the PROV-O documentation page](https://www.w3.org/TR/prov-o/#starting-points-figure), because of the greater color specificity used for the various between-node-class edges.
The `case_prov_dot` module adopts the design vocabulary used by Trung Dong Huynh's MIT-licensed Python project [`prov`](https://github.com/trungdong/prov). `prov`'s [short tutorial landing page](https://trungdong.github.io/prov-python-short-tutorial.html) illustrates the shape and color selections for various nodes, edges, and annotations. The `case_prov_dot` program uses this instead of the W3C's design vocabulary, illustrated in [Figure 1 of the PROV-O documentation page](https://www.w3.org/TR/prov-o/#starting-points-figure), because of the greater color specificity used for the various between-node-class edges.

The version of `prov` that `case_prov_dot` draws its designs from is tracked as a Git submodule. This tracking is not for any purpose of importing code. The [`prov.dot` package](https://github.com/trungdong/prov/blob/2.0.0/src/prov/dot.py) is imported as a library for its styling dictionaries, though this CASE project implements its own dot-formatted render to implement some extending design decisions, some of which are specific to CASE concepts.

[Conventions provided by the W3C](https://www.w3.org/2011/prov/wiki/Diagrams) were found after initial design of this section. Color selection has not been compared, but directional flow has been adopted. Notably, **time flows from up to down**, and when compared, **left to right**. *(Note, though, that left-to-right temporal flow is not yet implemented.)*

### Departures from original visual-design vocabulary

### Departures from original visual-design vocabularies


#### Activity-activity edges
Expand Down
2 changes: 1 addition & 1 deletion case_prov/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@
#
# We would appreciate acknowledgement if the software is used.

__version__ = "0.1.0"
__version__ = "0.2.0"
Loading

0 comments on commit bdc4078

Please sign in to comment.