Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
stylenone

Please click start to get a first introduction per video:

...

Welcome to the comprehensive setup and usage guide for ENAPSO together Free, specifically tailored for broadcasters. This document provides step-by-step instructions to get started with the Docker platform, from installation to managing your data with ENAPSO together free services.

Architecture Introduction

Here please introduce a diagram that shows the data flow of what we are doing below.

Model/Data => Knowledge Graph (SPARQL) => CRUD Templates (REST) => Feel Happy!

...

Prerequisites

Before you begin, ensure the following requirements are met:

  • Docker Installed: Docker must be installed and running on your machine to facilitate the deployment of applications within containers. For optimal performance and compatibility, ensure that your Docker installation is version 20.10 or above. To check your Docker version, open your command prompt or terminal and enter:

    Code Block
    languagebash
    docker --version
  • Internet Connection: Necessary to pull the Docker image from the repository.

  • Credentials: To request your username and access token for the ENAPSO together free platform powered by Innotrade, send an email to support@innotrade.de with the subject line "Request for Credentials." Optionally, you can include a message similar to the following as inspiration:

Info

Dear Support Team,

I am interested in accessing the ENAPSO together free platform powered by Innotrade and would like to request a username and access token. Please let me know if additional information is required.

Thank you!

Best regards,
[Your Name]

Docker Setup

Docker Login

Open your command prompt or terminal. Log in to the Docker registry to access the ENAPSO together image using the following command:

Code Block
languagebash
docker login registry.innotrade.com -u [username] -p [Personal Access Token]

Replace [username] and [Personal Access Token] with your credentials.

Pull Docker Image

Still, in your command prompt or terminal, pull the latest version of ENAPSO together free:

Note

When running the pull command, please note that if an image is already running and you pull the latest one, it will overwrite existing data in the knowledge graph repository, resetting it to the default state. To avoid losing your data, follow the guidelines on the provided /wiki/spaces/ENAPSODOCS/pages/2239528974 to create a backup before pulling the latest image, and then restore your data afterward.

Here we already need to add that a backup is required, since a new pull overwrites existing data!

Code Block
languagebash
docker pull registry.innotrade.com/innotrade/enapso-together-free

Run Docker Container

Now, run the Docker container to deploy the platform locally using this command:

Code Block
languagebash
docker run -p 80:80 registry.innotrade.com/innotrade/enapso-together-free

This maps the container's port 80 to your local machine's port 80.

Resolving Port Conflicts

If you encounter a port conflict when attempting to run the Docker container for the ENAPSO together Free platform, you have an option to resolve it and access the service:

Change the Host Port

If port 80 is already in use on your machine, you can map the container's internal port (80) to a different port on your host. For example, if you choose to use port 8080 on your host, you can modify your Docker run command like this:

Code Block
docker run -p 8080:80 registry.innotrade.com/innotrade/enapso-together-free

After running the Docker command with the new port setting, you'll need to modify how you access the service through your web browser. Simply add :8080 (or whatever port number you chose) right after localhost in the URL. For example, to access the service, you would use:

Code Block
http://localhost:8080/enapso-dev/view-management-service/api-docs/

This tells your browser to connect to the service at the new port you've set up.

Verify Docker Image

To confirm that the Docker image is running correctly on your machine, use the following command in your command prompt or terminal:

Code Block
languagebash
docker ps

This command will list all running containers. Please verify that the ENAPSO together free container appears in the list, indicating it is active and running.

...

Swagger Documentation Access

Access the Swagger documentation for ENAPSO together free services through your web browser:

Service Name

Description

Access Link

View Management Service

API documentation for View Management

View Management Docs

GraphDB Management Service

API documentation for GraphDB Management

GraphDB Management Docs

Uploading Your Ontology

