Skip to content

Add time properties to PDF File Facet #421

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
7 tasks done
ajnelson-nist opened this issue Aug 1, 2022 · 1 comment · Fixed by #461
Closed
7 tasks done

Add time properties to PDF File Facet #421

ajnelson-nist opened this issue Aug 1, 2022 · 1 comment · Fixed by #461

Comments

@ajnelson-nist
Copy link
Contributor

ajnelson-nist commented Aug 1, 2022

Background

UCO has the ability to represent certain timestamps based on sources like file systems or other metadata fields (e.g. from email). (See #420.) PDFs contain their own specialized timestamp fields, but UCO has no way of representing them yet.

The PDF specification provides for these time stamps:

  • CreationDate
  • ModDate

Requirements

Requirement 1

UCO must be able to represent the internally embedded creation time of a PDF file.

Requirement 2

UCO must be able to represent the internally embedded modification time of a PDF file.

Requirement 3

UCO must be able to represent the internally embedded access time of a PDF file.

Risk / Benefit analysis

Benefits

UCO would improve its timeline capabilities by representing these times.

Risks

There is a name pattern discrepancy between UCO's current observable:modifiedTime and observable:createdTime, versus the names in the specification. One name pattern must be selected, or the PDF specification should be deferred to.

Otherwise, this is an additive proposal.

Competencies demonstrated

Competency 1

Suppose a PDF is found to have both a creation and modification timestamp embedded.

Competency Question 1.1

Do the creation and modification time follow a sensible temporal ordering - modification occurs at or after creation time?

Ask for all PDF files in our knowledge base that have a creation time that comes definitively after the modification time.

SELECT ?nPdfFile
WHERE {
  ?nPdfFile
    a uco-observable:PDFFile ;
    uco-core:hasFacet ?nPdfFileFacet ;
    .

  ?nPdfFileFacet
    a uco-observable:PDFFileFacet ;
    drafting:pdfCreatedDate ?lCrDate ;
    drafting:pdfModDate ?lModDate ;
    .

  FILTER ( ?lCrDate > ?lModDate )
}

Result 1.1

Solution suggestion

To the observable:PDFFileFacet

  • Add property observable:pdfCreatedDate, cardinality 0..1, type xsd:dateTime.
  • Add property observable:pdfModDate, cardinality 0..1, type xsd:dateTime.

Coordination

  • Tracking in Jira ticket OC-256
  • Administrative review completed
  • Solutions Approval to be discussed in OC meeting, 2022-08-09
  • Solutions Approval vote occurred, passing, on 2022-08-09
  • Solutions development phase completed.
  • Implementation merged into develop
  • Milestone linked
  • Documentation logged in pending release page
@ajnelson-nist
Copy link
Contributor Author

ajnelson-nist commented Aug 19, 2022

When @eoghanscasey and I were discussing how to name these two properties, we had agreed between us to use the name found in the PDF specification. He had shown me PDF v1.7.

Per that specification, the name we should use is pdfCreationDate, not pdfCreatedDate. See e.g. Table 317 of this document:

https://opensource.adobe.com/dc-acrobat-sdk-docs/standards/pdfstandards/pdf/PDF32000_2008.pdf

found via the Library of Congress format page for PDF, Version 1.7, ISO 32000-1:2008.

CreationDate appears in the PDF specification, not CreatedDate. The implementation of the UCO property will use CreationDate.

ajnelson-nist added a commit that referenced this issue Aug 19, 2022
No effects were observed on Make-managed files.

References:
* #421

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
@ajnelson-nist ajnelson-nist linked a pull request Aug 19, 2022 that will close this issue
8 tasks
ajnelson-nist added a commit to casework/CASE-Examples that referenced this issue Aug 19, 2022
No effects were observed on Make-managed files.

References:
* ucoProject/UCO#421

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Aug 19, 2022
A follow-on patch will regenerate Make-managed files.

References:
* ucoProject/UCO#421

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Aug 19, 2022
References:
* ucoProject/UCO#421

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
sldouglas-nist added a commit to sldouglas-nist/CASE-Implementation-ExifTool that referenced this issue Jun 28, 2024
The patch adds designations for MIME types, `application/pdf` and
`image/jpeg`, with UCO classes, `PDFFile` and `RasterPicture`.

The patch maps two concepts that already exist in UCO,
`pdfCreationDate` and `pdfModDate`.

The patch adds IRI reference to the `ExifTool` PDF namespace and binds
to graph model.

The patch hardcodes `self._oo_slug` to be 'File-'. Representation as a
file object encompasses accepted format types of `ExifTool`.

The patch provides a test file, `test_000015.py`, which validates the
presence of the `PDFFile` class.

Reference
* ucoProject/UCO#421

Signed-off-by: Sheldon Douglas <sheldon.douglas@nist.gov>
sldouglas-nist added a commit to sldouglas-nist/CASE-Implementation-ExifTool that referenced this issue Jun 28, 2024
The patch adds designations for MIME types, `application/pdf` and
`image/jpeg`, with UCO classes, `PDFFile` and `RasterPicture`.

The patch maps two concepts that already exist in UCO,
`pdfCreationDate` and `pdfModDate`.

The patch adds IRI reference to the `ExifTool` PDF namespace and binds
to graph model.

The patch hardcodes `self._oo_slug` to be 'File-'. Representation as a
file object encompasses accepted format types of `ExifTool`.

The patch provides a test file, `test_000015.py`, which validates the
presence of the `PDFFile` class.

Reference
* ucoProject/UCO#421

Signed-off-by: Sheldon Douglas <sheldon.douglas@nist.gov>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant