Rozšíření:Semantic Drilldown
Semantic Drilldown Stav rozšíření: beta |
|
---|---|
Implementace | Speciální stránka |
Popis | An extension, based around Semantic MediaWiki, that provides a page for drilling down into the category-based and semantic data of a site, using easily-created filters. |
Autoři | Yaron Koren |
Správci | gesinn.it |
Nejnovější verze | 4.0.0-beta3 (listopadu 2022) |
MediaWiki | 1.35+ |
PHP | 7,4+ |
Změny v databázi | Ne |
Licence | GNU General Public License 2.0 nebo novější |
Stáhnout | |
Příklad | Narutopedia |
|
|
Rozšíření Semantic Drilldown poskytuje stránku pro drill down v datech webu pomocí kategorií a filtrů na sémantické vlastnosti. Je silně svázáno s rozšířením Semantic MediaWiki a je určeno k použití pro strukturovaná data, která mají sémantické označení.
Srdcem rozšíření je stránka "Browse data" (procházet data). Uvádí všechny kategorie "nejvyšší úrovně" na wiki. Tj. kategorie, které nejsou podkategoriemi jiné kategorie, a počet stránek v rámci této kategorie. Každý název kategorie je odkazem na "rozbalovací seznam" stránek v dané kategorii. Umožňuje uživateli vybrat další omezení pro omezení počtu výsledků. Tato omezení existují ve dvou typech:
- Podkategorie – pokud má kategorie nějaké podkategorie, ty se zobrazí v řádku "Podkategorie". Každý z nich bude odkazem, který uživateli umožní zobrazit pouze stránky, které patří do dané podkategorie. Výsledná stránka rozbalení bude obsahovat odkazy na všechny filtry pro kategorii nejvyšší úrovně a jakékoli podkategorie vybrané podkategorie. Můžete tak použít stránku "Procházet data" k procházení celým stromem kategorií.
- Filtry - filtry založené na sémantických vlastnostech lze nastavit pro jakoukoli kategorii nejvyšší úrovně. Každý takový filtr dostane svůj vlastní řádek v oblasti omezení, aby mohl uživatel omezit výsledky pouze na ty stránky, které mají určité hodnoty pro sémantickou vlastnost. Pro filtry, které odpovídají vlastnostem typu Datum nebo Číslo, existuje speciální manipulace - u filtrů Datum závisí časový rozsah, podle kterého jsou hodnoty seskupeny (roky, měsíce nebo dny), na rozložení aktuální sady hodnot a u filtrů Počet, jsou číselné hodnoty seskupeny do sady rozsahů přibližně stejné velikosti, opět v závislosti na aktuální sadě hodnot.
V zobrazení filtru v rozbalení se hodnoty, které pro ně nemají žádné výsledky, nezobrazí. Filtr také zobrazí dvě další hodnoty: "Other" (jiné) a "None" (žádné). Stránky, které se zobrazují jako "Other", jsou ty, které mají pro vlastnost daného filtru jinou hodnotu než jednu z předem zadaných hodnot. Stránky, které se zobrazují jako "None", jsou ty, které pro danou vlastnost nemají žádnou hodnotu. Hodnoty "Other" a "None" se stejně jako jiné hodnoty filtru nezobrazí, pokud pro ně neexistují žádné výsledky.
Po libovolném počtu kliknutí na různé podkategorie a filtry bude uživatel moci vidět v záhlaví stránky v horní části stránky sadu podkategorií a filtrů, na které klikl a které aktuálně nastavují omezení pro výsledek. Uživatel se může zbavit jakéhokoli omezení kliknutím na "x" vedle jeho názvu v záhlaví.
'Výsledky' rozbalení, tj. sada stránek zobrazených kdykoli během rozbalování, se standardně zobrazují stejným způsobem jako na stránce kategorie MediaWiki. Toto zobrazení však lze přizpůsobit, aby zobrazovalo další hodnoty pro každou stránku nebo zobrazovalo výsledky v jiných formátech, jako jsou tabulky, mapy a časové osy.
Instalace
- Aby toto rozšíření fungovalo, musíte mít nainstalovaný Semantic MediaWiki .
- Ke stažení soubor/y a vložte je do adresáře pojmenovaného
SemanticDrilldown
ve vaší složceextensions/
. - Na konec vašeho souboru LocalSettings.php přidejte následující kód:
wfLoadExtension( 'SemanticDrilldown' );
- Spusťte aktualizační skript, který automaticky provede všechny nezbytné databázové změny, jaké rozšíření vyžaduje.
- Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Autoři
Semantic Drilldown was mostly written by Yaron Koren. The code to display drilldown results was written by David Loomer. The 'combo box' jQuery input was created by Sanyam Goyal as part of the 2010 Google Summer of Code. Kód pro propojení s rozšířením Page Schemas vytvořil Ankit Garg jako součást programového léta 2011 Google. Much of the current code for handling date filters was written by Edward Chernenko. Helpful contributions have also been made by MWJames, Joel Natividad and others.
Historie verze
Začínáme
Before you set up Semantic Drilldown, you should have all the data structures on your site set up - properties, categories, templates, and, if you're using them, forms. See the Page Forms "Getting started" section for more on how to set these up.
Make sure that some pages exist, that these pages contain annotations, and that the pages belong to a category.
After all this is done, you should first go to the page "Special:BrowseData" and see what the category structure looks like on your site. There you can see what filters are needed or would be helpful for each category.
At this point, you have two options, depending on whether or not you have the Page Schemas extension installed. (In brief, it presents a single interface for generating templates, forms and filters.) If you are using Page Schemas, then you can go back into the page schema(s) you have already created (or, if you haven't, create new ones), and add filters onto each relevant property via the interface.
If you don't have it, you should make use of the #drilldowninfo parser function.
#drilldowninfo
The #drilldowninfo parser function should only be added to either top-level categories, or categories whose page contains "__SHOWINDRILLDOWN__" - see Excluding and including categories from the list.
#drilldowninfo takes in the following parameters:
filters
- takes in the set of filters for this category. In most cases, this will be the only parameter set. Filters should be separated by commas, and after each filter's name, in parentheses, should be a clause listing any of the following:property
- the Semantic MediaWiki property that this filter applies to (mandatory)category
- a MediaWiki category from which to get valuesrequires
- any number of previously-listed filters, that the user must select a value for before they can see this filter.
- Example
{{#drilldowninfo:filters=Author (property=Was written by), Second author (property=Was written by), Date (property=Was published on), Source (property=Was published by,category=Sources), Topic (property=Addresses topic,category=Topics), For (property=Is for, category=Positions,requires=Topic), Against (property=Is against,category=Positions,requires=Topic), Mixed (property=Is mixed on,category=Positions,requires=Topic)}}
- Filters are displayed in Special:BrowseData in the order in which they are listed in #drilldowninfo.
title
- sets the title for the drilldown page for this category (optional).
display parameters
- this parameter lets you set the display of results as you would the display of Semantic MediaWiki's inline queries: that includes both additional properties that you would want to see displayed, and the format (such as a map or calendar) in which results will be displayed. "display parameters=" takes in a set of parameters like that of an inline query, although separated by semicolons instead of pipes. So, for instance, to display the drilldown results of a category on a Google Maps map, you could have the following in the call: "|display parameters=? Has coordinates;format=googlemaps3".
- You can see an example of a simple use of this functionality here; every event gets its city shown as well. The relevant #drilldowninfo call is here.
- There are several issues relating to the use of "display parameters=":
- Unfortunately, currently one format is allowed for any one category.
- The "sort=" and "order=" parameters for inline queries will not work - pages will always be sorted by their name.
- As of Semantic MediaWiki version 1.8 and later wiki markup and html in properties of type text is displayed as plain text in various table result formats (table, broadtable, datatables), a workaround would be using result format template to create tabular output
Možnosti zobrazení
Zobrazení hodnot filtru ve stylu tag-cloud
You can set the drilldown page to show the values for each filter and each subcategory in "tag-cloud" style, where the size of each value's name is dependent on the number of results it has. To do this, you need to add two values to your LocalSettings.php file, "$sdgFiltersSmallestFontSize" and "$sdgFiltersLargestFontSize"; these represent the font size of the names of the least-popular and most-popular filter values, respectively, in pixels. Here is an example:
$sdgFiltersSmallestFontSize=9;
$sdgFiltersLargestFontSize=25;
Make sure to add these below the inclusion of Semantic Drilldown itself.
Nastavení počtu výsledků na stránku
By default, the list of results, or pages that match the current set of filters, is displayed in the style of a category page, with a maximum of 100 results per page. You can change the number of results per page in your LocalSettings.php file, by setting the variable "$sdgNumResultsPerPage". To set the page to show 250 results per page, add the following:
$sdgNumResultsPerPage=250;
Nastavení zobrazení hodnot filtru
For filters that have above a certain number of values, values are shown in a combo box, instead of individually. By default, that number is 40. To change the number, add something like this to LocalSettings.php:
$sdgMinValuesForComboBox=50;
...or you can set it to 0 or 1 if you want filter values to always show up within a combo box, in order to boost performance; values shown individually require an additional database query in order to get the number of instances of that value.
For filters that correspond to Number properties, the values are automatically grouped into ranges, with an attempt to create ranges of roughly equal size while still having "nice" numbers for the boundaries (e.g., 1200 instead of 1234). By default, values are grouped into 6 ranges. To change this number, add something like this to LocalSettings.php:
$sdgNumRangesForNumberFilters=4;
Zobrazení kategorií
By default, a list of all top-level categories on the wiki shows up on one side of the "Browse data" page, to let users navigate to the drilldown interface for each such category. However, this display can be modified in a number of ways.
Odstranění seznamu kategorií
You may want to have the drilldown page show the data only for one category, and not display the list of other categories. To do that, just add the string "?_single" to anywhere in the URL query string; this will remove the list of categories.
Zobrazení názvů kategorií jako karet
If you add the following line to LocalSettings.php:
$sdgShowCategoriesAsTabs = true;
...it will display categories as tabs at the top of the page, instead of in a vertical list on the side of the page. This option makes more sense for sites with a smaller number of categories (less than seven or so).
Vyloučení a zařazení kategorií ze seznamu
You may want certain categories to not show up in the top-level list of categories. You can easily remove a category by adding the following anywhere within the category's page:
__HIDEFROMDRILLDOWN__
Conversely, there are some categories that you may want to show up in the main BrowseData list, even though they are not top-level categories. You can accomplish this as well, by adding the following to the category's page:
__SHOWINDRILLDOWN__
Conversely, you can also set for categories to only show up in the list if you specifically include them, i.e. have an "opt-in" instead of an "opt-out" approach. You can do that by adding the following to LocalSettings.php:
$sdgHideCategoriesByDefault = true;
If you do that, only categories marked with "__SHOWINDRILLDOWN__" will appear. (The "__HIDEFROMDRILLDOWN__" marking, on the other hand, will become irrelevant.)
Linking to a drilldown page
The best way to link to Special:BrowseData is with the #drilldownlink parser function. It has the following syntax;
{{#drilldownlink:category=|subcategory=|single|link text=|tooltip=|filters=}}
The parameters are as follows:
category
- the category namesubcategory
- the subcategory, if anysingle
- if this parameter is added, the list of categories is not displayedlink text
- the text of the link; by default, it's the category nametooltip
- the text that appears when the cursor hovers over the link, if anyfilters
- the set of filters to apply, in the format "a=b&c=d&..."
Stránky, které používají sémantický rozbor
Here is a small sampling of sites that use Semantic Drilldown:
Seznam adresátů
You should use the Semantic MediaWiki mailing list, semediawiki-user, for any questions, suggestions or bug reports about Semantic Drilldown. If possible, please add "[SD]" at the beginning of the subject line, to clarify the subject matter.
Přispívání do projektu
Chyby a požadavky na funkce
You can submit bug reports and requests for new features in GitHubs's bug tracker.
The current list of known bugs and requested features for Semantic Drilldown can be found here.
Překlad
Translation of Semantic Drilldown is done through translatewiki.net. The translation for this extension can be found here. To add language values or change existing ones, you should create an account on translatewiki.net, then request permission from the administrators to translate a certain language or languages on this page (this is a very simple process). Once you have permission for a given language, you can log in and add or edit whatever messages you want to in that language.
Související odkazy
- Cargo - provides a similar drill-down interface, on top of a different storage system
Toto rozšíření je zahrnuto v následujících wiki farmách/hostitelích a/nebo balíčcích: Toto není autoritativní seznam. Některé wiki farmy/hostitelé a/nebo balíčky mohou toto rozšíření obsahovat, i když zde nejsou uvedeny. Pro potvrzení se vždy obraťte na své wiki farmy/hostitele nebo balíček. |
- Beta status extensions/cs
- Special page extensions/cs
- GPL licensed extensions/cs
- Extensions in GitHub version control/cs
- AdminLinks extensions/cs
- MagicWordwgVariableIDs extensions/cs
- MakeGlobalVariablesScript extensions/cs
- ParserAfterTidy extensions/cs
- PageSchemasRegisterHandlers extensions/cs
- ParserFirstCallInit extensions/cs
- UnitTestsList extensions/cs
- All extensions/cs
- Extensions included in Canasta/cs
- Extensions included in Miraheze/cs
- Extensions included in semantic::core/cs
- Semantic MediaWiki extensions/cs
- Category extensions/cs