diff --git a/officinam/999999999/0/1603_1.py b/officinam/999999999/0/1603_1.py index 4d06113..d3e99df 100755 --- a/officinam/999999999/0/1603_1.py +++ b/officinam/999999999/0/1603_1.py @@ -649,6 +649,17 @@ def numerordinatio_ordo(numerordinatio: str) -> int: return (normale.count('_') + 1) +def numerordinatio_progenitori( + numerordinatio: str, separatum: str = "_") -> int: + # prōgenitōrī, s, m, dativus, https://en.wiktionary.org/wiki/progenitor + normale = numerordinatio_neo_separatum(numerordinatio, separatum) + _parts = normale.split(separatum) + _parts = _parts[:-1] + if len(_parts) == 0: + return "0" + return separatum.join(_parts) + + def numerordinatio_lineam_hxml5_details(rem: dict, title: str = None) -> str: # codex = rem['#item+conceptum+codicem'] @@ -4020,7 +4031,12 @@ def imprimere_in_rdf_skos_ttl(self) -> list: @see https://www.w3.org/TR/skos-reference/ @see https://www.w3.org/TR/turtle/ - @see https://www.w3.org/2015/03/ShExValidata/ + + @TODO: links to add to + https://github.com/EticaAI/multilingual-lexicography/issues/38 + - https://www.fao.org/agrovoc/linked-data + - https://skos-play.sparna.fr/play/ + - https://www.w3.org/2015/03/ShExValidata/ Returns: list: _description_ @@ -4035,11 +4051,13 @@ def imprimere_in_rdf_skos_ttl(self) -> list: '# [{0}]'.format( numerordinatio_neo_separatum(self.codex.de_codex, ':')), # '@prefix rdf: .', - # '@prefix rdfs: .', + '@prefix rdfs: .', # '@prefix owl: .', '@prefix skos: .', # '# @prefix : {0}_ .'.format(self.codex.de_codex) ] + + # @TODO; only add namespaces if they actually are necessary. paginae.extend(caput) # archivum_no1_et_no11 = DataApothecae.quod_tabula(self.codex.de_codex) @@ -5930,24 +5948,52 @@ def quod_rdf_skos_ttl_concepta(self) -> list: self._initiari_v2() paginae = [] + + nomen = numerordinatio_neo_separatum(self.nomen, ':') + + paginae.append("# @TODO /Isso requer revisão da organização/@por-Latn") + paginae.append(" a skos:Concept ;".format(nomen)) + # paginae.append(" skos:prefLabel\n {0} .".format( + # ",\n ".join(linguae) + # )) + paginae.append(" skos:prefLabel \"{0}\"@{1} .".format( + nomen, + 'mul-Zyyy-x-n1603' + )) + paginae.append('') + # for codex_de, res in enumerate(self.concepta): for codex_de, res in self.concepta.items(): - nomen = numerordinatio_neo_separatum(self.nomen, ':') + codex_de_n = numerordinatio_neo_separatum(codex_de, ':') if codex_de_n.startswith('0:1603'): continue numerodinatio = nomen + ':' + str(codex_de_n) # paginae.append(':{0} a skos:Concept ;'.format(codex_de)) - paginae.append(" a skos:Concept ; ".format(numerodinatio)) - - # paginae.append('# {0} ' + str(res)) + paginae.append(" a skos:Concept ;".format(numerodinatio)) linguae = self._quod_linguae(res) if len(linguae) > 0: paginae.append(" skos:prefLabel\n {0} .".format( ",\n ".join(linguae) )) + + progenitor = numerordinatio_progenitori(numerodinatio, ':') + # paginae.append(' rdfs:subClassOf . '.format( + # paginae.append(' skos:topConceptOf . '.format( + # progenitor + # )) + # paginae.append(' skos:topConceptOf .') + # paginae.append(' skos:topConceptOf ;') paginae.append('') + + # @TODO: ... + + # @TODO: edge case, such as 1603:25:1 + # a skos:Concept ; + # skos:prefLabel + # "extremitates"@lat-Latn-x-wikip3982 . + return paginae diff --git a/officinam/999999999/999999999.lib.sh b/officinam/999999999/999999999.lib.sh index 1283786..6d04824 100644 --- a/officinam/999999999/999999999.lib.sh +++ b/officinam/999999999/999999999.lib.sh @@ -628,6 +628,44 @@ file_convert_tmx_de_numerordinatio11() { hxltmcli --tmeta-archivum "$tmeta" --objectivum-TMX "$fontem_archivum" "$objectivum_archivum" } +####################################### +# Convert a "full" .no11.tm.hxl.csv to .no11.skos.ttl +# +# @see https://www.w3.org/2015/03/ShExValidata/ +# +# Globals: +# ROOTDIR +# Arguments: +# numerordinatio +# Outputs: +# Convert files +####################################### +file_convert_rdf_skos_ttl_de_numerordinatio11() { + numerordinatio="$1" + + _path=$(numerordinatio_neo_separatum "$numerordinatio" "/") + _nomen=$(numerordinatio_neo_separatum "$numerordinatio" "_") + _prefix=$(numerordinatio_neo_separatum "$numerordinatio" ":") + + _basim_fontem="${ROOTDIR}" + _basim_objectivum="${ROOTDIR}" + + fontem_archivum="${_basim_fontem}/$_path/$_nomen.no11.tm.hxl.csv" + objectivum_archivum="${_basim_objectivum}/$_path/$_nomen.no11.skos.ttl" + objectivum_archivum_temporarium="${ROOTDIR}/999999/0/$_nomen.no11.skos.ttl" + # tmeta="${ROOTDIR}/999999999/0/hxltm-exemplum.tmeta.yml" + + echo "${FUNCNAME[0]}: [$fontem_archivum] --> [$objectivum_archivum]" + + "${ROOTDIR}/999999999/0/1603_1.py" \ + --methodus='status-quo' \ + --status-quo-in-rdf-skos-turtle \ + --codex-de "$_nomen" \ + >"$objectivum_archivum_temporarium" + + file_update_if_necessary 'rdf_skos_ttl' "$objectivum_archivum_temporarium" "$objectivum_archivum" +} + ####################################### # Hotfix to remove duplicated merge keys in files (in place change) # See file_merge_numerordinatio_de_wiki_q() for reasoning @@ -727,7 +765,7 @@ neo_codex_de_numerordinatio() { # set -x "${ROOTDIR}/999999999/0/1603_1.py" \ - --methodus='codex' \ + --methodus='codex' \ --objectivum-linguam="$est_objectivum_linguam" \ --auxilium-linguam="$est_auxilium_linguam" \ --codex-de "$_nomen" \ @@ -2384,7 +2422,6 @@ temp_validate_librario() { # --codex-de "$_nomen" --status-quo \ # >"$opus_temporibus_temporarium" - while IFS=$'\t' read -r -a line; do # echo "${line[0]}" @@ -2402,48 +2439,48 @@ temp_validate_librario() { # echo "${line[2]}" done <"$opus_temporibus_temporarium" -# ./999999999/0/1603_1.py --methodus='opus-temporibus' --ex-opere-temporibus='locale' --quaero-ix_n1603ia='({publicum}>=9)' > 999999/0/apothecae-list.txt - -# "${ROOTDIR}/999999999/0/1603_1.py" \ -# --methodus='status-quo' \ -# --codex-de "$_nomen" --status-quo \ -# >"$status_archivum_codex" - -# "${ROOTDIR}/999999999/0/1603_1.py" \ -# --methodus='status-quo' \ -# --codex-de "$_nomen" --status-quo --status-in-datapackage \ -# >"$datapackage_dictionaria" - -# # echo "$status_archivum_librario status_archivum_librario " - -# # set -x -# "${ROOTDIR}/999999999/0/1603_1.py" \ -# --methodus='status-quo' \ -# --codex-de "$_nomen" --status-quo --ex-librario="$_ex_librario" \ -# >"$objectivum_archivum_temporarium" -# # set +x - -# # We use statum.yml, not datapackage to know state of the library. That's why -# # we can overryde directly -# # set -x -# "${ROOTDIR}/999999999/0/1603_1.py" \ -# --methodus='status-quo' \ -# --codex-de "$_nomen" --status-quo --ex-librario="$_ex_librario" \ -# --status-in-datapackage \ -# >"$datapackage_librario" -# # set +x - -# # NOTE: this operation should be atomic. But for sake of portability, -# # we're using temporary file without flog or setlock or something. -# # Trying to use --status-quo --ex-librario -# # without temporary file will reset old information. That's why -# # we're using temp file -# if [ -f "$status_archivum_librario" ]; then -# rm "$status_archivum_librario" && -# mv "$objectivum_archivum_temporarium" "$status_archivum_librario" -# else -# mv "$objectivum_archivum_temporarium" "$status_archivum_librario" -# fi + # ./999999999/0/1603_1.py --methodus='opus-temporibus' --ex-opere-temporibus='locale' --quaero-ix_n1603ia='({publicum}>=9)' > 999999/0/apothecae-list.txt + + # "${ROOTDIR}/999999999/0/1603_1.py" \ + # --methodus='status-quo' \ + # --codex-de "$_nomen" --status-quo \ + # >"$status_archivum_codex" + + # "${ROOTDIR}/999999999/0/1603_1.py" \ + # --methodus='status-quo' \ + # --codex-de "$_nomen" --status-quo --status-in-datapackage \ + # >"$datapackage_dictionaria" + + # # echo "$status_archivum_librario status_archivum_librario " + + # # set -x + # "${ROOTDIR}/999999999/0/1603_1.py" \ + # --methodus='status-quo' \ + # --codex-de "$_nomen" --status-quo --ex-librario="$_ex_librario" \ + # >"$objectivum_archivum_temporarium" + # # set +x + + # # We use statum.yml, not datapackage to know state of the library. That's why + # # we can overryde directly + # # set -x + # "${ROOTDIR}/999999999/0/1603_1.py" \ + # --methodus='status-quo' \ + # --codex-de "$_nomen" --status-quo --ex-librario="$_ex_librario" \ + # --status-in-datapackage \ + # >"$datapackage_librario" + # # set +x + + # # NOTE: this operation should be atomic. But for sake of portability, + # # we're using temporary file without flog or setlock or something. + # # Trying to use --status-quo --ex-librario + # # without temporary file will reset old information. That's why + # # we're using temp file + # if [ -f "$status_archivum_librario" ]; then + # rm "$status_archivum_librario" && + # mv "$objectivum_archivum_temporarium" "$status_archivum_librario" + # else + # mv "$objectivum_archivum_temporarium" "$status_archivum_librario" + # fi } @@ -2477,6 +2514,7 @@ actiones_completis_locali() { # echo "yay" file_translate_csv_de_numerordinatio_q "$numerordinatio" "0" "0" "1" file_merge_numerordinatio_de_wiki_q "$numerordinatio" "0" "0" + file_convert_rdf_skos_ttl_de_numerordinatio11 "$numerordinatio" file_convert_tmx_de_numerordinatio11 "$numerordinatio" file_convert_tbx_de_numerordinatio11 "$numerordinatio" # else @@ -2486,7 +2524,7 @@ actiones_completis_locali() { neo_codex_copertae_de_numerordinatio "$numerordinatio" "0" "0" neo_codex_de_numerordinatio "$numerordinatio" "0" "0" neo_codex_de_numerordinatio_epub "$numerordinatio" "0" "0" - # neo_codex_de_numerordinatio_pdf "$numerordinatio" "0" "0" + neo_codex_de_numerordinatio_pdf "$numerordinatio" "0" "0" temp_save_status "$numerordinatio" "locale" } diff --git a/officinam/999999999/999999_17.sh b/officinam/999999999/999999_17.sh index 8857743..a0a065f 100755 --- a/officinam/999999999/999999_17.sh +++ b/officinam/999999999/999999_17.sh @@ -74,7 +74,7 @@ file_download_1603_xlsx "1" # actiones_completis_locali "1603_25_1" # actiones_completis_locali "1603_44_86" # actiones_completis_locali "1603_45_31" -# actiones_completis_locali "1603_63_101" +actiones_completis_locali "1603_63_101" # actiones_completis_locali "1603_44_86" # actiones_completis_locali "1603_99_876" # actiones_completis_locali "1603_1_8000" @@ -82,7 +82,7 @@ file_download_1603_xlsx "1" #### Manual action, TEST locally, one per time, END ---------------------------- ## Full drill (remote, specific item) -actiones_completis_publicis "1603_25_1" +# actiones_completis_publicis "1603_25_1" # actiones_completis_publicis "1603_1_8000" # deploy_0_9_markdown @@ -91,7 +91,7 @@ actiones_completis_publicis "1603_25_1" # deploy_0_9_markdown # temp_validate_librario "locale" -temp_validate_librario "cdn" +# temp_validate_librario "cdn" # @TODO: maybe check ssdiff (diff spreadsheets) to our uses.