mediawiki/semantic-cite

A Semantic MediaWiki extension to manage citation resources.

3.0.0 2024-02-25 13:22 UTC

This package is auto-updated.

Last update: 2024-03-28 12:14:02 UTC


README

Build Status Code Coverage Scrutinizer Quality Score Latest Stable Version Packagist download count

Semantic Cite (a.k.a. SCI) is a Semantic Mediawiki extension that provides a simple way of organizing citation resources with the help of semantic annotations.

It can be used to centralize the management of citation resources and foster the reuse of references stored within a wiki. Supported features include:

  • Self-added and customizable reference list
  • Individual property annotation and text formatting rules
  • In-text reference tooltip
  • Bibtex record import support
  • Metadata retrieval from selected providers (PubMed, CrossRef etc.)

Several short videos demonstrate "How Semantic Cite can be used or is expected to work".

Requirements

Semantic Cite does not require nor uses any part of extension Cite (or <ref> tags) as a means to declare a citation resource.

Installation

The recommended way to install Semantic Cite is using Composer with MediaWiki's built-in support for Composer.

Note that the required extension Semantic MediaWiki must be installed first according to the installation instructions provided.

Step 1

Change to the base directory of your MediaWiki installation. If you do not have a "composer.local.json" file yet, create one and add the following content to it:

{
	"require": {
		"mediawiki/semantic-cite": "~3.0"
	}
}

If you already have a "composer.local.json" file add the following line to the end of the "require" section in your file:

"mediawiki/semantic-cite": "~3.0"

Remember to add a comma to the end of the preceding line in this section.

Step 2

Run the following command in your shell:

php composer.phar update --no-dev

Note if you have Git installed on your system add the --prefer-source flag to the above command.

Step 3

Add the following line to the end of your "LocalSettings.php" file:

wfLoadExtension( 'SemanticCite' );

Step 4

Run the maintenance script "update.php" to ensure that property tables are properly initialized.

Usage

scite-sneak

A citation resource collects all structured data of a citation under one unique key that can be accessed through out the wiki and is created and managed by the #scite parser function.

Citation resources (those created by #scite) can be added to a source page or any other wiki page each being identifiable by a citation key.

{{#scite:Byrne 2008
 |type=journal
 |author=Byrne, A
 |year=2008
 |title=Web 2.0 strategies in libraries and information services
 |journal=The Australian Library Journal
 |volume=57
 |number=4
 |pages=365-376
}}

Above shows an example for a citation resource to be created by the #scite parser. More information about #scite can be found here.

In-text citation

A resource can be cited using the Citation reference (or its alias CiteRef) property for an in-text annotation in form of Lorem ipsum [[CiteRef::Byrne 2008]] ... to appear as Lorem ipsum[1] ....

A reference list is automatically added to the content as soon as a Citation reference annotation is added to a page. The magic word __NOREFERENCELIST__ can be used to suppress a reference list from showing on an individual page while #referencelist can be used to position the list differently.

More information about in-text citations and references can be found here together with a description about the usage of the #referencelist parser function.

For questions about Semantic Cite and Cite, see the comments section.

Metadata search

Special:FindCitableMetadata is provided as user interface to search, find, and map metadata with the #scite parser to conveniently integrate authority data from sources like PubMed or CrossRef.

For more information, please read the search section.

Configuration

To change default settings, or add property mapping add text formatting rules, please read the configuration document.

Contribution and support

If you want to contribute work to the project please subscribe to the developers mailing list and have a look at the contribution guideline.

Tests

This extension provides unit and integration tests that are run by a continues integration platform but can also be executed using composer phpunit from the extension base directory.

License

GNU General Public License, version 2 or later.