Wikidata:WikiProject Informatics/FLOSS

From Wikidata
Jump to navigation Jump to search

WikiProject Software/Free Software (Q10783254)

Properties[edit]

The generic software properties sometime follow conventions that are different when they are about FLOSS.

based on[edit]

Title ID Data type Description Examples Inverse
based onP144Itembased on: the work(s) used as the basis for subject itemRStudio server Professional Edition <based on> RStudioderivative work

When a proprietary software (Q218616) such as RStudio server Professional Edition (Q25936207) is based on (P144) a free and open-source software (Q506883) such as RStudio (Q4798119) it either means that either:

developer[edit]

Title ID Data type Description Examples Inverse
developerP178Itemvideo game developer and software developer: organization or person that developed the itemLoomio <developer> FLOSS contributor-

The developer (P178) is an individual or an organization contributing modifications to the code base (there can be more than one developer). If a developer is no longer active, the end time (Q24575125) must be set. There must be at least one reference, preferably to a commit in the source code repository. The generic developer FLOSS contributor (Q25340898) is intended to group all individuals that are not otherwise affiliated to an organization.

ranking[edit]

Title ID Data type Description Examples Inverse
developer with qualifier rankingP1352Quantityranking: ranking of the developer when comparing the number of commits over the past six monthsHunspell <developer> Red Hat
<ranking> 1
-

number of participants[edit]

Title ID Data type Description Examples Inverse
developer with qualifier number of participantsP1132Quantitynumber of participants: the number of developers actively contributing to the softwareLoomio <developer> Loomio Cooperative Limited
<number of participants> 7
-

A developer is active if they contributed in the past six months. A software will evolve within six months, unless it is no longer maintained.

The source code repository URL (P1324) maintains a precise census of the active developers on any given Free Software (except for the rare cases when there is no version control system). Obtaining an inventory of the individual committers, in the case of a Git (Q186055) repository, can be done with the following oneliner:

$ git log --no-merges --pretty='%aN <%aE>' --since '6 months ago' | sort | uniq -c | sort -rn | nl
     1	    373 James Kiesel <james@loomio.org>
     2	    136 Robert Guthrie <rob@guthr.ie>
     3	    117 Hannah Salmon <hr.salmon@gmail.com>
...

Some Free Software projects carefully maintain the affiliation of their committers and verifying the number of participants for each organization can be done with the following onliner (or something equivalent depending on the version control system):

$ git log --no-merges --pretty='%aN <%aE>' --since '6 months ago' | sort | uniq | git -c mailmap.file=.organizationmap check-mailmap --stdin | sort | uniq -c | sort -rn | nl
     1	      7 Loomio Cooperative Limited <contact@loomio.org>
     2	      7 FLOSS Contributor <contact@floss.cc>

If a developer is an organization, the number of participants (P1132) qualifier must be set to the number of employees contributing modifications to the code base (i.e. not counting employees who have not contributed any change but who may have worked on marketing or sales).

There must be a reference URL (P854) to the source code repository URL (P1324) commit hash from which the number of participants can be verified.

When the developer is an individual, the number of participants (P1132) must not be set.

end time[edit]

Title ID Data type Description Examples Inverse
end timeP582Point in timeend time: the software ceased to be developedudev <end time> 2012-

When a Free Software development activity slows down, even if it has not seen any change in years, there always is the possibility that it is revived at a later time and there must not be an end time (P582) statement.

part of[edit]

Title ID Data type Description Examples Inverse
end time with qualifier part ofP361Itempart: the software ceased to be developed because it has become part of another softwareudev <end time> 2012
<part of> systemd
has part(s)

facet of[edit]

Title ID Data type Description Examples Inverse
facet ofP1269Itemaspect: topic of which this item is an aspect, item that offers a broader perspective on the same topicdeb <facet of> dpkg-

follows/followed by[edit]

Title ID Data type Description Examples Inverse
followsP155Itemfollows: the software is the immediate successor of an older, deprecated, softwareopkg <follows> ipkgfollowed by
followed byP156Itemfollowed by: the software is deprecated by its immediate successoripkg <followed by> opkgfollows

inception/discontinued date[edit]

Title ID Data type Description Examples Inverse
inceptionP571Point in timedate of establishment: publication date of first stable release of the softwarePhabricator <inception> 2010-
discontinued dateP2669Point in timeend-of-life product: date of the announcement that the software is discontinuedPhabricator <discontinued date> 1 June 2021-

instance of[edit]

Title ID Data type Description Examples Inverse
instance ofP31Iteminstance of: that class of which this subject is a particular example and member; different from P279 (subclass of); for example: K2 is an instance of mountain; volcano is a subclass of mountain (and an instance of volcanic landform)Loomio <instance of> free and open-source software-
instance ofP31Iteminstance of: that class of which this subject is a particular example and member; different from P279 (subclass of); for example: K2 is an instance of mountain; volcano is a subclass of mountain (and an instance of volcanic landform)Loomio <instance of> free software-
instance ofP31Iteminstance of: that class of which this subject is a particular example and member; different from P279 (subclass of); for example: K2 is an instance of mountain; volcano is a subclass of mountain (and an instance of volcanic landform)Loomio <instance of> open-source software-
instance ofP31Iteminstance of: that class of which this subject is a particular example and member; different from P279 (subclass of); for example: K2 is an instance of mountain; volcano is a subclass of mountain (and an instance of volcanic landform)Loomio <instance of> public domain-

Every software that is an instance of either free and open-source software (Q506883), free software (Q341), open-source software (Q1130645) or public domain (Q19652) is in the scope of the FLOSS project. Since free and open-source software (Q506883) is a subclass of (P279) free software (Q341) and open-source software (Q1130645), it is redundant for a software to be both an instance of (P31) free and open-source software (Q506883) and free software (Q341) or open-source software (Q1130645).

license[edit]

Title ID Data type Description Examples Inverse
copyright licenseP275Itemlicense: license under which this copyrighted work is releasedInkscape <copyright license> GNU General Public License, version 2.0-

The copyright license (P275) should not be set to GNU General Public License (Q7603) because GNU General Public License, version 1.0 (Q10513452), GNU General Public License, version 2.0 (Q10513450) or GNU General Public License, version 3.0 (Q10513445) is more specific. However, an operating system (Q9135) that is a subclass of a GNU variant (Q1475825) will have a GNU General Public License (Q7603) license with no version specified because it may vary depending on which software it includes.

The copyright license (P275) should not be set to BSD licenses (Q191307) because it is a license scheme, use 1-clause BSD License (Q19292556), 2-clause BSD License (Q18517294), 3-clause BSD License (Q18491847) or 4-clause BSD License (Q21503790) instead. See https://w.wiki/32$q for items that need fixing.

The copyright license (P275) should not be set to GNU Lesser General Public License (Q192897) because it is a license scheme, use GNU Library General Public License, version 2.0 (Q23035974), GNU Lesser General Public License, version 2.1 (Q18534390) or GNU Lesser General Public License, version 3.0 (Q18534393) instead. See https://w.wiki/32$r for items that need fixing.

The copyright license (P275) should not be set to Mozilla Public License (Q308915) because it is a license scheme, use Mozilla Public License, version 1.0 (Q26737738), Mozilla Public License, version 1.1 (Q26737735) or Mozilla Public License, version 2.0 (Q26737734) instead. See https://w.wiki/332w for items that need fixing.

This property must not have any qualifier. In particular the software version identifier (P348) qualifier should be removed when it is redundant with the version information embedded in the GPLv2 or GPLv3 item.

The reference should be the URL of the file from the source code repository URL (P1324) which contains the text of the license.

start time / end time[edit]

Title ID Data type Description Examples Inverse
copyright license with qualifier start timeP580Point in timestart time: time an entity begins to exist or a statement starts being validVLC media player <copyright license> GNU General Public License, version 2.0
<start time> 2001
-
copyright license with qualifier end timeP582Point in timeend time: moment when an entity ceases to exist or a statement stops being validVLC media player <copyright license> GNU General Public License, version 2.0
<end time> 21 December 2011
-

In the absence of start time (P580) and end time (P582) qualifiers, the copyright license (P275) is assumed to cover the lifetime of the work. If the licensing terms of the software change, the period during which a particular license is valid must be set with the start time (P580) and end time (P582) qualifiers. The latest license should have a preferred rank, and only a start time (P580) qualifier. See VLC media player (Q171477) for instance.

movement[edit]

Title ID Data type Description Examples Inverse
movementP135Itemcultural movement: the software project supports a movement. For instance when a software belongs to the GNU Project (Q7598), it implicitly supports the free software movement (Q1076638)GNU social <movement> free software movement-

A software may also implicitly belong to a movement (either well known or de-facto such as privacy movement (Q25961579)). For instance The Amnesic Incognito Live System (Q2801412) belongs to the privacy movement (Q25961579) not only because its official website (P856) is focused on privacy: it also is mentioned as such in cryptoparty.in.

source code repository[edit]

Title ID Data type Description Examples Inverse
source code repository URLP1324URLrepository and source code: public source code repositoryLoomio <source code repository URL> https://github.com/loomio/loomio-
source code repository URL with qualifier version control systemP8423Itemversion control system: version control system used by a content repositoryLoomio <source code repository URL> https://github.com/loomio/loomio
<version control system> Git
-
source code repository URL with qualifier web interface softwareP10627Itemweb user interface: software that generates the web interface for the source code repositoryLoomio <source code repository URL> https://github.com/loomio/loomio
<web interface software> GitHub
-
source code repository URL with qualifier download URLP4945URLdownload: URL which can be used to download a workMozilla Application Suite <source code repository URL> no value
<download URL> https://archive.mozilla.org/pub/vcs-archive/cvs-main.tjz
-
source code repository URL with qualifier website username or IDP554Stringusername: username[:password] required to access the repositoryTkCVS <source code repository URL> http://tksvn.tigris.org/svn/tksvn/trunk
<website username or ID> guest:guest
-

The source code repository URL (P1324) should be the URL of the source code repository that can be read by a version control system. The version control system (P8423) qualifier identifies the version control system that accepts the URL (e.g. Git (Q186055), Apache Subversion (Q46794), Mercurial (Q476543)), or is no value if the URL is not accepted by a version control system (e.g. if the URL is only intended to be used in a web browser).

When available, a URL that does not require authentication should be used. If a URL requires authentication, it is not verifiable and should be avoided, unless it is the only URL available. For instance https://secure.phabricator.com/diffusion/P/phabricator.git should be used instead of ssh://secure@secure.phabricator.com/diffusion/P/phabricator.git. When a URL requires authentication and the user and password are publicly available, they should be set as the website username or ID (P554) qualifier as user:password or user if no password is necessary. For instance TkCVS (Q3530050) can be checked out with svn checkout http://tksvn.tigris.org/svn/tksvn/trunk tksvn --username guest --password guest and the website username or ID (P554) is set to guest:guest.

If the URL provides a human-readable web interface to browse the content of the source code repository, the web interface software (P10627) qualifier identifies the web interface that it provides (e.g. GitHub (Q364), GitLab (Q16639197), cgit (Q28974765), Gitweb (Q97460957), ViewVC (Q927548), Apache Allura (Q16242762)), or is no value otherwise.

If the URL that is used with the version control system does not provide a human-readable web interface, but a human-readable web interface for the repository is available at a different URL, a separate source code repository URL (P1324) statement may be entered for each URL. The version control system (P8423) qualifier would be no value for a URL that is not accepted by a version control system, and the web interface software (P10627) qualifier would be no value for a URL that does not provide a human-readable web interface.

Any kind of version control is eligible, even if managing software is not the primary purpose. For instance Search Autodescription (Q21281236) has a source code repository URL (P1324) set to https://en.wikipedia.org/wiki/MediaWiki:Wdsearch-autodesc.js which is a MediaWiki (Q83) page associated with a version history. The web interface software (P10627) to access it is MediaWiki (Q83).

When there is no public version control repository for the software but the source for each version is available as a separate download (e.g. as a tar.gz file, zip file, etc.), the download URL (P4945) qualifier of the corresponding software version identifier (P348) statement is set to the URL of the file. If there exists a downloadable file with a copy of a decommissioned source code repository, its URL may be set as the download URL (P4945) qualifier of a source code repository URL (P1324) statement with no value as its repository URL; see Mozilla Application Suite (Q538588) for an example.

Although there is an authoritative source code repository most of the time, there may exist long lived forks that evolve in parallel and cherry pick commits from one another, for instance libavcodec (Q217647). In such cases more than one source code repository should be added.

