Subcategories on Hackage

Hi, There are some categories on Hackage that have become so large that it is hard to find something, i.e. Data(414 packages) and Graphics (191). Thats why I suggest to use subcategories separated from the category with a dot. To show that this makes sense I made subcategories for graphics libraries at the end of this email. Whatever happens to hackage2 this would be an immediate improvement. How ------ I would volunteer for the manual categorization and let the community look over it. I could upload the changes with a script but the version number has to increase even if only the category has changed. I also don't want to be responsible for a massive spike in the upload statistics. Shouldn't the cabal file be excluded from the versioning policy? => It is allowed to upload a library with the same version number if only the cabal file has changed. One should write a notifiaction mail to all owners to reply if they don't agree. Then after a week executing the script that applies the changes. Categories for Graphics: Graphics.2d bacteria program: braindead utility to compose Xinerama backgrounds barchart library and program: Creating Bar Charts in Haskell chalkboard library and programs: Combinators for building and processing 2D images. chalkboard-viewer library: OpenGL based viewer for chalkboard rendered images. Chart library: A library for generating 2D Charts and Plots dia-base library: An EDSL for teaching Haskell with diagrams - data types dia-functions library: An EDSL for teaching Haskell with diagrams - functions diagrams library: Embedded domain-specific language for declarative vector graphics diagrams-cairo library: Cairo backend for diagrams drawing EDSL diagrams-core library: Core libraries for diagrams EDSL diagrams-lib library: Embedded domain-specific language for declarative graphics explore program: Experimental Plot data Reconstructor funcmp library: Functional MetaPost gloss library: Painless 2D vector graphics, animations and simulations. gloss-examples programs: Examples using the gloss library GoogleChart library: Generate web-based charts using the Google Chart API graphics-drawingcombinators library: A functional interface to 2D drawing in OpenGL haha library and program: A simple library for creating animated ascii art on ANSI terminals. HDRUtils library: Utilities for reading, manipulating, and writing HDR images hevolisa program: Genetic Mona Lisa problem in Haskell hevolisa-dph program: Genetic Mona Lisa problem in Haskell - using Data Parallel Haskell Hieroglyph library: Purely functional 2D graphics for visualization. HPlot library and program: A minimal monadic PLplot interface for Haskell hs-captcha library: Generate images suitable for use as CAPTCHAs in online web-form security. hs-gchart library: Haskell wrapper for the Google Chart API hsparklines library: Sparklines for Haskell internetmarke program: Shell command for constructing custom stamps for German Post plot library: A plotting library, exportable as eps/pdf/svg/png or renderable with gtk plot-gtk library: GTK plots and interaction with GHCi printxosd program: Simple tool to display some text on an on-screen display scaleimage program: Scale an image to a new geometry testpattern program: Display a monitor test pattern wumpus-basic library: Basic objects and system code built on Wumpus-Core. wumpus-core library: Pure Haskell PostScript and SVG generation. wumpus-drawing library: High-level drawing objects built on Wumpus-Basic. wumpus-microprint library: Microprints - "greek-text" pictures. wumpus-tree library: Drawing trees zsh-battery program: Ascii bars representing battery status Graphics.3d Attrac program: Visualisation of Strange Attractors in 3-Dimensions cal3d library: Haskell binding to the Cal3D animation library. cal3d-examples programs: Examples for the Cal3d animation library. cal3d-opengl library: OpenGL rendering for the Cal3D animation library FieldTrip library: Functional 3D gnuplot library and program: 2D and 3D plots using gnuplot HGL library: A simple graphics library based on X11 or Win32 hgl-example program: Various animations generated using HGL IcoGrid library: Library for generating grids of hexagons and pentagons mapped to a sphere. nymphaea program: An interactive GUI for manipulating L-systems reactive-fieldtrip library: Connect Reactive and FieldTrip reactive-glut library: Connects Reactive and GLUT Graphics.Fractal fractal program: Draw Newton, Julia and Mandelbrot fractals gmndl program: Mandelbrot Set explorer using GTK hfractal program: OpenGL fractal renderer mandulia program: A zooming visualisation of the Mandelbrot Set as many Julia Sets. Graphics.Raytracing glintcollider program: A simple ray tracer in an early stage of development. glome-hs library and program: ray tracer GlomeTrace library: Ray Tracing Library GlomeVec library: Simple 3D vector library HRay program: Haskell raytracer jort program: JP's own ray tracer Graphics.Layout graph-rewriting-layout library: Force-directed node placement intended for incremental graph drawing pango library: Binding to the Pango text rendering engine. Graphics.Algorithm triangulation library: triangulation of polygons splines library: B-Splines, other splines, and NURBS. Graphics.RasterFormats AC-PPM library: Trivial package for writing PPM images. bitmap library: A library for handling and manipulating bitmaps. bitmap-opengl library: OpenGL support for Data.Bitmap. exif library: A Haskell binding to a subset of libexif fig library: Manipulation of FIG files graphicsFormats library: Classes for renderable objects. hsmagick library: FFI bindings for the GraphicsMagick library Imlib library jpeg library: A library for decoding JPEG files written in pure Haskell pgm library: Pure Haskell implementation of PGM image format SDL-image library: Binding to libSDL_image stb-image library: A wrapper around Sean Barrett's JPEG/PNG decoder tga library: Reading and writing of tga image files Graphics.VectorFormats cairo library: Binding to the Cairo library. craftwerk library and programs: 2D graphics library with integrated TikZ output. craftwerk-cairo library: Cairo backend for Craftwerk. craftwerk-gtk library and program: Gtk UI for Craftwerk. HPDF library: Generation of PDF documents hps library: Haskell Postscript hps-cairo library: Cairo rendering for the haskell postscript library HsHaruPDF library: Haskell binding to libharu (http://libharu.sourceforge.net/) poppler library: Binding to the Poppler. svgcairo library: Binding to the libsvg-cairo library. SVGPath library: Parsing the path command from SVG svgutils library and program: Helper functions for dealing with SVG files Graphics.3dFormats collada-output library and program: Generate animated 3d objects in COLLADA collada-types library: data exchange between graphic applications graphics-formats-collada library: Load 3D geometry in the COLLADA format obj library: Reads and writes obj models. Graphics.Engine (OpenGL and libraries that make it easier to use OpenGL) GLURaw library: A raw binding for the OpenGL graphics system GLUT library: A binding for the OpenGL Utility Toolkit GLFW library: A Haskell binding for GLFW GLFW-b library: GLFW bindings GLFW-b-demo program: GLFW-b test\/example\/demo GLFW-OGL library: A binding for GLFW (OGL) GPipe library: A functional graphics API for programmable GPUs GPipe-Collada library: Load GPipe meshes from Collada files GPipe-Examples programs: Examples for the GPipes package GPipe-TextureLoad library: Load GPipe textures from filesystem hogre library: Haskell binding to a subset of OGRE hogre-examples programs: Examples for using Hogre. haskgame library: Haskell game library. IrrHaskell library: Haskell FRP binding to the Irrlicht game engine. lambdacube-bullet program: Example for combining LambdaCube and Bullet lambdacube-engine library: 3D rendering engine entirely written in Haskell lambdacube-examples programs: Examples for LambdaCube nehe-tuts programs: Port of the NeHe OpenGL tutorials to Haskell. OGL library: A context aware binding for the OpenGL graphics system OpenGL library: A binding for the OpenGL graphics system OpenGLCheck library: Quickcheck instances for various data structures. OpenGLRaw library: A raw binding for the OpenGL graphics system OpenGLRaw21 library: The intersection of OpenGL 2.1 and OpenGL 3.1 Core rsagl library: The RogueStar Animation and Graphics Library scenegraph library: Scene Graph Graphics.Fonts font-opengl-basic4x6 library and program: Basic4x6 font for OpenGL freetype2 library and program: Haskell binding for FreeType 2 library FTGL library: Portable TrueType font rendering for OpenGL using the Freetype2 library SDL-ttf library: Binding to libSDL_ttf SFont library: SFont SDL Bitmap Fonts stb-truetype library: A wrapper around Sean Barrett's TrueType rasterizer library. SVGFonts library and program: Fonts from the SVG-Font format Graphics.OSspecific GLHUI library: Open OpenGL context windows in X11 with libX11 ige-mac-integration library: Bindings for the Gtk/OS X integration library. minimung program: Shows how to run grabber on Mac OS X Win32 library: A binding to part of the Win32 library X11 library: A binding to the X11 graphics library X11-extras library: Missing bindings to the X11 graphics library X11-rm library: A binding to the resource management functions missing from X11. X11-xdamage library: A binding to the Xdamage X11 extension library X11-xfixes library: A binding to the Xfixes X11 extension library X11-xft library: Bindings to the Xft, X Free Type interface library, and some Xrender parts x11-xim library: A binding to the xim of X11 graphics library X11-xshape library: A binding to the Xshape X11 extension library Xauth library: A binding to the X11 authentication library xhb library: X Haskell Bindings xosd library: A binding to the X on-screen display Graphics.UserInterfaces glade library: Binding to the glade library. gtk library: Binding to the Gtk+ graphical user interface library. gtk-serialized-event library: GTK+ Serialized event. gtkglext library: Binding to the GTK+ OpenGL Extension gtkimageview library: Binding to the GtkImageView library. gtksourceview2 library: Binding to the GtkSourceView library. lui library: Purely FunctionaL User Interface soegtk library: GUI functions as used in the book "The Haskell School of Expression". Graphics.Vector AC-Vector library: Efficient geometric vectors and transformations. AC-Vector-Fancy library: Fancy type-system stuff for AC-Vector Vec-OpenGLRaw library: Instances and functions to interoperate Vec and OpenGL. Vec-Transform library: Extends the Vec package with some 4x4 transform matrices vect library: A low-dimensional linear algebra library, tailored to computer graphics. vect-opengl library: OpenGL support for the `vect' low-dimensional linear algebra library. Graphics.Visualization graphviz library and program: Graphviz bindings for Haskell. hubigraph library: A haskell wrap for Ubigraph splot program: A tool for visualizing the lifecycle of many concurrent multi-staged processes. timeplot program: A tool for visualizing time series from log files. Games HTicTacToe program: An SDL tic-tac-toe game. Graphics (not subcategorized yet) AC-Colour library: Efficient RGB colour types. AC-EasyRaster-GTK library: GTK+ pixel plotting. assimp library: The Assimp asset import library Chitra program: A platform independent mechanism to render graphics using vnc. colour library: A model for human colour/color perception CV library: OpenCV based machine vision library cv-combinators library and programs: Functional Combinators for Computer Vision derivation-trees library: Typeset Derivation Trees via MetaPost gd library: A Haskell binding to a subset of the GD graphics library ghci-diagrams library: Display simple diagrams from ghci graph-rewriting-gl library: OpenGL interface for interactive port graph rewriting HOpenCV library and program: A binding for the OpenCV computer vision library IFS library and program: Iterated Function System generation for Haskell Noise library: A Haskell coherent noise generator based on libnoise ObjectIO library OpenCLRaw library: The OpenCL Standard for heterogenous data-parallel computing OpenVG library: OpenVG (ShivaVG-0.2.1) binding OpenVGRaw library: Raw binding to OpenVG (ShivaVG-0.2.1 implementation). probability library: Probabilistic Functional Programming SGdemo program: An example of using the SG and OpenGL libraries SDL library: Binding to libSDL SDL-gfx library: Binding to libSDL_gfx SDL-mixer library: Binding to libSDL_mixer SDL-mpeg library: Binding to the SMPEG library smallpt-hs program: A Haskell port of the smallpt path tracer. Sprig library: Binding to Sprig treemap-html library: Generates HTML for Data.Tree as TreeMap treemap-html-tools library and programs: Treemap related commands for producing foldable TreeMap HTML. vte library: Binding to the VTE library. webkit library: Binding to the Webkit library. wordcloud library: Library for generating word/tag clouds.

2011/6/4 Tillmann Vogt
Hi,
There are some categories on Hackage that have become so large that it is hard to find something, i.e. Data(414 packages) and Graphics (191). Thats why I suggest to use subcategories separated from the category with a dot. To show that this makes sense I made subcategories for graphics libraries at the end of this email. Whatever happens to hackage2 this would be an immediate improvement.
How ------ I would volunteer for the manual categorization and let the community look over it. I could upload the changes with a script but the version number has to increase even if only the category has changed. I also don't want to be responsible for a massive spike in the upload statistics. Shouldn't the cabal file be excluded from the versioning policy? => It is allowed to upload a library with the same version number if only the cabal file has changed. One should write a notifiaction mail to all owners to reply if they don't agree. Then after a week executing the script that applies the changes.
[snip]
Hi, I would simply prefer tags. Actually, there is a problem that becomes even worse in your proposal: packages appearing in multiple categories, and packages not appearing in some expected category. A simple example in your proposed categories: HDRUtils library: should it be in 2d, RasterFormats, or maybe in 2dFormats, ... with tags, 2d, raster, format, can be used, but also hdr, image, etc. I don't remember what was proposed for hackage 2. Cheers, Thu

Why not hierarchical tags? (Tags organized in directories, well, basically,
tags with slashes or dots)
This is the most flexible IMHO.
2011/6/4 Vo Minh Thu
2011/6/4 Tillmann Vogt
: Hi,
There are some categories on Hackage that have become so large that it is hard to find something, i.e. Data(414 packages) and Graphics (191). Thats why I suggest to use subcategories separated from the category with a dot. To show that this makes sense I made subcategories for graphics libraries at the end of this email. Whatever happens to hackage2 this would be an immediate improvement.
How ------ I would volunteer for the manual categorization and let the community look over it. I could upload the changes with a script but the version number has to increase even if only the category has changed. I also don't want to be responsible for a massive spike in the upload statistics. Shouldn't the cabal file be excluded from the versioning policy? => It is allowed to upload a library with the same version number if only the cabal file has changed. One should write a notifiaction mail to all owners to reply if they don't agree. Then after a week executing the script that applies the changes.
[snip]
Hi,
I would simply prefer tags.
Actually, there is a problem that becomes even worse in your proposal: packages appearing in multiple categories, and packages not appearing in some expected category.
A simple example in your proposed categories: HDRUtils library: should it be in 2d, RasterFormats, or maybe in 2dFormats, ... with tags, 2d, raster, format, can be used, but also hdr, image, etc.
I don't remember what was proposed for hackage 2.
Cheers, Thu
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Am 04.06.2011 11:08, schrieb Vo Minh Thu:
2011/6/4 Tillmann Vogt
: Hi,
There are some categories on Hackage that have become so large that it is hard to find something, i.e. Data(414 packages) and Graphics (191). Thats why I suggest to use subcategories separated from the category with a dot. To show that this makes sense I made subcategories for graphics libraries at the end of this email. Whatever happens to hackage2 this would be an immediate improvement.
How ------ I would volunteer for the manual categorization and let the community look over it. I could upload the changes with a script but the version number has to increase even if only the category has changed. I also don't want to be responsible for a massive spike in the upload statistics. Shouldn't the cabal file be excluded from the versioning policy? => It is allowed to upload a library with the same version number if only the cabal file has changed. One should write a notifiaction mail to all owners to reply if they don't agree. Then after a week executing the script that applies the changes.
[snip] Hi,
I would simply prefer tags.
Actually, there is a problem that becomes even worse in your proposal: packages appearing in multiple categories, and packages not appearing in some expected category.
Well, what is the difference between a tag and a category? The second sounds more mathematical. A sub tag or a sub category is better because some categories have clearly a "sub" relation. I.e. I cannot imagine 2d-image-formats to be part of some other category than graphics. But generally I agree that more tags are also a solution, but how to display this without increasing the page size. So I think in the end it is tradeoff between display size and reasonable narrowing of where a category can belong.
A simple example in your proposed categories: HDRUtils library: should it be in 2d, RasterFormats, or maybe in 2dFormats, ... with tags, 2d, raster, format, can be used, but also hdr, image, etc.
I don't mean that a library should appear in only one (sub-)category, HDRUtils may appear in all the categories you mention. but if someone wants to know what raster image formats are supported he immediately finds it ind RasterFormats.
I don't remember what was proposed for hackage 2.
Cheers, Thu

On 4 June 2011 10:42, Tillmann Vogt
Well, what is the difference between a tag and a category? The second sounds more mathematical.
Although it doesn't exist (yet), tags would support a filtering view. As for categories, I'll be the first to play the joker and mention the essay "Ontology is overrated"...

http://www.shirky.com/writings/ontology_overrated.html
On Sat, Jun 4, 2011 at 10:02 AM, Tillmann Vogt
Hi,
There are some categories on Hackage that have become so large that it is hard to find something, i.e. Data(414 packages) and Graphics (191). Thats why I suggest to use subcategories separated from the category with a dot. To show that this makes sense I made subcategories for graphics libraries at the end of this email. Whatever happens to hackage2 this would be an immediate improvement.
How ------ I would volunteer for the manual categorization and let the community look over it. I could upload the changes with a script but the version number has to increase even if only the category has changed. I also don't want to be responsible for a massive spike in the upload statistics. Shouldn't the cabal file be excluded from the versioning policy? => It is allowed to upload a library with the same version number if only the cabal file has changed. One should write a notifiaction mail to all owners to reply if they don't agree. Then after a week executing the script that applies the changes.
Categories for Graphics:
Graphics.2d bacteria program: braindead utility to compose Xinerama backgrounds barchart library and program: Creating Bar Charts in Haskell chalkboard library and programs: Combinators for building and processing 2D images. chalkboard-viewer library: OpenGL based viewer for chalkboard rendered images. Chart library: A library for generating 2D Charts and Plots dia-base library: An EDSL for teaching Haskell with diagrams - data types dia-functions library: An EDSL for teaching Haskell with diagrams - functions diagrams library: Embedded domain-specific language for declarative vector graphics diagrams-cairo library: Cairo backend for diagrams drawing EDSL diagrams-core library: Core libraries for diagrams EDSL diagrams-lib library: Embedded domain-specific language for declarative graphics explore program: Experimental Plot data Reconstructor funcmp library: Functional MetaPost gloss library: Painless 2D vector graphics, animations and simulations. gloss-examples programs: Examples using the gloss library GoogleChart library: Generate web-based charts using the Google Chart API graphics-drawingcombinators library: A functional interface to 2D drawing in OpenGL haha library and program: A simple library for creating animated ascii art on ANSI terminals. HDRUtils library: Utilities for reading, manipulating, and writing HDR images hevolisa program: Genetic Mona Lisa problem in Haskell hevolisa-dph program: Genetic Mona Lisa problem in Haskell - using Data Parallel Haskell Hieroglyph library: Purely functional 2D graphics for visualization. HPlot library and program: A minimal monadic PLplot interface for Haskell hs-captcha library: Generate images suitable for use as CAPTCHAs in online web-form security. hs-gchart library: Haskell wrapper for the Google Chart API hsparklines library: Sparklines for Haskell internetmarke program: Shell command for constructing custom stamps for German Post plot library: A plotting library, exportable as eps/pdf/svg/png or renderable with gtk plot-gtk library: GTK plots and interaction with GHCi printxosd program: Simple tool to display some text on an on-screen display scaleimage program: Scale an image to a new geometry testpattern program: Display a monitor test pattern wumpus-basic library: Basic objects and system code built on Wumpus-Core. wumpus-core library: Pure Haskell PostScript and SVG generation. wumpus-drawing library: High-level drawing objects built on Wumpus-Basic. wumpus-microprint library: Microprints - "greek-text" pictures. wumpus-tree library: Drawing trees zsh-battery program: Ascii bars representing battery status
Graphics.3d Attrac program: Visualisation of Strange Attractors in 3-Dimensions cal3d library: Haskell binding to the Cal3D animation library. cal3d-examples programs: Examples for the Cal3d animation library. cal3d-opengl library: OpenGL rendering for the Cal3D animation library FieldTrip library: Functional 3D gnuplot library and program: 2D and 3D plots using gnuplot HGL library: A simple graphics library based on X11 or Win32 hgl-example program: Various animations generated using HGL IcoGrid library: Library for generating grids of hexagons and pentagons mapped to a sphere. nymphaea program: An interactive GUI for manipulating L-systems reactive-fieldtrip library: Connect Reactive and FieldTrip reactive-glut library: Connects Reactive and GLUT
Graphics.Fractal fractal program: Draw Newton, Julia and Mandelbrot fractals gmndl program: Mandelbrot Set explorer using GTK hfractal program: OpenGL fractal renderer mandulia program: A zooming visualisation of the Mandelbrot Set as many Julia Sets.
Graphics.Raytracing glintcollider program: A simple ray tracer in an early stage of development. glome-hs library and program: ray tracer GlomeTrace library: Ray Tracing Library GlomeVec library: Simple 3D vector library HRay program: Haskell raytracer jort program: JP's own ray tracer
Graphics.Layout graph-rewriting-layout library: Force-directed node placement intended for incremental graph drawing pango library: Binding to the Pango text rendering engine.
Graphics.Algorithm triangulation library: triangulation of polygons splines library: B-Splines, other splines, and NURBS.
Graphics.RasterFormats AC-PPM library: Trivial package for writing PPM images. bitmap library: A library for handling and manipulating bitmaps. bitmap-opengl library: OpenGL support for Data.Bitmap. exif library: A Haskell binding to a subset of libexif fig library: Manipulation of FIG files graphicsFormats library: Classes for renderable objects. hsmagick library: FFI bindings for the GraphicsMagick library Imlib library jpeg library: A library for decoding JPEG files written in pure Haskell pgm library: Pure Haskell implementation of PGM image format SDL-image library: Binding to libSDL_image stb-image library: A wrapper around Sean Barrett's JPEG/PNG decoder tga library: Reading and writing of tga image files
Graphics.VectorFormats cairo library: Binding to the Cairo library. craftwerk library and programs: 2D graphics library with integrated TikZ output. craftwerk-cairo library: Cairo backend for Craftwerk. craftwerk-gtk library and program: Gtk UI for Craftwerk. HPDF library: Generation of PDF documents hps library: Haskell Postscript hps-cairo library: Cairo rendering for the haskell postscript library HsHaruPDF library: Haskell binding to libharu (http://libharu.sourceforge.net/) poppler library: Binding to the Poppler. svgcairo library: Binding to the libsvg-cairo library. SVGPath library: Parsing the path command from SVG svgutils library and program: Helper functions for dealing with SVG files
Graphics.3dFormats collada-output library and program: Generate animated 3d objects in COLLADA collada-types library: data exchange between graphic applications graphics-formats-collada library: Load 3D geometry in the COLLADA format obj library: Reads and writes obj models.
Graphics.Engine (OpenGL and libraries that make it easier to use OpenGL) GLURaw library: A raw binding for the OpenGL graphics system GLUT library: A binding for the OpenGL Utility Toolkit GLFW library: A Haskell binding for GLFW GLFW-b library: GLFW bindings GLFW-b-demo program: GLFW-b test\/example\/demo GLFW-OGL library: A binding for GLFW (OGL) GPipe library: A functional graphics API for programmable GPUs GPipe-Collada library: Load GPipe meshes from Collada files GPipe-Examples programs: Examples for the GPipes package GPipe-TextureLoad library: Load GPipe textures from filesystem hogre library: Haskell binding to a subset of OGRE hogre-examples programs: Examples for using Hogre. haskgame library: Haskell game library. IrrHaskell library: Haskell FRP binding to the Irrlicht game engine. lambdacube-bullet program: Example for combining LambdaCube and Bullet lambdacube-engine library: 3D rendering engine entirely written in Haskell lambdacube-examples programs: Examples for LambdaCube nehe-tuts programs: Port of the NeHe OpenGL tutorials to Haskell. OGL library: A context aware binding for the OpenGL graphics system OpenGL library: A binding for the OpenGL graphics system OpenGLCheck library: Quickcheck instances for various data structures. OpenGLRaw library: A raw binding for the OpenGL graphics system OpenGLRaw21 library: The intersection of OpenGL 2.1 and OpenGL 3.1 Core rsagl library: The RogueStar Animation and Graphics Library scenegraph library: Scene Graph
Graphics.Fonts font-opengl-basic4x6 library and program: Basic4x6 font for OpenGL freetype2 library and program: Haskell binding for FreeType 2 library FTGL library: Portable TrueType font rendering for OpenGL using the Freetype2 library SDL-ttf library: Binding to libSDL_ttf SFont library: SFont SDL Bitmap Fonts stb-truetype library: A wrapper around Sean Barrett's TrueType rasterizer library. SVGFonts library and program: Fonts from the SVG-Font format
Graphics.OSspecific GLHUI library: Open OpenGL context windows in X11 with libX11 ige-mac-integration library: Bindings for the Gtk/OS X integration library. minimung program: Shows how to run grabber on Mac OS X Win32 library: A binding to part of the Win32 library X11 library: A binding to the X11 graphics library X11-extras library: Missing bindings to the X11 graphics library X11-rm library: A binding to the resource management functions missing from X11. X11-xdamage library: A binding to the Xdamage X11 extension library X11-xfixes library: A binding to the Xfixes X11 extension library X11-xft library: Bindings to the Xft, X Free Type interface library, and some Xrender parts x11-xim library: A binding to the xim of X11 graphics library X11-xshape library: A binding to the Xshape X11 extension library Xauth library: A binding to the X11 authentication library xhb library: X Haskell Bindings xosd library: A binding to the X on-screen display
Graphics.UserInterfaces glade library: Binding to the glade library. gtk library: Binding to the Gtk+ graphical user interface library. gtk-serialized-event library: GTK+ Serialized event. gtkglext library: Binding to the GTK+ OpenGL Extension gtkimageview library: Binding to the GtkImageView library. gtksourceview2 library: Binding to the GtkSourceView library. lui library: Purely FunctionaL User Interface soegtk library: GUI functions as used in the book "The Haskell School of Expression".
Graphics.Vector AC-Vector library: Efficient geometric vectors and transformations. AC-Vector-Fancy library: Fancy type-system stuff for AC-Vector Vec-OpenGLRaw library: Instances and functions to interoperate Vec and OpenGL. Vec-Transform library: Extends the Vec package with some 4x4 transform matrices vect library: A low-dimensional linear algebra library, tailored to computer graphics. vect-opengl library: OpenGL support for the `vect' low-dimensional linear algebra library.
Graphics.Visualization graphviz library and program: Graphviz bindings for Haskell. hubigraph library: A haskell wrap for Ubigraph splot program: A tool for visualizing the lifecycle of many concurrent multi-staged processes. timeplot program: A tool for visualizing time series from log files.
Games HTicTacToe program: An SDL tic-tac-toe game.
Graphics (not subcategorized yet) AC-Colour library: Efficient RGB colour types. AC-EasyRaster-GTK library: GTK+ pixel plotting. assimp library: The Assimp asset import library Chitra program: A platform independent mechanism to render graphics using vnc. colour library: A model for human colour/color perception CV library: OpenCV based machine vision library cv-combinators library and programs: Functional Combinators for Computer Vision derivation-trees library: Typeset Derivation Trees via MetaPost gd library: A Haskell binding to a subset of the GD graphics library ghci-diagrams library: Display simple diagrams from ghci graph-rewriting-gl library: OpenGL interface for interactive port graph rewriting HOpenCV library and program: A binding for the OpenCV computer vision library IFS library and program: Iterated Function System generation for Haskell Noise library: A Haskell coherent noise generator based on libnoise ObjectIO library OpenCLRaw library: The OpenCL Standard for heterogenous data-parallel computing OpenVG library: OpenVG (ShivaVG-0.2.1) binding OpenVGRaw library: Raw binding to OpenVG (ShivaVG-0.2.1 implementation). probability library: Probabilistic Functional Programming SGdemo program: An example of using the SG and OpenGL libraries SDL library: Binding to libSDL SDL-gfx library: Binding to libSDL_gfx SDL-mixer library: Binding to libSDL_mixer SDL-mpeg library: Binding to the SMPEG library smallpt-hs program: A Haskell port of the smallpt path tracer. Sprig library: Binding to Sprig treemap-html library: Generates HTML for Data.Tree as TreeMap treemap-html-tools library and programs: Treemap related commands for producing foldable TreeMap HTML. vte library: Binding to the VTE library. webkit library: Binding to the Webkit library. wordcloud library: Library for generating word/tag clouds.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Am 04.06.2011 15:00, schrieb Sebastian Fischer:
I think I have read that article a long time ago. I just looked at it again. Very lengthy but true. In the middle there is a section when ontologies work well and ... it all applies to Hackage. When Does Ontological Classification Work Well? Domain to be Organized Small corpus 3k libraries is nothing compared to the whole web (referring to the yahoo example), or every book on earth Formal categories already exist, just need some improvement Stable entities Haskell is a mathematical language, and if there is one thing that will never change then it is math Restricted entities access only after personal email Clear edges ? Participants Expert catalogers Maybe the best educated programmers in the world Authoritative source of judgment Maybe Coordinated users It could be better Expert users mostly

On Sat, Jun 4, 2011 at 10:41 AM, Tillmann Vogt
Formal categories already exist, just need some improvement
I don't see how the categories we have are near formal categories, but I digress.
Stable entities Haskell is a mathematical language, and if there is one thing that will never change then it is math
I also can't see this so clearly. It is like saying that books are just letters on paper, and nothing will change that. What we need to categorize is what is being done with Haskell, not Haskell itself.
Restricted entities access only after personal email
We have the opposite, any one can upload a library to Hackage and I don't think anyone wants to change that.
Clear edges ?
See his example, where he says that there are no blended elements. A Haskell library may have characteristics from two or more different categories.
Expert catalogers Maybe the best educated programmers in the world
We don't have any catalogers at all! =(
Authoritative source of judgment Maybe
We also don't have an authoritative source of judgement, but that is something easier to change.
Coordinated users It could be better
There is almost no coordination at all.
Expert users mostly
Yes, mostly, I agree =). tl;dr: I don't think ontologies are suitable for Hackage. Cheers! -- Felipe.

On Sat, Jun 4, 2011 at 7:46 PM, Felipe Almeida Lessa
tl;dr: I don't think ontologies are suitable for Hackage.
I think I agree. For instance, I just uploaded fix-imports and had to decide which categories it is in. It manages imports, which is IDE-like and people looking for IDE-like features might be interested, so IDE. It's concerned with haskell itself, so Haskell. And it's meant to be used with an editor, though it isn't an editor itself, so Editor. It's actually none of those things, but there's no specific category for it, and if there were I think it would be too small to be useful. So I picked things I think people who might be interested in it would be searching for. I don't think a hierarchy would have helped in this case, but tags would be appropriate. Actually, I wound up using the categories like tags. I think we just need better search, e.g. +tag +tag or something.

