Reasons

Reasons: A digital argument mapping library for modern browsers - Published in JOSS (2019)

https://github.com/davekinkead/reasons

Science Score: 98.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 9 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

argument-mapping critical-thinking html logic

Keywords from Contributors

mesh

Scientific Fields

Engineering Computer Science - 40% confidence
Last synced: 6 months ago · JSON representation ·

Repository

Web based argument mapping tools

Basic Info
Statistics
  • Stars: 18
  • Watchers: 2
  • Forks: 4
  • Open Issues: 12
  • Releases: 7
Topics
argument-mapping critical-thinking html logic
Created about 9 years ago · Last pushed over 2 years ago
Metadata Files
Readme Contributing License Citation Roadmap

README.md

Reasons

Reasons is a digital argument mapping library designed for modern web browsers.

Argument mapping is the process of visually representating the logical structure of arguments. Argument maps are an important pedagogical tool in the analysis of argumentation and have been associated with substantial increases in student cognative gains.

Argument mapping forms the middle of the three stages of informal logical analysis - identification of truth claims within arguments, the analysis of logical structure, and synthesis of logcial structure into writen form. Reasons is designed to seemlessly integrate these stages into existing teaching pedagogies.

DOI

Embedding Reasons

Download the library and add a reference to it and any initial data just before the </body> tag of a HTML page.

```html

...

```

Reasons needs to know the target #element of the DOM in which to render the argument map. You could use body to append the map to the HTML body tag or #id to append it to a specific element id. The optional graph is just an array of nodes and edges representing the logical structure of an argument. Nodes and edges are plain javascript objects representing propositional claims and inferential support.

Saving an argument map is left as an implementation detail. Mapper.export() will return a Graph array from the map's current state.

Using Reasons

Reasons relies on a few simple commands to edit an argument map:

  • Double clicking/touching on an empty canvas will create a new reason node.

  • Double clicking/touching on an element will open the edit dialog. Return or Esc will close the dialog.

  • Dragging one reason onto another creates an inferential connection. Dragging reasons that share an inferential connection onto one another will create a conjoined reason.

  • A single click or Tab will select an element. Delete or Backspace will remove that element.

  • Ctrl z or ⌘ z or device shake will undo an action. Ctrl y or ⌘ y will redo it.

  • Ctrl + or ⌘ + or wheel or expand will zoom in. Ctrl - or ⌘ - or wheel or pinch will zoom out.

Click for a demonstration

Development & Testing

Clone the repo and install the dependencies.

$ git clone https://github.com/davekinkead/reasons.git
$ npm install

Running the tests requires additional dev dependencies listed in the package.json file under dev-dependencies including JSDOM and Canvas. . You will need to install all these using the command:

$ npm install mocha --save-dev
$ npm install jsdom --save-dev
  ...

Then:

$ npm test

To get autobuilding to work, install workman

$ watchman-make --make "npm run" -p "lib/*.js" -t build

Browser Compatibility

Reasons relies on the HTML5 Canvas library - as such, it will not work on legacy browsers. Touch events will be added in future releases. It has been tested and works on the following browsers:

  • [X] Chrome on OSX (60+)
  • [X] Firefox on OSX (54+)
  • [X] Safari on OSX (11+)
  • [X] Chrome on Windows
  • [X] Firefox on Windows
  • [X] Safari iOS (View only)
  • [ ] Safari iOS (Touch)
  • [ ] Internet Explorer on Windows
  • [ ] Chrome on Android

Contributing & Support

We gladly accept feature requests and bug fixes. If you have questions or problems, please open an issue.

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

How to Cite

If you are using this software in an academic capacity, please cite as:

Kinkead et al., (2019). Reasons: A digital argument mapping library for modern browsers. Journal of Open Source Software, 4(37), 1044, https://doi.org/10.21105/joss.01044

DOI

Owner

  • Name: Dave Kinkead
  • Login: davekinkead
  • Kind: user
  • Location: Brisbane AU, Zillertal AT, Les Arcs FR

Philosopher skibum

JOSS Publication

Reasons: A digital argument mapping library for modern browsers
Published
May 12, 2019
Volume 4, Issue 37, Page 1044
Authors
Dave Kinkead ORCID
University of Queensland Critical Thinking Project
Deborah Brown ORCID
University of Queensland Critical Thinking Project
Peter Ellerton ORCID
University of Queensland Critical Thinking Project
Claudio Mazzola ORCID
University of Queensland Critical Thinking Project
Editor
Yo Yehudi ORCID
Tags
argument mapping critical thinking pedagogy

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Kinkead"
  given-names: "Dave"
  orcid: "https://orcid.org/0000-0001-5396-8099"
- family-names: "Brown"
  given-names: "Deborah"
  orcid: "http://orcid.org/0000-0001-5707-7605"
- family-names: "Ellerton"
  given-names: "Peter"
  orcid: "http://orcid.org/0000-0002-6588-376X"
- family-names: "Mazzola"
  given-names: "Claudio"
  orcid: "http://orcid.org/0000-0001-6117-7465"
title: "Reasons: A digital argument mapping library for modern
browsers"
version: 1.1.5
doi: 10.21105/joss.01044
date-released: 2019-05-12
url: "https://github.com/davekinkead/reasons"

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 263
  • Total Committers: 3
  • Avg Commits per committer: 87.667
  • Development Distribution Score (DDS): 0.122
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Dave Kinkead d****e@k****u 231
Geoffrey Donaldson g****n@t****m 24
dependabot[bot] 4****] 8
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 21
  • Total pull requests: 37
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 2 months
  • Total issue authors: 5
  • Total pull request authors: 2
  • Average comments per issue: 1.38
  • Average comments per pull request: 0.89
  • Merged pull requests: 16
  • Bot issues: 0
  • Bot pull requests: 24
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • davekinkead (13)
  • andytwoods (4)
  • eyssette (2)
  • yochannah (1)
  • geoffreyd (1)
Pull Request Authors
  • dependabot[bot] (24)
  • geoffreyd (13)
Top Labels
Issue Labels
Pull Request Labels
dependencies (24)

Dependencies

package-lock.json npm
  • 697 dependencies
package.json npm
  • browserify 16.5.1 development
  • canvas 2.8.0 development
  • jsdom 11.0.0 development
  • mocha 8.3.0 development
  • npm 7.20.6 development
  • request 2.88.2 development
  • should ^11.2.1 development
  • uglify-es ^3.3.9 development
  • yamljs ^0.2.10 development
  • array-difference 0.0.2
  • array-flatten ^2.1.2
  • array-intersection ^0.1.2
  • array-unique ^0.3.2
  • hammerjs ^2.0.8
  • keycode ^2.2.0