Hi All,
Currently I'm working towards implementing a taxonomy feature for the
ES/G-Reg [1]. This feature will allow store users to filter assets by
using a controlled vocabulary implemented as a hierarchical taxonomy
[2].An example of this feature in the wild is the Amazon web store.
Our implementation will allow store users to filter using multiple
taxonomies. Taxonomies can be configured using two methods
1. Defining taxonomies within the Registry Extension (RXT) file
- This will define taxonomies applicable to a given asset type
2. Defining the RXT names inside the taxonomy file.
- This will define RXT names that applied to taxonomies
To archive this admin can define asset specific taxonomies. Apart from
that, there is a concept called global taxonomies. That is specific
taxonomy will be applied for all asset types.
The problem is : *Identifying what are the global taxonomies and give admin
to enable/disable global taxonomies without auto inhering for all asset
types.*
*[Architecture]*
*Scenario 1*
Define RXT types inside taxonomy files and consider any taxonomy file
without RXT type details as global taxonomy.
- Map defined RXT names with taxonomies.
*Pros*
- We can have all meta data inside one taxonomy file.
*Cons*
- We can't disable one specific global taxonomy file for an asset type.
*Scenario 2*
Define applicable taxonomy names inside RXT
- Map defined taxonomies with RXT names. And consider undefined taxonomy
files as global taxonomies.
*Pros*
- Maintain will be easy. for an example if we delete a RXT, all
configuration will be deleted. Otherwise we have to handle remove
configurations.
*Cons*
- To identify global taxonomies , we have to go through each and every
RXT and compare those, then find undefined taxonomies. Complexity will be
high since we have to read RXTs and taxonomy files.
- We don't have control over the global taxonomy rendering . as
mentioned scenario.
[1] -
https://docs.google.com/a/wso2.com/document/d/1tY_0nKSp7P3foMhJo5QgPXhDuKpijjqwsPqgWemajn8/edit?usp=sharing
<https://docs.google.com/a/wso2.com/document/d/1tY_0nKSp7P3foMhJo5QgPXhDuKpijjqwsPqgWemajn8/edit?usp=sharing>
[2] - https://drive.google.com/open?id=0B3g2dbYJKH96TWJzVEszLUY4dms
Please advise what is the most appropriate way to do this.
Regards
--
*Lahiru J Ekanayake**Software Engineer*
Mobile : +94 (0) 77 8812629 / +94(0) 778509547
Email : [email protected]
WSO2, Inc.; http://wso2.com/
lean . enterprise . middleware.
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture