@prefix : <http://cookingbigdata.com/linkeddata/dmml-schema#> .
@prefix rdf: 		<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: 		<http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: 		<http://www.w3.org/2002/07/owl#> .
@prefix foaf: 		<http://xmlns.com/foaf/0.1/> .
@prefix gr: 		<http://purl.org/goodrelations/v1#> .
@prefix dc: 	<http://purl.org/dc/terms/> .
@prefix time: 		<http://www.w3.org/2006/time#> .
@prefix xsd: 		<http://www.w3.org/2001/XMLSchema#> .
@prefix sc: 	<http://schema.org> .
@prefix ccdm: <http://cookingbigdata.com/linkeddata/ccdm#> .
@prefix ccpricing: <http://cookingbigdata.com/linkeddata/ccpricing#> .
@prefix ccsla: <http://cookingbigdata.com/linkeddata/ccsla#> .
@prefix waa: <http://purl.oclc.org/NET/WebApiAuthentication#> .

## Schema Header 
<http://cookingbigdata.com/linkeddata/dmml-schema#>	rdf:type owl:Ontology ;
	rdfs:label "Data Mining Machine Learning Services Definition"@en ;
	rdfs:label "Definicion de Servicios de Mineria de datos"@es ;
	dc:title "Data Mining Machine Learning Service Definition"@en ;
	dc:title "Definicion de Servicios de Mineria de datos"@es ;
	dc:description ""@en ;
	dc:created "2018-03-06"^^xsd:date ;	
	dc:modified "2018-04-03"^^xsd:date ;
	dc:issued "2018-05-20"^^xsd:date ;
    dc:creator :manuelparra ;
	dc:publiser :cookingbigdata ;
	owl:versionInfo "1.0"^^xsd:decimal ; 
	dc:rights "Copyright © 2018 Manuel Parra-Royón";
	.
	
:manuelparra a foaf:Person;
	foaf:name "Manuel Parra-Royon";
	foaf:homepage <https://twitter.com/manugrapevine> ;
	foaf:mbox "manuparra@gmail.com" ;
	rdf:about <https://twitter.com/manugrapevine>;	
	.
:cookingbigdata a foaf:Organization;
	foaf:name "CookingBigData";
	foaf:homepage <http://cookingbigdata.com> ;
	rdf:about <http://cookingbigdata.com/about>;
	.

## Classes
:MLServiceProvider a owl:Class, rdfs:Class ;
	rdfs:label "MLServiceProvider"@en;
	rdfs:comment "Service Provider Information"@en;
	rdfs:isDefinedBy <http://cookingbigdata.com/linkeddata/dmcc-schema/#MLServiceProvider>;
	rdfs:subClassOf gr:BusinessEntity ;
	.

:MLServiceCatalog a owl:Class, rdfs:Class ;
	rdfs:label "MLServiceCatalog"@en;
	rdfs:comment "Service Provider Catalog"@en;
	rdfs:isDefinedBy <http://cookingbigdata.com/linkeddata/dmcc-schema/#MLServiceCatalog>;
	.

:MLFunction a owl:Class, rdfs:Class ;
	rdfs:label "MLFunction"@en;
	rdfs:comment "Machine Learning Funtion or Operation to perform."@en;
	rdfs:subClassOf ccdm:MLFunction;
	rdfs:isDefinedBy <http://cookingbigdata.com/linkeddata/dmcc-schema/#MLFunction>;
	.

:MLService a owl:Class, rdfs:Class ;
	rdfs:label "MLService"@en;
	rdfs:comment "Service Definition"@en;
	rdfs:isDefinedBy <http://cookingbigdata.com/linkeddata/dmcc-schema/#MLService>;
	.

## Cloud Computing Classes 

:Interaction a owl:Class, rdfs:Class ;
	rdfs:label "Interaction"@en;
	rdfs:comment "The interaction with the service is done through an API via URL following the RESfull model."@en;
	rdfs:subClassOf sc:Action;
	rdfs:isDefinedBy <http://cookingbigdata.com/linkeddata/dmcc-schema/#Interaction>;
	.

:SLA a owl:Class, rdfs:Class ;
	rdfs:label "SLA"@en;
	rdfs:comment "It implements in a simple way the SLA or Service Level Agreement of a service. "@en;
	rdfs:subClassOf  ccsla:SLA;
	rdfs:isDefinedBy <http://cookingbigdata.com/linkeddata/dmcc-schema/#SLA>;
	.

:ServiceAuthentication a owl:Class, rdfs:Class ;
	rdfs:label "ServiceAuthentication"@en;
	rdfs:comment "Sets whether the specific service is affected by authentication. waa is used."@en;
	rdfs:subClassOf waa:Service, waa:AuthenticationMechanism;
	
	rdfs:isDefinedBy <http://cookingbigdata.com/linkeddata/dmcc-schema/#ServiceAuthentication>;
	.

:ServicePricing a owl:Class, rdfs:Class ;
	rdfs:label "ServicePricing"@en;
	rdfs:comment "Price of the services contained in the service. The prices of the services are affected by various elements such as the data of the region, the instances used, the number of hours of operation, etc. Also includes plans for Free or Regular services."@en;
	rdfs:subClassOf ccpricing:PricingPlan;
	rdfs:isDefinedBy <http://cookingbigdata.com/linkeddata/dmcc-schema/#ServicePricing>;
	.
	
## Objects Properties for ML

:hasMLService a rdfs:Property; 
	rdfs:label "Has a MLService"@en;
	rdfs:comment "Provides has a ML Service"@en;
	rdfs:domain :MLServiceProvider;
	rdfs:range :MLService;
	.

:hasOfferCatalog a rdfs:Property; 
	rdfs:label "Has a ML Catalog"@en;
	rdfs:comment "Provides a Catalog of ML Services to consume"@en;
	rdfs:domain :MLServiceProvider;
	rdfs:range :MLServiceCatalog;
	.

:hasFunction a rdfs:Property; 
	rdfs:label "Has ML Function"@en;
	rdfs:comment "Provides a ML function to execute"@en;
	rdfs:domain :MLService;
	rdfs:range :MLFunction;
	.
	
## Objects Properties for CC

:includes a rdfs:Property; 
	rdfs:label "Includes"@en;
	rdfs:comment "Includes a price plan for a ML service"@en;
	rdfs:domain :ServicePricing;
	rdfs:range :MLService;
	.

:hasAuthentication a rdfs:Property; 
	rdfs:label "Has Authentication"@en;
	rdfs:comment "Includes authentication methods in order to use the ML Service"@en;
	rdfs:domain :MLService;
	rdfs:range :ServiceAuthentication;
	.

:hasServiceCommitment a rdfs:Property; 
	rdfs:label "Has SLA"@en;
	rdfs:comment "Includes a SLA commitments for the ML Service"@en;
	rdfs:domain :MLService;
	rdfs:range :SLA;
	.
	
:hasInteractionPoint a rdfs:Property; 
	rdfs:label "Has EntryPoint"@en;
	rdfs:comment "Includes interaction Point"@en;
	rdfs:domain :MLService;
	rdfs:range :Interaction;
	.

:hasEntryPoint 
	rdf:type owl:ObjectProperty ;
	rdfs:label "Has entry point"@en ;
	rdfs:comment "Has a entry point resource associated to actions."@en ;
	rdfs:domain :Interaction ;
	rdfs:range sc:Action 
	.
