Solidity ABI Ontology
type: Ontology
creator: Juan Cano-Benito
creator: http://www.garcia-castro.com/foaf.rdf#me
description: This ontology aims to represent the ABI of a Solidity smart contract in Ethereum
license: cc-by4.0
version info: 0.0.1

has component
type: ObjectProperty
domain: Parameter
range: Component
description: Relationship between the main application binary interface and its specific components

has error
type: ObjectProperty
domain: Application Binary Interface
range: Error
description: Relationship between the ABI and its errors

has error input parameter
type: ObjectProperty
domain: Error
range: Input Parameter
description: Indicates which parameters are associated with a specific error

has event
type: ObjectProperty
domain: Application Binary Interface
range: Event
description: Relationship between the ABI and its events

has event input parameter
type: ObjectProperty
domain: Event
range: Input Event
description: Denotes which input parameters are associated with a specific event

has implementation
type: ObjectProperty
domain: Application Binary Interface
range: Smart Contract
description: Relate the ABI to the representation of the source code

has method
type: ObjectProperty
domain: Application Binary Interface
range: Method
description: Relationship between the ABI and its functions

has method input parameter
type: ObjectProperty
domain: Method
range: Input Parameter
description: Binds a method to its input parameters

has method output parameter
type: ObjectProperty
domain: Method
range: Output Parameter
description: Binds a method to its output parameters

has state mutability
type: ObjectProperty
domain: Method
range: State Mutability
description: Indicates which state mutability has the method

has sub component
type: ObjectProperty
domain: Component
range: Component
description: Indicates that an abi:Component contains another component

address
type: DatatypeProperty
domain: Application Binary Interface
range: string
description: The address of the contract on the blockchain

indexed
type: DatatypeProperty
domain: Input Event
range: boolean
description: For events, indicates whether a parameter is indexed, which affects how logs are stored and searchable

internal type
type: DatatypeProperty
range: string
description: Internal type of the parameter

is anonymous
type: DatatypeProperty
domain: Event
range: boolean
description: Indicates whether an event is anonymous, which affects how logs are recorded in Ethereum

is constant
type: DatatypeProperty
domain: Method
range: boolean
description: Indicates if a method is constant, that is, if it only reads data and does not modify the state

name
type: DatatypeProperty
range: string
comment: The name of the contract associated to an address

type
type: DatatypeProperty
range: string
description: Data type of the component (e.g. uint256, address)

Smart Contract
type: Class
description: Represents the contract implementation (Solidity ontology)

Application Binary Interface
type: Class
description: The main interface that defines how to interact with a contract (knows as ABI)

Component
type: Class
description: Represents an ABI component

Constructor
type: Class
subclass of: Method
description: Defines the function that is executed when a contract is deployed

Error
type: Class
description: Defines specific errors that a contract may emit

Event
type: Class
description: Contracts in Ethereum can emit events to record notable activities

Fallback
type: Class
subclass of: Method
description: A function that executes if no other function matches or if no data is provided in a transaction

Function
type: Class
subclass of: Method
description: Specifies a typical function in a contract that can have inputs and outputs and can change the state of the contract

Input Event
type: Class
subclass of: Parameter
description: Represent specific input parameters for events

Input Parameter
type: Class
subclass of: Parameter
description: Represent specific input parameters

Method
type: Class
description: Represents a specific function inside a smart contract

Output Parameter
type: Class
subclass of: Parameter
description: Represent specific output parameters

Parameter
type: Class
description: Details the types and names of parameters used in functions and events

Receive
type: Class
subclass of: Method
description: A special function that is executed when Ether is sent to a contract without additional data

State Mutability
type: Class
description: Indicates how a function interacts with the contract storage, determining whether it modifies the state or simply reads the state

Non Payable
type: NamedIndividual
type: State Mutability
description: Denotes that a function cannot receive Ether

Payable
type: NamedIndividual
type: State Mutability
description: Denotes that a function can receive Ether along with its invocation

Pure
type: NamedIndividual
type: State Mutability
description: Denotes that a function does not read or write data to the contract; it is purely computational

View
type: NamedIndividual
type: State Mutability
description: Denotes that a function only reads data from the contract but does not modify its state