Markus Krötzsch <mar...@semantic-mediawiki.org> changed:
What |Removed |Added
--- Comment #1 from Markus Krötzsch <mar...@semantic-mediawiki.org> 2010-03-07
14:17:49 UTC ---
Purging is a MediaWiki operation for which SMW only adds a button for easier
access, since SMW introduces more cases where purging the cache is needed. The
purpose of purging a cache is to rebuild the view of a page which may have an
outdated cache entry. It is not intended that a purging operation changes the
The problem that is described in this bug report only occurs when using results
of inline queries (directly or indirectly) as values for properties. This is
why SMW does not support or recommend doing this. Inline queries are meant to
be used as dynamic views, not as intermediate computation steps in assigning
annotations. If it were possible to do this easily and without blocking other
features, SMW would explicitly generate an error when query results appear in
places where they affect the value of a property.
The reasons for this design are rather fundamental. In fact, it is not hard to
see that major computational problems would be created when endorsing query
results in annotations. One could use other MediaWiki features such as
ParserFunctions and templates to translate complex computations into a wiki
page in such a way that the contents of a page recursively depends on itself.
If SMW wanted to ensure that purging such a page would lead to a stable state
of annotation (where storing the page again does not affect the stored values),
then it would have to compute a fixed point of the wiki-encoded function. This
fixed point might not exist in all cases, and it is a fundamental result of
computer science that it is in general impossible to check whether or not such
a fixed point exists by means of a computer program.
It is thus impossible to support query-based annotations properly: there would
always be new situations that this support would not cover. Thus, there will
never be any support for "dynamic annotations" in SMW.
A second major reason why SMW strongly discourages the use of "dynamic
annotations" is that they provide a method of bypassing the history of a wiki.
As long as annotations are based on the static contents of wiki pages, it is
always possible to reconstruct the appearance of a given page at a given
revision. By allowing annotations based on query results, the current value of
the annotation can depend on the number of computation steps (times certain
pages were stored/refreshed since their creation). Thus, a page might show a
text that is not found anywhere in the database, or anywhere in the history.
P.S. If you still think that the "refresh" button should change the stored
contents of a page, it should not be too hard to develop some extension that
implements this behaviour. SMW will not provide for this functionality in order
not to encourage such use of annotations.
Configure bugmail: https://bugzilla.wikimedia.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
Wikibugs-l mailing list