Search Mailing List Archives
[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