To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.admin.databaseOpen lugnet.admin.database in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Administrative / Database / 128
127  |  129
Subject: 
Element search with fuzzy categories
Newsgroups: 
lugnet.admin.database
Date: 
Fri, 8 Jan 1999 09:51:37 GMT
Viewed: 
512 times
  
OK, here's the fuzzy element search thingie I was mentioning earlier
tonight.  It's ugly, it doesn't contain all possible information, and it's
just a proof-of-concept toy -- but it's kinda actually helpful, and its
results are sometimes surprising in a good way.

Let's start with a simple example -- radar dishes:

   http://www.lugnet.com/dbtoys/elementsearch/?=radar-dish

It returns 7 pieces...

   100%  2x2 Radar Dish
   100%  4x4 Radar Dish
   100%  6x6 Webbed Radar Dish
   100%  8x8 Radar Dish
    50%  2x2 Webbed Dish w/ 3L Bent Rod
    50%  4x4 Swirl-Pattern Radar Dish
    10%  4x4 Umbrella/Radar Dish

But let's say you didn't know that the system categorized these as radar
*dishes*, and you simply entered "radar":

   http://www.lugnet.com/dbtoys/elementsearch/?=radar

Then it returns 8 pieces instead of 7...

   100%  2x2 Sloped Brick w/ Radar Display
    75%  2x2 Radar Dish
    75%  4x4 Radar Dish
    75%  6x6 Webbed Radar Dish
    75%  8x8 Radar Dish
    50%  2x2 Webbed Dish w/ 3L Bent Rod
    38%  4x4 Swirl-Pattern Radar Dish
     8%  4x4 Umbrella/Radar Dish

...and notice that the radar dishes moved downward in the list because it
wasn't so sure this time that you wanted radar dishes -- it figures maybe
you want generic radar stuff, but it'll include radar dishes just in case.

What's happening there is that radar-dish is listed as being a 75% subset of
radar, and it searches down the tree.

Another example -- the concept of "being circular":

   http://www.lugnet.com/dbtoys/elementsearch/?=circular

It knows that circular means round, and round means disc, cylindrical,
half-cylindrical, hub, and tire.  So it's able to list quite a few pieces
that it figures are circular in some way.

Another one -- roof bricks:

   http://www.lugnet.com/dbtoys/elementsearch/?=roof

It's been told that "roof" is associated with anything "low-slope" or
"medium-slope" -- so it lists a whole bunch of sloped bricks without each
brick having to be told that it can be used on a roof.

