<?xml version="1.0"?>


<!DOCTYPE rdf:RDF [
    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
]>


<rdf:RDF xmlns="http://www.pr-owl.org/pr-owl.owl#"
     xml:base="http://www.pr-owl.org/pr-owl.owl"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:owl="http://www.w3.org/2002/07/owl#">
    <owl:Ontology rdf:about="">
        <rdfs:comment rdf:datatype="&xsd;string"
            >PR-OWL is an upper ontology to support writing probabilistic ontologies. It is based on Multi-Entity Bayesian Networks (MEBN). More information can be found at www.pr-owl.org.</rdfs:comment>
        <owl:versionInfo rdf:datatype="&xsd;float">1.04</owl:versionInfo>
    </owl:Ontology>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////
    //
    //   OWL Classes
    //
    ///////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#ArgRelationship -->

    <owl:Class rdf:about="#ArgRelationship">
        <rdfs:comment rdf:datatype="&xsd;string"
            >Each generic random variable can have many arguments. Arguments are usually restricted in their type and meaning via the context nodes of an MFrag. In order to model these complex N-ary relations, PR-OWL makes use of the ArgRelationship class, which is a reified relation that conveys the number and order of arguments that each RV expects, it&apos;s type (defined via a link to the OVariable class), and the link to the RV itself.
MEBN logic has the concept of a simple and a composite random variable term. Simple RV terms accepts variables and constant symbols as arguments. Composite RV terms also accepts other RV terms as arguments. In PR-OWL, the class ArgRelashionship models composite RV terms, while its SimpleArgRelashionship subclass models simple RV terms.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasArgNumber"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="&owl;Thing"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isArgumentOf"/>
                <owl:allValuesFrom rdf:resource="#Node"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasArgTerm"/>
                <owl:allValuesFrom>
                    <owl:Class>
                        <owl:unionOf rdf:parseType="Collection">
                            <owl:Class rdf:about="#Entity"/>
                            <owl:Class rdf:about="#OVariable"/>
                            <owl:Class rdf:about="#Node"/>
                            <owl:Class rdf:about="#Exemplar"/>
                        </owl:unionOf>
                    </owl:Class>
                </owl:allValuesFrom>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#BooleanRVStates -->

    <owl:Class rdf:about="#BooleanRVStates">
        <rdfs:comment rdf:datatype="&xsd;string"
            >The BooleanRVStates class is formed by the Boolean truth-value states and are applied to Boolean random variables.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Class rdf:about="#Entity"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasType"/>
                <owl:hasValue rdf:resource="#Boolean"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#BuiltInRV -->

    <owl:Class rdf:about="#BuiltInRV">
        <rdfs:comment rdf:datatype="&xsd;string"
            >Individuals of this class represent the random variables from MEBN logic&apos;s built-in MFrags: logical connectives, quantifiers, the equality random variable. Likewise their function in MEBN logic, these individuals allow PR-OWL ontologies to represent a rich family of probability distributions over interpretations of first-order logic.
Note that MEBN&apos;s built-in Indirect Reference MFrag is already represented in PR-OWL via its recursive scheme of building complex formulas.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasInputInstance"/>
                <owl:allValuesFrom rdf:resource="#Input"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasPossibleValues"/>
                <owl:someValuesFrom rdf:resource="#BooleanRVStates"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="&owl;Thing"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasPossibleValues"/>
                <owl:allValuesFrom rdf:resource="#BooleanRVStates"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#CategoricalRVStates -->

    <owl:Class rdf:about="#CategoricalRVStates">
        <rdfs:comment rdf:datatype="&xsd;string"
            >Nodes represent random variables, which by definition have a list of mutually exclusive, collectively exhaustive states. In PR-OWL, those states are represented by individuals from class Entity. Some random variables have a list of categorical values as its possible states, and these are represented by elements from subclass CategoricalRVStates.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Class rdf:about="#Entity"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasType"/>
                <owl:hasValue rdf:resource="#CategoryLabel"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#CondRelationship -->

    <owl:Class rdf:about="#CondRelationship">
        <rdfs:comment rdf:datatype="&xsd;string"
            >The conditional relationship class is a reified property representing a (parent) node and one of its possible states. Individuals of this class are used to built PR-OWL probabilistic distribution tables. Each cell of such a table corresponds to a probability assignment of a possible value of a node given one combination of the states of its parents. Each individual of class CondRelationship represents one parent/state pair, so a probability assigment is conditioned by a set of CondRelationship pairs (one for each parent node).</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasParentName"/>
                <owl:allValuesFrom rdf:resource="#Node"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="&owl;Thing"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasParentState"/>
                <owl:someValuesFrom rdf:resource="#Entity"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasParentName"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasParentName"/>
                <owl:someValuesFrom rdf:resource="#Node"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasParentState"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isConditionantOf"/>
                <owl:someValuesFrom rdf:resource="#ProbAssign"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasParentState"/>
                <owl:allValuesFrom rdf:resource="#Entity"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#Context -->

    <owl:Class rdf:about="#Context">
        <rdfs:comment rdf:datatype="&xsd;string"
            >In general, MFrags impose constraints to the type of arguments each of its resident RVs should accept. The individuals of the Context class represent these types of constraints.
In PR-OWL, the class Context is the only subclass of the Node class that accepts composite RV terms as arguments (that is, uses the complete ArgRelationship instead of the more restricted SimpleArgRelashionship).
A context node is either satisfiable or not, which means its possible states are instances of  the BooleanRVStates class.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasPossibleValues"/>
                <owl:allValuesFrom rdf:resource="#Entity"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isContextInstanceOf"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasPossibleValues"/>
                <owl:someValuesFrom rdf:resource="#Entity"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasInnerTerm"/>
                <owl:allValuesFrom rdf:resource="#Context"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="#Node"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isContextNodeIn"/>
                <owl:allValuesFrom rdf:resource="#Domain_MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#DeclarativeDist -->

    <owl:Class rdf:about="#DeclarativeDist">
        <rdfs:comment rdf:datatype="&xsd;string"
            >A declarative distribution is a distribution that is conveyed via a xsd:string datatype, using a specific format defined in the hasDeclaration datatype property. In order to allow a MEBN algorithm to work, a parser should be able to retrieve the probability distribution information in the format it is stored and then pass that information to the MEBN algorithm in its own proprietaty format.
Describing a probability distribution is a much more compact and flexible way of conveying it. However, it assumes that an OWL-P parser would understand the format in which the information is stored. PR-OWL tables, on the other hand, convey probability distributions in a more interoperable way, but are not flexible enough to represent complex distributions such as the cases in which a node has multiple possible parents.
For added compatibility, one probability distribution can be stored in multiple formats (i.e. multiple DeclarativeDist individuals for the same RV).</rdfs:comment>
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isProbDistOf"/>
                        <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isRepresentedAs"/>
                        <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
                    </owl:Restriction>
                    <owl:Class rdf:about="#ProbDist"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isProbDistOf"/>
                        <owl:someValuesFrom rdf:resource="#Resident"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isProbDistOf"/>
                        <owl:allValuesFrom rdf:resource="#Resident"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#hasDeclaration"/>
                        <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#Domain_MFrag -->

    <owl:Class rdf:about="#Domain_MFrag">
        <rdfs:comment rdf:datatype="&xsd;string"
            >Domain MFrags is the subclass of class MFrag that includes all the domain-specific MFrags. It is disjoint with class Finding_MFrag. All generative MFrags created by the ontology engineer (i.e. the domain expert) are members of this class.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasContextNode"/>
                <owl:allValuesFrom rdf:resource="#Context"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="#MFrag"/>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#Domain_Res -->

    <owl:Class rdf:about="#Domain_Res">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This is the subclass of class Resident (node) that includes all domain-specific resident nodes. It is disjoint with classes Finding_res and BuiltInRV.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#Domain_Res"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#hasParent"/>
                        <owl:allValuesFrom rdf:resource="#Generative_input"/>
                    </owl:Restriction>
                </owl:unionOf>
            </owl:Class>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isResidentNodeIn"/>
                <owl:someValuesFrom rdf:resource="#Domain_MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isParentOf"/>
                <owl:allValuesFrom rdf:resource="#Domain_Res"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isResidentNodeIn"/>
                <owl:allValuesFrom rdf:resource="#Domain_MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="#Resident"/>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#Entity -->

    <owl:Class rdf:about="#Entity">
        <rdfs:comment rdf:datatype="&xsd;string"
            >MEBN logic treats the world as being comprised of entities that have attributes and are related to other entities. The logic assumes uniqueness or each concept (i.e. unique name assumption), so each entity in a MEBN model has a unique identifier and no unique identifier can be assigned to more than one entity.
