# Copyright (c) 2022,2023 T-Systems International GmbH
# Copyright (c) 2022,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) 
# Copyright (c) 2022,2023 ZF Friedrichshafen AG 
# Copyright (c) 2022,2023 Mercedes-Benz AG 
# Copyright (c) 2022,2023 Contributors to the Catena-X Association
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License, Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0.
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# SPDX-License-Identifier: Apache-2.0

@prefix : <https://w3id.org/catenax/ontology/common#>.
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix json: <https://json-schema.org/draft/2020-12/schema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix schema: <https://schema.org/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix cx-common: <https://w3id.org/catenax/ontology/common#> .
@base <https://w3id.org/catenax/ontology/common#> .

<https://w3id.org/catenax/ontology/common> rdf:type owl:Ontology ;
                                           dc:contributor "Oguzhan Balandi" ;
                                           dc:creator "Zazralt Magic" ;
                                          dc:date "2023-05-23"^^xsd:date ;
                                          dc:description "The common ontology describes the Dataspace connectors in detail. On the one hand, this includes the information from which Catena-X business partner the connectors are deployed. On the other hand, with which contracts which assets provide the connectors."@en ;
                                          dc:title "Common Ontology" ;
                                          owl:versionInfo "1.9.4" .

#################################################################
#    Annotation properties
#################################################################

###  http://purl.org/dc/elements/1.1/creator
dc:creator rdf:type owl:AnnotationProperty .


###  http://purl.org/dc/elements/1.1/date
dc:date rdf:type owl:AnnotationProperty .


###  http://purl.org/dc/elements/1.1/description
dc:description rdf:type owl:AnnotationProperty .


###  http://purl.org/dc/elements/1.1/title
dc:title rdf:type owl:AnnotationProperty .


###  http://www.w3.org/2004/02/skos/core#altLabel
skos:altLabel rdf:type owl:AnnotationProperty .


###  http://www.w3.org/2004/02/skos/core#definition
skos:definition rdf:type owl:AnnotationProperty .


###  http://www.w3.org/2004/02/skos/core#example
skos:example rdf:type owl:AnnotationProperty .


###  http://www.w3.org/2004/02/skos/core#prefLabel
skos:prefLabel rdf:type owl:AnnotationProperty .


###  https://json-schema.org/draft/2020-12/schema#Object
json:Object rdf:type rdfs:Datatype .

#################################################################
#    Object Properties
#################################################################

###  https://catena-x.net/product-knowledge/ontology/common#hasDataspaceConnector
cx-common:hasDataspaceConnector rdf:type owl:ObjectProperty ;
                                rdfs:subPropertyOf owl:topObjectProperty ;
                                rdfs:domain cx-common:BusinessPartner ;
                                rdfs:range cx-common:DataspaceConnector ;
                                rdfs:comment "This property describes which connectors belong to which business partners."@en ;
                                rdfs:label "has Dataspace Connector"@en .


###  https://catena-x.net/product-knowledge/ontology/common#offers
cx-common:offers rdf:type owl:ObjectProperty ;
                 rdfs:subPropertyOf owl:topObjectProperty ;
                 rdfs:domain cx-common:DataspaceConnector ;
                 rdfs:range cx-common:Asset ;
                 rdfs:comment "This property refers to the offered assets."@en .


#################################################################
#    Data properties
#################################################################

###  https://catena-x.net/product-knowledge/ontology/common#contentType
cx-common:contentType rdf:type owl:DatatypeProperty ;
                      rdfs:subPropertyOf owl:topDataProperty ;
                      rdfs:domain cx-common:Asset ;
                      rdfs:range xsd:string ;
                      rdfs:comment "This property describes in which format the data will be output, i.e. XML or JSON."@en .


###  https://catena-x.net/product-knowledge/ontology/common#description
cx-common:description rdf:type owl:DatatypeProperty ;
                      rdfs:subPropertyOf owl:topDataProperty ;
                      rdfs:domain cx-common:Asset ;
                      rdfs:range xsd:string ;
                      rdfs:comment "This property contains description of asset." .


###  https://catena-x.net/product-knowledge/ontology/common#id
cx-common:id rdf:type owl:DatatypeProperty ;
             rdfs:subPropertyOf owl:topDataProperty ;
             rdfs:domain owl:Thing ;
             rdfs:range xsd:string ;
             rdfs:comment "This property contains unique identifier of Bussiness Partner/Connector/Asset."@en .


###  https://catena-x.net/product-knowledge/ontology/common#isFederated
cx-common:isFederated rdf:type owl:DatatypeProperty ;
                      rdfs:subPropertyOf owl:topDataProperty ;
                      rdfs:domain cx-common:Asset ;
                      rdfs:range xsd:boolean ;
                      rdfs:comment "If this property is set to true, it means that this connector will federate with other connectors."@en .


###  https://catena-x.net/product-knowledge/ontology/common#name
cx-common:name rdf:type owl:DatatypeProperty ;
               rdfs:subPropertyOf owl:topDataProperty ;
               rdfs:domain cx-common:Asset ;
               rdfs:range xsd:string ;
               rdfs:comment "This property contains name of asset."@en .


###  https://catena-x.net/product-knowledge/ontology/common#implementsProtocol
cx-common:implementsProtocol rdf:type owl:DatatypeProperty ;
                   rdfs:subPropertyOf owl:topDataProperty ;
                   rdfs:domain cx-common:Asset ;
                   rdfs:range xsd:string ;
                   rdfs:comment "This property refers to the network protocol implemented by the asset."@en .

###  https://catena-x.net/product-knowledge/ontology/common#publishedUnderContract
cx-common:publishedUnderContract rdf:type owl:ObjectProperty ;
                   rdfs:subPropertyOf owl:topObjectProperty ;
                   rdfs:domain cx-common:Asset ;
                   rdfs:target cx-common:Contract ;
                   rdfs:comment "This property refers to the contract associated with the asset."@en .


### http://www.w3.org/ns/shacl#shapesGraph
sh:shapesGraph rdf:type owl:ObjectProperty;
               rdfs:domain cx-common:Asset ;
               rdfs:target rdfs:Resource ;
               rdfs:comment "This property refers to a SHACL expression in which the RDF data Contraints are defined. In particular, the structure of the identifiers."@en .


###  https://catena-x.net/product-knowledge/ontology/common#url
cx-common:url rdf:type owl:DatatypeProperty ;
              rdfs:subPropertyOf owl:topDataProperty ;
              rdfs:domain cx-common:DataspaceConnector ;
              rdfs:range xsd:anyURI .

###  https://catena-x.net/product-knowledge/ontology/common#AuthenticatedResource
cx-common:AuthenticatedResource rdf:type rdfs:Resource;
               rdfs:comment "An resource that requires authentication."@en;
                skos:prefLabel "Authenticated Resource"@en .


###  https://catena-x.net/product-knowledge/ontology/common#authenticationInformation
cx-common:authenticationInformation rdf:type owl:DatatypeProperty ;
              rdfs:comment "Base property for all authentication informations.";
              rdfs:subPropertyOf owl:topDataProperty ;
              rdfs:domain cx-common:AuthenticatedResource ;
              rdfs:range xsd:string .

###  https://catena-x.net/product-knowledge/ontology/common#authenticationCode
cx-common:authenticationCode rdf:type owl:DatatypeProperty ;
              rdfs:comment "An authentication code under which authentication information are transmitted.";
              rdfs:subPropertyOf cx-common:authenticationInformation.

###  https://catena-x.net/product-knowledge/ontology/common#authenticationKey
cx-common:authenticationKey rdf:type owl:DatatypeProperty ;
              rdfs:comment "An authentication key which encodes some authentication proof.";
              rdfs:subPropertyOf cx-common:authenticationInformation.

###  https://catena-x.net/product-knowledge/ontology/common#version
cx-common:version rdf:type owl:DatatypeProperty ;
                  rdfs:subPropertyOf owl:topDataProperty ;
                  rdfs:domain cx-common:Asset ;
                  rdfs:range xsd:string ;
                  rdfs:comment "This property contains version of asset."@en .


#################################################################
#    Classes
#################################################################

###  https://catena-x.net/product-knowledge/ontology/common#Asset
cx-common:Asset rdf:type owl:Class ;
                skos:definition "The Asset class describes the provision via a repository of a specific set of data for a specific purpose."@en ;
                skos:prefLabel "Asset"@en .


