Relations Application

Last modified by Thomas Mortagne on 2024/02/05 00:17

cogCreate and display relations between pages
TypeXAR
CategoryApplication
Developed by

Anca Luca, Clément Aubin, slauriere

Active Installs9
Rating
2 Votes
LicenseGNU Lesser General Public License 2.1
Compatibility

XWiki 11.1

Installable with the Extension Manager

Description

The Relations application is meant to ease, in some cases, the creation of relations between pages and the navigation across the wiki page graph. XWiki makes it possible to interlink pages in multiple ways, in particular via hyperlinks, hierarchies, tags, page fields or database list fields. In some cases, it can be handy to have an additional way to link pages: as metadata added to the pages, using dedicated objects. It is typically useful when you want to navigate your wiki transversally rather than hierarchically, or when tags do not carry enough semantics, in particular due to the fact that tags cannot be tagged, or when introducing specific XWiki classes is considered too costly.

Version 3.0 introduces a sructural change for which no automated migrator is currently available. In case you need one, please express your interest on the XWiki forum or chat.

Features

Adding, removing, displaying relations

The application provides a user interface for adding or removing relations to a page and for displaying the current page's relations, as illustrated in the image below which relates page Charlie Chaplin to a few films and actors. Both direct and inverse relations are listed. Since verion 3.0, relations can be created across several wikis, and when entering text in the form for adding a relation, a full-text search query across the wiki farm is performed using Solr.

ui-relations.jpg

Relation List Panel

The application provides a panel displaying the current page's direct and inverse relations, named XWiki.Relations.Code.RelationListPanel.

Relations macro

The application provides a macro {{relations/}} displaying the current page direct and inverse relations.

Relation List Content Header UIExtension

A UI Extension is included, allowing to display the existing relations at the top of each page content, named XWiki.Relations.Code.RelationListHeaderUix. It can be disabled e.g. by editing the UIExtensionClass object and suffixing the Extension Point ID to org.xwiki.platform.template.content.header.after.disabled.

Future

  • Automated creation of relations when page links are detected in the content.
  • Ability to name relations, e.g.: Page A "relates to" Page B, Page A "has type" Page B...
  • Automated suggestion of relations based on a natural language processing analysis of the content.

See also

This paragraph lists some initiatives that relate to the management of relations or software that implements a feature allowing to relate artefacts with one another:

  • RDF proposes the concept of triples: subject - predicate - object, that's a way to relate the subject and the object.
  • JIRA allows to link issues with one another with one of the following properties: blocks, depends on, duplicates, relates to.

Prerequisites & Installation Instructions

We recommend using the Extension Manager to install this extension (Make sure that the text "Installable with the Extension Manager" is displayed at the top right location on this page to know if this extension can be installed with the Extension Manager). Note that installing Extensions when being offline is currently not supported and you'd need to use some complex manual method.

You can also use the following manual method, which is useful if this extension cannot be installed with the Extension Manager or if you're using an old version of XWiki that doesn't have the Extension Manager:

  1. Log in the wiki with a user having Administration rights
  2. Go to the Administration page and select the Import category
  3. Follow the on-screen instructions to upload the downloaded XAR
  4. Click on the uploaded XAR and follow the instructions
  5. You'll also need to install all dependent Extensions that are not already installed in your wiki

For extension version up to 2.4 and XWiki versions older than 10.4

For displaying the existing relations at the top of each page, the UI extension point org.xwiki.platform.template.content.header.after is required, which was introduced in XWiki 10.4RC1. In order to add this extension point to a previous version of XWiki, edit the file "contentview.vm" as follows:

[...]
<div class="xcontent">
  #template('contentheader.vm')
  #foreach ($uix in $services.uix.getExtensions('org.xwiki.platform.template.content.header.after'))
    $services.rendering.render($uix.execute(), 'xhtml/1.0')
  #end
  ## --------------------------------------------------------------------------
  ## Drop permissions as they are no longer needed. This allows us not to have
  ## to review the code below for security holes since nothing bad can happen.
  ## --------------------------------------------------------------------------
  $xcontext.dropPermissions()
  ## ----------------------------
  ## Display the rendered content
  ## ----------------------------
 <div class="row">
   <div id="xwikicontent" class="col-xs-12">
      #if ("$!contentvmexception" != '')
        #displayUnhandledException($contentvmexception)
      #else
        $renderedContent
      #end
   </div>
 </div>
</div>
[...]

Release Notes

v3.1.5

The following translations have been updated with this release:

v3.1.4

The following translations have been updated with this release:

v3.1.3

The following translations have been updated with this release:

v3.1.2

The following translations have been updated with this release:

v3.1.1

The following translations have been updated with this release:

v3.1

v3.0





v2.4

v2.3

v2.2

v2.1

v1.2

v1.1

v1.0

Dependencies

Dependencies for this extension (org.xwiki.contrib:application-relations-ui 3.1.5):

  • org.xwiki.contrib:application-relations-api 3.1.5
Tags:
    

Get Connected