On 19/03/14 18:04, Adeeb Noor wrote:
Thanks Dave

I am using protoge 4.2.0. I created the class sameKEGG and the
object property ddids:x-kegg.pathway; but I am not able to find the
hasValue restriction. any idea ?

Sorry no. Last time I used protege was a long time ago and then it was pretty obvious ("create restriction", select "hasValue" and fill in the form). If it's no longer obvious then you'll need to ask on a protege list.

Dave


On Wed, Mar 19, 2014 at 11:33 AM, Dave Reynolds
<dave.e.reyno...@gmail.com>wrote:

On 19/03/14 17:26, Adeeb Noor wrote:

Hi Dave:

Thanks for your answer.

   owl:onProperty ddids:x-kegg.pathway;
          owl:hasValue <http://identifiers.org/kegg.pathway/hsa04110> ] .

What data type should I give to hasValue object property to accept the
URI.


No data type, <http://identifiers.org/kegg.pathway/hsa04110> is a
resource not a literal.

Dave


  thanks


On Mon, Mar 17, 2014 at 4:28 AM, Dave Reynolds <dave.e.reyno...@gmail.com
wrote:

  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