<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Towards automatic smart contract generation from DEMO models: A case in logistics using Hyperledger</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Leonardo</forename><surname>Abreu</surname></persName>
							<email>leonardo.tadeu@arditi.pt</email>
							<affiliation key="aff0">
								<orgName type="department">ARDITI -Regional Agency</orgName>
								<orgName type="institution">Development of Research Technology and Innovation</orgName>
								<address>
									<settlement>Funchal</settlement>
									<country key="PT">Portugal</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">David</forename><surname>Aveiro</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">ARDITI -Regional Agency</orgName>
								<orgName type="institution">Development of Research Technology and Innovation</orgName>
								<address>
									<settlement>Funchal</settlement>
									<country key="PT">Portugal</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="institution">University of Madeira</orgName>
								<address>
									<settlement>Funchal</settlement>
									<country key="PT">Portugal</country>
								</address>
							</affiliation>
							<affiliation key="aff2">
								<orgName type="institution">NOVA -Universidade NOVA de Lisboa</orgName>
								<address>
									<settlement>Lisboa</settlement>
									<country key="PT">Portugal</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Vítor</forename><surname>Freitas</surname></persName>
							<email>vitor.freitas@arditi.pt</email>
							<affiliation key="aff0">
								<orgName type="department">ARDITI -Regional Agency</orgName>
								<orgName type="institution">Development of Research Technology and Innovation</orgName>
								<address>
									<settlement>Funchal</settlement>
									<country key="PT">Portugal</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Towards automatic smart contract generation from DEMO models: A case in logistics using Hyperledger</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">72DA70C8E8B6A04280E6EA17A3FEAC25</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2025-04-23T16:59+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Enterprise engineering</term>
					<term>DEMO Action Model</term>
					<term>Blockchain</term>
					<term>Hyperledger Fabric</term>
					<term>Smart Contracts</term>
					<term>Logistics industry</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>In this paper, we delve deeper into our prior work which proposed a method for automatically generating smart contracts from business models within the logistics industry, leveraging the Hyperledger Fabric blockchain platform. Building upon our previous contributions, which established a mapping from DEMO (Design and Engineering Methodology for Organizations) language to Hyperledger Chaincode using GO language and extended DEMO's Action Model Grammar, we now present a specific method, transpiling rules and file structure that underpins the automated smart contract generation. This detailed exposition comprehensively explains the flow logic and structural components necessary for translating business rules and processes into executable smart contract code. By presenting the core mechanics of our approach, we aim to offer a foundational tool for enterprises seeking interoperability via distributed ledger technology, further combining the strengths of the DEMO methodology with smart contract functionalities. This research elucidates the nuances of design and implementation and serves as a practical guide for future applications in various business scenarios.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>Distributed Ledger Technology (DLT) has introduced significant innovations like blockchain (BC), providing a decentralized data system and ensuring consensus among participants <ref type="bibr" target="#b0">[1]</ref>. Blockchain technology is valued for its ability to provide an immutable record for decentralized transactions, suitable for financial transactions and also areas like smart contracts, civic services, IoT, and more. It offers businesses unparalleled reliability, transparency, and strong protection against fraudulent activities. Furthermore, it aids in the automation of smart contracts <ref type="bibr" target="#b1">[2]</ref>.</p><p>A Smart Contract (SCs) is a self-executing code on a blockchain platform designed to execute the terms of a contract between parties without intermediaries. The terms are set and recorded on the blockchain, ensuring they are consistently and immutably executed, ideal for parties without an inherent trust basis <ref type="bibr" target="#b2">[3]</ref>. SCs utilizing BC technology can transform logistics management by offering a safe, streamlined, and clear method for monitoring items and dealings, culminating in enhanced supply chain oversight <ref type="bibr" target="#b3">[4]</ref>.</p><p>Hyperledger Fabric is an open-source BC framework that addresses the shortcomings of conventional blockchains. It is implemented in over 400 samples, demonstrations, and operational distributed ledger structures spanning various sectors and applications. Fabric presents a fresh BC design focused on durability, adaptability, expandability, and privacy <ref type="bibr" target="#b4">[5]</ref>.</p><p>The latest advancements in Enterprise Engineering (EE), include using DEMO (Design and Engineering Methodology for Organizations) models for SCs deployments. This highlights the integration of the Construction and Action Models from DEMO with BC technology to ensure safe validation and transaction processing <ref type="bibr" target="#b5">[6,</ref><ref type="bibr" target="#b6">7]</ref>.</p><p>Utilizing the advantages of BC technology, like immutability and transparency, and combining it with the design and evaluation strengths of the DEMO method, this strategy can result in the optimized and effective application of business procedures. Specifically, this progression holds considerable relevance for crafting and deploying smart contract-driven systems in large-scale business scenarios, bolstering compatibility and growth potential <ref type="bibr" target="#b7">[8]</ref>.</p><p>Even with the latest progress in combining the DEMO approach with SCs deployments, present studies indicate that creating SCs from DEMO models (and designs using other modelling languages) predominantly depends on hand-crafted coding. This scenario restricts the capacity of Distributed Ledger Technologies (DLTs) when implementing DEMO-oriented information systems, turning the contract creation process mainly manual task <ref type="bibr" target="#b8">[9,</ref><ref type="bibr" target="#b9">10]</ref>.</p><p>While there has been considerable progress in merging the DEMO standard with SCs applications, a pressing need remains to advance the DEMO specification language. The aim is to facilitate the automatic generation of DEMO-based SCs with little to no hand-crafted coding, potentially eradicating manual coding completely. This advancement would boost the capabilities of Distributed Ledger Technologies (DLTs) in deploying DEMO-focused information systems, greatly diminishing manual work and the chance for mistakes in contract development, thanks to early and comprehensive validation by business users and automating repetitive coding tasks.</p><p>SCs for Hyperledger Fabric can be automatically generated through the integration of DEMO Action Rule (AR) Models and a Dynamic Search component of a DEMO based Low-Code Platform (DLCP). This approach offers significant advantages, including savings in time and resources, as well as facilitating the automation of data validation and interaction with blockchain data.</p><p>In this paper, we will examine a single transaction that involves numerous creations and updates. We will also provide an example illustrating how to retrieve data from the blockchain ledger. To this end, our method introduces two sets of rules, all of which have been employed in a real-life project that confirmed the viability of this auto-generation process.</p><p>Research presented in this paper occurred in the context of the LOGHyL (LOGistics Hyper-Ledger project -fictitious name for blind review purposes) initiative which employs blockchain technology to address trust and collaboration issues in logistics. It offers a digital platform using SCs to record micro-hub transactions transparently, allowing stakeholders to access accurate and trustworthy data. This boosts trust and promotes cooperation. Additionally, LOGHyL emphasizes eco-friendly practices through circular economy principles. Overall, LOGHyL, leveraging blockchain and SCs, aims to reshape the Micro-hubs paradigm, promoting a sustainable and efficient system benefiting all involved parties. Micro-hubs are key logistical points allowing coopetition among carriers, improving service, and reducing costs. However, trust in data exchanges remains a challenge. By integrating key technologies, greener logistics is achievable.</p><p>We propose new necessary elements for DEMO Action Model and detail the file structure and actions required to generate GO language methods of a SCs automatically. We can summarize our research question as: How can the DEMO Action Rule Specification (ARS) language be extended to enable automatic generation of SCs, specifically utilizing DEMO AR for transactions and a DLCP Dynamic Search component for retrieving data from the blockchain ledger?</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Literature review</head><p>In the modern global market, there is a pressing need for transparency in supply networks within transportation and production businesses. The demand from consumers and regulators for information about product origins, manufacturing, and movements necessitates robust end-to-end traceability systems. While centralized monitoring has been common, decentralized tracking methods are seen as more trustworthy, secure, and transparent. These methods enhance data protection, reduce inaccuracies, and eliminate single failure points. Despite the technical challenges they present, their benefits outweigh the drawbacks. Adopting such systems allows firms to provide instant data to customers, reduces fraud risks, and ensures regulatory compliance <ref type="bibr" target="#b10">[11]</ref>.</p><p>Open blockchains use digital currency and typically depend on "proof of work" (PoW) for consensus. Conversely, private blockchains involve a set of identified members, ensuring secure transactions among entities with shared goals but limited trust. Fabric, the first blockchain platform of its kind, supports apps written in traditional programming languages. It employs a unique execute-order-validate model, which involves running and checking a transaction, organizing it via consensus and, finally, validating it based on application-specific trust standards <ref type="bibr" target="#b4">[5]</ref>.</p><p>Developing SCs can be intricate and lengthy, necessitating profound knowledge of programming languages and blockchain infrastructures. To address this, <ref type="bibr" target="#b8">Choudhury et al. (2018)</ref> suggested a technique utilizing domain-specific ontologies and semantic regulations to automate the conversion of constraints from legal documents or protocols into SCs. This advanced approach employs parsing and abstract syntax tree handling methods to automatically produce SCs from defined requirements, easing the conversion of stipulations from legal contracts or standards, and ensuring repeatability. The method's success was showcased both by clinical study guidelines and vehicle leasing conditions. The suggested approach can potentially be adapted to different programming languages and blockchain systems, making it appealing for enterprises and people wanting to simplify the SCs development process. By automating this development, it becomes faster and more user-friendly, opening up avenues for various entities to leverage the advantages of SCs <ref type="bibr" target="#b8">[9]</ref>.</p><p>Aparicio et al. <ref type="bibr" target="#b5">[6]</ref> introduce an innovative approach that employs ontological models to support the effective deployment of SCs within an enterprise's blockchain framework. To illustrate the practical application of their method, the authors delve into a case study centred on the Rent-A-Car business model. Additionally, the research delves into the interplay between Blockchain-based SCs and the DEMO Action Model, exploring the transformation of one into the other. Central to the paper's findings is the automated knowledge extraction from the DEMO Action Model, which aids generating Blockchain SCs.</p><p>Other previous work <ref type="bibr" target="#b6">[7]</ref> discussed the usage of blockchain technology to streamline processes between mistrusting organizations. Their study underscores the use of SCs in DEMO Action Models and explores model-driven engineering for automatically generating these contracts. The paper advocates for ontology-centric modelling techniques to ensure precise SCs specifications. While a connection between Solidity Concepts and DEMO Action Model concepts is presented, its optimization remains a topic for future research. The study uses a Rent-A-Car scenario for validation but suggests broader testing across different Action Models. In essence, ontologydriven approaches can enhance data standards, business processes, and blockchain management, particularly in SCs, leading to better understanding and increased blockchain security.</p><p>Tong et al. (2022) <ref type="bibr" target="#b11">[12]</ref> introduced an innovative approach to automate the creation of SCs. Their framework, termed AI-assisted SCs Generation (AIASCG), facilitates collaboration and negotiation on contract clauses among contracting parties from varied backgrounds and languages. The method offers a universal portrayal of contracts using machine natural language (MNL), ensuring a mutual comprehension of contract commitments. Key to this proposal is an AI-driven technique for word segmentation named Separation Inference (SpIn). SpIn is pivotal to AIASCG, efficiently translating natural language sentences into intermediate MNL forms, greatly minimizing the manual intervention in generating contracts.</p><p>In Tallyn et al. 's study <ref type="bibr" target="#b12">[13]</ref>, the application of SCs in four urban delivery models was examined, highlighting the balance between automation and the human touch necessary to maintain trust during deliveries. The research underscores the importance of interpersonal relationships in ensuring trust between delivery personnel and recipients.</p><p>Kim and Laskowsky et al. <ref type="bibr" target="#b13">[14]</ref> used the BC structure from the TOVE traceability ontology to develop SCs for tracking physical goods in global supply chains. These contracts adhere to traceability regulations based on ontology, emphasizing the ability of SCs to trace assets throughout complex supply chains.</p><p>We find a gap in the literature regarding practical solutions for the specific logistical needs of circular economy procedures using blockchain in collaborative micro-hubs. A scalable framework is needed to fully utilize this approach, enabling the creation and application of SCs for all stakeholders in a cooperative and user-friendly way.</p><p>Even with the advancements reported in the domain of SCs, there remain significant barriers that preclude non-technical individuals from easily engaging in the SCs creation process. The vast majority of frameworks and structures employed are complex and often difficult to comprehend for the untrained eye. A notable observation from the literature is that the methodology for elucidating and deploying these contracts largely relies on text-based explanations. This particular mode of presentation can prove to be particularly daunting and perplexing for individuals lacking technical expertise, highlighting a prominent discrepancy in the existing literature.</p><p>Our proposition centers on breaking down the barriers surrounding SCs generation through the integration of visual component. By converting the traditionally text-heavy process into a visual specification, we anticipate that users can more intuitively grasp the essence and framework of the SCs. This visually-driven methodology doesn't just demystify the complexities but also fosters confidence among users. As they can see and interact with the visual elements, they become more engaged in both the creation and comprehension of the SCs. Our emphasis on visual components seeks to not only simplify but also democratize the SCs landscape, inviting participation from a broader spectrum of individuals, irrespective of their technical prowess.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Bridging DEMO with GO smart contracts</head><p>In this section, we elaborate on the procedure of generating Hyperledger Chaincode Go from AR Models and DLCP Dynamic Search. Given the extensive nature of the implementation, we provide a link <ref type="bibr" target="#b14">[15]</ref> that contains the relevant code, facilitating a thorough examination. Before delving in our most current contributions, we provide some context and summary of prior research work in this line.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.">Research context</head><p>The goal of implementing information systems is to enhance organizational efficiency. However, success hinges on elements like system functionalities and organization's attributes. DEMO employs the PSI theory of Enterprise Ontology to dissect the core of an organization, forming cohesive models and diagrams that mirror reality accurately <ref type="bibr" target="#b15">[16]</ref>. We introduce new language elements for SCs creation from DEMO models, aiming for higher efficiency and reduced errors.</p><p>In recent work/studies we extended and validated DEMO's Models with improvements on the representations of it is Fact, Process and Action Models <ref type="bibr" target="#b16">[17,</ref><ref type="bibr" target="#b17">18,</ref><ref type="bibr" target="#b18">19,</ref><ref type="bibr" target="#b19">20]</ref>. Regarding the Action Rule Specification (ARS) language, a comprehensive and explicit specification of logical and mathematical expressions, the specification of complex business rule logic and flow became feasible <ref type="bibr" target="#b15">[16]</ref>. Such meticulousness is paramount in SCs, where minor mistakes can lead to substantial repercussions.</p><p>Furthermore, our proposal appeals to a broader spectrum by incorporating rules via a visual programming language. This facilitates involvement from individuals with limited technical backgrounds, enhancing the entire developmental phase. Our approach paves the way for future SCs projects on the blockchain, by harnessing this synergistic blending of formal language and visual programming.</p><p>This paper extends prior work presented in <ref type="bibr" target="#b20">[21]</ref>, where we focused on the development of an initial prototype that gave us a valued initial insight on how to transpile DEMO ARS to SCs and also helped us with an initial understand of what blocky components and grammar extension we should need to successfully automatically generate SCs within the logistics industry context, using the Hyperledger Fabric as our blockchain platform.</p><p>That previous research gave us a good starting perspective for this paper, since that work lead us directly in the direction of gaps that need to be tackled in the grammar specification that need to be adjusted for specifics blockchain needs.</p><p>In the previous work, we also demonstrated that DEMO Fact Model can be used for creating asset models that will be stored on the blockchain.</p><p>The study presented in this paper explores two specific scenarios derived from the "LOGHyL" project. Firstly we are going to look at auction creation, where we will explore assets creation and updates, each coupled with their relevant verifications. The second scenario that we will look for is how can we fetch auctions from the ledger based on is state. The previous mentioned scenarios will be categorically labelled as: "T01 -Create Auction" and "T02 -Fetch Open Auctions". These examples elucidate processes to asset creation and modification, while all the validations are strictly validated, in the T01, furthermore T02 it is a good example of query ledger.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.">EBNF grammar specification</head><p>In the realm of computer science, Extended Backus-Naur Form (EBNF) constitutes a spectrum of meta-syntax languages, each variant capable of representing a context-free grammar. The primary application of EBNF lies in its utility for the formal articulation of formal languages, inclusive of programming languages utilized in computing.</p><p>The subsequent section delineates tables that elucidate the syntax employed in the formulation of Action Rules. The table is structured in the following manner: the left column enumerates the concepts requiring definition, where a majority of these concepts correspond to specific blocks in the system, and others relate to selectable fields within these blocks. Conversely, the right column of the table is dedicated to providing the explicit definitions of these concepts.</p><p>Additionally, this section introduces new components of our EBNF-based <ref type="bibr" target="#b21">[22]</ref>. The complete grammar, along with further details of these new components, will be presented in the appendices, providing a comprehensive overview of the system's syntax and its extensions. "</p><p>Before analyzing the upcoming tables that illustrate the grammar implemented by Extended Backus-Naur Form (EBNF), it is important to acknowledge keynotes on this grammar:</p><p>• "( )" means grouping • "[ ]" is for optional elements (zero or one time) • " " is for optional elements (zero or more times) • "|" means alternative • "-" means Syntactic Exception. Separates a rule which must be used (on the left) from the rule describing what is not allowed to be used (on the right) ("Consonant = Letter -Vowel;"). If there's nothing on the right, it can be interpreted only as something that must be used ("OneOrMore = Something-;"). • elements with UPPERCASE mean a terminal symbol with specific behavior assigned to the system/dashboard. NOTE: the parameter name that will be used to specify the parameter is independent of the internal property that is linked to it, and therefore doesn't have to be the equal to its name. local_endpoint_request_ body {local_endpoint_parameter | local_endpoint_parameter_set}-NOTE: defines the structure of the API Call's request_body, defining its parameters and/or parameter_sets. local_endpoint_parameter_ set STRING documentation_description {local_endpoint_parameter}-NOTE: After specifying the set_name, it is needed to specify the parameters that are to be inserted into it. local_endpoint_response local_endpoint_success_response local_endpoint_error_response NOTE: must have a behaviour selected for each one. One defined in case the API call is carried out successfully, and one in case it encounters any errors in the process. local_endpoint_success_ response local_endpoint_success_response_affected_object | lo-cal_endpoint_success_response_queried_object | STRING NOTE: When successful, it can return the created/queried/updated/deleted object or simply a custom success message. NOTE: API Call CRUD operation that will be carried influences the dropdown choices that will be present in the 'response' block. For 'create', we will have the 'created object', for 'read' we will have the local_endpoint_success_response_queried_object, for 'update' we will have the 'updated object', and for 'delete' we will have the 'deleted object'. Except for the 'read' crud operation, we have the option to output a custom success message instead of the object. local_endpoint_success_ response_affected_object STRING {response_property | response_set}-NOTE: defines the returning object with the object's name and the properties/property_sets that should be returned inside it. response_property STRING property NOTE: has to be a property belonging to the object that was created/updated/queried/deleted response_set STRING {response_property}-NOTE: defines the set name and the properties that should be included in this response set. local_endpoint_success_ response_queried_object STRING NOTE: the variable names defined in the 'query records' blocks will appear here in a dropdown and the user must select which ones to include in the api call's response. Will return the objects from the selected queries. local_endpoint_error_ response STRING NOTE: error message to be returned. NOTE: properties to be updated in the entity are the match-ing_properties inserted. The matching_id_property is to know which entity to update. delete_record entity_type matching_id_property [BLOCKCHAIN_EXECUTION] NOTE: will search for the selected entity type's entity with the received api call id and will delete that entity. rollback_transaction STRING NOTE: does a rollback on the current action rule's transaction being executed and returns the custom error message defined. NOTE: For now, rollback_transaction is only used in blockchain action rules, but in the future will be reused for general action rules.</p><formula xml:id="formula_0">action causal_link | assign_expression | user_input | edit_entity_instance | user_output | produce_doc | if | while | for_each | post | get | create_record | query_records | update_record |</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3.">From DEMO modelling to Chaincode implementation: Ledger storage</head><p>In this section, we will delve into the process of transpiling DEMO Action Models to blockchain transactions encoded in SCs, encompassing multiple creations and updates. To illustrate this, we will examine the creation of an auction, shedding light on the significance of each action within the DEMO ARS.</p><p>In the "LOGHyL" project, creating an auction involves conducting multiple validations and establishing a relationship between a parcel and the auction itself. Specifically, this process necessitates the creation of the "Auction_Has_Parcel" entity. This entity acts as a pivot table, managing the many-to-many relationship between Auction and Parcel entities. Additionally, it is imperative to alter the state of the parcel from "Pending" to "Auction", indicating that the parcel is part of an ongoing auction. Prior to making this update, a crucial validation step must be taken to ensure that the parcel's current state is indeed "Pending". Now, we will dissect the AR into smaller segments to gain a deeper understanding of the significance of each component within the AR, and to comprehend how it is transpiled into Chaincode.</p><p>The foundation of the AR is encapsulated in the "When" block, as illustrated in Fig. <ref type="figure" target="#fig_0">1</ref>. This segment explicitly outlines various critical components: the AR name, the parameters required for the blockchain request, and the series of actions slated for execution. Additionally, it defines the response mechanism, indicating whether the action has been successfully executed or if any errors have emerged during the process. In Fig. <ref type="figure" target="#fig_0">1</ref> has said previously, we have a property that handles with the parameters that our blockchain method have to receive in order to use it in the actions. We can have two types of parameters:</p><p>The "parameter" block symbolizes a singular value, as depicted in Fig. <ref type="figure" target="#fig_1">2</ref>. The former illustrates a parameter specification devoid of validation, while the latter demonstrates the inclusion of validation for the corresponding parameter.</p><p>The "parameter set" represents the second type of parameter, and it denotes a list of parameters sharing the same structure. Utilizing this format streamlines the process of conveying repetitive information, eliminating the need for multiple insertions of the same data type, thereby enhancing intuitiveness and efficiency. Furthermore, validations can be incorporated since the "set parameter" accommodates individual "parameter" as its properties, allowing for comprehensive data integrity checks. Now, we will examine the Chaincode generated based on the "When", "parameter" and "set parameter" blocks. In the auction example, we encounter multiple "parameter" blocks associated with the auction's properties, as well as a "set parameter" block representing the parcels to be In order to guarantee atomicity, we used a "StartTransaction" method provided by Stub Chaincode Interface, it handles potential errors during the transaction, and ensures the transaction is either rolled back if there were errors or committed if the transaction was successful.</p><p>With the foundational method established, we can delve deeper into incorporating actions within the DEMO AR, specifically for executing data writes on the ledger. To facilitate this, we will introduce and discuss two blocks capable of writing data to the ledger: "create record" and "assign expression".</p><p>As illustrated in Fig. <ref type="figure" target="#fig_2">3</ref>, the "create record" block possesses several properties. The "entity type" property defines the type of entity to be created on the ledger. The "allow duplicates" property can be enabled if specific situations warrant the creation of duplicate records. Lastly, the "property(ies)" property assigns values to various attributes of the auction. By employing the "matching" block, one can link auction properties to parameters that were previously passed to the AR under analysis, ensuring proper initialization and consistency in the data recorded on the ledger. Now that we have all the necessary information that is needed in the block of creation, we can check the Chaincode that will be generated every time we need to create a record on the It is observable that the auction is passed as an argument to the "AuctionCreate" function, and there are consistently steps followed for each creation on the ledger.</p><p>Firstly, a unique key is generated to create a composite key, which facilitates the identification and retrieval of the record. Following this, the properties of the entity are validated. This validation process is generated automatically, based on any validations specified in the "parameter" component. After validation, a check is performed to verify if duplicate values are permissible for this particular record. Subsequently, a document type (docType) property is assigned to the entity, which aids in the categorization and querying of ledger records. Lastly, the entity, along with all its validated properties and the assigned docType, is securely stored on the ledger.</p><p>To invoke this method from the main function, a specific code block needs to be integrated into the "AuctionCreateMain" method. Here is how it will appear once this action has been In order to create the records for the entity that is responsible for the management of manyto-many relation between auction and parcel, e need to add a new component to it the "for each" block, this receives a set of parcels in this case and creates for each parcel a record of type "Auction Has Parcel", as showed in Fig. <ref type="figure" target="#fig_4">4</ref>. The process of creating an 'auction' entity and an 'auction has parcel' entity differs in only one specific aspect. This distinction lies in the adaptation of the generated function within the 'for each' loop to accommodate the 'Auction_Has_Parcel' entity type. Specifically, in the 'AuctionCreateMain' section under actions, an additional 'for each' loop is incorporated. The code snippet added to this loop is as follows: To generate records for the entity that manages the many-to-many relationship between auctions and parcels, it is necessary to incorporate the "for each" block. This block accepts a set of parcels, and for each parcel, it creates a record of the type "Auction Has Parcel." This process is visually depicted in Fig. <ref type="figure" target="#fig_4">4</ref>, illustrating how the "for each" block facilitates the efficient creation of multiple relational records between auctions and parcels.</p><p>The "assign expression" component is utilized for updating properties in existing records, and it comprises several key properties. The "Scope" property determines the type of object to be updated; in the example depicted in Fig. <ref type="figure" target="#fig_6">5</ref>, the intention is to update an Entity record. The "ent type" is specified as "Parcel", indicating the entity type to be updated, and the "property" is set to "State", pinpointing the specific parcel property to be modified during the update operation. On the right side of the equal sign, the desired value to be assigned to the updated property is clearly presented. This configuration ensures precise and intentional updates to record properties. Looking carefully at the component showed in Fig. <ref type="figure" target="#fig_6">5</ref>, we can use all the information in that component to perform the update using Chaincode, for that we will need to create the method "ParcelAuctionStartUpdateState" with the following structure:  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4.">From DEMO modelling to Chaincode implementation: Ledger reading</head><p>The DLCP Dynamic Search component is a recent innovation in our DLCP, streamlining the process of crafting queries to visualize data from various system entities. The user begins by selecting the desired entity or entities through select boxes, defining the scope of their query. Following this, they choose the specific properties they want to retrieve and designate certain properties to serve as filters in the subsequent stage. In the final step, the user applies these filters based on the properties they selected earlier. This intuitive three-step process enables users to effortlessly design data queries that suit their preferences, all while requiring no technical expertise.</p><p>To better understand the DLCP Dynamic Search component, let's explore an example where a user wants to query all open auctions in the system. Initially, the user selects the "Auction" entity. Following that, in the property selection phase, the "state" property is chosen as a filter. Finally, the user specifies a filter condition, setting the "state" to "OPEN". After saving these preferences, a corresponding method is auto-generated in the SCs, adhering to a predefined pattern to ensure consistent and accurate data retrieval.</p><p>From the example provided earlier, and based on the information supplied by the user, we can derive the query: {"selector": {"docType": "AUCTION", "state": "OPEN"}}. Utilizing this data, we can translate the user-created input from the DLCP Dynamic Search into the corresponding Chaincode, ensuring seamless interaction and data retrieval from the blockchain ledger.</p><p>Listing 6: Query Open Auction queryString := ' {"selector": "{\"docType\":\"AUCTION\", \"state\":\"OPEN\"} "}' resultsIterator, err := stub.GetQueryResult(queryString)</p><p>As data accumulates within the ledger, retrieval operations can become increasingly timeconsuming. To mitigate this latency, Hyperledger Fabric introduces the concept of the "State Database", the world state maintains the current attribute values of a business object as a distinct ledger status. This is beneficial since applications typically need the present value of an object. Traversing the entire blockchain to determine an object's current value would be inefficient, instead we can directly retrieve it from the "State Database". While the "State Database" provides a structured snapshot of the ledger's information, search operations can still experience latency, as data continues to amass. To counteract this, custom indexes are tailored for each distinct query executed on the ledger. Specifically, for the "Query Open Auctions" operation, the following index was automatically generated: Listing 7: Designing an Index to Access Open Auctions { "index": {"fields": [ "docType", "state" ]}, "name": "auctionByStateIndex", "type": "json" } This analysis demonstrates how data queries can be designed in the DLCP Dynamic Search component, which can subsequently be seamlessly converted into Chaincode. Additionally, performance considerations were discussed in the context of ledger searches. Enhancements were made by adding indices to the Hyperledger's "State Database", optimizing the search queries crafted for the SC.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.5.">Structure of generated SC files</head><p>In the endeavour to automate SC generation, it was imperative to conceive an intuitive method to structure the output files resulting from the transformation of DEMO AR to Chaincode. For the proposed structure (Fig. <ref type="figure" target="#fig_8">6</ref>), each AR will generate a corresponding file within the "Chaincode" directory. Simultaneously, individual entities will have their data models encapsulated in distinct files located in the "Models" directory. This methodology is employed because users create each DEMO AR individually. If an error occurs or a modification is necessary in a specific AR, it is more straightforward to pinpoint and remove the generated file associated with that particular AR. Subsequently, a new file can be created based on the alterations made to the AR. This process enhances the ease of error correction and adjustment, leading to a more efficient and user-friendly experience.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Results and discussion</head><p>The findings of this research illustrate the feasibility of automatic SC generation for Hyperledger Fabric using DEMO AR models and DLCP Dynamic Search. Such an approach offers a multitude of advantages, including enhanced efficiency in the creation process for intricate contracts, thereby reducing both the time and resources required. Furthermore, it provides capabilities for automated data validation, error handling, and interaction management within the blockchain.</p><p>Through a detailed study of a specific transaction "Creation of Auction" and method to "Query Open Auctions" we developed a SC in Go. Subsequent reverse engineering exercises further reinforced the viability of automatic SC generation. Our exploration validated various automatic generation scenarios encompassing aspects like data validation, relationships between system entities, iterative processes among new transactions and existing blockchain data, sophisticated blockchain queries, and robust error management.</p><p>The AR models presented in figures above include many new elements for DEMO's ARS Language. For time and space reasons, we add these extensions to EBNF in the link <ref type="bibr" target="#b14">[15]</ref>.</p><p>The insights garnered from this study suggest that leveraging the DEMO AR models can be a wise strategy for automatic SC generation development. It streamlines the conception of intricate contracts and provides insights into the organization of the resultant files.</p><p>However, potential limitations should be acknowledged. The inherent expressiveness of the DEMO language may constrain the crafting of more advanced contract logic. This realization highlights the potential need to augment the DEMO language components to address blockchaincentric challenges. By integrating these refinements, the proposed framework can evolve into a holistic solution, thereby facilitating the development of increasingly intricate and versatile SC within the blockchain.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Conclusions and future work</head><p>This research showcases the promising potential of utilizing DEMO AR models for the automated generation of SC, potentially saving significant time and resources in developing complex contracts. This approach offers automation in critical areas, such as data validation and error management, and also ensures robust data interaction within the Blockchain. Additionally, the study delves into aspects of performance in blockchain queries and proposes a structured format for the files that will be generated automatically.</p><p>Furthermore, the adaptability of this approach suggests applications across various business sectors, provided there is an appropriate DEMO model to depict the business process. Such versatility could spearhead innovations in SC development, possibly leading to broader blockchain technology adoption.</p><p>Regarding future work, one research line could be the integration of advanced functionalities into automatically generated contracts. For instance, implementing more sophisticated filtering mechanisms at the level of queries can ensure that blockchain data searches are conducted more transparently Instead of merely returning a single entity, the system could retrieve related entities, thereby providing a richer dataset. DLCP Dynamic Search holds significant potential for aiding future developments in this area of research. As we increase this complexity, it is imperative to consider performance aspects. Enhancing the system's efficiency, while maintaining its robustness, is crucial to ensure that users get timely and relevant information without compromising speed and reliability, in the future, we aim to develop an optimized method for creating indexes based on the queries specified through the DLCP Dynamic Search component. Though DEMO models are adaptable, specific sectors might necessitate nuanced grammatical rules or modifications. This implies that while our current foundational structure of DEMO models for SCs can serve a broad range of subjects, there might be a need for further tailored adjustments or refinements to cater to the unique requirements of blockchain.</p><p>An innovative low-code platform grounded in DEMO is underway, aiming to transpile DEMO models directly into GO code, simplifying blockchain implementation, facilitating the architecture of involved entities and automating essential API code generation.</p><p>The DEMO AR models could be pivotal in SC evolution, especially within the Hyperledger Fabric environment. The merits of this methodology are evident, and further research should broaden the capabilities of generated contracts and evaluate optimized approaches tailored to each specific scenario.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: DEMO Action Rule: "When" block</figDesc><graphic coords="10,151.80,204.52,291.70,231.51" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: DEMO Action Rule: Parameter Block with validation</figDesc><graphic coords="11,89.29,84.19,416.69,179.32" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: DEMO Action Rule: Create Auction</figDesc><graphic coords="12,89.29,84.19,416.69,104.54" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>3 :</head><label>3</label><figDesc>Pseudo Code of Creating Auction Main Method with create auction added err = s.AuctionCreate(stub, auction) if err != nil { transactionError = true return shim.Error(err.Error()) }</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: DEMO Action Rule: Create Auction Has Parcel</figDesc><graphic coords="13,130.96,258.90,333.37,84.33" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Listing 4 :</head><label>4</label><figDesc>Pseudo Code of Creating Auction Main Method with create auction has parcel added for _, parcelId := range parcels { err = s.AuctionHasParcelCreate(stub, auction.ID, parcelId) if err != nil { transactionError = true return shim.Error(err.Error()) } }</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Figure 5 :</head><label>5</label><figDesc>Figure 5: DEMO Action Rule: Update Parcel State</figDesc><graphic coords="14,97.62,163.88,400.02,191.57" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_7"><head>Listing 5 :</head><label>5</label><figDesc>Code of Updating Parcel State</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_8"><head>Figure 6 :</head><label>6</label><figDesc>Figure 6: Structure of Generated Files</figDesc><graphic coords="16,193.47,267.74,208.36,258.36" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 :</head><label>1</label><figDesc></figDesc><table><row><cell></cell><cell cols="3">DISME's Complete Action Rule's EBNF Syntax</cell><cell></cell></row><row><cell>when</cell><cell cols="4">WHEN transaction_type IS | HAS_BEEN transaction_state {</cell></row><row><cell></cell><cell>action}-</cell><cell></cell><cell></cell><cell></cell></row><row><cell>local_endpoint_parameter</cell><cell>STRING</cell><cell>property</cell><cell>documentation_description</cell><cell>parame-</cell></row><row><cell></cell><cell cols="3">ter_example_value validation_condition [MANDATORY]</cell><cell></cell></row></table></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<author>
			<persName><forename type="first">S</forename><surname>Nakamoto</surname></persName>
		</author>
		<ptr target="https://metzdowd.com" />
		<title level="m">Bitcoin: A Peer-to-Peer Electronic Cash System</title>
				<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
	<note>Cryptography Mailing</note>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">An Overview of Blockchain Technology: Architecture, Consensus, and Future Trends</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Zheng</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Xie</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Dai</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Wang</surname></persName>
		</author>
		<idno type="DOI">10.1109/BigDataCongress.2017.85</idno>
	</analytic>
	<monogr>
		<title level="m">IEEE International Congress on Big Data (BigData Congress)</title>
				<imprint>
			<date type="published" when="2017">2017. 2017</date>
			<biblScope unit="page" from="557" to="564" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<author>
			<persName><forename type="first">N</forename><surname>Szabo</surname></persName>
		</author>
		<ptr target="https://www.semanticscholar.org/paper/Smart-Contracts-%3A-Building-Blocks-for-Digital-Szabo/9b6cd3fe0bf5455dd44ea31422d015b003b5568f" />
		<title level="m">Smart Contracts : Building Blocks for Digital Markets</title>
				<imprint>
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Smart contracts based on blockchain for logistics management</title>
		<author>
			<persName><forename type="first">N</forename><surname>Álvarez Díaz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Herrera-Joancomartí</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Caballero-Gil</surname></persName>
		</author>
		<idno type="DOI">10.1145/3109761.3158384</idno>
		<idno>doi:</idno>
		<ptr target="10.1145/3109761.3158384" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 1st International Conference on Internet of Things and Machine Learning, IML &apos;17</title>
				<meeting>the 1st International Conference on Internet of Things and Machine Learning, IML &apos;17<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2017">2017</date>
			<biblScope unit="page" from="1" to="8" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Hyperledger fabric: a distributed operating system for permissioned blockchains</title>
		<author>
			<persName><forename type="first">E</forename><surname>Androulaki</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Barger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Bortnikov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Cachin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Christidis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">De</forename><surname>Caro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Enyeart</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Ferris</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Laventman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Manevich</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Muralidharan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Murthy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Nguyen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Sethi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Singh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Smith</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Sorniotti</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Stathakopoulou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Vukolić</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">W</forename><surname>Cocco</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Yellick</surname></persName>
		</author>
		<idno type="DOI">10.1145/3190508.3190538</idno>
		<idno>doi:</idno>
		<ptr target="10.1145/3190508.3190538" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Thirteenth EuroSys Conference, EuroSys &apos;18</title>
				<meeting>the Thirteenth EuroSys Conference, EuroSys &apos;18<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2018">2018</date>
			<biblScope unit="page" from="1" to="15" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">Automated DEMO Action Model Implementation using Blockchain Smart Contracts</title>
		<author>
			<persName><forename type="first">M</forename><surname>Aparício</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Guerreiro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Sousa</surname></persName>
		</author>
		<idno type="DOI">10.5220/0010147602830290</idno>
		<imprint>
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<title level="m" type="main">Decentralized Enforcement of DEMO Action Rules Using Blockchain Smart Contracts</title>
		<author>
			<persName><forename type="first">M</forename><surname>Aparício</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Guerreiro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Sousa</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<author>
			<persName><forename type="first">B</forename><surname>Hornáčková</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Skotnica</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Pergl</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-030-06097-8_7</idno>
		<title level="m">Exploring a Role of Blockchain Smart Contracts in Enterprise Engineering: 8th Enterprise Engineering Working Conference, EEWC 2018</title>
				<meeting><address><addrLine>Luxembourg, Luxembourg</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2018-06-01">May 28 -June 1, 2018. 2019</date>
			<biblScope unit="page" from="113" to="127" />
		</imprint>
	</monogr>
	<note>Proceedings</note>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m" type="main">Auto-Generation of Smart Contracts from Domain-Specific Ontologies and Semantic Rules</title>
		<author>
			<persName><forename type="first">O</forename><surname>Choudhury</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Rudolph</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Sylla</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Fairoza</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Das</surname></persName>
		</author>
		<idno type="DOI">10.1109/Cybermatics_2018.2018.00183</idno>
		<imprint>
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<title level="m" type="main">Das Contract -A Visual Domain Specific Language for Modeling Blockchain Smart Contracts</title>
		<author>
			<persName><forename type="first">M</forename><surname>Skotnica</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Pergl</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-030-37933-9_10</idno>
		<imprint>
			<date type="published" when="2020">2020</date>
			<biblScope unit="page" from="149" to="166" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Blockchain Technology Implementation in Logistics</title>
		<author>
			<persName><forename type="first">E</forename><surname>Tijan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Aksentijevic</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Ivanić</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Jardas</surname></persName>
		</author>
		<idno type="DOI">10.3390/su11041185</idno>
	</analytic>
	<monogr>
		<title level="j">Sustainability</title>
		<imprint>
			<biblScope unit="volume">11</biblScope>
			<biblScope unit="page">1185</biblScope>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Smart Contract Generation Assisted by AI-Based Word Segmentation</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Tong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Tan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Guo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Shen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Qin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Zhuo</surname></persName>
		</author>
		<idno type="DOI">10.3390/app12094773</idno>
		<ptr target="9Pub-lisher:MultidisciplinaryDigital" />
	</analytic>
	<monogr>
		<title level="j">Applied Sciences</title>
		<imprint>
			<biblScope unit="volume">12</biblScope>
			<biblScope unit="page">4773</biblScope>
			<date type="published" when="2022">2022</date>
			<publisher>Publishing Institute</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<author>
			<persName><forename type="first">E</forename><surname>Tallyn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Revans</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Morgan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Fisken</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Murray-Rust</surname></persName>
		</author>
		<idno type="DOI">10.1145/3411764.3445525</idno>
		<title level="m">Enacting the Last Mile: Experiences of Smart Contracts in Courier Deliveries</title>
				<imprint>
			<date type="published" when="2021">2021</date>
			<biblScope unit="page" from="1" to="14" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Toward an ontology-driven blockchain design for supply-chain provenance</title>
		<author>
			<persName><forename type="first">H</forename><surname>Kim</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Laskowski</surname></persName>
		</author>
		<idno type="DOI">10.1002/isaf.1424</idno>
	</analytic>
	<monogr>
		<title level="j">Intelligent Systems in Accounting</title>
		<imprint>
			<biblScope unit="volume">25</biblScope>
			<biblScope unit="page" from="18" to="27" />
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
	<note>Finance and Management</note>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<ptr target="https://bit.ly/loghloriginal-date:2023-09-25" />
		<title level="m">Towards automatic smart contract generation from demo models: a case in logistics using hyperledger</title>
				<imprint>
			<date type="published" when="2023">2023</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Towards DEMO model-based automatic generation of smart contracts</title>
		<author>
			<persName><forename type="first">D</forename><surname>Aveiro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Oliveira</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-031-34175-5_5</idno>
		<idno>doi:</idno>
		<ptr target="10.1007/978-3-031-34175-5\_5" />
	</analytic>
	<monogr>
		<title level="m">Advances in Enterprise Engineering XVI -12th Enterprise Engineering Working Conference, EEWC 2022</title>
				<editor>
			<persName><forename type="first">E</forename><forename type="middle">A</forename><surname>Cristine Griffo</surname></persName>
		</editor>
		<meeting><address><addrLine>Leusden, The Netherlands</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2022">November 2-3, 2022. 2022</date>
			<biblScope unit="volume">473</biblScope>
			<biblScope unit="page" from="71" to="89" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Towards the x-theory: An evaluation of the perceived quality and functionality of demo&apos;s process model</title>
		<author>
			<persName><forename type="first">D</forename><surname>Pacheco</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Aveiro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Pinto</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Gouveia</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Advances in Enterprise Engineering XV</title>
				<editor>
			<persName><forename type="first">D</forename><surname>Aveiro</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">H</forename><forename type="middle">A</forename><surname>Proper</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">S</forename><surname>Guerreiro</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Vries</surname></persName>
		</editor>
		<meeting><address><addrLine>Cham</addrLine></address></meeting>
		<imprint>
			<publisher>Springer International Publishing</publisher>
			<date type="published" when="2022">2022</date>
			<biblScope unit="page" from="129" to="148" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Evaluation of the perceived quality and functionality of fact model diagrams in demo</title>
		<author>
			<persName><forename type="first">D</forename><surname>Pacheco</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Aveiro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Gouveia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Pinto</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Advances in Enterprise Engineering XV</title>
				<editor>
			<persName><forename type="first">D</forename><surname>Aveiro</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">H</forename><forename type="middle">A</forename><surname>Proper</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">S</forename><surname>Guerreiro</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Vries</surname></persName>
		</editor>
		<meeting><address><addrLine>Cham</addrLine></address></meeting>
		<imprint>
			<publisher>Springer International Publishing</publisher>
			<date type="published" when="2022">2022</date>
			<biblScope unit="page" from="114" to="128" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Validation of demo&apos;s conciseness quality and proposal of improvements to the process model</title>
		<author>
			<persName><forename type="first">D</forename><surname>Pinto</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Aveiro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Pacheco</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Gouveia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Gouveia</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Advances in Enterprise Engineering XIV</title>
				<editor>
			<persName><forename type="first">D</forename><surname>Aveiro</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">G</forename><surname>Guizzardi</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">R</forename><surname>Pergl</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">H</forename><forename type="middle">A</forename><surname>Proper</surname></persName>
		</editor>
		<meeting><address><addrLine>Cham</addrLine></address></meeting>
		<imprint>
			<publisher>Springer International Publishing</publisher>
			<date type="published" when="2021">2021</date>
			<biblScope unit="page" from="133" to="152" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Fact model in demo -urban law case and proposal of representation improvements</title>
		<author>
			<persName><forename type="first">B</forename><surname>Gouveia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Aveiro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Pacheco</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Pinto</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Gouveia</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Advances in Enterprise Engineering XIV</title>
				<editor>
			<persName><forename type="first">D</forename><surname>Aveiro</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">G</forename><surname>Guizzardi</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">R</forename><surname>Pergl</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">H</forename><forename type="middle">A</forename><surname>Proper</surname></persName>
		</editor>
		<meeting><address><addrLine>Cham</addrLine></address></meeting>
		<imprint>
			<publisher>Springer International Publishing</publisher>
			<date type="published" when="2021">2021</date>
			<biblScope unit="page" from="173" to="190" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<monogr>
		<title level="m" type="main">Demo models based automatic smart contract generation: a case in logistics using hyperledger</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">P</forename><surname>David Aveiro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Leonardo</forename><surname>Abreu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Freitas</surname></persName>
		</author>
		<idno type="DOI">10.62036/ISD.2023.18</idno>
		<ptr target="https://doi.org/10.62036/ISD.2023.18" />
		<imprint>
			<date type="published" when="2023">2023</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">A new action meta-model and grammar for a DEMO based low-code platform rules processing engine</title>
		<author>
			<persName><forename type="first">D</forename><surname>Aveiro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Freitas</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-031-34175-5_3</idno>
		<idno>doi:</idno>
		<ptr target="10.1007/978-3-031-34175-5\_3" />
	</analytic>
	<monogr>
		<title level="m">Advances in Enterprise Engineering XVI -12th Enterprise Engineering Working Conference, EEWC 2022</title>
				<editor>
			<persName><forename type="first">E</forename><forename type="middle">A</forename><surname>Cristine Griffo</surname></persName>
		</editor>
		<meeting><address><addrLine>Leusden, The Netherlands</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2022">November 2-3, 2022. 2022</date>
			<biblScope unit="volume">473</biblScope>
			<biblScope unit="page" from="33" to="52" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
