|
|
Line 1: |
Line 1: |
| Some tips and tricks for using Semantic Mediawiki from SMW mailing list, various web sites, etc.
| |
|
| |
| == Workshops, tutorials, etc ==
| |
|
| |
| [[Semantic Mediawiki workshop]]
| |
|
| |
| [[Semantic Mediawiki compared with Drupal and content management systems]]
| |
|
| |
| == Other tip sources ==
| |
|
| |
| http://smwforum.ontoprise.com/smwforum/images/a/ad/Manual_SMW.pdf
| |
|
| |
| http://smw.referata.com/wiki/Special:BrowseData/Tips
| |
|
| |
| http://smwforum.ontoprise.com/smwforum/index.php/Example:All_libraries
| |
|
| |
| http://help.wikia.com/wiki/Help:Semantic_MediaWiki/Tips_and_tricks
| |
|
| |
| http://semantic-mediawiki.org/wiki/Image:SMW_quick_reference.pdf
| |
|
| |
| http://www.organicdesign.co.nz/MediaWiki_code_snippets (mediawiki)
| |
|
| |
| http://smw.referata.com/wiki/Overview_of_Semantic_MediaWiki_and_Semantic_Forms
| |
|
| |
| == Data design ==
| |
|
| |
| http://www.mediawiki.org/wiki/Extension:Semantic_Forms#Data_design_issues
| |
|
| |
| - Create a top category for Semantic Classes. I called mine 'Categories'.
| |
| It holds only categories used to define a 'Is-a' relationship. Doing so has
| |
| at least two benefits : 1- You can do a query on your core content by
| |
| restricting it to the 'Categories' level. 2- You can define other
| |
| categories outside of that structure for whatever your system needs.
| |
|
| |
| http://smwforum.ontoprise.com/smwforum/index.php/Example:How_to_realize_a_range_constraint_for_a_property
| |
|
| |
| Redirects can be used to create property synonyms.
| |
|
| |
| == Discussion ==
| |
|
| |
| Categories can be hierarchical; properties can't (yet) - actually they can be, using subproperty of.
| |
|
| |
| When to use categories vs properties?
| |
|
| |
| == MW tricks ==
| |
|
| |
| If you want to clear out old pages you can delete them and use
| |
| deleteArchivedRevisions.php to erase the deleted revisions from the
| |
| database.
| |
|
| |
| === Variables ===
| |
|
| |
| You can make use of the VariablesExtension [1] and store the query (or its
| |
| result? I'd like to know which one, but in the end it doesn't really matter) in
| |
| a variable, which is helpful when you need the same query multiple times within
| |
| a page. It looks like this:
| |
|
| |
| <nowiki>{{ #vardefine: some_variable_name | {{#show:{{PAGENAME}}| ?propertyname}} }}
| |
| (silent) or
| |
| {{ #vardefineecho: some_variable_name | {{#show:{{PAGENAME}}| ?propertyname}} }} (with output)</nowiki>
| |
|
| |
| Further down in the page you can write
| |
|
| |
| <nowiki>{{ #var: some_variable_name }}</nowiki>
| |
|
| |
| === Specific searches ===
| |
|
| |
| <nowiki>
| |
| <inputbox>
| |
| type=search
| |
| width=30
| |
| namespaces=Help**,Wikipedia**,Template**
| |
| searchbuttonlabel=Search help pages
| |
| bgcolor=#cee0f2
| |
| break=no
| |
| </inputbox>
| |
| </nowiki>
| |
|
| |
| (requires the Input Box extension)
| |
|
| |
| === Profiling mediawiki ===
| |
|
| |
| http://www.mediawiki.org/wiki/How_to_debug#Profiling
| |
|
| |
| === Mediawiki performance tuning ===
| |
|
| |
| http://www.mediawiki.org/wiki/Manual:Performance_tuning
| |
|
| |
| * APC can be used with SMW without problems
| |
|
| |
| == SMW tricks ==
| |
|
| |
| <nowiki>[[Went past deadline::{{#expr:{{{End date|}}}>{{{Deadline|}}} }}]]</nowiki>
| |
|
| |
| === Remote data ===
| |
|
| |
| Philipp writes:
| |
|
| |
| if you want to query an SMW installation from remote and re-use the results in
| |
| other applications, I recommend checking out our [http://smwforum.ontoprise.com/smwforum/index.php/Help:Basic_Triplestore Triplestore Connector]. It delivers the results as XML format (compliant with the SPARQL recommendation).
| |
|
| |
| If you want to query semantic data in your wiki, coming from another SMW
| |
| installation you should take a further look at the [http://projects.csail.mit.edu/wibit/wiki/index.php?title=Wibit Exhibit result printer].
| |
|
| |
| [http://www.basil-ell.de/data_integration/ Freebase query]
| |
|
| |
| === Hiding set data ===
| |
|
| |
| <nowiki>[[propertyA::{{{propertyA|}}}|]]</nowiki>
| |
|
| |
| By adding the | after the enclosing }}}, the property value will not show.
| |
|
| |
| For multi value properties:
| |
|
| |
| <nowiki>{{#arraymap:{{{Eating disorders behaviors|}}}|,|x|[[Eating disorders behaviors::x|]]}}</nowiki>
| |
|
| |
| (why not just use #set?)
| |
|
| |
| === Protecting #ask results ===
| |
|
| |
| (from Markus Kr?tzsch)
| |
|
| |
| * make a new property "has checked" of type page,
| |
| * make and a new page "main page news editor" (or whatever) and protect this page just like your main page,
| |
| * add an entry <nowiki>[[has checked::some page]]</nowiki> on "main page news editor" for every page that the editor has found to be okay to make it on the main page news feed,
| |
| * extend your #ask query on the main page with the condition <nowiki>[[-has
| |
| checked::main page news editor]]</nowiki>.
| |
|
| |
| ... Note that you can also have a group of editors with separate (protected)
| |
| pages. You can also work with categories of editors for different topics etc.
| |
| Of course, this is no longer a spam protection since categories are not
| |
| protected either, but you can use another level of "has checked" to have a
| |
| master editor who checks other editors to grant them trust. All of this
| |
| readily works with subqueries+inverses. Applying similar methods but without
| |
| actually protecting any pages maybe still be useful for managing feeds
| |
| together in cases where spam is not a major issue.
| |
|
| |
| == Misc ==
| |
|
| |
| === Enable links in property values === | | === Enable links in property values === |
|
| |
|
| $smwgLinksInValues = true; | | $smwgLinksInValues = true; |
|
| |
|
| === Must add namespaces to config === | | == Dark background theme css == |
| | |
| Otherwise they won't have semantic properties.
| |
| | |
| $smwgNamespacesWithSemanticLinks array
| |
| | |
| == Multi language SMW ==
| |
| | |
| === Creationwiki ===
| |
| | |
| (From Temlakos on the mailing list regarding http://creationwiki.org/ and http://creationwiki.org/fr/)
| |
| | |
| Here's how I do it: As I have said many times before, I routinely
| |
| declare all properties. And every declaration that is implemented in
| |
| both languages, has the language-specific Interwiki prefix added, so
| |
| that you can follow a property declaration from one language to the
| |
| other and back.
| |
| | |
| All that is involved is making parallel property declarations and
| |
| placing Interwiki language links in each one.
| |
| | |
| In general: a multilingual wiki is actually a family of wikis, each set
| |
| up in its own language.
| |
| | |
| The important part is to make sure that the SMW language files exist in
| |
| each language in which you are planning to implement SMW. Right now the
| |
| language support is a little thin, in comparison to the incredible
| |
| multiplicity of languages on Wikipedia. So those of you who are trying
| |
| to persuade Wikipedia to implement SMW across their project will have an
| |
| immediate problem: you don't support more than a handful of the
| |
| languages they use.
| |
| | |
| ...
| |
| anyone who implements SMW in an unsupported language is going to have to
| |
| write a language file. And make sure that his language is supported in
| |
| SMW_Aliases.php and SMW_Messages.php.
| |
| | |
| === HKp wiki ===
| |
| | |
| 'HKp wiki' is a bilingual (potentially multilingual) spanish-catalan
| |
| wiki in the same installation.
| |
| http://enlloc.net/hkp/w
| |
| | |
| I'm using Polyglot extension [1] to redirect to appropriate language
| |
| pages depending on the browser language settings or the user wiki
| |
| settings.
| |
| | |
| I'm using Language Selector extension for providing a language
| |
| selector for every page in the sidebar.
| |
| | |
| I wanted to use the Multilang extension for changing the language in
| |
| pages and forms depending on the user settings. But unfortunately this
| |
| extension don't work in MW higher of 1.10.
| |
| | |
| Alternatively I'm using the [http://enlloc.net/hkp/w/index.php/Plantilla:International <nowiki>{{international}}nowiki> template]. It is useful
| |
| for pages and templates but not for forms because it need a
| |
| <nowiki>{{SUBPAGENAME}}</nowiki> with language code (/ca, /es, /en, /fr, /pt, ...).
| |
| | |
| I'm using [http://enlloc.net/hkp/w/index.php/Plantilla:Entrada_Wlog my own code in templates] to show or hide a "translation
| |
| button" depending if the translation page exist or not:
| |
| | |
| <nowiki>{{#ifeq:{{SUBPAGENAME}}|es|
| |
| {{exists | page={{NAMESPACE}}:{{BASEPAGENAME}}/ca | then= | else=
| |
| <p style="margin-top:2em; color: rgb(100, 100, 100)">'''Traducci?n'''<br>[[Categoria:Per traduir al Castell?]]
| |
| <small>Esta p?gina a?n no est? en catal?n. Quieres colaborar a traducirla?</small></p>
| |
| {{#formlink:Entrada Wlog traduir ca|Traducir al catal?n|button|
| |
| preload={{FULLPAGENAME}}&Gesti? traduccions[p?gina
| |
| original]={{BASEPAGENAME}}&Entrada Wlog[llengua entrada]=es&namespace=Wlog }}
| |
| }}
| |
| }}</nowiki>
| |
| | |
| Right now I have not solution for having only one form for all
| |
| languages. What is annoying.
| |
| | |
| == Media ==
| |
| | |
| Neat talk on MW, with refs to SMW: http://www.youtube.com/watch?v=Ukytqe9pwDM
| |
|
| |
|
| [[Category:SemWeb]]
| | http://software.wikia.com/wiki/User:Ose/SMW.css |