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

Refine "Public URL Identifier" availability and behaviour #5430

Closed
jmacgreg opened this issue Jan 24, 2020 · 16 comments
Closed

Refine "Public URL Identifier" availability and behaviour #5430

jmacgreg opened this issue Jan 24, 2020 · 16 comments
Labels
Enhancement:1:Minor A new feature or improvement that can be implemented in less than 3 days.
Milestone

Comments

@jmacgreg
Copy link
Contributor

Problem(s):

  1. What we now call "Public URL Identifiers" aren't identifiers, at least in the same sense as DOIs - they are custom URL slugs.
  2. creating a tab at the same level/importance of galleys, metadata, references, etc., called "Identifiers" with only this item in it by default can be misleading - folks may not understand that this is a custom URL slug and not eg. a field to configure a DOI.
  3. Having this option so prominently displayed, and by default enabled, will likely result in far more folks throwing stuff in here without understanding why they should or shouldn't.
  4. conflating these custom URL slugs with DOIs (by adding DOIs as a field to this page) will just further complicate matters.

Proposed Solutions:

  1. rename "Public URL Identifer" to "Public URL Slug".
  2. disable this tab by default - add an option somewhere in Journal setup to enable Public URL Slugs, and only display the tab if this option has been enabled, or if DOIs or URNs have been enabled. This tab shouldn't be available and usable by default.
@jmacgreg jmacgreg added this to the OJS/OMP 3.2 milestone Jan 24, 2020
@jmacgreg
Copy link
Contributor Author

Note: this isn't a bug per se, but more of a potential for confusion. Time depending, if this has to wait to a later release, that's fine - but it should be reviewed at some point. @AhemNason also says that a small note attached to the field describing its intended use would also be fine.

@NateWr NateWr added the Enhancement:1:Minor A new feature or improvement that can be implemented in less than 3 days. label Jan 27, 2020
@NateWr
Copy link
Contributor

NateWr commented Jan 27, 2020

I'm totally behind this, but it's my understanding that this field is in use as a kind of pub id -- sometimes referencing a submission's ID in other systems or something like that. I'd love to separate these out.

At the moment, the URL slug is stored in a setting called pub-id::publisher-id and this is used in methods like getBestId(). It is also in use by galleys, issues and issue galleys -- anywhere pub ids are in play.

So I'm definitely up for changing this but I just want to double-check that we're not mushing data together here in a way that doesn't match its actual use. This is always a danger when changing the underlying meaning of a field.

Another approach would be to keep pub-id::publisher-id in place, but make it opt in like the DOI or other pub ids. Then to copy any existing values over to a new field like urlPath, and use that instead. This would keep the value in both places and let people disambiguate going forward.

I'm also happy to just get rid of it if we think it's not being used or shouldn't be used.

@AhemNason
Copy link

AhemNason commented Jan 27, 2020 via email

@NateWr
Copy link
Contributor

NateWr commented Jan 27, 2020

some copy about what a publisher ID might look like

To my knowledge, there is no such guidance. It's an extra pub id with no specific intended purpose, that we also use for the URL though we have never said as much to editors.

@NateWr
Copy link
Contributor

NateWr commented Feb 3, 2020

Coming back to this (and cc'ing @asmecher). I think we'll need a decision on this soon to get it resolved for 3.2. A brief recap:

Currently a pub-id::publisher-url is available for submissions, galleys and issues. This is described as a pub id and grouped with other pub ids, such as DOIs. However, it is not a recognized pub id and is not treated as such with depositing services. We only use it for the URL slug, but individual journals may attach their own IDs and we don't know how the field is used.

I can see two options:

  1. We keep it as-is but move it out of the Identifiers form in publications and into the Issue Entry form, and rename it URL Path. The field for galleys and issues will stay in place for now.

  2. We leave it in Identifiers but make it an optional setting (maybe a pid plugin). At the same time, we create a new urlPath property and copy any existing pub-id::publisher-url values into it. And add a URL Path field to the Issue Entry form. The field for galleys and issues will stay in play through the optional setting.

Both options address the confusion for the end user. However, Option 1 leaves the ambiguity in the data structure and we'll probably need to resolve this some day.

@asmecher
Copy link
Member

asmecher commented Feb 3, 2020

I have a suspicion that we'll be asked for both versioned and non-versioned URL slugs, and versioned and non-versioned publisher IDs. Option 2) gives us non-versioned URL slugs only, and versioned publisher IDs only (correct?). But the two are at least clear and disambiguated, so we can add more options later if need be. Of the two options, I support the second.

@NateWr
Copy link
Contributor

NateWr commented Feb 4, 2020

Option 2) gives us non-versioned URL slugs only, and versioned publisher IDs only (correct?).