PR-OWL follows MEBN syntax and semantics for defining entities so each member of the class Entity has a unique identifier assigned by the datatype property hasUID. OWL doesn&apos;t have the unique name assumption so the UID can be seen a tool for providing maximum compatibility with legacy OWL ontologies, since parsers may refer to it as a means to enforce uniqueness among declared entities.
It is important to note that not all concepts in an ontology have a UID, but only those which will be considered as part of the probabilistic model that is implicit in any probabilistic ontology. This structure allows mixing legacy deterministic ontologies with probabilististic ones. That allows knowledge engineers to assign PR-OWL definitions only to the parts of the domain for which plausible reasoning is desired.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasType"/>
                <owl:someValuesFrom rdf:resource="#MetaEntity"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasType"/>
                <owl:allValuesFrom rdf:resource="#MetaEntity"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="&owl;Thing"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasUID"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasType"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isPossibleValueOf"/>
                <owl:allValuesFrom>
                    <owl:Class>
                        <owl:unionOf rdf:parseType="Collection">
                            <owl:Class rdf:about="#BuiltInRV"/>
                            <owl:Class rdf:about="#Node"/>
                        </owl:unionOf>
                    </owl:Class>
                </owl:allValuesFrom>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isConditionantOf"/>
                <owl:allValuesFrom rdf:resource="#ProbAssign"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#Exemplar -->

    <owl:Class rdf:about="#Exemplar">
        <rdfs:comment rdf:datatype="&xsd;string"
            >Each individual of class Skolem represents a Skolem constant in a MEBN quantifier random variable.  Each MEBN quantifier random variable corresponds to a first-order formula beginning with a universal or existential quantifier. The Skolem constant in the MEBN random variable represents a generic individual within the scope of the universal or existential quantifier of the corresponding first-order formula.  