This guide outlines the steps to prepare and upload the EBUCorePlus ontology to your graph database. Follow these instructions to ensure your graph database is properly set up to manage and utilize ontology data, from downloading the necessary files to configuring the upload through the GraphDB Management Service's endpoint.

  1. Access Swagger Documentation: Navigate to the GraphDB Management Service documentation in your web browser.

    1. Prepare Your Ontology File: Ensure the ebucoreplus ontology file is saved on your local machine. You can obtain the EBUCorePlus ontology from the EBU GitHub repository. Once you open the link, you will see the content of the ontology file displayed. To download it, locate the Download icon on the upper right side of the page and click on it. This will automatically save the file to the default download folder on your local machine.

    2. Clone EBUCorePlus Repository: If you want to clone the entire repository, ensure that Git is installed on your computer. You can check this by running git --version in your terminal. If Git is not installed, you will need to download and install it from the official Git website. Open your command prompt (CMD), and move to the directory where you want the repository to be cloned. You can do this by running the command cd path/to/your/directory, replacing path/to/your/directory with the path to the desired directory on your local machine. Once you're in the desired directory, run the following command to clone the repository:

      Code Block
      languagebash
      git clone https://github.com/ebu/ebucoreplus.git

      This will clone the entire ebucoreplus repository to your local machine.

  2. Upload the Ontology: Utilize the upload-ontology-from-file endpoint to upload the ontology to the graph database repository.

    • Click the Try it out button.

    • Fill out the following fields:

      • filename: Select and upload your ebucoreplus ontology file.

      • format: Specify the format as text/turtle.

      • baseIRI (Optional): Enter the base IRI for your ontology such as http://www.ebu.ch/metadata/ontologies/ebucoreplus#. Using this base IRI helps ensure consistent referencing within your ontology. If you need to use a specific or different IRI, replace the default with your custom IRI. Enter the base IRI for your ontology.

      • context (Optional): Define the context (also known as a named graph) for your ontology within the graph database repository. The context is an identifier that organizes data within the graph database, such as http://www.ebu.ch/metadata/ontologies/ebucoreplus. If the context field is left empty, behavior varies by triplestore:

        • In Fuseki, data will be added to the default context http://ont.enapso.com/default.

        • In GraphDB by Ontotext, data will be added to the graph database's default context, as described in their documentation.

    • Execute the upload by clicking the Execute button:

      execute-button.PNGImage Removed

    • Upon execution, the response will indicate that the ontology has been successfully uploaded. You will see a message or a status code in the Swagger interface confirming the successful upload.

    • If you receive both HTTP 200 and HTTP 201 responses for similar requests, it means:

      • HTTP 200 is returned when you upload data that already exists in the graph database repository, indicating a successful overwrite.

      • HTTP 201 is returned when the upload adds new data to the graph database repository.

      execute-response.PNGImage Removed

Uploading Provided Demo Data

This guide outlines the steps to upload the pre-formatted Turtle (TTL) demo data for the EditorialObject to your graph database. Follow these instructions to effectively populate your graph databases with instances of the EditorialObject within the EBUCorePlus ontology, using the GraphDB Management Service's provided API endpoints.

Note

When running the pull command, please note that if an image is already running and you pull the latest one, it will overwrite existing data in the knowledge graph repository, resetting it to the default state. To avoid losing your data, follow the guidelines on the provided /wiki/spaces/ENAPSODOCS/pages/2239528974 to create a backup before pulling the latest image, and then restore your data afterward.

Caution! Re-Pulling Docker Images leads to data loss!

  1. Access Swagger Documentation: Navigate to the GraphDB Management Service documentation in your web browser.

  2. Editorial Object Demo Data: Below is the provided Turtle-formatted demo data for the Editorial Object. This data includes predefined instances that demonstrate the use and structure of the Editorial Object within ebucoreplus ontology.

Expand
titleEditorialObject Escaped Demo Data

