Semantic Compound Queries (a.k.a. SCQ) is a Semantic Mediawiki extension that defines the #compound_query
parser function which can display results of multiple #ask
queries (as compound construct) at the same time.
- PHP 7.3 or later
- MediaWiki 1.31 or later
- Semantic MediaWiki 3.0 or later
The recommended way to install Semantic Compound Queries 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.
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-compound-queries": "~2.2"
}
}
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-compound-queries": "~2.2"
Remember to add a comma to the end of the preceding line in this section.
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.
Add the following line to the end of your "LocalSettings.php" file:
wfLoadExtension( 'SemanticCompoundQueries' );
The syntax of #compound_query
resembles that of #ask
, but with more than one query, and with the elements
of each sub-query delimited by semicolons instead of pipes. Elements that are common across all sub-queries,
like format=
and width=
(for maps) should be placed after all sub-queries.
A sample call to #compound query
, which retrieves both biographies, along
with their subject; and fiction books, along with their author; is:
{{#compound_query:
[[Category:Books]]
[[Has genre::Biography]]
;?Covers subject=Subject
|
[[Category:Books]]
[[Has genre::Fiction]]
;?Has author=Author
|format=list
}}
For more information, see the extension's homepage at MediaWiki.org.
Original author: Yaron Koren (Version 0.4.1)
If you want to contribute work to the project please subscribe to the developers mailing list and have a look at the contribution guideline.
- File an issue
- Submit a pull request
- Ask a question on the mailing list
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.