MEBN logic contains a set of built-in MFrags for quantifier random variables.  In PR-OWL modelers can use individuals of class Skolem to define distributions for Skolem constants used in quantifier random variables.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isArgTermIn"/>
                <owl:allValuesFrom rdf:resource="#ArgRelationship"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isExemplarIn"/>
                <owl:someValuesFrom rdf:resource="#MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#representsOVar"/>
                <owl:allValuesFrom rdf:resource="#OVariable"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="&owl;Thing"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isArgTermIn"/>
                <owl:someValuesFrom rdf:resource="#ArgRelationship"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isExemplarIn"/>
                <owl:allValuesFrom rdf:resource="#MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#representsOVar"/>
                <owl:someValuesFrom rdf:resource="#OVariable"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#Finding_MFrag -->

    <owl:Class rdf:about="#Finding_MFrag">
        <rdfs:comment rdf:datatype="&xsd;string"
            >Finding MFrags are used to convey information about findings, which is the default way of entering evidence in a MEBN MTheory so a probabilistic algorithm can be applied to perform inferences regarding the new evidence. They have no context nodes, only one input and one resident node.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasInputNode"/>
                <owl:someValuesFrom rdf:resource="#Finding_input"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasInputNode"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasInputNode"/>
                <owl:allValuesFrom rdf:resource="#Finding_input"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="#MFrag"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasResidentNode"/>
                <owl:someValuesFrom rdf:resource="#Finding_res"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasResidentNode"/>
                <owl:allValuesFrom rdf:resource="#Finding_res"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasResidentNode"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#Finding_input -->

    <owl:Class rdf:about="#Finding_input">
        <rdfs:subClassOf>
            <owl:Class rdf:about="#Input"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isInputNodeIn"/>
                <owl:someValuesFrom rdf:resource="#Finding_MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isParentOf"/>
                <owl:someValuesFrom rdf:resource="#Finding_res"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isInputInstanceOf"/>
                <owl:someValuesFrom rdf:resource="#Finding_res"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isInputNodeIn"/>
                <owl:allValuesFrom rdf:resource="#Finding_MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isParentOf"/>
                <owl:allValuesFrom rdf:resource="#Finding_res"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isParentOf"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isInputInstanceOf"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isInputInstanceOf"/>
                <owl:allValuesFrom rdf:resource="#Finding_res"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#Finding_res -->

    <owl:Class rdf:about="#Finding_res">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This is the subclass of class Resident (node) that includes all finding nodes. Finding nodes convey new evidence into a probabilistic system via a Finding_MFrag. The class is disjoint with classes Domain_res and BuiltInRV.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isParentOf"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">0</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasParent"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasParent"/>
                <owl:allValuesFrom rdf:resource="#Finding_input"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasPossibleValues"/>
                <owl:allValuesFrom>
                    <owl:Class>
                        <owl:oneOf rdf:parseType="Collection">
                            <owl:Thing rdf:about="#true"/>
                            <owl:Thing rdf:about="#absurd"/>
                        </owl:oneOf>
                    </owl:Class>
                </owl:allValuesFrom>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isResidentNodeIn"/>
                <owl:allValuesFrom rdf:resource="#Finding_MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasPossibleValues"/>
                <owl:someValuesFrom>
                    <owl:Class>
                        <owl:oneOf rdf:parseType="Collection">
                            <owl:Thing rdf:about="#true"/>
                            <owl:Thing rdf:about="#absurd"/>
                        </owl:oneOf>
                    </owl:Class>
                </owl:someValuesFrom>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="#Resident"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasParent"/>
                <owl:someValuesFrom rdf:resource="#Finding_input"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isResidentNodeIn"/>
                <owl:someValuesFrom rdf:resource="#Finding_MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#Generative_input -->

    <owl:Class rdf:about="#Generative_input">
        <rdfs:subClassOf>
            <owl:Class rdf:about="#Input"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isInputInstanceOf"/>
                <owl:someValuesFrom>
                    <owl:Class>
                        <owl:unionOf rdf:parseType="Collection">
                            <owl:Class rdf:about="#Domain_Res"/>
                            <owl:Class rdf:about="#BuiltInRV"/>
                        </owl:unionOf>
                    </owl:Class>
                </owl:someValuesFrom>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#Input -->

    <owl:Class rdf:about="#Input">
        <rdfs:comment rdf:datatype="&xsd;string"
            >In PR-OWL, an input node is basically a &quot;copy&quot; of a resident node that is used as an input in a given MFrag. Thus, each individual of class Input is linked with an individual of class Resident via the property isInputInstanceOf.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isParentOf"/>
                <owl:someValuesFrom rdf:resource="#Resident"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasArgument"/>
                <owl:allValuesFrom rdf:resource="#SimpleArgRelationship"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isParentOf"/>
                <owl:allValuesFrom rdf:resource="#Resident"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isParentOf"/>
                <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isInputInstanceOf"/>
                <owl:someValuesFrom>
                    <owl:Class>
                        <owl:unionOf rdf:parseType="Collection">
                            <owl:Class rdf:about="#BuiltInRV"/>
                            <owl:Class rdf:about="#Resident"/>
                        </owl:unionOf>
                    </owl:Class>
                </owl:someValuesFrom>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasInnerTerm"/>
                <owl:allValuesFrom rdf:resource="#Input"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isInputNodeIn"/>
                <owl:allValuesFrom rdf:resource="#MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isInputInstanceOf"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="#Node"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isInputNodeIn"/>
                <owl:someValuesFrom rdf:resource="#MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isInputInstanceOf"/>
                <owl:allValuesFrom>
                    <owl:Class>
                        <owl:unionOf rdf:parseType="Collection">
                            <owl:Class rdf:about="#BuiltInRV"/>
                            <owl:Class rdf:about="#Resident"/>
                        </owl:unionOf>
                    </owl:Class>
                </owl:allValuesFrom>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#MFrag -->

    <owl:Class rdf:about="#MFrag">
        <rdfs:comment rdf:datatype="&xsd;string"
            >MEBN Fragments (MFrags) are the basic structure of any MEBN logic model. MFrags represent influences among clusters of related RVs and can portray repeated patters using ordinary variables as placeholders in to which entity identifiers can be substituted. In PR-OWL, each individual the MFrag class represents a MEBN Fragment (MFrag).</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasInputNode"/>
                <owl:allValuesFrom rdf:resource="#Input"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasResidentNode"/>
                <owl:someValuesFrom rdf:resource="#Resident"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isMFragOf"/>
                <owl:allValuesFrom rdf:resource="#MTheory"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasResidentNode"/>
                <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasNode"/>
                <owl:someValuesFrom rdf:resource="#Node"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="&owl;Thing"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasOVariable"/>
                <owl:allValuesFrom rdf:resource="#OVariable"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasNode"/>
                <owl:allValuesFrom rdf:resource="#Node"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasExemplar"/>
                <owl:allValuesFrom rdf:resource="#Exemplar"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasResidentNode"/>
                <owl:allValuesFrom rdf:resource="#Resident"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#MTheory -->

    <owl:Class rdf:about="#MTheory">
        <rdfs:comment rdf:datatype="&xsd;string"
            >An MTheory is a collection of MFrags that statisfies consistency constraints ensuring the existence of a unique joint distribution over the random variables mentioned in the MTheory. In PR-OWL, the class MTheory allows a probabilistic ontology to have more than one valid MTheory to represent its RVs, and each individual of that class is basically a list of the MFrags that collectively form that MTheory. In addition, one MFrag can be part of more than one MTheory.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasMFrag"/>
                <owl:someValuesFrom rdf:resource="#MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="&owl;Thing"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasMFrag"/>
                <owl:allValuesFrom rdf:resource="#MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#MetaEntity -->

    <owl:Class rdf:about="#MetaEntity">
        <rdfs:comment rdf:datatype="&xsd;string"
            >The MetaEntity class includes all the entities that convey specific definitions about entities (e.g. typelabels that name the possible types of entities).</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Class rdf:about="#Entity"/>
        </rdfs:subClassOf>
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isTypeOf"/>
                        <owl:someValuesFrom rdf:resource="#Entity"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isTypeOf"/>
                        <owl:allValuesFrom rdf:resource="#Entity"/>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#Node -->

    <owl:Class rdf:about="#Node">
        <rdfs:comment rdf:datatype="&xsd;string"
            >A node is part of an MFrag and it can be a random variable that is defined within that MFrag (a resident node), a RV that input values to nodes within that MFrag (an input node), or a RV that expresses the context in which the probability distributions within that MFrag are valid (a context node).</rdfs:comment>
        <owl:versionInfo rdf:datatype="&xsd;string"></owl:versionInfo>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isInnerTermOf"/>
                <owl:allValuesFrom rdf:resource="#Node"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasPossibleValues"/>
                <owl:allValuesFrom rdf:resource="#Entity"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasArgument"/>
                <owl:allValuesFrom rdf:resource="#ArgRelationship"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasPossibleValues"/>
                <owl:someValuesFrom rdf:resource="#Entity"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="&owl;Thing"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isNodeFrom"/>
                <owl:someValuesFrom rdf:resource="#MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasInnerTerm"/>
                <owl:allValuesFrom rdf:resource="#Node"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isNodeFrom"/>
                <owl:allValuesFrom rdf:resource="#MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#OVariable -->

    <owl:Class rdf:about="#OVariable">
        <rdfs:comment rdf:datatype="&xsd;string"
            >Ordinary variables are placeholders used in MFrags to refer to non-specific entities as arguments in a given MFrag&apos;s RVs.</rdfs:comment>
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isOVariableIn"/>
                        <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isArgTermIn"/>
                        <owl:allValuesFrom rdf:resource="#ArgRelationship"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isOVariableIn"/>
                        <owl:allValuesFrom rdf:resource="#MFrag"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isSubsBy"/>
                        <owl:someValuesFrom rdf:resource="#MetaEntity"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isArgTermIn"/>
                        <owl:someValuesFrom rdf:resource="#ArgRelationship"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#representsOVar"/>
                        <owl:allValuesFrom rdf:resource="#Exemplar"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isOVariableIn"/>
                        <owl:someValuesFrom rdf:resource="#MFrag"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isSubsBy"/>
                        <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isSubsBy"/>
                        <owl:allValuesFrom rdf:resource="#MetaEntity"/>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#ObjectEntity -->

    <owl:Class rdf:about="#ObjectEntity">
        <rdfs:comment rdf:datatype="&xsd;string"
            >The class ObjectEntity aggregates the MEBN entities that are real world concepts of interest in a domain. They are akin to objects in OO models and to frames in frame-based knowledge systems.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Class rdf:about="#Entity"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#subsOVar"/>
                <owl:allValuesFrom rdf:resource="#OVariable"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#PR-OWLTable -->

    <owl:Class rdf:about="#PR-OWLTable">
        <rdfs:comment rdf:datatype="&xsd;string"
            >An PR-OWL table has all the probability assignments for each state of a RV stored in a xsd:decimal format (future implementations might use the pr-owl:prob format, but currently that means incompatibilities with OWL, which has no support for PR-OWL custom datatypes). 
