Skip to content
Eric Walker edited this page Jun 7, 2020 · 43 revisions

Following are some use cases for Digraph that are being tackled or that might eventually be addressed:

  1. Keeping track of personal bookmarks
  2. Receiving notifications about new links that have been added to a narrow topic of interest
  3. Finding reading material on an unfamiliar topic
  4. Fact-checking statements that have been made in the media
  5. Keeping track of research for an academic paper
  6. Keeping track of research for a newspaper article
  7. Keeping track of research for a legal proceeding
  8. Learning about a new topic

Use case: Keeping track of personal bookmarks

Under development

I'm someone who reads a lot of long-form journalism. I also visit sites like Hacker News and Reddit periodically throughout the day while I'm waiting on something at work, but I don't have time to do more than skim the articles at that point. I value others' recommendations more than simply searching for and finding things on Google, and I appreciate how easy it is to lose track of a recommendation. So I'd like to be able to save these links so that I can come back to them later on, perhaps in the evening, or over the weekend, or maybe months later, and finally read the article or blog post that I didn't have time to read at the time that I came across it. And I'd like a systematic way to go back through those links that I didn't have time to read and check them off as I take a closer look at them.

Because I occasionally engage in technical discussions on the Internet, I'd also like to be able to get back to things I've read in the past so that I can review them for specific details that I might not be remembering correctly. Looking through the browser bookmark history can take a long time, and even if I find something, it can be easy to lose again and may be like finding a needle in a haystack. Ideally it wouldn't be that hard to get back to things I've read in the past, and having a sense of what the topic was about and remembering one or two identifying details would be enough to quickly get back to whatever it was that I had read.

It might not be obvious right now whether a link will be of interest for some reason later on, so I don't want to have to put too much effort into evaluating whether I want to add it to the system. I'd like to be able to just plunk it in without having to think about things. But I also don't want low quality links to clutter up a topic later on when I'm looking through links in the same general area.

Use case: Receiving notifications about a narrow topic of interest

I'm a regular reader of Reddit and Hacker News, which I follow in order to keep tabs on technical subjects of interest. But I'm not interested in everything that is submitted. It would be nice to be able to receive notifications when links are submitted to relatively narrow topics of interest — remote work, postgres, Golang, social media moderation, etc.

Use case: Finding reading material on an unfamiliar topic

I'm a layman interested in learning about a niche topic I've just heard about. I can consult the Wikipedia article and the links that it points to. But I'd also like to browse through a list of newspaper and journal articles that are relevant to the topic. I'd like the list of sources to consult to be more curated than a web search and less curated than the sources that Wikipedia allows in an article, and I'd like to be able to adjust the filters that apply to what is shown to be more or less permissive, depending on how much time and energy I have and on what I'm doing.

Use case: Fact-checking statements that have been made in the media

I'm (hypothetically) analyzing each statement made by a public figure or in a newspaper article and determining whether there is support for the statement or whether there is information that contradicts the statement. I will be presenting the conclusions online. I will gather much more information than I'll want to present, but I'll want to keep everything around for later reference if needed.

I'll want a way to arrange all of the details I've gathered according to individual statements and claims that will be made in the text being analyzed:

  • Statement: so and so was present in May when the decision was made
    • Source 1 [supports]
    • Source 2 [neutral/context]
    • Source 3 [contradicts]
    • Source 4 [contradicts]

Use case: Keeping track of research for an academic paper

I'm (hypothetically) carrying out research for an article that will be published in an academic journal. In addition to all of the above, I'll need to be able to generate a bibliography with sources formatted for a specific journal reference style. Research for each such article that I carry out is a project of limited duration.

Challenge: academics often share information with one another and with the public, but there's also times that they are onto something new and don't want to be scooped.

Mitigation: make it easy to set up a personal instance or one internal to an organization?

Use case: Keeping track of research for a newspaper article

I'm (hypothetically) carrying out research for an article that will be published in a publication like the New Yorker, Vox, the Guardian or the New York Times. There are a million details that I'm going to need to keep track of, much of them online, and I'd like a way to arrange that information in the specific context of the article that is being written. Sometimes links that would not be of general interest, e.g., links to spam sites and content mills, might be relevant to what I'm writing, so even though they won't show up in general searches, I'll still be able to get back to everything I gathered and organized for the article. The article is something that will eventually be published, and so the supporting research is a project of limited duration. Over time there will be many such projects that will accumulate. (This use case is similar to the fact-checking one.)

