Open main menu

Wikidata:Requests for comment/how to manage software versions

An editor has requested the community to provide input on "how to manage software versions" via the Requests for comment (RFC) process. This is the discussion page regarding the issue.

If you have an opinion regarding this issue, feel free to comment below. Thank you!

Tobias1984
Emw
Zuphilip
Danrok
Bene*
콩가루
TomT0m
DrSauron
Ruud Koot
Andreasburmeister
Ilya
Toto256
MichaelSchoenitzer
Metamorforme42
Pixeldomain
User:YULdigitalpreservation
Dipsode87
Pintoch
Daniel Mietchen
Jsamwrites
Tinker Bell
FabC
Jasc PL
putnik
Dhx1
Tris T7
Peb Aryan
lore.mazza004
Rc1959
Premeditated
Pictogram voting comment.svg Notified participants of WikiProject Informatics --Micru (talk) 21:46, 24 August 2014 (UTC) Tobias1984 (talk) TomT0m (talk) Genewiki123 (talk) Emw (talk) 03:09, 9 September 2014 (UTC) —Ruud 16:15, 9 December 2014 (UTC) Emitraka (talk) 14:32, 14 October 2015 (UTC) Bovlb (talk) 19:10, 21 October 2015 (UTC) Peter F. Patel-Schneider (talk) 22:21, 23 October 2015 (UTC) ArthurPSmith (talk) 15:51, 5 November 2015 (UTC) --Daniel Mietchen (talk) 20:53, 3 January 2016 (UTC) --Harmonia Amanda (talk) 22:00, 27 February 2016 (UTC) --Lechatpito (talk) --Andrawaag (talk) 14:42, 13 April 2016 (UTC) --ChristianKl (talk) 16:22, 6 July 2016 (UTC) --Cmungall Cmungall (talk) 13:49, 8 July 2016 (UTC) Cord Wiljes (talk) 16:53, 28 September 2016 (UTC) DavRosen (talk) 23:07, 15 February 2017 (UTC) Vladimir Alexiev (talk) 07:01, 24 February 2017 (UTC) Pintoch (talk) 22:42, 5 March 2017 (UTC) Fuzheado (talk) 14:43, 15 May 2017 (UTC) YULdigitalpreservation (talk) 14:37, 14 June 2017 (UTC) PKM (talk) 00:24, 17 June 2017 (UTC) Fractaler (talk) 14:42, 17 June 2017 (UTC) Andreasmperu Diana de la Iglesia Jsamwrites (talk) Finn Årup Nielsen (fnielsen) (talk) 12:39, 24 August 2017 (UTC) Alessandro Piscopo (talk) 17:02, 4 September 2017 (UTC) Ptolusque (.-- .. -.- ..) 01:47, 14 September 2017 (UTC) Gamaliel (talk) --Horcrux92 (talk) 11:19, 12 November 2017 (UTC) MartinPoulter (talk) Bamyers99 (talk) 16:47, 18 March 2018 (UTC) Malore (talk) Wurstbruch (talk) 22:59, 4 April 2018 (UTC) Dcflyer (talk) 07:50, 9 September 2018 (UTC) Ettorerizza (talk) 11:00, 26 September 2018 (UTC) Ninokeys (talk) 00:05, 5 October 2018 (UTC) Buccalon (talk) 14:08, 10 October 2018 (UTC) Jneubert (talk) 06:02, 21 October 2018 (UTC) Yair rand (talk) 00:16, 24 October 2018 (UTC) Tris T7 (talk) ElanHR (talk) 22:05, 26 December 2018 (UTC) linuxo Gq86 Gabrielaltay Liamjamesperritt (talk) 08:44, 21 June 2019 (UTC) ZI Jony Ivanhercaz (Talk) 11:07, 15 July 2019 (UTC)

Pictogram voting comment.svg Notified participants of WikiProject Ontology
@Ghouston, Dhx1:

Contents

IssueEdit

Currently, it's impossible to distinguish between major versions, minor versions, builds, etc. This is due to the fact that:

As a consequence, often software version identifier (P348) lists major version, minor versions, releases... all mixed together. Needless to say that I've never seen something like version type (P548) → minor version as a qualifier (it doesn't even exists an item like "minor version").

Proposal: treat software as we treat booksEdit

First, create an item for every version (major, minor...) of every software.

In order to organize the hierarchy of items about books we have a common model (FRBR: Work → Expression/Manifestation → Exemplar) and so we need only two propertes to link Work with Expression/Manifestation (has edition (P747) and its inverse edition or translation of (P629)) and Expression/Manifestation with Exemplar (exemplar of (P1574)). With software versions, such a common model doesn't exists (as far as I know). To represent all the various version numbering schemes (for example, MAJOR.MINOR.PATCH or MAJOR.MINOR.REVISION.BUILDNUMBER) adopted by softwares, I think we have two options:

  • create a property (and its inverse property) for every version type: we'll have "major version", "major version of", "minor version", "minor version of", "build", "build of", "release", "release of"... properties;
  • create only a "software version" property (different from software version identifier (P348) because with an item datatype) and its inverse "software version of" AND consistently use object has role (P3831)version type (P548) qualifier.

Here are examples of the two options:

Option 1Edit

Create a "software version" property and use object has role (P3831)version type (P548) as qualifier in order to indicate the version type. Optionally, create a "software version scheme" to verify that the version scheme is respected.

Microsoft Windows (Q1406)Edit

software version
  Windows 10   edit
version type major version
▼ 0 reference
+ add reference
+ add value

Windows 10 (Q18168774)Edit

software version
  Windows 10 Version 1511   edit
