[ 
https://issues.apache.org/jira/browse/TIKA-4794?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18100208#comment-18100208
 ] 

Hudson commented on TIKA-4794:
------------------------------

SUCCESS: Integrated in Jenkins build Tika » tika-main-jdk17 #1504 (See 
[https://ci-builds.apache.org/job/Tika/job/tika-main-jdk17/1504/])
TIKA-4794-option-3 (#2964) (github: 
[https://github.com/apache/tika/commit/9b9e53ac62b94d36d8df9b1c2ba6ff6fb135c02f])
* (edit) docs/modules/ROOT/pages/using-tika/server/index.adoc
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file3_attachBNotA.doc.json
* (edit) docs/modules/ROOT/pages/configuration/digesters.adoc
* (edit) tika-serialization/src/test/resources/configs/TIKA-3695-fields.json
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java
* (edit) 
tika-serialization/src/test/resources/configs/TIKA-3137-field-mapping.json
* (edit) 
tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ProfilerBase.java
* (add) .skills/metadata-schema.md
* (edit) 
tika-e2e-tests/tika-grpc/src/test/java/org/apache/tika/pipes/filesystem/HandlerTypeTest.java
* (edit) 
tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/MetadataWriteLimiterTest.java
* (edit) 
tika-integration-tests/tika-pipes-solr-integration-tests/src/test/resources/solr/plugins-template.json
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/HtmlHandler.java
* (edit) 
tika-pipes/tika-pipes-plugins/tika-pipes-opensearch/src/main/java/org/apache/tika/pipes/emitter/opensearch/OpenSearchClient.java
* (edit) 
tika-metadata-schema/src/main/java/org/apache/tika/metadata/schema/MetadataKeyValidator.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/src/main/java/org/apache/tika/parser/mail/MailContentHandler.java
* (edit) 
tika-serialization/src/test/java/org/apache/tika/serialization/JsonMetadataTest.java
* (edit) tika-app/src/test/java/org/apache/tika/cli/TikaCLIAsyncTest.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/iwana/IWork18PackageParser.java
* (edit) 
tika-core/src/test/java/org/apache/tika/metadata/MetadataInternalKeyGuardTest.java
* (edit) 
tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/MetadataResourceTest.java
* (edit) 
tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/RecursiveMetadataResourceTest.java
* (edit) tika-core/src/main/java/org/apache/tika/metadata/Office.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file12_es.txt.json
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java
* (edit) 
tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/OpenNLPMetadataFilterTest.java
* (edit) docs/modules/ROOT/pages/migration-to-4x/chunk-strategies.adoc
* (edit) 
tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerIntegrationTest.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xmp-commons/src/main/java/org/apache/tika/parser/xmp/XmpExtractor.java
* (edit) 
tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ExtractComparer.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/XMLProfiler.java
* (edit) 
tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/async/AsyncChaosMonkeyTest.java
* (edit) tika-metadata-schema/README.md
* (edit) 
tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/db/Cols.java
* (edit) 
tika-serialization/src/test/java/org/apache/tika/digest/MockDigesterFactory.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file8_IOEx.pdf.json
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file8_IOEx.pdf.json
* (edit) 
tika-integration-tests/tika-pipes-kafka-integration-tests/src/test/resources/kafka/plugins-template.json
* (edit) 
tika-pipes/tika-pipes-plugins/tika-pipes-es/src/test/java/org/apache/tika/pipes/emitter/es/ESClientTest.java
* (edit) tika-core/src/main/java/org/apache/tika/metadata/AccessPermissions.java
* (edit) 
tika-integration-tests/tika-pipes-solr-integration-tests/src/test/resources/tika-config-solr-urls.json
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file15_tags
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file1.pdf.json
* (edit) docs/modules/ROOT/pages/advanced/setting-limits.adoc
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFObjDataParser.java
* (edit) 
tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/OpenAIEmbeddingFilterTest.java
* (edit) 
tika-serialization/src/test/java/org/apache/tika/metadata/writefilter/StandardMetadataLimiterTest.java
* (edit) 
tika-xmp/src/main/java/org/apache/tika/xmp/convert/MSOfficeXMLConverter.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file14_diffAttachOrder.json
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file6_accessEx.pdf.json
* (edit) 
tika-parsers/tika-parsers-ml/tika-inference/src/main/java/org/apache/tika/inference/ImageEmbeddingConfig.java
* (edit) 
tika-xmp/src/main/java/org/apache/tika/xmp/convert/MSOfficeBinaryConverter.java
* (edit) 
tika-core/src/main/java/org/apache/tika/sax/AbstractRecursiveParserWrapperHandler.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file2_attachANotB.doc.json
* (edit) tika-serialization/src/test/resources/configs/TIKA-3695.json
* (edit) 
tika-pipes/tika-pipes-plugins/tika-pipes-jdbc/src/main/java/org/apache/tika/pipes/emitter/jdbc/JDBCEmitterFactory.java
* (edit) tika-core/src/main/java/org/apache/tika/metadata/DWG.java
* (edit) 
tika-example/src/test/java/org/apache/tika/example/TestParsingExample.java
* (edit) 
tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/metadata/filter/AttachmentCountingListFilter.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file13_attachANotB.doc
* (edit) 
tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/PipesServerTest.java
* (edit) 
tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/RecursiveMetadataFilterTest.java
* (edit) tika-core/src/main/java/org/apache/tika/metadata/Rendering.java
* (edit) 
tika-metadata-schema/src/test/java/org/apache/tika/metadata/schema/MetadataKeyValidatorTest.java
* (edit) tika-core/src/main/java/org/apache/tika/digest/InputStreamDigester.java
* (edit) tika-core/src/main/java/org/apache/tika/metadata/QuattroPro.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/src/main/java/org/apache/tika/parser/mbox/MboxParser.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java
* (edit) 
tika-server/tika-server-standard/src/test/resources/configs/TIKA-3137-include.json
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java
* (edit) 
tika-serialization/src/test/java/org/apache/tika/serialization/JsonMetadataListTest.java
* (edit) tika-core/src/main/java/org/apache/tika/metadata/Zip.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file16_badTags
* (edit) 
tika-ml/tika-ml-junkdetect-tools/src/test/java/org/apache/tika/ml/junkdetect/tools/BuildJunkAugmentationData.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file6_accessEx.pdf.json
* (edit) 
tika-parsers/tika-parsers-ml/tika-inference/src/main/java/org/apache/tika/inference/ChunkSerializer.java
* (edit) 
tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-keys.json
* (edit) 
tika-parsers/tika-parsers-ml/tika-inference/src/main/java/org/apache/tika/inference/InferenceConfig.java
* (delete) 
tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-string-keys.json
* (add) 
tika-metadata-schema/src/test/java/org/apache/tika/metadata/schema/MetadataNoUnderscoreTest.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/resources/configs/TIKA-3137-include.json
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file17_tagsOutOfOrder
* (edit) tika-xmp/src/main/java/org/apache/tika/xmp/convert/RTFConverter.java
* (edit) 
tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-key-fields.json
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/OleObjectRegressionTest.java
* (edit) tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file14_diffAttachOrder
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file13_attachANotB.doc.json
* (edit) 
tika-integration-tests/tika-pipes-s3-integration-tests/src/test/resources/s3/tika-config-s3.json
* (edit) tika-core/src/main/java/org/apache/tika/metadata/PDF.java
* (edit) docs/modules/ROOT/pages/advanced/integration-testing/tika-server.adoc
* (edit) 
tika-pipes/tika-pipes-plugins/tika-pipes-az-blob/src/main/java/org/apache/tika/pipes/emitter/azblob/AZBlobEmitter.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file2_attachANotB.doc.json
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java
* (edit) 
tika-pipes/tika-pipes-integration-tests/src/test/resources/configs/tika-config-write-limiter.json
* (edit) tika-core/src/main/java/org/apache/tika/metadata/Database.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/microsoft/ooxml/TruncatedOOXMLTest.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file4_emptyB.pdf.json
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/jflex/RTFObjDataStreamParser.java
* (edit) tika-core/src/main/java/org/apache/tika/metadata/Metadata.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/test/java/org/apache/tika/parser/iwork/IWorkParserTest.java
* (edit) 
tika-pipes/tika-pipes-plugins/tika-pipes-es/src/main/java/org/apache/tika/pipes/emitter/es/ESClient.java
* (edit) docs/modules/ROOT/pages/pipes/parse-modes.adoc
* (edit) tika-metadata-schema/pom.xml
* (edit) .skills/dev.md
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file15_tags.json
* (edit) 
tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/OpenAIImageEmbeddingParserTest.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/EMFParser.java
* (edit) docs/modules/ROOT/pages/migration-to-4x/metadata-changes-4x.adoc
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/resources/configs/tika-config-write-filter.json
* (edit) 
tika-pipes/tika-pipes-api/src/main/java/org/apache/tika/pipes/api/ParseMode.java
* (edit) 
tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/DigestingOpenContainersTest.java
* (edit) tika-core/src/main/java/org/apache/tika/metadata/TikaPagedText.java
* (edit) 
tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-open-namespaces.json
* (edit) 
tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/OptimaizeMetadataFilterTest.java
* (edit) 
tika-xmp/src/main/java/org/apache/tika/xmp/convert/OpenDocumentConverter.java
* (edit) 
tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/TikaResource.java
* (edit) 
tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/resources/opensearch/tika-config-opensearch.json
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file12_es.txt.json
* (edit) tika-eval/tika-eval-app/src/test/resources/extracts/TIKA-4446-a.json
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
* (edit) docs/modules/ROOT/pages/advanced/zip-detection.adoc
* (edit) 
tika-core/src/main/java/org/apache/tika/metadata/TikaCoreProperties.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file16_badTags.json
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/raw_input/file12_es.txt
* (edit) docs/modules/ROOT/pages/advanced/integration-testing/tika-app.adoc
* (edit) 
tika-core/src/main/java/org/apache/tika/metadata/writefilter/StandardMetadataLimiter.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file5_emptyA.pdf.json
* (edit) 
tika-serialization/src/test/java/org/apache/tika/metadata/filter/AttachmentCountingListFilter.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module/src/main/java/org/apache/tika/parser/crypto/TSDParser.java
* (edit) tika-eval/tika-eval-app/src/main/resources/comparison-reports.xml
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/OutlookParserTest.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file7_badJson.pdf.json
* (add) tika-core/src/main/java/org/apache/tika/metadata/ReservedNamespaces.java
* (edit) 
tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/UnpackerResourceTest.java
* (edit) 
tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/JinaEmbeddingFilterTest.java
* (edit) 
tika-parsers/tika-parsers-ml/tika-vlm/src/main/java/org/apache/tika/parser/vlm/AbstractVLMParser.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/digest/DigestConfigTest.java
* (edit) 
tika-core/src/test/java/org/apache/tika/digest/InputStreamDigesterTest.java
* (edit) 
tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/PipesClientTest.java
* (edit) 
tika-server/tika-server-core/src/test/resources/configs/metadata-filter-include.json
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/pkg/ZipParserTest.java
* (edit) 
docs/modules/ROOT/pages/advanced/integration-testing/tika-eval-regression.adoc
* (edit) tika-core/src/main/java/org/apache/tika/metadata/PST.java
* (edit) 
tika-integration-tests/tika-pipes-es-integration-tests/src/test/resources/elasticsearch/plugins-template.json
* (edit) tika-core/src/main/java/org/apache/tika/digest/DigestDef.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/test/java/org/apache/tika/parser/warc/WARCParserTest.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file1.pdf.json
* (delete) 
tika-metadata-schema/src/test/java/org/apache/tika/metadata/schema/MetadataStringKeysTest.java
* (edit) tika-core/src/main/java/org/apache/tika/metadata/RTFMetadata.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
* (edit) tika-eval/tika-eval-app/src/test/resources/extracts/TIKA-4446-b.json
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/AutoDetectParserConfigTest.java
* (edit) docs/modules/ROOT/pages/advanced/embedded-documents.adoc
* (edit) tika-core/src/main/java/org/apache/tika/utils/ParserUtils.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file17_tagsOutOfOrder.json
* (edit) 
tika-core/src/main/java/org/apache/tika/metadata/OfficeOpenXMLExtended.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsB/file14_diffAttachOrder.json
* (edit) tika-core/src/main/java/org/apache/tika/metadata/HttpHeaders.java
* (edit) tika-core/src/main/java/org/apache/tika/metadata/WordPerfect.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/RecursiveParserWrapperTest.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/src/test/java/org/apache/tika/parser/mbox/MboxParserTest.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/csv/TextAndCSVParser.java
* (edit) 
tika-eval/tika-eval-app/src/test/resources/test-dirs/extractsA/file3_attachBNotA.doc.json
* (edit) 
tika-integration-tests/tika-pipes-opensearch-integration-tests/src/test/resources/opensearch/plugins-template.json
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/JackcessParser.java
* (edit) .skills/tika-eval-encoding-regression.md
* (edit) .skills/tika-eval-h2-query.md
* (edit) tika-core/src/main/java/org/apache/tika/metadata/Message.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/AbstractPDF2XHTML.java
* (edit) 
tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ExtractProfiler.java
* (edit) tika-eval/tika-eval-app/src/main/resources/comparison-reports-pg.xml


> Normalize/simplify metadata keys in 4.x
> ---------------------------------------
>
>                 Key: TIKA-4794
>                 URL: https://issues.apache.org/jira/browse/TIKA-4794
>             Project: Tika
>          Issue Type: Task
>            Reporter: Tim Allison
>            Priority: Major
>
> *Background*
> Tika's metadata keys are inconsistent, and 4.0.0 is the last free break until 
> 5.0 (whatever ships is frozen for the 4.x line):
>  * Tika's own keys are scattered across ~8 prefixes (X-TIKA:, tika:, 
> tika_pg:, rendering:, signature:, imagereader:, bare 
> hasSignature/embeddedResourceType), with 3+ casings inside X-TIKA: alone 
> (snake, camel, Title-Hyphen, UPPER sub-namespaces).
>  * resourceName shipped half-migrated (bare → X-TIKA:resourceName) — the 
> worst state.
>  * The metadata object is also a control plane (media type drives routing, 
> resourceName drives detection, X-TIKA:* carries provenance/digests), but the 
> boundary is convention only: a crafted file can inject or overwrite Tika's 
> own keys.
>  * Format namespaces mix casings; QuattroPro reuses WordPerfect's prefix 
> (collision); there's no rule for "is this key Tika's or the file's".
> Options
>  #  Leave as-is. Ship the inconsistency + half-migrated resourceName + 
> convention-only boundary; frozen until 5.x
>  #  tk:. Consolidate every Tika-asserted key under one kebab-cased tk: 
> prefix; finish resourceName → tk:resource-name; add a reserved-namespace 
> trust boundary. Format namespaces untouched.
>  #  tk: + kebab. Everything in (2), plus apply the casing rule inside the 
> format namespaces.
> *Guiding principles (2 and 3)*
>   1. Who asserted the key? Tika-computed → owned, normalized, trusted. 
> File/standard-authored → verbatim (the spelling/capitalization is the interop 
> contract).
>   2. Match enforcement to stakes. Control-plane / Tika-native keys → 
> reserved, writable only via a Property; cosmetic drift → convention.
>   3. Casing follows key-name authorship, not the namespace (the prefix is 
> just the domain). Tika coined the name → kebab; a standard/file authored it → 
> verbatim.
>   4. Clean 3→4 break, documented with a migration table; no auto-remap 
> machinery.
>   *2 — tk: (rationale + consistency)*
>   One prefix, one casing for everything Tika asserts, replacing the 8 
> scattered prefixes and their mixed casings; resourceName finished. tk: (and 
> legacy X-TIKA: ) become reserved: a String write to them is dropped unless 
> trusted, so a scraped file can't forge Tika's 
> routing/provenance/digest/content keys or inject fake tk:chunks embeddings — 
> enforced once in tika-core, not per-parser discipline. Consistency: any Tika 
> key is now predictable (tk: + kebab), and the trust boundary is mechanism 
> rather than convention.
>   *3 — tk: + kebab (rationale + consistency)*
>   Extends "Tika-coined → kebab" into the format namespaces (e.g. 
> pdf:hasMarkedContent → pdf:has-marked-content, zip:compressedSize → 
> zip:compressed-size, access_permission: →  access-permission: ). Names from a 
> standard stay verbatim (dc:, xmp:, EXIF/tiff:, MAPI, email headers, ECMA-376 
> OOXML props, PDF/A/X sub-namespaces) — re-casing them would break 
> round-trip/interop. Also fixes the QuattroPro/WordPerfect prefix collision. 
> Consistency: a Tika-authored key is kebab wherever it lives (under tk: or a 
> format prefix); a  standard/file key keeps its source spelling — one rule 
> answers casing everywhere.
>  
> If we did steps 2 or 3, we'd probably want to release a 4.0.0-beta-2.
>  
> Steps 2 or 3 would be fairly major changes for downstream users, but it would 
> allow us to clean up years of metadata key name bloat.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to