Administering Ontomasticon

Ontomasticon is a simple, lightweight ontology and glossary server written in PHP and making use of MariaDB or MySQL.

This page describes the administration pages: configuring the site, managing users and their roles, the linked data readiness report, updating the database and the warnings shown to administrators. Adding and editing controlled vocabularies and terms is described on the page Editing vocabularies and terms.

Logging in

Log in at [base_url]/user/login. Once logged in, the menu shows an Administration link to users who can use any of the administration pages, a User link to your own settings, and a Logout link. The administration pages have a menu of their own, which only lists the pages you have permission to use.

The install script creates a single account, with the email address admin and the password password. Anyone who logs in with the password password is sent to their user settings page and cannot use any other page (apart from logging out and the API) until they have changed it. The new password cannot be password again.

After 5 failed logins for the same email address, or 20 from the same IP address, within 15 minutes, further logins are refused until the failed attempts are more than 15 minutes old. If the site is behind a CDN or reverse proxy, list its addresses in $trusted_proxies in settings/db.php so that visitors' own IP addresses are used.

Administration warnings

Users with the Admin role see a box of warnings at the top of every page when something needs attention.

WarningMeaning
InstallerThe inst directory still exists. Delete it once Ontomasticon is installed, as anyone could otherwise run the install script.
Database updateThe code is a newer version than the database, and the database update needs to be run. If the database is a newer version than the code, the warning asks you to upgrade the code instead. This warning is not shown on the update page itself.
Admin PasswordThe installation account (the first user, created by the install script) still has the password password.
Update AvailableA newer version of Ontomasticon has been released. Once a day, when an administrator loads a page, Ontomasticon compares its version with the version in index.php on the master branch of the GitHub repository. If GitHub cannot be reached, the result of the last successful check is kept and the check is tried again the next day.

Configuring the site

The site configuration page, [base_url]/admin/config, can only be used by users with the Admin role. Its settings are stored in the config table of the database.

SettingWhat it does
Site nameThe name shown in the page header and browser title, and used in the suggested citation at the bottom of each page. In linked data (JSON-LD and Turtle) it is the title (dcterms:title, rdfs:label and skos:prefLabel) of the site's own concept scheme, which holds the terms that are not in a controlled vocabulary.
AuthorThe person or people responsible for the site. It is used in the suggested citation and the page's author meta tag, and as the creator (dcterms:creator) of the site's own concept scheme. It is not given for controlled vocabularies.
PublisherThe organisation that publishes the vocabularies, if there is one. It is given as the publisher (dcterms:publisher) of the site's own concept scheme and of every controlled vocabulary. Leave it empty to leave it out.
Default languageThe language code of the site's own content, for example en. The user interface is shown untranslated in this language, and other languages use a language pack and translated site settings (see Translating Ontomasticon). In linked data, the names and descriptions of the site's concept scheme and of every controlled vocabulary are tagged with this language, as long as it is a valid language tag such as en or en-GB (not en_GB).
Base URLThe address of the site, for example glossary.example.org/ or http://glossary.example.org/. If it doesn't start with http:// or https://, https:// is assumed, and a trailing slash is added if it is missing. The install script sets it to the server's name. Every URI Ontomasticon gives to a vocabulary or term starts with this address (see Addresses of vocabularies and terms), so it should be the address the site is really served from, and changing it changes every URI. Linked data requests to the site's own addresses only find a term if its URI starts with the base URL.
DescriptionA description of the site, shown on the home page. HTML can be used, and is shown as it is entered. The page's description meta tag uses it with HTML tags removed. In linked data it is the description (dcterms:description) of the site's own concept scheme, as plain text.
GlossaryTick it if the site is a glossary. Terms on the home page, on vocabulary pages and in search results are then listed in alphabetical order under a heading for each letter, with links from A to Z above and below the list. Names that don't start with a letter from A to Z, including accented letters, are listed first, under #. A term with an acronym is also listed under the acronym's letter, as "PAM, see Passive acoustic monitoring", and its entry shows the acronym. In linked data the words for each term (its name, acronym and synonyms) are also published as a dictionary would publish them, with OntoLex and LexInfo: see Linked data and the API.
LicenseThe web address of the license the vocabularies are published under, for example https://creativecommons.org/licenses/by/4.0/. It must start with http:// or https://, or be left empty. It is given as the license (dcterms:license) of the site's own concept scheme and of every controlled vocabulary.
Namespace prefixA short prefix for the terms that are not in a controlled vocabulary, for example gl. It must start with a letter, use only letters, digits, hyphens and underscores, and be at most 20 characters long, or be left empty. In linked data it is given as the preferred namespace prefix (vann:preferredNamespacePrefix) of the site's own concept scheme, with the base URL as its namespace (vann:preferredNamespaceUri). Controlled vocabularies have prefixes of their own.