I think the urlPath could be versioned as well. I was thinking that urlPath would be assigned to the Publication -- in part just because there's no place in the UI at the moment for it to be assigned to the Submission.

I'll plan to work on Option 2 unless James or Mike having anything they want to add.

@jmacgreg
Copy link
Contributor Author

jmacgreg commented Feb 4, 2020

Option 2 sounds fine to me!

@AhemNason
Copy link

AhemNason commented Feb 5, 2020 via email

NateWr added a commit to NateWr/pkp-lib that referenced this issue Feb 13, 2020
This commit migrates existing usage of the
pub-id::publisher-id property to a new urlPath
property for all objects that have it. The
pub-id::publisher-id property remains to be
used separately from urlPath and has been
moved to a piece of metadata. URL handlers
now look in urlPath to fetch objects based
on requests that don't use IDs.
NateWr added a commit to NateWr/ojs that referenced this issue Feb 13, 2020
This commit migrates existing pub-id::publisher id values to a new
urlPath prop and uses that property for URL routing. The
pub-id::publisher-id property is now a metadata field and can be
enabled/disabled. Existing values were kept
NateWr added a commit to NateWr/pkp-lib that referenced this issue Feb 17, 2020
NateWr added a commit to NateWr/pkp-lib that referenced this issue Feb 17, 2020
NateWr added a commit to NateWr/pkp-lib that referenced this issue Feb 17, 2020
This commit migrates existing usage of the
pub-id::publisher-id property to a new urlPath
property for all objects that have it. The
pub-id::publisher-id property remains to be
used separately from urlPath and has been
moved to a piece of metadata. URL handlers
now look in urlPath to fetch objects based
on requests that don't use IDs.
NateWr added a commit to NateWr/pkp-lib that referenced this issue Feb 17, 2020
NateWr added a commit to NateWr/pkp-lib that referenced this issue Feb 17, 2020
NateWr added a commit to NateWr/omp that referenced this issue Feb 17, 2020
This commit migrates existing pub-id::publisher-id values for
publications and publication formats to a new urlPath property
and uses that for URL routing. The pub-id::publisher-id
property is now a metadata field and can be enabled/disabled.
NateWr added a commit to NateWr/ojs that referenced this issue Feb 17, 2020
This commit migrates existing pub-id::publisher id values to a new
urlPath prop and uses that property for URL routing. The
pub-id::publisher-id property is now a metadata field and can be
enabled/disabled. Existing values were kept
NateWr added a commit to NateWr/ojs that referenced this issue Feb 17, 2020
NateWr added a commit to NateWr/omp that referenced this issue Feb 17, 2020
@NateWr
Copy link
Contributor

NateWr commented Feb 17, 2020

PRs:
#5519
pkp/ojs#2626
pkp/omp#765

Publisher ID is now enabled as metadata under Settings > Workflow > Submission > Metadata.
Selection_204

It appears alongside other metadata.
Selection_205

And a new field has been added for urlPath.
Selection_206

