4

These related tags are not well distinguished (if at all) in their application: , , .
A number of questions are double tagged with these, and a brief review suggests little consistency in how they are used. There is also the tag which unlike these has a full tag wiki.

We need clear guidelines for how these tags should be used, or they should be merged. Possibly some should be subsumed into . Please answer with your recommended resolution to this situation, including proposed tag wikis for any tags that you believe should be kept.

  • data is another very closely related tag, without a tag wiki, that is used quite often. – Jacob Akkerboom Feb 19 '14 at 10:39
  • It seems Szabolcs answer was quite appreciated, but I feel we should at least add tag wikis for data, table and array. How can we move forward? – Jacob Akkerboom Feb 24 '14 at 13:45
  • An interesting successful case from math.se is this. Maybe we should remove the table and array tags and make substitutes. – Jacob Akkerboom Mar 10 '14 at 10:59
  • We should probably use the same technique (maybe blacklisting, as mentioned) to disambiguate editing here on meta. editing can mean formatting, as in editing-help, as well as editing other peoples questions. – Jacob Akkerboom Mar 11 '14 at 11:22
6

I don't think that all of these should be merged.

  • matrix: I noticed that this is often used when would be just as appropriate, or even more appropriate (e.g. eigenvalue-related questions). It can't be merged with though because sometimes it's used in questions about on-screen formatting of matrices or matrix construction, not linear algebra operations.

    So, to sum up: "matrix" is an array in the context of linear algebra and mathematics.

    Likewise, a tensor is a mathematical concept, and a tensor-related question might be about tensor products, tensor contraction, etc.

  • array: This will come up in a programming/CS context. An array is a data structure and we talk about it in a computer science context, e.g. when discussing that in a loop Sow/Reap is more efficient than AppendTo because it avoids quadratic complexity.

  • table: Looking at its usage, this appears to be the least consistent of the three. Sometimes the question just uses Table, quite often it's about table generation, sometimes about handling file formats (CSV, tab separated, etc.) and sometimes about formatting ( could replace it in that case).

Personally, this is my opinion:

  • A hard no on merging . This is a huge tag and renaming it would create lots of confusingly tagged question. Also the distinction is pretty clear as it's used (should be used?) in a math context, so I wouldn't merge other tags into this one either.

  • About and : I don't have a hard opinion, just a slight worry that renaming either would again create too many confusingly tagged questions, unless someone goes through all of them and verifies that the tags are appropriate. If a merge happens, I think it should be array -> table and not vice versa, as table is more general. But then table usually refers to 2D (or 1D) structures while array can be anything.

  • Thank you for taking the time to respond to this. All that seems pretty reasonable. Do you recommend any change from the existing structure? – Mr.Wizard Feb 10 '14 at 17:27
  • @Mr.Wizard The main thing I wanted to say: please don't change matrix. Other than that, no. (While I do recognize the problems.) – Szabolcs Feb 10 '14 at 17:35
  • I agree with the sentiment, +1. But personally I think array is more general than table. The impression I get is that people generally only tag with table when the question concerns Table, and I don't think it's very useful to tag according to function in this case. Okay, Table could (in principle) produce a ragged array, but it's not really meant for that and to do so is something of a hack. – Oleksandr R. Feb 12 '14 at 13:22
  • @OleksandrR. Array[If[# < #2, 0, Unevaluated[Sequence[]]] &, {3, 3}] is also ragged. Maybe we should preserve all the tags. I think that how table is used in practice is not too bad. Suppose you have a list {{name,weight},{john, 60},{mary, 50}}. Questions about such objects could be tagged table, the object is 2D, not packed and at some point we probably want to display it using TableForm or something. If you import an excel sheet, chances are the resulting 2D list is a table in this sense. The main thing that we should set straight would be to disallow tagging as table for use of Table. – Jacob Akkerboom Feb 12 '14 at 17:34
  • Alternatively I like the idea of table being a relatively uninformative and low quality tag. Anything involving a possibly ragged list of lists with elements occurring at a fixed depth that can be anything, or anything that is displayed like this, like here could then be called table. More experienced users could then maybe retag. – Jacob Akkerboom Feb 12 '14 at 18:16
  • @JacobAkkerboom my point was that table mostly means Table, but array doesn't necessarily have anything to do with Array. Also, a ragged array is still an array, even if it's not what people usually first think of when they see the term. To call it a ragged table will probably not be understood. – Oleksandr R. Feb 13 '14 at 0:07
1

I had deleted this answer shortly after posting it. At the time I felt my suggestion for the description of table was a bit convoluted. However I still think that keeping low quality tags that are very general is an option that should be taken seriously, so I have undeleted my answer. When reading it please do not bother yourself too much with the details.


Introduction

I agree with Szabolcs points. In fact, I am in favour of preserving all the tags.

I feel the word table in the context of Mathematica is a bit ambiguous. On one hand, we have the meaning of table as a 2D sheet of information to be read or even altered by humans. On the other, we have the meaning that comes from the function Table. This is the main motivation for my suggestion.

Suggestion

I have written this in such a way that we can vote for it. More motivation, examples and considerations are further below. Please disregard these in voting.

Concept table

This information could be added to the /info page of

We understand under a table an expression that is either the result of a typical use of Table, or an expression that looks like a 2D list and which is meant to be displayed, for example using TableForm. An example of the latter kind of expression would be {{name,weight},{john, 60},{mary, 50}}, which is not an expression typically generated by Table.

Questions that should be tagged with are questions in which a table plays a central role, or the use of the function Table plays a central role.

It is acceptable to tag questions about fine tuned formatting of a table with , even though it is preferable to (re)tag such questions with .

If the question is about data structures, the tag is preferred.

If the question is not about the generation of a table, but rather the use of it, it may be preferable to tag as or . Do this in case the table is in fact a matrix/tensor and built-in functions that deal specifically with such expressions (like Dot) are used.

Tag wiki (description) table

Tag questions in which either 1) the function Table plays a central role, 2) a nested list plays a central role or 3) a two dimensional expression that is meant to be displayed, for example using TableForm, plays a central role.

Examples table

An example of a question where the use of Table plays a central role would be this and maybe even this (even though ParallelTable is used instead of Table). Especially because the idiom If[cond, return, Sequence@@{}] is used, where Sequence@@{} is equivalent to Mr.Wizards vanishing function. This shows that Table is more flexible than one might think.

this is an example of a question in which a central role is played by an extreme of the set of expressions that the description of table above encompasses.

More examples where the use of Table could be nontrivial is where the side effects of Table are important, or when we want to use Table inside Compile.

Tag wiki (description) array

This tag is reserved for questions about the data structure array. Simply using the function Array does not justify using this tag.

Note: Unfortunately, I am not sure if tag wikis can be bold

Motivation

The reason to make the tag encompass a broad class of expressions is to avoid mistagging. To see that mistagging is a problem, think about how many times the tag bugs is incorrectly used. One reason to make a general tag and a more specific tag, is that Table is used much more often than Array, and consequently is used more often than . This is convenient, as array is also the name of the Array data structure, which is an important concept IMO.

Considerations

We should probably also provide text for the /info page of . This should especially make clear that can be used as an alternative.

I would suggest also writing the word reserved in the tag wiki (description) of in bold (if this is possible).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .