Hi Adeed, 

I see sameKEGG as an objectProperty and not as a class. The rule should be
something like:

(?x ex:sameKEGG_p ?y) <-
        (?x ddids:x-kegg.pathway ?z),
        (?y ddids:x-kegg.pathway ?z),
        notEqual(?x, ?y). 

But you can get all the subjects that have others with a same value under
a class with: 

(?x rdf:type ex:sameKEGG_c) <-
        (?x ex:sameKEGG_p ?y).

Miguel


On 14/03/14 08:08, "Adeeb Noor" <[email protected]> wrote:

>Hello everyone:
>
>I have been struggling a lot with a problem that I did not find a solution
>for, so hopefully guys can guide me or help me with it.
>
>I have my data (rdfs) store in jena tdb as model and my owl (schema) using
>protoge.
>
>Here is the code to merge data and schema:
>
>System.out.println("creting infeer dataset ");
>        Dataset dataset = TDBFactory.createDataset(data.infereedTDB);
>
>        System.out.println("creting OntModel ");
>        OntModel Infmodel =
>ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC,
>dataset.getNamedModel(this.URL));
>
>        System.out.println("adding schema (OWL) to OntModel");
>        Infmodel.add(this.owl);
>
>        System.out.println("adding data (RDF) to OntModel ");
>        Infmodel.add(data.tdb);
>
>        System.out.println("creting ModelExtractor ");
>        ModelExtractor ext = new ModelExtractor(Infmodel);
>
>        dataset.replaceNamedModel(this.URL, ext.extractModel());
>
>        System.out.println("saving infead model");
>        Infmodel.close();
>        System.out.println("closing infeed dataset");
>        dataset.close();
>
>So I have the ability to store my inferred data into new tdb and to reason
>or build any rule based on Literal values . For example: this is one
>triple
>that has UMLS_type as a property and I can group all subjects with two or
>more UMLS_types for instance.
>
>ddidd:C0007586 | ddids:label
>                   | "Cell Cycle"
>ddidd:C0007586 | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> |
>ddids:Pathway
>ddidd:C0007586 | ddids:UMLS_type
>           | "T043"
>ddidd:C0007586 |
>ddids:x-kegg.pathway                                                 | <
>http://identifiers.org/kegg.pathway/hsa04110>
>
>However, as you can see from the triple above I have x-kegg.pathway  as an
>external uri. By default protoge takes it to be object property. What I
>cannot do is to write a rule for example to group all subject under same
>x-kegg.pathway number since it is external URI.   For example, I want to
>create a class called sameKEGG that its members has <
>http://identifiers.org/kegg.pathway/hsa04110>  value for example. BTW, I
>can do such a thing easily by SPARQL but I would love to use the reasoner
>to make complex rules.
>
>I have been struggling with this for awhile and I frankly appreciate any
>comments or feedback.
>
>-- 
>Adeeb Noor
>Ph.D. Candidate
>Dept of Computer Science
>University of Colorado at Boulder
>Cell: 571-484-3303
>Email: [email protected]


Reply via email to