SMW notes: Difference between revisions
→Protecting #ask results
Line 1: | Line 1: | ||
{{ | Some tips and tricks for using Semantic Mediawiki from SMW mailing list, various web sites, etc. | ||
== 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 | |||
== 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). | |||
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> | |||
=== 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 === | |||
$smwgLinksInValues = true; | |||
=== Must add namespaces to config === | |||
Otherwise they won't have semantic properties. | |||
$smwgNamespacesWithSemanticLinks array | |||
== Media == | |||
Neat talk on MW, with refs to SMW: http://www.youtube.com/watch?v=Ukytqe9pwDM | |||
[[Category:SemWeb]] |