Search Mailing List Archives


Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-discussion] a simple questions about owl programming

tingyu li li.hh190 at gmail.com
Fri Nov 19 20:45:00 PST 2010


hi Timothy,

I change an other owl files to load as the same way as son, but It failed,
It must be caused  by the owl file error, which I can't figure out.
so I use the Progtege api to load the same file, the code:

String uri = "locationpath";
>         OWLModel owlModel = ProtegeOWL.createJenaOWLModelFromURI(uri);
>
>         Collection classes = owlModel.getUserDefinedOWLNamedClasses();
>
>         for (Iterator it = classes.iterator(); it.hasNext();) {
>             OWLNamedClass cls = (OWLNamedClass) it.next();
>             Collection instances = cls.getInstances(false);
>             System.out.println("Class " + cls.getBrowserText() + " (" +
> instances.size() + ")");
>             for (Iterator jt = instances.iterator(); jt.hasNext();) {
>                 OWLIndividual individual = (OWLIndividual) jt.next();
>                 System.out.println(" - " + individual.getBrowserText());
>             }
>         }
>

 it still failed, and the error message, which is much similar with the
error Propervalue class made:

Protege 3.4.4 Build 579, JVM 1.6.0_18-b07, memory=259M, Windows 7,
> encoding=UTF-8, language=zh, country=CN
> WARNING: Plugins directory not found: D:\workspace\lastprotege\plugins --
> PluginUtilities.findPluginsDirectory()
> WARNING: [Local Folder Repository] The specified file must be a directory.
> (D:\workspace\lastprotege\plugins\edu.stanford.smi.protegex.owl) --
> LocalFolderRepository.update()
> SEVERE: Error at loading file
> C://Users//LiTingyu//ontologies//resultcollection.owl -- null
>     at
> edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.run(ProtegeOWLParser.java:174)
>     at
> edu.stanford.smi.protegex.owl.jena.JenaKnowledgeBaseFactory.loadKnowledgeBase(JenaKnowledgeBaseFactory.java:204)
>     at
> edu.stanford.smi.protege.model.Project.loadDomainKB(Project.java:1369)
>     at
> edu.stanford.smi.protege.model.Project.createDomainKnowledgeBase(Project.java:479)
>     at
> edu.stanford.smi.protegex.owl.jena.creator.OwlProjectFromUriCreator.create(OwlProjectFromUriCreator.java:62)
>     at
> edu.stanford.smi.protegex.owl.ProtegeOWL.createJenaOWLModelFromURI(ProtegeOWL.java:84)
>     at
> com.demo.application.classAndInstanceScanning.main(classAndInstanceScanning.java:22)
> Caused by: java.net.MalformedURLException: unknown protocol: c
>     at java.net.URL.<init>(Unknown Source)
>     at java.net.URL.<init>(Unknown Source)
>     at java.net.URL.<init>(Unknown Source)
>     at java.net.URI.toURL(Unknown Source)
>     at
> edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.run(ProtegeOWLParser.java:172)
>     ... 6 more
>
> WARNING: Error found edu.stanford.smi.protege.util.MessageError at 175d6ab --
> ProtegeOWL.handleErrors()
> WARNING: Error found edu.stanford.smi.protege.util.MessageError at 160a26f --
> ProtegeOWL.handleErrors()
> Exception in thread "main" java.lang.NullPointerException
>     at
> com.demo.application.classAndInstanceScanning.main(classAndInstanceScanning.java:38)
>


2010/11/19 Timothy Redmond <tredmond at stanford.edu>

>  On 11/18/2010 08:53 AM, tingyu li wrote:
>
> Hi Timothy,
>
> it's really very in detail, and works. thank you very much.
> And another problem is how to scan the all properties that the individual
> has? I want get these properties and values as a pair...
>
>
> In the Protege 3 OWL api you use getPossibleRDFProperties.  In the
> Manchester OWL api, OWLIndividual has a method called
> getObjectPropertyValues.
>
> -Timothy
>
>
>
>
>  2010/11/19 Timothy Redmond <tredmond at stanford.edu>
>
>>
>> The code you had essentially works except that the line
>>
>>
>>              OWLObjectProperty individual = (OWLObjectProperty) jt.next();
>>
>>
>>  is unlikely to succeed.  You would expect the next value to be an
>> OWLIndividual (or a literal) not an object property.
>>
>>
>> *WARNING: Invalid frame type: DefaultOWLIndividual(
>> http://www.semanticweb.org/ontologies/2010/0/family.owl#Jim of
>> [DefaultOWLNamedClass(http://www.w3.org/2002/07/owl#Thing),
>> DefaultOWLNamedClass(
>> http://www.semanticweb.org/ontologies/2010/0/family.owl#male_family_member),
>> DefaultRDFSNamedClass(http://www.w3.org/2002/07/owl#NamedIndividual)<http://www.w3.org/2002/07/owl#NamedIndividual%29>])
>> -- AbstractRedirectingDispatch.getDirectOwnSlotValues()
>> Exception in thread "main" java.lang.IllegalArgumentException: null slot*
>>
>>
>>  The first warning is weird but the exception means what it says.  Your
>> owlModel does not have a hasSon object property in it so objectProp is null.
>>
>>
>>
>> and I have take a look at owlapi, it's really more direct to handle. but
>> after I checked these code sample on the website, I found that these codes
>> only do some actions about class. but my target is individual.
>>
>>
>>  The "Classes and instances" example from [1] has individuals.  To write
>> your code in the owl api you simply put:
>>
>>     OWLNamedIndividual jim = factory.getOWLNamedIndividual(":jim", prefixManager);
>>     OWLObjectProperty hasSon = factory.getOWLObjectProperty(":hasSon", prefixManager);
>>
>>     for (OWLIndividual son : jim.getObjectPropertyValues(hasSon, ontology)) {
>>         System.out.println(" - " + son);
>>     }
>>
>>
>> -Timothy
>>
>>
>> [1] http://owlapi.sourceforge.net/documentation.html
>>
>>
>> On 11/18/2010 06:55 AM, tingyu li wrote:
>>
>> thanks for you guys response. and I have take a look at owlapi, it's
>> really more direct to handle. but after I checked these code sample on the
>> website, I found that these codes only do some actions about class. but my
>> target is individual. how to get specific individual's object property
>> assertions is my purpose.
>> And at the same time, I find a simple way that maybe can get this, the
>> code is :
>>
>>>         OWLIndividual ind = owlModel.getOWLIndividual("Jim");
>>>         OWLObjectProperty objectProp =
>>> owlModel.getOWLObjectProperty("hasSon");
>>>         Collection values = ind.getPropertyValues(objectProp);
>>>         for (Iterator jt = values.iterator(); jt.hasNext();) {
>>>             OWLObjectProperty individual = (OWLObjectProperty) jt.next();
>>>             System.out.println(" - " + individual.getBrowserText());
>>>         }
>>>
>> but error message returned said:
>> *WARNING: Invalid frame type: DefaultOWLIndividual(
>> http://www.semanticweb.org/ontologies/2010/0/family.owl#Jim of
>> [DefaultOWLNamedClass(http://www.w3.org/2002/07/owl#Thing),
>> DefaultOWLNamedClass(
>> http://www.semanticweb.org/ontologies/2010/0/family.owl#male_family_member),
>> DefaultRDFSNamedClass(http://www.w3.org/2002/07/owl#NamedIndividual)<http://www.w3.org/2002/07/owl#NamedIndividual%29>])
>> -- AbstractRedirectingDispatch.getDirectOwnSlotValues()
>> Exception in thread "main" java.lang.IllegalArgumentException: null slot*
>> it seems that this code just can handle the old version proj, so is there
>> any replacement of 4.0 for the same target?
>>
>> In the other hand,  as thomas mentioned,
>>
>>> All of the assertion information would be retrieved in the form of
>>> different kinds of axioms that you would get for a particular individual
>>> (like Jim) by calling the method with signature:
>>>
>>>   OWLOntology.getAxioms(
>>>>
>>>> OWLIndividual)
>>>>
>>>> and then filtering the results in to different classes of axiom such as
>>>>
>>>>   OWLPropertyAssertionAxiom which supports getProperty() and
>>>> getObject() to tell you which property and value it has.
>>>>
>>>> The usages would seem to be returned by
>>>>
>>>>   OWLOntology.getReferencingAxioms(OWLEntity)
>>>
>>>  I will appreciate if you can give me code samples about how to drive
>> them.
>>
>> thx a lot!
>>
>> 2010/11/18 Thomas Russ <tar at isi.edu>
>>
>>>
>>> On Nov 17, 2010, at 7:20 AM, tingyu li wrote:
>>>
>>> hi Thomas, thanks for your response. but I still very confused by these
>>>> methods...and I have read all the samples posted on the website, but I don't
>>>> find any solutions for my problems, a very similar question is about query
>>>> all resources that have a certain property value. the code on website is
>>>> like this:
>>>> RDFProperty subClassOfProperty =
>>>> owlModel.getRDFProperty(RDFSNames.Slot.SUB_CLASS_OF);
>>>>
>>>> OWLNamedClass owlThingClass = owlModel.getOWLThingClass();
>>>> Collection results =
>>>> owlModel.getRDFResourcesWithPropertyValue(subClassOfProperty,
>>>> owlThingClass);
>>>> System.out.println("Subclasses of owl:Thing:");
>>>>
>>>> for (Iterator it = results.iterator(); it.hasNext();) {
>>>>    RDFResource resource = (RDFResource) it.next();
>>>>    System.out.println(" - " + resource.getBrowserText());
>>>> }
>>>> but, actually, there are no slot on the new version owl files. and I
>>>> think RDFProperty is not very fit for my file. by the way, I use protege 4.0
>>>> to develop a owl file and save it as format: RDF/XML. the file  is like
>>>> this:
>>>>
>>>
>>>  You have to look at the class hierarchy in the Java code.
>>> OWLObjectProperty and OWLIndividual are all subclasses of RDFPropery and
>>> RDFResource, so those methods will be applicable.
>>>
>>> But if you are going to be using Protege 4, then you should be using the
>>> OWLAPI to work with the ontology rather than the Protege-OWL API.  That is
>>> the underlying code that the Protege 4 code uses.   OWLAPIv3 is used in
>>> Protege 4.1
>>>
>>> So the place to start for OWLAPI programming are the following documents:
>>>
>>>  http://owlapi.sourceforge.net/documentation.html
>>>
>>> All of the assertion information would be retrieved in the form of
>>> different kinds of axioms that you would get for a particular individual
>>> (like Jim) by calling the method with signature:
>>>
>>>   OWLOntology.getAxioms(OWLIndividual)
>>>
>>> and then filtering the results in to different classes of axiom such as
>>>
>>>   OWLPropertyAssertionAxiom which supports getProperty() and getObject()
>>> to tell you which property and value it has.
>>>
>>> The usages would seem to be returned by
>>>
>>>   OWLOntology.getReferencingAxioms(OWLEntity)
>>>
>>>
>>>
>>>
>>>>    <owl:ObjectProperty rdf:about="
>>>> http://www.semanticweb.org/ontologies/2010/0/family.owl#isUncleOf">
>>>>        <rdfs:range rdf:resource="
>>>> http://www.semanticweb.org/ontologies/2010/0/family.owl#family_member
>>>> "/>
>>>>        <rdfs:domain rdf:resource="
>>>> http://www.semanticweb.org/ontologies/2010/0/family.owl#male_family_member
>>>> "/>
>>>>    </owl:ObjectProperty>
>>>> I want get the similar result as the probem I described above. in other
>>>> words, if I click Jim as the picture, I can get the result as the rigt part
>>>> of the picture displayed, Usage and Property assertions:Jim
>>>>
>>>> thanks.
>>>>
>>>>
>>>  _______________________________________________
>>> protege-discussion mailing list
>>> protege-discussion at lists.stanford.edu
>>> https://mailman.stanford.edu/mailman/listinfo/protege-discussion
>>>
>>> Instructions for unsubscribing:
>>> http://protege.stanford.edu/doc/faq.html#01a.03
>>>
>>
>>
>>
>> --
>> Li
>>
>>
>> _______________________________________________
>> protege-discussion mailing listprotege-discussion at lists.stanford.eduhttps://mailman.stanford.edu/mailman/listinfo/protege-discussion
>>
>> Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
>>
>>
>>
>> _______________________________________________
>> protege-discussion mailing list
>> protege-discussion at lists.stanford.edu
>> https://mailman.stanford.edu/mailman/listinfo/protege-discussion
>>
>> Instructions for unsubscribing:
>> http://protege.stanford.edu/doc/faq.html#01a.03
>>
>>
>
>
> --
> Li Tingyu
> ==========================================================
> Mobile (China): +(86) 136 6173 2368
> Computer Science Department Shanghai JiaoTong University
> Address: No. 800 Dongchuan Road, Shanghai China, 200240
> ==========================================================
>
>
> _______________________________________________
> protege-discussion mailing listprotege-discussion at lists.stanford.eduhttps://mailman.stanford.edu/mailman/listinfo/protege-discussion
>
> Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
>
>
>
> _______________________________________________
> protege-discussion mailing list
> protege-discussion at lists.stanford.edu
> https://mailman.stanford.edu/mailman/listinfo/protege-discussion
>
> Instructions for unsubscribing:
> http://protege.stanford.edu/doc/faq.html#01a.03
>
>


-- 
Li
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.stanford.edu/pipermail/protege-discussion/attachments/20101120/6e37f840/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: resultcollection.owl
Type: application/octet-stream
Size: 2331008 bytes
Desc: not available
URL: <http://mailman.stanford.edu/pipermail/protege-discussion/attachments/20101120/6e37f840/attachment.owl>


More information about the protege-discussion mailing list