[ADR 06] Convention to choose names for rudof crates - rudof-project/rudof GitHub Wiki
[ADR 06] Convention to choose names for rudof crates
Context
At the start of the rudof project we were a bit informal in the way that we chose names for our crates. In this way, we had some crates like: iri_s, srdf, shex_ast, shex_validation, shapemap, etc. which don't follow a clear convention.
One of the problems is that some crates are about some common technologies for which the ideal name has already been taken like iri or rdf so we needed to separate our names from them. In the case of RDF, as rudof has its roots on a previous Scala implementation which had a module called SRDF we started to use srdf as something like "Simple RDF" which was initially intended to contain several common traits about RDF that we were using for validation.
Nevertheless, the crate started to grow as we added some features like RDF parser combinators making it a not so simple crate.
@samuel-bustamante suggested to use rudof_rdf and we had some internal discussions about the name. We even created a poll where Samuel argumented in favor of changing the name to rudof_rdf.
Decision
After the poll we have chosen to rename the crate to rudof_rdf.
At this moment, we have several other crates that are using the rudof_xxx convention like:
rudof_clirudof_generaterudof_librudof_mcp
Although we still have several other crates which are not using that convention like:
dctapshapemapprefixmap- . . .
In principle, we will use the following convention:
- If it is a technology that is core to rudof and which is mainly provided by rudof, like
shapemap,dctap, etc. we will keep the name without therudof_prefix. - If it is a technology that is provided already by other organizations which we specialize in rudof for some reason, like
rdf, we will use therudof_xxxconvention.
We notice that according to the previous rules iri_s should probably be renamed to rudof_iri
Consecuences
- Verbosity: The names of the crates will be a bit more verbose like
rudof_xxx. - Clarity: It immediately tells the user that this crate is part of the rudof suite.
- Lost of independence: If we would want the crate to stand alone outside the rudof project, a non-prefixed name would be better. That's why for crates like
dctapwe prefer to keep the non-prefixed version. - Trust: It will be more clear if those crates belong to the rudof project so users who trust rudof, could trust those crates.