Internet DRAFT - draft-petithuguenin-rfc-ontology
draft-petithuguenin-rfc-ontology
Network Working Group M. Petit-Huguenin
Internet-Draft Impedance Mismatch LLC
Intended status: Experimental 22 January 2024
Expires: 25 July 2024
An Ontology for RFCs
draft-petithuguenin-rfc-ontology-04
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 25 July 2024.
Copyright Notice
Copyright (c) 2024 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 25 July 2024 [Page 1]
Internet-Draft An Ontology for RFCs January 2024
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 25 July 2024 [Page 2]
Internet-Draft An Ontology for RFCs January 2024
+----------------+----------------------------------+
| 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 25 July 2024 [Page 3]
Internet-Draft An Ontology for RFCs January 2024
+----------------+-----------------------------------------+
| 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 25 July 2024 [Page 4]
Internet-Draft An Ontology for RFCs January 2024
+----------------+----------------------------------+
| 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 25 July 2024 [Page 5]
Internet-Draft An Ontology for RFCs January 2024
+----------------+-------------------------------------------------+
| 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 25 July 2024 [Page 6]
Internet-Draft An Ontology for RFCs January 2024
+----------------+-------------------------------------+
| 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 25 July 2024 [Page 7]
Internet-Draft An Ontology for RFCs January 2024
+------------+------------------------------------------------------+
| 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 25 July 2024 [Page 8]
Internet-Draft An Ontology for RFCs January 2024
+----------------+----------------------------------+
| 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 25 July 2024 [Page 9]
Internet-Draft An Ontology for RFCs January 2024
+----------------+--------------------------------------+
| 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 25 July 2024 [Page 10]
Internet-Draft An Ontology for RFCs January 2024
+----------------+-----------------------------------+
| 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 25 July 2024 [Page 11]
Internet-Draft An Ontology for RFCs January 2024
+----------------+----------------------------------------------+
| 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 25 July 2024 [Page 12]
Internet-Draft An Ontology for RFCs January 2024
+----------------+---------------------------------------+
| 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 25 July 2024 [Page 13]
Internet-Draft An Ontology for RFCs January 2024
+----------------+------------------------------------------------+
| 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 25 July 2024 [Page 14]
Internet-Draft An Ontology for RFCs January 2024
+------------+--------------------------------------------------+
| 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 25 July 2024 [Page 15]
Internet-Draft An Ontology for RFCs January 2024
+------------+------------------------------------------------+
| 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 25 July 2024 [Page 16]
Internet-Draft An Ontology for RFCs January 2024
+---------+-------------------------------------+
| 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 25 July 2024 [Page 17]
Internet-Draft An Ontology for RFCs January 2024
+---------+-----------------------------------------------+
| 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 25 July 2024 [Page 18]
Internet-Draft An Ontology for RFCs January 2024
+---------+----------------------------------------------+
| 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 25 July 2024 [Page 19]
Internet-Draft An Ontology for RFCs January 2024
+---------+-----------------------------------------+
| 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 25 July 2024 [Page 20]
Internet-Draft An Ontology for RFCs January 2024
+---------+----------------------------------------------+
| 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 25 July 2024 [Page 21]
Internet-Draft An Ontology for RFCs January 2024
+---------+------------------------------------------+
| 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 25 July 2024 [Page 22]
Internet-Draft An Ontology for RFCs January 2024
+---------+-------------------------------------------------+
| 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 25 July 2024 [Page 23]
Internet-Draft An Ontology for RFCs January 2024
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,
<https://www.dublincore.org/specifications/bibo/>.
[DCTERMS] DCMI Usage Board, "DCMI Metadata Terms", 20 January 2020,
<https://www.dublincore.org/specifications/dublin-core/
dcmi-terms/>.
[ErgoAI] "ErgoAI", Accessed 22 July 2023,
<https://github.com/ErgoAI>.
[FOAF] Brickley, D. and L. Miller, "FOAF Vocabulary Specification
0.99", 14 January 2014,
<https://web.archive.org/web/20220518003509/
http://xmlns.com/foaf/spec/20140114.html>.
[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,
<https://www.rfc-editor.org/info/rfc9307>.
[Zotero] Corporation for Digital Scholarship, "Zotero | Your
personal research assistant", Accessed 20 January 2023,
<https://www.zotero.org/>.
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 25 July 2024 [Page 24]
Internet-Draft An Ontology for RFCs January 2024
\"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 25 July 2024 [Page 25]
Internet-Draft An Ontology for RFCs January 2024
[ 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 25 July 2024 [Page 26]
Internet-Draft An Ontology for RFCs January 2024
\"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, rfc#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 25 July 2024 [Page 27]
Internet-Draft An Ontology for RFCs January 2024
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-number>, ?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-number>, ?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 25 July 2024 [Page 28]
Internet-Draft An Ontology for RFCs January 2024
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-04:
* Document:
- Fixed the examples.
* Repository:
- Update the scripts to use python venv.
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.
Petit-Huguenin Expires 25 July 2024 [Page 29]
Internet-Draft An Ontology for RFCs January 2024
- 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.
- 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 25 July 2024 [Page 30]