際際滷

際際滷Share a Scribd company logo
Whats up with Ontopoly?The Ontopia Topic Maps Editor, http://ontopia.wordpress.com/2010-01-22Geir Ove Gr淡nmo, grove@bouvet.no
What happened?A lot happened between 4.1 and 5.0/5.1It became extremely flexibleCustomizable UIEmbeddableExtensibleSelf descriptiveAll declarations made as topics, occurrences and associations
Customizable and embeddableSpecific customer requirements meant that the editor had to become flexibleneeded a generic menu editorOne can do quite a lot to customize the UIStripped down instance editor can easily embeddeduses AJAX, so no form request parameter collisions
Extensible	Whole application built as a jar-fileall resources loaded through the class loaderstandard Apache Wicket setup in web.xmlSub-class OntopolyApplication to customizepossible now, but needs some refactoring to make it even easier to customize.
Why did it happen?Most of these things happened because of a particular customer that deserves credit:Bergen Kommunehttps://www.bergen.kommune.no/had a lot of interesting real-world requirementsand had the patience to turn them into generic Ontopoly features
TodayIt is pretty clear that very few noticedwhat Ontopoly can do todayMany Hiddenhancements
Its not perfectA few things are still missingBut the foundation is sound
So, heres an in-depth reviewNext slides explains the new features
One instance editing componentAll editing done through same Wicket componenttopic types and instances are equalso is the topic map reifier topic
What is a field?New behaviour: replaced type annotation with pattern matching agains field declarationsA field is a pattern matching a subset of a topics characteristicsmatches a subset of the topics characteristicsmatching primarily by typerole type, association type and other role types in the case of role fieldsdatatypeand scope when we get that far
Fields are first-class citizensField definition typesidentity fieldname fieldoccurrence fieldrole field (and association field)Field definitions are now topicsto make it easier to say things about themand make their declarations more explicitTo make it possible to describe fields properlyfield definitions had to be come first-classavoids reification (of associations)pattern matchingthe stuff in Advanced view illustrates this
Shortcuts (to fields)To allow faster access to all aspects of the modelnot all links are enabled by defaultbecause they are confusing when you dont need themenable shortcuts on the Description page
Field viewsAssigned to a subset of available fieldsConfigurable per view:view modevalue viewBehavior can be context dependentValue view: if parent view is X then field view is YView mode: if view is X then Embedded, Hidden, Not traversable or Read-only
Embedded fieldsPossible to nest instance editorsarbitrary depthcontext dependent (see previous slide)locking of individual topicsNot in n-ary association fields
Multiple topic typesOnly available in Administration modeFor a reasonEditing is done separately by topic typesee Topic types function box
Configurable playersQuery that presents user with list of possible playerstakes field and current topic as parametersSearch interface control uses separate query
Configurable player typesQuery that presents user with a list of possible topic types to create and instance ofdisplayed in * drop-down if multiple
Configurable hierarchiesInstance lists can be rendered as treesDefault is to use Techquila PSIsQuery can override defaultshould return two columns: parent, childreturns all parent child combinationmust order by parent then childenough to build and render a tree
Sortable field valuesFields can be made sortablea check box in the advanced viewstores sort key as occurrence on topic and scoped by field topicUse drag and drop to alter field value ordering
Edit modesWhat players can be assigned to a field:Existing values onlyNew values onlyNo editNormalOwned values (cascading deletes)TODO: should be context dependent?
Create actionsWhen creating a new topic, what should happen?Edit new topic in popup windowGo to new topicNoneTODO: should be context dependent?
View modesGiven a view, then display in one or more view modes:EmbeddedHiddenNot traversable (no links)Read-onlyCan select multiple
Value viewGiven current view, edit field in new viewMaps a parent view to a child view
Ontology annotationNot really new, but useful to mention hereMakes meta-ontology topics visible
Administration modeNo restrictions on editingMakes all topics visibleBe careful!
Improved lockingLock leasingShorter lock periods (4 min default)Renewed every 3 min using ajax timersonly when page is openPrevents object from being locked when no longer being editedLocking enforced on nested embedded instances
New fields editorOn topic type pageDrag and drop field orderingand field value ordering in sortable fieldsCan do the same using the instance editorbut not that user-friendly
Association transformationUsed to repair association instanceswhen the role types change after the associations where createdButton displayed on association type page
Other stuffTries to protect meta-ontologyunless in Adminstration modePluggable access strategyto support authenticationand potentially authorizationnot complete
The futurePlug-insevent listenerstabsinterface controlstriggersquery for matchingupdate for modificationcustomizabilitydrop the ontopoly.jar in and extendCould use jar manifests for discoveryRepresented as topics in the topic map?
The futureQuery fieldsQuery tabs/menutab or meny that displays the result of a query Batch editingby selecting the rows in the queries resultsMerging topicsDuplicate suppressionReificationScope
The futureInterface controls should be more prominentnot only on association fieldsbut also on names and occurrencesSupport identity patternslike prefixes in tologsame feature could also be used with names and occsDefault values on occurrences and rolesImprove CSS to make it easier to customizetableless design
The futureDisplay n-ary fields as tablesTool tips with descriptionson topic links and field labelsAdhoc validation (with TMCL hopefully)
The futureREST interface that exposes JSONCRUD operationswould turn Ontopoly into a document databaseMakes it easy to do custom editors in JavaScriptExternal occurrencesaccessed through REST (e.g. CMIS)get external content and render as field value
The futureBergen kommune went firstFeatures need fundingWhos next?What would you like to see implemented?

More Related Content

