Hi Neil, Donat, Terry, and Mark, Thank you for your discussion here! I think that has gotten me enough information to start prototyping something... If you have a chance, please provide some sizable data files for me to test out my prototype (I don't know your data domains well enough to make up realistic examples).
I have also quickly made a wiki page on this topic: http://simile.mit.edu/wiki/Exhibit/Scratchpad/Hierarchical_Facets It has pretty much nothing in it and is meant to be a place where you can rendezvous on this topic, if you think that's a better place for rendezvous than this mailing list. It might also be helpful to start documenting this new facet class. (By all means, please continue your discussion even while I'm prototyping...) Thanks, David Neil Ireson wrote: > Hi all, > > I too would like to use hierarchical facets thus I'm interested in > your requirements. So I thought I might try to understand your problem > and document my thoughts to see if my understanding of your needs is > correct, this also kind of follows on from some email conversation > I've had with David. > > In terms of representation I imagine you would have something like: > > items : [ > { type : "Species", label : "F. rufa", genus : "Formica"}, > { type : "Genus", label : "Formica", family : "Formicidae"}, > { type : "Family", label : "Formicidae", order : "Hymenoptera"}, > { type : "Order", label : "Hymenoptera", class : "Insecta"}, > { type : "Class", label : "Insecta", phylum : "Arthropoda"}, > { type : "Phylum", label : "Arthropoda", kingdom : "Animalia"}, > { type : "Kingdom", label : "Animalia"} > ] > > It would then be possible to insert other items in the tree > > { type : "Species", label : "C. pennsylvanicus", genus : "Camponotus"}, > { type : "Genus", label : "Camponotus", family : "Formicidae"} > > The hierarchical facet would then be defined along the lines of: > > collectionID: 'species-collection', > facetClass: 'Exhibit.HierarchicalFacet', > expression: '.label', > groupBy : ".genus;.family;.order;.class;.phylum;.kingdom" > > Actually I can see a problem with this as if you wished to insert any > intermediate rankings (e.g. tribe, suborder, subfamily) then this > would break the hierarchy as the groupBy path is no longer valid for > all leaves of the tree. Also having to explicitly specify the > connections between the hierarchical levels means that the hierarchy > has to be a tree rather than a DAG as was requested by Mark Feblowitz. > So instead we could have: > > items : [ > { type : "Species", label : "F. rufa", subTypeOf : "Formica"}, > { type : "Species", label : "C. pennsylvanicus", subTypeOf : > "Camponotus"}, > { type : "Genus", label : "Formica", subTypeOf : "Formicidae"}, > { type : "Genus", label : "Camponotus", subTypeOf : "Formicinae"} > { type : "Subfamily", label : "Formicinae", subTypeOf : "Formicidae"} > { type : "Family", label : "Formicidae", subTypeOf : "Hymenoptera"}, > { type : "Order", label : "Hymenoptera", subTypeOf : "Insecta"}, > { type : "Class", label : "Insecta", subTypeOf : "Arthropoda"}, > { type : "Phylum", label : "Arthropoda", subTypeOf : "Animalia"}, > { type : "Kingdom", label : "Animalia"} > ] > > The hierarchical facet would then be defined along the lines of: > > collectionID: 'species-collection', > facetClass: 'Exhibit.HierarchicalFacet', > expression: '.label', > groupBy : ".subTypeOf" > > So basically what we are defining is the start nodes of a graph (the > leaf nodes if it is a tree), i.e. the items with a type Species, and > the edges which will be followed (.subtypeof) to build up the graph. > There is a danger that with such a representation it is possible to > define a recursive loop in the graph (i.e. A subtypeof B, B subtypeof > A). It should be upto the user to ensure such loops do not exist. > > An issue with this representation is that in the facet the subtypes of > a type may be a different level. For example, from the above data. > > - Formicidae > - Formicinae > - Camponotus > - C. pennsylvanicus > - Formica > - F. rufa > > Therefore the subtypes of Formicidae are Formicinae, which is a > subfamily, and Formica, which is a Genus. I suppose if this is a > problem, then it is necessary to differentiate the node types in the > graph/tree. The easiest way to let the user know this differentiation > would be to simply add the type name to the labels, i.e. > > items : [ > { type : "Species", label : "Species: F. rufa", subTypeOf : "Genus: > Formica"}, > { type : "Species", label : "Species: C. pennsylvanicus", subTypeOf : > "Genus: Camponotus"}, > { type : "Genus", label : "Genus: Formica", subTypeOf : "Family: > Formicidae"}, > { type : "Genus", label : "Genus: Camponotus", subTypeOf : "Subfamily: > Formicinae"} > { type : "Subfamily", label : "Subfamily: Formicinae", subTypeOf : > "Family: Formicidae"} > { type : "Family", label : "Family: Formicidae", subTypeOf : "Order: > Hymenoptera"}, > { type : "Order", label : "Order: Hymenoptera", subTypeOf : "Class: > Insecta"}, > { type : "Class", label : "Class: Insecta", subTypeOf : "Phylum: > Arthropoda"}, > { type : "Phylum", label : "Phylum: Arthropoda", subTypeOf : "Kingdom: > Animalia"}, > { type : "Kingdom", label : "Kingdom: Animalia"} > ] > > If it was the case that nodes could belong to multiple hierarchies, > for example if there was more than one scientific classification which > you wished to display in different facets, then you would have to > define an edge property (e.g. subType2Of) for each hierarchy. > > My 2p worth > > N > > > > From: [EMAIL PROTECTED] > > To: general@simile.mit.edu > > Subject: RE: Hierarchical facets (was RE: new exibit on madagascar ants) > > Date: Thu, 13 Dec 2007 00:43:09 +0100 > > > > Any sort of such hierarachical facets ought to be extendable, so > that one > > could easily insert a subgenus name? This inbetween levels exist - > so better > > keep them in mind, even if they re not implemented yet. > > > > Donat > > > > > > -----Original Message----- > > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] > > On Behalf Of Terry Catapano > > Sent: Thursday, December 13, 2007 12:39 AM > > To: General List > > Subject: Re: Hierarchical facets (was RE: new exibit on madagascar ants) > > > > How about something like this: > > > > name: "Formica rufa" > > name1: "Formica" > > name1rank: "Genus" > > name2: "rufa" > > name2rank: "Species" > > > > This ought to be enough to group all the items with name2rank = > > "Species" by name1rank = "Genus" > > > > Subspecies would be a name3rank, groupable under name2rank... > > > > I'm sure there's exceptions which would break this, but it's a start > > > > /Terry > > > > > > > > > > On Dec 12, 2007 5:35 PM, Mark Feblowitz <[EMAIL PROTECTED]> > wrote: > > > This kind of facet hierarchy would work for me, so long as the > > > hierarchies are not constrained to be trees (i.e., and DAG will do), > > > to preserve the ability for a thing to be multiply categorized (like > > > Protege OWL handles its classes in the class browser). > > > > > > Of course, the presentations will be important. The obvious would be > > > explorer-style tree. Others? > > > > > > Mark > > > > > > At 09:41 AM 12/12/2007, you wrote: > > > >Hi David > > > > > > > >Terry will tell you his opinion - here my 2p as a systematist. > > > > > > > > > > > >As a systematist, I am working with hierarchies, > > > > > > > >Subspecies > > > > Species > > > > Genus > > > > Family > > > > Up > > > > > > > >Check out > > > > > > >http://atbi.biosci.ohio-state.edu:210/hymenoptera/db_entry.by_taxon?taxon_n > > ame=2506&module=list_children2_html&text_entry= > > > > > > > >And there you can go down to children, or up the hierarchy to > partents. > > > > > > > >But I am also working with synonyms, such as can be seen for > Formica rufa > > > > > > > > > > >http://atbi.biosci.ohio-state.edu:8880/hymenoptera/nomenclator.name_entry?t > > ext_entry=Formica+rufa&Submit=Submit+Query > > > > > > > > > > > >Behind any of those names is a part (treatment) in a systematics > > > >publication, which we are using as baseline for our facets. > > > > > > > >Here is also a little instructive movie explaining the issue of > synonyms, > > > >taxonomic concepts, etc. > > > >http://www.youtube.com/watch?v=yA_9zofX1ME > > > > > > > >Does this make sense? > > > > > > > >Donat > > > > > > > > > > > > > > > >-----Original Message----- > > > >From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] > > > >On Behalf Of David Huynh > > > >Sent: Wednesday, December 12, 2007 2:26 AM > > > >To: General List > > > >Subject: Re: new exibit on madagascar ants > > > > > > > >Hi Terry, > > > > > > > >Could you just represent the data as you naturally/intuitively would? > > > >I'd be interested to know what's natural/intuitive for you. > > > > > > > >David > > > > > > > >Terry Catapano wrote: > > > > > David, > > > > > > > > > > I could provide you with an exhibit of species descriptions in > which > > > > > the species should be grouped under genera. How should the > > > > > hierarchical facets be represented in the JSON data? > > > > > > > > > > /Terry > > > > > > > > > > On Dec 8, 2007 6:35 PM, David Huynh <[EMAIL PROTECTED]> wrote: > > > > > > > > > >> Mark Feblowitz wrote: > > > > >> > > > > >>> I strongly second this. Simple facets push all such natural > > > > >>> hierarchies into much less natural property structures. I > suspect > > > > >>> many of us would appreciate some kind of hierarchical > representation > > of > > > >facets. > > > > >>> > > > > >>> > > > > >> Let's work together on this: If you could provide me with an > exhibit > > > > >> with data in need of hierarchical facets and tell me how such > facets > > > > >> should work, then I'll try to implement it. It's always better to > > work > > > > >> with realistic data. > > > > >> > > > > >> > > > > >>> While we're waiting, are there any good examples out there > of using > > > > >>> properties as a surrogate to facet structuring? > > > > >>> > > > > >>> > > > > >> I'm not sure what you meant... Could you explain? > > > > >> > > > > >> David > > > > >> > > > > >> _______________________________________________ > > > > >> General mailing list > > > > >> General@simile.mit.edu > > > > >> http://simile.mit.edu/mailman/listinfo/general > > > > >> > > > > >> > > > > > _______________________________________________ > > > > > General mailing list > > > > > General@simile.mit.edu > > > > > http://simile.mit.edu/mailman/listinfo/general > > > > > > > > > > > > >_______________________________________________ > > > >General mailing list > > > >General@simile.mit.edu > > > >http://simile.mit.edu/mailman/listinfo/general > > > > > > > > > > > >_______________________________________________ > > > >General mailing list > > > >General@simile.mit.edu > > > >http://simile.mit.edu/mailman/listinfo/general > > > > > > _______________________________________________ > > > General mailing list > > > General@simile.mit.edu > > > http://simile.mit.edu/mailman/listinfo/general > > > > > _______________________________________________ > > General mailing list > > General@simile.mit.edu > > http://simile.mit.edu/mailman/listinfo/general > > > > > > _______________________________________________ > > General mailing list > > General@simile.mit.edu > > http://simile.mit.edu/mailman/listinfo/general > > ------------------------------------------------------------------------ > She said what? About who? Shameful celebrity quotes on Search Star! > <http://www.msnsearchstar.com> > ------------------------------------------------------------------------ > > _______________________________________________ > General mailing list > General@simile.mit.edu > http://simile.mit.edu/mailman/listinfo/general > _______________________________________________ General mailing list General@simile.mit.edu http://simile.mit.edu/mailman/listinfo/general