Skip to content

An ontology of Ethereum terms extracted from the Ethereum glossaries and Ethereum Improvement Proposals (EIPs). Available in plain text and SKOS formats.

License

Notifications You must be signed in to change notification settings

prototypo/ethereum-eips-ontology

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ethereum EIPs Ontology

Usage

The basic vocabulary (glossary.txt) is meant as dynamic input to generic Large Language Models to give them up-to-date context on Ethereum terms and definitions.

Screenshot of an example interaction.

The generated ontology (ethereum_skos.ttl) is a more full-featured variant useful in orchestrated systems using a graph database. It is shown below in the Protege ontology editor.

Screenshot of the ontology in Protege.

Creation

This repository combines the following sources into a single clean text file in term : definition format. That file (glossary.txt) contains duplicated entries from the sources.

Sources:

  1. The Ethereum Foundation's Ethereum Glossary
  2. Consensys' A Blockchain Glossary for Beginners
  3. The Ethereum Foundation's active Ethereum Improvement Proposals (EIPs)

ChatGPT 4o was used to extract newly-created terms from the EIPs and add them sequentially to the text file until they are all represented.

A python script (mk_skos.py) is used to generate a de-duplicated SKOS ontology. Where multiple definitions exist for the same term, both are kept both using different predicates (skos:definition for the primary and rdfs:comment for the secondary). EIPs are linked via skos:broader where they are found.

The SKOS file parses cleanly into the Protege ontology editor.

Prompt used to ChatGPT 4o


Please summarise the newly-introduced terms defined in these documents. Add the EIP number without any hyperlinks to the end of the definition, enclosed in parentheses. Your output format should be "term : definition (EIP-number)".

Use succinct terms. For example, when a new opcode is introduced, use the opcode name as the term.

For example, if EIP 100000 defines the FOO opcode, then the term is FOO. If the definition was 'The FOO opcode prints "foo" when it is called' then your output should be: 'FOO: The FOO opcode prints "foo" when it is called. (EIP-100000)'

About

An ontology of Ethereum terms extracted from the Ethereum glossaries and Ethereum Improvement Proposals (EIPs). Available in plain text and SKOS formats.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published