I think there are two reasons to browse the hackage database.
First reason reflects the common need to find a library that suites one's
needs. In this case it's very easy to find it with google adding "hackage"
"haskell" to the submitted word list.
Second reason is to have a nice landscape of packages when one enters the
site.
For the second reason, which is real browsing, categories are a pain,
whoever and however they are done. The more they are correct , the more they
are difficult to understand. The more they are easy like tags the more it's
difficult to put them in a hierarchy.
One well known solution is to put tags in a high dimensional space where the
tag names and distance between tags is defined by statistics on the tags
cloud of each tag holder (packages). In this case browsing is jumping from
one tag to another *near* one in the tag space and see the packages *around*
, while inserting new packages changes the position of the tags in their
space.
An easiest , but somewhat wrong, solution is give each tag a dimension and
have the packages in the space to browse.
Ontologies are more on formalising the meaning (seen as interrelations) of
concepts, which tags are not, and I don't think even software categories
are. But this is really debatable.
my 2 cents
paolino
2011/6/5 Evan Laforge
On Sat, Jun 4, 2011 at 7:46 PM, Felipe Almeida Lessa
wrote: tl;dr: I don't think ontologies are suitable for Hackage.
I think I agree. For instance, I just uploaded fix-imports and had to decide which categories it is in. It manages imports, which is IDE-like and people looking for IDE-like features might be interested, so IDE. It's concerned with haskell itself, so Haskell. And it's meant to be used with an editor, though it isn't an editor itself, so Editor. It's actually none of those things, but there's no specific category for it, and if there were I think it would be too small to be useful. So I picked things I think people who might be interested in it would be searching for.
I don't think a hierarchy would have helped in this case, but tags would be appropriate. Actually, I wound up using the categories like tags. I think we just need better search, e.g. +tag +tag or something.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On 05/06/2011 06:55 AM, Evan Laforge wrote:
I don't think a hierarchy would have helped in this case, but tags would be appropriate. Actually, I wound up using the categories like tags. I think we just need better search, e.g. +tag +tag or something.
+1 to all of the above. Also, I don't think listing every package on all of Hackage in one giant page is very useful any more. (I gather it was only meant to be a temporary interface in the first place...)