<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_7cdb7f1d-89e6-4cd7-8282-2740a43bf8e0>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"In 1989, a young man must protect his fragile mother, who just awoke from a coma, from learning that her beloved East Germany as she knew it has disappeared.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"The film combines comedy and drama elements, capturing the fall of the Berlin Wall and the transformation of East Germany through personal and poignant moments.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"Various scenes depicting the comedic efforts to recreate East Germany in an apartment.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"Good Bye Lenin!\".\r\n\r\n<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_da44ec80-754e-436c-b4f8-322da13e00a1>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"A thrilling race against time, Lola has 20 minutes to find a large sum of money to save her boyfriend s life.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"The movie employs a ground-breaking narrative structure of three different outcomes based on the slightest changes in Lola s actions.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"Fast-paced sequences with multiple repetitions of the 20-minute loop.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"Run Lola Run\".\r\n\r\n<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_26950b42-bea9-432c-bffc-a1b7eb9c25cf>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"In 1984 East Berlin, an agent of the secret police conducts surveillance on a writer and his lover but finds himself becoming increasingly absorbed by their lives.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"This drama explores themes of surveillance, privacy, and the moral decisions faced by individuals in a totalitarian state.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"Intense surveillance scenes and emotional character development.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"The Lives of Others\".\r\n\r\n<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_9fe17ffb-afa1-4914-ab64-a8f41148b560>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"A historical drama detailing the rise and fall of the Red Army Faction, a radical left-wing terrorist group in 1970s West Germany.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"The film dives deep into the political climate of Germany during the time, portraying the motivations and consequences of radical activism.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"Action-packed scenes of protests and confrontations with police.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"The Baader Meinhof Complex\".\r\n\r\n<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_f94cdb34-11c4-42b2-b992-b57384153827>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"A pioneering silent sci-fi film about a futuristic urban dystopia, where the wealthy elite live above ground while workers toil below.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"This 1927 film directed by Fritz Lang is known for its revolutionary visual style and special effects, setting standards for the science fiction genre.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"Iconic scenes of the massive cityscapes and the robot transformation.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"Metropolis\".\r\n\r\n<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_a6769040-b5b0-4b08-a0a7-5992b71d710f>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"The crew of a German submarine during WWII experience the boredom, filth, and sheer terror of war beneath the waves.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"This intense submarine thriller is acclaimed for its realistic portrayal of the claustrophobic life of a wartime submarine crew.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"Tense underwater sequences and the psychological strain on the crew.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"Das Boot\".\r\n\r\n<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_fd9e3d6c-2f46-411a-85b3-12053975f555>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"Depicts the final days of Adolf Hitler as seen through the eyes of his secretary, during the last days of the Third Reich in the bunker beneath Berlin.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"The film provides a detailed and harrowing look at the collapse of Hitler\u2019s regime and is renowned for Bruno Ganz s performance as Hitler.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"Intense bunker scenes and the collapse of Berlin.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"Downfall\".\r\n\r\n<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_fd617f4d-cb77-4757-915d-8cce1043d52a>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"An angel in Berlin decides to become mortal after falling in love with a beautiful trapeze artist.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"This poetic film by Wim Wenders blends fantasy, romance, and philosophical musings on the human condition.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"Scenes of angels observing the mundane and beautiful moments of human life.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"Wings of Desire\".\r\n\r\n<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_8ddb1303-3560-4878-899d-ada16657239b>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"This tragicomedy follows a day in the life of Niko, a college dropout, who navigates various social milieus and struggles with his direction in life.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"The film is shot in black and white, capturing the essence of contemporary Berlin while exploring themes of alienation and self-discovery.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"Niko s wanderings through Berlin, encountering different people and situations.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"A Coffee in Berlin\".\r\n\r\n<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_b42a73b3-2018-4e44-82d2-31df4328b870>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"In a small German village before World War I, a series of disturbing events take place, hinting at the origins of fascism.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"This austere black-and-white film by Michael Haneke explores the roots of evil in a society poised on the brink of war.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"Tension-filled scenes depicting mysterious accidents and the oppressive atmosphere of the village.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"The White Ribbon\".\r\n\r\n<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_052d0a16-4bfe-41db-a814-62e77cac76b6>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"A father tries to reconnect with his workaholic daughter by creating an outrageous alter ego and posing as her CEO s life coach.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"The film is a unique blend of comedy and drama, offering a poignant look at family relationships and personal priorities.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"Humorous yet heartfelt encounters between the father in disguise and his daughter.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"Toni Erdmann\".\r\n\r\n<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_775a4b5a-83f9-4220-8296-6a177547fbba>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"A young Spanish woman who has newly moved to Berlin finds her flirtation with a local man turned potentially deadly as their night out with his friends reveals a dangerous secret.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"The entire film is famously shot in one single, continuous take, offering an immersive experience that heightens the tension and realism.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"The continuous shot that captures the escalating night from fun to danger.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"Victoria\".\r\n\r\n<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_2eef8910-1ff0-45ec-a66e-14b6068947cd>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"Three young anti-capitalist activists break into wealthy homes as a form of protest, leaving behind messages for the homeowners, until one heist goes wrong.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"This film combines elements of drama, romance, and political activism, exploring the consequences of idealism in a capitalist society.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"Scenes of the activists planning and executing their unique form of protest.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"The Edukators\".\r\n\r\n<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_4ae1e5dd-58df-40bc-b413-42acfa733e34>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"True story of Sophie Scholl, a member of the non-violent anti-Nazi resistance group The White Rose, focusing on her arrest and trial in 1943.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"The film is a gripping narrative of courage and conviction in the face of totalitarian oppression.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"Dramatic courtroom scenes and the portrayal of Sophie s defiance.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"Sophie Scholl \u2013 The Final Days\".\r\n\r\n<http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus\/data\/EditorialObject_789eced0-aa96-491c-80c9-b9914791f213>\r\n a <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#EditorialObject>;\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#contentDescription> \"In 1980s East Germany, a doctor is banished to a small country hospital as punishment for applying for an exit visa. As she plans her escape to the West, she becomes entangled with another doctor.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#productionSynopsis> \"This film delicately explores the theme of freedom versus responsibility in a tightly controlled society.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#shotLog> \"Scenes highlighting the tension between the doctors and the oppressive surveillance.\";\r\n <http:\/\/www.ebu.ch\/metadata\/ontologies\/ebucoreplus#title> \"Barbara\".\r\n

