Inhalt |
---|
This section of the wiki aims to document what we have learnt about the Open Journal System (OJS), which is used as the technological platform to publish the journal "Proceedings of the MEi:CogSci Conference".
...
This is a living document and work-in-progress documentation .
Backend - OJS Database
Automatizable tasks and schedule
Of what is needed and when, and the data fields we were using last year tracking and web scrapping the interface.
P (Priority) 1=very important, an amazing time saver and error tracker, 2= it would be great, 3= it would be nice but we can do it manually.
...
...
Phase
...
P
...
Tasks
...
Data fields in our checking tables
...
Query URL
...
01.05
...
Author's Registration
...
3
...
For a given set of email addresses (or names): Check who is not registered, who is registered with a misspelled or non-university email address, who has started a submission and if the submission type (poster vs. talk) is correct. Send reminders and correct issues.
Other tasks before the 01.05:
- Check if the ROR Plugin is working:
https://forum.pkp.sfu.ca/t/ojs-3-4-0-4-ror-plugin-not-in-plugin-gallery/86800 - Get ISSN?
...
Author, email address, submission ID (& link), submission title, if the submission abstract text field is filled, and if they actually pressed the button to submit).
Reminder: We would only be interested in the new submissions (i.e. between 01.05.2024-01.07.2024).
List of the Submissions (similar to the tab "Submission" in the Excel)
...
Whiteboard#Checkwhois(not)registered
...
10.05
...
Submission of Abstracts
...
2
...
+who sent the submission.
...
15.05
...
Assignation of reviewers
...
1
...
Co-create a table of who reviews who given a set of rules (e.g. 1st year students from Vienna get as a teacher reviewer Elisabeth Zimmermann + 2nd year students Elisabet Delgado Mas + although group submissions are submitted by every member, a student can't review itself or someone from its own group etc.).
Check all submissions have been assigned at least 3 or more reviewers (2 random students and 1 university designated teacher), with the exception of the group submissions.
Check each author has been assigned to review two other authors.
submission ID (& link), submission title, author, number_assigned_reviewers, reviewer1_name, reviewer2_name, reviewer3_name (instead of name it can be an email address or user ID that allows to trace them), reviewer4_name (4th reviewer is not always applicable, for exceptions)
Note: We can count on a separate table author, times_assigned_as_reviewer, by counting how many times do they appear as reviewers in the table above.
...
21.05
...
Revision of reviews
...
1
Check which reviewers have sent their reviews, to (1) send reminders to those reviewers who have not submitted them and (2) assign 4th reviewers if needed be. Revise several times.
Extra: Check if teachers have submitted all their reviews.
+ r1_status, r2_status, r3_status, r4_status (submitted or not), r1_details, r2_details, r3_details, r4_details (“Recommendation: Revisions Required”, ”Recommendation: Accept Submission”)
R=reviewer
List similar to the tab "Data_review" in the Excel)
...
24.05
...
Approved & forwarded reviews
...
1
Count how many reviews have been submitted overall and how many are left.
...
31.05
...
Submission of Final Abstracts
...
2
...
Check all abstracts are submitted and uniformize their content, assign them to an issue.
...
The earlier the better
...
Conference Preparation (Schedule, badges)
...
3
...
To update the schedule: Extract list of submissions by type (poster vs. talk) and authors.
To make the badges: Extract list of submission
...
Submission link, submission title, author surname
Author name & surname, affiliation
...
how to find titles after publication.sql
Deadlines and author guidelines for the Proceedings of the MEi:CogSci Conference.
How To Connect
Configure access to the database for the first time (requires EDV / IT expertise and permissions).
Software
VPN (if working from home office, BigIP & FreeOTP), tunnel (PuTTY) and database administration tool (DBeaver).
The software between parentheses has been tested for compatibility with our university laptops, but alternatives are possible.
Steps
- Connect to VPN if you are not in the university: BigIP + FreeOTP to verify your identity.
- Open tunnel connection: PuTTY (bottom right button "Open" if you already established a session on your first time).
- It will open a black terminal window. That's alright, don't close it until you finish and save your work.
- Open database management and SQL editor: DBeaver ("SQL" button on the upper left side).
- You are ready to type or upload (F3) your queries
- You are ready to type or upload (F3) your queries
MySQL
We use MySQL to communicate or retrieve data from our database. Check our sub-page MySQL Basics.
Tables
Useful notes to navigate the chaos For all those tables used in scripts and related queries.
Columns are formatted in italics. Crucial columns are highlighted in bold italics.
author_settings
Nested structure: columns setting_name and setting_value, linked by author_id.
setting_name = "familyName", "givenName", "affiliation", "country", "orcid", "url" or "biography"
setting_value = correspondent values (e.g. "Delgado Mas", "Elisabet", "University of Vienna", "AT")
authors
Links author_id with:
publication_id
user_group_id = Related to permissions. 2 (evelyn.gasiorek), 3 (elisabeth.zimmermann, a11934638 / lena mueller), 14 (most users), 36 (edv.philosophie, einradritter / udo schimanofsky), 48 (evelyn.gasiorek, lena.mueller-naendrup, elisabet.delgado.mas, tutors).
seq = order the author appears on the paper
A single user / author / standard student has two rows in this table, and two different author_id values! One row is for their first year publication and the other for their second.
- Example: Elisabet Delgado Mas (a12013592 add unet.univie.ac.at) has one row in the authors table with author_id = 270 and publication_id = 147 ("EMG reproducibility using neuronavigated TMS"), and another row with author_id = 525 and publication_id = 328 ("Human-AI Interaction").
Queries:
-- Check main table related to authors.
SELECT * FROM ojs.author_settings
-- Note that the table author_settings ≠ table authors, where you can find the email.
SELECT * FROM ojs.authors
-- Note table authors ≠ table Authors.
SELECT * FROM ojs.Authors
-- Given one of the user's author_id, get email.
SELECT email FROM ojs.authors x WHERE author_id = 256
publication_settings
Nested structure: columns setting_name and setting_value, linked by publication_id (≠submission_id) .
setting_name = "abstract", "title", "prefix", "subtitle", "categoryIds"
setting_value = correspondent values (e.g. "Delgado Mas", "Elisabet", "University of Vienna", "AT")
publications
Links publication_id with everything else, including:
submission_id = XXX (e.g.368)
last_modified = YYYY-MM-DD HH:MM:SS.000
date_published = YYYY-MM-DD
seq
doi_id
last_modified can be used in the query as a filter for the submissions of the current year (e.g. AND p.last_modified >= '2024-03-03 00:00:00';).
submission_id can be used to create the links to the backend and the frontend of each submission:
- SELECT
- CONCAT('https://journals.phl.univie.ac.at/meicogsci/workflow/access/', p.submission_id) as 'url_backend',
- CONCAT('https://journals.phl.univie.ac.at/meicogsci/article/view/', p.submission_id) as 'url_frontend'
Can we see if the doi are being automatically assigned in the doi_id? Does it link to the tables doi_settings and dois?
issue_settings
Nested structure: columns setting_name and setting_value, linked by issue_id.
setting_name = "description", "title"
setting_value = "", " Proceedings of the MEi:CogSci Conference"
issues
Links issue_id with everything else related to an issue, including:
year = 2022 for issue_id = 8. 2023 for issue_id = 13.
date_published, last_modified = YYYY-MM-DD HH:MM:SS.000
journal_id = The number of our OJS journal within the university, 3.
volume = 16 for issue_id = 8. 17 for issue_id = 13.
published, access-status, show-volume, show_number, show_year, show_title = 1.
url_path, doi_id = NULL
users
Links user_id with everything else related to a user, including:
username = elisabet
password = (encripted) $2y$16$m2Wp95TAKo9Fg8V7hCoCEuC/3Z8zCDC/q8f2Py6C3Yl1LxC2kGnIG
email = a000000000@unet.univie.ac.at
date_registered = YYYY-MM-DD HH:MM:SS.000
date_last_login = YYYY-MM-DD HH:MM:SS.000
user_settings
Similar to author_settings. Nested structure: columns setting_name and setting_value, linked by user_id.
setting_name = "familyName", "givenName", "affiliation" + "preferredPublicName", "signature", "orcid"
setting_value = correspondent values (e.g. "Delgado Mas", "Elisabet", "University of Vienna", "", "", "")
sections
(journal_id = 3, ours)
3
4
7
8
(journal_id = 4, who knows)
5
6
(SECTION_id inside of submissions > publication_id)
seq
It means order.
Values: 1,2,3,4
Section_ids: 7, 8, 3, 4
Corresponding to: Workshops, plenary talks, talks, posters.
Scripts
Linked List
Repository of scripts (ready to upload to a database manager, and tested)
- File-paths-given-issue.sql
- get-author-id-by-email.sql
- get-authors-and-submissions.sql
- get-authors-email-family_name-given_name.sql
- get-submissions-date-range.sql
- get-urls_submission-id.sql
- 05-01_authors_registration.sql
Scripts Documentation
Single line comments start with --
File-paths-given-issue.sql
f.path from (select publication_id from publication_settings
where setting_name = 'issueID' and setting_value = 13)
--We have published .
Issue 2023
where setting_name = 'issueID' and setting_value = 13
Issue 2022
where setting_name = 'issueID' and setting_value = 8
get-authors-and-submissions.sql
Given a list of emails, returns a table with all the submissions by those authors, the user_id, givenName, familyName, email, university, publication_id, submission_id, title (of the abstract), abstract, last_modified (date), and a quick access URL to the public view and the dashboard view of that submission.
get-authors-email-family_name-given_name.sql
Smaller script: Returns the email, family name and given name of an author, which are values found at different tables of the database (email in users and names in user_settings).
get-author-id-by-email.sql
Smaller script: Returns the author_id, given name, family name, email, university, publication_id, submission_id and country, given an email address.
get-urls_submission-id.sql
Smaller script: Generates the URLs for quick access of a given submission both in the public face of the website (or its preview) and the admin dashboard.
get-submissions-date-range.sql
Gets submissions within a date range and their data.
This is important as a constrain because until the submissions have been reviewed and approved, we cannot filter them by issue (merely because they have not yet been assigned to an issue, which is a manual process done one by one).
On the making
Scripts we have not yet managed to finish, if any.
- 05-01_authors_registration.sql
- We would like it to track: Author, email address, submission ID (& link), submission title, if the submission abstract text field is filled, and if they actually pressed the button to submit).
Quick useful queries
-- Given submission_id, provide the backend and frontend links of its submission. Change 368 for your n.
SELECT p.submission_id,
p.publication_id,
CONCAT('https://journals.phl.univie.ac.at/meicogsci/workflow/access/', p.submission_id) as 'url_backend',
CONCAT('https://journals.phl.univie.ac.at/meicogsci/article/view/', p.submission_id) as 'url_frontend'
FROM publications p
WHERE p.submission_id = 368
-- WHERE p.publication_id = 328
...
SELECT a.email, a.author_id, a.publication_id
FROM authors a
WHERE email = (SELECT email FROM authors WHERE author_id = "270")
-- Given one of the user's author_id, show their data (familyName, givenName, affiliation, country) for both publications. Change 270 for your n.
SELECT DISTINCT a.email, a.author_id, a.publication_id, ase.setting_value
FROM authors a, author_settings ase
JOIN (SELECT author_id, setting_value FROM author_settings WHERE author_id = "270") as aaf
ON ase.author_id = aaf.author_id
WHERE email = (SELECT email FROM authors WHERE author_id = "270")
-- Check which users have the permission most tutors had.
SELECT * FROM authors WHERE user_group_id = 36;
Annexes
Tables used
These are the tables in our database.
- Most of these might be empty or merely not used.
- We highlight in bold the ones we have been using in successful queries.
- We highlight in italics the ones in which we have found data that we have not yet managed to explain, but which may become relevant.
Authors
access_keys
announcement_settings
announcement_type_settings
announcement_types
announcements
auth_sources
author_settings
authors
books_for_review
books_for_review_authors
books_for_review_settings
captchas
categories
category_settings
citation_settings
citations
comments
completed_payments
controlled_vocab_entries
controlled_vocab_entry_settings
controlled_vocabs
custom_issue_orders
custom_section_orders
data_object_tombstone_oai_set_objects
data_object_tombstone_settings
data_object_tombstones
dataverse_files
dataverse_studies
edit_assignments
edit_decisions
email_log
email_log_users
email_templates
email_templates_default
email_templates_default_data
external_feeds
external_feed_settings
email_templates_settings
event_log
event_log_settings
failed_jobs
files
filter_groups
filter_settings
filters
genre_settings
genres
group_memberships
group_settings
groups
institutional_subscription_ip
institutional_subscriptions
issue_files
issue_galley_settings
issue_galleys
issue_settings
issues
item_views
jobs
journal_settings
journals
library_file_settings
library_files
metadata_description_settings
metadata_descriptions
metrics
mutex
navigation_menu_item_assignment_settings
navigation_menu_item_assignments
navigation_menu_item_settings
navigation_menu_items
navigation_menus
notes
notification_mail_list
notification_settings
notification_subscription_settings
notifications
oai_resumption_tokens
object_for_review_assignments
object_for_review_persons
object_for_review_settings
objects_for_review
paypal_transactions
pln_deposit_objects
pln_deposits
plugin_settings
processes
publication_categories
publication_galley_settings
publication_galleys
publication_settings
publications
queries
query_participants
queued_payments
referral_settings
referrals
review_assignments
review_files
review_form_element_settings
referral_settings
referrals
review_assignments
review_files
review_form_element_settings
review_form_elements
review_form_responses
review_form_settings
review_forms
review_object_metadata
review_object_metadata_settings
review_object_type_settings
review_object_types
review_round_files
review_rounds
roles
rt_contexts
rt_searches
rt_versions
scheduled_tasks
section_settings
sections
sessions
site
site_settings
stage_assignments
static_page_settings
static_pages
subeditor_submission_group
submission_artwork_files
submission_comments
submission_file_revisions
submission_file_settings
submission_files
submission_search_keyword_list
submission_search_object_keywords
submission_search_objects
submission_settings
submission_supplementary_files
submission_tombstones
submission_xml_galleys
submissions
subscription_type_settings
subscription_types
subscriptions
temporary_files
theses
usage_stats_temporary_records
user_group_settings
user_group_stage
user_groups
user_interests
user_settings
user_user_groups
users
Backend - OJS Exports
We have prepared a sample of exports here, protected by password.
The folders in which they are contained include descriptions of the items selected for export and the encountered problems.
At this point, the main issue with OJS exports is that this mainly focus on published articles already assigned to an issue, a step undertaken only after the review phase.
They have been obtained through:
TOOLS
Exporting XML tools, basically.
https://journals.phl.univie.ac.at/meicogsci/management/tools
Crossref XML Export Plugin: Export article metadata in Crossref XML format.
DataCite Export/Registration Plugin: Export or register issue, article, galley and supplementary file metadata in DataCite format.
PubMed XML Export Plugin: Export article metadata in PubMed XML format for indexing in MEDLINE.
DOAJ Export Plugin: Export Journal for DOAJ.
Native XML Plugin: Import and export articles and issues in OJS's native XML format.
Users XML Plugin: Import and export users
STATISTICS: REPORTS
Exporting CSV tools, basically, of mostly quantitative data.
https://journals.phl.univie.ac.at/meicogsci/stats/reports
Subscriptions Report
Articles Report
COUNTER Reports
Review Report
Backend - Web scrapping
Link
Link to the code, documentation and example of result.
Software
We used Python to code a script to web scrap the frontend interface of an admin user with Selenium and Chromedriver.
Therefore, to use this you need to install Python, Selenium and Chromedriver.
Execute
To execute the script, open two terminal windows.
...
You have to adapt this to the folder paths in your computer.
...
Result
The result of the script is the document check_table.CSV.
The following steps to make it readable [in a Mac] and to avoid problems with the inherently varied characters of our international students' names (Slovak, Slovene and worldwide characters beyond the English alphabet) are:
- Open Microsoft Excel.
- Create a new empty document.
File > New.
- Import CSV.
File (upper bar) > Import > (Select document).
- Configure import in the pop-up window:
Select "Delimited" + Select for File Origin: "Unicode (UTF-8)". Next.
Select "Semicolon". Next.
Paste the content in the first cell of the document.
THE DOC IS READY.
To copy paste in Google Spreadsheets or other cloud spreadsheet:
- Select all the content, copy it.
- Go to your Google Sheets spreadsheet (or elsewhere).
- Paste it.
- If you need to keep the format (https://support.google.com/docs/thread/54946749/paste-special-paste-values-only-does-not-work-in-google-sheet?hl=en) paste it on another sheet inside of the document first (e.g. a sheet with conditional formatting: Edit > Paste values).
Voilà, congratulations
Frontend - OJS Website & Dashboard
View of the homepage of the website (left) and the dashboard (right) of an advanced user. The changes in the website have to be done and saved from the dashboard. Find below a written tutorial on where to find what.
Inside of the dashboard, you can navigate the options through the left side menu, whose items will be in UPPERCASE titles in the following sections.
If you have admin permissions, this is what you should see:
SETTINGS: JOURNAL
> TAB: MASTHEAD
Change:
-the name or title of the Journal.
-the tag [ProcMEiCogSci], which appears in the beginning of the emails sent through OJS.
-the journal URL.
-the journal ISSN.
-the text "Journal Summary", which appears in the homepage.
-the text "Editorial Team", which appears in the page About > Editorial Team
-the text "About the Journal", which appears in the page About > About the Journal
> TAB: CONTACT
Change the journal contact data (currently set to meicogsci@).
> TAB: SECTIONS
Currently established sections: Plenary Talks, Workshops, Poster Abstracts, Talk Abstracts, Editorial (prologue).
For each section, you can:
-Change its names.
-Set word limit.
-Pre-define a default review forms (MUST DO*).
If you unfold the options of each section (clic little triangle on its left and "Edit").
*Eli's note for the 2025 team:
Before May, create a new review form for 2025 and assign it as the default to the Talk and Poster sections. You will save yourselves the task of assigning it manually for every reviewer for every submission, about 360 times ;) This new review form has to include the minimal textual changes required and agreed in the Coordination-Consortium meeting June 2024 (you may ask @Lisl or check the notes stored in the MEi:CogSci Consortium Google Drive).
> TAB: CATEGORIES
Eli's note for the 2025 team:
We don't know what they do. But have a look at their possibilities on "how to order articles in this category: Title (A-Z)" to see if we could avoid the task or reordering all the articles manually just before publishing the issue.
For more info: https://docs.pkp.sfu.ca/learning-ojs/en/journal-setup#categories
SETTINGS: WEBSITE
In this section there are many many tabs, sometimes inside of other tabs. This is why we will structure this section on the wiki not by tabs but by where you can find each feature, so it's most helpful
Design
Change some of the design of the homepage, how the whole website looks and how to customize its design:
...
-Favicon (customized to MEi:CogSci, tiny image in the Internet browser tab)
...
...
...
-Journal Style Sheet (which we have not tried, but may allow CSS?)
...
Menus & URLs
Change the structure/architecture/navigation (what page is inside of which and its URL) of the website:
...
-Main menu ("Primary Navigation Menu").
...
-Secondary menu ("User Navigation Menu").
...
...
Eli's note:
Beware there are two sections called "Setup". In the picture we are in SETTINGS: WEBSITE (left bar) > APPEARANCE (tab in the upper part) > SETUP (tab inside appearance, on the lef-central part) > "Logo".
> SETUP
> PLUGINS
SETTINGS: WORKFLOW
It's where you find most of the stuff related to author guidelines and the review phase, but also about submission settings (e.g. confirmation statement component).
*Eli's note for the 2025 team, most interesting:
Review forms are in SETTINGS: WORKFLOW > REVIEW (upper tab) > REVIEW FORMS (left tab). Once a review form has been used to review by any user, it cannot be edited anymore!
There may be a way to set automatic reminders in SETTINGS: WORKFLOW > REVIEW (upper tab) > SETUP (left tab).
...
We can set and change friendlier and more customized templates for emails and reminders that can be sent automatically within the system: https://journals.phl.univie.ac.at/meicogsci/management/settings/manageEmails
SETTINGS: USERS & ROLES
You can browse specific users in the first upper tab, and see the role possibilities in the second.
Permissions are divided in four categories or stages:
Submission | Review | Copyediting | Production |
---|
All roles are a combination of these categories or stages (which for our purposes, is not most helpful).
There are currently 17 roles, and any given user can have multiple roles assigned. Each role has an associated permission level.
Permission levels are:
...
Assistant
...
SUBMISSIONS
It's where you can see and do everything related to the particular submissions of the author abstracts and reviews.
ISSUES
Mostly relevant just before the last step for publishing the issue (June), to rearrange what you see here:
...
Edit the configuration of an issue (name, date of publication, volume - formal number).
Add a cover image and some text about this issue.
...
Order the abstracts within each section in the right order.
In 2024, by author surname, manually once an issue is created and after all submissions have been assigned.
...
Order the sections.
In 2024, the order set is:
- Editorial
- Plenary Talks
- Workshops
- Poster Abstracts
- Talk Abstracts
...
Eli's note for team 2025:
It's worth noticing the actual issue ID in the URL is not the same as the formal number "Identification Volume". E.g.
- Issue "Vol. 18 No. 1 (2024): Proceedings of the MEi:CogSci Conference" (18th MEi:CogSci Conference) has the ID 17 in its URL https://journals.phl.univie.ac.at/meicogsci/issue/view/17
- Issue "Vol. 17 No. 1 (2023): Proceedings of the MEi:CogSci Conference" (17th MEi:CogSci Conference) has the ID 13 in its URL https://journals.phl.univie.ac.at/meicogsci/issue/view/13
And the ID in the URL changes every time the issue is unpublished and published again (be wary of this).
ANNOUNCEMENTS
Add or modify the announcements / posts that appear in the website.
STATISTICS
About the number of users, editorial activity etc. Mostly exportable in CSV format (and from there to Excel).
Interestingly:
-Most visited articles
https://journals.phl.univie.ac.at/meicogsci/stats/publications/publications
Activity Log
16.07.2024
Elisabet, @Elisabeth, @Evelyn, @Odin
- Meeting and sharing content with the Bratislava team (@Martin & @Kika).
15.07.2024
- General structure and order.
- Backend documentation on OJS web scrapping, and link to scripts.
- Backend documentation on OJS scripting, and upload of scripts.
09.07.2024
- Backend documentation on OJS exports.
02.07.2024
- Frontend documentation on OJS.
27.03.2024
- Goal: Explore database, create table documentation, get first scripts.
- Elisabet Delgado Mas Create table documentation.
- Elisabet Delgado Mas Create queries that:
- Given submission_id, provides the backend and frontend links of its submission.
- Given one of the user's author_id, show their email and both publications.
- Given one of the user's author_id, show their data (familyName, givenName, affiliation, country) for both publications.
- Give list of users with a given permission.
- Elisabet Delgado Mas Create script that gets authors and submissions.
19.03.2024
Elisabet Delgado Mas Evelyn Fischer
- Goal: Start new scripts based on the Schedule.
- Homework:
- Evelyn Fischer Delete outdated tutorial.
- Elisabet Delgado Mas Create updated tutorial and follow-up content from our meeting.
- Arrange next meeting (any hour, Tue or Wed). https://univienna.zoom.us/j/66408236619?pwd=WFZEclF6bGNXUlJaellNbnYrTkMxUT09
Time: Mar 19, 2024 02:00 PM, Meeting ID: 664 0823 6619, Passcode: 444917 - Elisabet Delgado Mas Check DBeaver https://dbeaver.com/docs/dbeaver/Data-transfer/
12.03.2024
Elisabet Delgado Mas Evelyn Fischer
- Set-up wiki. Update procedure. Discuss feedback.
- Update first script: File-paths-given-issue.sql
- Homework (to be done before the meeting):
- Evelyn Fischer Create and share a wiki page.
- Elisabet Delgado Mas Create for EDV a schedule of what is needed and when, and the data fields we were using last year by web scrapping the interface.