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

Support versioning in the reader interface #4870

Closed
6 of 13 tasks
NateWr opened this issue Jul 3, 2019 · 29 comments
Closed
6 of 13 tasks

Support versioning in the reader interface #4870

NateWr opened this issue Jul 3, 2019 · 29 comments
Projects
Milestone

Comments

@NateWr
Copy link
Contributor

NateWr commented Jul 3, 2019

  • All publications of an article/monograph should be linked from the article/monograph landing page.
  • The latest version should always appear at the same URL, so when it is updated the url does not change. Eg - /article/view/:submissionId.
  • The same is true for the galley links of the latest version. These should always be available at /article/view/:submissionId/:galleyId.
  • Versions should have a fixed URL that doesn't change, eg /article/view/1/version/1
  • When looking at an old version, a prominent message should indicate there is a newer version and offer a link to it
  • All old URLs should still work and should show results for the currentPublication.
    • An old galley URL like /article/1/5 will still work even after it is no longer the current version. This should be updated to redirect to the version URL (/article/1/version/1/5) when it is no longer the current version. This will depend on an answer for Support versioning in the reader interface #4870 (comment).
  • Outdated versions should specify the main version as the canonical URL and prevent Google Scholar indexing. See Support versioning in the reader interface #4870 (comment) and Support versioning in the reader interface #4870 (comment)

Acceptance Criteria

All criteria should be performed as a logged out reader accessing the reader interface.

  • When a published submission has only one version, I do not see any information about versions.
  • When a published submission has more than one version, I can see links to each version.
  • When viewing an old version, I see a notice that this is an old version and a link I can click to see the newest version.
  • When viewing a PDF or HTML galley of an old version, I see a notice that this is an old version and I can click on a link to go back to the article landing page where I can find the latest version of the galley.
  • In the Google Scholar meta tags that appear in the <head> of the article landing page, the pdf_url tag always goes to the PDF of the latest version, even when a submission has more than one version.
@NateWr NateWr added this to the OJS/OMP 3.2 milestone Jul 3, 2019
@NateWr NateWr added this to To do in Versioning via automation Jul 3, 2019
@NateWr NateWr moved this from To do to Needs specification in Versioning Jul 3, 2019
@asmecher
Copy link
Member

asmecher commented Jul 9, 2019

@NateWr, what about reserving latest in place of the URL for the newest? That would be the one indexed in Google, and older versions can always link there.

@NateWr
Copy link
Contributor Author

NateWr commented Jul 9, 2019

I was thinking just to leave it like /article/view/:id and that will always show the latest. And then a version can be /article/view/:id/version/:vid.

So am I right in thinking that we shoudn't seek indexing for older versions? Just set them all to point to the canonical URL for the article, which will show the latest published version?

@asmecher
Copy link
Member

asmecher commented Jul 9, 2019

So am I right in thinking that we shoudn't seek indexing for older versions? Just set them all to point to the canonical URL for the article, which will show the latest published version?