When a software has more than one source code repository, they should all be listed. When all the source code repositories are listed on a web page, that page can also be used. However, if the web page also lists unrelated source code repositories, it should not be used because it is not verifiable. For instance Ceph (Q4035967) has such a page in https://github.com/ceph/, which shows the main repository https://github.com/ceph/ceph but also dozens of others which do not contain Ceph source code.

When there are multiple source code repositories, one of them should have the preferred rank. Ideally the repository with the preferred rank has a web interface as well as a machine readable interface (for instance https://notabug.org/vimuser/libreboot.git can be browsed by a human or git clone) and is the primary source from which facts about the software can be verified (license, authors, etc.). The software for which the the preferred rank is missing should be looked at from time to time.

This property should be used by the sofware infobox.

issue tracker[edit]

Title ID Data type Description Examples Inverse
issue tracker URLP1401URLbug tracking system: web page where bugs, issues, and feature requests for a particular software program can be listed or reportedMyPaint <issue tracker URL> https://github.com/mypaint/mypaint/issues-

The issue tracker URL (P1401) should be the URL of the bug tracking system.

user manual[edit]

Title ID Data type Description Examples Inverse
user manual URLP2078URLuser guide: link to the user manual of the object (product, program)darktable <user manual URL> https://www.darktable.org/usermanual/index.html.php-

how to contribute[edit]

Title ID Data type Description Examples Inverse
user manual URL with qualifier intended publicP2360Itemtarget audience: The manual a FLOSS developer should read to learn how to contribute.Cloud Foundry <user manual URL> https://www.cloudfoundry.org/community/contribute/
<intended public> FLOSS contributor
-

Related Properties[edit]

Organizations[edit]

This properties are meant to be used on items describing an organization rather than a software. They convey an information on how the organization relates to FLOSS.

FLOSS development policy URL[edit]

Title ID Data type Description Examples Inverse
free/libre open source software development policy URLP9904URLfree/libre open source software development policy: URL for the free/libre open source development policy or guideline of an entityAssociation for Progressive Communications <free/libre open source software development policy URL> https://www.apc.org/en/apc-freelibre-and-open-source-software-policy-apc-floss-policy-

open source software usage policy URL[edit]

Title ID Data type Description Examples Inverse
free/libre open source software usage policy URLP9771URLfree/libre open source software usage policy: URL for free/libre open source use policy or guideline of an entityOpenStreetMap Foundation <free/libre open source software usage policy URL> https://wiki.osmfoundation.org/wiki/FOSS_Policy-

Identifiers[edit]

Title ID Data type Description Examples Inverse
Open Hub IDP1972External identifieridentifier for free software at OpenHub.netMozilla Firefox <Open Hub ID> firefox-
GitHub usernameP2037External identifierusername of this project, person or organization on GitHubMichael Niedermayer <GitHub username> michaelni-
SourceForge projectP2209External identifieridentifier for an official SourceForge repository ("project") for a software productFileZilla <SourceForge project> filezilla-
Free Software Directory entryP2537External identifierlink to the FSD page on a given software or licenseCheese <Free Software Directory entry> Cheese-
DistroWatch IDP3112External identifieridentifier for an operating system at DistroWatch.comDebian <DistroWatch ID> debian-
Google Play Store app IDP3418External identifierpackage name of an app registered on Google PlayVLC media player <Google Play Store app ID> org.videolan.vlc-
Debian stable packageP3442External identifierdeb: name of the official Debian stable packageGIMP <Debian stable package> gimp-
Arch Linux packageP3454External identifierArch Linux: name of the official Arch Linux packageGIMP <Arch Linux package> gimp-
Fedora packageP3463External identifiername of the official Fedora packageGIMP <Fedora package> gimp-
Ubuntu packageP3473External identifiername of the official Ubuntu packageGIMP <Ubuntu package> gimp-
Gentoo packageP3499External identifiername of the official Gentoo package of this applicationGIMP <Gentoo package> media-gfx/gimp-
F-Droid packageP3597External identifierAndroid package in the F-Droid official repositoryWikipedia <F-Droid package> org.wikipedia-
Framalibre IDP4107External identifierunique identifier in the Framalibre free software directoryLibreOffice Writer <Framalibre ID> libreoffice-writer-
AUR packageP4162External identifierofficial name of the package on the Arch User RepositoryDavMail <AUR package> davmail-
snap packageP4435External identifierSnapcraft-based Linux software installGIMP <snap package> gimp-
Flathub IDP4655External identifierID of an application on Flathub, the Flatpak repositoryGNOME Builder <Flathub ID> org.gnome.Builder-
crates.io IDP4763External identifieridentifier on crates.io, the Rust package manager (used by cargo)Cargo <crates.io ID> cargo-
Pro-Linux.de DBApp IDP6665External identifieridentifier for an app in the Pro-Linux.de databaseAudacity <Pro-Linux.de DBApp ID> 1538-
Guix Variable NameP6765External identifieridentifier for a package record in the GNU Guix system0 A.D. <Guix Variable Name> 0ad-
Repology project nameP6931External identifierpackage name and identifier in Repology0 A.D. <Repology project name> 0ad-
FreeBSD portP7427External identifiername of the official FreeBSD port of this applicationGIMP <FreeBSD port> graphics/gimp-app-
openSUSE packageP7788External identifiername of the official openSUSE packageKrita <openSUSE package> krita-
NetBSD package IDP7966External identifiername of the package available in the NetBSD Packages CollectionGNU Emacs <NetBSD package ID> editors/emacs-
OpenBSD portP7967External identifiername of the package available in the OpenBSD Ports CollectionGNU Emacs <OpenBSD port> editors/emacs-
SILL software IDP8209External identifieridentifier for a libre software in the Socle interministériel de logiciels libres website7-Zip <SILL software ID> 1-
Homebrew formula nameP8443External identifieridentifier of a package (formula) in the Homebrew package managerGit <Homebrew formula name> git-
Alpine Linux packageP9045External identifierAlpine Linux: name of the official Alpine Linux packageGIMP <Alpine Linux package> gimp-
Parabola packageP9065External identifierParabola GNU/Linux-libre: name of the official Parabola packageuboot4extlinux-am335x_bone <Parabola package> uboot4extlinux-am335x_bone-
OSDN projectP9602External identifieridentifier for an official OSDN repository ("project") for a software productTortoiseSVN <OSDN project> tortoisesvn-
Mageia packageP12030External identifierMageia: identifier of the package in the Mageia databasePioneers <Mageia package> pioneers-
SlackBuilds packageP12077External identifierSlackBuilds.org: identifier for software package in the SlackBuilds databaselighttpd <SlackBuilds package> network/lighttpd-
‎GNU Savannah project IDP12115External identifieridentifier of a project in the GNU Savannah databaseGNU Emacs <‎GNU Savannah project ID> emacs-

Property proposals[edit]

FLOSSbot[edit]

FLOSSbot is a command line tool dedicated to this project.

Queries[edit]

Introduction[edit]

Performances[edit]

The query will timeout after 30 seconds and this limit forces the query to use various tricks to resolve as quickly as possible.

  • Prefer Union to Values. The following:
  {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q506883.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q341.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q1130645.
  }

is equivalent to

  ?floss p:P31/ps:P31/wdt:P279* ?kind .
  VALUES ?kind { wd:Q506883 wd:Q341 wd:Q1130645 }

It is tempting to use the Values because it is less redundant. Unfortunately it takes longer and will timeout.

Working on a specific set of items[edit]

When the focus is narrower than all FLOSS, it is possible to restrict the results by adding the list of items of interest in the query, right after the Union group, like so:

   VALUES ?floss { wd:Q191782 wd:Q798540 wd:Q48524 wd:Q1102277 etc }

List all FLOSS[edit]

List all Item with instance of (P31) being anything which is a subclass of (P279) of free and open-source software (Q506883), free software (Q341) or open-source software (Q1130645). Although wdt:P31 looks equivalent to p:P31/ps:P31, it only finds the truthy statements and will therefore miss items for which there is an instance of (P31) with a preferred rank that is not about license (Q79719) (see for instance Blender (Q173136), in which case it will never be derived from the desired license items.

SELECT DISTINCT ?floss ?label WHERE {
  {
   # is a FOSS
   ?floss p:P31/ps:P31/wdt:P279* wd:Q506883.
  } Union {
   # is a free software
   ?floss p:P31/ps:P31/wdt:P279* wd:Q341.
  } Union {
   # is a opensource software
   ?floss p:P31/ps:P31/wdt:P279* wd:Q1130645.
  } Union {
   # is a software and is a public domain work
   ?floss p:P31/ps:P31/wdt:P279* wd:Q19652.
   ?floss p:P31/ps:P31/wdt:P279* wd:Q7397.
  } Union {
    # is a software and license is a free license
    ?floss p:P31/ps:P31/wdt:P279* wd:Q7397.
    ?floss wdt:P275 ?licens.  
    ?licens p:P31/ps:P31/(wdt:P31|wdt:P279)* ?kind.
    VALUES ?kind { wd:Q196294 wd:Q1156659 }.
  }
  OPTIONAL { ?floss rdfs:label ?label filter (lang(?label) = "en") .}
}
Try it!


Missing a desirable information[edit]

No license[edit]

SELECT DISTINCT ?floss ?label WHERE {
  {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q506883.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q341.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q1130645.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q19652.
   ?floss p:P31/ps:P31/wdt:P279* wd:Q7397.
  } Union {
    ?floss p:P31/ps:P31/wdt:P279* wd:Q7397.
    ?floss wdt:P275 ?licens.  
    ?licens p:P31/ps:P31/(wdt:P31|wdt:P279)* ?kind.
    VALUES ?kind { wd:Q196294 wd:Q1156659 }.
  }
  FILTER NOT EXISTS { ?floss p:P275 ?license }
  OPTIONAL { ?floss rdfs:label ?label filter (lang(?label) = "en") .}
 }
Try it!

No software quality assurance[edit]

SELECT DISTINCT ?modified ?floss ?label WHERE {
  {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q506883.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q341.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q1130645.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q19652.
   ?floss p:P31/ps:P31/wdt:P279* wd:Q7397.
  } Union {
    ?floss p:P31/ps:P31/wdt:P279* wd:Q7397.
    ?floss wdt:P275 ?licens.  
    ?licens p:P31/ps:P31/(wdt:P31|wdt:P279)* ?kind.
    VALUES ?kind { wd:Q196294 wd:Q1156659 }.
  }
  FILTER NOT EXISTS { ?floss p:P2992 ?qa }
  ?floss schema:dateModified ?modified
  OPTIONAL { ?floss rdfs:label ?label filter (lang(?label) = "en") .}
 } ORDER BY DESC(?modified)
Try it!

No source code repository URL (P1324)[edit]

  • Click on the Try it link below
  • Click on the Run link
  • Click on the QXXXX link for a software
  • Look for the official web site property
  • Go to the official web site and look for the link to the source code repository and copy it
  • Add a property
  • Type source code and it will autocomplete to source code repository URL (P1324)
    • Paste the URL to the source code repository web interface
    • If there is no source code repository (see ipkg (Q195850) which has been obsoleted), select no value
SELECT DISTINCT ?modified ?floss ?label WHERE {
  {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q506883.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q341.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q1130645.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q19652.
   ?floss p:P31/ps:P31/wdt:P279* wd:Q7397.
  } Union {
    ?floss p:P31/ps:P31/wdt:P279* wd:Q7397.
    ?floss wdt:P275 ?licens.  
    ?licens p:P31/ps:P31/(wdt:P31|wdt:P279)* ?kind.
    VALUES ?kind { wd:Q196294 wd:Q1156659 }.
  }
  FILTER NOT EXISTS { ?floss wdt:P31+ wd:Q9135 } # exclude GNU Linux operating systems
  FILTER NOT EXISTS { ?floss wdt:P31+ wd:Q10876391 } # exclude Wikipedia editions
  FILTER NOT EXISTS { ?floss wdt:P31+ wd:Q6805426 } # exclude MediaWiki extensions
  FILTER NOT EXISTS { ?floss p:P1324 ?repository }
  ?floss schema:dateModified ?modified
  OPTIONAL { ?floss rdfs:label ?label filter (lang(?label) = "en") .}
 } ORDER BY DESC(?modified)
Try it!

Missing preferred source code repository URL (P1324)[edit]

Software for which multiple source code repositories are listed but none of them is preferred.

SELECT ?item ?itemLabel (COUNT(?value) AS ?count) (GROUP_CONCAT(?value) AS ?values)
WHERE
{
  ?item p:P1324 [ ps:P1324 ?value; wikibase:rank wikibase:NormalRank ].
  MINUS { ?item p:P1324/wikibase:rank wikibase:PreferredRank. }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
GROUP BY ?item ?itemLabel
HAVING(?count > 1)
ORDER BY DESC(?count)
Try it!

GNU GPL with no version[edit]

The copyright license (P275) is set to be GNU General Public License (Q7603) instead of GNU General Public License, version 2.0 (Q10513450) or GNU General Public License, version 3.0 (Q10513445), which is more specific. See license for more information.

SELECT DISTINCT ?floss ?label WHERE {
  {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q506883.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q341.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q1130645.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q19652.
   ?floss p:P31/ps:P31/wdt:P279* wd:Q7397.
  } Union {
    ?floss p:P31/ps:P31/wdt:P279* wd:Q7397.
    ?floss wdt:P275 ?licens.  
    ?licens p:P31/ps:P31/(wdt:P31|wdt:P279)* ?kind.
    VALUES ?kind { wd:Q196294 wd:Q1156659 }.
  }
  FILTER NOT EXISTS { ?floss wdt:P31+ wd:Q9135 } # exclude GNU Linux operating systems
  ?floss wdt:P275 wd:Q7603 .
  OPTIONAL { ?floss rdfs:label ?label filter (lang(?label) = "en") .}
 } LIMIT 100
Try it!

Note: The operating system (Q9135) operating systems is a subclass of a GNU variant (Q1475825) which is under an GNU General Public License (Q7603) with no version specified because it may vary depending on which software it includes. This is why operating systems that are instance of operating system (Q9135) are not listed.

no developer[edit]

SELECT DISTINCT ?floss ?label WHERE {
  {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q506883.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q341.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q1130645.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q19652.
   ?floss p:P31/ps:P31/wdt:P279* wd:Q7397.
  } Union {
    ?floss p:P31/ps:P31/wdt:P279* wd:Q7397.
    ?floss wdt:P275 ?licens.  
    ?licens p:P31/ps:P31/(wdt:P31|wdt:P279)* ?kind.
    VALUES ?kind { wd:Q196294 wd:Q1156659 }.
  }
  FILTER NOT EXISTS { ?floss wdt:P178 ?developer }
  OPTIONAL { ?floss rdfs:label ?label filter (lang(?label) = "en") .}
 } LIMIT 100
Try it!

Statistics[edit]

Licenses[edit]

SELECT DISTINCT ?value ?valueLabel (COUNT(DISTINCT(?item)) as ?count) WHERE {
  {
    ?item p:P275 ?license.
    ?license ps:P275 ?value.
    ?value wdt:P31?/wdt:P279* wd:Q1156659.
  } Union {
    ?item p:P275 ?license.
    ?license ps:P275 ?value.
    ?value wdt:P31?/wdt:P279* wd:Q3943414.
  }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
} GROUP BY ?value ?valueLabel ORDER BY ?valueLabel
Try it!

Languages[edit]

SELECT ?label (COUNT (DISTINCT ?floss) as ?count) WHERE {
  {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q506883.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q341.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q1130645.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q19652.
   ?floss p:P31/ps:P31/wdt:P279* wd:Q7397.
  }
  ?floss wdt:P277 ?lang.
  OPTIONAL { ?lang rdfs:label ?label filter (lang(?label) = "en") .}
 } group by ?label order by desc(?count)
Try it!

OS[edit]

SELECT ?os ?label (COUNT (DISTINCT ?floss) as ?count) WHERE {
  {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q506883.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q341.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q1130645.
  } Union {
   ?floss p:P31/ps:P31/wdt:P279* wd:Q19652.
   ?floss p:P31/ps:P31/wdt:P279* wd:Q7397.
  }
  ?floss wdt:P306 ?os.
  OPTIONAL { ?os rdfs:label ?label filter (lang(?label) = "en") .}
 } group by ?os ?label order by desc(?count)
Try it!

Show cases[edit]

Events[edit]

Participants[edit]

Ping using {{Ping project|Informatics/FLOSS}}

[+] Add yourself to the list

The participants listed below can be notified using the following template in discussions:
{{Ping project|Informatics}}