Network Working Group M. Petit-Huguenin Internet-Draft Impedance Mismatch LLC Intended status: Experimental 25 July 2023 Expires: 26 January 2024 An Ontology for RFCs draft-petithuguenin-rfc-ontology-03 Abstract This document defines an ontology that describes the specifications published by the RFC Editor, together with ancillary documents. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on 26 January 2024. Copyright Notice Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Petit-Huguenin Expires 26 January 2024 [Page 1] Internet-Draft An Ontology for RFCs July 2023 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. The RFC Ontology . . . . . . . . . . . . . . . . . . . . . . 2 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 4. Security Considerations . . . . . . . . . . . . . . . . . . . 24 5. Informative References . . . . . . . . . . . . . . . . . . . 24 Appendix A. Implementation . . . . . . . . . . . . . . . . . . . 24 A.1. Examples of Queries . . . . . . . . . . . . . . . . . . . 27 A.2. Distribution . . . . . . . . . . . . . . . . . . . . . . 28 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 29 Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 30 1. Introduction This document defines an ontology that describes the specifications published by the RFC Editor, together with ancillary documents like errata and RFC series. This effort is the continuation of the RFC-Prolog database that was described in one of the position papers presented at the IAB Workshop on Analyzing IETF Data (AID) [RFC9307]. The schema in that database was simplified and reformulated as an ontology. 2. The RFC Ontology The RFC Ontology extends the Bibliographic Ontology [BIBO] and reuse elements from the Friend of a friend [FOAF] and DCMI Metadata Terms [DCTERMS] ontologies. Petit-Huguenin Expires 26 January 2024 [Page 2] Internet-Draft An Ontology for RFCs July 2023 +----------------+----------------------------------+ | Name | bcp | +----------------+----------------------------------+ | URI | ftp://shalmaneser.org/rfc#bcp | +----------------+----------------------------------+ | Type | property | +----------------+----------------------------------+ | Label | BCP | +----------------+----------------------------------+ | Comment | The BCP this RFC is part of. | +----------------+----------------------------------+ | Inverse of | http://purl.org/dc/terms/hasPart | +----------------+----------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Rfc | +----------------+----------------------------------+ | Range Includes | ftp://shalmaneser.org/rfc#Bcp | +----------------+----------------------------------+ Table 1 +----------------+-----------------------------------------+ | Name | corrects | +----------------+-----------------------------------------+ | URI | ftp://shalmaneser.org/rfc#corrects | +----------------+-----------------------------------------+ | Type | property | +----------------+-----------------------------------------+ | Label | Corrects | +----------------+-----------------------------------------+ | Comment | The RFC that this errata corrects. | +----------------+-----------------------------------------+ | Subproperty of | http://purl.org/ontology/bibo/annotates | +----------------+-----------------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Errata | +----------------+-----------------------------------------+ | Range Includes | ftp://shalmaneser.org/rfc#Rfc | +----------------+-----------------------------------------+ Table 2 Petit-Huguenin Expires 26 January 2024 [Page 3] Internet-Draft An Ontology for RFCs July 2023 +----------------+-----------------------------------------+ | Name | currentStatus | +----------------+-----------------------------------------+ | URI | ftp://shalmaneser.org/rfc#currentStatus | +----------------+-----------------------------------------+ | Type | property | +----------------+-----------------------------------------+ | Label | Current RFC status | +----------------+-----------------------------------------+ | Comment | The current status of this RFC. | +----------------+-----------------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Rfc | +----------------+-----------------------------------------+ | Range Includes | ftp://shalmaneser.org/rfc#RfcStatus | +----------------+-----------------------------------------+ Table 3 +----------------+----------------------------------------+ | Name | errataStatus | +----------------+----------------------------------------+ | URI | ftp://shalmaneser.org/rfc#errataStatus | +----------------+----------------------------------------+ | Type | property | +----------------+----------------------------------------+ | Label | Errata status | +----------------+----------------------------------------+ | Comment | The status of an errata. | +----------------+----------------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Errata | +----------------+----------------------------------------+ | Range Includes | ftp://shalmaneser.org/rfc#ErrataStatus | +----------------+----------------------------------------+ Table 4 Petit-Huguenin Expires 26 January 2024 [Page 4] Internet-Draft An Ontology for RFCs July 2023 +----------------+----------------------------------+ | Name | fyi | +----------------+----------------------------------+ | URI | ftp://shalmaneser.org/rfc#fyi | +----------------+----------------------------------+ | Type | property | +----------------+----------------------------------+ | Label | FYI | +----------------+----------------------------------+ | Comment | The FYI this RFC is part of. | +----------------+----------------------------------+ | Inverse of | http://purl.org/dc/terms/hasPart | +----------------+----------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Rfc | +----------------+----------------------------------+ | Range Includes | ftp://shalmaneser.org/rfc#Fyi | +----------------+----------------------------------+ Table 5 +-------------+---------------------------------------------------+ | Name | informativelyReferences | +-------------+---------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#informativelyReferences | +-------------+---------------------------------------------------+ | Type | property | +-------------+---------------------------------------------------+ | Label | Informatively References | +-------------+---------------------------------------------------+ | Comment | An informative reference in an RFC. | +-------------+---------------------------------------------------+ | Subproperty | http://purl.org/ontology/bibo/cites | | of | | +-------------+---------------------------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Rfc | +-------------+---------------------------------------------------+ Table 6 Petit-Huguenin Expires 26 January 2024 [Page 5] Internet-Draft An Ontology for RFCs July 2023 +----------------+-------------------------------------------------+ | Name | normativelyReferences | +----------------+-------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#normativelyReferences | +----------------+-------------------------------------------------+ | Type | property | +----------------+-------------------------------------------------+ | Label | Normatively References | +----------------+-------------------------------------------------+ | Comment | A normative reference in an RFC. | +----------------+-------------------------------------------------+ | Subproperty of | http://purl.org/ontology/bibo/cites | +----------------+-------------------------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Rfc | +----------------+-------------------------------------------------+ Table 7 +----------------+---------------------------------------+ | Name | obsoletedBy | +----------------+---------------------------------------+ | URI | ftp://shalmaneser.org/rfc#obsoletedBy | +----------------+---------------------------------------+ | Type | property | +----------------+---------------------------------------+ | Label | Obsoleted By | +----------------+---------------------------------------+ | Comment | The RFC that obsoleted this RFC. | +----------------+---------------------------------------+ | Subproperty of | http://purl.org/dc/terms/isReplacedBy | +----------------+---------------------------------------+ | Inverse of | ftp://shalmaneser.org/rfc#obsoletes | +----------------+---------------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Rfc | +----------------+---------------------------------------+ | Range Includes | ftp://shalmaneser.org/rfc#Rfc | +----------------+---------------------------------------+ Table 8 Petit-Huguenin Expires 26 January 2024 [Page 6] Internet-Draft An Ontology for RFCs July 2023 +----------------+-------------------------------------+ | Name | obsoletes | +----------------+-------------------------------------+ | URI | ftp://shalmaneser.org/rfc#obsoletes | +----------------+-------------------------------------+ | Type | property | +----------------+-------------------------------------+ | Label | Obsoletes | +----------------+-------------------------------------+ | Comment | An RFC that this RFC obsoletes. | +----------------+-------------------------------------+ | Subproperty of | http://purl.org/dc/terms/replaces | +----------------+-------------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Rfc | +----------------+-------------------------------------+ | Range Includes | ftp://shalmaneser.org/rfc#Rfc | +----------------+-------------------------------------+ Table 9 +----------+--------------------------------------------------------+ | Name | processedBy | +----------+--------------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#processedBy | +----------+--------------------------------------------------------+ | Type | property | +----------+--------------------------------------------------------+ | Label | Processed by | +----------+--------------------------------------------------------+ | Comment | The person or organization that | | | processed that errata. | +----------+--------------------------------------------------------+ | Has | ftp://shalmaneser.org/rfc#Errata | | Domain | | +----------+--------------------------------------------------------+ | Range | http://xmlns.com/foaf/0.1/Agent | | Includes | | +----------+--------------------------------------------------------+ Table 10 Petit-Huguenin Expires 26 January 2024 [Page 7] Internet-Draft An Ontology for RFCs July 2023 +------------+------------------------------------------------------+ | Name | publicationStatus | +------------+------------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#publicationStatus | +------------+------------------------------------------------------+ | Type | property | +------------+------------------------------------------------------+ | Label | RFC publication status | +------------+------------------------------------------------------+ | Comment | The status of this RFC at the time it was published. | +------------+------------------------------------------------------+ | Has | ftp://shalmaneser.org/rfc#Rfc | | Domain | | +------------+------------------------------------------------------+ | Range | ftp://shalmaneser.org/rfc#RfcStatus | | Includes | | +------------+------------------------------------------------------+ Table 11 +----------+-------------------------------------------------------+ | Name | reportedBy | +----------+-------------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#reportedBy | +----------+-------------------------------------------------------+ | Type | property | +----------+-------------------------------------------------------+ | Label | Reported by | +----------+-------------------------------------------------------+ | Comment | The person or organization that reported that errata. | +----------+-------------------------------------------------------+ | Has | ftp://shalmaneser.org/rfc#Errata | | Domain | | +----------+-------------------------------------------------------+ | Range | http://xmlns.com/foaf/0.1/Agent | | Includes | | +----------+-------------------------------------------------------+ Table 12 Petit-Huguenin Expires 26 January 2024 [Page 8] Internet-Draft An Ontology for RFCs July 2023 +----------------+----------------------------------+ | Name | std | +----------------+----------------------------------+ | URI | ftp://shalmaneser.org/rfc#std | +----------------+----------------------------------+ | Type | property | +----------------+----------------------------------+ | Label | STD | +----------------+----------------------------------+ | Comment | The STD this RFC is part of. | +----------------+----------------------------------+ | Inverse of | http://purl.org/dc/terms/hasPart | +----------------+----------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Rfc | +----------------+----------------------------------+ | Range Includes | ftp://shalmaneser.org/rfc#Std | +----------------+----------------------------------+ Table 13 +---------+------------------------------------+ | Name | stream | +---------+------------------------------------+ | URI | ftp://shalmaneser.org/rfc#stream | +---------+------------------------------------+ | Type | property | +---------+------------------------------------+ | Label | RFC stream | +---------+------------------------------------+ | Comment | The stream that approved that RFC. | +---------+------------------------------------+ Table 14 Petit-Huguenin Expires 26 January 2024 [Page 9] Internet-Draft An Ontology for RFCs July 2023 +----------------+--------------------------------------+ | Name | type | +----------------+--------------------------------------+ | URI | ftp://shalmaneser.org/rfc#type | +----------------+--------------------------------------+ | Type | property | +----------------+--------------------------------------+ | Label | Errata type | +----------------+--------------------------------------+ | Comment | The type of the errata. | +----------------+--------------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Errata | +----------------+--------------------------------------+ | Range Includes | ftp://shalmaneser.org/rfc#ErrataType | +----------------+--------------------------------------+ Table 15 +----------------+-------------------------------------+ | Name | updatedBy | +----------------+-------------------------------------+ | URI | ftp://shalmaneser.org/rfc#updatedBy | +----------------+-------------------------------------+ | Type | property | +----------------+-------------------------------------+ | Label | Updated By | +----------------+-------------------------------------+ | Comment | An RFC that this RFC updated. | +----------------+-------------------------------------+ | Inverse of | ftp://shalmaneser.org/rfc#updates | +----------------+-------------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Rfc | +----------------+-------------------------------------+ | Range Includes | ftp://shalmaneser.org/rfc#Rfc | +----------------+-------------------------------------+ Table 16 Petit-Huguenin Expires 26 January 2024 [Page 10] Internet-Draft An Ontology for RFCs July 2023 +----------------+-----------------------------------+ | Name | updates | +----------------+-----------------------------------+ | URI | ftp://shalmaneser.org/rfc#updates | +----------------+-----------------------------------+ | Type | property | +----------------+-----------------------------------+ | Label | Updates | +----------------+-----------------------------------+ | Comment | An RFC that this RFC updates. | +----------------+-----------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Rfc | +----------------+-----------------------------------+ | Range Includes | ftp://shalmaneser.org/rfc#Rfc | +----------------+-----------------------------------+ Table 17 +----------------+-----------------------------------------+ | Name | area | +----------------+-----------------------------------------+ | URI | ftp://shalmaneser.org/rfc#area | +----------------+-----------------------------------------+ | Type | datatype | +----------------+-----------------------------------------+ | Label | IETF area | +----------------+-----------------------------------------+ | Comment | The IETF area that produced that RFC. | +----------------+-----------------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Rfc | +----------------+-----------------------------------------+ | Range Includes | http://www.w3.org/2001/XMLSchema#string | +----------------+-----------------------------------------+ Table 18 Petit-Huguenin Expires 26 January 2024 [Page 11] Internet-Draft An Ontology for RFCs July 2023 +----------------+----------------------------------------------+ | Name | initials | +----------------+----------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#initials | +----------------+----------------------------------------------+ | Type | datatype | +----------------+----------------------------------------------+ | Label | Initials | +----------------+----------------------------------------------+ | Comment | The initials of an author of an RFC. | +----------------+----------------------------------------------+ | Has Domain | http://xmlns.com/foaf/0.1/Person | +----------------+----------------------------------------------+ | Range Includes | http://www.w3.org/2000/01/rdf-schema#Literal | +----------------+----------------------------------------------+ Table 19 +----------+----------------------------------------+ | Name | keyword | +----------+----------------------------------------+ | URI | ftp://shalmaneser.org/rfc#keyword | +----------+----------------------------------------+ | Type | datatype | +----------+----------------------------------------+ | Label | RFC keyword | +----------+----------------------------------------+ | Comment | One of the keywords of an RFC. See | | | https://www.ietf.org/topics/keywords/. | +----------+----------------------------------------+ | Has | ftp://shalmaneser.org/rfc#Rfc | | Domain | | +----------+----------------------------------------+ | Range | http://www.w3.org/2001/ | | Includes | XMLSchema#string | +----------+----------------------------------------+ Table 20 Petit-Huguenin Expires 26 January 2024 [Page 12] Internet-Draft An Ontology for RFCs July 2023 +----------------+---------------------------------------+ | Name | processedOn | +----------------+---------------------------------------+ | URI | ftp://shalmaneser.org/rfc#processedOn | +----------------+---------------------------------------+ | Type | datatype | +----------------+---------------------------------------+ | Label | Processed on | +----------------+---------------------------------------+ | Comment | The date this errata was processed. | +----------------+---------------------------------------+ | Subproperty of | http://purl.org/dc/terms/date | +----------------+---------------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Errata | +----------------+---------------------------------------+ Table 21 +----------------+--------------------------------------+ | Name | reportedOn | +----------------+--------------------------------------+ | URI | ftp://shalmaneser.org/rfc#reportedOn | +----------------+--------------------------------------+ | Type | datatype | +----------------+--------------------------------------+ | Label | Reported on | +----------------+--------------------------------------+ | Comment | The date this errata was reported. | +----------------+--------------------------------------+ | Subproperty of | http://purl.org/dc/terms/date | +----------------+--------------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Errata | +----------------+--------------------------------------+ Table 22 Petit-Huguenin Expires 26 January 2024 [Page 13] Internet-Draft An Ontology for RFCs July 2023 +----------------+------------------------------------------------+ | Name | wg | +----------------+------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#wg | +----------------+------------------------------------------------+ | Type | datatype | +----------------+------------------------------------------------+ | Label | IETF WG | +----------------+------------------------------------------------+ | Comment | The IETF Working Group that produced that RFC. | +----------------+------------------------------------------------+ | Has Domain | ftp://shalmaneser.org/rfc#Rfc | +----------------+------------------------------------------------+ | Range Includes | http://www.w3.org/2001/XMLSchema#string | +----------------+------------------------------------------------+ Table 23 +------------+------------------------------------------------+ | Name | Bcp | +------------+------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#Bcp | +------------+------------------------------------------------+ | Type | class | +------------+------------------------------------------------+ | Label | BCP | +------------+------------------------------------------------+ | Comment | The Best Current Pratice (BCP) series of RFCs. | +------------+------------------------------------------------+ | subClassOf | http://purl.org/ontology/bibo/Series | +------------+------------------------------------------------+ Table 24 Petit-Huguenin Expires 26 January 2024 [Page 14] Internet-Draft An Ontology for RFCs July 2023 +------------+--------------------------------------------------+ | Name | Errata | +------------+--------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#Errata | +------------+--------------------------------------------------+ | Type | class | +------------+--------------------------------------------------+ | Label | RFC errata | +------------+--------------------------------------------------+ | Comment | An errata for an RFC, published by the RFC | | | Editor at https://www.rfc-editor.org/errata.php. | +------------+--------------------------------------------------+ | subClassOf | http://purl.org/ontology/bibo/Note | +------------+--------------------------------------------------+ Table 25 +---------+----------------------------------------+ | Name | ErrataStatus | +---------+----------------------------------------+ | URI | ftp://shalmaneser.org/rfc#ErrataStatus | +---------+----------------------------------------+ | Type | class | +---------+----------------------------------------+ | Label | RFC Errata Status | +---------+----------------------------------------+ | Comment | The current status of an RFC errata. | +---------+----------------------------------------+ Table 26 +---------+-------------------------------------------------+ | Name | ErrataType | +---------+-------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#ErrataType | +---------+-------------------------------------------------+ | Type | class | +---------+-------------------------------------------------+ | Label | RFC Errata Type | +---------+-------------------------------------------------+ | Comment | The type of errata published by the RFC Editor. | +---------+-------------------------------------------------+ Table 27 Petit-Huguenin Expires 26 January 2024 [Page 15] Internet-Draft An Ontology for RFCs July 2023 +------------+------------------------------------------------+ | Name | Fyi | +------------+------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#Fyi | +------------+------------------------------------------------+ | Type | class | +------------+------------------------------------------------+ | Label | FYI | +------------+------------------------------------------------+ | Comment | The For Your Information (FYI) series of RFCs. | +------------+------------------------------------------------+ | subClassOf | http://purl.org/ontology/bibo/Series | +------------+------------------------------------------------+ Table 28 +------------+-------------------------------------------------+ | Name | Internet-Draft | +------------+-------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#Internet-Draft | +------------+-------------------------------------------------+ | Type | class | +------------+-------------------------------------------------+ | Label | Internet Draft | +------------+-------------------------------------------------+ | Comment | A working document of the IETF or other groups. | +------------+-------------------------------------------------+ | subClassOf | http://purl.org/ontology/bibo/Specification | +------------+-------------------------------------------------+ Table 29 +------------+----------------------------------------+ | Name | Rfc | +------------+----------------------------------------+ | URI | ftp://shalmaneser.org/rfc#Rfc | +------------+----------------------------------------+ | Type | class | +------------+----------------------------------------+ | Label | IETF RFC | +------------+----------------------------------------+ | Comment | A document published by the RFC Editor | | | at https://www.rfc-editor.org/. | +------------+----------------------------------------+ | subClassOf | http://purl.org/ontology/bibo/Standard | +------------+----------------------------------------+ Table 30 Petit-Huguenin Expires 26 January 2024 [Page 16] Internet-Draft An Ontology for RFCs July 2023 +---------+-------------------------------------+ | Name | RfcStatus | +---------+-------------------------------------+ | URI | ftp://shalmaneser.org/rfc#RfcStatus | +---------+-------------------------------------+ | Type | class | +---------+-------------------------------------+ | Label | RFC Status | +---------+-------------------------------------+ | Comment | The status of an RFC. | +---------+-------------------------------------+ Table 31 +------------+--------------------------------------+ | Name | Std | +------------+--------------------------------------+ | URI | ftp://shalmaneser.org/rfc#Std | +------------+--------------------------------------+ | Type | class | +------------+--------------------------------------+ | Label | STD | +------------+--------------------------------------+ | Comment | The Standard (STD) series of RFCs. | +------------+--------------------------------------+ | subClassOf | http://purl.org/ontology/bibo/Series | +------------+--------------------------------------+ Table 32 +---------+------------------------------------------------------+ | Name | Stream | +---------+------------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#Stream | +---------+------------------------------------------------------+ | Type | class | +---------+------------------------------------------------------+ | Label | RFC Stream | +---------+------------------------------------------------------+ | Comment | The community, known as "stream", that originated an | | | RFC. See https://www.rfc-editor.org/info/rfc8729. | +---------+------------------------------------------------------+ Table 33 Petit-Huguenin Expires 26 January 2024 [Page 17] Internet-Draft An Ontology for RFCs July 2023 +---------+-----------------------------------------------+ | Name | bestCurrentPractice | +---------+-----------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#bestCurrentPractice | +---------+-----------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#RfcStatus | +---------+-----------------------------------------------+ | Label | Best Current Practice RFC status | +---------+-----------------------------------------------+ | Comment | An RFC that standardizes practices and the | | | results of community deliberations. | +---------+-----------------------------------------------+ Table 34 +---------+------------------------------------------------+ | Name | draftStandard | +---------+------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#draftStandard | +---------+------------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#RfcStatus | +---------+------------------------------------------------+ | Label | Draft Standard RFC status | +---------+------------------------------------------------+ | Comment | The status of an RFC from which at least two | | | independent and interoperable implementations | | | from different code bases have been developed, | | | and for which sufficient successful | | | operational experience has been obtained. | +---------+------------------------------------------------+ Table 35 +---------+---------------------------------------------+ | Name | editorial | +---------+---------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#editorial | +---------+---------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#ErrataType | +---------+---------------------------------------------+ | Label | Editorial errata | +---------+---------------------------------------------+ | Comment | A spelling, grammar, punctuation, or syntax | | | error in an RFC. See https://www.rfc- | | | editor.org/errata-definitions/. | +---------+---------------------------------------------+ Table 36 Petit-Huguenin Expires 26 January 2024 [Page 18] Internet-Draft An Ontology for RFCs July 2023 +---------+----------------------------------------------+ | Name | editorialStream | +---------+----------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#editorialStream | +---------+----------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#Stream | +---------+----------------------------------------------+ | Label | Editorial stream | +---------+----------------------------------------------+ | Comment | RFC approved by the editorial stream editor. | +---------+----------------------------------------------+ Table 37 +---------+-------------------------------------------------------+ | Name | experimental | +---------+-------------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#experimental | +---------+-------------------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#RfcStatus | +---------+-------------------------------------------------------+ | Label | Experimental RFC status | +---------+-------------------------------------------------------+ | Comment | An RFC that is part of some research or development | | | effort. See https://www.rfc-editor.org/info/rfc2026. | +---------+-------------------------------------------------------+ Table 38 +---------+--------------------------------------------------------+ | Name | held | +---------+--------------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#held | +---------+--------------------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#ErrataStatus | +---------+--------------------------------------------------------+ | Label | Held status | +---------+--------------------------------------------------------+ | Comment | Status of an errata held for a future document update. | | | See https://www.rfc-editor.org/errata-definitions/. | +---------+--------------------------------------------------------+ Table 39 Petit-Huguenin Expires 26 January 2024 [Page 19] Internet-Draft An Ontology for RFCs July 2023 +---------+-----------------------------------------+ | Name | historic | +---------+-----------------------------------------+ | URI | ftp://shalmaneser.org/rfc#historic | +---------+-----------------------------------------+ | Type | ftp://shalmaneser.org/rfc#RfcStatus | +---------+-----------------------------------------+ | Label | Historic RFC status | +---------+-----------------------------------------+ | Comment | An RFC that has been superseded by a | | | more recent specification or is for any | | | other reason considered to be obsolete. | +---------+-----------------------------------------+ Table 40 +---------+------------------------------------------+ | Name | iabStream | +---------+------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#iabStream | +---------+------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#Stream | +---------+------------------------------------------+ | Label | IAB stream | +---------+------------------------------------------+ | Comment | RFC approved by the IAB. See | | | https://www.rfc-editor.org/info/rfc4845. | +---------+------------------------------------------+ Table 41 +---------+-------------------------------------------------+ | Name | ietfStream | +---------+-------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#ietfStream | +---------+-------------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#Stream | +---------+-------------------------------------------------+ | Label | IETF stream | +---------+-------------------------------------------------+ | Comment | RFC approved by the IETF. See https://www.rfc- | | | editor.org/info/rfc2026 and successors. | +---------+-------------------------------------------------+ Table 42 Petit-Huguenin Expires 26 January 2024 [Page 20] Internet-Draft An Ontology for RFCs July 2023 +---------+----------------------------------------------+ | Name | independentStream | +---------+----------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#independentStream | +---------+----------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#Stream | +---------+----------------------------------------------+ | Label | Independent stream | +---------+----------------------------------------------+ | Comment | RFC approved by the independent editor. See | | | https://www.rfc-editor.org/info/rfc2026. | +---------+----------------------------------------------+ Table 43 +---------+------------------------------------------------------+ | Name | informational | +---------+------------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#informational | +---------+------------------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#RfcStatus | +---------+------------------------------------------------------+ | Label | Informational RFC status | +---------+------------------------------------------------------+ | Comment | An RFC that is published for the general information | | | of the Internet community, and does not represent an | | | Internet community consensus or recommendation. | +---------+------------------------------------------------------+ Table 44 +---------+------------------------------------------------------+ | Name | internetStandard | +---------+------------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#internetStandard | +---------+------------------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#RfcStatus | +---------+------------------------------------------------------+ | Label | Internet Standard RFC status | +---------+------------------------------------------------------+ | Comment | An RFC for which significant implementation and | | | successful operational experience has been obtained. | +---------+------------------------------------------------------+ Table 45 Petit-Huguenin Expires 26 January 2024 [Page 21] Internet-Draft An Ontology for RFCs July 2023 +---------+------------------------------------------+ | Name | irtfStream | +---------+------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#irtfStream | +---------+------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#Stream | +---------+------------------------------------------+ | Label | IRTF stream | +---------+------------------------------------------+ | Comment | RFC approved by the IRTF. See | | | https://www.rfc-editor.org/info/rfc5743. | +---------+------------------------------------------+ Table 46 +---------+-----------------------------------------------+ | Name | proposedStandard | +---------+-----------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#proposedStandard | +---------+-----------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#RfcStatus | +---------+-----------------------------------------------+ | Label | Proposed Standard RFC status | +---------+-----------------------------------------------+ | Comment | An RFC that is generally stable, has resolved | | | known design choices, is believed to be well- | | | understood, has received significant | | | community review, and appears to enjoy enough | | | community interest to be considered valuable. | +---------+-----------------------------------------------+ Table 47 +---------+--------------------------------------------+ | Name | rejected | +---------+--------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#rejected | +---------+--------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#ErrataStatus | +---------+--------------------------------------------+ | Label | Rejected status | +---------+--------------------------------------------+ | Comment | The status of an RFC errata that has been | | | rejected as invalid. See https://www.rfc- | | | editor.org/errata-definitions/. | +---------+--------------------------------------------+ Table 48 Petit-Huguenin Expires 26 January 2024 [Page 22] Internet-Draft An Ontology for RFCs July 2023 +---------+-------------------------------------------------+ | Name | reported | +---------+-------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#reported | +---------+-------------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#ErrataStatus | +---------+-------------------------------------------------+ | Label | Reported status | +---------+-------------------------------------------------+ | Comment | The initial status of an RFC errata. See | | | https://www.rfc-editor.org/errata-definitions/. | +---------+-------------------------------------------------+ Table 49 +---------+---------------------------------------------------+ | Name | technical | +---------+---------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#technical | +---------+---------------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#ErrataType | +---------+---------------------------------------------------+ | Label | Technical errata | +---------+---------------------------------------------------+ | Comment | An error in the technical content of an RFC. See | | | https://www.rfc-editor.org/errata-definitions/. | +---------+---------------------------------------------------+ Table 50 +---------+-------------------------------------------------+ | Name | verified | +---------+-------------------------------------------------+ | URI | ftp://shalmaneser.org/rfc#verified | +---------+-------------------------------------------------+ | Type | ftp://shalmaneser.org/rfc#ErrataStatus | +---------+-------------------------------------------------+ | Label | Verified status | +---------+-------------------------------------------------+ | Comment | The status of an RFC errata that has been | | | verified as being correct. See | | | https://www.rfc-editor.org/errata-definitions/. | +---------+-------------------------------------------------+ Table 51 Petit-Huguenin Expires 26 January 2024 [Page 23] Internet-Draft An Ontology for RFCs July 2023 3. IANA Considerations No IANA considerations in this document. 4. Security Considerations The information in that document are derived from publicly available databases, so they do not present more security risk. 5. Informative References [BIBO] D'Arcus, B., Giasson, F., and DCMI Usage Board, "Bibliographic Ontology", 11 November 2009, . [DCTERMS] DCMI Usage Board, "DCMI Metadata Terms", 20 January 2020, . [ErgoAI] "ErgoAI", Accessed 22 July 2023, . [FOAF] Brickley, D. and L. Miller, "FOAF Vocabulary Specification 0.99", 14 January 2014, . [RFC9307] ten Oever, N., Cath, C., Kühlewind, M., and C. S. Perkins, "Report from the IAB Workshop on Analyzing IETF Data (AID) 2021", RFC 9307, DOI 10.17487/RFC9307, September 2022, . [Zotero] Corporation for Digital Scholarship, "Zotero | Your personal research assistant", Accessed 20 January 2023, . Appendix A. Implementation An implementation of the RFC ontology using the programming language Ergo [ErgoAI] is provided. The "rfcs.ergo" file contains the list of all RFCs, BCPs, STDs, and FYIs. The following example shows an RFC metadata encoded in Ergo: Petit-Huguenin Expires 26 January 2024 [Page 24] Internet-Draft An Ontology for RFCs July 2023 \"https://www.rfc-editor.org/info/rfc9306":rfc#Rfc [ rfc#number -> 9306 , terms#title -> 'Vendor-Specific LISP Canonical Address Format (LCAF)' , terms#creator -> {\#1, \#2, \#3, \#4, \#5} , bibo#authorList -> [\#1, \#2, \#3, \#4, \#5] , rfc#date -> '2022-10' , terms#format -> {'text/html', 'text/plain', 'application/pdf', 'text/xml'} , rfc#keyword -> {'lisp', 'lcaf', 'internal', 'domain', 'organization', 'private'} , bibo#abstract -> 'This document describes a ...' , terms#isVersionOf -> \"https://datatracker.ietf.org/doc/draft-ietf-lisp-vendor-lcaf-12" , rfc#updates -> {\"https://www.rfc-editor.org/info/rfc8060":rfc#Rfc} , rfc#publicationStatus -> rfc#experimental , rfc#currentStatus -> rfc#experimental , rfc#stream -> rfc#ietf , rfc#area -> 'rtg' , rfc#wg -> 'lisp' , bibo#doi -> '10.17487/RFC9306' , rfc#normativelyReferences -> { \"https://ieeexplore.ieee.org/document/6847097" , \"https://www.rfc-editor.org/info/rfc2119" , \"https://www.rfc-editor.org/info/rfc8060" , \"https://www.rfc-editor.org/info/rfc8126" , \"https://www.rfc-editor.org/info/rfc8174" , \"https://www.rfc-editor.org/info/rfc9300" , \"https://www.rfc-editor.org/info/rfc9301" } ] , \#1:foaf#Person [ foaf#name -> 'Alberto Rodriguez-Natal' , foaf#familyName -> 'Rodriguez-Natal' , rfc#initials -> 'A.' ] , \#2:foaf#Person [ foaf#name -> 'Vina Ermagan' , foaf#familyName -> 'Ermagan' , rfc#initials -> 'V.' ] , \#3:foaf#Person [ foaf#name -> 'Anton Smirnov' , foaf#familyName -> 'Smirnov' , rfc#initials -> 'A.' ] , \#4:foaf#Person Petit-Huguenin Expires 26 January 2024 [Page 25] Internet-Draft An Ontology for RFCs July 2023 [ foaf#name -> 'Vrushali Ashtaputre' , foaf#familyName -> 'Ashtaputre' , rfc#initials -> 'V.' ] , \#5:foaf#Person [ foaf#name -> 'Dino Farinacci' , foaf#familyName -> 'Farinacci' , rfc#initials -> 'D.' ] . Comments on some non-obvious encoding: * "terms#creator" contains the set of authors. This uses a Skolem symbol to represents the fact that we do not have a resource for the person, but we want to define it only once (equivalent to a blank node). The mathematically inclined can think of this as an existential quantifier ("there exists a person named..."). * "terms#editor", not present in this example, would contain the set of editors. * "bibo#authorList" contains the ordered list of all authors and editors. * "rfc#normativelyReferences" or "rfc#informativeReferences" are difficult to parse in RFCs that were not published in xml2rfc format, so this is currently work in progress. The following example shows a BCP encoded in Ergo: \"https://www.rfc-editor.org/info/bcp0003":rfc#Bcp [ rfc#number -> 3 , bibo#hasPart -> { \"https://www.rfc-editor.org/info/rfc1915" } ]. STD and FYI are encoded similarly, substituting respectively "rfc#Std" and "rfc#Fyi" to "rfc#Bcp". The "errata.flr" file contains the list of all Errata. The following example shows an Errata encoded in Ergo: Petit-Huguenin Expires 26 January 2024 [Page 26] Internet-Draft An Ontology for RFCs July 2023 \"https://www.rfc-editor.org/errata/eid5866":rfc#Errata [ rfc#id -> 5866 , rfc#corrects -> \"https://www.rfc-editor.org/info/rfc0005":rfc#Rfc , rfc#type -> rfc#editorial , rfc#status -> rfc#verified , rfc#reportedBy -> \#:foaf#Person[foaf#name -> 'Martin Thomson'] , rfc#reportedOn -> "2019-09-26"^^\date , rfc#processedBy -> \#:foaf#Person[foaf#name -> 'Benjamin Kaduk'] , rfc#processedOn -> "2019-09-26"^^\date ]. The git repository also contains a [Zotero] importer for the same "rfc-index.xml" file that is used to build the "rfcs.flr" file. The simplest way to install it is to create a symbolic link for the "RFC- Index.js" file in the subdirectory "translators" of the "~/.zotero" directory. A.1. Examples of Queries The examples that follow can be executed in the Ergo REPL ("runergo" or "runergo.bat"). The Flora-2 REPL can be either run from the local machine or from Docker: docker build --build-arg uid=$(id -u) -t runergo:latest . \ && docker run --rm -it -u $(id -u):$(id -g) -v $(pwd):/ergo \ runergo The files must be loaded after starting the REPL: [schema,+rfcs,+errata]. Note that loading the files should take a minute the first time, but around one second after that. Queries should not take more than a few hundred milliseconds to run. Listing all the April Fools's Day RFCS: ?:rfc#Rfc[rfc#number -> ?rfc, terms#date -> ?_d], ?_d[endsWith('-04-01')]@\btp. Listing all the RFCs that cites RFC 5234, normatively or informatively: ?_abnf:rfc#rfc[rfc#number -> 5234], ?:rfc#rfc[bibo#cites -> ?_abnf, rfc#number -> ?rfc, terms#title -> ?title]. Petit-Huguenin Expires 26 January 2024 [Page 27] Internet-Draft An Ontology for RFCs July 2023 Identify all the RFCs that are descendants of a particular RFC by traversing the set of RFC update and obsolete relationships. Save that code in a file named "desc.ergo", then load it in the REPL with [schema,+rfcs,+desc].. Then descendant(, ?rfc). will return the descendants. descendant(?number, ?rfc) :- ?_rfc:rfc#Rfc[rfc#number -> ?number], descendant_1(?_rfc, ?rfc). descendant_1(?x, ?z) :- ?z:rfc#Rfc[rfc#updates -> ?x]. descendant_1(?x, ?z) :- ?z:rfc#Rfc[rfc#obsoletes -> ?x]. descendant_1(?x, ?z) :- ?y:rfc#Rfc[rfc#updates -> ?x], descendant_1(?y, ?z). descendant_1(?x, ?z) :- ?y:rfc#Rfc[rfc#obsoletes -> ?x], descendant_1(?y, ?z). Finding the transitive closure of normative references to an RFC, i.e., all RFCs that normatively reference that RFC or an RFC already in the list. Save that code in a file named "tran.ergo", then load it in the REPL with [schema,+rfcs,+tran].. Then transitive_closure(, ?rfc). will return the transitive closure. transitive_closure(?number, ?rfc) :- ?_rfc:rfc#Rfc[rfc#number -> ?number], transitive_closure_1(?_rfc, ?rfc). transitive_closure_1(?x, ?z) :- ?z:rfc#Rfc[rfc#normativelyReferences -> ?x]. transitive_closure_1(?x, ?z) :- ?y:rfc#Rfc[rfc#normativelyReferences -> ?x], transitive_closure_1(?y, ?z). More examples will be provided in future versions of this draft. Suggestions are welcome. A.2. Distribution The files are distributed as a git repository that can be cloned with the following command: git clone git://shalmaneser.org/VejlapAknul1 rfc-ontology-ergo Petit-Huguenin Expires 26 January 2024 [Page 28] Internet-Draft An Ontology for RFCs July 2023 This git repository is mirrored in various locations over the world, with the GPS coordinates in decimal degrees of all these locations stored in the DNS as a TXT resource record. The "dig +dnssec txt shalmaneser.org" command can be used to find these locations and substitute the closest subdomain in the git URL above. The git repository is updated most Mondays before 23:59:59 UTC with a new commit that covers new RFCs, Errata, or changes in status. The date of the next planned update is added of the comment of each commit. The "update" script that is used to update the files is distributed in the git repository, so they these files can be updated in case the current maintainer is unable to do so. The list of tools to install prior to running the script is in that script. The code in that repository is licensed under an AGPL3+ license. Acknowledgements Thanks to John Levine and Robert Sparks for their help in gathering the information used for populating the knowledge graphs. Thanks to Scott Hollenbeck and Carsten Bormann for the ideas for the example queries. No technology that cannot explain its own results (LLM, AI/ML) have been involved in the creation of this document or its associated tooling. Changelog draft-petithuguenin-rfc-ontology-03: * Document: - Replaced Flora-2 with Ergo. - Update examples. * Repository: - Fixed some type-checking issues. draft-petithuguenin-rfc-ontology-02: * Document: - Add Internet-Draft class. - Add two examples of queries. - Add explanations for the Zotero importer for rfc-index.xml. - Add Docker command line. * Repository: - New Dockerfile. - The errata are now ordered by id. Petit-Huguenin Expires 26 January 2024 [Page 29] Internet-Draft An Ontology for RFCs July 2023 - Errata generation now is done in two steps. - The text of the errata is no longer saved. - The list of RFC is now stored in /tmp. draft-petithuguenin-rfc-ontology-01: * Document: - Change the ontology iri to something resolvable. - Reorder the range/domain. * Repository: - Move the rfc.xml file to an ftp server so it can be loaded in Protege. Author's Address Marc Petit-Huguenin Impedance Mismatch LLC Email: marc@petit-huguenin.org Petit-Huguenin Expires 26 January 2024 [Page 30]