Difference between revisions of "Tutorial: Ontology Development"
m |
m |
||
Line 80: | Line 80: | ||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6 | Bundle-RequiredExecutionEnvironment: JavaSE-1.6 | ||
Require-Bundle: org.simantics.layer0;bundle-version="1.0.0" | Require-Bundle: org.simantics.layer0;bundle-version="1.0.0" | ||
− | Export-Package: com.acme | + | Export-Package: com.acme.ontology |
</pre> | </pre> | ||
=== Developing the ontology === | === Developing the ontology === | ||
Open Movie.pgraph and start editing. | Open Movie.pgraph and start editing. | ||
+ | |||
+ | As you are using Layer0 concepts, it is a good idea to capture its namespace: | ||
+ | L0 = <http://www.simantics.org/Layer0-1.0> | ||
+ | |||
+ | Your acme company has a namespace which is used . You are creating a ''new'' one so it must be stated. | ||
+ | <http://com.acme> : L0.Library | ||
+ | @L0.new | ||
+ | |||
+ | The ontology has a representing resource, an instance of L0.Ontology. Don't forget to add stub-compiler metadata L0.HasResourceClass. | ||
+ | Movie = <http://com.acme/Movie-1.0> : L0.Ontology | ||
+ | L0.HasResourceClass "com.acme.ontology.Movie" |
Revision as of 15:25, 6 October 2010
Contents
Step 1: Ontology Plug-in
Ontologies are encapsulated in OSGi bundles. In eclipse we develop them as equinox plug-ins. It contains ontology sources (graph/*.pgraph), compiled graph file (graph.tg), and Java resource files (src and bin).
Open a New Plug-in Project wizard:
- Select File >> New >> Plug-in Development >> Plug-in Project
Our organization is Acme Software ltd and from there is our plug-in name derived, com.acme.movie.ontology. Insert that as project name. In the following page you should know that this plugin does not contribute to UI, does not need activator or isn't a rich client application.
Setup Graph Building Nature
Next, add Graph builder into the project nature. You need to modify a file called workspace/com.acme.movie.ontology/.project, and to do this Eclipse must be closed for changes to apply.
The file look like this:
<?xml version="1.0" encoding="UTF-8"?> <projectDescription> <name>com.acme.movie.ontology</name> <comment></comment> <projects> </projects> <buildSpec> <buildCommand> <name>org.eclipse.jdt.core.javabuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>org.eclipse.pde.ManifestBuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>org.eclipse.pde.SchemaBuilder</name> <arguments> </arguments> </buildCommand> </buildSpec> <natures> <nature>org.eclipse.pde.PluginNature</nature> <nature>org.eclipse.jdt.core.javanature</nature> </natures> </projectDescription>
Add the following insertions:
<buildSpec> <buildCommand> <name>org.simantics.graph.builder</name> <arguments> </arguments> </buildCommand> ...
and
<natures> <nature>org.simantics.graph.nature</nature> ...
Good, fire up the Eclipse again. If everything went well "Graph Builder" ought to be visibile in the properties of the project file. Like so:
Also create dictory called graphs, and there a file Movie.pgraph.
Configure MANIFEST.MF
Your ontology well depend on Layer0, so open META-INF/MANIFEST.MF in a editor and add org.simantics.layer0 to plug-in dependencies.
Also, you are going to
- Export package com.acme.movie.ontology
Your MANIFEST.MF should look like this.
Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Ontology Bundle-SymbolicName: com.acme.movie.ontology Bundle-Version: 1.0.0.qualifier Bundle-Vendor: ACME Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Require-Bundle: org.simantics.layer0;bundle-version="1.0.0" Export-Package: com.acme.ontology
Developing the ontology
Open Movie.pgraph and start editing.
As you are using Layer0 concepts, it is a good idea to capture its namespace:
L0 = <http://www.simantics.org/Layer0-1.0>
Your acme company has a namespace which is used . You are creating a new one so it must be stated.
<http://com.acme> : L0.Library @L0.new
The ontology has a representing resource, an instance of L0.Ontology. Don't forget to add stub-compiler metadata L0.HasResourceClass.
Movie = <http://com.acme/Movie-1.0> : L0.Ontology L0.HasResourceClass "com.acme.ontology.Movie"