Wikidata:WikiProject Informatics/FLOSS
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 on | P144 | Item | based on: the work(s) or inputs used as the basis for subject item; for fictional analog use P1074 | RStudio server Professional Edition <based on> RStudio | derivative 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:
- the proprietary software is published by a third party because it is based on a software licensed under a permissive free software license (Q1437937)
- the proprietary software is published by the copyright owners of the base software because it is licensed under a copyleft (Q133475) license
developer
[edit]Title | ID | Data type | Description | Examples | Inverse |
---|---|---|---|---|---|
developer | P178 | Item | video game developer and software developer: organization or person that developed the item | Loomio <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 ranking | P1352 | Quantity | ranking: ranking of the developer when comparing the number of commits over the past six months | Hunspell <developer> Red Hat <ranking> 1 | - |
number of participants
[edit]Title | ID | Data type | Description | Examples | Inverse |
---|---|---|---|---|---|
developer with qualifier number of participants | P1132 | Quantity | number of participants: the number of developers actively contributing to the software | Loomio <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 <[email protected]> 2 136 Robert Guthrie <[email protected]> 3 117 Hannah Salmon <[email protected]> ...
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 <[email protected]> 2 7 FLOSS Contributor <[email protected]>
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 time | P582 | Point in time | end time: the software ceased to be developed | udev <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 of | P361 | Item | part: the software ceased to be developed because it has become part of another software | udev <end time> 2012 <part of> systemd | has part(s) |
facet of
[edit]Title | ID | Data type | Description | Examples | Inverse |
---|---|---|---|---|---|
facet of | P1269 | Item | aspect: topic of which this item is an aspect, item that offers a broader perspective on the same topic | deb <facet of> dpkg | - |
follows/followed by
[edit]Title | ID | Data type | Description | Examples | Inverse |
---|---|---|---|---|---|
follows | P155 | Item | follows: the software is the immediate successor of an older, deprecated, software | opkg <follows> ipkg | followed by |
followed by | P156 | Item | followed by: the software is deprecated by its immediate successor | ipkg <followed by> opkg | follows |
inception/discontinued date
[edit]Title | ID | Data type | Description | Examples | Inverse |
---|---|---|---|---|---|
inception | P571 | Point in time | date of establishment, founding and date of the first award: publication date of first stable release of the software | Phabricator <inception> 2010 | - |
discontinued date | P2669 | Point in time | end-of-life product model: date of the announcement that the software is discontinued | Phabricator <discontinued date> 1 June 2021 | - |
instance of
[edit]Title | ID | Data type | Description | Examples | Inverse |
---|---|---|---|---|---|
instance of | P31 | Item | instance 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 of | P31 | Item | instance 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 of | P31 | Item | instance 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 of | P31 | Item | instance 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 license | P275 | Item | copyright license: license under which this copyrighted work is released | Inkscape <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 time | P580 | Point in time | start time: time an entity begins to exist or a statement starts being valid | VLC media player <copyright license> GNU General Public License, version 2.0 <start time> 2001 | - |
copyright license with qualifier end time | P582 | Point in time | end time: moment when an entity ceases to exist or a statement stops being valid | VLC 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 |
---|---|---|---|---|---|
movement | P135 | Item | cultural 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 URL | P1324 | URL | repository and source code: public source code repository | Loomio <source code repository URL> https://github.com/loomio/loomio | - |
source code repository URL with qualifier version control system | P8423 | Item | version control system: version control system used by a content repository | Loomio <source code repository URL> https://github.com/loomio/loomio <version control system> Git | - |
source code repository URL with qualifier web interface software | P10627 | Item | web user interface: software that generates the web interface for the source code repository | Loomio <source code repository URL> https://github.com/loomio/loomio <web interface software> GitHub | - |
source code repository URL with qualifier download URL | P4945 | URL | download: URL which can be used to download a work | Mozilla 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 ID | P554 | String | username: username[:password] required to access the repository | TkRev <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://[email protected]/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 TkRev (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 URL | P1401 | URL | bug tracking system: web page where bugs, issues, and feature requests for a particular software program can be listed or reported | MyPaint <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 URL | P2078 | URL | user 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 public | P2360 | Item | target 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 URL | P9904 | URL | free/libre open source software development policy: URL for the free/libre open source development policy or guideline of an entity | Association 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 URL | P9771 | URL | free/libre open source software usage policy: URL for free/libre open source use policy or guideline of an entity | OpenStreetMap 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 ID | P1972 | External identifier | identifier for free software at OpenHub.net | Firefox <Open Hub ID> firefox | - |
GitHub username | P2037 | External identifier | username of this project, person or organization on GitHub | Michael Niedermayer <GitHub username> michaelni | - |
SourceForge project | P2209 | External identifier | identifier for an official SourceForge repository ("project") for a software product | FileZilla <SourceForge project> filezilla | - |
Free Software Directory entry | P2537 | External identifier | link to the FSD page on a given software or license | Cheese <Free Software Directory entry> Cheese | - |
DistroWatch ID | P3112 | External identifier | identifier for an operating system at DistroWatch.com | Debian <DistroWatch ID> debian | - |
Google Play Store app ID | P3418 | External identifier | package name of an app registered on Google Play | VLC media player <Google Play Store app ID> org.videolan.vlc | - |
Debian stable package | P3442 | External identifier | deb: name of the official Debian stable package | GIMP <Debian stable package> gimp | - |
Arch Linux package | P3454 | External identifier | Arch Linux: name of the official Arch Linux package | GIMP <Arch Linux package> gimp | - |
Fedora package | P3463 | External identifier | name of the official Fedora package | GIMP <Fedora package> gimp | - |
Ubuntu package | P3473 | External identifier | name of the official Ubuntu package | GIMP <Ubuntu package> gimp | - |
Gentoo package | P3499 | External identifier | name of the official Gentoo package of this application | GIMP <Gentoo package> media-gfx/gimp | - |
F-Droid package | P3597 | External identifier | Android package in the F-Droid official repository | Wikipedia <F-Droid package> org.wikipedia | - |
Framalibre ID | P4107 | External identifier | unique identifier in the Framalibre free software directory | LibreOffice Writer <Framalibre ID> libreoffice-writer | - |
AUR package | P4162 | External identifier | official name of the package on the Arch User Repository | DavMail <AUR package> davmail | - |
snap package | P4435 | External identifier | Snapcraft-based Linux software install | GIMP <snap package> gimp | - |
Flathub ID | P4655 | External identifier | ID of an application on Flathub, the Flatpak repository | GNOME Builder <Flathub ID> org.gnome.Builder | - |
crates.io ID | P4763 | External identifier | identifier on crates.io, the Rust package manager (used by cargo) | Cargo <crates.io ID> cargo | - |
Pro-Linux.de DBApp ID | P6665 | External identifier | identifier for an app in the Pro-Linux.de database | Audacity <Pro-Linux.de DBApp ID> 1538 | - |
Guix Variable Name | P6765 | External identifier | identifier for a package record in the GNU Guix system | 0 A.D. <Guix Variable Name> 0ad | - |
Repology project name | P6931 | External identifier | package name and identifier in Repology | 0 A.D. <Repology project name> 0ad | - |
FreeBSD port | P7427 | External identifier | name of the official FreeBSD port of this application | GIMP <FreeBSD port> graphics/gimp-app | - |
openSUSE package | P7788 | External identifier | name of the official openSUSE package | Krita <openSUSE package> krita | - |
NetBSD package ID | P7966 | External identifier | name of the package available in the NetBSD Packages Collection | GNU Emacs <NetBSD package ID> editors/emacs | - |
OpenBSD port | P7967 | External identifier | name of the package available in the OpenBSD Ports Collection | GNU Emacs <OpenBSD port> editors/emacs | - |
SILL software ID | P8209 | External identifier | identifier for a libre software in the Socle interministériel de logiciels libres website | 7-Zip <SILL software ID> 1 | - |
Homebrew formula name | P8443 | External identifier | identifier of a package (formula) in the Homebrew package manager | Git <Homebrew formula name> git | - |
Alpine Linux package | P9045 | External identifier | Alpine Linux: name of the official Alpine Linux package | GIMP <Alpine Linux package> gimp | - |
Parabola package | P9065 | External identifier | Parabola GNU/Linux-libre: name of the official Parabola package | uboot4extlinux-am335x_bone <Parabola package> uboot4extlinux-am335x_bone | - |
OSDN project | P9602 | External identifier | identifier for an official OSDN repository ("project") for a software product | TortoiseSVN <OSDN project> tortoisesvn | - |
Mageia package | P12030 | External identifier | Mageia: identifier of the package in the Mageia database | Pioneers <Mageia package> pioneers | - |
SlackBuilds package | P12077 | External identifier | SlackBuilds.org: identifier for software package in the SlackBuilds database | lighttpd <SlackBuilds package> network/lighttpd | - |
GNU Savannah project ID | P12115 | External identifier | identifier of a project in the GNU Savannah database | GNU 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") .}
}
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") .}
}
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)
- 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)
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)
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
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
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
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)
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)
Show cases
[edit]Events
[edit]- Paris, August 21, 2016 16h00 Atelier de formation à Wikidata
- Paris, June 10, 2017 10:00 Hackathon cartographie des logiciels libres
Participants
[edit]Ping using {{Ping project|Informatics/FLOSS}}
The participants listed below can be notified using the following template in discussions:{{Ping project|Informatics}}