If the license or namespace prefix is not valid, none of the settings are saved.

The config table has some rows that are not on this page: mode (set it to debug to show PHP errors), the version numbers of the code and database, the results of the update check, and any translated site names and descriptions. These are changed in the database directly.

Users and roles

The users page, [base_url]/admin/users, lists every user with their email address and role, and can only be used by users with the Admin role. A user's role can be changed by choosing it from the list next to them and pressing Save. You cannot change your own role, and the installation account (the first user, created by the install script) always has full access whatever role it has, so neither can be changed here.

Each role allows a set of tasks.

RoleCan
NoneLog in and change their own name and password, but nothing else.
EditorAdd, edit and delete terms, and edit controlled vocabularies.
Editor and CV creatorEverything an Editor can do, and add controlled vocabularies.
AdminEverything: all of the above, deleting controlled vocabularies, configuring the site, managing users, running the database update and seeing the administration warnings.

Deleting a controlled vocabulary also deletes all of its terms, so only admins can do it.

Adding a user

Admins can add a user from the Add user link on the users page ([base_url]/admin/users/add). Enter their first name, surname, email address and password, and choose a role. The email address and password are required, and the email address is what the user logs in with, so no two users can have the same one. It is not checked to be a real email address. Tell the user their password yourself: Ontomasticon doesn't send email. If you give them the password password, they will have to change it when they first log in.

Editing and deleting a user

The edit link next to a user ([base_url]/admin/users/edit/[user id]) lets an admin change the user's first name, surname and email address, or delete the user. Deleting a user cannot be undone. The installation account cannot be deleted, and neither can your own account. Admins cannot set another user's password.

Your own settings

Any logged in user can change their own first name, last name and password on the user settings page, [base_url]/user/settings. To change the password, enter the current password and the new password twice.

Linked data readiness

The readiness report, [base_url]/admin/readiness, lists what stops the vocabularies giving complete, clean RDF in JSON-LD and Turtle, and meeting TDWG's requirements for controlled vocabulary terms. It can be used by users with the Editor, Editor and CV creator or Admin role, and is linked from the administration menu as Linked data readiness. Each problem lists the vocabularies or terms it affects, each linked to the page where it can be fixed, and the report says "No problems found." when there are none. It checks for:

Updating the database

New versions of Ontomasticon sometimes need changes to the database. After replacing the code with a new version, an admin should visit the database update page, [base_url]/admin/update (also available at [base_url]/update). The Database update warning links to it when an update is needed.

The update page makes each change needed to bring the database up to the version of the code, in order, and reports each version it updates to. If the database is already up to date it says "No updates required." It is safe to run more than once. If a step fails, the error is shown and the later steps are not run, so the problem can be fixed and the update run again.

VersionChanges
0.2Adds references to terms.
0.3Requires every user to have a different email address, adds the table used to limit failed logins, and removes links from terms to parent and broader terms that had been deleted. If some email addresses belong to more than one user the update stops and lists them: change or remove the duplicate accounts in the database, then run the update again.
0.4Records when terms are added and changed (terms that already exist are left without dates), and adds namespace prefixes for controlled vocabularies and the publisher, license and namespace prefix settings.
0.4.1Adds term types (concept, property or class). Existing terms become concepts.
0.4.2Records where a property's values come from: a controlled vocabulary or a datatype.
0.4.3Lets a term have several references of any length.
0.4.4Adds acronyms to terms. Saving a term fails until this update has been run.

The update also lets term languages be up to 35 characters long, if the database doesn't already allow it, whatever its version.

Forms

Every form carries a code tied to your login session, so that other websites cannot submit forms on your behalf. If a form is submitted after the session has expired, nothing is saved and the message "The form could not be verified. Please reload the page and try again." is shown.