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: [email protected]
> 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
> > > >> [email protected]
> > > >> http://simile.mit.edu/mailman/listinfo/general
> > > >>
> > > >>
> > > > _______________________________________________
> > > > General mailing list
> > > > [email protected]
> > > > http://simile.mit.edu/mailman/listinfo/general
> > > >
> > >
> > >_______________________________________________
> > >General mailing list
> > >[email protected]
> > >http://simile.mit.edu/mailman/listinfo/general
> > >
> > >
> > >_______________________________________________
> > >General mailing list
> > >[email protected]
> > >http://simile.mit.edu/mailman/listinfo/general
> >
> > _______________________________________________
> > General mailing list
> > [email protected]
> > http://simile.mit.edu/mailman/listinfo/general
> >
> _______________________________________________
> General mailing list
> [email protected]
> http://simile.mit.edu/mailman/listinfo/general
> 
> 
> _______________________________________________
> General mailing list
> [email protected]
> http://simile.mit.edu/mailman/listinfo/general

_________________________________________________________________
Free games, great prizes - get gaming at Gamesbox. 
http://www.searchgamesbox.com
_______________________________________________
General mailing list
[email protected]
http://simile.mit.edu/mailman/listinfo/general

Reply via email to