Okay - so there's at least some consensus for keeping the subobject hash as it is. That means that, for subobjects to be sortable by entry order, I think there would have to be a separate special property, called "Has index" or "Has number" or something, that would store the index of each subobject on the page. However, there are a few weaknesses to that approach that I can think of:

- Creating a new special property takes some development work - including, possibly, creating a new database table?
- Subobjects won't be sorted automatically; whoever creates each query will have to remember to add "sort=Has index" to the query.
- Because of the way "sort=" works (it removes all items that don't have that property), it will cause some confusion for wikis starting to use the new code: subobjects that don't have "Has index" set yet will simply not show up in sorted queries.

For these reasons, I'm leaning heavily toward just changing Semantic Internal Objects to use hashes like "#001", "#002", etc. again, like it used to do. That way, users will have a choice of naming schemes. And it somewhat fits in with the different philosophies of SMW/subobjects vs. SIO: in SMW, such objects can have their own name and identity, while in SIO, they're really only attributes of the page on which they're defined.


On Fri, Jun 21, 2013 at 4:31 AM, Stephan Gambke <s7eph4n@gmail.com> wrote:
On 20 June 2013 20:32, Yaron Koren <yaron@wikiworks.com> wrote:
> As for whether storing the index, whether it's part of the subobject name or
> in a "Has index" property, changes the data model - I don't think it does.

I think that could work as long as you do not change the identity of
the subobject. I.e. these additional properties should not be stored
in the hash directly nor used to produce the hash.

> You can simply ignore the index value; I would just think of it as
> additional data that can either be used or not. If you didn't like my
> "Modification date" example, how about this: the subobject hash itself is
> some additional, SMW-only data that gets added to each row, but that doesn't
> affect the data model either.

WikiWorks MediaWiki Consulting http://wikiworks.com