Giter Site home page Giter Site logo

smtifahim / efbo-ontology Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 287 KB

This repository contains three ontology files relevant to the Event-Based Functional Behaviour Ontology (EFBO) project as part of a Software Engineering thesis.

HTML 96.17% CSS 3.83%
formal-specification formal-verification ontology software-development software-engineering software-verification

efbo-ontology's Introduction

The EFBO Ontology Repository

Table of Contents

This repository contains three ontology files relevant to the Event-Based Functional Behaviour Ontology (EFBO) project, developed as part of a Software Engineering thesis. The thesis introduces a novel, ontology-oriented formal approach to represent and model event-based software systems. The approach is more intuitive and practical compared to the existing formal systems of representation in that it allows formal reasoning while maintaining the critical aspects of human comprehension. Refer to the thesis document to learn more.

The Event-Based Functional Behaviour Ontolog (EFBO-Core)

The Event-Based Functional Behavior Ontology (EFBO) is an ontology to represent the functional behavior of event-based software systems. The ontology provides logical specifications for the core concepts associated with event-based systems. Based on the understanding of functional reasoning, the notion of affordances, and the notion of action, events, and change in commonsense reasoning the ontology can effectively represent the functional behavior of event-based systems. The ontology-based representation promotes enhanced comprehension and control over the following defining aspects of the event-based systems.

  • Allowable set of events
    • What are the set of events that exist for a system and how to represent them?
  • Allowable flow of events
    • How to represent the partial order restrictions on the allowable set of events?
  • Event locations and interfaces
    • How to describe the system in terms of its events and their associated interfaces?
  • Allowable event-interface-agent interactions
    • How to represent the interactions among the agents, interfaces, and events of the system?

The EFBO is written in OWL-DL formalism and we have verified its consistency using the HermiT reasoner. The following figure presents the key classes and properties (relations) of the EFBO ontology. On the left, we have the logical is-a hierarchy of the EFBO classes. On the right, we display the relational properties of the ontology.

image Figure: The classes and the properties of the EFBO ontology.

The EFBO classes under the System Entity correspond to a set of conceptual entities that are required to describe an event-based system. A system's functional behavior cannot be reasoned without specifying the logical axioms of these entities. In EFBO, the system entities are classified into four mutually disjoint classes called the Agent, Event, Interface, and the Functionality.

Agent: The class Agent represents a set of system entities that interact with a set of interfaces of the system. To be an instance of the Agent class, it is necessary and sufficient for a system entity to interact with an interface through the interactsWith property.

Event: The class Event represents a set of entities that are the occurents of a system. The events, i.e., the instances of the class Event, therefore are atomic and do not travel through time. It is necessary for a system entity to have an interface through the hasInterface property for that entity to be an instance of the class Event.

Activity: The class Activity represents a set of actions that are performed by some agent. To be an instance of the class Activity, it is necessary and sufficient for an action entity to be connected to an agent entity through the isPerformedBy property. By definition, an activity must inherit all the properties of an action.

Interface: The class Interface represents a set of system entities that serve as a shared boundary between an agent and an event entity. It is necessary for an interface to be associated with an event through the isInterfaceOf property.

Functionality: A functionality of a system is a named entity that represents a set of activities of a system within an interval. A functionality f of a system can represent a single activity; i.e., f = {a1}, or a series of contiguous activities; i.e., f = {a1, a2,..., an}. The overall functionality of a system can be broken down into a set of named functionalities chosen by a human modeller. Each of the functionalities, in that case, must have a boundary that marks the beginning and the ending events associated with that functionality. Refer to the thesis document for a detailed understanding of the notion of functionality within the context of software systems.

The following figure provides the list of EFBO classes along with their logical expressions in pure DL syntax. The figure also includes the axioms for the remaining defined classes within the EFBO that represent specific types of agents and agent-specific user interfaces.

image Figure: The EFBO Class Expressions in Pure DL.

The following figure illustrates different properties among the EFBO classes that reflect the relationships formed by different classes. The dotted arrows represent inferred relations based on the definitions of the EFBO core classes.

image Figure: The properties relating the core classes of the EFBO.

The EFBO Functional Reasoning Category (EFBO-FRC) Ontology

The EFBO-Functional Reasoning Category (EFBO-FRC) includes the classes associated with different functional reasoning categories under the Entity Classifier Class of the core EFBO. The EFBO-FRC is an importable module for the EFBO core ontology and includes logical axioms to define its reasoning categories based on different EFBO core classes and properties. It should be noted that the EFBO-FRC does not contain any new properties for itself and simply reuses the properties from the EFBO core.

image Figure: The EFBO Functional Reasoning Category (EFBO-FRC) Classes.

Closely based on the general reasoning categories in event calculus such as deductive, abductive, and inductive reasoning, we have included several functional reasoning categories for the systems that are modeled based on the EFBO representation. These categories are defined within this utility ontology called EFBO-FRC.

The EFBO Functional Consistency Validation (EFBO-V) Ontology

To facilitate the validation process, we have developed this utility ontology called the EFBO Consistency Validation Ontology (EFBO-V). The EFBO-V imports the core EFBO along with the EFBO-FRC ontology and is designed to integrate and classify the functional entities of two given source models into a comparable representation. There are two interrelated categories of classes within the EFBO-V. First is the set of classes under the system validation entity and the second is the set of classes under the functional reasoning category of the EFBO-FRC ontology.

image

Figure: The classes under the System Validation Entity and the properties of the EFBO-V ontology.

The figure above presents the EFBO-V classes under the System Validation Entity along with the properties of the EFBO-V ontology. The classes in the  figure are self-descriptive and are used to classify different kinds of entities based on their source systems. Directly under the System Validation Entity, we have four kinds of classes as follows: Consistent Entity, Inconsistent Entity, Participant Entity, and Participant System. The rest two of the latter classes are used to classify the entities based on a set of consistency validation rules that we are going to describe in the next section. The rest of the classes are there to classify the set of individuals under the core EFBO classes; i.e., the Event, Agent, and Interface classes, for each of the participating systems.

efbo-ontology's People

Contributors

smtifahim avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.