Upload the Ontology Text: Utilize the upload-ontology-from-text endpoint to upload the demo data to the graph database repository.

...

Click the Try it out button.

Fill out the following fields:

...

Table of Contents
stylenone

Please click start to get a first introduction per video:

...

Welcome to the comprehensive setup and usage guide for ENAPSO together Free, specifically tailored for broadcasters. This document provides step-by-step instructions to get started with the Docker platform, from installation to managing your data with ENAPSO together free services.

Architecture Introduction

Drawio
mVer2
zoom1
simple0
inComment0
custContentId2241265689
pageId2232451073
lbox1
diagramDisplayNameArchENAPSO.drawio
contentVer7
revision7
baseUrlhttps://innotrade.atlassian.net/wiki
diagramNameArchENAPSO.drawio
pCenter0
width981
links
tbstyle
height522

Prerequisites

Before you begin, ensure the following requirements are met:

  • Docker Installed: Docker must be installed and running on your machine to facilitate the deployment of applications within containers. For optimal performance and compatibility, ensure that your Docker installation is version 20.10 or above. To check your Docker version, open your command prompt or terminal and enter:

    Code Block
    languagebash
    docker --version
  • Internet Connection: Necessary to pull the Docker image from the repository.

  • Credentials: To request your username and access token for the ENAPSO together free platform powered by Innotrade, send an email to support@innotrade.de with the subject line "Request for Credentials." Optionally, you can include a message similar to the following as inspiration:

Info

Dear Support Team,

I am interested in accessing the ENAPSO together free platform powered by Innotrade and would like to request a username and access token. Please let me know if additional information is required.

Thank you!

Best regards,
[Your Name]

Docker Setup

Docker Login

Open your command prompt or terminal. Log in to the Docker registry to access the ENAPSO together image using the following command:

Code Block
languagebash
docker login registry.innotrade.com -u [username] -p [Personal Access Token]

Replace [username] and [Personal Access Token] with your credentials.

Pull Docker Image

Still, in your command prompt or terminal, pull the latest version of ENAPSO together free:

Note

When running the pull command, please note that if an image is already running and you pull the latest one, it will overwrite existing data in the knowledge graph repository, resetting it to the default state. To avoid losing your data, follow the guidelines on the provided Confluence page to create a backup before pulling the latest image, and then restore your data afterward.

Code Block
languagebash
docker pull registry.innotrade.com/innotrade/enapso-together-free

Run Docker Container

Now, run the Docker container to deploy the platform locally using this command:

Code Block
languagebash
docker run -p 80:80 registry.innotrade.com/innotrade/enapso-together-free

This maps the container's port 80 to your local machine's port 80.

Expand
titleResolving Port Conflicts

If you encounter a port conflict when attempting to run the Docker container for the ENAPSO together Free platform, you have the following option to resolve it and access the service.

Change the Host Port

If port 80 is already in use on your machine, you can map the container's internal port (80) to a different port on your host. For example, if you choose to use port 8080 on your host, you can modify your Docker run command like this:

Code Block
docker run -p 8080:80 registry.innotrade.com/innotrade/enapso-together-free

After running the Docker command with the new port setting, you'll need to modify how you access the service through your web browser. Simply add :8080 (or whatever port number you chose) right after localhost in the URL. For example, to access the service, you would use:

Code Block
http://localhost:8080/enapso-dev/view-management-service/api-docs/

This tells your browser to connect to the service at the new port you've set up.

Expand
titleRun Docker Container with Triplestore UI Access

To run the ENAPSO together free platform and enable access to the triplestore UI for enhanced monitoring and management, use the following Docker command:

Code Block
languagebash
docker run -p 80:80 -p 3030:3030 registry.innotrade.com/innotrade/enapso-together-free

This command maps the container's port 80 to your local machine's port 80 for the main service, and port 3030 to your local machine's port 3030 for accessing the Triplestore UI. After executing this command, open your web browser and navigate to http://localhost:3030. This URL will lead you directly to the Triplestore UI, where you can monitor the repositories or perform various administrative operations. This setup ensures comprehensive access to both the platform's services and its user interface.

Verify Docker Image

To confirm that the Docker image is running correctly on your machine, use the following command in your command prompt or terminal:

Code Block
languagebash
docker ps

This command will list all running containers. Please verify that the ENAPSO together free container appears in the list, indicating it is active and running.

...

Swagger Documentation Access

Access the Swagger documentation for ENAPSO together free services through your web browser:

Service Name

Description

Access Link

View Management Service

API documentation for View Management

View Management Docs

GraphDB Management Service

API documentation for GraphDB Management

GraphDB Management Docs

Quick Start Guide to Setting Up ENAPSO Demo

To perform the following tasks, you need to clone the repository and run the setup script:

  • Upload the ontology file, for detailed instructions and a step-by-step process, follow the link: Upload the Ontology File.

  • Upload the demo data file, for detailed instructions and a step-by-step process, follow the link: Upload the Demo Data.

  • Create CRUD templates for the EditorialObject class, for detailed instructions and a step-by-step process, follow the link: Create CRUD Templates.

  • Set up REST routes for the CRUD operations, for detailed instructions and a step-by-step process, follow the link: Set up REST Routes.

Follow these steps to set up the ENAPSO demo on your local machine.

  1. Open a new terminal and clone the repository to your local machine by running the following command:

    Code Block
    languagebash
    git clone https://github.com/innotrade/enapso-demo.git

    This will download all the necessary files and scripts to set up the ENAPSO demo.

  2. Navigate to the cloned repository directory

    Code Block
    languagebash
    cd enapso-demo
  3. Run the appropriate setup script for your operating system.

    For macOS and Linux

    Code Block
    languagebash
    cd scripts
    chmod +x setup_enapso_media_mac.sh
    ./setup_enapso_media_mac.sh

    For Windows

    Code Block
    languagebash
    cd scripts
    setup_enapso_media_windows.bat

    The setup script will perform the following tasks:

    • Upload the ontology file (ontologies/ebucoreplus.owl)

    • Upload the demo data file (demo-data/editorialObject_demoData.ttl)

    • Create CRUD templates for the EditorialObject class

    • Set up REST routes for the CRUD operations

Testing the Setup

To verify that the ontology and data have been successfully uploaded, CRUD templates created, and routes established, open your terminal, and run the following command to read the instances of the EditorialObject class:

Code Block
curl -X GET http://localhost/enapso-dev/view-management/v1/editorialObject

Further HTTP method

For more details on other HTTP methods, including examples for each method, follow the link: Detailed CRUD Operation Examples

Uploading Your Ontology

This guide outlines the steps to prepare and upload the EBUCorePlus ontology to your graph database. For details, open the expanders.

Expand
titleUploading Your Ontology

Follow these instructions to ensure your graph database is properly set up to manage and utilize ontology data, from downloading the necessary files to configuring the upload through the GraphDB Management Service's endpoint.

  1. Prepare Your Ontology File: Ensure the ebucoreplus ontology file is saved on your local machine. You can obtain the EBUCorePlus ontology from the EBU GitHub repository. Once you open the link, you will see the content of the ontology file displayed. To download it, locate the Download icon on the upper right side of the page and click on it. This will automatically save the file to the default download folder on your local machine.

  2. Clone EBUCorePlus Repository: If you want to clone the entire repository, ensure that Git is installed on your computer. You can check this by running git --version in your terminal. If Git is not installed, you will need to download and install it from the official Git website. Open your command prompt (CMD), and move to the directory where you want the repository to be cloned. You can do this by running the command cd path/to/your/directory, replacing path/to/your/directory with the path to the desired directory on your local machine. Once you're in the desired directory, run the following command to clone the repository:

    Code Block
    languagebash
    git clone https://github.com/ebu/ebucoreplus.git

    This will clone the entire ebucoreplus repository to your local machine.

Upload EBUCoreplus Ontology via enapso-graphdb-cli tool

Prerequisites

Ensure Node.js is installed on your machine. If not, install it from the Node.js official website. This installation includes npm (Node Package Manager), which manages Node packages.

After installation, verify that Node.js and npm are successfully installed by doing the following:

  • Open a command prompt or terminal.

  • Run the command node -v and press Enter. This will display the version of Node.js if it is installed.

    node version.pngImage Added
  • Run the command npm -v and press Enter. This will display the version of npm if it is installed.

    npm version.pngImage Added

For using the ENAPSO tools, it's important to have at least Node.js version 10 or higher, as earlier versions might not support some functionalities of the tools.

If you need to update Node.js to the latest version, you can download it from the official Node.js website and install it on your system. It will automatically replace the older version with the new one.

Installation

Install the enapso-graphdb-cli tool globally using npm:

Code Block
npm install -g @innotrade/enapso-graphdb-cli

Uploading EBUCoreplus OntologyData

Open the terminal, and navigate to the directory where the ebucoreplus.owl file is located, or set the file path in the --sourcefile variable, and execute the following command to successfully upload the ontology

Code Block
enapsogdb import --dburl "http://localhost/fuseki" --repository "Test" --sourcefile "ebucoreplus.owl" --format "text/turtle" --baseiri "http://www.ebu.ch/metadata/ontologies/ebucoreplus#" --context "http://www.ebu.ch/metadata/ontologies/ebucoreplus" --triplestore "fuseki"

Trigger Cache

Open the terminal and run the following curl command which rebuilds the ENAPSO service cache with the latest data, ensuring efficient query performance and accurate auto CRUD template management by reflecting all recent changes.

Code Block
curl -X POST http://localhost/enapso-dev/graphdb-management/v1/build-cache

Upload EBUCoreplus Ontology via GraphDB Management Service's provided API

  1. Access Swagger Documentation: Navigate to the GraphDB Management Service documentation in your web browser.

  2. Upload the Ontology: Utilize the upload-ontology-from-file endpoint to upload the ontology to the graph database repository.

    • Click the Try it out button.

    • Fill out the following fields:

      • fileName: Select and upload your ebucoreplus ontology file.

      • format: Specify the format as text/turtle.

      • baseIRI (Optional): Enter the base IRI for your ontology such as http://www.ebu.ch/metadata/ontologies/ebucoreplus#. Using this base IRI helps ensure consistent referencing within your ontology. If you need to use a specific or different IRI, replace the default with your custom IRI. Enter the base IRI for your ontology.

      • context (Optional): Define the context (also known as a named graph) for your ontology within the graph database repository. The context is an identifier that organizes data within the graph database, such as http://www.ebu.ch/metadata/ontologies/ebucoreplus. If the context field is left empty, behavior varies by triplestore:

        • In Fuseki, data will be added to the default context http://ont.enapso.com/default.

        • In GraphDB by Ontotext, data will be added to the graph database's default context, as described in their documentation.

    • Execute the upload by clicking the Execute button:

      execute-button.PNGImage Added

    • Upon execution, the response will indicate that the ontology has been successfully uploaded. You will see a message or a status code in the Swagger interface confirming the successful upload.

    • If you receive both HTTP 200 and HTTP 201 responses for similar requests, it means:

      • HTTP 200 is returned when you upload data that already exists in the graph database repository, indicating a successful overwrite.

      • HTTP 201 is returned when the upload adds new data to the graph database repository.

      execute-response.PNGImage Added

Upload Demo Data

This guide outlines the steps to upload the demo data for the EditorialObject to your graph database. For details, open the expanders.

Expand
titleUpload Demo Data

Follow these instructions to effectively populate your graph databases with instances of the EditorialObject within the EBUCorePlus ontology, using either the GraphDB Management Service's provided API endpoints or the enapso-graphdb-cli tool, which are explained below. Additionally, you can find the necessary TTL demo data here.

View file
nameeditorialObject_demoData.ttl

Note

When running the pull command, please note that if an image is already running and you pull the latest one, it will overwrite existing data in the knowledge graph repository, resetting it to the default state. To avoid losing your data, follow the guidelines on the provided Confluence page to create a backup before pulling the latest image, and then restore your data afterward.

Upload Demo Data via enapso-graphdb-cli tool

Prerequisites

Refer to the prerequisite information above and follow the same procedure.

Installation

Refer to the installation information above and follow the same procedure.

Uploading Demo Data

Open the terminal, and navigate to the directory where the editorialObject_demoData.ttl file is located, or set the file path in the --sourcefile variable, and execute the following command to successfully upload the ontology

Code Block
enapsogdb import --dburl "http://localhost/fuseki" --repository "Test" --sourcefile "editorialObject_demoData.ttl" --format "text/turtle" --baseiri "http://www.ebu.ch/metadata/ontologies/ebucoreplus#" --context "http://www.ebu.ch/metadata/ontologies/ebucoreplus/demodata" --triplestore "fuseki"

enapso-graphdb-cli.pngImage Added

Upload Demo Data via GraphDB Management Service's provided API

  1. Access Swagger Documentation: Navigate to the GraphDB Management Service documentation in your web browser.

  2. Editorial Object Demo Data: The above attached file, named editorialObject_demoData.ttl, contains the demo data for the Editorial Object.

  3. Upload the Ontology File: Utilize the upload-ontology-from-fileendpoint to upload the demo data to the graph database repository.

    • Click the Try it out button.

    • Fill out the following fields:

      • fileName: Select and upload your editorialObject_demoData.ttlontology file.

      • format: Specify the format as text/turtle.

      • baseIRI (Optional): Enter the base IRI for your ontology such as http://www.ebu.ch/metadata/ontologies/ebucoreplus#.

      • context (Optional): Define the context (also known as a named graph) for your demo data, such as http://www.ebu.ch/metadata/ontologies/ebucoreplus/demodata.

    • Execute the upload by clicking the Execute button.