version type minor version
▼ 0 reference
+ add reference
+ add value

Windows 10 Version 1511 (Q22686609)Edit

software version
  Windows 10.0.10586.3   edit
version type build
▼ 0 reference
+ add reference
+ add value

Option 2Edit

create "major version", "minor version", "build"... properties (all subproperties of "software version").

Microsoft Windows (Q1406)Edit

major version
  Windows 10   edit
▼ 0 reference
+ add reference
+ add value

Windows 10 (Q18168774)Edit

minor version
  Windows 10 Version 1511   edit
▼ 0 reference
+ add reference
+ add value

Windows 10 Version 1511 (Q22686609)Edit

build
  Windows 10.0.10586.3   edit
▼ 0 reference
+ add reference
+ add value

Tobias1984
Emw
Zuphilip
Danrok
Bene*
콩가루
TomT0m
DrSauron
Ruud Koot
Andreasburmeister
Ilya
Toto256
MichaelSchoenitzer
Metamorforme42
Pixeldomain
User:YULdigitalpreservation
Dipsode87
Pintoch
Daniel Mietchen
Jsamwrites
Tinker Bell
FabC
Jasc PL
putnik
Dhx1
Tris T7
Peb Aryan
lore.mazza004
Rc1959
Premeditated
  Notified participants of WikiProject Informatics

CommentsEdit

A third option would be to only record version data in the reverse direction - see Wikidata:Property proposal/software version of, and then I don't even think qualifiers are needed, can't we just indicate the version type via instance of (P31)?? ArthurPSmith (talk) 13:33, 22 May 2018 (UTC)
Can you expand a bit on why it's important to point to items rather than string values? Is it because we can model richer data? And does that mean that we'd be agreeing to eventually have one item for each version of each software product? Not that I object to that, just trying to understand where you're coming from. --Waldir (talk) 14:13, 22 May 2018 (UTC)
If you'll notice in the examples above, the proposal is to attach minor versions to the items for major versions, and so down the hierarchy, rather than having all major, minor, and other versions listed on the main item for the software. That requires items for the versions, not strings. I wouldn't expect we would have one item for each version of every software product, just as we don't have one item for each human or star or whatever. If there's no need for any additional information, the present use of software version identifier (P348) is probably fine. But it does allow attaching additional information (such as release date, download size and URL's, etc.) to the version in a natural way, with references, etc. ArthurPSmith (talk) 14:32, 22 May 2018 (UTC)
@Waldir:You're right, version type (P548) is better than object has role (P3831).
@ArthurPSmith:I support your proposal about recording version data only in the reverse direction but books don't do it. Do you know why? A regards the option to indicate version type via instance of (P31), it's possible but I think it's better to have a specific property.--Malore (talk) 12:13, 27 May 2018 (UTC)
I substituted all the instances of object has role (P3831) with version type (P548)--Malore (talk) 16:20, 8 June 2018 (UTC)
  •   Support migration, versions of softwares should also have their items. --117.14.250.142 05:36, 12 April 2019 (UTC)
  • I support the creation of items for versions of software. I agree that being able to model additional statements per version item is important for Wikidata. For example, different file formats are associated in different ways with versions of some software. YULdigitalpreservation (talk) 17:41, 29 May 2019 (UTC)
  •   Support Option 1. Because that will make the corresponding between the infobox and Wikidata with Lua better than option 2. It's also more tidy (if you ask me). - Premeditated (talk) 14:39, 11 July 2019 (UTC)
  • Strong   Oppose. It's unclear how you define version and revision and for what you want to create items. There are endless many different versioning schemes – the two you listed are only two of the more "conventionally" types of versioning, there are completely different schemes. Some projects use the date as version number (20190815) some use a compilation counter (3245646) or version-control-hashes (5eff689), the version-number of TeX is a number becoming closer and closer to Pi (current version is 3.14159265) Latex has currently the version "2ε Issue 29" and and and… There is simply no way to add hierarchy like major, minor, bug… without distorting the reality. Version-numbers can only be strings, all further description has to be saved qualifiers or other properties. So the only option if we want to create items for every version is to create items for literally every version and release of every software. Considering that there are projects with huge amounts of releases it's unclear to me how this should scale. JOSM (Q12877) has 15238 releases, Chromium (Q48524) has even more since they have a rolling release-model in which every modification of the software gets a version number. Furthermore all Infoboxes in all Wikipedias have to be rewritten, probably also the Lua modules have to be improved for this. All the Bots updating version-numbers have to be rewritten. So creating items for software versions is a huge project. I'm not saying that this should not be done. But I'm saying that we cannot do it today. We lack of the resources to do something like that! There are way to few people updating software versions and the bots that we have lack developers to improve them. Consider alone the software in Arch-Linux: there are ~300 outdated software-items (some outdated for quite some time!), even through I updated thousands of software versions by hand and improved github-wiki-bot to update thousands of items. We should not make us way more work, when we can't handle the current amount of work to do – especially since the benefits are very small and vague. We can already map 99% of the information with software version identifier (P348) and qualifiers like version type (P548). Let us instead start to fix the urgent problems with software versions on Wikidata:
    • The descriptions of version type (P548) are wrong (different from the English/German/French/… description) in some smaller languages
    • stable version (Q2804309) is not properly defined and differs between different languages – which is the reason why version type (P548) isn't used widely!
    • github-wiki-bot neeeds improvements
    • Wrong ranks: https://w.wiki/77J
    • and most importantly: decrease the huge back-log.
-- MichaelSchoenitzer (talk) 00:33, 15 August 2019 (UTC)