SMW notes: Difference between revisions

Jump to navigation Jump to search
No change in size ,  28 September 2009
Line 1: Line 1:
{{SH_Rev|2546|20100618220416|User:David Mason|Arashi Daiko}}{{SH_UseTemplate|Template:Person|2516}}
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]]
Anonymous user

Navigation menu