###  https://catena-x.net/product-knowledge/ontology/common#BusinessPartner
cx-common:BusinessPartner rdf:type owl:Class ;
                          rdfs:seeAlso <https://en.wikipedia.org/wiki/Business_partner> ;
                          skos:altLabel "BP"@en ,
                                        "business partner"@en ;
                          skos:definition "A Business Partner is a legal entity that is part of the Catena-X network or that stands in a relevant relation to a Catena-X Business Partner."@en ;
                          skos:example "Audi"@en ,
                                       "BMW"@en ,
                                       "Mercedes"@en ,
                                       "Volkswagen"@en ;
                          skos:prefLabel "Business Partner"@en ,
                                         "Geschäftspartner"@de .


###  https://catena-x.net/product-knowledge/ontology/common#DataspaceConnector
cx-common:DataspaceConnector rdf:type owl:Class ;
                             rdfs:comment "Dataspace Connector is an interface based on the Eclipse Dataspace Connector technology. A Dataspace Connector makes various assets available through contracts. A contract describes with which policy which asset can be provided."@en ;
                             rdfs:seeAlso <https://projects.eclipse.org/proposals/eclipse-dataspace-connector> ;
                             skos:altLabel "Connector"@en ,
                                           "EDC"@en ;
                             skos:prefLabel "Dataspace Connector"@en .


###  https://catena-x.net/product-knowledge/ontology/common#FunctionAsset
cx-common:FunctionAsset rdf:type owl:Class ;
                        rdfs:subClassOf cx-common:Asset ;
                        rdfs:comment "This subclass of Asset allows performing calculations on asset."@en ;
                        rdfs:label "Function Asset"@en .


###  https://catena-x.net/product-knowledge/ontology/common#GraphAsset
cx-common:GraphAsset rdf:type owl:Class ;
                     rdfs:subClassOf cx-common:Asset ;
                     rdfs:comment "This subclass of Asset allows arbitrary data queries to be executed on assets."@en ;
                     rdfs:label "Graph Asset" .


###  https://catena-x.net/product-knowledge/ontology/common#SkillAsset
cx-common:SkillAsset rdf:type owl:Class ;
                     rdfs:subClassOf cx-common:Asset ;
                     rdfs:comment "This subclass of Asset allows only the execution of predefined data queries on assets."@en ;
                     rdfs:label "Skill Asset"@en .


###  https://catena-x.net/product-knowledge/ontology/common#SkillDistribution
cx-common:SkillDistribution rdf:type rdfs:Resource;
               rdfs:comment "Describes the possibilities how to distribute skills."@en;
               skos:prefLabel "Distribution Mode"@en .

###  https://catena-x.net/product-knowledge/ontology/common#SkillDistribution?run=provider
cx-common:SkillDistribution%3Frun%3Dprovider rdf:type cx-common:SkillDistribution;
               rdfs:comment "The skill may only be invoked local to the computing environment of the provider."@en;
               skos:prefLabel "Provider Distribution Mode"@en .

###  https://catena-x.net/product-knowledge/ontology/common#SkillDistribution?run=consumer
cx-common:SkillDistribution%3Frun%3Dconsumer rdf:type cx-common:SkillDistribution;
               rdfs:comment "The skill may only be invoked remote in the computing environment of the consumer."@en;
               skos:prefLabel "Consumer Distribution Mode"@en .

###  https://catena-x.net/product-knowledge/ontology/common#SkillDistribution?run=all
cx-common:SkillDistribution%3Frun%3Dall rdf:type cx-common:SkillDistribution;
               rdfs:comment "The skill may be invoked in any computing environment (provider or consumer)."@en;
               skos:prefLabel "All Distribution Mode"@en .

#################################################################
#    General axioms
#################################################################

[ rdf:type owl:AllDisjointClasses ;
  owl:members ( cx-common:Asset
                cx-common:BusinessPartner
                cx-common:DataspaceConnector
              )
] .


[ rdf:type owl:AllDisjointClasses ;
  owl:members ( cx-common:FunctionAsset
                cx-common:GraphAsset
                cx-common:SkillAsset
              )
] .


###  Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi