Skip to content

Publication System Overview

This is an overview of the publication system. It introduces the main concepts behind publication system components and points to additional documentation available on the source code. Read this overview to the end before going to source code.

The Publication module is one of the major components of the IxDF platform. Conceptually the publication system is a database of scientific and technical documents. Most of them are published by third parties and the database stores just their metadata (e.g. author, publisher, publication year, abstract, title, external URL, and so on). Some documents are published by IxDF itself and, in this case, the database stores the document actual content besides the metadata.

IxDF published documents are an integral part of the IxDF platform content. They form the core of IxDF site "Literature" section. Third party documents, on the other side, are just references to documents hosted elsewhere. Visitors can browse/research/view their metadata using the "Research Bibliography" feature, which is part of the "Literature" section.

The Publication module deals with several kinds of documents. Each document type is stored on its own table and has a corresponding model. In the context of the publication system, documents are called publications. These are the types of publications that compose the publication system, and the respective model:

Publication Types

Article

An article is written by an IxDF member, modeled by the class Article

Book

Either a book published by IxDF or an external publisher, modeled by the class Book

Book chapter

A Chapter of a book, modeled by the class BookChapter When viewing a book chapter with has related Commentary, these commentaries are shown below the regular content.

Commentary

A technical commentary made to a chapter of a book published by IxDF, which complements or augments the chapter subject, modeled by the class Commentary

The Commentary class is a type of document of IxDF publication system. A Commentary applies only to IxDF published book chapters and is always attached to a book chapter. It is comparable to a "blog comment", but is written by a superstar author, often contains illustrations, has been reviewed and edited. In other words, it is a valuable contribution to a chapter, augmenting and improving the chapter contents. Commentaries always have a content, which is displayed on a special section next to the book chapter contents it is attached to.

Currently, the publication system API is not able to create new commentaries or edit the existing ones.

Conference proceedings

Collection of academic papers published in the context of an academic conference or workshop (https://en.wikipedia.org/wiki/Proceedings), modeled by the class ConferenceProceedings

Conference proceedings article

An individual paper part of a conference proceedings, modeled by the class ConferenceProceedingsArticle

The class ConferenceProceedingsArticle represents an individual article published on the context of a conference. ConferennceProceedingsArticle instances are always attached to a {@see ConferenceProceedings}. ConferenceProceedingsArticle do not contains the article contents, only their metadata is stored. Like any other document type of the publication system, conference proceedings articles may have zero or more authors and be referenced by IxDF published book chapters. They are also displayed on the list of articles of the conference proceedings and authors that they belong to, when researching the IxDF website literature section.

Conference series

Not actually a document, but a conference that happens periodically, a conference series is composed of many conference proceedings, modeled by the class ConferenceSeries

Electronic document

A reference to an arbitrary document published in digital format, modeled by the class ElectronicDocument

Journal

An academic or scientific publication issued at stated intervals, modeled by the class Journal

Journal Article

An individual article published on a specific issue of a journal, modeled by the class JournalArticle

Other

An arbitrary document that does not fit any other category, modeled by the class OtherReference

Technical report

Document that describes the process, progress, or results of technical or scientific research or the state of a technical or scientific research problem (https://en.wikipedia.org/wiki/Technical_report), modeled by the class TechnicalReport

Publisher & Author

Publisher

Many publication types have a publisher, which is the entity that makes the publication available to the public. Publishers are stored on their own table, which is modeled by the class Publisher

Author

Most publications have authors, which can also be an IxDF member or not. Whatever is the case, there is a table specifically for authors, which are modeled by the class Author

Generic Publication

One of the requirements of the publication system is being able to use a unique "ID" to reference any type of publication, that is, given only the ID of a publication we are able to know what type of publication it is and how to retrieve it.

This is achieved through the "generic" class Publication, which can reference any publication of any type. Technically speaking, a Publication instance is just a reference to an actual publication. This is an important concept of the publication system, so be sure to read the Publication class documentation first.

Behavior of publications

The publication system employs a number of interfaces and traits that describe behaviours common to several types of publications. This is so we can create abstractions on top of publication types and implement publication system logic based on such abstractions, so improving readability and avoiding code duplication. This is an overview of the publication system interfaces and traits:

  • HasAuthors: trait to be used by any publication type that has one or more authors; implement an API to manage and retrieve the publication authors
  • HasPublicationMeta: trait used by all publication types; it implements the relationship between a specific publication type instance and the corresponding "generic" Publication instances
  • HasWorkflow: used by publication types published by IxDF; implements an editorial workflow
  • Publication: interface that must be implemented by all publication types; describes the bare minimum API common to all publication types
  • PublicationMaterial: interface implemented by publication types published by IxDF; describes the API common to IxDF published publications
  • PublicationReference: interface used to "tag" publication types which are just references to externally published material

Show and expose publications

The IxDF website "Literature" page allows browsing and reading IxDF published articles and books. The "Research Bibliography" feature, available on that same page, allows browsing authors, conference series and journals. When browsing authors, it is possible to see a list of all their publications, which can be books, book chapters, conference proceedings, conference proceedings articles, electronic documents, journal articles, technical reports and the generic "other" documents. Just a reference to the publications (their metadata) is displayed, not the actual content.

When browsing conference series, it is possible to browse the conference proceedings and see the list of conference articles, and when browsing journals, it is possible to see the list of journal articles. Like above, just the reference to the publications is displayed.

Any type of publication can be used as a reference on IxDF published book chapters. They are displayed (only the reference to them, not the contents) on a special "references" section displayed next to the book chapter contents when reading the chapter.