Yes, that makes the most sense to me (and seems unlikeliest to open a Pandora's Box).

@NateWr
Copy link
Contributor Author

NateWr commented Aug 26, 2019

Some mockups for the reader interface from @israelcefrin.

An article that has previous versions:

03 - Current article published with versions
06 - Current article published with versions - mobile

Viewing an old version of an article:

01 - Old article published with versions
04 - Old article published with versions - mobile

Viewing revision message for an article:

02 - Old article published with versions - revisions modal
05 - Old article published with versions - revisions modal - mobile

@NateWr
Copy link
Contributor Author

NateWr commented Aug 26, 2019

A couple of thoughts on these.

First, I like the presentation of "Previous versions" in the sidebar. However, the "Published" date should still show the original date of publication. I'm thinking something like this:

Published
2012-01-01 - Updated on 2019-02-03

Previous versions
...

Second, the banner notification at the top is really important. I like how it's done, however, I'm not sure what the date "March 3rd 2005" is meant to link to? Also, I think that revision information should appear below the abstract, rather than in a popup/modal.

Modals are common sources of UX problems so I like to minimize their use. In this case, I think that we can display the revision information below the abstract and above the references. What do you think @israelcefrin?

Lastly, I don't think we'll have a detailed record of revision changes as shown in the mockups here. We don't know exactly what's changed, we might only have a single line of text. What do we think about that? Should the revision information be a full rich text area where people can write a detailed summary of changes? Or just a single line?

@israelcefrin
Copy link
Collaborator

Hi All,

My comments bellow:

Published
2012-01-01 - Updated on 2019-02-03

@NateWr the idea is to keep the original published date and creating the link on "Updated" date? Or all this label is a link to the current version?

This linking?

2012-01-01 - Updated on 2019-02-03
Or this one?
2012-01-01 - Updated on 2019-02-03

I would prefer the second.

Second, the banner notification at the top is really important. I like how it's done, however, I'm not sure what the date "March 3rd 2005" is meant to link to? Also, I think that revision information should appear below the abstract, rather than in a popup/modal.

I think we can remove the link and create a visual relation with menu item (color/bold) maybe. It won't be required to create a self-link there actually. Regarding the modal, it makes sense your point. It is usually a stress point and has accessibility issues to make it work properly. In fact I am not totally sure about showing a log of revision to the reader user.
I think that a revision log (like a DIFF) it is useful for platforms like Wikipedia which has a high level of text and content editing every day.

Should the revision information be a full rich text area where people can write a detailed summary of changes? Or just a single line?
What about a checkbox to standardize it? Given that in the most cases a new version envolves correction or galley changed we could have a checkbox like:

Please, check what has been update for this latest version:

  • Title
  • Keywords
  • Galley

What do you think? Wouldn't it be easier to ask to select than write a description? For data metrics we could also have info regarding what is the most update field also ( thinking in the future features).

@NateWr
Copy link
Contributor Author

NateWr commented Aug 26, 2019

the idea is to keep the original published date and creating the link on "Updated" date? Or all this label is a link to the current version?

I'd prefer no link at all. The "Published" date can be set manually, and may not reflect the date the article was published on the site, for example when journals import back issues. And this date stays the same from version to version, unless they manually change it.

The "updated" text will only appear on versions after the first one, and will always show the date of the version that is being viewed. So I don't think there is any reason to link it, since it will already be the version in view.

For navigating between versions, I think the list directly below is good and the clearest way to identify the versions.

create a visual relation with menu item (color/bold) maybe

I'm not sure what you mean by this. Can you give an example? Are we still talking about the date of the version being viewed?

Please, check what has been update for this latest version:

I don't want to specify each possible type of data, because we will always face requests to add more possible types of data to check off. And in terms of metrics, I don't trust this kind of data when people are entering it. If we want to pursue a full diff in the future, we can do that automatically. It will be more accurate and easier for the user because they won't have to touch anything.

The revision details I had in mind were more of a human-readable message that describes intent. Like "This version was updated following comments at X workshop. The Y section was revised to account for Z feedback."

I'm not sure if either part is necessary for our first iteration of versioning. But the second is easy to implement and would work for lots of different scenarios.

@israelcefrin
Copy link
Collaborator

I'm not sure what you mean by this. Can you give an example? Are we still talking about the date of the version being viewed?

I thought to remove the link from the top banner warning.
01 - Old article published with versions (No link on date published)

I don't want to specify each possible type of data, because we will always face requests to add more possible types of data to check off.
Ok, it makes sense.

The revision details I had in mind were more of a human-readable message that describes intent. Like "This version was updated following comments at X workshop. The Y section was revised to account for Z feedback.

I gotcha! Agree, this use case makes much more sense and it releases editor's from a multiple-choice decision which is a heavier mental work. I think that one field would be sufficed. Do you think it could be a rich text area? Like the example below:
comments-revision

@NateWr
Copy link
Contributor Author

NateWr commented Aug 27, 2019

Do you think it could be a rich text area?

Yeah that's what I was thinking. And then it could be added below the abstract, like this:

Revisions
This version was updated following ....

@israelcefrin
Copy link
Collaborator

israelcefrin commented Sep 17, 2019

I was thinking just to leave it like /article/view/:id and that will always show the latest. And then a version can be /article/view/:id/version/:vid.

@NateWr how would be the URL public identifier ? Would it be added a suffix -version-:vid, i.e.:
http://journaldomain.com/index.php/journal-name/view/public-url-identifier-version-:vid

@NateWr
Copy link
Contributor Author

NateWr commented Sep 23, 2019

The public URL identifier goes where :id is. So it would be /article/view/public-url-identifier/version/:vid.

@jmacgreg
Copy link
Contributor

Comments from Google Scholar:

  • Ideally, only the latest version would be indexed. There should be a canonical URL for the article that always returns the latest version. The best example of this is arxiv.org, which has successfully handled article versions longer than pretty much anyone else in scholarly publishing.
  • It is important that the version component of the URL not be easy to customize. Breaking the version structure will cause problems in indexing and results that editors/authors/admins would not want (older versions being indexed instead of the current version).

Re: URL format for different versions

  • Adding an unambiguous version number at the end as they propose would be fine. The versioning structure would be the same for abstract/full-text HTML (if any) and PDF urls.
  • It would be best if each article has canonical versionless urls for abstract/fulltext html/pdf. These urls would return the latest version of the article in the corresponding format.

Re: How to deal with metatags, especially citation_pdf_url, for each version.

  • It would be best to include just the normalized PDF url (without version number) in the citation_pdf_url in all cases - since this is the version that would be indexed

Re: linking to other versions of the article in the UI

  • Linking to older versions in the UI is not a problem, as long as:
    -- there are canonical versionless urls
    -- these urls always return the latest version
    -- the part of the url that has the version information is not customizable
    -- the version part of the url is the same for all formats of an article.

@NateWr
Copy link
Contributor Author

NateWr commented Sep 23, 2019

Great, this seems to align 💯 with our previous discussion. The one thing we need to ensure that I think isn't mentioned is that the Google Scholar metatags should not appear at the versioned URLs and we should use a noindex tag to indicate that the versions should not be indexed.

@NateWr
Copy link
Contributor Author

NateWr commented Sep 24, 2019

@jmacgreg ok, we have a slight hiccup with this:

It would be best if each article has canonical versionless urls for abstract/fulltext html/pdf. These urls would return the latest version of the article in the corresponding format.

And maybe this:

It would be best to include just the normalized PDF url (without version number) in the citation_pdf_url in all cases - since this is the version that would be indexed

A URL to the galley of the latest publication follows the format /article/view/:submissionId/:galleyId. So a galley with ID 8 on a submission with ID 4 would have a URL like this:

/article/view/4/8

However, the galley ID changes between versions. So when a new version is published, the article part of the URL will stay the same, but the galley part will change to something like this:

/article/view/4/12

Worse, we have no distinct link between two galleys of different versions. So galley 8 is not related to galley 12. That means that we can't automatically redirect /article/view/8 to /article/view/12, for example. I can think of technical workarounds for this, but they still won't stop an editor from updating a galley by deleting and adding, rather than editing, which would lose the relationship between them in any case.

If I understand the guidance quoted above, Google Scholar wants a URL like /article/view/4/pdf that always points to the PDF galley of the latest version. Is that correct? Or would it be enough if the citation_pdf_url always pointed to the latest URL, even if this URL changes over time?

In the latter scenario, the citation_pdf_url will:

  • always appear on the article landing page which shows the latest version (and only there)
  • always point to the PDF galley of the latest version
  • change the URL when a new version is created

If this is ok, then I think this is a solved problem and we don't need to worry. In your understanding, would this be ok with Google Scholar?

I suspect it will not, and that in fact they want an identifier for each galley that is retained from version to version.

I can think of a couple ways to do this:

  1. Auto-generate a permanent identifier to use in the URL from the galley name. This will catch the majority of cases, even when an editor deletes and re-adds instead of edits, because they are likely to still call it PDF or HTML. However, this will obliterate all existing usage of the publisher ID.
  2. Use the publisher ID. Add an update script that auto-generates a publisher ID for every galley based on the name. However, if we follow this approach, we have to disable editing of the publisher ID for subsequent versions, to prevent editors from breaking their Google Scholar record by accident. This is likely to cause some frustration from people who have made a typo and may not play nicely with some publishers' workflows if they are using the field to store an external id for the galley.

My sense is that this feels like something we should do automatically for the user to enforce consistence usage and ensure journals are getting indexed properly in Google Scholar. But to do so we would have to remove editors' ability to set custom publisher identifiers and have those identifiers reflected in the URL. We could do some work to ensure existing URLs do not go dead, but the visible URL in the browser would still change and editors would not have control over it.

I eagerly await your input. 😂

@NateWr NateWr moved this from Needs specification to In progress in Versioning Sep 24, 2019
NateWr added a commit to NateWr/pkp-lib that referenced this issue Sep 25, 2019
NateWr added a commit to NateWr/omp that referenced this issue Sep 25, 2019
NateWr added a commit to NateWr/ojs that referenced this issue Sep 25, 2019
NateWr added a commit to NateWr/omp that referenced this issue Sep 25, 2019
@NateWr
Copy link
Contributor Author

NateWr commented Sep 25, 2019

The following PRs address most of what's been discussed, with the exception of the outstanding issue with galley links discussed at #4870 (comment). These PRs update the citation_pdf_url with the new URLs each time, but this may need to be changed.

PRs:
#5093
pkp/ojs#2473
pkp/omp#705

NateWr added a commit that referenced this issue Sep 25, 2019
#4870 Support display of versions in reader UI
NateWr added a commit to pkp/ojs that referenced this issue Sep 25, 2019
NateWr added a commit to pkp/omp that referenced this issue Sep 25, 2019
NateWr added a commit to NateWr/classic that referenced this issue Feb 18, 2020
NateWr added a commit to NateWr/healthSciences that referenced this issue Feb 18, 2020
NateWr added a commit to pkp/bootstrap3 that referenced this issue Feb 18, 2020
NateWr added a commit to pkp/bootstrap3 that referenced this issue Feb 18, 2020
NateWr added a commit to NateWr/healthSciences that referenced this issue Feb 18, 2020
NateWr added a commit to NateWr/immersion that referenced this issue Feb 19, 2020
- Add support for versions
- Migrate code to use publications
- Use own copy of spectrum colorpicker after it was removed
  from OJS.
- Migrate  to theme option
NateWr added a commit to NateWr/pkp-lib that referenced this issue Feb 19, 2020
NateWr added a commit to NateWr/pdfJsViewer that referenced this issue Feb 19, 2020
NateWr added a commit to NateWr/ojs that referenced this issue Feb 19, 2020
@NateWr
Copy link
Contributor Author

NateWr commented Feb 19, 2020

Some additional work required to prepare our themes for 3.2.

PRs:
#5527
pkp/pdfJsViewer#49
pkp/ojs#2629

@NateWr NateWr reopened this Feb 19, 2020
Versioning automation moved this from Done to In progress Feb 19, 2020
NateWr added a commit to pkp/immersion that referenced this issue Feb 19, 2020
NateWr added a commit to pkp/classic that referenced this issue Feb 19, 2020
NateWr added a commit to pkp/healthSciences that referenced this issue Feb 19, 2020
NateWr added a commit to NateWr/pdfJsViewer that referenced this issue Feb 19, 2020
NateWr added a commit to NateWr/pragma that referenced this issue Feb 19, 2020
NateWr added a commit to NateWr/pkp-lib that referenced this issue Feb 20, 2020
NateWr added a commit to NateWr/ojs that referenced this issue Feb 20, 2020
NateWr added a commit to pkp/pdfJsViewer that referenced this issue Feb 20, 2020
pkp/pkp-lib#4870 Add notice when viewing outdated PDF version
NateWr added a commit that referenced this issue Feb 20, 2020
#4870 Allow themes to access property directly
NateWr added a commit to pkp/ojs that referenced this issue Feb 20, 2020
@NateWr NateWr closed this as completed Feb 20, 2020
Versioning automation moved this from In progress to Done Feb 20, 2020
Vitaliy-1 added a commit to pkp/pragma that referenced this issue Apr 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Versioning
  
Done
Development

No branches or pull requests

4 participants