Thanks Alves, May be I was not clear enough. I do not want to use the rule engine. Instead I would like to use protege to add the rule.
Thanks On Friday, March 14, 2014, Miguel Bento Alves <[email protected]> wrote: > 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] <javascript:;>> > 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] <javascript:;> > > > -- Sent from Gmail Mobile
