Hi,

It's come up repeatedly that the double-bracket calls that SMW uses to define semantic data cause problems due to MediaWiki's parsing order: most notably, single- and double-brackets within such calls usually cause the data to not get defined at all. An obvious solution is to use, instead of double brackets (convenient as they are), parser functions, which are handled very well. But in fact a parser function already exists that does this: #set, which was added to SMW a few months ago; it is called in this format:

{{#set:property-name=value}}

The only downside of #set is that it's "silent", meaning that it doesn't display the data on the screen; it just stores it. Why not change #set so that it does display the value? Or better yet, add another parameter to allow for setting of silent or non-silent. I would argue to make the default be non-silent, so that a regular call would look like:

{{#set:property-name=value}}

while a silent call might look like:

{{#set:property-name=value|hide}}

(You could do it the either way for backward compatibility, though I don't think that's a big issue since I don't know if anyone's using it at the moment.)

This way, people could have the option of an alternate approach in cases where the double-bracket approach doesn't work.

-Yaron