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: organisation 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 (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 (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

facet of[edit]

Title ID Data type Description Examples Inverse
facet ofP1269Itemfacet of: 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

instance of[edit]

Title ID Data type Description Examples Inverse
instance ofP31Iteminstance of: that class of which this subject is a particular example and memberLoomio <instance of> free and open-source software-
instance ofP31Iteminstance of: that class of which this subject is a particular example and memberLoomio <instance of> free software-
instance ofP31Iteminstance of: that class of which this subject is a particular example and memberLoomio <instance of> open-source software-
instance ofP31Iteminstance of: that class of which this subject is a particular example and memberLoomio <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 (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 item 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: time an item 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 TAILS - 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 repositoryP1324URLrepository and source code: public source code repositoryLoomio <source code repository> https://github.com/loomio/loomio-
source code repository with qualifier version control systemP8423Itemversion control system: version control system used by a content repositoryLoomio <source code repository> https://github.com/loomio/loomio
<version control system> Git
-
source code repository with qualifier protocolP2700Itemcommunications protocol: communication protocol to use to access a dataset or serviceLoomio <source code repository> https://github.com/loomio/loomio
<protocol> Git
-
source code repository with qualifier streaming media URLP963URLstreaming media: URL where the subject's media stream existsMozilla Application Suite <source code repository> no value
<streaming media URL> https://archive.mozilla.org/pub/vcs-archive/cvs-main.tjz
-
source code repository with qualifier website usernameP554Stringusername: username[:password] required to access the repositoryTkCVS <source code repository> http://tksvn.tigris.org/svn/tksvn/trunk
<website username> guest:guest
-

The source code repository (P1324) should be the URL of the source code repository that can be read by a version control system matching the version control system (P8423) qualifier (i.e. Git (Q186055), Subversion (Q46794), Mercurial (Q476543), etc.).

When two URLs exist for the same repository, the one which does not require authentication should be used. If a URL requires authentication, it is not verifiable and should be avoided, except if 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 (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 (P554) is set to guest:guest.

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 (P1324) set to https://en.wikipedia.org/wiki/MediaWiki:Wdsearch-autodesc.js which is a MediaWiki (Q83) page associated with a version history and the protocol (P2700) to access it is Hypertext Transfer Protocol (Q8777).

When a human readable web interface is available to browse the content of the source code repository, the protocol of the URL should be set to Hypertext Transfer Protocol (Q8777). There can be more than one way to access the same repository, depending on the protocol. For instance, a git repository could be clonable at the git://git.foo.com URL and human browsable at the http://gitweb.foo.com URL.

When there is no version control repository for the software, it must be set to no value. If the source code is available in a tarball, it should be set as the streaming media URL (P963) qualifier of the corresponding software version identifier (P348) statement. If there exists a downloadable file with a copy of a decommissioned source code repository, it should be set as the streaming media URL (P963) qualifier, 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.

bug tracking system[edit]

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

The bug tracking system (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
-

FLOSS development policy URL[edit]

Title ID Data type Description Examples Inverse
free/libre open source software development policy URLP9904URLfree and open-source software: URL for the free/libre open source development policy or guideline of an entitySwedish Social Insurance Agency <free/libre open source software development policy URL> https://github.com/Forsakringskassan/riktlinje-oppenkallkod/blob/master/riktlinje.md-

open source software usage policy URL[edit]

Title ID Data type Description Examples Inverse
free/libre open source software usage policy URLP9771URLfree and open-source software: 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
GitHub usernameP2037External identifierGitHub: username of this project, person or organization on GitHubMichael Niedermayer <GitHub username> michaelni-
Open Hub IDP1972External identifierOpen Hub: identifier for free software at OpenHub.netFirefox <Open Hub ID> firefox-
SourceForge projectP2209External identifierSourceForge: identifier for an official SourceForge repository ("project") for a software productFileZilla <SourceForge project> filezilla-
Free Software Directory entryP2537External identifierFree Software Directory: Link 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-
Gentoo packageP3499External identifiername of the official Gentoo package of this applicationGIMP <Gentoo package> media-gfx/gimp-
Arch Linux packageP3454External identifierArch Linux: name of the official Arch Linux packageGIMP <Arch Linux package> gimp-
AUR packageP4162External identifierArch User Repository: official name of the package on the Arch User RepositoryDavMail <AUR package> davmail-
Debian stable packageP3442External identifierdeb: name of the official Debian stable packageGIMP <Debian stable package> gimp-
Ubuntu packageP3473External identifiername of the official Ubuntu packageGIMP <Ubuntu package> gimp-
Fedora packageP3463External identifiername of the official Fedora packageGIMP <Fedora package> gimp-
F-Droid packageP3597External identifierF-Droid: Android package in the F-Droid official repositoryWikipedia <F-Droid package> org.wikipedia-
Google Play Store app IDP3418External identifierGoogle Play: package name of an app registered on Google PlayVLC media player <Google Play Store app ID> org.videolan.vlc-
Repology project nameP6931External identifierpackage name and identifier in Repology0 A.D. <Repology project name> 0ad-
Homebrew formula nameP8443External identifieridentifier of a package (formula) in the Homebrew package managerGit <Homebrew formula name> git-
crates.io IDP4763External identifiercrates.io: identifier on crates.io, the Rust package manager (used by cargo)Cargo <crates.io ID> cargo-
OSDN projectP9602External identifierOSDN: identifier for an official OSDN repository ("project") for a software productTortoiseSVN <OSDN project> tortoisesvn-
snap packageP4435External identifierSnap: Snapcraft-based Linux software installGIMP <snap package> gimp-
Guix Variable NameP6765External identifierGNU Guix: identifier for a package record in the GNU Guix system0 A.D. <Guix Variable Name> 0ad-

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 (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 (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 (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}}