...

    • demo data.pngImage Added

    • Upon execution, the response will indicate that the ontology has been successfully uploaded. You will see a message or a status code in the Swagger interface confirming

...

    • the upload was successful.

      response.pngImage Added

    • If you receive both HTTP 200 and HTTP 201 responses for similar requests, it means:

      • HTTP 200 is returned when you upload data that already exists in the graph database repository, indicating a successful overwrite.

      • HTTP 201 is returned when the upload adds new data to the graph database repository.

...

CRUD Template Management

This section setion provides detailed instructions on how to generate CRUD (create, read, update, delete) templates for specific classes within your ontology using the View Management API. For details, open the expanders.

Expand
titleCRUD Template Management

By following these steps, you can automate the creation of SPARQL templates that facilitate the management of instances of any specified class, such as the EditorialObject from the EBUCorePlus ontology. This process simplifies the implementation of CRUD operations in your graph database.

  1. Access View Management API Docs: Use the link provided in the Swagger Documentation Access section.

  2. Generate CRUD Templates: Find the create-crud-sparql-template-4-class endpoint in the documentation. This endpoint is used to automatically generate CRUD (create, read, update, delete) templates for a specific class you specify in the POST body. For instance, if you pass the class http://www.ebu.ch/metadata/ontologies/ebucoreplus#EditorialObject, the endpoint will create four SPARQL templates: readEditorialObject, createEditorialObject, updateEditorialObject, and deleteEditorialObject. These templates enable you to manage instances of the class easily, providing a streamlined approach to handle CRUD operations in your graph database.

    • Click the Try it out button.

    • In the displayed POST body, you will find a JSON object with a cls key. Replace the http://ont.enapso.com/dotnetpro#Person associated with cls with the class IRI you intend to manage. For example, to manage the EditorialObject class, input: http://www.ebu.ch/metadata/ontologies/ebucoreplus#EditorialObject.

    • After replacing the cls default value in the post body, click the Execute button to send the request.

      Create CRUD Template.PNGImage Modified

    • Once executed, the response will confirm the creation of CRUD templates. You'll see a success message along with the names of the CRUD operations (create, read, update, delete) for your class and their respective status codes.

      Create CRUD Template Response.PNGImage Modified

Executing CRUD Operations

After generating your CRUD templates, you'll need to use them to manage data. This section explains how to execute the read, create, update, and delete templates for the EditorialObject class. For details, open the expanders.

Expand
titleExecuting CRUD Operations

Executing the Read Template

To view existing instances of the EditorialObject class, follow these steps:

  1. Access Template Execution API: Navigate to the API documentation where you can execute templates by name.

  2. Prepare to Execute the Read Template:

    • Locate the execute-template by name endpoint.

    • Click the Try it out button to enable input.

    • Against the templateName key, enter readEditorialObject, which is the name of the read template for the EditorialObject class.

    • Ensure that any existing variables are cleared out before executing to avoid any unintended filtering.

    • Click the Execute button to send the request.

      readEditorialObject.PNGImage Modified

    • Upon successful execution, the API will return a response displaying all instances of the EditorialObject class. This verifies that the read operation is functioning correctly.

      readResponse.PNGImage Modified

Creating a New Instance

To create a new instance of the EditorialObject class, you'll need to understand the IRI (Internationalized Resource Identifier), a unique identifier that ensures each instance is distinct and aligns with global web standards. If an IRI is not provided, it automatically generates one to guarantee each instance's uniqueness. Alternatively, you can specify your own IRI to maintain control over the identifier of your instance, adhering to standard HTTP practices.

  1. Set Up Creation Request:

    • Go back to the execute-template-by-name endpoint if you aren't already there.

    • Click Try it out button again to set up a new request.

    • Enter createEditorialObject against the templateName key, which is the name of the create template for the EditorialObject class.

    • Provide necessary variables for the new instance. Typically, this would be in JSON format in the request's body, for example.

      Code Block
      {
        "title": "M - A City Hunts a Murderer",
        "productionSynopsis": "Directed by Fritz Lang, this thriller is one of the earliest masterpieces of sound cinema, exploring themes of justice, vigilance, and societal response to crime.",
        "shotLog": "Iconic scenes using shadows and sound to create suspense, notably the murderers eerie whistling of In the Hall of the Mountain King."
      }
  • When you send a request to create a new instance, a unique IRI (Internationalized Resource Identifier) is involved. This IRI acts like a unique id for your instance that complies with global web standards.

    If you do not provide an IRI, it automatically generates one for you, ensuring that each instance is uniquely identified. However, if you have a specific IRI you wish to use, you can include it in your variables JSON object. This allows you to control the unique identifier of your instance, following the standard HTTP practices.

  • Click the Execute button to send the creation request.

    createEditorialObject.PNGImage Modified

  • The response will confirm that the new instance has been successfully created. Look for a success message and any details provided about the newly created instance.

    createEditorialObjectResponse.PNGImage Modified