(A gotcha here, however, is that it lists zany-decorated sloped bricks when
it shouldn't.  I'm not sure if this is a failing of the particular data
strucutre it was given, or a failing at a larger level.  On the other hand,
with Boolean queries, you should be able to say "show me all the roof stuff
minus decorated stuff".)

   http://www.lugnet.com/dbtoys/elementsearch/?=decorated

Most of the items here designated as "decorated" are either 100% or not at
all.  Probably, it should count the percentage of surface area or something.
I think it does that on one piece.

OK, back to cooler ones.  Let's say you're looking for those flat green
tree-leaf pieces from Dark Forest.  They're listed in this particular DB as
3x4 6-Stud and 5x6 14-Stud Foliage Pieces.  So if you type "foliage"...

   http://www.lugnet.com/dbtoys/elementsearch/?=foliage

...they appear:

   100%  3x4 6-Stud Foliage Piece
   100%  5x6 14-Stud Foliage Piece

But let's say you can't remember (or aren't aware) that they're called
"foliage" in this DB, but you know that they certainly have something to do
with trees.  So you type "tree"...

   http://www.lugnet.com/dbtoys/elementsearch/?=tree

...and Bingo! there they are, at a score of 80%:

   100%  4.3H Small Conical Tree w/ Round Base
   100%  6.3H Egg-Shaped Tree w/ Round Base
   100%  6.6H Large Conical Tree w/ Round Base
    80%  4-Prong Palm Frond Support
    80%  DUPLO 5-Cluster Palm Fronds (2x2 top)
    80%  Large Palm Frond
    80%  Small Palm Frond
    80%  1x1 Palm Tree Trunk Segment
    80%  2x2 Palm Tree Trunk Base
    80%  3x4 6-Stud Foliage Piece
    80%  4x4 Round Tree Stump
    80%  5x6 14-Stud Foliage Piece
    70%  2x2x2 DUPLO Tree-Trunk Brick
    50%  1x3x2 Smooth-Round Half-Arch Brick
    50%  1x5x4 Staired Half-Arch Brick
    50%  1x6x2 Smooth-Round Full-Arch Brick
    50%  1x6x3 Smooth-Round Half-Arch Brick
    40%  DUPLO Log Pile/Nest (2x2 top)
    40%  1x4x4 Staired Half-Inverse-Arch Brick
    40%  2x3x2 DUPLO Inverse-Half-Arch Brick
    40%  2x6x2 DUPLO Dual-Inv-Half-Arch Brick
    16%  4-Prong Lantern Support
    15%  1x1x1.3 Half-Round-Top Brick w/Plate
    12%  1x1 Nozzle/Palm Tree Trunk Segment
    10%  4x8x6 DUPLO Dwelling Wall w/ Door
     5%  1x4x1.3 Half-Round-Top Brick w/Plate

Note that there are other things more tree-like listed above the foliage
elements, and many things less-tree-like listed below the foliage elements.

BTW, here's where a configurable relevance cut-off would come in handy.  The
bottom-most item, "1x4x1.3 Half-Round-Top Brick w/Plate" is only there
because it's part of the "half-arch" category, which is part of the "branch"
category, which is part of the "tree" category.

Say, why on Earth is the "4x8x6 DUPLO Dwelling Wall w/ Door" element listed
under "tree"?  Because the texturing on it is made to look as though it was
carved out of a giant-diameter tree (so this one is technically relevant to
"tree," albeit only slightly).

Let's try some more...  Looking for those bendy-arm thingies from Divers
sets?  They show up under "hinge":

   http://www.lugnet.com/dbtoys/elementsearch/?=hinge

But they also have their own category:

   http://www.lugnet.com/dbtoys/elementsearch/?=bendy-link

How about anything with or related to a Technic peg?

   http://www.lugnet.com/dbtoys/elementsearch/?=peg

Skeleton parts:

   http://www.lugnet.com/dbtoys/elementsearch/?=skeleton

   100%  Skeleton Head
   100%  Skeleton
    80%  Extra Skeleton Arm

And note that "skeleton" is an 80% subset of "undead":

   http://www.lugnet.com/dbtoys/elementsearch/?=undead

    80%  Ghost Shawl (no minifig)
    80%  Mummy Head
    80%  Skeleton Head
    80%  Skeleton
    64%  Extra Skeleton Arm
    64%  Mummy Legs Piece w/ Toes
    64%  Mummy Torso w/ Gold/Red Neck
    64%  1x4x6 Sarcophagus Top
    64%  2x4x6 Sarcophagus Bottom
    56%  Pharoah Headdress Piece
    40%  12.5" Mummy Container w/ Sticker from 5948

(Pharoah stuff is pulled in because "mummy" is pulled in.)

BTW, "mummy" is listed as an 80% subset of "egypt":

   http://www.lugnet.com/dbtoys/elementsearch/?=egypt

   100%  2x2 Egyptian Map Tile, 20/Khnum/Ram
   100%  2x2 Egyptian Map Tile, 40/Jackal/Anubis
   100%  2x2 Egyptian Map Tile, 60/Thoth/Ibis
   100%  2x2 Egyptian Map Tile, 80/Horus/Falcon
    80%  Hieroglyphic Sticker Sheet from 5938
    80%  Mummy Head
    80%  Pharoah Headdress Piece
    80%  1x1 Round Plate w/ 4-Sphere Pyramid
    80%  1x16 Brick w/ Snakes/Feathers
    80%  1x2x5 Hieroglyph Brick, Arm/Bird/etc.
    80%  1x2x5 Hieroglyph Brick, Bird/Owl/etc.
    80%  1x2x5 Hieroglyph Brick, Eye/Bird/etc.
    80%  1x2x5 Hieroglyph Brick, Sun/Sun/etc.
    80%  1x6x5 Hieroglyph Brick, 3 People
    80%  1x6x5 Hieroglyph Brick, Large Owl/Bug
    72%  1x4 Tile w/ Death-Ray Do-Not-Enter
    64%  Mummy Legs Piece w/ Toes
    64%  Mummy Torso w/ Gold/Red Neck
    64%  1x4x6 Sarcophagus Top
    64%  2x4x6 Sarcophagus Bottom
    40%  12.5" Mummy Container w/ Sticker from 5948

Food for thought:  If there were a category called desert, you'd want Egypt
to come up under desert, but not mummies (right?).  How can "stops" be put
in to halt expansions like that?

Back to more examples.  One of my favorites is "weapon":

   http://www.lugnet.com/dbtoys/elementsearch/?=weapon

(it's got plenty of room for subsets.)

Here's a fun one -- "pizza":

   http://www.lugnet.com/dbtoys/elementsearch/?=pizza

   100%  2x2 Round Tile w/ Pizza
    80%  Pizzeria Sticker Sheet from 6350
    80%  1x2x1 "PIZZERIA" Thin-Wall
     5%  Hand-Held Round Paddle
     5%  Rowboat Oar

The paddles and rowboat oars have to do with pizza because they're sometimes
used to serve the pizza or put it into/pull it out of the brick oven.

And here's one with some unexpected results -- "baseplate":

   http://www.lugnet.com/dbtoys/elementsearch/?=baseplate

Finally, a language-mapping experiment -- "tyre" to "tire":

   http://www.lugnet.com/dbtoys/elementsearch/?=tyre

This was simply accomplished by setting up "tire" as 100%-subset of "tyre,"
or in other words that "tyre" maps to "tire."  This is an example of a
category-object that's actually a word rather than a concept or attribute.

Well, you can play around with it and see what you think.  Keep in mind that
it's just a proof-of-concept experiment and it's not supposed to be complete
or truly accurate.  But it was enough to convince me that nested fuzzy set
memberships are a pretty powerful tool to help you find things quicker.

--Todd



Message has 1 Reply:
  Re: Element search with fuzzy categories
 
Wow! (...) Why would you not want mummies in the desert? Ok I can sort of see why, but they are related, (By about 80% :) The percentage cutoff would be useful here. If the cutoff is set to x% then once a subgroup falls below x% relative to the (...) (25 years ago, 10-Jan-99, to lugnet.admin.database)

5 Messages in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    
Active threads in Database

 
LUGNET Guide updates (Sun 19 May 2024)
15 hours ago
Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR