10 Replies Latest reply on Feb 16, 2009 9:34 PM by alwu-Oracle

    OWLPrime

    24743
      It seems like create_entailment with OWLPrime only materializes one triple (the other supported vocabularies work as documented).

      Regards - Christian
        • 1. Re: OWLPrime
          alwu-Oracle
          OWLPrime has been used many times by many people. So far no problem has been found.

          Could you please cut & paste your OWL ontology? Are there many OWL vocabularies in your model?

          If you cannot share your ontology on this public forum, please send it offline to the following email.
          alan dot wu at oracle dot com.

          Cheers,

          Zhe Wu
          • 2. Re: OWLPrime
            24743
            I just did this simple test below - where select with owlsif returns Stephen and Steve while the select with owlprime only returns Stephen.

            INSERT INTO family_test
            VALUES (1, sdo_rdf_triple_s ('familytest',
            '<http://www.example.org/family/Stephen>',
            '<http://www.example.org/family/fatherOf>',
            '<http://www.example.org/family/Tim>'));

            INSERT INTO family_test
            VALUES (2, sdo_rdf_triple_s ('familytest',
            '<http://www.example.org/family/Stephen>',
            '<http://www.w3.org/2002/07/owl#sameAs>',
            '<http://www.example.org/family/Steve>'));

            EXECUTE sem_apis.create_entailment ('owlsif_idx_familytest', sem_models ('familytest'), sem_rulebases ('owlsif'));

            SELECT s
            FROM table(sem_match ('(?s :fatherOf ?o)',
            sem_models ('familytest'),
            sem_rulebases ('owlsif'),
            sem_aliases(sem_alias ('', 'http://www.example.org/family/')), NULL));

            EXECUTE sem_apis.create_entailment ('owlprime_idx_familytest', sem_models ('familytest'), sem_rulebases ('owlprime'));

            SELECT s
            FROM table(sem_match ('(?s :fatherOf ?o)',
            sem_models ('familytest'),
            sem_rulebases ('owlprime'),
            sem_aliases(sem_alias ('', 'http://www.example.org/family/')), NULL));
            • 3. Re: OWLPrime
              alwu-Oracle
              It looks normal. Do you expect to see (Steve fatherOf Tim)?
              You need to specify "SAM" component which by default is not included in OWLPRIME.

              RDFS or OWLSIF may give more triples. However, those additional triples are
              just axiomatic triples.
              • 4. Re: OWLPrime
                24743
                Yes that's what I expected. And as can be seen in 2.1.2 (table 2-2) in the documentation, OWLPrime is said to include owl:sameAs.

                Regards - Christian
                • 5. Re: OWLPrime
                  alwu-Oracle
                  OWLPrime by default includes the transitivity of owl:sameAs, not the "copy" or "duplicate" rule.

                  Please drop your entailment and try the following command.

                  EXECUTE sem_apis.create_entailment ('owlprime_idx_familytest', sem_models ('familytest'), sem_rulebases ('owlprime'), sem_apis.REACH_CLOSURE, 'SAM');

                  This is documented in
                  http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28397/owl_concepts.htm

                  Cheers,

                  Zhe Wu
                  • 6. Re: OWLPrime
                    24743
                    Thanks- so all you get "out of the box" from OWLPrime (in my example) - is: Steve sameAs Stephen => Stephen sameAs Steve.

                    I think a post or a paper with some practical and more advanced examples of OWLSIF and OWLPrime would be nice to have.

                    Regards - Christian
                    • 7. Re: OWLPrime
                      alwu-Oracle
                      Do you get what you need by adding the 'SAM' component?

                      Thanks,

                      Zhe
                      • 8. Re: OWLPrime
                        alwu-Oracle
                        OWLSIF is based on pD* and you can find the underlying inference rules for pD* in Table 7 from
                        http://www.websemanticsjournal.org/papers/20050719/document5.pdf

                        OWL 2 RL actually includes many of the OWLPrime rules and some OWL 2 specific rules.
                        Please check
                        http://www.w3.org/TR/owl2-profiles/#Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules

                        Does this help?

                        The reason why 'SAM' component is not included by default is that the "copy" rule may cause
                        a materialization of many new triples. Looking forward, we are planning to adopt a much smarter owl:sameAs
                        handling.

                        Thanks,

                        Zhe Wu
                        • 9. Re: OWLPrime
                          24743
                          Thanks - I will have a look at your references.

                          It seems like a good strategy (for large ontologies) is to use OWLPrime and gradually add the components you need.

                          Regards - Christian
                          • 10. Re: OWLPrime
                            alwu-Oracle
                            Note that OWLPrime has many components built-in. 'SAM' is an exception though.
                            Your test ontology does not use much OWL vocabularies other than owl:sameAs.
                            That is why you did not see many inferred triples.

                            Cheers,

                            Zhe Wu