Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Icons in nodes #129

Open
nathan-artist opened this issue Nov 1, 2019 · 6 comments
Open

Icons in nodes #129

nathan-artist opened this issue Nov 1, 2019 · 6 comments

Comments

@nathan-artist
Copy link

nathan-artist commented Nov 1, 2019

Argdown could be modified to support the intuitively understandable icons found in applications such as Compendium and bCisive, instead of framed boxes, which would also permit mapping with a wider range of node types, not only the more limited symbol set of argument mapping. Paul Culmsee and Kailash Awati argued in The Heretic's Guide to Best Practices (see the sections on symbolism and abstraction and cognitive overhead) that such icons, when they are well designed, can be a superior symbolization for a non-technical audience due to higher iconicity.

This feature request is mentioned in passing in issue #109, with some indication of how to implement it, but that issue is primarily about other kinds of illustrations.

@christianvoigt
Copy link
Owner

Hi @nathan-artist

I agree, icons in nodes and on relations would be great. We would probably also need them to solve #113.

Please note that bCisive is using a much more restricted graph structure in which each node can only have one (type of) outgoing relation. In Argdown one and the same argument or statement can have many different outgoing relations (for example attack & support at the same time). This makes it impossible to use a specific node type for visualizing only one of those relations. Instead we use the "edges" of the graph to visualize relations types (different boxes are used to visualize the difference between statements and arguments, box colors are used to visualize the tags you assigned to statements or arguments). So we need actually icons on the edges to visualize relation types.

However, icons on the nodes would still be useful to visualize common properties of statements or arguments (for example, normative vs descriptive statements, deductive vs non-deductive infererences and so on), similar to how we already use node colors. It would be great if the user could simply assign tags to statements/arguments that would then be visualized with icons. Users should be able to define which tags are visualized by which icons in the configuration, using paths to svg files.

Regarding your request for additional relation types: I do not want to broaden the scope of Argdown to a general tool for mind-mapping, so I am skeptical of the idea of adding arbitrary relation types via icons. Relations in Argdown should be easy to learn (so there should be as few as possible) and should have a clear and precise logical foundation. I still agree that it would be great if you could assign arbitrary icons to each relation type.

The only problem is, that I already have too many other things on my todo list for Argdown (on the top of the list are web components for easier integration of Argdown into websites). I will work on new features at the beginning of next year, but will probably not get to this feature. So we could really need some help by another programmer here.

If you want to help with this issue, you could

  1. start by exporting your maps to GraphML and then add icons manually to your nodes and edges to see how it would look (read more about this option here). If you do so, please upload an example of a GraphML file so that we know what we have to generate in the exporter.
  2. export your map into the dot format, use http://viz-js.com/ and add icons to the file (https://www.graphviz.org/doc/info/shapes.html#html or https://www.graphviz.org/doc/info/attrs.html#d:image). Post the resulting Dot/GraphViz file here.
  3. Find out if it is possible to put images on edges in GraphViz. Create an example Dot/GraphViz file like in 2.
  4. Finally, the same questions have to anwered for the Dagre-Export. But DagreD3 is a library for programmers so it is harder for non-programmers to experiment with it.

These are the technical questions we have to answer before someone can start implementing this.

@nathan-artist
Copy link
Author

Thanks, @christianvoigt. By the way, I also submitted a pull request fixing a bug in the language-argdown package for Atom that you may want to approve when you have time. (I know that the Atom package has been deprecated in favor of VS Code, but I have been using the Atom package anyway.) I am very excited about Argdown, especially the command-line tool, which I have been using. By the way, argument maps from Argdown also export beautifully to PGF/TikZ via dot2tex.

I will work on creating and uploading the Dot and GraphML files you requested.

The idea of icons for relations and tags (not only nodes) did not occur to me, but I agree such a feature could be useful. I doubt that it would be wise to use icons for nodes, relations, and tags all in the same map, but perhaps different maps would benefit from one or two of those options.