This format for storing probability distributions cannot represent complex cases for which only formulas can represent a probability distribution (e.g. a node that have a variable number of parents) and usually incurs in huge ontologies, since each table can have many cells and each cell is an individual of the ProbAssign class. Therefore, PR-OWL tables are only recommended for the simplest models in which the maximum level of compatibility is desired.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isProbDistOf"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="#ProbDist"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasProbAssign"/>
                <owl:allValuesFrom rdf:resource="#ProbAssign"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isProbDistOf"/>
                <owl:someValuesFrom rdf:resource="#Resident"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isProbDistOf"/>
                <owl:allValuesFrom rdf:resource="#Resident"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasProbAssign"/>
                <owl:someValuesFrom rdf:resource="#ProbAssign"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#ProbAssign -->

    <owl:Class rdf:about="#ProbAssign">
        <rdfs:comment rdf:datatype="&xsd;string"
            >Each cell in an PR-OWL table has a probability assignment for the state of a RV given the states of its parent nodes. Thus, the resulting relationship is N-ary and we opted for representing it via a reified relation (ProbAssign) that includes the name of the state to which the probability is being assigned, the probability value itself, and the list of states of parent nodes (i.e. conditionants) that collectively define the context in which that probability assignment is valid. Also, individuals of the ProbAssign class have an object property that links them with its respective PR-OWL table.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasConditionant"/>
                <owl:someValuesFrom rdf:resource="#CondRelationship"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasConditionant"/>
                <owl:allValuesFrom rdf:resource="#CondRelationship"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="&owl;Thing"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasStateName"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasStateProb"/>
                <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasStateName"/>
                <owl:someValuesFrom rdf:resource="#Entity"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasStateName"/>
                <owl:allValuesFrom rdf:resource="#Entity"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#ProbDist -->

    <owl:Class rdf:about="#ProbDist">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This class is meant to represent the probability distributions that are defined in an MFrag to each of its resident nodes (random variables). A probability distribution can be described using a proprietary declarative format, such as a Netica table or a Quiddity function, or via an PR-OWL table (which has probability assigments as its cells).</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Class rdf:about="&owl;Thing"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isProbDistOf"/>
                <owl:someValuesFrom rdf:resource="#Resident"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isProbDistOf"/>
                <owl:allValuesFrom rdf:resource="#Resident"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#Resident -->

    <owl:Class rdf:about="#Resident">
        <rdfs:comment rdf:datatype="&xsd;string"
            >Resident nodes are the random variables that have their respective probability distribution defined in the MFrag.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasArgument"/>
                <owl:allValuesFrom rdf:resource="#SimpleArgRelationship"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasProbDist"/>
                <owl:someValuesFrom rdf:resource="#ProbDist"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasPossibleValues"/>
                <owl:allValuesFrom rdf:resource="#Entity"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasPossibleValues"/>
                <owl:someValuesFrom rdf:resource="#Entity"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasProbDist"/>
                <owl:allValuesFrom rdf:resource="#ProbDist"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Class rdf:about="#Node"/>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isResidentNodeIn"/>
                <owl:allValuesFrom rdf:resource="#MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasInnerTerm"/>
                <owl:allValuesFrom rdf:resource="#Resident"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isArgTermIn"/>
                <owl:allValuesFrom rdf:resource="#ArgRelationship"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isParentOf"/>
                <owl:allValuesFrom rdf:resource="#Resident"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isResidentNodeIn"/>
                <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasParent"/>
                <owl:allValuesFrom>
                    <owl:Class>
                        <owl:unionOf rdf:parseType="Collection">
                            <owl:Class rdf:about="#Input"/>
                            <owl:Class rdf:about="#Resident"/>
                        </owl:unionOf>
                    </owl:Class>
                </owl:allValuesFrom>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#isResidentNodeIn"/>
                <owl:someValuesFrom rdf:resource="#MFrag"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- Class: http://www.pr-owl.org/pr-owl.owl#SimpleArgRelationship -->

    <owl:Class rdf:about="#SimpleArgRelationship">
        <rdfs:comment rdf:datatype="&xsd;string"
            >Each generic random variable can have many arguments. Arguments are usually restricted in their type and meaning via the context nodes of an MFrag. In order to model these complex N-ary relations, PR-OWL makes use of the SimpleArgRelationship class, which is a reified relation that conveys the number and order of arguments that each RV expects, it&apos;s type (defined via a link to the TypeContext class), and the link to the RV itself.</rdfs:comment>
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isArgumentOf"/>
                        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#hasArgTerm"/>
                        <owl:someValuesFrom rdf:resource="#OVariable"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#isArgumentOf"/>
                        <owl:allValuesFrom rdf:resource="#Node"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#hasArgTerm"/>
                        <owl:allValuesFrom rdf:resource="#OVariable"/>
                    </owl:Restriction>
                    <owl:Class rdf:about="#ArgRelationship"/>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
    </owl:Class>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////
    //
    //   OWL Object Properties
    //
    ///////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasArgTerm -->

    <owl:ObjectProperty rdf:about="#hasArgTerm">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links one instance of class ArgRelationship (which is linked to a RV) to an internal variable within the home MFrag where its RV is resident, to a node that is being used as argument in that RV, or to a MEBN entity. 
This object property is the inverse of isArgTermIn.
One individual of the class ArgRelationship can have only one RV (since it refers to a specific argument of an RV), and thus can be related to only one OVariable (Simple RV Terms) or one Node (Composite RV Terms), which makes that property a functional one.
The inverse property is isArgTermIn.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isArgTermIn"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#ArgRelationship"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#Entity"/>
                    <owl:Class rdf:about="#OVariable"/>
                    <owl:Class rdf:about="#Exemplar"/>
                    <owl:Class rdf:about="#Resident"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasArgument -->

    <owl:ObjectProperty rdf:about="#hasArgument">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property is the link between a node in an MFrag and the reified relation that conveys its respective arguments. Note that each instance of a node will have only one argument relashionship, which is defined within that node&apos;s MFrag.
The inverse of this property is isArgumentOf</rdfs:comment>
        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isArgumentOf"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Node"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#ArgRelationship"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasConditionant -->

    <owl:ObjectProperty rdf:about="#hasConditionant">
        <rdfs:comment rdf:datatype="&xsd;string"
            >Each instance of the class ProbAssign corresponds to the probability assigment for a given state of a RV. This probability assignment is conditioned by the parent RVs of that RV. This object property conveys the list of the states of the parent RV which have influenced that specific probability assignment. Since any MEBN entity can be a state in a RV, this property has MEBNEntity class as its range.
The inverse property is isConditionantOf</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isConditionantOf"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#ProbAssign"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#CondRelationship"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasContextInstance -->

    <owl:ObjectProperty rdf:about="#hasContextInstance">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links a resident node or a built-in RV to its many possible &quot;context node instances&quot;, or the instances of context nodes that take their values from that resident node or built-in RV.
The inverse property is isContextInstanceOf.</rdfs:comment>
        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isContextInstanceOf"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#Domain_Res"/>
                    <owl:Class rdf:about="#BuiltInRV"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Context"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasContextNode -->

    <owl:ObjectProperty rdf:about="#hasContextNode">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links an MFrag to the context nodes being applied to it.
The inverse property is isContextIn</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isContextNodeIn"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Domain_MFrag"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Context"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasExemplar -->

    <owl:ObjectProperty rdf:about="#hasExemplar">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property relates one MFrag with the Exemplar constants (i.e. an individual from class Exemplar) that are defined in that MFrag.
The inverse of this property is isExemplarIn.</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isExemplarIn"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#MFrag"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Exemplar"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasInnerTerm -->

    <owl:ObjectProperty rdf:about="#hasInnerTerm">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property makes the connection between the many possible inner terms inside a MENB equation. It is used to decompose random variable terms usually employed in context and input nodes.
The inverse property is isInnerTermOf.</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isInnerTermOf"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Node"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Node"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasInputInstance -->

    <owl:ObjectProperty rdf:about="#hasInputInstance">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links a resident node or a built-in RV to its many possible &quot;input node instances&quot;, or the instances of input nodes that take their values from that resident node or built-in RV.
The inverse property is isInputInstanceOf.</rdfs:comment>
        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isInputInstanceOf"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#BuiltInRV"/>
                    <owl:Class rdf:about="#Resident"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Input"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasInputNode -->

    <owl:ObjectProperty rdf:about="#hasInputNode">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links each MFrag with its respective input nodes.
The inverse property is isInputNodeIn</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isInputNodeIn"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#MFrag"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Input"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasMFrag -->

    <owl:ObjectProperty rdf:about="#hasMFrag">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links one MTheory with its respective MFrags. Usually, a probabilistic ontology will have only one MTheory as a means to convey the global joint probability distribution of its random variables. However, MEBN logic allows many possible MTheories to represent a given domain, so it is reasonable to infer that in some circunstances it might be preferable to have one probability ontology being represented by more than one MTheory.
