# ARKmatrix

From ARK

## Strat Units

Unit Attributes

- Site Code
- Unit ID
- Label
- Class [Context, Subgroup, Group, Landuse]
- Type [Deposit, Fill, Cut, Masonry, Skeleton, Timber]
- Status [Allocated, Assigned, Void]
- Aggregate Unit
- Phase
- Period

## Strat Relations

- Above / Below (directed graph)
- Same-As (undirected graph)
- Contemporary With (undirected graph)

## Rules / Heuristics

Any Relations:

- Cannot be between same Unit
- Both Units must be same Class

Same-As Relations:

- Both Units must be Context class
- Adding relation should not create cycles (no intersection between successors and predecessors)
- Both Units must have the same Aggregate Unit if set
- Both Units must have the same Period / Phase if set

## Processing

Load

Validate

- Validate Units
- Validate Above/Below relations
- Validate Same-as Units

Resolve

- For each Same-As relationship add all Above/Below relations to each Unit

Validate

Reduce

- Remove all redundant Above/Below relations (transitive reduction)

Aggregate

- Validate all Context Units have an Aggregate Unit
- For each Context Above/Below relation where the Aggregate Unit is different between the Above and Below Units, add an Above/Below relation between the Aggregate Units to the Subgroup matrix
- Reduce the Subgroup matrix
- Validate all Subgroup Units have an Aggregate Unit
- For each Subgroup Above/Below relation where the Aggregate Unit is different between the Above and Below Units, add an Above/Below relation between the Aggregate Units to the Group matrix
- Reduce the Group matrix

## Development Plans

Some other notes: http://archaeologic.al/wiki/Harris_Matrix https://github.com/anvaka/graph-drawing-libraries https://github.com/ArsMasiuk/qvge