[Tools-discuss] Exploring ABNF extracts from RFCs
Dominique Hazael-Massieux <dom@w3.org> Fri, 26 July 2024 10:35 UTC
Return-Path: <dom@w3.org>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DAEBAC14F5FC for <tools-discuss@ietfa.amsl.com>; Fri, 26 Jul 2024 03:35:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.107
X-Spam-Level:
X-Spam-Status: No, score=-2.107 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=w3.org
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GLuHG3BveF-9 for <tools-discuss@ietfa.amsl.com>; Fri, 26 Jul 2024 03:34:57 -0700 (PDT)
Received: from anthe.w3.org (anthe.w3.org [IPv6:2600:1f18:7d7a:2700:318c:b74a:bdca:4a0]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B6998C1840E5 for <tools-discuss@ietf.org>; Fri, 26 Jul 2024 03:34:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Content-Type:Subject:From:To:MIME-Version:Date:Message-ID:Cc:Reply-To :In-Reply-To:References; bh=zlfjgmt/XUdvYPMpmQNQ6IpZc5X9fOL0iN2aK7/Lmlw=; t=1721990073; x=1722854073; b=kx6gEs+8IoB7AvslHv31phX0RGsTqf0bAtysYmRYBlcD6v/ y+x21iSruYrpRgpndWSftW7jIE2AahIA7lpyLlJ74OFAVyCwgyK59mfHZZM7zINsvCu7iXWff9+Br GVjmykU9744z85c0npPavAgbUxPQqWZKL+yxY6K7LhzFM9JWTuFef10wsCcg67GMJUKKtnRSX5t6v YA6Zt82eYvLA3SZwb+rpOf8aoxywqL1znPJ/TfmwRiEK3IGOxWJxDOv3OSHw4Uqudcb2qz5WxL8IS VRLd0LnWfO38q2lSdHmTSBymM3jTy9GDbXRK3Dp+rn1inXRAs9bwbxDMUpFqZBKA==;
Received: from ip-10-0-0-242.ec2.internal ([10.0.0.242] helo=spica.w3.internal) by anthe.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <dom@w3.org>) id 1sXIHR-00FAKq-03 for tools-discuss@ietf.org; Fri, 26 Jul 2024 10:34:33 +0000
Received: from localhost ([::1] helo=spica.w3.internal) by spica.w3.internal with esmtp (Exim 4.96) (envelope-from <dom@w3.org>) id 1sXIHQ-00At8D-36 for tools-discuss@ietf.org; Fri, 26 Jul 2024 10:34:32 +0000
Received: from [IPV6:2a01:cb1c:844e:f100:9924:94ac:697b:969f] ([2a01:cb1c:844e:f100:9924:94ac:697b:969f]) by spica.w3.internal with ESMTPSA id vgJ4Irh7o2aHmScANTRr8w (envelope-from <dom@w3.org>) for <tools-discuss@ietf.org>; Fri, 26 Jul 2024 10:34:32 +0000
Message-ID: <89a4a566-8ffe-413e-9196-3f08bebe8d20@w3.org>
Date: Fri, 26 Jul 2024 12:34:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: tools-discuss@ietf.org
From: Dominique Hazael-Massieux <dom@w3.org>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Message-ID-Hash: 2QD56GNHYQ7PWCLFOH5GHOA6CMWA36AE
X-Message-ID-Hash: 2QD56GNHYQ7PWCLFOH5GHOA6CMWA36AE
X-MailFrom: dom@w3.org
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tools-discuss.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [Tools-discuss] Exploring ABNF extracts from RFCs
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/-oa5-sKE6OdRPx63f9KaQJHmVlE>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Owner: <mailto:tools-discuss-owner@ietf.org>
List-Post: <mailto:tools-discuss@ietf.org>
List-Subscribe: <mailto:tools-discuss-join@ietf.org>
List-Unsubscribe: <mailto:tools-discuss-leave@ietf.org>
Hi, (I hope this list is the appropriate place to bring this project up; let me know if there is a better place) Inspired by some of the work happening in the W3C community around extracting, curating and publishing reusable data and code from Web specifications [1], I have been exploring what this might look like for RFCs. I had initially planned to present and continue that exploration during the IETF 120 hackathon [2], but didn't realize the hackathon start was moved to Saturday, so ended up working on the project on my own. The current state of my exploration is visible in two github repos: https://github.com/dontcallmedom/rfcref/tree/main/abnf https://github.com/dontcallmedom/ABNFary I have in particular focused on extracting ABNF from (some) RFCs (re-using aex on pre-XML RFCs, and a simpler XML-extraction script on XML RFCs), and crucially, identifying the dependencies that exist between ABNF fragments (where e.g. the URI production defined in RFC3986 gets "imported" into e.g. RFC9110): https://github.com/dontcallmedom/rfcref/tree/main/abnf/dependencies With these dependencies semi-manually detected and documented, a (node.js) tool I wrote allows to build consolidated ABNF files that are guaranteed to have all their rules defined: https://github.com/dontcallmedom/rfcref/tree/main/abnf/consolidated (I identified a couple of errata in the process of consolidating some of these RFCs [3]) Finally, a built a simple Web interface on top of the said consolidated ABNF that allows to see interlinked ABNF rules, with railroad diagrams illustrating the "endemic" rules of a given RFC: https://dontcallmedom.github.io/ABNFary/?num=9110 The broader motivation for that project is to enable easier and broader usage of ABNF definitions (and more generally, data/code provided in RFCs); the similar effort in W3C I mentioned [1] has found impactful re-use in implementation conformance and interop testing, developer documentation, IDEs, libraries, fuzz-testing, spec authoring tools, spec validation. Although the errata I filed show potential, I'm seeking input and feedback on whether this project (and in particular its current focus on ABNF) is likely to provide opportunities for similar re-use. And if so, I'm also interested to hear what would be the best way to make this a collaborative effort that would align best with the IETF community expectations and processes. (I'm about to disappear for a few weeks, but thought I would start this discussion while the project is still fresh in my mind) Dom 1. https://github.com/w3c/webref/ 2. https://wiki.ietf.org/en/meeting/120/hackathon#collecting-consolidated-abnf-from-rfcs 3. https://www.rfc-editor.org/errata/eid8040 https://www.rfc-editor.org/errata/eid8039
- [Tools-discuss] Exploring ABNF extracts from RFCs Dominique Hazael-Massieux
- [Tools-discuss] Re: Exploring ABNF extracts from … Carsten Bormann
- [Tools-discuss] Re: [art] Re: Exploring ABNF extr… Paul Kyzivat
- [Tools-discuss] Re: [art] Re: Exploring ABNF extr… Carsten Bormann
- [Tools-discuss] Re: [art] Re: Exploring ABNF extr… Dominique Hazael-Massieux
- [Tools-discuss] Re: [art] Re: Exploring ABNF extr… Paul Kyzivat
- [Tools-discuss] Re: [art] Re: Exploring ABNF extr… Paul Kyzivat
- [Tools-discuss] Re: [art] Re: Exploring ABNF extr… Carsten Bormann
- [Tools-discuss] Re: [art] Exploring ABNF extracts… Carsten Bormann
- [Tools-discuss] Re: [abnf-discuss] Re: [art] Re: … Dave Crocker
- [Tools-discuss] Re: [abnf-discuss] Re: [art] Re: … Carsten Bormann
- [Tools-discuss] Re: [abnf-discuss] Re: [art] Re: … Dave Crocker
- [Tools-discuss] Re: [abnf-discuss] Re: [art] Re: … Paul Kyzivat
- [Tools-discuss] Re: [abnf-discuss] Re: [art] Re: … Dave Crocker
- [Tools-discuss] Re: [abnf-discuss] Re: [art] Re: … Carsten Bormann