Software catalog

It is true, but originally that wasn’t even my intent. What I want to do is making wiki parsing easier. So as a start, one would only replace any code accessing the MediaWiki API and searching for templates in the results with an access to my json representation of wiki templates.

Of course it would be nice if dynamic pages could be generated directly based that json, but as you say this might create additional requirements on the server - such as filtering. Do you think this is possible without semantic knowledge specific to each application?

I’m not sure if I fully understand this. Would you expect the user to paste the template code into that validator, or would that functionality become available somehow after saving the page?

The idea here would be not to decide on one value type for each value, but to include all possible “parsings” for a given value. So in the case of a description with semicolon, you may end up with something like this:


"description" : {
"text": "offline router; good",
"list": ["offline router", "good"]
}

When using that json, the data consumer who thinks/knows that descriptions should be text will look for a “description” that has a “text”, and simply ignores the rest. This moves the knowledge about what value types are expected to the data consumer, allowing the template->json translation to remain generic and easy to extend to more templates.

There are a lot of successful examples: Google Play, AppStore.
Anyway, it is just a database. We have to think how to design structure. To design structure we need list of all use cases and requirements. I will prepare requirements of Catalogue.

We can provide three options:

  • Option to parse Templates like how it works right now. We just have to add some samples and documentation. Maybe implement Template parser in Java?

  • Option to download complete new JSON file. The difference comparing to first option is this file is easy to parse.

  • Option to download part of the new JSON file using server side filtering.

All options will be implemented one by one in the order of the listing. User will choose suitable. It is like .NET/Java approach. You can start at any point of abstraction (File->Stream->Serializer).

I prefer “after saving page”.
If wiki does not support triggers, we can add some button to regenerate JSON file.

I believe it is better to have strong typified fields. If field is of text type, consumer should use it as text. If field is of list type, consumer should treat field as list. Otherwise… it is hard to control software. What we need is template validator (to fix errors in the edit time) and JSON generator with option to generate JSON files of deprecated formats to support old consumers at least some time (in case of format changing). For example right now price field is list. OSM-JSON v1 will have price as list. However I’d like to have separated fields per currency per ApPStore. If we will change JSON structure we still will be able to generate OSM-JSON v1.

I did not find Web developer to implement my idea so I’ve implemented desktop application. Following is a link to download page:

http://sourceforge.net/projects/osm-software-catalog/

Application is still beta. It does not have all possible functionality. I will continue working on this app.

BTW, app can be used as validator for Tables::Software2 tags. It generates log file in the Data folder. There are a lot of warnings.

So are there plans to have OSM Software Catalog also as successor or replacement for the still-out-of-order TTTBot?

I would be happy to make OSM Software Catalog one of the official applications. But I think TTTBot should be fixed too. At least Linux users need it and those who do not want to run any software locally.

There is problem with price field.
0. Some apps are for free

  1. Some applications are for free but some functionality is locked. However it is still possible to use them.
  2. Other applications are for free but they have trial period.
  3. Other applications are for free but maps are not free (or there is download limit)
  4. Some apps are for free for Android but not for iPhone

I need some criterion to determine 0, 1 and 4 apps as freeware… Right now “price” field is plain text field.

v0.0.5 is ready.

  • Settings are persisted
  • New fields are added to filter.
  • Improve controls allocations to fit on small displays
  • Minor changes in the interface
  • Downgrade from .NET 4.5 to .NET 4.0 to be able to run on WinXP

v0.0.7

  • Add accessibility support
  • Add icon for Wiki button
  • Set timestamps of *.wiki files based on page last edit time.
  • Add ‘Show status bar’ command
  • Sources are available on git server (Sourceforge)

Your comments and ideas are welcome.

v0.0.9

  • Merge duplicated Software entries by App Name, Wiki Page and Timestamp
  • Persist sorting settings
  • Add more languages
  • Update icon for Home Webpage button
  • Handle more error cases
  • Handle HTML codes in the description and name parameters
  • Reorder platforms list

v0.0.8

  • Refactoring.
  • BUGFIX: wm2003 is interpreted as Desktop Windows version.

v0.1.1

  • Add keyboard shortcuts
  • Add Application Comparison dialog
  • BUGFIX: FindNearbyPOI field displayed value of FindLocation field.

v0.1.3
Add filter by price (textual)
Add context menu to Compare Applications form

v0.1.4

  • Add option to filter by several Platforms
  • Replace True/False with Yes/No
  • Change colors in the Compare Application form (make it similar to Wiki)

Dmytro Ovdiienko, thanks for the effort but software catalog should be web based (without any installation or platform dependency) and in multiple languages (otherwise it have a little over what we had). Filtering is a nice feature but it isn’t crucial compared to simple translated tables X/Y: software/feature(s).

Translated tables allow you to “filter” by one feature only. Try to find freeware Navigator application which can calculate route offline and support vector maps.

I was able to find decent table for first query part, but of of course, Wikipedians are not pedantic about vector tiles (there simply no info to filter):
https://en.wikipedia.org/wiki/Comparison_of_free_off-line_GPS_software

boolean columns (such as featureX present / absent) are easy to sort using html widgets.

“Operating system” would be indeed interesting filtering criteria - but again, you can display multiple static tables instead of database + filtering interface.

Simple reports with sane defaults are easier to use than db+filtering interface. There too many steps in filtering for our use case. You don’t want send link to a user, then ask him to enter right filters, then discuss what you see together. It should be done using single link and no actions from other party.

If you need to filter by Operating System (Android, iPhone) use following pages:

Is it possible to put link to “OSM Software Catalog” to some root Wiki page?
BTW, I did not find root page for all OSM based software…

How about https://wiki.openstreetmap.org/wiki/Software – the pages with the software tables are linked there, among others.

Thanks, Tordanik!

I believe it is good idea to add link to Software page to the menu on left side of Wiki page (below the The Map link). Variety of available programs is what differentiates OSM.

Can anybody convert standalone WinForms .NET application to Web application?