Pages without wiki content in query results ("ghostpages")
OpenPublic

Description

Author: dasch

Description:
When querying for a namespace also pages are displayed that whre deleted or even never existed and only whre linked once, the whole query behaves very strange. I hope the example here http://www.wecowi.de/view/WeCoWi:Attribut is enough to reproduce the problem


Version: unspecified
Severity: normal

bzimport set Reference to bz18406.
bzimport created this task.Via LegacyApr 8 2009, 11:20 PM
mkroetzsch added a comment.Via ConduitJul 6 2009, 8:25 AM

This is normal behaviour, but I agree that it can be confusing. SMW creates internal objects as soon as they are used in any annotation, and these objects are never deleted. I am aware that this can be confusing, but it is necessary to correctly handle queries that ask for the existence of annotations. E.g. the query [[property::+]] returns all pages that have some value for "property" even if this value is a page that does not exist yet.

This makes some sense: an annotation [[property::pagename]] assigns the value "pagename" even if there is no page of that title yet. This is the reason why the semantic object "pagename" must exist even if there is no wiki page. If you only want to retrieve existing pages, you can query for [[Modification date::+]].

To improve SMW's behaviour here, the internal query construction would need to be changed so that top-level namespace queries are extended with additional side-conditions that restrict results to existing pages.

mkroetzsch added a comment.Via ConduitFeb 11 2012, 6:32 PM
  • Bug 29892 has been marked as a duplicate of this bug. ***
mkroetzsch added a comment.Via ConduitFeb 28 2013, 11:05 AM
  • Bug 42896 has been marked as a duplicate of this bug. ***
mkroetzsch added a comment.Via ConduitFeb 28 2013, 11:12 AM

Some further clarification. This problem really has two distinct aspects. The first is described above: a page that is used as a value must "exist" as an SMW object, even if it has no wiki page. The second aspect is that SMW does not have any effective cleanup functionality to remove objects that were needed once but are no longer needed now. This means that page objects will still "exist" after removing all properties that point to them, and deleting their wikipage.

In a sense, these could need two distinct solutions, but they are still closely related. Basically, page objects of the first type can only be filtered out if there is some additional check in the query that makes sure the page exists. Page objects of the second type could also be removed from the database entirely, since they are not needed by SMW any more. However, I suppose that most users are more interested in a solution for the first case (which would also solve the second case; but not the other way around).

mkroetzsch added a comment.Via ConduitMar 31 2013, 10:12 AM
  • Bug 46729 has been marked as a duplicate of this bug. ***

Add Comment

Column Prototype
This is a very early prototype of a persistent column. It is not expected to work yet, and leaving it open will activate other new features which will break things. Press "\" (backslash) on your keyboard to close it now.