/// <summary>
        /// InverseOfEntailment implements data entailments based on 'owl:inverseOf' taxonomy:
        /// ((F1 P1 F2) AND (P1 INVERSEOF P2)) => (F2 P2 F1)
        /// </summary>
        internal static RDFOntologyReasonerReport InverseOfEntailmentExec(RDFOntology ontology)
        {
            var report = new RDFOntologyReasonerReport();

            //Calculate the set of available properties on which to perform the reasoning (exclude BASE properties and annotation/datatype properties)
            var availableprops = ontology.Model.PropertyModel.Where(prop => !RDFOntologyChecker.CheckReservedProperty(prop) &&
                                                                    prop.IsObjectProperty()).ToList();

            foreach (var p1     in availableprops)
            {
                //Filter the assertions using the current property (F1 P1 F2)
                var p1Asns = ontology.Data.Relations.Assertions.SelectEntriesByPredicate(p1);

                //Enlist the inverse properties of the current property
                var inverseprops = ontology.Model.PropertyModel.GetInversePropertiesOf((RDFOntologyObjectProperty)p1);
                foreach (var p2 in inverseprops)
                {
                    //Iterate the compatible assertions
                    foreach (var p1Asn in p1Asns)
                    {
                        //Taxonomy-check for securing inference consistency
                        if (p2.IsObjectProperty() && p1Asn.TaxonomyObject.IsFact())
                        {
                            //Create the inference as a taxonomy entry
                            var sem_inf = new RDFOntologyTaxonomyEntry(p1Asn.TaxonomyObject, p2, p1Asn.TaxonomySubject).SetInference(RDFSemanticsEnums.RDFOntologyInferenceType.Reasoner);

                            //Add the inference to the ontology and to the report
                            if (ontology.Data.Relations.Assertions.AddEntry(sem_inf))
                            {
                                report.AddEvidence(new RDFOntologyReasonerEvidence(RDFSemanticsEnums.RDFOntologyReasonerEvidenceCategory.Data, "InverseOfEntailment", sem_inf));
                            }
                        }
                    }
                }
            }

            return(report);
        }
        /// <summary>
        /// SubClassTransitivity (rdfs11) implements structural entailments based on 'rdfs:subClassOf' taxonomy:
        /// ((C1 SUBCLASSOF C2)      AND (C2 SUBCLASSOF C3))      => (C1 SUBCLASSOF C3);
        /// ((C1 SUBCLASSOF C2)      AND (C2 EQUIVALENTCLASS C3)) => (C1 SUBCLASSOF C3);
        /// ((C1 EQUIVALENTCLASS C2) AND (C2 SUBCLASSOF C3))      => (C1 SUBCLASSOF C3)
        /// </summary>
        internal static RDFOntologyReasonerReport SubClassTransitivityExec(RDFOntology ontology)
        {
            var report     = new RDFOntologyReasonerReport();
            var subClassOf = RDFVocabulary.RDFS.SUB_CLASS_OF.ToRDFOntologyObjectProperty();

            foreach (var c      in ontology.Model.ClassModel)
            {
                //Enlist the superclasses of the current class
                var superclasses = ontology.Model.ClassModel.GetSuperClassesOf(c);
                foreach (var sc in superclasses)
                {
                    //Create the inference as a taxonomy entry
                    var sem_inf = new RDFOntologyTaxonomyEntry(c, subClassOf, sc).SetInference(RDFSemanticsEnums.RDFOntologyInferenceType.Reasoner);

                    //Add the inference to the ontology and to the report
                    if (ontology.Model.ClassModel.Relations.SubClassOf.AddEntry(sem_inf))
                    {
                        report.AddEvidence(new RDFOntologyReasonerEvidence(RDFSemanticsEnums.RDFOntologyReasonerEvidenceCategory.ClassModel, "SubClassTransitivity", sem_inf));
                    }
                }
            }
            return(report);
        }
        /// <summary>
        /// "RangeEntailment (rdfs3) implements structural entailments based on 'rdfs:range' taxonomy:"
        /// "((F1 P F2) AND (P RDFS:RANGE C)) => (F2 RDF:TYPE C)"
        /// </summary>
        internal static RDFOntologyReasonerReport RangeEntailmentExec(RDFOntology ontology)
        {
            var report = new RDFOntologyReasonerReport();
            var type   = RDFVocabulary.RDF.TYPE.ToRDFOntologyObjectProperty();

            //Calculate the set of available properties on which to perform the reasoning (exclude BASE properties and annotation properties)
            var availableprops = ontology.Model.PropertyModel.Where(prop => !RDFOntologyChecker.CheckReservedProperty(prop) &&
                                                                    !prop.IsAnnotationProperty()).ToList();

            foreach (var p      in availableprops)
            {
                if (p.Range != null)
                {
                    //Filter the assertions using the current property (F1 P1 F2)
                    var pAsns = ontology.Data.Relations.Assertions.SelectEntriesByPredicate(p);

                    //Iterate the related assertions
                    foreach (var pAsn in pAsns)
                    {
                        //Taxonomy-check for securing inference consistency
                        if (pAsn.TaxonomyObject.IsFact())
                        {
                            //Create the inference as a taxonomy entry
                            var sem_inf = new RDFOntologyTaxonomyEntry(pAsn.TaxonomyObject, type, p.Range).SetInference(RDFSemanticsEnums.RDFOntologyInferenceType.Reasoner);

                            //Add the inference to the ontology and to the report
                            if (ontology.Data.Relations.ClassType.AddEntry(sem_inf))
                            {
                                report.AddEvidence(new RDFOntologyReasonerEvidence(RDFSemanticsEnums.RDFOntologyReasonerEvidenceCategory.Data, "RangeEntailment", sem_inf));
                            }
                        }
                    }
                }
            }
            return(report);
        }
        /// <summary>
        /// Joins the reasoner evidences of this report into the given ontology
        /// </summary>
        public void JoinEvidences(RDFOntology ontology)
        {
            foreach (RDFOntologyReasonerEvidence evidence in this)
            {
                switch (evidence.EvidenceCategory)
                {
                case RDFSemanticsEnums.RDFOntologyReasonerEvidenceCategory.ClassModel:
                    switch (evidence.EvidenceDestination)
                    {
                    case nameof(RDFOntologyClassModel.Relations.SubClassOf):
                        ontology.Model.ClassModel.Relations.SubClassOf.AddEntry(evidence.EvidenceContent);
                        break;

                    case nameof(RDFOntologyClassModel.Relations.DisjointWith):
                        ontology.Model.ClassModel.Relations.DisjointWith.AddEntry(evidence.EvidenceContent);
                        break;

                    case nameof(RDFOntologyClassModel.Relations.EquivalentClass):
                        ontology.Model.ClassModel.Relations.EquivalentClass.AddEntry(evidence.EvidenceContent);
                        break;

                    //Supported, but not expected at the moment
                    case nameof(RDFOntologyClassModel.Relations.HasKey):
                        ontology.Model.ClassModel.Relations.HasKey.AddEntry(evidence.EvidenceContent);
                        break;

                    //Supported, but not expected at the moment
                    case nameof(RDFOntologyClassModel.Relations.IntersectionOf):
                        ontology.Model.ClassModel.Relations.IntersectionOf.AddEntry(evidence.EvidenceContent);
                        break;

                    //Supported, but not expected at the moment
                    case nameof(RDFOntologyClassModel.Relations.OneOf):
                        ontology.Model.ClassModel.Relations.OneOf.AddEntry(evidence.EvidenceContent);
                        break;

                    //Supported, but not expected at the moment
                    case nameof(RDFOntologyClassModel.Relations.UnionOf):
                        ontology.Model.ClassModel.Relations.UnionOf.AddEntry(evidence.EvidenceContent);
                        break;
                    }
                    break;

                case RDFSemanticsEnums.RDFOntologyReasonerEvidenceCategory.PropertyModel:
                    switch (evidence.EvidenceDestination)
                    {
                    case nameof(RDFOntologyPropertyModel.Relations.SubPropertyOf):
                        ontology.Model.PropertyModel.Relations.SubPropertyOf.AddEntry(evidence.EvidenceContent);
                        break;

                    case nameof(RDFOntologyPropertyModel.Relations.EquivalentProperty):
                        ontology.Model.PropertyModel.Relations.EquivalentProperty.AddEntry(evidence.EvidenceContent);
                        break;

                    case nameof(RDFOntologyPropertyModel.Relations.InverseOf):
                        ontology.Model.PropertyModel.Relations.InverseOf.AddEntry(evidence.EvidenceContent);
                        break;

                    //Supported, but not expected at the moment
                    case nameof(RDFOntologyPropertyModel.Relations.PropertyDisjointWith):
                        ontology.Model.PropertyModel.Relations.PropertyDisjointWith.AddEntry(evidence.EvidenceContent);
                        break;

                    //Supported, but not expected at the moment
                    case nameof(RDFOntologyPropertyModel.Relations.PropertyChainAxiom):
                        ontology.Model.PropertyModel.Relations.PropertyChainAxiom.AddEntry(evidence.EvidenceContent);
                        break;
                    }
                    break;

                case RDFSemanticsEnums.RDFOntologyReasonerEvidenceCategory.Data:
                    switch (evidence.EvidenceDestination)
                    {
                    case nameof(RDFOntologyData.Relations.ClassType):
                        ontology.Data.Relations.ClassType.AddEntry(evidence.EvidenceContent);
                        break;

                    case nameof(RDFOntologyData.Relations.SameAs):
                        ontology.Data.Relations.SameAs.AddEntry(evidence.EvidenceContent);
                        break;

                    case nameof(RDFOntologyData.Relations.DifferentFrom):
                        ontology.Data.Relations.DifferentFrom.AddEntry(evidence.EvidenceContent);
                        break;

                    case nameof(RDFOntologyData.Relations.Assertions):
                        ontology.Data.Relations.Assertions.AddEntry(evidence.EvidenceContent);
                        break;

                    //Supported, but not expected at the moment
                    case nameof(RDFOntologyData.Relations.NegativeAssertions):
                        ontology.Data.Relations.NegativeAssertions.AddEntry(evidence.EvidenceContent);
                        break;
                    }
                    break;
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Default-ctor to initialize the FOAF ontology
        /// </summary>
        static RDFFOAFOntology()
        {
            #region Declarations

            #region Ontology
            Instance = new RDFOntology(new RDFResource("https://rdfsharpsemantics.codeplex.com/foaf_ontology#"), true);
            #endregion

            #region Classes
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.AGENT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.DOCUMENT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.GROUP.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.IMAGE.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.ONLINE_ACCOUNT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.ONLINE_CHAT_ACCOUNT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.ONLINE_ECOMMERCE_ACCOUNT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.ONLINE_GAMING_ACCOUNT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.ORGANIZATION.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.PERSON.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.PERSONAL_PROFILE_DOCUMENT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.PROJECT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(new RDFOntologyDataRangeClass(new RDFResource("bnode:Genders")));

            //OWL-DL Completeness
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.AGENT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.GEO.SPATIAL_THING.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SKOS.CONCEPT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(new RDFOntologyClass(new RDFResource("http://schema.org/CreativeWork")));
            Instance.Model.ClassModel.AddClass(new RDFOntologyClass(new RDFResource("http://schema.org/ImageObject")));
            Instance.Model.ClassModel.AddClass(new RDFOntologyClass(new RDFResource("http://schema.org/Person")));
            Instance.Model.ClassModel.AddClass(new RDFOntologyClass(new RDFResource("http://www.w3.org/2000/10/swap/pim/contact#Person")));
            #endregion

            #region Properties
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.ACCOUNT.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.ACCOUNT_NAME.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.ACCOUNT_SERVICE_HOMEPAGE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.AGE.ToRDFOntologyDatatypeProperty().SetFunctional(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.AIM_CHAT_ID.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.BASED_NEAR.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.BIRTHDAY.ToRDFOntologyDatatypeProperty().SetFunctional(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.CURRENT_PROJECT.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.DEPICTION.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.DEPICTS.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.DNA_CHECKSUM.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.FAMILY_NAME.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.FIRSTNAME.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.FOCUS.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.FUNDED_BY.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.GEEK_CODE.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.GENDER.ToRDFOntologyDatatypeProperty().SetFunctional(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.GIVEN_NAME.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.HOLDS_ACCOUNT.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.HOMEPAGE.ToRDFOntologyObjectProperty().SetInverseFunctional(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.ICQ_CHAT_ID.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.IMG.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.INTEREST.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.IS_PRIMARY_TOPIC_OF.ToRDFOntologyObjectProperty().SetInverseFunctional(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.JABBER_ID.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.KNOWS.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.LOGO.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.MADE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.MAKER.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.MBOX.ToRDFOntologyObjectProperty().SetInverseFunctional(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.MBOX_SHA1SUM.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.MEMBER.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.MEMBERSHIP_CLASS.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.MSN_CHAT_ID.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.MYERS_BRIGGS.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.NAME.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.NICK.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.OPEN_ID.ToRDFOntologyObjectProperty().SetInverseFunctional(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.PAGE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.PAST_PROJECT.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.PHONE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.PLAN.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.PRIMARY_TOPIC.ToRDFOntologyObjectProperty().SetFunctional(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.PUBLICATIONS.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.SCHOOL_HOMEPAGE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.SHA1.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.SKYPE_ID.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.STATUS.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.SURNAME.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.THEME.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.THUMBNAIL.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.TIPJAR.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.TITLE.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.TOPIC.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.TOPIC_INTEREST.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.WEBLOG.ToRDFOntologyObjectProperty().SetInverseFunctional(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.WORKINFO_HOMEPAGE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.WORKPLACE_HOMEPAGE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.YAHOO_CHAT_ID.ToRDFOntologyDatatypeProperty());
            #endregion

            #endregion

            #region Taxonomies

            #region ClassModel

            //SubClassOf
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.IMAGE.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.GROUP.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ONLINE_CHAT_ACCOUNT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ONLINE_ACCOUNT.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ONLINE_ECOMMERCE_ACCOUNT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ONLINE_ACCOUNT.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ONLINE_GAMING_ACCOUNT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ONLINE_ACCOUNT.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ORGANIZATION.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.GEO.SPATIAL_THING.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSONAL_PROFILE_DOCUMENT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));

            //EquivalentClass
            Instance.Model.ClassModel.AddEquivalentClassRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.AGENT.ToString()));
            Instance.Model.ClassModel.AddEquivalentClassRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()), Instance.Model.ClassModel.SelectClass("http://schema.org/CreativeWork"));
            Instance.Model.ClassModel.AddEquivalentClassRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.IMAGE.ToString()), Instance.Model.ClassModel.SelectClass("http://schema.org/ImageObject"));
            Instance.Model.ClassModel.AddEquivalentClassRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()), Instance.Model.ClassModel.SelectClass("http://schema.org/Person"));
            Instance.Model.ClassModel.AddEquivalentClassRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()), Instance.Model.ClassModel.SelectClass("http://www.w3.org/2000/10/swap/pim/contact#Person"));

            //DisjointWith
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ORGANIZATION.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ORGANIZATION.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PROJECT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PROJECT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));

            //OneOf
            Instance.Model.ClassModel.AddOneOfRelation((RDFOntologyDataRangeClass)Instance.Model.ClassModel.SelectClass("bnode:Genders"), new RDFOntologyLiteral(new RDFTypedLiteral("female", RDFDatatypeRegister.GetByPrefixAndDatatype("xsd", "string"))));
            Instance.Model.ClassModel.AddOneOfRelation((RDFOntologyDataRangeClass)Instance.Model.ClassModel.SelectClass("bnode:Genders"), new RDFOntologyLiteral(new RDFTypedLiteral("male", RDFDatatypeRegister.GetByPrefixAndDatatype("xsd", "string"))));

            #endregion

            #region PropertyModel

            //SubPropertyOf
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.AIM_CHAT_ID.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.NICK.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.HOMEPAGE.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.PAGE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.HOMEPAGE.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.IS_PRIMARY_TOPIC_OF.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.ICQ_CHAT_ID.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.NICK.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.IMG.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.DEPICTION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.IS_PRIMARY_TOPIC_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.PAGE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.MSN_CHAT_ID.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.NICK.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.OPEN_ID.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.IS_PRIMARY_TOPIC_OF.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.TIPJAR.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.PAGE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.WEBLOG.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.PAGE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.YAHOO_CHAT_ID.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.NICK.ToString()));

            //InverseOf
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.DEPICTION.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.DEPICTS.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.PRIMARY_TOPIC.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.IS_PRIMARY_TOPIC_OF.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.MADE.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.MAKER.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.PAGE.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.TOPIC.ToString()));

            //Domain/Range
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.ACCOUNT.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.ACCOUNT.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ONLINE_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.ACCOUNT_NAME.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ONLINE_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.AGE.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.AGE.ToString()).SetRange(RDFBASEOntology.Instance.Model.ClassModel.SelectClass(RDFVocabulary.XSD.NON_NEGATIVE_INTEGER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.ACCOUNT_SERVICE_HOMEPAGE.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ONLINE_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.ACCOUNT_SERVICE_HOMEPAGE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.AIM_CHAT_ID.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.BASED_NEAR.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.GEO.SPATIAL_THING.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.BASED_NEAR.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.GEO.SPATIAL_THING.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.BIRTHDAY.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.BIRTHDAY.ToString()).SetRange(RDFBASEOntology.Instance.Model.ClassModel.SelectClass(RDFVocabulary.XSD.DATE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.CURRENT_PROJECT.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.DEPICTION.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.IMAGE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.DEPICTS.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.IMAGE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.FAMILY_NAME.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.FIRSTNAME.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.FOCUS.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.GEEK_CODE.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.GENDER.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.GENDER.ToString()).SetRange(Instance.Model.ClassModel.SelectClass("bnode:Genders"));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.HOLDS_ACCOUNT.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.HOLDS_ACCOUNT.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ONLINE_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.HOMEPAGE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.ICQ_CHAT_ID.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.IMG.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.IMG.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.IMAGE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.INTEREST.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.INTEREST.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.IS_PRIMARY_TOPIC_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.JABBER_ID.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.KNOWS.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.KNOWS.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.MBOX.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.MBOX_SHA1SUM.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.MADE.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.MAKER.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.MEMBER.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.GROUP.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.MEMBER.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.MSN_CHAT_ID.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.MYERS_BRIGGS.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.OPEN_ID.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.OPEN_ID.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.PAGE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.PAST_PROJECT.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.PLAN.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.PRIMARY_TOPIC.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.PUBLICATIONS.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.PUBLICATIONS.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.SCHOOL_HOMEPAGE.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.SCHOOL_HOMEPAGE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.SKYPE_ID.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.SHA1.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.STATUS.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.SURNAME.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.THUMBNAIL.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.IMAGE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.THUMBNAIL.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.IMAGE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.TIPJAR.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.TIPJAR.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.TOPIC.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.TOPIC_INTEREST.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.WEBLOG.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.WEBLOG.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.WORKINFO_HOMEPAGE.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.WORKINFO_HOMEPAGE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.WORKPLACE_HOMEPAGE.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.PERSON.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.WORKPLACE_HOMEPAGE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.YAHOO_CHAT_ID.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));

            #endregion

            #endregion
        }
Esempio n. 6
0
        /// <summary>
        /// Default-ctor to initialize the SIOC ontology
        /// </summary>
        static RDFSIOCOntology()
        {
            #region Declarations

            #region Ontology
            Instance = new RDFOntology(new RDFResource("https://rdfsharp.codeplex.com/semantics/sioc#"));
            #endregion

            #region Classes
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SIOC.COMMUNITY.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SIOC.CONTAINER.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SIOC.FORUM.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SIOC.ITEM.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SIOC.POST.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SIOC.ROLE.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SIOC.SPACE.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SIOC.SITE.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SIOC.THREAD.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SIOC.USER_GROUP.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SIOC.USER.ToRDFOntologyClass().SetDeprecated(true));

            //OWL-DL Completeness
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.AGENT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.DOCUMENT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.IMAGE.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.FOAF.ONLINE_ACCOUNT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(new RDFOntologyClass(new RDFResource("http://www.w3.org/2004/03/trix/rdfg-1/Graph")));
            #endregion

            #region Properties
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.ABOUT.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.ACCOUNT_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.ADDRESSED_TO.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.ADMINISTRATOR_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.ATTACHMENT.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.AVATAR.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.CONTAINER_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.CONTENT.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.CONTENT_ENCODED.ToRDFOntologyDatatypeProperty().SetDeprecated(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.CREATED_AT.ToRDFOntologyDatatypeProperty().SetDeprecated(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.CREATOR_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.DESCRIPTION.ToRDFOntologyDatatypeProperty().SetDeprecated(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.EARLIER_VERSION.ToRDFOntologyObjectProperty().SetTransitive(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.EMAIL.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.EMAIL_SHA1.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.EMBEDS_KNOWLEDGE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.FEED.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.FIRST_NAME.ToRDFOntologyDatatypeProperty().SetDeprecated(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.FOLLOWS.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.FUNCTION_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.GROUP_OF.ToRDFOntologyObjectProperty().SetDeprecated(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_ADMINISTRATOR.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_CONTAINER.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_CREATOR.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_DISCUSSION.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_FUNCTION.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_GROUP.ToRDFOntologyObjectProperty().SetDeprecated(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_HOST.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_MEMBER.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_MODERATOR.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_MODIFIER.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_OWNER.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_PARENT.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_PART.ToRDFOntologyObjectProperty().SetDeprecated(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_REPLY.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_SCOPE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_SPACE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_SUBSCRIBER.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HAS_USERGROUP.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.HOST_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.ID.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.IP_ADDRESS.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.LAST_ACTIVITY_DATE.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.LAST_ITEM_DATE.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.LAST_NAME.ToRDFOntologyDatatypeProperty().SetDeprecated(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.LAST_REPLY_DATE.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.LATER_VERSION.ToRDFOntologyObjectProperty().SetTransitive(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.LATEST_VERSION.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.LINK.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.LINKS_TO.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.MEMBER_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.MODERATOR_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.MODIFIED_AT.ToRDFOntologyDatatypeProperty().SetDeprecated(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.MODIFIER_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.NAME.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.NEXT_BY_DATE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.NEXT_VERSION.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.NOTE.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.NUM_AUTHORS.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.NUM_ITEMS.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.NUM_REPLIES.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.NUM_THREADS.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.NUM_VIEWS.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.OWNER_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.PARENT_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.PART_OF.ToRDFOntologyObjectProperty().SetDeprecated(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.PREVIOUS_BY_DATE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.PREVIOUS_VERSION.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.REFERENCE.ToRDFOntologyObjectProperty().SetDeprecated(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.RELATED_TO.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.REPLY_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.SCOPE_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.SIBLING.ToRDFOntologyObjectProperty().SetSymmetric(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.SPACE_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.SUBJECT.ToRDFOntologyObjectProperty().SetDeprecated(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.SUBSCRIBER_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.TITLE.ToRDFOntologyDatatypeProperty().SetDeprecated(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.TOPIC.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SIOC.USERGROUP_OF.ToRDFOntologyObjectProperty());

            //OWL-DL Completeness
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.DATE.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.REFERENCES.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.SUBJECT.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.ACCOUNT.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.FOAF.DEPICTION.ToRDFOntologyObjectProperty());
            #endregion

            #endregion

            #region Taxonomies

            #region ClassModel

            //SubClassOf
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.IMAGE.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.FORUM.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.POST.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.POST.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.DOCUMENT.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.SITE.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.SPACE.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.THREAD.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ONLINE_ACCOUNT.ToString()));

            //EquivalentClass
            Instance.Model.ClassModel.AddEquivalentClassRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));

            //DisjointWith
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.COMMUNITY.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.COMMUNITY.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ROLE.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.COMMUNITY.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ROLE.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_GROUP.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ROLE.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.SPACE.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_GROUP.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ROLE.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.SPACE.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ROLE.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ROLE.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_GROUP.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.SPACE.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.SPACE.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_GROUP.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_GROUP.ToString()));

            #endregion

            #region PropertyModel

            //SubPropertyOf
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.AVATAR.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.DEPICTION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_REPLY.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.RELATED_TO.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.LAST_ACTIVITY_DATE.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.DATE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.LAST_ITEM_DATE.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.DATE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.LAST_REPLY_DATE.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.DATE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.LINKS_TO.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.REFERENCES.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.NEXT_VERSION.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.LATER_VERSION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.PREVIOUS_VERSION.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.EARLIER_VERSION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.REPLY_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.RELATED_TO.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.TOPIC.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.SUBJECT.ToString()));

            //InverseOf
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.ACCOUNT_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.ACCOUNT.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.ADMINISTRATOR_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_ADMINISTRATOR.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.CONTAINER_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_CONTAINER.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.CREATOR_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_CREATOR.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.FUNCTION_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_FUNCTION.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.GROUP_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_GROUP.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HOST_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_HOST.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.MEMBER_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_MEMBER.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.MODERATOR_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_MODERATOR.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.MODIFIER_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_MODIFIER.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.OWNER_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_OWNER.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.PARENT_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_PARENT.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.PART_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_PART.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.REPLY_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_REPLY.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.SCOPE_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_SCOPE.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.SPACE_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_SPACE.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.SUBSCRIBER_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_SUBSCRIBER.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.USERGROUP_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_USERGROUP.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.EARLIER_VERSION.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.LATER_VERSION.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.PREVIOUS_VERSION.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.NEXT_VERSION.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.PREVIOUS_BY_DATE.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.NEXT_BY_DATE.ToString()));

            //Domain/Range
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.ACCOUNT.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.ACCOUNT.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.ONLINE_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.FOAF.DEPICTION.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.IMAGE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.ABOUT.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.ACCOUNT_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.ACCOUNT_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.FOAF.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.ADDRESSED_TO.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.ADMINISTRATOR_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.ADMINISTRATOR_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.SITE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.ATTACHMENT.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.AVATAR.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.CONTAINER_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.CONTAINER_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.CONTENT.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.CONTENT_ENCODED.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.POST.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.CREATED_AT.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.POST.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.CREATOR_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.DESCRIPTION.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.POST.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.EARLIER_VERSION.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.EARLIER_VERSION.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.EMAIL.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.EMAIL_SHA1.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.EMBEDS_KNOWLEDGE.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.EMBEDS_KNOWLEDGE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass("http://www.w3.org/2004/03/trix/rdfg-1/Graph"));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.FIRST_NAME.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.FOLLOWS.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.FOLLOWS.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.FUNCTION_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ROLE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_ADMINISTRATOR.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.SITE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_ADMINISTRATOR.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_CONTAINER.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_CONTAINER.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_CREATOR.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_DISCUSSION.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_FUNCTION.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ROLE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_HOST.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.FORUM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_HOST.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.SITE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_MEMBER.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_GROUP.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_MEMBER.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_MODERATOR.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.FORUM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_MODERATOR.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_MODIFIER.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_MODIFIER.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_OWNER.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_PARENT.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_PARENT.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_REPLY.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_REPLY.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_SCOPE.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ROLE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_SPACE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.SPACE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_SUBSCRIBER.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_SUBSCRIBER.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_USERGROUP.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.SPACE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HAS_USERGROUP.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_GROUP.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HOST_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.SITE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.HOST_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.FORUM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.IP_ADDRESS.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.LAST_ITEM_DATE.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.LAST_NAME.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.LATER_VERSION.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.LATER_VERSION.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.LATEST_VERSION.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.LATEST_VERSION.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.MEMBER_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.MEMBER_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_GROUP.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.MODIFIED_AT.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.POST.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.MODERATOR_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.MODERATOR_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.FORUM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.MODIFIER_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.MODIFIER_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.NEXT_BY_DATE.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.NEXT_BY_DATE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.NEXT_VERSION.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.NEXT_VERSION.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.NUM_AUTHORS.ToString()).SetRange(RDFBASEOntology.Instance.Model.ClassModel.SelectClass(RDFVocabulary.XSD.NON_NEGATIVE_INTEGER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.NUM_ITEMS.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.NUM_ITEMS.ToString()).SetRange(RDFBASEOntology.Instance.Model.ClassModel.SelectClass(RDFVocabulary.XSD.NON_NEGATIVE_INTEGER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.NUM_REPLIES.ToString()).SetRange(RDFBASEOntology.Instance.Model.ClassModel.SelectClass(RDFVocabulary.XSD.NON_NEGATIVE_INTEGER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.NUM_THREADS.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.FORUM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.NUM_THREADS.ToString()).SetRange(RDFBASEOntology.Instance.Model.ClassModel.SelectClass(RDFVocabulary.XSD.NON_NEGATIVE_INTEGER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.NUM_VIEWS.ToString()).SetRange(RDFBASEOntology.Instance.Model.ClassModel.SelectClass(RDFVocabulary.XSD.NON_NEGATIVE_INTEGER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.OWNER_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.PARENT_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.PARENT_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.PREVIOUS_BY_DATE.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.PREVIOUS_BY_DATE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.PREVIOUS_VERSION.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.PREVIOUS_VERSION.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.REFERENCE.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.POST.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.REPLY_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.REPLY_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.SCOPE_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ROLE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.SIBLING.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.SIBLING.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.ITEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.SPACE_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.SPACE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.SUBJECT.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.POST.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.SUBSCRIBER_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_ACCOUNT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.SUBSCRIBER_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.CONTAINER.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.TITLE.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.POST.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.USERGROUP_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.USER_GROUP.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SIOC.USERGROUP_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SIOC.SPACE.ToString()));

            #endregion

            #endregion
        }
        /// <summary>
        /// Default-ctor to initialize the SKOS ontology
        /// </summary>
        static RDFSKOSOntology()
        {
            #region Declarations

            #region Ontology
            Instance = new RDFOntology(new RDFResource("http://www.w3.org/TR/skos-reference/skos-owl1-dl.rdf"));
            #endregion

            #region Classes
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SKOS.COLLECTION.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SKOS.CONCEPT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SKOS.CONCEPT_SCHEME.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SKOS.ORDERED_COLLECTION.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(new RDFOntologyUnionClass(new RDFResource("bnode:ConceptCollection")));

            //SKOS.SKOSXL
            Instance.Model.ClassModel.AddClass(RDFVocabulary.SKOS.SKOSXL.LABEL.ToRDFOntologyClass());
            #endregion

            #region Properties
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.ALT_LABEL.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.BROAD_MATCH.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.BROADER.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.BROADER_TRANSITIVE.ToRDFOntologyObjectProperty().SetTransitive(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.CHANGE_NOTE.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.CLOSE_MATCH.ToRDFOntologyObjectProperty().SetSymmetric(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.DEFINITION.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.EDITORIAL_NOTE.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.EXACT_MATCH.ToRDFOntologyObjectProperty().SetSymmetric(true).SetTransitive(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.EXAMPLE.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.HAS_TOP_CONCEPT.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.HIDDEN_LABEL.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.HISTORY_NOTE.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.NARROW_MATCH.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.NARROWER.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.NARROWER_TRANSITIVE.ToRDFOntologyObjectProperty().SetTransitive(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.IN_SCHEME.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.MAPPING_RELATION.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.MEMBER.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.MEMBER_LIST.ToRDFOntologyObjectProperty().SetFunctional(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.NOTATION.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.NOTE.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.PREF_LABEL.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.RELATED_MATCH.ToRDFOntologyObjectProperty().SetSymmetric(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.RELATED.ToRDFOntologyObjectProperty().SetSymmetric(true));
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.SCOPE_NOTE.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.SEMANTIC_RELATION.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.TOP_CONCEPT_OF.ToRDFOntologyObjectProperty());

            //SKOS.SKOSXL
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.SKOSXL.LITERAL_FORM.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.SKOSXL.PREF_LABEL.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.SKOSXL.ALT_LABEL.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.SKOSXL.HIDDEN_LABEL.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.SKOS.SKOSXL.LABEL_RELATION.ToRDFOntologyObjectProperty().SetSymmetric(true));
            #endregion

            #endregion

            #region Taxonomies

            #region ClassModel

            //Restrictions
            Instance.Model.ClassModel.AddClass(new RDFOntologyCardinalityRestriction(new RDFResource("bnode:ExactlyOneLiteralForm"), Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.SKOSXL.LITERAL_FORM.ToString()), 1, 1));

            //SubClassOf
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.ORDERED_COLLECTION.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.COLLECTION.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.SKOSXL.LABEL.ToString()), Instance.Model.ClassModel.SelectClass("bnode:ExactlyOneLiteralForm"));

            //DisjointWith
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.COLLECTION.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.COLLECTION.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT_SCHEME.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.COLLECTION.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.SKOSXL.LABEL.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT_SCHEME.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.SKOSXL.LABEL.ToString()));
            Instance.Model.ClassModel.AddDisjointWithRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT_SCHEME.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.SKOSXL.LABEL.ToString()));

            //UnionOf
            Instance.Model.ClassModel.AddUnionOfRelation(
                (RDFOntologyUnionClass)Instance.Model.ClassModel.SelectClass("bnode:ConceptCollection"),
                new List <RDFOntologyClass>()
            {
                Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT.ToString()),
                Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.COLLECTION.ToString())
            }
                );

            #endregion

            #region PropertyModel

            //SubPropertyOf
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.BROAD_MATCH.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.BROADER.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.BROAD_MATCH.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.MAPPING_RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.BROADER.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.BROADER_TRANSITIVE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.BROADER_TRANSITIVE.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.SEMANTIC_RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.CLOSE_MATCH.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.MAPPING_RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.EXACT_MATCH.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.CLOSE_MATCH.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.MAPPING_RELATION.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.SEMANTIC_RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.NARROW_MATCH.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.NARROWER.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.NARROW_MATCH.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.MAPPING_RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.NARROWER.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.NARROWER_TRANSITIVE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.NARROWER_TRANSITIVE.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.SEMANTIC_RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.TOP_CONCEPT_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.IN_SCHEME.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.RELATED_MATCH.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.RELATED.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.RELATED_MATCH.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.MAPPING_RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.RELATED.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.SEMANTIC_RELATION.ToString()));

            //InverseOf
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.BROAD_MATCH.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.NARROW_MATCH.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.BROADER.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.NARROWER.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.BROADER_TRANSITIVE.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.NARROWER_TRANSITIVE.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.HAS_TOP_CONCEPT.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.TOP_CONCEPT_OF.ToString()));

            //Domain/Range
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.HAS_TOP_CONCEPT.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT_SCHEME.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.HAS_TOP_CONCEPT.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.IN_SCHEME.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT_SCHEME.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.MEMBER.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.COLLECTION.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.MEMBER.ToString()).SetRange(Instance.Model.ClassModel.SelectClass("bnode:ConceptCollection"));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.MEMBER_LIST.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.ORDERED_COLLECTION.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.SEMANTIC_RELATION.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.SEMANTIC_RELATION.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.TOP_CONCEPT_OF.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.TOP_CONCEPT_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.CONCEPT_SCHEME.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.SKOSXL.LITERAL_FORM.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.SKOSXL.LABEL.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.SKOSXL.PREF_LABEL.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.SKOSXL.LABEL.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.SKOSXL.ALT_LABEL.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.SKOSXL.LABEL.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.SKOSXL.HIDDEN_LABEL.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.SKOSXL.LABEL.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.SKOSXL.LABEL_RELATION.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.SKOSXL.LABEL.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.SKOS.SKOSXL.LABEL_RELATION.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.SKOS.SKOSXL.LABEL.ToString()));

            #endregion

            #endregion
        }
 /// <summary>
 /// Asynchronously joins the reasoner evidences of this report into the given ontology
 /// </summary>
 public Task JoinEvidencesAsync(RDFOntology ontology)
 => Task.Run(() => JoinEvidences(ontology));
Esempio n. 9
0
 /// <summary>
 /// Asynchronously validates the given ontology against a set of RDFS/OWL-DL rules, detecting errors and inconsistencies affecting its model and data.
 /// </summary>
 public static Task <RDFOntologyValidatorReport> ValidateAsync(this RDFOntology ontology)
 => Task.Run(() => Validate(ontology));
Esempio n. 10
0
        /// <summary>
        /// Default-ctor to initialize the DC ontology
        /// </summary>
        static RDFDCOntology()
        {
            #region Declarations

            #region Ontology
            Instance = new RDFOntology(new RDFResource("https://rdfsharpsemantics.codeplex.com/dc_ontology#"), true);
            #endregion

            #region Classes

            //DC.DCAM
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCAM.VOCABULARY_ENCODING_SCHEME.ToRDFOntologyClass());

            //DC.DCTERMS
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.AGENT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.AGENT_CLASS.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.BIBLIOGRAPHIC_RESOURCE.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.BOX.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.FILE_FORMAT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.FREQUENCY.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.ISO3166.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.ISO639_2.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.ISO639_3.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.JURISDICTION.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.LICENSE_DOCUMENT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.LINGUISTIC_SYSTEM.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.LOCATION.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.LOCATION_PERIOD_OR_JURISDICTION.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.MEDIA_TYPE.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.MEDIA_TYPE_OR_EXTENT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.METHOD_OF_INSTRUCTION.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.METHOD_OF_ACCRUAL.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.PERIOD.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.PERIOD_OF_TIME.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.PHYSICAL_MEDIUM.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.PHYSICAL_RESOURCE.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.POINT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.POLICY.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.PROVENANCE_STATEMENT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.RFC1766.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.RFC3066.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.RFC4646.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.RFC5646.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.RIGHTS_STATEMENT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.SIZE_OR_DURATION.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.STANDARD.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.URI.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTERMS.W3CDTF.ToRDFOntologyClass());

            //DC.DCTYPE
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTYPE.COLLECTION.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTYPE.DATASET.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTYPE.EVENT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTYPE.IMAGE.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTYPE.INTERACTIVE_RESOURCE.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTYPE.MOVING_IMAGE.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTYPE.PHYSICAL_OBJECT.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTYPE.SERVICE.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTYPE.SOFTWARE.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTYPE.SOUND.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTYPE.STILL_IMAGE.ToRDFOntologyClass());
            Instance.Model.ClassModel.AddClass(RDFVocabulary.DC.DCTYPE.TEXT.ToRDFOntologyClass());

            #endregion

            #region Properties

            //DC
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.CONTRIBUTOR.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.COVERAGE.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.CREATOR.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DATE.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DESCRIPTION.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.FORMAT.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.IDENTIFIER.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.LANGUAGE.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.PUBLISHER.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.RELATION.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.RIGHTS.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.SOURCE.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.SUBJECT.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.TITLE.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.TYPE.ToRDFOntologyAnnotationProperty());

            //DC.DCAM
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCAM.MEMBER_OF.ToRDFOntologyObjectProperty());

            //DC.DCTERMS
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.ABSTRACT.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.ACCESS_RIGHTS.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.ACCRUAL_METHOD.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.ACCRUAL_PERIODICITY.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.ACCRUAL_POLICY.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.ALTERNATIVE.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.AUDIENCE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.AVAILABLE.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.BIBLIOGRAPHIC_CITATION.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.CONFORMS_TO.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.CONTRIBUTOR.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.COVERAGE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.CREATED.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.CREATOR.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.DATE.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.DATE_ACCEPTED.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.DATE_COPYRIGHTED.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.DATE_SUBMITTED.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.DESCRIPTION.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.EDUCATION_LEVEL.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.EXTENT.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.FORMAT.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.HAS_FORMAT.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.HAS_PART.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.HAS_VERSION.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.IDENTIFIER.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.ISSUED.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.INSTRUCTIONAL_METHOD.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.IS_FORMAT_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.IS_PART_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.IS_REFERENCED_BY.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.IS_REPLACED_BY.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.IS_REQUIRED_BY.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.IS_VERSION_OF.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.LANGUAGE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.LICENSE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.MEDIATOR.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.MEDIUM.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.MODIFIED.ToRDFOntologyDatatypeProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.PROVENANCE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.PUBLISHER.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.REFERENCES.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.REPLACES.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.REQUIRES.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.RIGHTS.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.RIGHTS_HOLDER.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.SOURCE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.SPATIAL.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.SUBJECT.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.TABLE_OF_CONTENTS.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.TEMPORAL.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.TITLE.ToRDFOntologyAnnotationProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.TYPE.ToRDFOntologyObjectProperty());
            Instance.Model.PropertyModel.AddProperty(RDFVocabulary.DC.DCTERMS.VALID.ToRDFOntologyDatatypeProperty());

            #endregion

            #region Facts

            //DC.DCTERMS
            Instance.Data.AddFact(RDFVocabulary.DC.DCTERMS.DCMITYPE.ToRDFOntologyFact());
            Instance.Data.AddFact(RDFVocabulary.DC.DCTERMS.DDC.ToRDFOntologyFact());
            Instance.Data.AddFact(RDFVocabulary.DC.DCTERMS.IMT.ToRDFOntologyFact());
            Instance.Data.AddFact(RDFVocabulary.DC.DCTERMS.LCC.ToRDFOntologyFact());
            Instance.Data.AddFact(RDFVocabulary.DC.DCTERMS.LCSH.ToRDFOntologyFact());
            Instance.Data.AddFact(RDFVocabulary.DC.DCTERMS.MESH.ToRDFOntologyFact());
            Instance.Data.AddFact(RDFVocabulary.DC.DCTERMS.NLM.ToRDFOntologyFact());
            Instance.Data.AddFact(RDFVocabulary.DC.DCTERMS.TGN.ToRDFOntologyFact());
            Instance.Data.AddFact(RDFVocabulary.DC.DCTERMS.UDC.ToRDFOntologyFact());

            #endregion

            #endregion

            #region Taxonomies

            #region ClassModel

            //SubClassOf
            var rdfsLiteral = RDFBASEOntology.Instance.Model.ClassModel.SelectClass(RDFVocabulary.RDFS.LITERAL.ToString());
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.AGENT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.AGENT_CLASS.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.BOX.ToString()), rdfsLiteral);
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.FILE_FORMAT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.MEDIA_TYPE.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.ISO3166.ToString()), rdfsLiteral);
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.ISO639_2.ToString()), rdfsLiteral);
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.ISO639_3.ToString()), rdfsLiteral);
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.JURISDICTION.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.LOCATION_PERIOD_OR_JURISDICTION.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.LICENSE_DOCUMENT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.RIGHTS_STATEMENT.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.LOCATION.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.LOCATION_PERIOD_OR_JURISDICTION.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.MEDIA_TYPE.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.MEDIA_TYPE_OR_EXTENT.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.PERIOD.ToString()), rdfsLiteral);
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.PERIOD_OF_TIME.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.LOCATION_PERIOD_OR_JURISDICTION.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.PHYSICAL_MEDIUM.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.MEDIA_TYPE.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.POINT.ToString()), rdfsLiteral);
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.RFC1766.ToString()), rdfsLiteral);
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.RFC3066.ToString()), rdfsLiteral);
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.RFC4646.ToString()), rdfsLiteral);
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.RFC5646.ToString()), rdfsLiteral);
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.SIZE_OR_DURATION.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.MEDIA_TYPE_OR_EXTENT.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.URI.ToString()), rdfsLiteral);
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.W3CDTF.ToString()), rdfsLiteral);
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTYPE.MOVING_IMAGE.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTYPE.IMAGE.ToString()));
            Instance.Model.ClassModel.AddSubClassOfRelation(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTYPE.STILL_IMAGE.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTYPE.IMAGE.ToString()));

            #endregion

            #region PropertyModel

            //SubPropertyOf
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.ACCESS_RIGHTS.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RIGHTS.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.AVAILABLE.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.DATE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.BIBLIOGRAPHIC_CITATION.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.IDENTIFIER.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.CONFORMS_TO.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.CREATED.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.DATE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.CREATOR.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.CONTRIBUTOR.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.DATE_ACCEPTED.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.DATE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.DATE_COPYRIGHTED.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.DATE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.DATE_SUBMITTED.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.DATE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.EDUCATION_LEVEL.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.AUDIENCE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.EXTENT.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.FORMAT.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.HAS_FORMAT.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.HAS_PART.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.HAS_VERSION.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.ISSUED.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.DATE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.IS_FORMAT_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.IS_PART_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.IS_REFERENCED_BY.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.IS_REPLACED_BY.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.IS_REQUIRED_BY.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.IS_VERSION_OF.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.LICENSE.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RIGHTS.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.MEDIATOR.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.AUDIENCE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.MEDIUM.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.FORMAT.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.MODIFIED.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.DATE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.REFERENCES.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.REPLACES.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.REQUIRES.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.SOURCE.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RELATION.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.SPATIAL.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.COVERAGE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.TEMPORAL.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.COVERAGE.ToString()));
            Instance.Model.PropertyModel.AddSubPropertyOfRelation((RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.VALID.ToString()), (RDFOntologyDatatypeProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.DATE.ToString()));

            //InverseOf
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.HAS_FORMAT.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.IS_FORMAT_OF.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.HAS_PART.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.IS_PART_OF.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.HAS_VERSION.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.IS_VERSION_OF.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.REFERENCES.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.IS_REFERENCED_BY.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.REPLACES.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.IS_REPLACED_BY.ToString()));
            Instance.Model.PropertyModel.AddInverseOfRelation((RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.REQUIRES.ToString()), (RDFOntologyObjectProperty)Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.IS_REQUIRED_BY.ToString()));

            //Domain/Range
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCAM.MEMBER_OF.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCAM.VOCABULARY_ENCODING_SCHEME.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.ACCESS_RIGHTS.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.RIGHTS_STATEMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.ACCRUAL_METHOD.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTYPE.COLLECTION.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.ACCRUAL_METHOD.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.METHOD_OF_ACCRUAL.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.ACCRUAL_PERIODICITY.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTYPE.COLLECTION.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.ACCRUAL_PERIODICITY.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.FREQUENCY.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.ACCRUAL_POLICY.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTYPE.COLLECTION.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.ACCRUAL_POLICY.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.POLICY.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.AUDIENCE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.AGENT_CLASS.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.BIBLIOGRAPHIC_CITATION.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.BIBLIOGRAPHIC_RESOURCE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.CONFORMS_TO.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.STANDARD.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.CONTRIBUTOR.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.COVERAGE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.LOCATION_PERIOD_OR_JURISDICTION.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.CREATOR.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.EDUCATION_LEVEL.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.AGENT_CLASS.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.EXTENT.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.SIZE_OR_DURATION.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.FORMAT.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.MEDIA_TYPE_OR_EXTENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.INSTRUCTIONAL_METHOD.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.METHOD_OF_INSTRUCTION.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.LANGUAGE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.LINGUISTIC_SYSTEM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.LICENSE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.LICENSE_DOCUMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.MEDIATOR.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.AGENT_CLASS.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.MEDIUM.ToString()).SetDomain(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.PHYSICAL_RESOURCE.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.MEDIUM.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.PHYSICAL_MEDIUM.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.PUBLISHER.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.PROVENANCE.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.PROVENANCE_STATEMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RIGHTS.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.RIGHTS_STATEMENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.RIGHTS_HOLDER.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.AGENT.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.SPATIAL.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.LOCATION.ToString()));
            Instance.Model.PropertyModel.SelectProperty(RDFVocabulary.DC.DCTERMS.TEMPORAL.ToString()).SetRange(Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCTERMS.PERIOD_OF_TIME.ToString()));

            #endregion

            #region Data

            //ClassType
            Instance.Data.AddClassTypeRelation(Instance.Data.SelectFact(RDFVocabulary.DC.DCTERMS.DCMITYPE.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCAM.VOCABULARY_ENCODING_SCHEME.ToString()));
            Instance.Data.AddClassTypeRelation(Instance.Data.SelectFact(RDFVocabulary.DC.DCTERMS.DDC.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCAM.VOCABULARY_ENCODING_SCHEME.ToString()));
            Instance.Data.AddClassTypeRelation(Instance.Data.SelectFact(RDFVocabulary.DC.DCTERMS.IMT.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCAM.VOCABULARY_ENCODING_SCHEME.ToString()));
            Instance.Data.AddClassTypeRelation(Instance.Data.SelectFact(RDFVocabulary.DC.DCTERMS.LCC.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCAM.VOCABULARY_ENCODING_SCHEME.ToString()));
            Instance.Data.AddClassTypeRelation(Instance.Data.SelectFact(RDFVocabulary.DC.DCTERMS.LCSH.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCAM.VOCABULARY_ENCODING_SCHEME.ToString()));
            Instance.Data.AddClassTypeRelation(Instance.Data.SelectFact(RDFVocabulary.DC.DCTERMS.MESH.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCAM.VOCABULARY_ENCODING_SCHEME.ToString()));
            Instance.Data.AddClassTypeRelation(Instance.Data.SelectFact(RDFVocabulary.DC.DCTERMS.NLM.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCAM.VOCABULARY_ENCODING_SCHEME.ToString()));
            Instance.Data.AddClassTypeRelation(Instance.Data.SelectFact(RDFVocabulary.DC.DCTERMS.TGN.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCAM.VOCABULARY_ENCODING_SCHEME.ToString()));
            Instance.Data.AddClassTypeRelation(Instance.Data.SelectFact(RDFVocabulary.DC.DCTERMS.UDC.ToString()), Instance.Model.ClassModel.SelectClass(RDFVocabulary.DC.DCAM.VOCABULARY_ENCODING_SCHEME.ToString()));

            #endregion

            #endregion
        }