Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current
treeldr
executable is just a simple compiler that takes a bunch of RDF input files (in different languages, including TreeLDR) and produces an output in a given format. It is expected that this command line interface will be mostly inconvenient to use when managing dependencies and different targets, with all the associated options. For this reason, this PR proposes to rename thetreeldr
executable intotldrc
(for TreeLDR Compiler) and create a new user friendly "package manager" that handle all of that for us. This draft presents some of the possible features for such "package manager".Configuration file
A
treeldr.toml
file (or,yaml
, or any other configuration file format) defines, at the root, the dependencies and build targets of the package, with some metadata. Here is how it could look like:TreeLDR Package
A package is primarily defined by a base IRI and an RDF dataset defining
new terms relative to this base IRI.
For every RDF quad in the dataset:
Other quads are not allowed in the package.
The registry should prevent the definition of forbidden quads upon publishing.
Versioning
A package is published on a registry with a version strictly following
Semantic Versioning 2.0.0.
A change in the dataset is considered backward compatible if and only if:
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
(declared for instance with
https://schema.org/multipleValues
).Duplicates are ignored. Implicit quads (derived from the semantics of a term)
are not ignored.
For instance, for every property
p
, the following implicit quad is alwaysdefined:
unless the following quad is explicitly defined:
Adding the later would be a breaking change, as it implicitly means removing the
former.
Registry
Packages are downloaded from a registry, or directly from the source for well known packages such as
https://schema.org
. The registry can be local or remote. Once fetched, packages are cached in the package workspace.