Juan Cano-Benito http://www.garcia-castro.com/foaf.rdf#me This ontology aims to represent the ABI of a Solidity smart contract in Ethereum Solidity ABI Ontology 0.0.1 Relationship between the main application binary interface and its specific components has component Relationship between the ABI and its errors has error Indicates which parameters are associated with a specific error has error input parameter Relationship between the ABI and its events has event Denotes which input parameters are associated with a specific event has event input parameter Relate the ABI to the representation of the source code has implementation Relationship between the ABI and its functions has method Binds a method to its input parameters has method input parameter Binds a method to its output parameters has method output parameter Indicates which state mutability has the method has state mutability Indicates that an abi:Component contains another component has sub component The address of the contract on the blockchain address For events, indicates whether a parameter is indexed, which affects how logs are stored and searchable indexed Internal type of the parameter internal type Indicates whether an event is anonymous, which affects how logs are recorded in Ethereum is anonymous Indicates if a method is constant, that is, if it only reads data and does not modify the state is constant The name of the contract associated to an address name Data type of the component (e.g. uint256, address) type Represents the contract implementation (Solidity ontology) Smart Contract The main interface that defines how to interact with a contract (knows as ABI) Application Binary Interface Represents an ABI component Component Defines the function that is executed when a contract is deployed Constructor Defines specific errors that a contract may emit Error Contracts in Ethereum can emit events to record notable activities Event A function that executes if no other function matches or if no data is provided in a transaction Fallback Specifies a typical function in a contract that can have inputs and outputs and can change the state of the contract Function Represent specific input parameters for events Input Event Represent specific input parameters Input Parameter Represents a specific function inside a smart contract Method Represent specific output parameters Output Parameter Details the types and names of parameters used in functions and events Parameter A special function that is executed when Ether is sent to a contract without additional data Receive Indicates how a function interacts with the contract storage, determining whether it modifies the state or simply reads the state State Mutability Denotes that a function cannot receive Ether Non Payable Denotes that a function can receive Ether along with its invocation Payable Denotes that a function does not read or write data to the contract; it is purely computational Pure Denotes that a function only reads data from the contract but does not modify its state View