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] protege server with netkernel

Tania Tudorache tudorache at stanford.edu
Thu Dec 18 15:29:12 PST 2008


Hi Jeff,

Sorry for the late reply.

jeff.rogers at thomsonreuters.com wrote:
> Has anyone tried to use NetKernel (http://www.1060.org) to access a
> protege server and export knowledge trees?  We have a design mostly
> working, but there are some unanswered questions that the docs do not
> address very well.  
>   
We have some people in the department experimenting with NetKernel and 
Protege.
Do you need the protege server in your application? Unless you have 
several users/applications accessing or editing a shared ontology, you 
should not need the server setup. The standalone protege should be enough.

> One issue is performance - we have several thousand instances of a
> particular class (it's a nodetree with parent/child relationships), and
> when we try to load up all the instances there is a considerable delay
> (as much as several minutes).  This affects the frames editor as well.
> The problem may well be in our class design, but I'm not sure how else
> to go about it.
>   

Are you working with an OWL ontology, or with a frames ontology? What do 
you mean by "load up the instances"? Is it in the Protege editor, or 
using the API in an application?

If it is in the editor, then you may want to download the latest Protege 
3.4. beta that has some UI improvements for large numbers of individuals 
(the OWLIndividualsTab). If you are using the API to get the 
individuals, then getting some thousands of individuals should be fast. 
Of course, the network delay between your sever and client also plays a 
role in this.

> Another item is getting updates.  There are various listeners indicated
> in the javadoc, but not much is said about them.  Are there any examples
> of their use?
>   

Yes, there are listeners for different types of events. They are 
different in the frames and the OWL API. For OWL, there is some 
documentation here [1]. I could not find now documentation about the 
frames listeners, but if you look at the javadoc [2] of the 
edu.stanford.smi.protege.event package you will see what types of 
listeners are available (e.g., KnowledgeBaseListener, ClsListener, 
FrameListener, etc.). They are quite straightforward.

If you want to use listeners in client-server mode, you should be aware 
of how listeners work on clients and on the server [3].

> Is is possible to connect to the server using just protege.jar, or do
> the ui jars need to be around also, even if I'm running headless?
>   

Yes, you don't need the Protege GUI to connect to the server. We have 
documentation on the wiki about accessing the server programmatically [4].

> Lastly, there is a Query interface and an executeQuery method, but I can
> find nothing on how to use those.  Again, are there any examples?
>   

It depends what you mean by "query". If you just want to query the 
classes, properties, values, etc. in the ontology, you can use the 
Protege-OWL  [1] or Protege Frames API [5]. There is another useful 
method in the KnowledgeBase interface: getMatchingFrames [7] - returns 
the frames for which a slot has a matching value (may also contain 
pattern matching character *)  and getMatchingReferences [see also 7] - 
returns a collection of references (frame, slot, facet) that has any 
value that matches a given string.

There is also support for phonetic searches using Lucene [8].

In OWL, you may also perform SPARQL searches using from the OWLModel 
interface the method executeSPARQLQuery(..) [9].

A very powerful query mechanism is also provided by the SQWRL plugin 
that can be accessed both in the UI and through the API [10].

Tania

> Thanks
> -Jeff
> _______________________________________________
> 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 
>
>   
 
[1]: http://protege.stanford.edu/plugins/owl/api/guide.html#Listeners
[2]: 
http://protege.stanford.edu/doc/pdk/api/edu/stanford/smi/protege/event/package-frame.html
[3]: 
http://protegewiki.stanford.edu/index.php/Considerations_on_porting_Tab_Plugins_to_Client-Server_mode
[4]: 
http://protegewiki.stanford.edu/index.php/Protege_Client-Server_Tutorial#Accessing_the_Server_Programatically
[5]: http://protege.stanford.edu/doc/dev.html
[6]: http://protegewiki.stanford.edu/index.php/ProgramaticLuceneQueryAccess
[7]: 
http://protege.stanford.edu/doc/pdk/api/edu/stanford/smi/protege/model/KnowledgeBase.html#getMatchingFrames(edu.stanford.smi.protege.model.Slot,%20edu.stanford.smi.protege.model.Facet,%20boolean,%20java.lang.String,%20int)
[8]: http://protegewiki.stanford.edu/index.php/ProgramaticLuceneQueryAccess
[9]: 
http://protege.stanford.edu/download/release-javadoc-owl/edu/stanford/smi/protegex/owl/model/OWLModel.html#executeSPARQLQuery(java.lang.String)
[10]: http://protege.cim3.net/cgi-bin/wiki.pl?SWRLTab



More information about the protege-discussion mailing list