Challenge: journalists don't want to give away their sources or get scooped, so there's an incentive to be secretive with information, and the risk of having it leak somehow will no doubt be too great to put trust in an online tool.

Mitigation: make it easy to set up a personal instance or one internal to an organization?

Use case: Keeping track of research for a legal proceeding

I'm a (hypothetical) lawyer, and I'd like to collect together research on a legal proceeding, such as a defense for an individual or organization that has been sued. I'm going to need to organize and cross reference numerous legal authorities in addition to other sources and possibly put together a chronology of events.

Challenge: client-attorney privilege and legal strategy no doubt give lawyers an incentive to be very guarded with the full set of their research, allowing them to reveal a subset at the time of their choosing. So there's an incentive to be secretive with information, and the risk of having it leak somehow will no doubt be too great to put trust in an online tool.

Mitigation: make it easy to set up a personal instance or one internal to an organization?

Use case: Learning about a new topic

Let's stretch our imaginations for a moment and think about Digraph as a crowd-sourced, manually curated search engine, maintained by tens of thousands of people, where you can drill down to a topic you don't know much about and look for articles to read to brush up on the topic. What changes would be needed to make this situation feasible?

First, let's add a notion of a "context" by which a link falls under a topic. There's an Everything context, a Relevant context and a Public context:

  • Public — links added to a topic are visible to people who are not logged in. Users who can add links to this context need to be trustworthy (we can trust that they're not just adding spam links); they need to have good sense and taste in what constitutes a notable article for a topic; and in the case of very specialized topics, they might need to have relevant expertise. So not everyone can add links to a topic in the "Public" context.
  • Relevant — links added to this context are assumed to be relevant to a topic and to not be spam. People can start out with the ability to add links in this context, and only if they abuse the system will this ability be taken away.
  • Everything — this is a catchall context in which all kinds of links which don't violate the terms of service can be added, including links that are probably irrelevant and links that are probably spam.

A user logged into the system will have the ability to select which context is active for viewing links. The selected context defaults to Public, and if the user wants to see articles that don't meet the notability threshold for a topic, they can change the context to Relevant. If they really want to see what links are out there, they can switch the context to Everything.

One possible extension here is to make Public the most selective context of the three contexts; Relevant will then show links that are also in Public as well as links that are added via the "Relevant" context. When "Everything" is selected, links in Public and "Relevant" are also shown.

The above approach raises concerns about complexity of the implementation. A simpler approach would be to give users the ability to select multiple contexts under which links are shown. They could then show links from Public, Relevant and Everything in order to see all links at the same time. This approach would have the benefit of a simpler implementation.

Suppose there are thousands of users, who vary in their level of commitment to keeping the system in a workable state and in their trustworthiness. Some people will be diligent in making sure that only links that are notable and interesting to other users are added via the Public context, while others will seek to use the visibility of that context to link to what is basically an advertisement for a product. Let's create an admin role, who can turn off the ability of a user to post in the Public context and possibly in the Relevant context, in order to manage this situation. The scope of the role might or might not be bounded to a topic of expertise along with its subtopics.

Some websites are reliably good, and other websites are reliably suspect or of low quality, so let's automatically choose the context on the basis of domain in some cases, falling back to a suitable default when there is no configuration for a website. For example, let's put New York Times articles in the "Public" context and RT articles in the "Everything" context.

Since everyone can create topics, there will be a similar challenge of people creating spam topics or gibberish topics. We might need some kind of admin ability to manage the situation. Or we might need to associate topics themselves with contexts — this topic appears under the public context, and you have to have Relevant selected to see this other topic, which is less notable. If we get to this point, we'll probably need the ability to merge topics when they're moved from one context to another; for example, someone created a public topic that already exists in the Relevant context, and an admin find herself needing to merge the new topic with the existing topic in the lower context. The implementation becomes fairly subtle at this point, and the UX tricky, so let's hold off going here as long as we can.

An extension of the general idea above is to give people the ability to create their own contexts. These contexts could be used to track time-bounded research done in connection with a project. You could create a context to track links for a "Research on Section 230 of the Communications Decency Act" project to see what links you added while you were reading up on this topic and retrieve only those links later on if you wanted to revisit this research.