From OWL to Plone

I found a working path to transform an OWL ontology into a working Plone content-type. Here is my recipe :

  1. Choose any existing OWL ontology
  2. With Protege equipped with its OWL plugin, create a new project from your OWL file.
  3. Still within Protege, with the help of its UML plugin, convert your OWL-Protege project into a UML classes project. You get an XMI file.
  4. Load this XMI file into an UML project with Poseidon. Save this project under the .zuml Poseidon format.
  5. From poseidon, export your classes a new xmi file. It will be Plone-friendly.
  6. With a text editor, delete some accentuated characters that Poseidon might have added to your file (for example, the Frenchy Poseidon adds a badly accentuated “Modele sans titre” attribute into your XMI) because the next step won’t appreciate them
  7. python Archgenxml.py -o YourProduct yourprojectfile.xmi turns your XMI file into a valid Plone product. Requires Plone and Archetypes (see doc) latest stable version plus ArchgenXML head from the subversion repository.
  8. Launch your Plone instance and install YourProduct as a new product from your Plone control panel. Enjoy YourProduct !
  9. eventually populate it with an appropriate marshaller.

Now you are not far from using Plone as a semantic aggregator.

Related posts brought to you by Yet Another Related Posts Plugin.

10 Responses to “From OWL to Plone”

  1. owl-ontology Says:

    Export an OWL ontology into a working Plone content-type

    Transform an OWL ontology into a working Plone content-type.

  2. Alexis Liarokapis Says:

    I tried your procedure, but I have many parser errors.

    Can I obtain a working example (owl and xmi file) and the version of each used software ?

  3. Sig Says:

    I use :
    - Protege version 3.1 beta (build 176) with its OWL plugin and its UML backend plugin
    - Poseidon Community Edition version 3.0
    - Zope v.2.7.5
    - Plone v.2.0.5
    - Archetypes v.1.3.2-final
    - Latest ArchgenXML and Marshall from SVN (currently revision 4256)

    Before I send you some files, could you please indicate at which step in this procedure you get parser errors ? Which piece of software issues these errors ?

  4. AkaSig » Blog Archive » Daisy vs. Plone, feature fighting Says:

    [...] upload your structured semantic content with Marshall plus additional hacks as I mentioned somewhere else. * a high-level, sql-like query language provides flexible querying without knowing the details o [...]

  5. AkaSig » Blog Archive » Comparator Says:

    [...] d on Archetypes and was built from an UML diagram with ArchgenXML. Comparator fits well in my vision of semantic agregation. I hope you can see how. Comments welcome ! This entry [...]

  6. tester Says:

    When i install a product, what am i expecting to see? I installed the product i took from file SimpleSample.xmi (C:\Program Files\Protege_3.2.1\ArchGenXML\samples).. What should i see in this case? Thanks!

  7. chrysostomos Says:

    We are working on a project for the University of Thessaly (Greece). Does anyone have an idea of how to implement the ontology of Plone? Does anybody know if it is already implemented?

  8. Sig Says:

    tester,

    Once you have archgenxml and an .xmi file, you are supposed to do a python Archgenxml.py -o YourProduct yourprojectfile.xmi as a result of which you obtain a working Plone product called YourProduct. When you install YourProduct and restart Plone, you should now be able to add instances of the content types declared in YourProduct into Plone folders. If this is not the case, check in ZMI/Control Panel/Products that YourProduct is detected by Zope and not broken. Then check in your Plone instance/site setup/Add-remove products that YourProduct has been installed. Then if you still can’t see any new content type in the “add to folder” menus of your home Plone folder, then maybe YourProduct does not declare content types properly. Check in the ZMI/Plone instance/portal_types tool that new types have been added. If this is not the case, then ask for support to the plone-users mailing list.

    Chrysostomos, what do you call “the ontology of Plone”? What is such a thing? I know of PloneOntology being an additional Plone product but I have not tested it any further than installing it and playing with it very briefly. There are various Plone products referring to ontologies but I don’t know exactly what you want to do. Please clarify your request.

  9. Cecelia Hickel Says:

    Greetings,

    I am wondering if you have used more current versions of Protege, Plone, Archetypes, ArchgenXML and Marshall following this same procedure? Has there been improvements or changes? I am very much interested in pursuing this process further. I find your thoughts and ideas a kindred spirit of my own.

    I have a connection to the Protege development group and to an ontology group/forum. Does this interest you?

  10. Sig Says:

    Thanks for your comment Cecelia.

    I have not retried this procedure recently. I am once again working with latest versions of Plone, Archetypes and ArchGenXML for another project but I have no current need for doing the OWL-to-Plone transformation once again (Im starting with an UML model, not an ontology). Id be very much interested in knowing the results of your experiments if you try the whole procedure with recent versions of Protege (or other).

    The most notable changes I can imagine are about Poseidon (the UML modeller). You should try using ArgoUML instead of Poseidon. Poseidon is a commercial product for which there no longer is a free version easily triable. <a href=”http://argouml.tigris.org/” rel=”nofollow”>ArgoUML</a> (open source) should do the trick unless it chokes on Protege’s XMI format. You’ll tell me. :)

    The Plone stack has kept on maturing so you may enjoy additional features on this side. There is a Plone extension product that may serve as a basis for automating this procedure: <a href=”http://plone.org/products/feedfeeder” rel=”nofollow”>feedfeeder</a>. Currently feedfeeder creates live Plone content from <a href=”http://en.wikipedia.org/wiki/Atom_%28standard%29″ rel=”nofollow”>Atom</a> feeds (it instantiates articles from their Atom description). But allowing feedfeeder to have ArchGenXML processing XMI feeds might be doable. <a href=”http://vanrees.org/” rel=”nofollow”>Reinout Van Rees</a> might be interested in providing some support for this.

    Note also that <a href=”http://vanrees.org/weblog/topics/archgenxml” rel=”nofollow”>a successor to ArchGenXML is being worked on as part of a Google Summer Of Code project. This successor is called Genesis</a>. The guy working on Genesis may release something in September or so. He seems to have some good expertise in the field of code generation so he may be of good advice for your work.

    Whatever issue you encounter in your experiment please keep me and readers informed by posting comments here ! :)

Leave a Reply