@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@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 dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix voaf: <http://purl.org/vocommons/voaf#> .

@prefix munc: <http://ns.inria.fr/munc#> .


# Ontology documentation

munc: a owl:Ontology , voaf:Vocabulary; 
    rdfs:isDefinedby <http://ns.inria.fr/munc> ;  
	dcterms:creator <http://i3s.unice.fr/~djebri/foaf.html#me> ;
	dcterms:creator "Ahmed El Amine DJEBRI" ;
	dcterms:contributor "Ahmed El Amine DJEBRI" ;
	dcterms:contributor "Fabien Gandon";
	dcterms:contributor "Andrea G.B. Tettamanzi";
    dcterms:description "An OWL vocabulary for describing uncertainty metadata."@en ;
    dcterms:title "Meta-Uncertainty"@en ;
	vann:preferredNamespacePrefix "munc";
	vann:preferredNamespaceUri "http://ns.inria.fr/munc/v1#" ;   
	rdfs:comment "This file specifies the set of OWL classes and properties to represent multi-level uncertainty metadata."@en;
    foaf:homepage <http://ns.inria.fr/munc> ;  
    dcterms:created "2018-12-23"^^xsd:date;
    dcterms:modified "2019-02-01"^^xsd:date;
    dcterms:publisher "Inria";
    dcterms:type <http://purl.org/adms/assettype/Ontology>;
    dcterms:status <http://purl.org/adms/status/UnderDevelopment>;
    dcterms:hasVersion <http://ns.inria.fr/munc/v1#> ; 
    rdfs:seeAlso <http://ns.inria.fr/munc/> .


# Classes

munc:UncertaintyOperation a owl:Class ;
    rdfs:label "Uncertainty Operation"@en ;
    rdfs:comment "The Calculus to apply on the Values of a defined Uncertainty Feature."@en .

munc:UncertaintyValue a owl:Class ;
    rdfs:label "Uncertainty Value"@en ;
    rdfs:comment "For each Uncertainty Feature, exists (when declared) a corresponding value."@en .

munc:Meta a owl:Class ;
    rdfs:label "Meta"@en ;
    rdfs:comment "The metadata associated to a Sentence in a certain World (Context)."@en .

munc:Sentence a owl:Class ;
    rdfs:label "Sentence"@en ;
    rdfs:comment "The Sentence (Triple, Graph, Graph Pattern) to which Meta is associated in a specific World."@en .

munc:Uncertainty a owl:Class ;
    rdfs:label "Uncertainty"@en ;
    rdfs:comment "A subclass of Meta, it enables annotating the Sentence associated to the metadata with uncertainty information."@en ;
    rdfs:subClassOf munc:Meta .

munc:World a owl:Class ;
    rdfs:label "World"@en ;
    rdfs:comment "The context (Graph, Default Graph, etc.) in which the Sentence is associated to Meta. This is used generally by datastores which are unable to represent named graphs."@en .

munc:UncertaintyApproach a owl:Class ;
    rdfs:label "Uncertainty Approach"@en ;
    rdfs:comment "Individuals of this class represent uncertainty approaches, which are detailed in the appendix A."@en .

munc:TranslationFunction a owl:Class ;
    rdfs:label "Translation Function"@en ;
    rdfs:comment "Individuals of this class are LDScript functions enabling translating uncertainty information from one approach to another."@en .


# Super-Properties

munc:uncertaintyOperator a owl:ObjectProperty ;
    rdfs:label "uncertaintyOperator"@en ;
    rdfs:comment "Each Uncertainty approach has its own logic to reason over metadata, This class defines the methods that can be applied over Uncertainty Values. Such logic is the same used in reasoners and inference engines."@en ;
    rdfs:domain munc:uncertaintyFeature ;
    rdfs:range munc:UncertaintyOperation .
    
munc:uncertaintyFeature a owl:ObjectProperty ;
    rdfs:label "uncertaintyFeature"@en ;
    rdfs:comment "Each Uncertainty approach has some features, which can be metrics or measures to compare, infer or reason over to have a decision about knowledge."@en ;
    rdfs:domain munc:Uncertainty ;
    rdfs:range munc:UncertaintyValue .

# Properties

munc:hasMeta a owl:ObjectProperty ;
    rdfs:label "hasMeta"@en ;
    rdfs:domain munc:Sentence, munc:World ;
    rdfs:range munc:Meta .

munc:hasUncertaintyApproach a owl:ObjectProperty ;
    rdfs:label "hasUncertaintyApproach"@en ;
    rdfs:domain munc:Uncertainty ;
    rdfs:range munc:UncertaintyApproach .

munc:hasUncertaintyFeature a owl:ObjectProperty ;
    rdfs:label "hasUncertaintyFeature"@en ;
    rdfs:domain munc:UncertaintyApproach ;
    rdfs:range munc:uncertaintyFeature .

munc:hasUncertaintyOperator a owl:ObjectProperty ;
    rdfs:label "hasUncertaintyOperator"@en ;
    rdfs:domain munc:UncertaintyApproach ;
    rdfs:range munc:uncertaintyOperator .

munc:statedIn a owl:ObjectProperty ;
    rdfs:label "statedIn"@en ;
    rdfs:domain munc:Sentence ;
    rdfs:range munc:World .

# New in mUnc V2 : Uncertainty translation
munc:translateFrom a owl:ObjectProperty ;
    rdfs:label "translateFrom"@en ;
    rdfs:domain munc:TranslationFunction ;
    rdfs:range munc:UncertaintyApproach .

munc:translateTo a owl:ObjectProperty ;
    rdfs:label "translateFrom"@en ;
    rdfs:domain munc:TranslationFunction ;
    rdfs:range munc:UncertaintyApproach .

munc:hasTranslation a owl:ObjectProperty ;
    rdfs:label "hasTranslation"@en ;
    rdfs:domain munc:UncertaintyApproach ;
    rdfs:range munc:UncertaintyApproach .

munc:hasIdealTranslation a owl:ObjectProperty ;
    rdfs:label "hasIdealTranslation"@en ;
    rdfs:subPropertyOf munc:hasTranslation ;
    rdfs:domain munc:UncertaintyApproach ;
    rdfs:range munc:UncertaintyApproach .

munc:hasFullTranslation a owl:SymmetricProperty, owl:TransitiveProperty, owl:ReflexiveProperty ;
    rdfs:label "hasFullTranslation"@en ;
    rdfs:subPropertyOf munc:hasIdealTranslation ;
    rdfs:domain munc:UncertaintyApproach ;
    rdfs:range munc:UncertaintyApproach .

