You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 53b0108
Browse filesBrowse the repository at this point in the historyBrowse files
explain what the package type answer actually decides
The README named the two package types in a table row and nowhere else, so
nothing said what choosing one does. Add a Package Types section: a vocabulary
package is a single RDFS/OWL ontology, kept on its own so other packages can
reuse exactly the ontology they need; a project package is the generic type
without limitations, and is what anything that is not exactly one ontology has
to be. Each states what it means for the generated manifest, and a short table
collects the three things that actually differ.
While there, mark the two dependency questions as project only and document the
marketplace answer, which had no row at all.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016MGuMik6ThZXqcQR6VhBHg
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,6 +16,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
16
16
- Three authoring skills in the same directory: `package-content` (what `cpa-manifest.json` must declare, the licence rules, and how to check a package without a Corporate Memory connection), `build-projects` (DataIntegration project exports and workflow tasks) and `shapes` (the SHACL/shui shape catalog that drives the Explore UI)
17
17
- vocabulary packages receive `package-content` only, since a build project and a shape catalog are things they do not have
18
18
19
+
### Changed
20
+
21
+
- The README now has a *Package Types* section explaining what the `package_type` answer decides - what each type ships, why a vocabulary package is asked no dependency questions, and which authoring skills a project package receives on top
Copy file name to clipboardExpand all lines: README.md
+55-3Lines changed: 55 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,57 @@
9
9
10
10
A [Copier](https://copier.readthedocs.io/) template for creating [eccenca Corporate Memory (Marketplace) packages](https://go.eccenca.com/feature/marketplace-packages).
11
11
12
+
## Package Types
13
+
14
+
`package_type` is the first question the template asks, and it is more than a
15
+
label: it decides what the generated manifest declares, which further questions
16
+
you are asked, and which authoring skills the package receives.
17
+
18
+
### Vocabulary Package (`vocabulary`)
19
+
20
+
A vocabulary package ships a single RDFS/OWL ontology: the classes, properties
21
+
and annotations of one schema. Keeping it on its own is the point of this type -
22
+
other packages can then reuse exactly the ontology they need, instead of pulling
23
+
in a bloated all-in-one project that happens to carry it as well.
24
+
25
+
Its graph entry is declared with `register_as_vocabulary: true`, so installing
26
+
the package does not only load the graph, it registers it in the vocabulary
27
+
catalog of Corporate Memory, where it becomes available to the tools that build
28
+
on it. This is also why the graph needs an `owl:Ontology` declaration carrying
29
+
VANN namespace metadata, see [Graphs](#graphs).
30
+
31
+
A marketplace vocabulary package cannot declare dependencies at all, so the
32
+
template does not ask for `python_dependencies` or `vocab_dependencies` - an
33
+
answer would have nowhere to go in the manifest.
34
+
35
+
### Project Package (`project`)
36
+
37
+
A project package is the generic type, and the one without limitations: it
38
+
ships everything else a Corporate Memory setup could need, and several of them
39
+
at once - DataIntegration project exports (`.zip`), data and shape graphs,
40
+
images. If a package is not exactly one ontology, it is a project package.
41
+
42
+
Its graph entries are generated with `register_as_vocabulary: false`, because
43
+
they carry data rather than schema - a package that also wants to register a
44
+
vocabulary can still set the flag on an individual file entry.
45
+
46
+
A project package may depend on Python packages (typically cmem plugins,
47
+
installed from PyPI) and on other marketplace packages. The template asks for
48
+
both and turns the answers into the `dependencies` entries of the manifest -
49
+
this is where a vocabulary package is named, rather than its ontology copied
50
+
into this one.
51
+
52
+
### What the answer changes
53
+
54
+
Everything else is the same for both types - the repository layout, the
55
+
`Taskfile.yaml`, the CI pipeline and the build, install and publish workflow:
0 commit comments