Ontology-based Applications

Ontology-based Applications

Properties

Element TypeOutline

▣  From Ontology Definition to Data Management and Data Use

A process for ontology-based applications with three steps is shown:

  1. The application ontology is edited using the PIG classes for ontologies. For example the terms (concepts) for library, book and author plus their relationships owned-by and written-by are defined.
  2. The application data is edited using the classes for application as generated from the application ontology. For example, libraries, books and authors are defined with their relationships.
  3. The application data is stored in a graph database, a so-called Triple-Store. For example, the users can query the data to list all libraries owning a given book or to list all authors found in a given library. The latter is a graph search which is particularly performant when graph databases are used.

The process is shown using the ArchiMate notation. Business-related elements are yellow and IT-application-related elements are blue. The BPMN notation would show a lane per role Ontologist, Data Steward and User at the top and the business functions shown underneath as process steps within.

All data conforms to the Product Information Graph (PIG) metamodel, either in JSON-LD or Turtle format.

If you like, have a look at the demonstration:

StepLibraries (Example )Develop your own example
1Open an Editor with loaded classes for building an ontology and some terms. You can add terms of the library domain.Open an Editor with loaded classes for building an ontology. You can add terms of your application domain.
2Inspect the Library Ontology as HTML.<br/>Download the Classes for Libraries (as generated from the Library Ontology) to laod in the editor in the next step.Export SpecIF Class Definitions (third option) to load in the next step.
3Open an Editor with loaded classes for managing libraries and some instances. You can add data according to the library ontology defined above.Open an Editor ready to load classes for managing application data exported above. You can add data according to your application ontology.
4Inspect the Library Data as HTML<br/>Download the Library Data as Turtle to load in the next step.Export your application data (Turtle) to load in the next step.
5Load the library data to your favorite graph database, e.g. Apache Fuseki.Load your application data to your favorite graph database, e.g. Apache Fuseki.

Please note: The demonstration uses the SpecIF tools until the CASCaRA tools are available. If you like the approach, support our implementation team validating the CASCaRA standard in preparation!

Application Usage.png

Properties

Element TypeViewpoint
NotationApplication Usage

Statements

▣  From Ontology Definition to Data Management and Data Useshows□  Data Management
□  Data Steward
□  Data Use
□  Edit Application Data
□  Edit Application Ontology
□  Ontologist
□  Ontology Definition
□  PIG App
□  Triple-Store
□  Use Application Data
□  User
○  Application Data [JSON-LD]
○  Application Data [RDF]
○  Application Data [Turtle]
○  Application Ontology [JSON-LD]
○  Classes for Application [JSON-LD]
○  Classes for Ontology [JSON-LD]

Model Elements (Glossary)

Properties

Element TypeModel Elements (Glossary)

○  Application Data [JSON-LD]

Classes and instances (individuals) representing the application data. The data structure (pattern) conforms with the CASCARA Metamodel.

Properties

Element TypeData Object

Statements

□  PIG App
accesses, stores○  Application Data [JSON-LD]
▣  From Ontology Definition to Data Management and Data Use
shows○  Application Data [JSON-LD]

○  Application Data [RDF]

Classes and instances (individuals) representing the application ontology. The data structure (pattern) conforms with the CASCARA Metamodel, so that standard queries can be used.

Properties

Element TypeData Object

Statements

□  Triple-Store
accesses, stores○  Application Data [RDF]
▣  From Ontology Definition to Data Management and Data Use
shows○  Application Data [RDF]

○  Application Data [Turtle]

Classes and instances (individuals) representing the application data. The data structure (pattern) conforms with the CASCARA Metamodel.

Properties

Element TypeData Object

Statements

□  PIG App
□  Triple-Store
accesses, stores○  Application Data [Turtle]
▣  From Ontology Definition to Data Management and Data Use
shows○  Application Data [Turtle]

○  Application Ontology [JSON-LD]

Classes and instances (individuals) representing the application ontology. The data structure (pattern) conforms with the CASCARA Metamodel.

Properties

Element TypeData Object

Statements

□  PIG App
accesses, stores○  Application Ontology [JSON-LD]
▣  From Ontology Definition to Data Management and Data Use
shows○  Application Ontology [JSON-LD]

○  Classes for Application [JSON-LD]

A set of classes allowing to manage application data. The data structure (pattern) conforms with the CASCARA Metamodel.

Properties

Element TypeData Object

Statements

□  PIG App
□  PIG App
accesses, stores○  Classes for Application [JSON-LD]
▣  From Ontology Definition to Data Management and Data Use
shows○  Classes for Application [JSON-LD]

○  Classes for Ontology [JSON-LD]

A set of classes allowing to define an ontology. The data structure (pattern) conforms with the CASCARA Metamodel.

Properties

Element TypeData Object

Statements

□  PIG App
accesses, stores○  Classes for Ontology [JSON-LD]
▣  From Ontology Definition to Data Management and Data Use
shows○  Classes for Ontology [JSON-LD]

□  Data Management