The inverse property is isMFragOf</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isMFragOf"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#MTheory"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#MFrag"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasNode -->

    <owl:ObjectProperty rdf:about="#hasNode">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links one MFrag with its nodes.
The inverse property is isNodeFrom</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isNodeFrom"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#MFrag"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Node"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasOVariable -->

    <owl:ObjectProperty rdf:about="#hasOVariable">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This inverse functional object property relates one MFrag to its ordinary variables (i.e. individuals from class OVariable hat are related to this MFrag).
The inverse of this property is isOVariableIn.</rdfs:comment>
        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isOVariableIn"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#MFrag"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#OVariable"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasParent -->

    <owl:ObjectProperty rdf:about="#hasParent">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links a resident node of an MFrag with its respective parent(s), which has(have) to be an individual of either the class Resident or the class Input.
The inverse property is isParentOf.</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isParentOf"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Resident"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#Input"/>
                    <owl:Class rdf:about="#Resident"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasParentName -->

    <owl:ObjectProperty rdf:about="#hasParentName">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links a CondRelationship to a Node. The reified conditional relationship is used to build PR-OWL Tables. One table usually has many probability assignments (which correspond to cells in a table), and each probability assignment has a set of conditionants. Conditionants are the states of the parents of a node that form a combination where a given probability assignment holds. Each CondRelationship defines a pair parent/state-of-parent, and the hasParentName property defines the parent name of that pair.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class rdf:about="#CondRelationship"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Node"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasParentState -->

    <owl:ObjectProperty rdf:about="#hasParentState">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links a CondRelationship to an Entity. The reified conditional relationship is used to build PR-OWL Tables. One table usually has many probability assignments (which correspond to cells in a table), and each probability assignment has a set of conditionants. Conditionants are the states of the parents of a node that form a combination where a given probability assignment holds. Each CondRelationship defines a pair parent/state-of-parent, and the hasParentState property defines the parent state of that pair.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class rdf:about="#CondRelationship"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Entity"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasPossibleValues -->

    <owl:ObjectProperty rdf:about="#hasPossibleValues">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property defines what are the possible values of a node in an MFrag (which is by definition a random variable). Possible states include all kinds of entities.
The inverse property is isPossibleValueOf</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isPossibleValueOf"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#BuiltInRV"/>
                    <owl:Class rdf:about="#Node"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Entity"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasProbAssign -->

    <owl:ObjectProperty rdf:about="#hasProbAssign">
        <rdfs:comment rdf:datatype="&xsd;string"
            >An PR-OWL table is formed by many individual members of the class ProbAssign, which are cells in that table. This object property relates one PR-OWL table to its respective cells (ProbAssign elements).
The inverse property is isProbAssignIn.</rdfs:comment>
        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isProbAssignIn"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#PR-OWLTable"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#ProbAssign"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasProbDist -->

    <owl:ObjectProperty rdf:about="#hasProbDist">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links a RV to its respective probability distributions, as defined in that RV&apos;s home MFrags. Note that this property is not being defined as functional, implying a polymorphic version of MEBN (where each RV can have different distributions in different MFrags).
The inverse of this property is isProbDistOf.</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isProbDistOf"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Resident"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#ProbDist"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasResidentNode -->

    <owl:ObjectProperty rdf:about="#hasResidentNode">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links an MFrag with its respective resident node(s).
The inverse property is isResidentNodeIn</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isResidentNodeIn"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#MFrag"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Resident"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasStateName -->

    <owl:ObjectProperty rdf:about="#hasStateName">
        <rdfs:comment rdf:datatype="&xsd;string"
            >When a probability distribution is conveyed as an PR-OWL table, each individual cell is represented as an individual of the ProbAssign class. This object property refers to which state of a random variable (i.e. MFrag node) a given probability assignment refers to.
The property itself is functional, since one state can have only one probability assignment for the configuration listed in each individual of the ProbAssign class.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class rdf:about="#ProbAssign"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Entity"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#hasType -->

    <owl:ObjectProperty rdf:about="#hasType">
        <rdfs:comment rdf:datatype="&xsd;string"
            >In the extended MEBN logic that is the backbone of PR-OWL, each and every entity has a type. The list of types consists of the individuals from class MetaEntity.
This functional object property defines the type of each entity by linking it to an individual of the MetaEntity class. 
Every entity has a MetaEntity (TypeLabel, CategoryLabel, Boolean, or a domain-specific label) as a Type. As an example, an hypothetical indivudual of an ObjectEntity class named Starship would have type Starship, which is a domain-specific label for an ObjectEntity individual that happens to be a starship. That domain-specific label is itself an individual of the MetaEntity class.
The inverse property is isTypeOf.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isTypeOf"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Entity"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#MetaEntity"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isArgTermIn -->

    <owl:ObjectProperty rdf:about="#isArgTermIn">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links an individual of class OVariable, Resident, Entity, or Skolem to one ArgRelationship(s) that has individual as its argument. Each ArgRelationship can have only one argument, but each individual of those classes can refer to many ArgRelationships.
The inverse of this property is hasArgTerm.</rdfs:comment>
        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasArgTerm"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#Entity"/>
                    <owl:Class rdf:about="#OVariable"/>
                    <owl:Class rdf:about="#Exemplar"/>
                    <owl:Class rdf:about="#Resident"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#ArgRelationship"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isArgumentOf -->

    <owl:ObjectProperty rdf:about="#isArgumentOf">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links an Argument Relationship to its respective Node (i.e. to the individual of class Node that has this ArgRelationship into its argument list).
The inverse of this property is hasArgument.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasArgument"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#ArgRelationship"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Node"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isConditionantOf -->

    <owl:ObjectProperty rdf:about="#isConditionantOf">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links one possible state of a parent node to the configuration that is conditioning its children state&apos;s probability distribution.
The inverse property is hasConditionant.</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasConditionant"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#CondRelationship"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#ProbAssign"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isContextInstanceOf -->

    <owl:ObjectProperty rdf:about="#isContextInstanceOf">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links context node to its &quot;generative resident node&quot; or built-in RV (i.e. the resident node or built-in RV from which the context node is a pointer).
The inverse property is hasContextInstance</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasContextInstance"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Context"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#Domain_Res"/>
                    <owl:Class rdf:about="#BuiltInRV"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isContextNodeIn -->

    <owl:ObjectProperty rdf:about="#isContextNodeIn">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links one context node to the respective MFrag in which that context node applies.
The inverse property is hasContext.</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasContextNode"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Context"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Domain_MFrag"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isExemplarIn -->

    <owl:ObjectProperty rdf:about="#isExemplarIn">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property relates one Skolem constant (i.e. an individual from class Skolem) to the MFrag in which it is defined.
The inverse of this property is hasSkolem.</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasExemplar"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Exemplar"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#MFrag"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isInnerTermOf -->

    <owl:ObjectProperty rdf:about="#isInnerTermOf">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property is used to model expressions.
The inverse property is hasInnerTerm</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasInnerTerm"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Node"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Node"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isInputInstanceOf -->

    <owl:ObjectProperty rdf:about="#isInputInstanceOf">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links an input node to its &quot;generative resident node&quot;, or the resident node to which that input node is a copy.
The inverse property is hasInputInstance.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasInputInstance"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Input"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#BuiltInRV"/>
                    <owl:Class rdf:about="#Resident"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isInputNodeIn -->

    <owl:ObjectProperty rdf:about="#isInputNodeIn">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links a node to the MFrags that have it as an input.
The inverse property is hasInputNode.</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasInputNode"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Input"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#MFrag"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isMFragOf -->

    <owl:ObjectProperty rdf:about="#isMFragOf">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links one MFrag to one or more MTheories (i.e. individuals of class MTheory) that have that MFrag as its component.
The inverse property is hasMFrag.</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasMFrag"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#MFrag"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#MTheory"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isNodeFrom -->

    <owl:ObjectProperty rdf:about="#isNodeFrom">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This general object property links one node to the MFrag it belongs to.
The inverse property is hasNode</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasNode"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Node"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#MFrag"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isOVariableIn -->

    <owl:ObjectProperty rdf:about="#isOVariableIn">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This functional object property relates one ordinary variable (i.e. an individual from class OVariable) to its respective MFrag.
The inverse of this property is hasOVariable.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasOVariable"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#OVariable"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#MFrag"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isParentOf -->

    <owl:ObjectProperty rdf:about="#isParentOf">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links a resident or input node of an MFrag with its respective children, which are resident nodes in that same MFrag.
The inverse property is hasParent.</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasParent"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#Input"/>
                    <owl:Class rdf:about="#Resident"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Resident"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isPossibleValueOf -->

    <owl:ObjectProperty rdf:about="#isPossibleValueOf">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property correlates one entity with the node(s) of one or more MFrags that have such entity as a possible state.
Note that the individuals listed as being possible values of a node must form a mutually exclusive, collectively exhaustive set. PR-OWL has the same tools for enforcing exclusiveness (i.e. MEBN entity unique name assumption and the existential and universal qualifiers acting together as a closure axiom), but the domain expert must ensure completeness.
The inverse property is hasPossibleValues.</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasPossibleValues"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Entity"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#BuiltInRV"/>
                    <owl:Class rdf:about="#Node"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isProbAssignIn -->

    <owl:ObjectProperty rdf:about="#isProbAssignIn">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This is the inverse of the hasProbAssign object property and links one individual probability assignment to its respective probability distribution table.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasProbAssign"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#ProbAssign"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#PR-OWLTable"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isProbDistOf -->

    <owl:ObjectProperty rdf:about="#isProbDistOf">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links a probability distribution to its respective RV (resident node). Note that this property is functional, since each probability distribution in a MFrag defines a unique RV.
The inverse of this property is hasProbDist.</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasProbDist"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#ProbDist"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Resident"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isRepBySkolem -->

    <owl:ObjectProperty rdf:about="#isRepBySkolem">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links one ordinary variable to the Skolem constant that represents that ordinary variable in quantified expressions. The property is inverse functional, since one Skolem constant can represent only the group of entities that can be substituted by that ordinary variable in the model.
The inverse property is representsOVar.</rdfs:comment>
        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#representsOVar"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#OVariable"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Exemplar"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isResidentNodeIn -->

    <owl:ObjectProperty rdf:about="#isResidentNodeIn">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links an individual of class Node to the MFrag(s) that have this node as a resident node.
The inverse property is hasResidentNode</rdfs:comment>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasResidentNode"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Resident"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#MFrag"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isSubsBy -->

    <owl:ObjectProperty rdf:about="#isSubsBy">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links one instance of class OVariable to type of the entity that can substitute it. Each argument of a RV has its expected type defined within the home MFrag of that RV. In PR-OWL, the type restrictions are defined directly through the OVariable using the isSubsBy property. One MFrag can have many OVariables (which can be themselves linked to many SimpleArgRelationships) but each OVariable has a unique type, which is explicitly defined by the type of the entity that can substibute that OVariable.
This object property is the inverse of subsOVar.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#subsOVar"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#OVariable"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#MetaEntity"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#isTypeOf -->

    <owl:ObjectProperty rdf:about="#isTypeOf">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This is the inverse of hasType object property, and basically lists all the MEBN entities that have its respective type defined by that specific individual of either the MetaEntity class or the ObjectEntity class.</rdfs:comment>
        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#hasType"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#MetaEntity"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#Entity"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#representsOVar -->

    <owl:ObjectProperty rdf:about="#representsOVar">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property links a Skolem constant (i.e. an individual of class Skolem) to the ordinary variable it represents in a quantifier expression. The property is functional since each Skolem constant represents only one ordinary variable in the model.
The inverse property is isRepBySkolem.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isRepBySkolem"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#Exemplar"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#OVariable"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- Object property: http://www.pr-owl.org/pr-owl.owl#subsOVar -->

    <owl:ObjectProperty rdf:about="#subsOVar">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This object property assigns MetaEntity individuals in order to define the type of the substituters for each MFrag ordinary variable.
Its inverse property is the functional isSubsBy.</rdfs:comment>
        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
        <owl:inverseOf>
            <owl:ObjectProperty rdf:about="#isSubsBy"/>
        </owl:inverseOf>
        <rdfs:domain>
            <owl:Class rdf:about="#MetaEntity"/>
        </rdfs:domain>
        <rdfs:range>
            <owl:Class rdf:about="#OVariable"/>
        </rdfs:range>
    </owl:ObjectProperty>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////
    //
    //   OWL Data Properties
    //
    ///////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- Data property: http://www.pr-owl.org/pr-owl.owl#hasArgNumber -->

    <owl:DatatypeProperty rdf:about="#hasArgNumber">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This datatype property assigns the argument number of an argument relationship. As an example, if we have a random variable with 3 arguments, it will have three ArgRelatioship reified relations. The first argument of the RV will have the number 1 assigned to its respective hasArgNumber property, the second will have the number 2 assigned and the third will have the number 3 assigned. In short this property keeps track of the ordering between the arguments of an RV.
The datatype itself is a nonNegativeInteger. We used this instead of a positiveInteger because we wanted zero as a possible value, since we assume that a RV with no arguments means a global RV.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class rdf:about="#ArgRelationship"/>
        </rdfs:domain>
        <rdfs:range>
            <rdfs:Datatype rdf:about="&xsd;nonNegativeInteger"/>
        </rdfs:range>
    </owl:DatatypeProperty>
    


    <!-- Data property: http://www.pr-owl.org/pr-owl.owl#hasDeclaration -->

    <owl:DatatypeProperty rdf:about="#hasDeclaration">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This datatype property conveys the declarative probability distributions. Each probability distribution can be expressed in different formats and each format is defined by the datatype property isRepresentedAs. Possible formats include Netica tables, Netica equations, Quiddity formulas, MEBN syntax, and others. However, the declaration itself is stored as a string so parsers are expected to understand how to deal with the specific text format of each declaration.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class rdf:about="#DeclarativeDist"/>
        </rdfs:domain>
        <rdfs:range>
            <rdfs:Datatype rdf:about="&xsd;string"/>
        </rdfs:range>
    </owl:DatatypeProperty>
    


    <!-- Data property: http://www.pr-owl.org/pr-owl.owl#hasStateProb -->

    <owl:DatatypeProperty rdf:about="#hasStateProb">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This datatype property is used to store the actual probability of an individual ProbAssign. Currently, OWL has no support for user defined datatypes, so instead of using owl-p:prob datatype (which includes all decimals between 0 and 1 inclusive) we are using xsd:decimal for compatibility purposes.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class rdf:about="#ProbAssign"/>
        </rdfs:domain>
        <rdfs:range>
            <rdfs:Datatype rdf:about="&xsd;decimal"/>
        </rdfs:range>
    </owl:DatatypeProperty>
    


    <!-- Data property: http://www.pr-owl.org/pr-owl.owl#hasUID -->

    <owl:DatatypeProperty rdf:about="#hasUID">
        <rdfs:comment rdf:datatype="&xsd;string"
            >MEBN logic has the unique naming assumption, which is not assumed in OWL (even though tools such as Protege make that assumption for improved reasoning purposes). In order to make sure that a tool that does not assume unique identifies would not prevent MEBN reasoners to work, each MEBN entity has a unique identifier assigned by this datatype property.
The UID itself is conveyed as a xsd:string, and the hasUID datatype property is declared as functional in order to enforce uniqueness.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class rdf:about="#Entity"/>
        </rdfs:domain>
        <rdfs:range>
            <rdfs:Datatype rdf:about="&xsd;string"/>
        </rdfs:range>
    </owl:DatatypeProperty>
    


    <!-- Data property: http://www.pr-owl.org/pr-owl.owl#hasVerticalPosition -->

    <owl:DatatypeProperty rdf:about="#hasVerticalPosition">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This property refers to an optional attribute of a node related with its respective graphical representation. It conveys the absolute vertical position of a node, measured in pixels, within a grid. MEBN includes the graphical representation in its formal definition, thus this property is applicable to all implementations of MEBN logic, including PR-OWL.</rdfs:comment>
        <owl:versionInfo rdf:datatype="&xsd;string"
            >This property was introduced in version 1.02</owl:versionInfo>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class rdf:about="#Node"/>
        </rdfs:domain>
        <rdfs:range>
            <rdfs:Datatype rdf:about="&xsd;decimal"/>
        </rdfs:range>
    </owl:DatatypeProperty>
    


    <!-- Data property: http://www.pr-owl.org/pr-owl.owl#isDefault -->

    <owl:DatatypeProperty rdf:about="#isDefault">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This datatype property indicates whether a probability distribution is the default probability distribution of a node or not. Default probability distributions for nodes are used when the context nodes of the MFrag containing those nodes are not met.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class rdf:about="#ProbDist"/>
        </rdfs:domain>
        <rdfs:range>
            <rdfs:Datatype rdf:about="&xsd;boolean"/>
        </rdfs:range>
    </owl:DatatypeProperty>
    


    <!-- Data property: http://www.pr-owl.org/pr-owl.owl#isGloballyExclusive -->

    <owl:DatatypeProperty rdf:about="#isGloballyExclusive">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This datatype property is used to define a given state of a random variable as exclusive within an MTheory. That is, among all instances of RV (say) &quot;A&quot;, only one will have state &quot;x&quot; as true. Thus, if one copy of RV &quot;A&quot; is known to be in state &quot;x&quot;, then all other instances of &quot;A&quot; withing that MTheory will be in states other than &quot;x&quot;. If &quot;A&quot; is binary, knowing that one instance of &quot;A&quot; is True and that True in &quot;A&quot; is a Globally Exclusive state, then we know that all other instances of &quot;A&quot; are False.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
		<rdfs:domain>
			<owl:Class>
				<owl:unionOf rdf:parseType="Collection">
					<owl:Class rdf:about="#CategoricalRVStates"/>
					<owl:Class rdf:about="#BooleanRVStates"/>
				</owl:unionOf>
			</owl:Class>
		</rdfs:domain>
        <rdfs:range>
            <rdfs:Datatype rdf:about="&xsd;boolean"/>
        </rdfs:range>
    </owl:DatatypeProperty>
    


    <!-- Data property: http://www.pr-owl.org/pr-owl.owl#isRepresentedAs -->

    <owl:DatatypeProperty rdf:about="#isRepresentedAs">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This datatype property defines how a given declarative probability distribution is expressed. Each probability distribution can be expressed in different formats, and each format is defined by this datatype property. Possible formats include Netica tables, Netica equations, Quiddity formulas, MEBN syntax, and others. However, the declaration itself is stored in the hasDeclaration datatype property as a string so parsers will have to know how to deal with the specific text format of each declaration.</rdfs:comment>
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class rdf:about="#DeclarativeDist"/>
        </rdfs:domain>
    </owl:DatatypeProperty>
    


    <!-- Data property: http://www.w3.org/2000/01/rdf-schema#range -->

    <owl:DatatypeProperty rdf:about="&rdfs;range"/>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////
    //
    //   OWL Individuals
    //
    ///////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#Boolean -->

    <MetaEntity rdf:about="#Boolean">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This MetaEntity should be applied to the truth-values T, F and &#8869; (absurd).</rdfs:comment>
        <isTypeOf rdf:resource="#true"/>
        <isTypeOf rdf:resource="#absurd"/>
        <isTypeOf rdf:resource="#false"/>
        <hasType rdf:resource="#TypeLabel"/>
        <hasUID rdf:datatype="&xsd;string">!Boolean</hasUID>
    </MetaEntity>
    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#CategoryLabel -->

    <MetaEntity rdf:about="#CategoryLabel">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This MetaEntity should be assigned to the labels for the states of random variables whose domain is a list of categorical values</rdfs:comment>
        <hasType rdf:resource="#TypeLabel"/>
        <hasUID rdf:datatype="&xsd;string">!CategoryLabel</hasUID>
    </MetaEntity>
    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#TypeLabel -->

    <MetaEntity rdf:about="#TypeLabel">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This MetaEntity shold be assigned for the labels of all domain specific types and subtypes.</rdfs:comment>
        <isTypeOf rdf:resource="#CategoryLabel"/>
        <isTypeOf rdf:resource="#TypeLabel"/>
        <isTypeOf rdf:resource="#Boolean"/>
        <hasType rdf:resource="#TypeLabel"/>
        <hasUID rdf:datatype="&xsd;string">!TypeLabel</hasUID>
    </MetaEntity>
    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#absurd -->

    <owl:Thing rdf:about="#absurd">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This state is used for the cases in which a truth-value cannot be applied to a random variable (i.e. meaningless, undefined, or contradictory hypotheses).</rdfs:comment>
        <rdf:type rdf:resource="#BooleanRVStates"/>
        <isPossibleValueOf rdf:resource="#equalto"/>
        <isPossibleValueOf rdf:resource="#not"/>
        <isPossibleValueOf rdf:resource="#and"/>
        <isPossibleValueOf rdf:resource="#exists"/>
        <isPossibleValueOf rdf:resource="#or"/>
        <isPossibleValueOf rdf:resource="#implies"/>
        <isPossibleValueOf rdf:resource="#forall"/>
        <isPossibleValueOf rdf:resource="#iff"/>
        <hasType rdf:resource="#Boolean"/>
        <hasUID rdf:datatype="&xsd;string">&#8869;</hasUID>
    </owl:Thing>
    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#and -->

    <BuiltInRV rdf:about="#and">
        <hasPossibleValues rdf:resource="#true"/>
        <hasPossibleValues rdf:resource="#absurd"/>
        <hasPossibleValues rdf:resource="#false"/>
    </BuiltInRV>
    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#equalto -->

    <BuiltInRV rdf:about="#equalto">
        <hasPossibleValues rdf:resource="#true"/>
        <hasPossibleValues rdf:resource="#absurd"/>
        <hasPossibleValues rdf:resource="#false"/>
    </BuiltInRV>
    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#exists -->

    <BuiltInRV rdf:about="#exists">
        <hasPossibleValues rdf:resource="#true"/>
        <hasPossibleValues rdf:resource="#absurd"/>
        <hasPossibleValues rdf:resource="#false"/>
    </BuiltInRV>
    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#false -->

    <BooleanRVStates rdf:about="#false">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This state corresponds to the meaningfull hypotheses that have a false truth-value.</rdfs:comment>
        <isPossibleValueOf rdf:resource="#not"/>
        <isPossibleValueOf rdf:resource="#equalto"/>
        <isPossibleValueOf rdf:resource="#and"/>
        <isPossibleValueOf rdf:resource="#exists"/>
        <isPossibleValueOf rdf:resource="#or"/>
        <isPossibleValueOf rdf:resource="#implies"/>
        <isPossibleValueOf rdf:resource="#forall"/>
        <isPossibleValueOf rdf:resource="#iff"/>
        <hasType rdf:resource="#Boolean"/>
        <hasUID rdf:datatype="&xsd;string">F</hasUID>
    </BooleanRVStates>
    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#forall -->

    <BuiltInRV rdf:about="#forall">
        <hasPossibleValues rdf:resource="#true"/>
        <hasPossibleValues rdf:resource="#absurd"/>
        <hasPossibleValues rdf:resource="#false"/>
    </BuiltInRV>
    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#iff -->

    <BuiltInRV rdf:about="#iff">
        <hasPossibleValues rdf:resource="#true"/>
        <hasPossibleValues rdf:resource="#absurd"/>
        <hasPossibleValues rdf:resource="#false"/>
    </BuiltInRV>
    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#implies -->

    <BuiltInRV rdf:about="#implies">
        <hasPossibleValues rdf:resource="#true"/>
        <hasPossibleValues rdf:resource="#absurd"/>
        <hasPossibleValues rdf:resource="#false"/>
    </BuiltInRV>
    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#isRepresentedAs -->

    <owl:Thing rdf:about="#isRepresentedAs">
        <rdfs:range></rdfs:range>
    </owl:Thing>
    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#not -->

    <BuiltInRV rdf:about="#not">
        <hasPossibleValues rdf:resource="#true"/>
        <hasPossibleValues rdf:resource="#absurd"/>
        <hasPossibleValues rdf:resource="#false"/>
    </BuiltInRV>
    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#or -->

    <BuiltInRV rdf:about="#or">
        <hasPossibleValues rdf:resource="#true"/>
        <hasPossibleValues rdf:resource="#absurd"/>
        <hasPossibleValues rdf:resource="#false"/>
    </BuiltInRV>
    


    <!-- Individual: http://www.pr-owl.org/pr-owl.owl#true -->

    <owl:Thing rdf:about="#true">
        <rdfs:comment rdf:datatype="&xsd;string"
            >This state corresponds to the meaningfull hypotheses that have a false truth-value.</rdfs:comment>
        <rdf:type rdf:resource="#BooleanRVStates"/>
        <isPossibleValueOf rdf:resource="#equalto"/>
        <isPossibleValueOf rdf:resource="#not"/>
        <isPossibleValueOf rdf:resource="#and"/>
        <isPossibleValueOf rdf:resource="#exists"/>
        <isPossibleValueOf rdf:resource="#or"/>
        <isPossibleValueOf rdf:resource="#implies"/>
        <isPossibleValueOf rdf:resource="#forall"/>
        <isPossibleValueOf rdf:resource="#iff"/>
        <hasType rdf:resource="#Boolean"/>
        <hasUID rdf:datatype="&xsd;string">T</hasUID>
    </owl:Thing>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////
    //
    //   OWL Axioms
    //
    ///////////////////////////////////////////////////////////////////////////
     -->

    <owl:Class rdf:about="#Domain_MFrag">
        <owl:disjointWith>
            <owl:Class rdf:about="#Finding_MFrag"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#Finding_MFrag">
        <owl:disjointWith>
            <owl:Class rdf:about="#Domain_MFrag"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#ObjectEntity">
        <owl:disjointWith>
            <owl:Class rdf:about="#MetaEntity"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#MetaEntity">
        <owl:disjointWith>
            <owl:Class rdf:about="#ObjectEntity"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#Context">
        <owl:disjointWith>
            <owl:Class rdf:about="#Resident"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#Resident">
        <owl:disjointWith>
            <owl:Class rdf:about="#Context"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#ObjectEntity">
        <owl:disjointWith>
            <owl:Class rdf:about="#CategoricalRVStates"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#CategoricalRVStates">
        <owl:disjointWith>
            <owl:Class rdf:about="#ObjectEntity"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#Input">
        <owl:disjointWith>
            <owl:Class rdf:about="#Resident"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#Resident">
        <owl:disjointWith>
            <owl:Class rdf:about="#Input"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#Domain_Res">
        <owl:disjointWith>
            <owl:Class rdf:about="#Finding_res"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#Finding_res">
        <owl:disjointWith>
            <owl:Class rdf:about="#Domain_Res"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#BuiltInRV">
        <owl:disjointWith>
            <owl:Class rdf:about="#Domain_Res"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#Domain_Res">
        <owl:disjointWith>
            <owl:Class rdf:about="#BuiltInRV"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#CategoricalRVStates">
        <owl:disjointWith>
            <owl:Class rdf:about="#BooleanRVStates"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#BooleanRVStates">
        <owl:disjointWith>
            <owl:Class rdf:about="#CategoricalRVStates"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#BooleanRVStates">
        <owl:disjointWith>
            <owl:Class rdf:about="#MetaEntity"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#MetaEntity">
        <owl:disjointWith>
            <owl:Class rdf:about="#BooleanRVStates"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#ObjectEntity">
        <owl:disjointWith>
            <owl:Class rdf:about="#BooleanRVStates"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#BooleanRVStates">
        <owl:disjointWith>
            <owl:Class rdf:about="#ObjectEntity"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#Generative_input">
        <owl:disjointWith>
            <owl:Class rdf:about="#Finding_input"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#Finding_input">
        <owl:disjointWith>
            <owl:Class rdf:about="#Generative_input"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#Input">
        <owl:disjointWith>
            <owl:Class rdf:about="#Context"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#Context">
        <owl:disjointWith>
            <owl:Class rdf:about="#Input"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#DeclarativeDist">
        <owl:disjointWith>
            <owl:Class rdf:about="#PR-OWLTable"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#PR-OWLTable">
        <owl:disjointWith>
            <owl:Class rdf:about="#DeclarativeDist"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#CategoricalRVStates">
        <owl:disjointWith>
            <owl:Class rdf:about="#MetaEntity"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#MetaEntity">
        <owl:disjointWith>
            <owl:Class rdf:about="#CategoricalRVStates"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#BuiltInRV">
        <owl:disjointWith>
            <owl:Class rdf:about="#Finding_res"/>
        </owl:disjointWith>
    </owl:Class>
    <owl:Class rdf:about="#Finding_res">
        <owl:disjointWith>
            <owl:Class rdf:about="#BuiltInRV"/>
        </owl:disjointWith>
    </owl:Class>
    <rdf:Description rdf:about="#isContextNodeIn">
        <rdfs:subPropertyOf rdf:resource="#isNodeFrom"/>
    </rdf:Description>
    <rdf:Description rdf:about="#hasResidentNode">
        <rdfs:subPropertyOf rdf:resource="#hasNode"/>
    </rdf:Description>
    <rdf:Description rdf:about="#hasContextNode">
        <rdfs:subPropertyOf rdf:resource="#hasNode"/>
    </rdf:Description>
    <rdf:Description rdf:about="#isInputNodeIn">
        <rdfs:subPropertyOf rdf:resource="#isNodeFrom"/>
    </rdf:Description>
    <rdf:Description rdf:about="#isResidentNodeIn">
        <rdfs:subPropertyOf rdf:resource="#isNodeFrom"/>
    </rdf:Description>
    <rdf:Description rdf:about="#hasInputNode">
        <rdfs:subPropertyOf rdf:resource="#hasNode"/>
    </rdf:Description>
</rdf:RDF>
