On 14/03/14 08:08, Adeeb Noor 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();

Unless something has changed then Pellet is an in-memory reasoner so reasoning directly over the TDB data doesn't necessarily enable you to scale beyond memory sized data and may be a performance hit.

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.

Not sure what you mean by "grouping" here. This is not one triple but one resource which is the subject of a number of triples.

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.

What you do you mean by "group"?

What do you mean by rule here? Swrl rules? If so then you need to ask the Pellet folks for support on that.

Why is the URI being "external" of any relevance here? Normally that wouldn't matter at all.

 For example, I want to
create a class called sameKEGG that its members has <
http://identifiers.org/kegg.pathway/hsa04110>  value for example.

That you could do directly in OWL, no need for rules, something like:

eg:sameKEGG a owl:Class;
    owl:equivalentClass  [
        a owl:Restriction;
        owl:onProperty ddids:x-kegg.pathway;
        owl:hasValue <http://identifiers.org/kegg.pathway/hsa04110> ] .

Dave

Reply via email to