On Sun, Jun 5, 2011 at 07:51, Andrew Coppin
Also, I don't think listing every package on all of Hackage in one giant page is very useful any more. (I gather it was only meant to be a temporary interface in the first place...)
+1 (really +(foldl' (+) (repeat 1))...) — Hackage is *painful* these days.

On Sun, Jun 5, 2011 at 1:36 PM, Brandon Allbery
On Sun, Jun 5, 2011 at 07:51, Andrew Coppin
wrote: Also, I don't think listing every package on all of Hackage in one giant page is very useful any more. (I gather it was only meant to be a temporary interface in the first place...)
+1 (really +(foldl' (+) (repeat 1))...) — Hackage is *painful* these days. http://www.haskell.org/mailman/listinfo/haskell-cafe
i havn't a fscking clue how to implement such a beast, but i've seen (somewhere) tags that have their own heirarchy, so you could have (for instance) Image Stuff -2D -3D -Fractal -...etc... and also having multiple tags would help classify things, like a 3D Fractal renderer would be under "Image Stuff - 3D" "Image Stuff - Fractal" and probably even under "Math Stuff" (yeah, i know you *love* my technical names :P ) just my 0.02 cents hex --
Other than the fact Linux has a cool name, could someone explain why I should use Linux over BSD?
No. That's it. The cool name, that is. We worked very hard on creating a name that would appeal to the majority of people, and it certainly paid off: thousands of people are using linux just to be able to say "OS/2? Hah. I've got Linux. What a cool name". 386BSD made the mistake of putting a lot of numbers and weird abbreviations into the name, and is scaring away a lot of people just because it sounds too technical. -- Linus Torvalds' follow-up to a question about Linux

On 6/4/11 9:41 AM, Tillmann Vogt wrote:
Am 04.06.2011 15:00, schrieb Sebastian Fischer:
I think I have read that article a long time ago. I just looked at it again. Very lengthy but true. In the middle there is a section when ontologies work well and ... it all applies to Hackage.
I'm not so sure of that.
When Does Ontological Classification Work Well?
Domain to be Organized
Small corpus 3k libraries is nothing compared to the whole web (referring to the yahoo example), or every book on earth
Sure, it's small by library standards; but then again, libraries have curators. Libraries don't have to deal with everyone just filling out their own metadata when donating a book to the library. In comparison to others corpora of its kind, Hackage is of middling size and still growing. The relevant corpora here are things like CPAN, CTAN, CRAN and the like; not the whole internet, nor even a university library.
Formal categories already exist, just need some improvement
The categories aren't formal. Formal categorization means things like the names of biological species or the various constructs of abstract algebra, things which have a fixed and definite definition. Even the ontology of biology suffered a major upset over the last two decades as genetic sequencing demonstrated that the previous organization of species was woefully wrong. When is something a 2D graphics library vs a 3D library? What about all the shades in between, all the various options like depth parallax, pseudo-3D, fixed perspective, sprites on 3D backgrounds,... before you enter true 3D rendering? Something like the raster category may be a bit more formal, but even with my feeble knowledge of graphics I know that graphics as a whole is a mish mash of differing things and not a formally specified domain.
Stable entities Haskell is a mathematical language, and if there is one thing that will never change then it is math
Haskell is quite mathematical, but mathematics have shifted and changed dramatically over the years. Math changes all the time. Programming libraries and projects even moreso. Goals and directions change all the time. What began as a project in category A could easily shift to become focused on category B.
Restricted entities access only after personal email
What Clay means here is things like a library that only deals in bound volume books, as opposed to dealing also in other literary media (papyrus, velum,...) or in non-literary media (music, video,...). This does describe Hackage pretty well though. It's only for software, and only for software written in (or for) Haskell. While that's still a very broad domain, at least all the entities in it are of the same kind.
Clear edges ?
Participants Expert catalogers Maybe the best educated programmers in the world
Even if we are the best educated, I doubt there are very many Haskellers with expert-level experience in cataloging. How many of us work as librarians, ontologists, or other professions in charge of organizing and curating data? There are a few, I'm sure. Some work in databases, and some do annotation work (e.g., the NLPers), but the average Haskeller is not an expert cataloger. And I'm sure the experts are too busy to have all of Hackage foisted upon them.
Authoritative source of judgment Maybe
Hackage has no Benevolent Dictator For Life (that I'm aware of). -- Live well, ~wren
participants (12)
-
Andrew Coppin
-
Brandon Allbery
-
Evan Laforge
-
Felipe Almeida Lessa
-
Paolino
-
Sebastian Fischer
-
serialhex
-
Stephen Tetley
-
Tillmann Vogt
-
Vo Minh Thu
-
wren ng thornton
-
Yves Parès