You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I recently discovered argdown (to my great delight), and am now attempting to use it to create a comprehensive map/document of a very complex set of overlapping and intersecting arguments (with elements which span metaphysics, ethics, theology, mathematics and other domains). I'm liking argdown very much so far.
However, one of the reasons that I am attempting to create my "grand unified argument" is that the various arguments and their proponents tend to define and use some of the key terminology differently, which effectively results (irrespective of intent) in equivocation fallacies when trying to incorporate the separate arguments into a single, unified argument framework.
My approach has been to attempt to define a structured ontology of the important and 'controversial' terms, with explicit definitions of each term, and relationships between related terms. So far, I've defined each term as it's own argdown statement (equivalence class), and used the support, attack, contradict, and undercut relations to map the important relationships between terms.
My effort to define and use an embedded ontology within my argdown doc has been somewhat successful, but seems (as far as I can tell from my reading of the documentation and the Github issues/discussions) to be pushing the boundaries of argdown's intended design and usage. And I would very much appreciate some feedback and suggestions about my approach, and on whether there are different or better ways to approach this task.
FYI: In the explanation below, I am using the following terms:
a term is a "terminology definition", and is definitionally "true", but is not a "truth bearing statement". Referencing a term means that the statement which uses the reference is using it in the strict sense (and thus eliminates the possibility of equivocation).
a proposition is any truth-bearing statement, and (per my understanding) is the directly intended primary use of argdown statements.
PROs
Defining each contested term as a statement has the following benefits:
Enables all of the accompanying benefits of argdown statements, including syntax highlighting, IDE features (e.g. easy renaming, autocompletion), referential integrity.
Enables a built-in way of defining relations between terms, including terms which have parent/child, general/specific, opposing/contrary, part/whole, and other relationships between terms.
Makes it unnecessary (but also impossible) to syntactically distinguish ontological/glossary "terms" from argument "propositions", which can be both useful and frustrating, depending on your perspective.
CONs/Difficulties
Defining each contested term as a statement has the following drawbacks/issues:
Argdown statements/equivalence classes seem like they probably weren't intended for defining non-"truth-bearing" 'terms'
Using argdown's 4 built-in 'relation' types (and accompanying inferences) seems to be a possible misuse of the relations syntax. And I'm not sure whether there are possibly bigger implications/issues of such misuse than I may yet be aware of.
Failing to distinguish (syntactically or otherwise) terms from non-term statements means that they are inherently indistinguishable (in terms of IDE features, etc.). E.g. Both terms and propositions will be intermingled in the same autocomplete lists.
While propositions tend to be phrases or sentences, many terms are only 1-2 words. And using equivalence class references for terms often does not allow for the easy use of correct and optimal grammar in the locations which embed the reference.
Example
For example, consider the following trivial argdown:
[organism]: an organism.
[sentience]: the ability to experience feelings and sensations.
[insentience]: lack of @[sentience].
>< [sentience]
[sentient organism]: a sentient (cf. @[[sentience]]) @[organism].
+ [organism]
+ [sentience]
[plant]: a type of insentient (cf. @[[insentience]]) @[organism].
+ [organism]
+ [insentience]
+ <plants don't have feelings 1>: Since @[plant]s don't have feelings, they are insentient (cf. @[insentience]).
+ <plants don't have feelings 2>: Since @[plant]s don't have feelings, they aren't sentient (cf. @[sentience]).
+ <plants don't have feelings 3>: Since @[plant]s don't have feelings, they are @[insentience].
+ <plants don't have feelings 4>: Since @[plant]s don't have feelings, they aren't @[sentience].
+ <plants don't have feelings 5>: Since @[plant]s don't have feelings, they exhibit @[insentience].
+ <plants don't have feelings 6>: Since @[plant]s don't have feelings, they don't possess @[sentience].
- <plants react to stimuli>: Since @[plant]s react to some stimuli, they are sentient (cf. @[sentience]).
Note that when referencing sentient vs sentience vs insentient vs insentience, I have included 6 examples of essentially the same argument, each of which uses term references differently.
Args 1 & 2 need to use a "cf. ..." reference to maintain proper grammar when the equivalence class doesn't exactly match the grammatical form of the word being used in the arg description. Which is OK, but feels a bit clunky and makes the referencing text longer.
Args 3 & 4 use improper grammar by directly referencing the equivalence class despite the grammatical mismatch. Which seems bad and makes the argument description less human readable. Not a good option IMO.
Args 5 & 6 use proper grammar and directly reference the equivalence class by reformulating the argument sketch to avoid a grammatical mismatch. While this sometimes works fine, other times it feels clunky and/or results in an inferior argument sketch.
Also, Args 1, 3, and 5 use an antonym/inverse term ([insentience]). Omitting the definition of such inverse/opposite terms from the ontology would further constrain the argument reconstructer in the choice of argument reconstruction phrasing. But including such inverse terms requires that they be syntactically related as attacking or contradicting each other.
Consider these additional alternatives which would require argdown syntax extensions:
+ <plants don't have feelings A>: Since @[plants:plant] don't have feelings, they are @[insentient:insentience].
+ <plants don't have feelings B>: Since @[plants:plant] don't have feelings, they aren't @[sentient:sentience].
+ <plants don't have feelings C>: Since @[plants:plant] don't have feelings, they are @[not sentient:!sentience].
Args A & B demonstrate how an extension of the statement reference syntax could be used to allow for references to include both the canonical equivalence class name and also a contextually-appropriate conjugation/substitute to be used in a way that feels less clunky, and would be more directly compatible with IDE renaming refactoring, etc.
Arg C further demonstrates a hypothetical "negated reference". Such a syntactic feature would avoid much of the need for defining pairs of "negated terms", since an opposite term could be directly "negation referenced". Which would simplify the ontology portion of the argument document, while maintaining the reconstructer's ability to choose the best wording for the context.
Also, note that my syntax extensions in A, B, and C are merely an example, to facilitate this discussion. I didn't spend much time considering syntactic alternatives.
Questions
Given the above, I'd like some feedback about:
Is my attempt to define and use an ontology of terms within an argdown document appropriate and within the scope of argdown's intended usage?
Is there a better way to use argdown for embedded ontologies (vs my example above)? Or any other recommendations which may help?
How are others mitigating/preventing equivocation in large, complex argument reconstructions?
Does it make any sense to consider an entirely separate category/class for terms? E.g. Double square brackets (or something else) for terms vs single square brackets for statements/propositions? This would enable terms and their relations, etc. to be treated differently (for inference, in mapping, in the IDE, etc.) Given how often debaters "talk past each other" due to inconsistent use of terminology, it seems like terms should maybe be a first-class entity within the argdown syntax and framework.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
I recently discovered argdown (to my great delight), and am now attempting to use it to create a comprehensive map/document of a very complex set of overlapping and intersecting arguments (with elements which span metaphysics, ethics, theology, mathematics and other domains). I'm liking argdown very much so far.
However, one of the reasons that I am attempting to create my "grand unified argument" is that the various arguments and their proponents tend to define and use some of the key terminology differently, which effectively results (irrespective of intent) in equivocation fallacies when trying to incorporate the separate arguments into a single, unified argument framework.
My approach has been to attempt to define a structured ontology of the important and 'controversial' terms, with explicit definitions of each term, and relationships between related terms. So far, I've defined each term as it's own argdown statement (equivalence class), and used the support, attack, contradict, and undercut relations to map the important relationships between terms.
My effort to define and use an embedded ontology within my argdown doc has been somewhat successful, but seems (as far as I can tell from my reading of the documentation and the Github issues/discussions) to be pushing the boundaries of argdown's intended design and usage. And I would very much appreciate some feedback and suggestions about my approach, and on whether there are different or better ways to approach this task.
FYI: In the explanation below, I am using the following terms:
term
is a "terminology definition", and is definitionally "true", but is not a "truth bearing statement". Referencing a term means that the statement which uses the reference is using it in the strict sense (and thus eliminates the possibility of equivocation).proposition
is any truth-bearing statement, and (per my understanding) is the directly intended primary use of argdown statements.PROs
Defining each contested term as a statement has the following benefits:
CONs/Difficulties
Defining each contested term as a statement has the following drawbacks/issues:
Example
For example, consider the following trivial argdown:
Note that when referencing sentient vs sentience vs insentient vs insentience, I have included 6 examples of essentially the same argument, each of which uses term references differently.
Args 1 & 2 need to use a "cf. ..." reference to maintain proper grammar when the equivalence class doesn't exactly match the grammatical form of the word being used in the arg description. Which is OK, but feels a bit clunky and makes the referencing text longer.
Args 3 & 4 use improper grammar by directly referencing the equivalence class despite the grammatical mismatch. Which seems bad and makes the argument description less human readable. Not a good option IMO.
Args 5 & 6 use proper grammar and directly reference the equivalence class by reformulating the argument sketch to avoid a grammatical mismatch. While this sometimes works fine, other times it feels clunky and/or results in an inferior argument sketch.
Also, Args 1, 3, and 5 use an antonym/inverse term (
[insentience]
). Omitting the definition of such inverse/opposite terms from the ontology would further constrain the argument reconstructer in the choice of argument reconstruction phrasing. But including such inverse terms requires that they be syntactically related as attacking or contradicting each other.Consider these additional alternatives which would require argdown syntax extensions:
Args A & B demonstrate how an extension of the statement reference syntax could be used to allow for references to include both the canonical equivalence class name and also a contextually-appropriate conjugation/substitute to be used in a way that feels less clunky, and would be more directly compatible with IDE renaming refactoring, etc.
Arg C further demonstrates a hypothetical "negated reference". Such a syntactic feature would avoid much of the need for defining pairs of "negated terms", since an opposite term could be directly "negation referenced". Which would simplify the ontology portion of the argument document, while maintaining the reconstructer's ability to choose the best wording for the context.
Also, note that my syntax extensions in A, B, and C are merely an example, to facilitate this discussion. I didn't spend much time considering syntactic alternatives.
Questions
Given the above, I'd like some feedback about:
terms
? E.g. Double square brackets (or something else) for terms vs single square brackets for statements/propositions? This would enable terms and their relations, etc. to be treated differently (for inference, in mapping, in the IDE, etc.) Given how often debaters "talk past each other" due to inconsistent use of terminology, it seems like terms should maybe be a first-class entity within the argdown syntax and framework.Thanks in advance for any feedback or guidance.
Beta Was this translation helpful? Give feedback.
All reactions