Github user christopher-johnson commented on the issue:
https://github.com/apache/jena/pull/401
the module system does not allow two distinct modules (e.g.
`org.apache.jena.arq` and `org.apache.jena.base`) to export the same package
(e.g. `org.apache.jena.atlas`).
There are two options in this situation,
1. consolidate the package into an existing module.
2. separate the package into a new module.
Option 2 is only viable when the package has no dependencies to another
module that depends on it (i.e. a cyclical relationship). I think that
`org.apache.jena.atlas` is not a candidate for separation from
`org.apache.jena.arq` as `org.apache.jena.riot` depends on it, and
`org.apache.jena.atlas` depends on `org.apache.jena.riot`, so they must be in
the same module (given the existing code).
I agree that there is a balance between organizational convenience and
radical (presumably hierarchical) package retrofitting to support strong
encapsulation. The concept of one-way dependency vectors governs modularity,
but this does not necessarily agree with component semantics when implemented
with package names.
---