Whats Up With Ontopoly?

  • 1. Whats up with Ontopoly?The Ontopia Topic Maps Editor, http://ontopia.wordpress.com/2010-01-22Geir Ove Gr淡nmo, grove@bouvet.no
  • 2. What happened?A lot happened between 4.1 and 5.0/5.1It became extremely flexibleCustomizable UIEmbeddableExtensibleSelf descriptiveAll declarations made as topics, occurrences and associations
  • 3. Customizable and embeddableSpecific customer requirements meant that the editor had to become flexibleneeded a generic menu editorOne can do quite a lot to customize the UIStripped down instance editor can easily embeddeduses AJAX, so no form request parameter collisions
  • 4. Extensible Whole application built as a jar-fileall resources loaded through the class loaderstandard Apache Wicket setup in web.xmlSub-class OntopolyApplication to customizepossible now, but needs some refactoring to make it even easier to customize.
  • 5. Why did it happen?Most of these things happened because of a particular customer that deserves credit:Bergen Kommunehttps://www.bergen.kommune.no/had a lot of interesting real-world requirementsand had the patience to turn them into generic Ontopoly features
  • 6. TodayIt is pretty clear that very few noticedwhat Ontopoly can do todayMany Hiddenhancements
  • 7. Its not perfectA few things are still missingBut the foundation is sound
  • 8. So, heres an in-depth reviewNext slides explains the new features
  • 9. One instance editing componentAll editing done through same Wicket componenttopic types and instances are equalso is the topic map reifier topic
  • 10. What is a field?New behaviour: replaced type annotation with pattern matching agains field declarationsA field is a pattern matching a subset of a topics characteristicsmatches a subset of the topics characteristicsmatching primarily by typerole type, association type and other role types in the case of role fieldsdatatypeand scope when we get that far
  • 11. Fields are first-class citizensField definition typesidentity fieldname fieldoccurrence fieldrole field (and association field)Field definitions are now topicsto make it easier to say things about themand make their declarations more explicitTo make it possible to describe fields properlyfield definitions had to be come first-classavoids reification (of associations)pattern matchingthe stuff in Advanced view illustrates this
  • 12. Shortcuts (to fields)To allow faster access to all aspects of the modelnot all links are enabled by defaultbecause they are confusing when you dont need themenable shortcuts on the Description page
  • 13. Field viewsAssigned to a subset of available fieldsConfigurable per view:view modevalue viewBehavior can be context dependentValue view: if parent view is X then field view is YView mode: if view is X then Embedded, Hidden, Not traversable or Read-only
  • 14. Embedded fieldsPossible to nest instance editorsarbitrary depthcontext dependent (see previous slide)locking of individual topicsNot in n-ary association fields
  • 15. Multiple topic typesOnly available in Administration modeFor a reasonEditing is done separately by topic typesee Topic types function box
  • 16. Configurable playersQuery that presents user with list of possible playerstakes field and current topic as parametersSearch interface control uses separate query
  • 17. Configurable player typesQuery that presents user with a list of possible topic types to create and instance ofdisplayed in * drop-down if multiple
  • 18. Configurable hierarchiesInstance lists can be rendered as treesDefault is to use Techquila PSIsQuery can override defaultshould return two columns: parent, childreturns all parent child combinationmust order by parent then childenough to build and render a tree
  • 19. Sortable field valuesFields can be made sortablea check box in the advanced viewstores sort key as occurrence on topic and scoped by field topicUse drag and drop to alter field value ordering
  • 20. Edit modesWhat players can be assigned to a field:Existing values onlyNew values onlyNo editNormalOwned values (cascading deletes)TODO: should be context dependent?
  • 21. Create actionsWhen creating a new topic, what should happen?Edit new topic in popup windowGo to new topicNoneTODO: should be context dependent?
  • 22. View modesGiven a view, then display in one or more view modes:EmbeddedHiddenNot traversable (no links)Read-onlyCan select multiple
  • 23. Value viewGiven current view, edit field in new viewMaps a parent view to a child view
  • 24. Ontology annotationNot really new, but useful to mention hereMakes meta-ontology topics visible
  • 25. Administration modeNo restrictions on editingMakes all topics visibleBe careful!
  • 26. Improved lockingLock leasingShorter lock periods (4 min default)Renewed every 3 min using ajax timersonly when page is openPrevents object from being locked when no longer being editedLocking enforced on nested embedded instances
  • 27. New fields editorOn topic type pageDrag and drop field orderingand field value ordering in sortable fieldsCan do the same using the instance editorbut not that user-friendly
  • 28. Association transformationUsed to repair association instanceswhen the role types change after the associations where createdButton displayed on association type page
  • 29. Other stuffTries to protect meta-ontologyunless in Adminstration modePluggable access strategyto support authenticationand potentially authorizationnot complete
  • 30. The futurePlug-insevent listenerstabsinterface controlstriggersquery for matchingupdate for modificationcustomizabilitydrop the ontopoly.jar in and extendCould use jar manifests for discoveryRepresented as topics in the topic map?
  • 31. The futureQuery fieldsQuery tabs/menutab or meny that displays the result of a query Batch editingby selecting the rows in the queries resultsMerging topicsDuplicate suppressionReificationScope
  • 32. The futureInterface controls should be more prominentnot only on association fieldsbut also on names and occurrencesSupport identity patternslike prefixes in tologsame feature could also be used with names and occsDefault values on occurrences and rolesImprove CSS to make it easier to customizetableless design
  • 33. The futureDisplay n-ary fields as tablesTool tips with descriptionson topic links and field labelsAdhoc validation (with TMCL hopefully)
  • 34. The futureREST interface that exposes JSONCRUD operationswould turn Ontopoly into a document databaseMakes it easy to do custom editors in JavaScriptExternal occurrencesaccessed through REST (e.g. CMIS)get external content and render as field value
  • 35. The futureBergen kommune went firstFeatures need fundingWhos next?What would you like to see implemented?