From 2ebb7bacdac92b5069a132f17f40097db310d4ed Mon Sep 17 00:00:00 2001 From: Carl Gieringer <78054+carlgieringer@users.noreply.github.com> Date: Tue, 30 Jul 2024 08:47:46 -0700 Subject: [PATCH] Break up the design page into Features and Comparisons (#697) * Break up the design page into Features and Comparisons Signed-off-by: Carl Gieringer <78054+carlgieringer@users.noreply.github.com> * PR edits Signed-off-by: Carl Gieringer <78054+carlgieringer@users.noreply.github.com> * Fix links Signed-off-by: Carl Gieringer <78054+carlgieringer@users.noreply.github.com> --------- Signed-off-by: Carl Gieringer <78054+carlgieringer@users.noreply.github.com> --- howdju-docs/components/Feature.mdx | 21 ++ howdju-docs/pages/_meta.json | 19 +- howdju-docs/pages/concepts.mdx | 15 +- howdju-docs/pages/concepts/appearances.mdx | 14 +- howdju-docs/pages/concepts/fact-checks.mdx | 2 +- howdju-docs/pages/concepts/justifications.mdx | 128 +++++++- howdju-docs/pages/concepts/media-excerpts.mdx | 61 +++- howdju-docs/pages/concepts/persorgs.md | 11 + howdju-docs/pages/concepts/propositions.mdx | 2 +- howdju-docs/pages/concepts/relations.mdx | 4 +- howdju-docs/pages/design.mdx | 291 ++++-------------- howdju-docs/pages/design/_meta.json | 5 + howdju-docs/pages/design/comparisons.md | 178 +++++++++++ .../pages/design/epistemic-mode-hypothesis.md | 19 ++ howdju-docs/pages/design/features.mdx | 122 ++++++++ 15 files changed, 607 insertions(+), 285 deletions(-) create mode 100644 howdju-docs/components/Feature.mdx create mode 100644 howdju-docs/pages/concepts/persorgs.md create mode 100644 howdju-docs/pages/design/_meta.json create mode 100644 howdju-docs/pages/design/comparisons.md create mode 100644 howdju-docs/pages/design/epistemic-mode-hypothesis.md create mode 100644 howdju-docs/pages/design/features.mdx diff --git a/howdju-docs/components/Feature.mdx b/howdju-docs/components/Feature.mdx new file mode 100644 index 00000000..78e79815 --- /dev/null +++ b/howdju-docs/components/Feature.mdx @@ -0,0 +1,21 @@ +import dynamic from "next/dynamic"; +/** A component for an unimplemented feature. */ +export function FeatureComponent({ issueId, children }) { + const issueLink = issueId ? ( + + #{issueId} + ) : null; + const abbrTitle = issueId ? `Future feature (#${issueId})` : "Future feature"; + return ( + + {children} {issueLink} + + ); +} +export const Feature = dynamic( + () => Promise.resolve(FeatureComponent), + { + ssr: false, + loading: () => [enable JavaScript to see the feature], + } +); diff --git a/howdju-docs/pages/_meta.json b/howdju-docs/pages/_meta.json index 7149d90f..ca5726a5 100644 --- a/howdju-docs/pages/_meta.json +++ b/howdju-docs/pages/_meta.json @@ -3,8 +3,11 @@ "introduction": "", "design": "", "concepts": "", + "faq": "FAQ", "background": "", "organization": "", + "principles": "", + "policies": "", "community": { "title": "Community", "type": "menu", @@ -34,21 +37,5 @@ "newWindow": true } } - }, - "principles": { - "title": "Principles", - "type": "page", - "href": "/principles" - }, - "policies": "", - "policies_page": { - "title": "Policies", - "type": "page", - "href": "/policies" - }, - "faq": { - "title": "FAQ", - "type": "page", - "href": "/faq" } } diff --git a/howdju-docs/pages/concepts.mdx b/howdju-docs/pages/concepts.mdx index fc42fda2..c2731a66 100644 --- a/howdju-docs/pages/concepts.mdx +++ b/howdju-docs/pages/concepts.mdx @@ -23,17 +23,18 @@ Appearance -- apparition --> Proposition; Appearance -- location --> MediaExcerpt; ``` -- [Propositions] are the things that may or may not be true. -- [Justifications] provide evidence for a proposition being true or false. -- Justification have [Bases] that provide their support. -- The two types of bases are PropositionCompounds and MediaExcerpts. -- PropositionCompounds are an ordered list of Propositions and are similar to arguments from +- [Propositions](/concepts/propositions) are the things that may or may not be true. +- [Justifications](/concepts/justifications) provide evidence for a proposition being true or false. +- Justification have bases that provide their support. +- The two [types](/concepts/justifications#basis-types) of bases are PropositionCompounds and MediaExcerpts. +- [PropositionCompounds](/concepts/justifications#propositioncompound-based-justifications) are + an ordered list of Propositions and are similar to arguments from propositional logic. -- MediaExcerpts are references to a part of an external source. +- [MediaExcerpts](/concepts/media-excerpts) are references to a part of an external source. Howdju also supports critique: -- [Appearances] indicate that a Proposition appears in a Soruce. +- [Appearances](/concepts/appearances) indicate that a Proposition appears in a Soruce. - An Appearance appears at a MediaExcerpt and the thing that appears is a Proposition. This structure allows a two-step critique of a source: diff --git a/howdju-docs/pages/concepts/appearances.mdx b/howdju-docs/pages/concepts/appearances.mdx index 31115314..01ca21e9 100644 --- a/howdju-docs/pages/concepts/appearances.mdx +++ b/howdju-docs/pages/concepts/appearances.mdx @@ -1,8 +1,16 @@ # Appearances -Appearances indicate that an entity appears at a MediaExcerpt. The appearing entity is called the -"apparition". Howdju currently supports Proposition appearitions. +import { Feature } from "../../components/Feature.mdx"; + +Appearances indicate that an entity appears at a +[MediaExcerpt](/concepts/media-excerpts). The appearing entity is called the +"apparition". + +## Apparitions + +The types of apparations are: - PropositionAppearance: the speech represented by the MediaExcerpt is validly paraphrased by the appearing Proposition. -- JustificationAppearance: the argument represented by the MediaExcerpt corresponds to the Justification. +- JustificationAppearance: the argument + represented by the MediaExcerpt corresponds to the Justification. diff --git a/howdju-docs/pages/concepts/fact-checks.mdx b/howdju-docs/pages/concepts/fact-checks.mdx index 05d4cedb..00f4f3ac 100644 --- a/howdju-docs/pages/concepts/fact-checks.mdx +++ b/howdju-docs/pages/concepts/fact-checks.mdx @@ -1,4 +1,4 @@ -# Fact Checks +# FactChecks From an Appearance, you can click on the context menu for "User's fact-check". This will take you to a page which accepts sourceIds, urlIds, and userIds. The page will diff --git a/howdju-docs/pages/concepts/justifications.mdx b/howdju-docs/pages/concepts/justifications.mdx index fc0b9968..b5083c05 100644 --- a/howdju-docs/pages/concepts/justifications.mdx +++ b/howdju-docs/pages/concepts/justifications.mdx @@ -1,15 +1,11 @@ # Justifications -A justification is when one thing makes another thing more likely to be valid or true. A -justification represents a user’s intention to express or a belief in a relationship between a basis -and an target. The basis is the starting point and the target is the conclusion arrived at by -inference. +import { Feature } from "../../components/Feature.mdx"; -Justifications represent a grounded implication of the truth of some target. One type of target is a -proposition: the justification represents reasons for believing that the proposition is true or -false. The basis may be external evidence or other propositions on the platform. +A justification is something that makes another thing more likely either to be true or false. -Justifications are the foundation of knowledge construction. +Justifications are the foundation of knowledge construction because they represent deriving +knowledge (the justification's target) based upon existing knowledge (the justification's basis.) ## Components @@ -18,9 +14,32 @@ A Justification is technically a relation between a `basis` and a `target`. The which about which truth is being proven. The Justification's `polarity` determines the direction of the Justification is arguing for. +## Target types + +Howdju currently supports one type of Justification, with others planned. + +### Proposition + +Proposition Justifications provide reasons for believing in the truth of a +Proposition. + +### Appearance + +Appearance Justifications provide reasons for interpreting a +[MediaExcerpt](/concepts/media-excerpts) as an appearance of its Apparition. + +### Relation + +Relation Justifications provide reasons for believing that a +[Relation](/concepts/relations) holds between two other entities. The types of +the entities and the meaning of the Relation depend on the specific type of +Relation. + +## Basis types + Justifications can have one of two bases: MediaExcerpts or PropositionCompounds. -## MediaExcerpt-based Justifications +### MediaExcerpt-based Justifications A MediaExcerpt-based Justification argues for or against the truth of its target based upon a reference to an external Source. MediaExcerpt-based Justifications are similar to when online @@ -31,7 +50,7 @@ Howdju's MediaExcerpt-based Justifications improve on 'implication by hyperlink' recording the excerpt of the source that the Justification creator intended to provide the evidence. This explicitness speeds up readers review of the Justification. -### MediaExcerpt-based Justifications vs. Appearances +#### MediaExcerpt-based Justifications vs. Appearances It would have been possible to omit MediaExcerpt-based Justifications and to have only PropositionCompound-based justifications and Appearances. This approach would have required users to @@ -39,15 +58,19 @@ create very precisely worded Appearances so that they could then use them in the Howdju wanted to support people who were in a constructive mindset ("I trust this source and/or speaker, and therefore I believe it to imply the truth of the proposition") rather than forcing them -into a critical mindset. This design decision is to allow these users the convenience of quickly -adding the inferences into Howdju that they are observing as they read. +into a critical mindset. See [the Epistemic Mode Hypothesis](/design/epistemic-mode-hypthesis) for +background. -Howdju is designed to facilitate criticism of these MediaExcerpt-based Justifications when users -create Appearances at the MediaExcerpt and disprove the truth of those appearing Propositions. +This design decision is to allow these users the convenience of quickly +adding the inferences into Howdju that they are observing as they read. Do you sometimes experience +an inferential leap while reading a source you trust? I.e. "if this is true, which it probably is, +then it is good evidence for this other thing". -Inferential leap. +Howdju is designed to facilitate criticism of these MediaExcerpt-based Justifications when users +create Appearances at the MediaExcerpt and disprove the truth of those +appearing Propositions. -## PropositionCompound-based Justifications +### PropositionCompound-based Justifications PropositionCompound-based justifications are like arguments in propositional logic. The Propositions in the compound (the "atoms") should, combined with the knowledge and judgment of the reader, @@ -59,9 +82,82 @@ Justification: - Sufficient: taken together, the truth of the atoms proves the Justification - Necessary: removing any atom would defeat the inferential power of the Justification +### Example-based Justifications + +Example-based justifications are a special type +of Justification handling the case where one or more examples of a target are given +to imply the Justification's truth valence. + +- At most one example-based justification per target per polarity. +- User's vote independently on the Justification and the Examples. + +A vote for an Example means "this is an example that contributes to my belief in +the justification's polarity on the target." A vote against an example means "this +is not an example that contributes to my belief in the justification's polarity on the target". +That may mean that the user disagrees that the example is a valid example or just +that it is not one that contributes to a conclusion. + +A vote for the justification means: + +- Positive: the examples I have voted on and/or seen convinced me to conclude + the justification's polarity about the target. +- Negative: the examples I have voted on and/or seen have not convienced me to + conclude the justification's polarity about the target. The user may + optionally receive [notifications](/design/features#notifications) for new examples. + +Example-based justifications are a sub-type of a contributory justification +where the basis of the justification must be an example of the target. + +## Polarities + +A Justification's polarity indicates whether the basis makes the target true, +false, or niether. Possibly Polarity values are: + +- Positive +- Negative +- Neutral + +The meaning of a Polarity is target-specific: + +| Target | Positive Meaning | Neutral meaning | Negative meaning | +| --- | --- | --- | --- | +| Proposition | The proposition is true | The proposition is neither true nor false | The proposition is false | +| Appearance | The apparition appears at the MediaExcerpt | N/A | The apparition does not appear at the Media Excerpt | +| Relation | The relation holds | N/A | The relation does not hold | + +A Polarity is a permanent feature of a Justification. If a user wants to create +an otherwise identical Justification with a different polarity, they must +create a new Justification. + +## Strengths + +A Justification's Strength indicates how +thoroughly a Justification's basis proves the polarity about the target. Strengths +have two possible values: + +- Conclusive: the justification's basis is sufficient to prove the polarity about + the target. +- Contributory: the justification's basis makes the polarity more likely about + the target, but does not prove it. + +The creator of a Justification provides an initial Strength. Justification voters +can vote with a non-default strength from a dropdown. The default strength presented +to the user is a function of the user's inferred beliefs compared to the inferred +beliefs of users who have voted on the Justification and the weight those voters +selected. + ## CounterJustifications A Justification can target another Justification and is called counter-Justification. The counter-Justification does not target the basis of the Justification directly. Instead, a counter-Justification defeats its target Justification in the particular context where the target Justificatcion appears. + +### Preferred-phrasing CounterJustification + +A CounterJustification focusing on a Proposition may have +a special basis type of "preferred phrasing". +The basis type indicates that while the countered justification may be effective +on the current Proposition's phrasing, it loses strength against the proposed +alternative Proposition. This feature enables redirecting attention to a +steelman. diff --git a/howdju-docs/pages/concepts/media-excerpts.mdx b/howdju-docs/pages/concepts/media-excerpts.mdx index 87ccf79d..89462866 100644 --- a/howdju-docs/pages/concepts/media-excerpts.mdx +++ b/howdju-docs/pages/concepts/media-excerpts.mdx @@ -1,25 +1,56 @@ -# Media Excerpts +# MediaExcerpts -Media Excerpts are references to a part of some media external to Howdju. They have local -represenatations and remote locators: +Media Excerpts are references to a part of some media external to Howdju. Their +primary purpose is in [Appearances](/concepts/appearances) where they anchor +a Howdju entity with a specific part of an external Source. They also have +standalone utility for 'highlighting' a specific quote from a webpage or book. -- Local representations allow users to assess the evidentiary quality of the excerpt without leaving Howdju. -- Remote locators allow users to access the excerpt in its original context. +MediaExcerpts unlock: + +- Analyzing the meaning of contextualized speech + - Debating what a speaker intended to mean + - Analyzing the truth of the underlying meaning +- Semantic search and clustering + - Rediscover this context by searching for the meaning you interpreted to it. + - Find related thought appearing in different contexts + +A MediaExcerpt's components: + +- Quotation +- URL(s) +- Citation(s) +- Speakers + +A MediaExcerpt's components serve two purposes: + +- Local representation: allows users to evaluate the evidentiary + quality of an excerpt without leaving Howdju +- Remote location: allows users to find and view the excerpt in its original context. + +## Quotation + +The MediaExcerpt's quotation is the specific part of the source the user intended to reference. + +## URL + +The URL is the online location where the MediaExcerpt can be found. ## Citations -Citations are remote locators that use bibliographic source citations to locate excerpts. -They enable locating material which may not be available online or which the user may not know how -to find online. +Citations are bibliographic information. They enable MediaExcerpts of offline +sources. Their information also provides context to users. Citations consist of a Source and an optional Pincite. ### Sources -Sources are like bibliographic sources that would appear in a research paper. They have a textual -description, which is MLA-like except that it omits the authors. +Sources are bibliographic information similar to what someone would include in +an academic paper when citing another authority. Howdju recommends an MLA-like +style except omitting the authors since those correspond to [speakers](#speakers). -Source's vs. Source containers +- Title (the specific name of the article) +- Publication (i.e. the name of the newspaper, journal, etc.) +- Publication date ### Pincites @@ -33,8 +64,6 @@ Examples of Pincites include: ## Speakers -A MediaExcept may be associated with one or more speakers. - -### Persorgs - -Persorgs are something capable of making speech: a natural person or an organization. +Users may associate one or more speakers with a MediaExcept to indicate the +[Persorg(s)](/concepts/persorgs) that are directly responsible for the speech in +the MediaExcerpt. diff --git a/howdju-docs/pages/concepts/persorgs.md b/howdju-docs/pages/concepts/persorgs.md new file mode 100644 index 00000000..bca5451e --- /dev/null +++ b/howdju-docs/pages/concepts/persorgs.md @@ -0,0 +1,11 @@ +# Persorgs + +Persorgs are something capable of making speech: a natural person or an organization. + +Components: + +- Name +- Known for: for natural persons, a disambiguator in the case of conflicting + names. +- URLs: online locations to learn about the persorg or to further disambiguate + a person. diff --git a/howdju-docs/pages/concepts/propositions.mdx b/howdju-docs/pages/concepts/propositions.mdx index e65aa2ed..6a1ca328 100644 --- a/howdju-docs/pages/concepts/propositions.mdx +++ b/howdju-docs/pages/concepts/propositions.mdx @@ -57,7 +57,7 @@ Correct: “The Burj Khalifa is the tallest structure in the world” Reason: is not a declarative clause. But: Howdju supports adding Propositions where the creator indicates that they question the truth of -the Proposition. See [Questions](https://docs.howdju.com/concepts/questions). +the Proposition. See [Questions](/concepts/questions). ### Dependent clause diff --git a/howdju-docs/pages/concepts/relations.mdx b/howdju-docs/pages/concepts/relations.mdx index 4a94bff0..4e38d4ef 100644 --- a/howdju-docs/pages/concepts/relations.mdx +++ b/howdju-docs/pages/concepts/relations.mdx @@ -1,6 +1,8 @@ # Relations -Relations are assertions about two entities having a relationship. For example, +import { Feature } from "../../components/Feature.mdx"; + +Relations are assertions about two entities having a relationship. For example, the relation `PropositionEquivalence` asserts that two Propositions are equivalent. Both users and automated processes can create relations. Users can vote on the validity of relations. diff --git a/howdju-docs/pages/design.mdx b/howdju-docs/pages/design.mdx index b28c67b8..1bedd124 100644 --- a/howdju-docs/pages/design.mdx +++ b/howdju-docs/pages/design.mdx @@ -1,254 +1,97 @@ # Design -This page describes the goals of Howdju's functionality, how specific features -achieve those goals. It also compares Howdju to other well-known platforms to -explain the benefit of its particular design. +This page describes Howdju's intended qualities and use cases. ## Intended qualities -Howdju’s intended qualities are: +Howdju's intended qualities are: -- Convenience: make it easy to input and to access information -- Consolidation: prevent duplication and collect related things together -- Context: empower users with the information they need to evaluate the information. - -### Features - -Specific features embodying these qualities are: - -- One-step submission of evidence: - - - Browser extension - - Mobile app - - Text fragment link support - -- Convenient viewing of evidence in-context - - The same three tools enable quickly viewing a - [MediaExcerpt](/concepts/media-excerpts) in context. - -- Consolidate equivalent entities and connect related ones - - - Propositions - - Justifications - -- Sort content - - - Global voting - - With plans to cluster users and rank content according to representativeness - across clusters - -- Track speaker reputation/credibility +- Convenient: it's easy to input and to access information +- Consolidated: duplicate things are merged and related things are adjacent +- Contextualized: accept and present relevant context empowering users to evaluate the information. +- Charitable: nudge users towards [charitable + discourse](https://en.wikipedia.org/wiki/Principle_of_charity) +- Incremental: allow users to refine their own and others' content (while + preserving the history.) ## Use cases -- Bookmark meaning - - When you create a [MediaExcerpt](/concepts/media-excerpts), you do more than - bookmark a URL. You save a quotation, a URL, and optionally a speaker and a - source. - - If you create an Appearance or [Justification](/concepts/justifications) using - the [MediaExcerpt](/concepts/media-excerpts), you are now saving the meaning - of what was said. - -- Critique sources - - Create [Appearances](/concepts/appearances) in a [Source](/concepts/sources) - and then add [Justification](/concepts/justifications) to the - [Proposition](/concepts/propositions) to decide whether the Source's claims - are credible. - -- Summarize sources - - Create [Appearances](/concepts/appearances) in a [Source](/concepts/sources) - and then use the Appearances' [Propositions](/concepts/propositions) to - [Justify](/concepts/justifications) Propositions that summarize the thinking - or arguments in sections of the source. If the source explicitly states or - implies the conclusions, you can mark these summaries with Appearances of the - conclusions. - -- Analyze argument - - Create a proposition and then add [Justification](/concepts/justifications) to - it from various sources to decide whether it's true, false, or maybe unknown. - -## Comparison to well-known platforms - -The following sections compare Howdju to well known platforms that provide a -crowdsourced fact checking role even though they were not initially or -explicitly designed to do so. - -### Wikipedia - -Howdju is like Wikipedia in that it focuses on facts and evidence. Howdju is -more like reddit or Stackoverflow in terms of the process it uses to accept and -present facts and evidence. - -Wikipedia pages have a single representation at any time that is the result of a -highly moderated consensus. Some pages are even locked, preventing ordinary -users from making any contributions. - -Howdju users do not require consensus to create content or to present it. -instead consensus on Howdju contributes to the relative ranking of content. -Users can create a new Proposition at any time, can add their own justifications -to other's Proposoitions, can add Appearances to other's Propositions, etc. -Users can share views of their own content and other users can contribute to -that content directly. - -Compare that with Wikipedia where, although you can share a link to a previous -version of a page you wrote, if your contribution was reverted by a moderator, -no one can contribute on top of your content since it will contain the same -content that the moderator originally reverted, and they will revert it again. - -### Reddit - -Howdju is inspired by Reddit's threading model, but Howdju does not accept free -form text, links, and media. Howdju content is focused on claims and evidence, -and so has a more restrictive data model. Howdju also splits threads into two -sides: one for Pro justifications and one for Con justifications. - -Reddit's distributed totalitarian moderation model was initially highly -successful, but has been deteriorating in recent years. Subreddit moderators now -ban users who express even mildly contrarian views, creating information silos / -"filter bubbles". - -### Twitter - -Similar to Reddit, Twitter accepts free form text, link, and media and has no -domain primitives for claim or evidence. +Howdju's functionality can be thought of as breaking down into four use cases. +The first use case is foundational because most of the others build on top of it. +The next two are "primary" in the sense that they are the use cases Howdju is +most focused on supporting. And the last one "refinines" the content of the +"primary" use cases. -Twitter's Community Notes (formerly Birdwatch) provide a crowdsourced fact -checking layer on top of Twitter's content. Community notes have two major -drawbacks: +- Foundational + - Excerpting: capturing speech in context +- Primary + - Concluding: deriving conclusions from sources a user finds credible + - Critiquing: fact checking claims from sources a user finds uncredible +- Refining + - Analyzing: further analyzing the truth of conclusions or critiques. -1. Only a single Community Note can appear on a Tweet. +Excerpting is foundational and the other two use-cases build off of it. +Concluding and critiquing build on top of excerpting. Whether a user engages +in concluding or critiquing of a source relates to Howdju's +[epistemic mode hypothesis](/design/epistemic-mode-hypothesis). - This limitation prevents alternative or complementary Notes from appearing on - the same Tweet. This limitation means that a single Community Note must try - to encompass all of the most important feedback on a Tweet, which is - especially challenging since Notes have the same length limitations as Tweets - (at least for non-premium subscribers.) +### Excerpting -2. It is not possible to respond to a Community Note. +*Bookmark meaning* - This limitation means that if a Community Note is approved, no important - rebuttal or contradicting context can be added to note. This also means that - there is limited opportunity to incrementally improve a Community Note - through feedback. +When you create a [MediaExcerpt](/concepts/media-excerpts), you do more than +bookmark a URL. You bookmark a particular excerpt (quotation) from that URL and +optionally associate a speaker and a bibliographic source with the excerpt. -### Quora +When you go further and create an [Appearance](/concepts/appearances) or +[Justification](/concepts/justifications) using the MediaExcerpt, you are now +bookmarking your interpretion of the meaning of what was said. -Quora questions and answers are closer to Howdju's Propositions and -Justifications than Wikipedia pages: they allow multiple concurrent alternative -responses to a question. But the Q&A data model is inferior to Propositions and -Justifications for consolidating similar claims. Quora has no special domain -model for evidence or for factchecking sources. +While this use-case has standalone utility (e.g. for rediscovering an excerpt +from a source later by searching for your interpretation), it is also a foundation +for the other use cases. -### Stackoverflow +### Concluding -Stackoverflow has a simple structured domain model and very strong documentation -and community norms around acceptable content. Its gamification contributes to -healthy participation with minimal detraction, and its privilege-based -moderation and elected moderators are effective. Its meta community provides a -mostly productive way for users to communicate about content and moderation. +Use a [MediaExcerpt](/concepts/media-excerpts) as the basis of a +[Justification](/concepts/justifications) to conclude a +[Proposition](/concepts/propositions). This creates evidence-based knowledge +that you can share with others. +Notifications of others' [analysis](#analyzing) will further inform you about +the correctness of your conclusion. -Stackoverflow relies upon aggressive manual moderation to remove duplicate -content and does not intentionally tolerate similar questions that differ based -on subtle nuanced wording differences. +### Critiquing -Stackoverflow (and the more generic Stackexchange technology) has no features -geared directly to facts and evidence. There is a Stackexchange dedicated to -critiquing claims -([skeptic.stackexchange.com](https://skeptics.stackexchange.com)), but it has -very strict rules for its answers, forbidding answers that synthesize sources or -perform novel mathematical calculations. E.g. see [this -answer](https://skeptics.meta.stackexchange.com/a/2925/47976) and [this -answer](https://skeptics.meta.stackexchange.com/a/2930/47976). +*Fact checking* -The problem with forbidding these types of answers is that sometimes those -answers are what people are thinking or alluding to in their communications -without coming out and specifying them. Since people frequently form beliefs -based on 'common sense' and 'mental mathematical estimation', the skeptics -stackexchange does its community a disservice by forbidding these types of -answers. +Add [Justifications](/concepts/justifications) to an [Appearance's](/concepts/appearances) +[Proposition](/concepts/propositions) to analyze the credibility of the Source's claims. -The problem, however, may not be the community's, but the tool's: Stackexchange -only allows two levels of threading, and the second level is inferior to the -first: Questions, Answers, and Comments. This limitation means that an answer -based on invalid assumptions or reasoning is only open to critique through the -comments, which are not sorted by vote and offer a poorer UX compared to -Answers. - -Howdju's assumption is that it is better for people to share their reasoning -explicitly, even if it is invalid, because then it is amenable to critique. -Howdju's recursive domain model (Propositions are the targets of Justifications, -which contain Propositions, which can be the targets of more Justifications, -etc.) allows critique of such content. - -### Lobste.rs - -While perhaps not as well known as HackerNews, I admire Lobste.rs transparent -moderation history and its invite structure. - -## Comparisons to similar projects - -The following sections compare Howdju to other crowdsourced argument mapping or -fact checking projects. +### Analyzing -### Kialo +Add [Justifications](/concepts/justifications) to existing [Proposition](/concepts/propositions) +to further analyze their truth. -* Cannot reuse claims -* Limited evidence handling +Note that while it is possible to analyze Propositions apart from any evidentiary context, +Howdju [nudges users](/design/features#evidence-nudges) towards evidence-based knowledge. -### Two dimensional maps +## Summarizing -Examples: - -* ponder.wiki -* debatemap.app +Summarizing is a fifth potential use-case under the heading of "refinement", but +Howdju's functionality currently does not focus on it. -Two dimensional maps are useful for providing users quick visual context for a -larger argument. They work best for closed participant argument mapping because -the branching factor is relatively low and the relevance of the content to each -participant is high. +- Create one or more [Appearances](/concepts/appearances) in a [Source](/concepts/sources) +- use the Appearances' [Propositions](/concepts/propositions) to +[Justify](/concepts/justifications) new Propositions that summarize the thinking +or arguments in sections of the source. +- Create new Appearances for the summarizing Propositions where the source explicitly states or +implies the conclusions. -An open participation platform must handle an influx of new inexperienced users -who may duplicate content or create low quality content. One mandatory response -to this is education of community norms and moderation. But moderation doesn't -scale well, and it takes time for users to internalize community norms. +## Going deeper -Howdju's two column approach provides a natural experience to exploring the -arguments for and against a claim. As users explore lower ranked items in one -column, the other can remain in place with the top-ranked content. +To learn more you can visit: -An influx of new content will be ranked below existing quality content, but also -immediately acessible to users to rank via infinite scrolling through the -columns. This helps ensure that new content is crowd moderated. - -### Rating claims directly - -Some tools allow users to explicitly rate claims' truthfulness. This approach -allows users to engage in expressive voting, where they vote for something -because they already believe it rather than because they have found a justified -reason for believing it. - -Howdju instead asks users to vote on the Justifications of Propositions. While -no system that scores a value based on user input is immune to manipulation, -this design encourages users both to focus on why they believe something rather -than what they already believe, forces them to expend the effort to add (or at -least find) a justification if they want to support a Proposition, and it helps -users who want to argue against the proposition to understand what the best -arguments are of those who believe in the Proposition. - -## Visibility - -Howdju shows the creator for most entities. Therefore most content users create -on Howdju is attributable to them. Votes are generally not attributable to their -creators. The exceptions to this are: - -- When there is just one vote on an entity, Howdju currently does not obfuscate - the vote count and so it could be inferred to the creator of the content. -- Howdju is exploring Fact Checks which use a User's vote on a MediaExcerpt - locator to determine inclusion in the Fact Check. This approach implicitly - exposes the users vote on the locator to other users. +- [The features page](/design/features) to see how Howdju's specific features + serve these use-cases. +- [The comparison page](/design/comparisons) to understand how Howdju compares to + other platforms. diff --git a/howdju-docs/pages/design/_meta.json b/howdju-docs/pages/design/_meta.json new file mode 100644 index 00000000..7b40abdb --- /dev/null +++ b/howdju-docs/pages/design/_meta.json @@ -0,0 +1,5 @@ +{ + "features": "", + "comparisons": "", + "epistemic-mode-hypothesis": "" +} diff --git a/howdju-docs/pages/design/comparisons.md b/howdju-docs/pages/design/comparisons.md new file mode 100644 index 00000000..0da4ac56 --- /dev/null +++ b/howdju-docs/pages/design/comparisons.md @@ -0,0 +1,178 @@ +# Comparisons with other platforms + +This page compares and contrasts Howdju with other platforms. + +## Comparison to well-known platforms + +The following sections compare Howdju to well known platforms that provide a +crowdsourced fact checking role even though that may not be their explicity +goal. + +### Wikipedia + +Howdju is like Wikipedia in that it focuses on facts and evidence. Howdju is +more like reddit or Stackoverflow in terms of the process it uses to accept and +present facts and evidence. + +Wikipedia pages have a single representation at any time that is the result of a +highly moderated consensus. Some pages are even locked, preventing ordinary +users from making any contributions. + +Howdju users do not require consensus to create content or to present it. +instead consensus on Howdju contributes to the relative ranking of content. +Users can create a new Proposition at any time, can add their own justifications +to other's Proposoitions, can add Appearances to other's Propositions, etc. +Users can share views of their own content and other users can contribute to +that content directly. + +Compare that with Wikipedia where, although you can share a link to a previous +version of a page you wrote, if your contribution was reverted by a moderator, +no one can contribute on top of your content since it will contain the same +content that the moderator originally reverted, and they will revert it again. + +### Reddit + +Howdju is inspired by Reddit's threading model, but Howdju does not accept free +form text, links, and media. Howdju content is focused on claims and evidence, +and so has a more restrictive data model. Howdju also splits threads into two +sides: one for Pro justifications and one for Con justifications. + +Reddit's distributed totalitarian moderation model was initially highly +successful, but has been deteriorating in recent years. Subreddit moderators now +ban users who express even mildly contrarian views, creating information silos / +"filter bubbles". + +### Twitter + +Similar to Reddit, Twitter accepts free form text, link, and media and has no +domain primitives for claim or evidence. + +Twitter's Community Notes (formerly Birdwatch) provide a crowdsourced fact +checking layer on top of Twitter's content. Community notes have two major +drawbacks: + +1. Only a single Community Note can appear on a Tweet. + + This limitation prevents alternative or complementary Notes from appearing on + the same Tweet. This limitation means that a single Community Note must try + to encompass all of the most important feedback on a Tweet, which is + especially challenging since Notes have the same length limitations as Tweets + (at least for non-premium subscribers.) + +2. It is not possible to respond to a Community Note. + + This limitation means that if a Community Note is approved, no important + rebuttal or contradicting context can be added to note. This also means that + there is limited opportunity to incrementally improve a Community Note + through feedback. + +### Quora + +Quora questions and answers are closer to Howdju's Propositions and +Justifications than Wikipedia pages: they allow multiple concurrent alternative +responses to a question. But the Q&A data model is inferior to Propositions and +Justifications for consolidating similar claims. Quora has no special domain +model for evidence or for factchecking sources. + +### Stackoverflow + +Stackoverflow has a simple structured domain model and very strong documentation +and community norms around acceptable content. Its gamification contributes to +healthy participation with minimal detraction, and its privilege-based +moderation and elected moderators are effective. Its meta community provides a +mostly productive way for users to communicate about content and moderation. + +Stackoverflow relies upon aggressive manual moderation to remove duplicate +content and does not intentionally tolerate similar questions that differ based +on subtle nuanced wording differences. + +Stackoverflow (and the more generic Stackexchange technology) has no features +geared directly to facts and evidence. There is a Stackexchange dedicated to +critiquing claims +([skeptic.stackexchange.com](https://skeptics.stackexchange.com)), but it has +very strict rules for its answers, forbidding answers that synthesize sources or +perform novel mathematical calculations. E.g. see [this +answer](https://skeptics.meta.stackexchange.com/a/2925/47976) and [this +answer](https://skeptics.meta.stackexchange.com/a/2930/47976). + +The problem with forbidding these types of answers is that sometimes those +answers are what people are thinking or alluding to in their communications +without coming out and specifying them. Since people frequently form beliefs +based on 'common sense' and 'mental mathematical estimation', the skeptics +stackexchange does its community a disservice by forbidding these types of +answers. + +The problem, however, may not be the community's, but the tool's: Stackexchange +only allows two levels of threading, and the second level is inferior to the +first: Questions, Answers, and Comments. This limitation means that an answer +based on invalid assumptions or reasoning is only open to critique through the +comments, which are not sorted by vote and offer a poorer UX compared to +Answers. + +Howdju's assumption is that it is better for people to share their reasoning +explicitly, even if it is invalid, because then it is amenable to critique. +Howdju's recursive domain model (Propositions are the targets of Justifications, +which contain Propositions, which can be the targets of more Justifications, +etc.) allows critique of such content. + +### Lobste.rs + +While perhaps not as well known as HackerNews, I admire Lobste.rs transparent +moderation history and its invite structure. + +## Comparisons to similar projects + +The following sections compare Howdju to other crowdsourced argument mapping or +fact checking projects. + +### Kialo + +- Cannot reuse claims +- Limited evidence handling + +### Two dimensional maps + +Examples: + +- ponder.wiki +- debatemap.app + +Two dimensional maps are useful for providing users quick visual context for a +larger argument. They work best for closed participant argument mapping because +the branching factor is relatively low and the relevance of the content to each +participant is high. + +One powerful feature of a two-dimensional map is that it uses two-dimensional +space to provide context to a user as they navigate the graph of entities. +Howdju may explore adding a two-dimensional map in the future, but currently uses +a [ContextTrail](/design/features#contexttrail) to provide context during deep +navigation. + +An open participation platform must handle an influx of new inexperienced users +who may duplicate content or create low quality content. One mandatory response +to this is education of community norms and moderation. But moderation doesn't +scale well, and it takes time for users to internalize community norms. + +Howdju's two column approach provides a natural experience to exploring the +arguments for and against a claim. As users explore lower ranked items in one +column, they are organically exposed to additional content from alternative +viewpoints. + +An influx of new content will be ranked below existing quality content, but also +immediately acessible to users to rank via infinite scrolling through the +columns. This helps ensure that new content is crowd moderated. + +### Rating claims directly + +Some tools allow users to explicitly rate claims' truthfulness. This approach +allows users to engage in expressive voting, where they vote for something +because they already believe it rather than because they have found a justified +reason for believing it. + +Howdju instead asks users to vote on the Justifications of Propositions. While +no system that scores a value based on user input is immune to manipulation, +this design encourages users both to focus on why they believe something rather +than what they already believe, forces them to expend the effort to add (or at +least find) a justification if they want to support a Proposition, and it helps +users who want to argue against the proposition to understand what the best +arguments are of those who believe in the Proposition. diff --git a/howdju-docs/pages/design/epistemic-mode-hypothesis.md b/howdju-docs/pages/design/epistemic-mode-hypothesis.md new file mode 100644 index 00000000..6aaeb9dc --- /dev/null +++ b/howdju-docs/pages/design/epistemic-mode-hypothesis.md @@ -0,0 +1,19 @@ +# Epistemic modes hypothesis + +Howdju hypothesizes that people engage with information in one of two ways: + +1. Constructively: they trust a source and will incorporate its claims into + their beliefs. +2. Critically: they distrust a source and will hypothesize arguments against its + claims. + +This table summarizes this hypothesis: + +| Source Judgment | Epistemic Mode | Argumentative Activity | Howdju Action | +| --------------- | -------------- | ---------------------- | --------------------------- | +| Credible | Constructive | Evidence | Justify a proposition | +| Uncredible | Critical | Fact check | Paraphrase to a proposition | + +See [this section comparing MediaExcerpt-based justifications to +Appearances](/concepts/justifications#media-excerpt-based-justifications-vs-appearances) +for a practical outcome of this hypothesis. diff --git a/howdju-docs/pages/design/features.mdx b/howdju-docs/pages/design/features.mdx new file mode 100644 index 00000000..858d3df1 --- /dev/null +++ b/howdju-docs/pages/design/features.mdx @@ -0,0 +1,122 @@ +# Howdju's Features + +import { Feature } from "../../components/Feature.mdx"; + +This page gives an overview of Howdju's features. + +## Pages + +### Justifications page + +The justifications page is a single place to see the reasons for and against +a particular thing being true. + +The justification page has a single focused entity, which is the subject of truth. +Under the focused entity are two columns: on the left are justifications +supporting the truth of the focused entity and on the right are justifications +against. + +The focused entity has an optional [ContextTrail](#contexttrail) showing how The +user navigated to the page. + +#### Sorting + +Justifications are currently sorted using a global sum of the votes for and +against. + +### Recent activity page + +The recent activity page shows all entities ordered by descending creation time. + +In the future I'd like to combine recent activity into a single feed, consolidating +entities that subsume each other (i.e. only show a single appearance and not the Appearance, +Proposition, and MediaExcerpt separately.) + +### Main search page + +Supported search types: + +- Full-text: if you enter regular text, the search will be over full-text of all supported entities. +- URL: will search MediaExcerpts for those associated with the URL. +- domain: will search MediaExcerpts for those associated with a URL ending with the domain. + +### Explore page + +A quick way to see all tags and URL domains used anywhere in Howdju. + +### Persorg page + +- See all of a [Persorg](/concepts/persorgs)'s statements +- Track speaker reputation/credibility + +## Components + +### ContextTrail + +The ContextTrail shows the entities visited to arrive at the currently focused +entity. Links that users share include the ContextTrail. + +The ContextTrail helps users to keep track of their navigation. Contrast this +feature with [two-dimensional maps](/design/comparisons#two-dimensional-maps) +which achieve this context using a two-dimensional space. + +#### ContextTrail history + +The ContextTrailHistory shows the user's recent ContextTrails +to help them move between deep contexts. It might operate like a stack (push/pop/switch) + +### Tags + +Tags provide a way to relate content by themes that are not immediately obvious +from their content. Users can discover tags by searching or by finding them +attached to content they are already viewing. Clicking on the tag shows the +user other related content. + +## Behaviors + +### Notifications + +Notifications alert users about interesting events on +Howdju. + +### Text fragment link support + +MediaExcerpts having quotations will construct text fragment links from the quotation +and URL. Clicking on these links in supported browsers scrolls directly to the +quotation on the page. + +### Preferred phrasing + +These two features will contribute to both charitable discourse and incremental +refinement: + +- [Preferred-phrasing + CounterJustifiations](/concepts/justifications#preferred-phrasing-counterjustification) +- Preferred-phrasing Proposition Relation + +### Evidence nudges + +Evidence Distance is a metric quantifying both the number and +distance from a Proposition to justifications based on MediaExcerpts. In the +future the metric may include the quality of the evidence. + +The Vetting Metric quantifies how many people who disagree with +an entity have viewed it. It is a proxy to understand whether the absence of +contradictory content is indicative that contradictory content does not exist. + +# Clients + +- Browser extension +- Mobile app + +## Visibility + +Howdju shows the creator for most entities. Therefore most content users create +on Howdju is attributable to them. Votes are generally not attributable to their +creators. The exceptions to this are: + +- When there is just one vote on an entity, Howdju currently does not obfuscate + the vote count and so it could be inferred to the creator of the content. +- Howdju is exploring Fact Checks which use a User's vote on a MediaExcerpt + locator to determine inclusion in the Fact Check. This approach implicitly + exposes the users vote on the locator to other users.