The following tooltip gives some guidance. @AhemNason can you please give me a 👍 or 👎 on this tooltip, particularly its usage in PubMed? (That's the only place I could find the publisher ID used).
Selection_207

Similar steps have been taken with the pub-id::publisher-ids for galleys, issues and issue galleys. When no pub id (DOI/URN) or publisher id is activated, the Identifiers tab will not appear. When upgrading to 3.2, any pub-id::publisher-ids are copied over to the urlPath so existing URLs continue to work.

In OMP, this has been implemented for publication formats but not chapters or submission files. Chapters do not have URLs yet so I left the urlPath out. Submission files do, and it probably makes sense to use a urlPath for these, too. But I opted not to in the end because submission files are much harder to separate out between OJS/OMP, and submission files do not have URLs in OJS. In this case, I took the path of least resistance on the assumption that url paths for files are probably not widely used and that there's a good chance we may separate out publication format files from submission files at some point down the line.

This required a bit more heavy-handed changes than I expected. I'm a bit nervous about this going in so late before 3.2's release. I'd appreciate any time that anyone has to check how the new URL Paths work.

@asmecher The new url_path columns in the db tables are all VARCHAR(32). Should we make this longer or change the type?

NateWr added a commit to NateWr/ojs that referenced this issue Feb 17, 2020
NateWr added a commit to NateWr/omp that referenced this issue Feb 17, 2020
NateWr added a commit to NateWr/pkp-lib that referenced this issue Feb 18, 2020
This commit migrates existing usage of the
pub-id::publisher-id property to a new urlPath
property for all objects that have it. The
pub-id::publisher-id property remains to be
used separately from urlPath and has been
moved to a piece of metadata. URL handlers
now look in urlPath to fetch objects based
on requests that don't use IDs.
NateWr added a commit to NateWr/pkp-lib that referenced this issue Feb 18, 2020
NateWr added a commit to NateWr/pkp-lib that referenced this issue Feb 18, 2020
NateWr added a commit to NateWr/pkp-lib that referenced this issue Feb 18, 2020
NateWr added a commit to NateWr/ojs that referenced this issue Feb 18, 2020
This commit migrates existing pub-id::publisher id values to a new
urlPath prop and uses that property for URL routing. The
pub-id::publisher-id property is now a metadata field and can be
enabled/disabled. Existing values were kept
NateWr added a commit to NateWr/ojs that referenced this issue Feb 18, 2020
NateWr added a commit to NateWr/ojs that referenced this issue Feb 18, 2020
NateWr added a commit to NateWr/ojs that referenced this issue Feb 18, 2020
NateWr added a commit to NateWr/omp that referenced this issue Feb 18, 2020
NateWr added a commit to NateWr/ojs that referenced this issue Feb 20, 2020
NateWr added a commit that referenced this issue Feb 20, 2020
@NateWr
Copy link
Contributor

NateWr commented Feb 20, 2020

I've merged this in but there are still two things I'd like to hear back on.

  1. @AhemNason can you please give me a +1 or -1 on this tooltip for publisher ID?

  1. @asmecher The new url_path columns in the db tables are all VARCHAR(32). Should we make this longer or change the type?

@AhemNason
Copy link

AhemNason commented Feb 20, 2020 via email

@asmecher
Copy link
Member

I haven't heard of a need to go beyond 32 characters, but it is an arbitrary limit and I wouldn't object to e.g. doubling it. (We used to have occasional issues with MySQL's max key length getting hit in certain tables -- that's one potential downside to increasing column lengths on indexed columns. But I don't think we're at risk of that in this case.)

ajnyga pushed a commit to ajnyga/ojs that referenced this issue Feb 21, 2020
This commit migrates existing pub-id::publisher id values to a new
urlPath prop and uses that property for URL routing. The
pub-id::publisher-id property is now a metadata field and can be
enabled/disabled. Existing values were kept
ajnyga pushed a commit to ajnyga/ojs that referenced this issue Feb 21, 2020
ajnyga pushed a commit to ajnyga/ojs that referenced this issue Feb 21, 2020
ajnyga pushed a commit to ajnyga/ojs that referenced this issue Feb 21, 2020
NateWr added a commit to pkp/omp that referenced this issue Feb 24, 2020
NateWr added a commit to pkp/ojs that referenced this issue Feb 24, 2020
@NateWr
Copy link
Contributor

NateWr commented Feb 24, 2020

Thanks!

@NateWr NateWr closed this as completed Feb 24, 2020
MedAhamada pushed a commit to Maanrifa/ojs that referenced this issue Apr 19, 2020
This commit migrates existing pub-id::publisher id values to a new
urlPath prop and uses that property for URL routing. The
pub-id::publisher-id property is now a metadata field and can be
enabled/disabled. Existing values were kept
MedAhamada pushed a commit to Maanrifa/ojs that referenced this issue Apr 19, 2020
MedAhamada pushed a commit to Maanrifa/ojs that referenced this issue Apr 19, 2020
MedAhamada pushed a commit to Maanrifa/ojs that referenced this issue Apr 19, 2020
MedAhamada pushed a commit to Maanrifa/ojs that referenced this issue Apr 19, 2020
MedAhamada pushed a commit to Maanrifa/ojs that referenced this issue Apr 19, 2020
@fgnievinski
Copy link
Contributor

Hi. I just wanted to confirm if the following field description remains valid:

"A unique ID provided by the publisher. It will be used in the publication's URL path instead of the id when present."
https://github.com/pkp/ojs/blob/main/schemas/galley.json#L46

I was with the impression that for fresh installs, urlPath would be totally split from publisher IDs. Only after upgrades that any pub-id::publisher-ids would be copied over to the urlPath, so existing URLs continue to work.

@NateWr
Copy link
Contributor

NateWr commented Oct 7, 2021

Good catch @fgnievinski! This is out of date. Now the urlPath represents the URL. I've updated the description in the commits above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement:1:Minor A new feature or improvement that can be implemented in less than 3 days.
Projects
None yet
Development

No branches or pull requests

5 participants