\label{doc_decisions_semantics_name_md_md_doc_decisions_semantics_name}%
\Hypertarget{doc_decisions_semantics_name_md_md_doc_decisions_semantics_name}%
 \hypertarget{doc_decisions_semantics_name_md_autotoc_md2141}{}\doxysection{Problem}\label{doc_decisions_semantics_name_md_autotoc_md2141}
It can get quite cumbersome to find out about key interrelations like arrays.\hypertarget{doc_decisions_semantics_name_md_autotoc_md2142}{}\doxysection{Constraints}\label{doc_decisions_semantics_name_md_autotoc_md2142}
\hypertarget{doc_decisions_semantics_name_md_autotoc_md2143}{}\doxysection{Assumptions}\label{doc_decisions_semantics_name_md_autotoc_md2143}
\hypertarget{doc_decisions_semantics_name_md_autotoc_md2144}{}\doxysection{Considered Alternatives}\label{doc_decisions_semantics_name_md_autotoc_md2144}
The alternative would be to have semantics in key names, with following advantages\+:


\begin{DoxyItemize}
\item maybe less metadata to save memory (only array?)
\end{DoxyItemize}\hypertarget{doc_decisions_semantics_name_md_autotoc_md2145}{}\doxysection{Decision}\label{doc_decisions_semantics_name_md_autotoc_md2145}
Do not encode any semantics into the key names. All semantic must be in metadata.

Nevertheless, there are guidelines (without any checks in {\ttfamily key\+Set\+Base\+Name})\+:


\begin{DoxyItemize}
\item {\ttfamily \#} is used to indicate that array numbers follow.
\item {\ttfamily ®} is used to indicate that some information was encoded in the key name. This is usually only needed internally in storage plugins.
\item The UTF-\/8 sequence {\ttfamily ®elektra} (i.\+e. the 9-\/byte sequence {\ttfamily C2 AE 65 6C 65 6B 74 72 61}) is reserved, see key name docu.
\end{DoxyItemize}

There are, however, rules and conventions which syntax to use for specific semantics. The {\ttfamily spec} plugin guards these rules.\hypertarget{doc_decisions_semantics_name_md_autotoc_md2146}{}\doxysection{Rationale}\label{doc_decisions_semantics_name_md_autotoc_md2146}

\begin{DoxyItemize}
\item for consistency, whenever possible, metadata should be preferred
\item no escaping of key base names necessary
\item it is very unlikely that {\ttfamily ®elektra} collides with a real key base name a user wanted to have
\item {\ttfamily ®elektra} makes very clear that there is a special reserved meaning
\item {\ttfamily ®elektra} UTF-\/8 encoding decodes to \char`\"{}some character\char`\"{} + ® in many 8-\/bit encodings (including ISO 8859-\/1 aka Latin1 and Windows (Codepage) 1252, in the encoding {\ttfamily C}, however, you get `'\textquotesingle{}\$\textquotesingle{}\textbackslash{}302\textbackslash{}256\textquotesingle{}\textquotesingle{}elektra\textquotesingle{}\`{})
\end{DoxyItemize}\hypertarget{doc_decisions_semantics_name_md_autotoc_md2147}{}\doxysection{Implications}\label{doc_decisions_semantics_name_md_autotoc_md2147}
\hypertarget{doc_decisions_semantics_name_md_autotoc_md2148}{}\doxysection{Related Decisions}\label{doc_decisions_semantics_name_md_autotoc_md2148}

\begin{DoxyItemize}
\item \mbox{\hyperlink{doc_decisions_array_md}{Arrays}}
\item \mbox{\hyperlink{doc_decisions_base_name_md}{Base Names}}
\end{DoxyItemize}\hypertarget{doc_decisions_semantics_name_md_autotoc_md2149}{}\doxysection{Notes}\label{doc_decisions_semantics_name_md_autotoc_md2149}
