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

Tim Allison commented on TIKA-1607:
-----------------------------------

Aside from XMP, I can't think of an example where we'd have multiple DOMs of 
the same type (property name).  For some (rare) PDF files, I could see having a 
DOM for XFA and one or more DOMs for XMP, but they'd be under different 
keys...in my current plan.

I could also see someone modifying an existing parser to generate a DOM to this 
type of field, say, by translating what we're pulling out of the metadata for a 
multimedia file into pbcore.


On the one hand, this is a hack on the way to your unified DOM proposal...basic 
users can get what they want from key/value, and advanced users who actually 
know a given standard can find what they need.

On the other, this would allow advanced users to extract potentially 
conflicting metadata (one XMP packet has dc:creator X, but the update XMP 
packet has dc:creator Y...and we even have this in one of our test files :)).  
By following the XMP standard (iirc), the more recent packet information would 
overwrite the earlier.  Some users will want the "standard" (dc:creator=Y); 
some advanced users might want "all" (dc:creator=X;Y).


The initial motivation for giving access to the raw bytes...if we allow access 
to the raw bytes for a DOM, this could also allow super advanced users to run 
their own content stripping that might not care about slightly dodgy/invalid 
xml, and we already have an example of invalid XMP in one of our multimedia 
files.

However, I'm persuaded that making "bytes" available could lead to disaster.


> Introduce new arbitrary object key/values data structure for persistence of 
> Tika Metadata
> -----------------------------------------------------------------------------------------
>
>                 Key: TIKA-1607
>                 URL: https://issues.apache.org/jira/browse/TIKA-1607
>             Project: Tika
>          Issue Type: Improvement
>          Components: core, metadata
>            Reporter: Lewis John McGibbney
>            Assignee: Lewis John McGibbney
>            Priority: Critical
>             Fix For: 1.13
>
>         Attachments: TIKA-1607_bytes_dom_values.patch, 
> TIKA-1607v1_rough_rough.patch, TIKA-1607v2_rough_rough.patch, 
> TIKA-1607v3.patch
>
>
> I am currently working implementing more comprehensive extraction and 
> enhancement of the Tika support for Phone number extraction and metadata 
> modeling.
> Right now we utilize the String[] multivalued support available within Tika 
> to persist phone numbers as 
> {code}
> Metadata: String: String[]
> Metadata: phonenumbers: number1, number2, number3, ...
> {code}
> I would like to propose we extend multi-valued support outside of the 
> String[] paradigm by implementing a more abstract Collection of Objects such 
> that we could consider and implement the phone number use case as follows
> {code}
> Metadata: String:  Object
> {code}
> Where Object could be a Collection<HashMap<String/Property, 
> HashMap<String/Property, String/Int/Long>> e.g.
> {code}
> Metadata: phonenumbers: [(+162648743476: (LibPN-CountryCode : US), 
> (LibPN-NumberType: International), (etc: etc)...), (+1292611054: 
> LibPN-CountryCode : UK), (LibPN-NumberType: International), (etc: etc)...) 
> (etc)] 
> {code}
> There are obvious backwards compatibility issues with this approach... 
> additionally it is a fundamental change to the code Metadata API. I hope that 
> the <String, Object> Mapping however is flexible enough to allow me to model 
> Tika Metadata the way I want.
> Any comments folks? Thanks
> Lewis



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to