Given a software application that manages the assets (inventory) of a library, the data of the books, their authors and the owning libraries is collected and entered.

Properties

Element TypeArchiMate:BusinessProcess

Statements

□  Data Managementaggregates□  Edit Application Data
□  Ontology Definition
flows to□  Data Management
□  Data Managementflows to□  Data Use
□  Data Steward
is assigned to□  Data Management
▣  From Ontology Definition to Data Management and Data Use
shows□  Data Management

□  Data Steward

Responsible for defining the application data using the classes of the application ontology. In a different domain the Data Steward may be a Systems Engineer using a dedicated authoring tool.

Properties

Element TypeArchiMate:BusinessRole

Statements

□  Data Stewardis assigned to□  Data Management
□  Edit Application Data
▣  From Ontology Definition to Data Management and Data Use
shows□  Data Steward

□  Data Use

Given a software application that has a database of books, their authors and owning libraries, a book catalog with search capabilities may be displayed.

Properties

Element TypeArchiMate:BusinessProcess

Statements

□  Data Useaggregates□  Use Application Data
□  Data Management
flows to□  Data Use
□  User
is assigned to□  Data Use
▣  From Ontology Definition to Data Management and Data Use
shows□  Data Use

□  Edit Application Data

Edit (create and maintain) the application data.

Properties

Element TypeArchiMate:BusinessFunction

Statements

□  Data Management
aggregates□  Edit Application Data
□  Edit Application Ontology
flows to□  Edit Application Data
□  Edit Application Dataflows to□  Use Application Data
□  Data Steward
is assigned to□  Edit Application Data
□  PIG App
serves□  Edit Application Data
▣  From Ontology Definition to Data Management and Data Use
shows□  Edit Application Data

□  Edit Application Ontology

Edit (create and maintain) the application ontology.

Properties

Element TypeArchiMate:BusinessFunction

Statements

□  Ontology Definition
aggregates□  Edit Application Ontology
□  Edit Application Ontologyflows to□  Edit Application Data
□  Ontologist
is assigned to□  Edit Application Ontology
□  PIG App
serves□  Edit Application Ontology
▣  From Ontology Definition to Data Management and Data Use
shows□  Edit Application Ontology

□  Ontologist

Responsible for defining the application ontology, i.e. the concepts and terms with their relationships within a given application domain, such as library management in this example or systems engineering in another.

Properties

Element TypeArchiMate:BusinessRole

Statements

□  Ontologistis assigned to□  Edit Application Ontology
□  Ontology Definition
▣  From Ontology Definition to Data Management and Data Use
shows□  Ontologist

□  Ontology Definition

In ontology-driven application development, the first step is to define the entities and their relationships of the application domain, called the application ontology.

For example, the ontology of a simple library asset management system (or inventory management system of a library), would include the entities are book, author plus library and the relationships are written-by plus owned-by, where the former is restricted to book-author relationships and the latter is restricted to book-library relationships.

Properties

Element TypeArchiMate:BusinessProcess

Statements

□  Ontology Definitionaggregates□  Edit Application Ontology
□  Ontology Definitionflows to□  Data Management
□  Ontologist
is assigned to□  Ontology Definition
▣  From Ontology Definition to Data Management and Data Use
shows□  Ontology Definition

□  PIG App

A web application for creating, reading, updating and deleting data elements per class. The app is configured by the classes loaded at initialization time. The classes govern the choice and the dialog layout for modifying the data. Thus, the same software is used for more or less complex applications. In this case, the PIG Editor is used both for defining the application ontology and the application data.

Properties

Element TypeApplication Component

Statements

□  PIG Appaccesses, stores○  Application Data [JSON-LD]
○  Application Data [Turtle]
○  Application Ontology [JSON-LD]
○  Classes for Application [JSON-LD]
○  Classes for Application [JSON-LD]
○  Classes for Ontology [JSON-LD]
□  PIG Appserves□  Edit Application Data
□  Edit Application Ontology
▣  From Ontology Definition to Data Management and Data Use
shows□  PIG App

□  Triple-Store

A standard database for knowledge graphs, e.g. Apache Fuseki.

Properties

Element TypeApplication Component

Statements

□  Triple-Storeaccesses, stores○  Application Data [RDF]
○  Application Data [Turtle]
□  Triple-Storeserves□  Use Application Data
▣  From Ontology Definition to Data Management and Data Use
shows□  Triple-Store

□  Use Application Data

Use (query and check) the application data.

Properties

Element TypeArchiMate:BusinessFunction

Statements

□  Data Use
aggregates□  Use Application Data
□  Edit Application Data
flows to□  Use Application Data
□  User
is assigned to□  Use Application Data
□  Triple-Store
serves□  Use Application Data
▣  From Ontology Definition to Data Management and Data Use
shows□  Use Application Data

□  User

Responsible for using (querying and even checking) the application data.

Properties

Element TypeArchiMate:BusinessRole

Statements

□  Useris assigned to□  Data Use
□  Use Application Data
▣  From Ontology Definition to Data Management and Data Use
shows□  User