# FSF License Metadata API
-The FSF is [interested in having the SPDX expose some of its metadata in the SPDX license list][1].
-The cleanest way to do that is to have the FSF provide [their annotated license list][2] in a format that is more convenient for automated tools.
-For example, [the OSI provides an API][3] which, while [currently][4] [non-canonical][5], provides convenient access to OSI license annotations.
+The FSF is [interested in having the SPDX expose some of its metadata in the SPDX license list][fsf-api].
+The cleanest way to do that is to have the FSF provide [their annotated license list][fsf-list] in a format that is more convenient for automated tools.
+For example, [the OSI provides an API][osi-api] which, while [currently][osi-api-noncanon-1] [non-canonical][osi-api-non-canon-2], provides convenient access to OSI license annotations.
This repository scrapes the FSF list and provides the scraped data in a JSON API for others to consume.
Ideally we'll hand this repository over to the FSF once they're ready to maintain it, or we'll deprecate this repository if they decide to provide a different API.
* `SPLITS`, which:
- * Unpacks some places where [the FSF's HTML page][2] uses a single identifier for multiple licenses (e.g. [using `AcademicFreeLicense` for “all versions through 3.0”][6]).
- * Repacks places where [the FSF's HTML page][2] uses two identifiers for the same license (e.g. to classify `FreeBSD` as both [GPL-compatible][7] and [FDL-compatible][8]).
+ * Unpacks some places where [the FSF's HTML page][fsf-list] uses a single identifier for multiple licenses (e.g. [using `AcademicFreeLicense` for “all versions through 3.0”][fsf-afl]).
+ * Repacks places where [the FSF's HTML page][fsf-list] uses two identifiers for the same license (e.g. to classify `FreeBSD` as both [GPL-compatible][fsf-freebsd-gpl] and [FDL-compatible][fsf-freebsd-fdl]).
* `IDENTIFIERS`, which maps FSF identifiers to other schemes.
- Ideally this would be based on [automated license-text comparison][9], but in order for that to work this API would have to expose the license text that the FSF considered for each ID.
- Currently, [the FSF's HTML page][2] links to license source, but not in a consistent enough way for me to extract the text.
+ Ideally this would be based on [automated license-text comparison][automated-matching], but in order for that to work this API would have to expose the license text that the FSF considered for each ID.
+ Currently, [the FSF's HTML page][fsf-list] links to license source, but not in a consistent enough way for me to extract the text.
Until these hacks are addressed, license IDs and the `identifiers` field should be taken with a grain of salt.
[Contributions](CONTRIBUTING.md) are welcome!
-[1]: https://lists.spdx.org/pipermail/spdx-legal/2017-October/002281.html
-[2]: https://www.gnu.org/licenses/license-list.html
-[3]: https://api.opensource.org/
-[4]: https://github.com/OpenSourceOrg/licenses/tree/f7ff223f9694ca0d5114fc82e43c74b5c5087891#is-this-authoritative
-[5]: https://github.com/OpenSourceOrg/licenses/issues/47
-[6]: https://www.gnu.org/licenses/license-list.html#AcademicFreeLicense
-[7]: https://www.gnu.org/licenses/license-list.html#FreeBSD
-[8]: https://www.gnu.org/licenses/license-list.html#FreeBSDDL
-[9]: https://github.com/spdx/license-list-XML/issues/418
+[automated-matching]: https://github.com/spdx/license-list-XML/issues/418
+[fsf-afl]: https://www.gnu.org/licenses/license-list.html#AcademicFreeLicense
+[fsf-api]: https://lists.spdx.org/pipermail/spdx-legal/2017-October/002281.html
+[fsf-freebsd-fdl]: https://www.gnu.org/licenses/license-list.html#FreeBSDDL
+[fsf-freebsd-gpl]: https://www.gnu.org/licenses/license-list.html#FreeBSD
+[fsf-list]: https://www.gnu.org/licenses/license-list.html
+[osi-api-non-canon-2]: https://github.com/OpenSourceOrg/licenses/issues/47
+[osi-api-noncanon-1]: https://github.com/OpenSourceOrg/licenses/tree/f7ff223f9694ca0d5114fc82e43c74b5c5087891#is-this-authoritative
+[osi-api]: https://api.opensource.org/