Verifying the Creation of a New Instance

After creating a new instance of the EditorialObject class, to confirm if the record has been successfully created, you can follow these steps to verify the addition to the graph database:

  1. Re-execute the Read Template:

    • Navigate back to the execute-template-by-name endpoint in the View Management Service documentation.

    • Click the Try it out button to enable input for a new request.

    • Against the templateName key, enter readEditorialObject again. This is the same read template you used earlier to view instances.

    • Click the Execute button to send the request once more.

      readEditorialObject.PNGImage Modified

    • The response will now include the list of all current instances of the EditorialObject class. Look through the list to find the newly created instance. You should see the details you entered for the instance, such as the label or any other identifiers, confirming that it has been successfully persisted in the database.

      verify readEditorialObject.PNGImage Modified

You can verify the changes made to the graph database re-executing the read template after performing CRUD operations provides an option to transparently.

Updating an Instance

To update an existing instance within your graph database, you first need to know which instance you're targeting. This is where the IRI (Internationalized Resource Identifier) comes in - it acts as a unique identifier, much like an id for each instance. You can find the IRI by reading the instances of the class you're interested in. Once you have the IRI, it serves as an identifier to specify which instance to update. Along with the IRI, you need to pass the properties and their new values that you want to update.

  1. Access Update Template Execution:

    • Navigate to the execute-template-by-name endpoint in the View Management Service documentation.

    • Click the Try it out button.

    • Enter the name of the update template (e.g., updateEditorialObject) against the templateName key.

    • In the variables object, specify the iri of the instance you wish to update, which you can obtain through reading the instance data. Also, include the properties and their values you want to change. For example,

      Code Block
      {
          "iri": "http://ont.enapso.com/sparql-template#EditorialObject_bf161f6f-4b89-431f-8f83-eb7b51b9a89f",
          "contentDescription": "In Berlin during the Weimar Republic, the police and the criminal underworld scramble to capture a child murderer who has caused panic across the city."
      }
    • Click the Execute button to send the update request.

      updateEditorialObject.PNGImage Modified

    • The response should indicate whether the update was successful, including a confirmation message or status code. It's important to note that an HTTP 200 status is returned whether the specific instance whose IRI was provided exists or not. This status also indicates successful query execution, not necessarily that any update was performed. Even if no update occurs due to specific conditions not being met, you will still receive a 200 OK, signifying that the query itself was processed without errors.

      updateEditorialObjectResponse.PNGImage Modified

Deleting an Instance

To delete an instance from your ontology, you need to specify which instance to remove by using its IRI (Internationalized Resource Identifier). The IRI serves as a unique identifier for each instance and can be obtained by reading the instance data beforehand. Once you have the IRI, use it to indicate which instance you wish to delete.:

  1. Access Delete Template Execution:

    • Go to the execute-template-by-name endpoint in the View Management Service documentation.

    • Click the Try it out button.

    • Enter the name of the delete template (e.g., deleteEditorialObject) against the templateName key.

    • In the variables object, provide the IRI of the instance you wish to delete. For example,

      Code Block
      {
          "iri": "http://ont.enapso.com/sparql-template#EditorialObject_bf161f6f-4b89-431f-8f83-eb7b51b9a89f"
      }
    • Click the Execute button to send the delete request.

      deleteEditorialObject.PNGImage Modified

    • The response should confirm that the instance has been successfully deleted from the graph database repository. Even if the instance with the specified IRI doesn't exist or if a delete wasn't performed due to certain conditions, the request will still return a 200 status code. This indicates that the query was executed successfully, even if no actual deletion occurred.

      deleteEditorialObjectResponse.PNGImage Modified

Conclusion

Congratulations on successfully setting up and starting to use the ENAPSO together Free platform for broadcasters. You've learned how to upload an ontology and manage data through CRUD operations, which are crucial for effective data handling within the platform.

As you continue to work with ENAPSO, explore further features and functionalities to enhance your data management capabilities. Remember, the documentation and support are there to help you maximize the platform's potential.

...