Skip to content
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

Representing a selector that indicates a page range of a book #436

Closed
gobengo opened this issue Sep 17, 2017 · 3 comments
Closed

Representing a selector that indicates a page range of a book #436

gobengo opened this issue Sep 17, 2017 · 3 comments

Comments

@gobengo
Copy link

gobengo commented Sep 17, 2017

I have the following highlight that I would like to represent as OA:

{ title: 'Relativity (Albert Einstein)',
  details: 
   { type: 'highlight',
     page: { from: 77, to: 77 },
     location: { from: 1173, to: 1174 },
     time: 2017-09-17T18:28:04.000Z },
  snippet: 'In What Respects are the Foundations of Classical Mechanics and of the Special Theory of Relativity Unsatisfactory?' }

The most obvious selector to create is a TextQuoteSelector, which I have done.

But I also don't want to throw away the page range or location range here, each of which is refinedBy the TextQuoteSelector#exact. This 'snippet' content could in fact appear multiple times in the book, and it would be quite useful to be able to clarify which pages this particular instance of the snippet appeared on.

I was surprised to find that the OA document I quickly searched across don't necessarily ever represent the selector being across a range of pages in a book (even a pdf or something). But of course I could have missed a good example somewhere.

Any advice?

I am thinking I'd like the annotation target to have two selectors, one each for the page range and 'location' range, each would be refinedBy an exact TextQuoteSelector.
Each of these ranges could be a RangeSelector with {start,end}Selector pointing to a logical 'Page in book' or 'Location in File'. The latter is left somewhat intentionally vague, but surely there is a good vocab term somewhere for 'BookPage'? @azaroth42 do you know of a good term? I couldn't find one on schema.org or in dc.

@azaroth42
Copy link
Collaborator

PDF pages can be referenced with a FragmentSelector, see the example:

https://www.w3.org/TR/annotation-model/#fragment-selector

And pages in an EPUB could be referenced with a CFI fragment, in the same example table.

However to say that a Web Annotation annotates the content printed on a physical page crossed over the line into out of scope. And, frankly, this is not something that even library linked open data can handle very gracefully yet. In particular, does it annotate the abstract content or the exact phrase? Is it only in one edition of the book, or only one specific copy of the book? Is is exactly that physical area of the page, regardless of edition?

So my advice is to think long and hard about your exact use cases 😀 but more usefully if you want to use schema.org, you could have CreativeWorks that are partOf other CreativeWorks, and use position to manage the page numbering.

@gobengo
Copy link
Author

gobengo commented Sep 17, 2017

@azaroth42 In this case, the highlights are from my Kindle so they could be on any sort of document: pdf, mobi, epub, etc. At this layer of abstraction I don't always know. But I'd like to find a way of also looking up more metadata about the underlying book, i.e. ISBN and stuff. Other than using the ISBN, there's not always a good URL to use to refer to the document.

CreativeWork + partOf + position gives me a great starting point to work with, though. Thanks for the quick response!

Also I will post code soon.

@gobengo gobengo closed this as completed Sep 17, 2017
@gobengo
Copy link
Author

gobengo commented Sep 18, 2017

@azaroth42 I have not made use of your advice yet but you can see the project here: https://github.com/gobengo/kindle-web-annotations

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants