220 likes | 335 Views
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit. June 1st, 2008 Michael Erdmann, Peter Haase, Holger Lewen, Rudi Studer. Agenda. General Eclipse Overview Plug-in Example: Import wizard for ontologies NeOn Toolkit:
E N D
Ontology Engineering and Plugin Development with the NeOn ToolkitPlug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,Holger Lewen, Rudi Studer
Agenda • General Eclipse Overview • Plug-in Example: • Import wizard for ontologies • NeOn Toolkit: • Extension Points • Datamodel API • Hands-on plug-ins: • Write your own plugin for the NeOn Toolkit
Eclipse Plug-in Architecture • Plug-in = smallest unit of Eclipse functionality • Big example: HTML editor • Small example: Action to create zip files • Extension point = named entity for collecting “contributions” • Example: extension point for workbench preferences UI • Comparable to Java interface • Extension = a contribution • Example: specific HTML editor preferences • Comparable to Java class implementing an interface
Eclipse Platform - Summary • Plug-ins, extension points, extensions • Modular, open, extensible architecture • “Everything is a plug-in” • Workspace, projects, files, folders • Common place to store and organize development artifacts • Workbench, editors, views, perspectives • Common UI paradigm • Not only for Java Development… • IDEs for other languages (C++, Python, PHP…) • UML, Reports, Data base schema, … • NeOn Toolkit, OntoStudio
Why we Love Eclipse ;-) • What Eclipse provides for you: • A lot of preexisting components, “workflows” (wizards…), services • Frameworks for editors (text & graphical), property dialogs, preferences, concurrent tasks, debugging, … • Support for typical IDE and Workspace tasks • Extensible online-help • […] • What some prominent plug-ins provide for you (NeOn): • Metamodel support • Graphical tool generation support • Collaboration support • Web service support • […]
Agenda • General Eclipse Overview • Plug-in Example: • Import wizard for ontologies • NeOn Toolkit: • Extension Points • Datamodel API • Hands-on plug-ins: • Write your own plugin for the NeOn Toolkit
ImportWizard Template • Find more information about Wizards at • http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/dialogs_wizards.htm • http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/dialogs_wizards_extensions.htm • Find more information about ImportWizards at • http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.user/reference/ref-70.htm • http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/dialogs_wizards_importWizards.htm
The Plug-in is Created • The Plug-in is now ready! • But without any customized code, i.e. it is hardly doing anything. • You can try it out, by starting the NeOn Toolkit. • Afterwards, you can browse the plug-ins properties…
Plug-in Dependencies Add here:- com.ontoprise.ontostudio.datamodel- datamodel- datamodelbase- util
Specify here: packages that should be visible externally, i.e. can be used by other plug-ins Runtime Specs Specify here:libraries that are needed by this plug-in at runtime
Extending Extension Points Adapt the properties here, e.g. - better labels - other icons
ImportWizard.java • Find your ImportWizard.java class • Go to the default implementation of performFinish() • This method will be called when the ImportWizard’s <Finish> button will be pressed. • We will refine this method to actually load an ontology. • Add this line to performFinish() return openOntology(file); • Implement the method as shown on next page: private boolean openOntology(IFile file)
ImportWizardPage.java • Find your ImportWizardPage.java class • Go to the default impl. of createAdvancedControls () • This method will be called when the different pages of the wizard are initialized. • We will refine this method to restrict the file filter to ontology extensions understood by NeOn Toolkit. • Replace the line String[] extensions = new String[] { "*.*" }; • With this one: String[] extensions = new String[] {"*.oxml", "*.flo", "*.rdf", "*.owl"};
Sample Implementation • Solutions are provided on the CD org.neontoolkit.sample.ontologyimport