hybox / models

Data Modeling repository for HyBox (ontologies, vocabularies, best practices, requirements, etc)
Apache License 2.0
5 stars 3 forks source link

hasThumbnail to File or FileSet? #46

Open azaroth42 opened 8 years ago

azaroth42 commented 8 years ago

Assuming #43, there's still some question about the range of the predicates. For example, foaf:thumbnail would be great ... if the object of the triple is actually an Image. A pcdmw:FileSet is not, itself, an image however... and systems should not try to simply put the URI of the fileset into an img tag to render to the user, as the response would be RDF.

It seems like FileSets are (often? sometimes?) a stand in for format based content negotiation -- I want this thing (the thumbnail) as a PDF or a JPG or a PNG or TXT... which in the WebArch would have a single generic URI and then one format specific URI per representation. Or to put it another way, if Fedora4 had the capacity to store multiple representations as options for content negotiation, would we still have a need for FileSet?

So some options:

Thoughts?

tpendragon commented 8 years ago

Or to put it another way, if Fedora4 had the capacity to store multiple representations as options for content negotiation, would we still have a need for FileSet?

Yes, unless I don't understand FileSet anymore, which is totally a possibility.

If I upload a high resolution image and a thumbnail/medium resolution are both created, it's a FileSet with three files. Thumbnail/medium probably have the same mime type.

azaroth42 commented 8 years ago

@tpendragon: Yes, good point! Different resolution with the same media type would be a problem for conneg :)

azaroth42 commented 8 years ago

What do people think about this pattern:

_:c1 a pcdm:Collection ;
  rdfs:label "Postcard Collection";
  edm:isRepresentationOf _:rwo1 ;
  pcdm:hasMember _:pc1, _:pc2, _:pc3 ;
  pcdmu:hasThumbnail _:tn1 ;
  pcdmw:hasFileSet _:tn1 ;
  pcdm:hasRelatedObject _:donor1 .

_:tn1 a pcdmw:FileSet ;
  rdfs:label "Collection Thumbnail Image" ;
  pcdmu:hasOriginalFile </tn1/files/thumbnail.jpg> ;
  pcdm:hasFile </tn1/files/thumbnail.jpg>, </cti/files/thumbnail.png> .

_:donor1 a pcdm:Object ;
  rdfs:label "Collection Donor Agreement" ;
  edm:isRepresentationOf _:rwo2 ;
  pcdmu:hasThumbnail _:tn2 ;
  pcdmw:hasFileSet _:fs2, _:tn2 .

_:fs2 a pcdmw:FileSet ;
  rdfs:label "Collection Donor Agreement Document" ;
  pcdmu:hasOriginalFile </fs2/files/donorAgreement.pdf> ;
  pcdm:hasFile </fs2/files/donorAgreement.pdf> .

_:tn2 a pcdmw:FileSet ;
  rdfs:label "Donor Agreement Thumbnail" ;
  pcdmu:hasOriginalFile </tn2/files/thumbnail.jpg> ;
  pcdm:hasFile </tn2/files/thumbnail.jpg> .

where the Donor Agreement thumbnail might be a jpg derived from the first page of the PDF of the document, but could be something completely different too.

escowles commented 8 years ago

I'm not sure about this. It looks like the Use vocab classes are being used as predicates to link from Objects to FileSets. But I think they are more appropriate for linking from FileSets to Files, and we should have different predicates to differentiate between FileSets.

I'm not sure what all the axes of difference are when you have multiple FileSets, but I've heard about a few:

  1. preferred vs. other (e.g. item redigitized in higher quality)
  2. visual vs. textual (or accessible?) (e.g., JPG of postcard vs. TEI transcript)
  3. full vs. preview (?) (e.g. the PDF of the donor agreement vs. the JPG thumbnail) (I'm assuming the motivation for having the thumbnail in its own FileSet is that it doesn't represent the whole PDF?)
azaroth42 commented 8 years ago

I could see the thumbnail image being part of the Fileset with the PDF, but then there's inconsistency between the thumbnail of the Collection (a FileSet), and the thumbnail of the donor agreement (a File).

Also, if you had multiple FileSets, each with a thumbnail, how would you know which to use for the higher level Object or Collection? Do we just need a relationship from Object to FileSet to say it's the preferred representation, and then the thumbnail in that fileset is thus the preferred thumbnail? But are there situations when the preferred thumbnail is different from the preferred representation? For example, the preferred representation of an audio book is probably the mp3, not the cover art. But the thumbnail of the cover art is likely the preferred thumbnail for the book Object.

escowles commented 8 years ago

So maybe we need 3 predicates:

  1. hasPreview (use this for the preview of a non-visual resource)
  2. hasPreferredRepresentation (this is best version, and its thumbnail should be used if there's no hasPreview)
  3. hasAlternate or hasAccessibleRepresentation or ?? (for transcripts, other formats, etc.)
anarchivist commented 8 years ago

hasPreview (use this for the preview of a non-visual resource)

edm:preview? (which can be used for image previews too, as we do)

hasPreferredRepresentation (this is best version, and its thumbnail should be used if there's no hasPreview)

edm:object?

escowles commented 8 years ago

@anarchivist++ those look like good predicates, and edm:hasView looks like a pretty good fit for a super-property if we want to mint any more.