CompareWare

Table of Contents

Problem: Searching for a new tool and comparing leads to scrambling through

Solution: Wiki where tools/software (maybe even hardware or anything else) can be entered and given attributes (like in OSM) which can then be compared.

1. Description

CompareWare is an Open-Data-Project inspired by OpenStreetMap and Wikipedia as well as frustration with existing ways of finding the right tools in the vastly interconnected world we inhabit, where considerable effort is duplicated and inside knowledge only shared among peers rather than globally. It extends Wikidata entries with often subjective free-form key-value properties with de-facto standards as in OpenStreetMap, but for IT tools rather than locations.

The main distinguisher is its ability to compare any type of tool on any property, making separate comparisons often created as distinguisher by software-authors obsolete. It also enables users to create and share lists, reviews and opinions in a separate space.

Reddit Post

I am kind of frustrated by proprietary sites like AlternativeTo, incomprehensible Wikipedia grids and personal reviews and comparisons. I would like to build an effective open-source crowdsourced tool for objective (and maybe a little subjective), extensive and categoric comparison of Software - which could probably be extended to just about anything else, too.

I was considering to build it based on Wikidata, as it already has some basedata on most things, with an editing concept similar to OpenStreetMap - where custom tagging concepts can be implemented by anyone and then standardized de facto, next to already established tags. Could this be realized purely within Wikidata, basically only an alternatively purposed frontend for it that includes editing possibilities, or are the detailed entries unfitting for its database and may be potentially rejected, so I should have an own database for the tool to build atop Wikidata?

The idea is that many people regularly compare tools, and if these comparisons are published in a structured fashion, a lot of human time can be saved while people find alternatives they never would have considered.

2. Implementation

CompareWare is primarily for comparing software. Sites like gsmarena already allow elaborate comparison of hardware specs.

I imagine the basic interface like a glorified spreadsheet:

On the left side you can add properties, on the top you have a row of items to compare. You can search for new items to compare with autocompletion via https://www.wikidata.org/wiki/Wikidata:Data_access#Search. If the item does not exist, redirect to https://www.wikidata.org/w/index.php?title=Special:NewItem&label=NAME to create it first on wikidata. Then use https://www.wikidata.org/wiki/Wikidata:REST_API to fetch basic information.

Adding properties also autocompletes from wikidata. All fields are editable, and changes go directly to Wikidata, so if somebody wants to make edits they need to be logged in to Wikidata. Once we venture into more subjective properties, a nostr identity needs to be linked (which can be autogenerated as well, see https://nsec.app) and such edits will be posted on a local relay similar to how task edits are posted in mostr. Ideally a database is only present as cache.

3. Structure

Database (postgres?) licensed with ODBL

type
software (circle), service (octagon), specification (diamond), hardware (square) -> ontology
wikidata
obtain license, author, url, name, version
slug
short, unique, stable, human-readable identifier
description
short text about the program
license
free/proprietary…
author
company/creator/developer

considerations:

  • no generic “tags” field
  • features sublist

Categories

  • to know what to compare by e.g. productivity, task manager, IDE
  • problem: tools maybe don’t fit in neatly -> generate “similar to”

Relations [examples]

  • part of [Nextcloud and Zulip are components of Stackspin]
  • integrates with (potentially replace by creating APIs as specs) [Zulip integrates with everything at https://chat.zulip.org/integrations/]
  • implements (specs, with version info or “partially”) [Nextcloud Contacts implements CalDAV]
  • extends [Nextcloud Maps extends Nextcloud]
  • forks [Nextcloud is a fork of OwnCloud, Forgejo forked Gitea which forked Gogs]

4. Extensions

stack
share software stacks (frontend/middleware/backend/infra)
rig
share builds/part collections
diff
compare software/hardware

5. NLNet Abstract

Navigating the vast growing software landscape is challenging, especially if you want to consider factors beyond basic features, such as licensing & financing model, development sustainability, data portability and domain-specific power-user features.

CompareWare serves as an open database, collecting chiefly objective facts about anything that might be compared - primarily software, but it could also displace the plethora of ad-based proprietary hardware spec pages and serve as a platform for anything that people feed into it. In this sense it is similar to OpenStreetMap, allowing anyone to add arbitrary key-value tags and develop de facto-standards.

Then we develop interface and an infrastructure that makes adding and maintaining the data easy, while keeping it open for everybody. Comparisons may start with a simple grid view of selected software with a few defaults by categories, soon employing colors and offering assistance in the selection by creating a personalized ranking from user-defined criteria.

Comparison

In the absence of CompareWare, a disjointed bunch of pages gather related software, the most prominent being https://alternativeto.net. But it has only very basic tags and no in-depth feature comparison. For what we know, for this you resort to domain-specific sites or even custom-made spreadsheets, which are hardly ever reusable because the software landscape is so dynamic and one software might be compared within multiple categories, leading to excessive redundant work with current tools.

Plenty of sites have sprung up to make people more aware of open-source alternatives, but again these are splintered and provide no details:

Tech-savvy people also resort to so-called “awesome-lists” (usually centralized on Github) listing open-source projects in a loose structure without any details. In the end you usually have to browse through all candidates to make an informed decision and often create your own spreadsheet comparison, a significant and often unnecessary time investment.

Challenges

The main challenge to solve is finding a proper communal data store. As great as projects like OSM and Wikipedia are, their technological backbone is rather centralized, leading to the creation of spin-offs for tangential projects, splintering the community.

Can we find a way to allow a diversity of opinions and instances while assembling a comprehensive centrally accessible collection with federating protocols like ActivityPub or nostr? Or is a Blockchain-like approach appropriate?

Furthermore, a federated platform like this could push the Web of Trust, especially when building on nostr: By trusting friends through signing, following or new mechanisms, their recommendations and evaluations can automatically be preferred - replicating how humans handle such comparisons already in practice. This solves the moderation problem in the long-term, as popularity of this project may attract attention by companies looking to improve the standing of their project unfairly.

Making these mechanisms accessible to non-techies is the ultimate goal - what use is free technology if it is only discoverable to those already acquainted with it? Users need to be able to assign trust to their friends as easily as they can follow them on social media. And with an application like CompareWare, they will immediately benefit themselves.

Ecosystem and Promotion

While building on top of top of the nostr protocol seems most promising right now, unique identification and basic uncontroversial data such as dates and release information may be incorprated from Wikidata as an agreed-upon basis. Through word-of-mouth and personal use, this database can quickly exceed any isolated tool and benefit from network effects without being hampered by it - it is already useful with very few users, there is no tangible switching cost as no proper services like this exist.

The initial solution will be self-deployed on servers available to the project members. For future scalability founding of a non-profit to appropriately manage the hosting is in consideration, though the decentral approach might not make this necessary.

6. Similar Tools

Author: Janek

Created: 2024-12-19 Thu 10:16