I have not used bCisive much, so I did not notice bCisive's more restricted graph structure, but I have used Compendium extensively, and Compendium has multiple relation types that can be applied independently of its node types (and relations can be labeled), so in Compendium an "argument or statement can have many different outgoing relations (for example attack & support at the same time)" as you said of Argdown. In Compendium, when an argument has both attack & support outgoing relations, the node icon of the argument can be changed to a hybrid attack/support icon. So, while in Compendium the type of relation is visually indicated on the edge itself, there can also be (in some cases) some indication of a node's relations in the node's icon: for an argument with only attacking outgoing relations, an attacking node icon; for an argument with only supporting outgoing relations, a supporting node icon; for an argument with attacking and supporting outgoing relations, a hybrid node icon.

I agree with your statement: "Relations in Argdown should be easy to learn (so there should be as few as possible) and should have a clear and precise logical foundation." However, I have used the IBIS argumentation framework/ontology extensively (e.g. in Compendium), and IBIS includes questions, so I am concerned about how to represent questions in Argdown. Questions are not (as far as I know) part of propositional logic, but they are epistemologically significant in argumentation; logics of question and answer have been explored by, e.g., Jaakko Hintikka (in "A spectrum of logics of questioning" and Socratic epistemology: explorations of knowledge-seeking by questioning, etc.) and James Somerville (in "Collingwood's logic of question and answer" and The epistemological significance of the interrogative, etc.). I can accept that questions are outside the scope of Argdown's argumentation framework/ontology, but I suspect that it would be possible to use questions in Argdown anyway by adding a question mark (and a question icon, if icons are supported) to a statement and choosing a relation of entailment between that question and another statement (which is not exactly correct, but would work well enough for many purposes).

@nathan-artist
Copy link
Author

I have spent a little time working on this, and it is more difficult than I expected to create the Dot and GraphML files requested above. Perhaps with more persistence it could be done, but I found myself thinking that the whole idea of icons in nodes may not be worth the effort that it would take to implement, and may not be a high priority for this project. I am giving up on it for now. I still think icons would be great, but difficult to do (at least for me). An easier solution to issue #113 may be to use different line weights and border styles instead of icons.

@christianvoigt
Copy link
Owner

@nathan-artist thanks for your effort, I will keep this open and have another look at this in the future.

However there is an easy workaround for now that I forgot to mention: You can simply use unicode emojis. Argdown allows you to use any Unicode character you like, just copy & paste the icons that you want to use directly into a statement text or argument description.

I will soon release a new Argdown version that will make this even easier by adding shortcodes for unicode characters to the syntax. You can then for example use ":happy:" to add a smiley to your document. Or you can add custom shortcodes in your configuration.

I originally intended this feature to be primarily for users working with logical symbols in Argdown, however it might also serve your purpose.

Thank you also for your detailed information about how you use Argdown, that is always interesting to hear. When I started defining the syntax, I actually thought about adding questions with <? but decided against it, among other things for the reasons I already mentioned. But if there is one additional relation I might add in the future it probably would be this one.

For now I would translate IBIS into Argdown as follows: "Positions/answers" can be represented by statements. "Issues" or "questions" can be represented by "groups" (using sections with headings in the Argdown document). The relation between questions and answers/positions is represented by assigning statements to groups. It will look different, because groups have no relations but are containing other elements, but it will actually express the same information.

@christianvoigt
Copy link
Owner

Hi @nathan-artist,
are you still interested in Argdown? I finally implemented your feature request in v1.7.0: You can now use svg, png or jpg icons in argument and statement nodes. Take a look at this new chapter in the guide and tell me what you think!

@nathan-artist
Copy link
Author

@christianvoigt, I looked at the new Adding images chapter in the guide and it looks great—excellent work! (I love the cats versus dogs example too.) I will download the new version and try it; I have not updated Argdown on my computer recently.

At first I didn't understand what the icons mean in the map under Using tags to add images. If I understand correctly, the icons in that map represent a kind of one-voter dotmocracy: A voter is voting for or against each node in the map. That is an interesting use case that I hadn't previously imagined.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants