[HN Gopher] IKEA's knowledge graph and why it has three layers
       ___________________________________________________________________
        
       IKEA's knowledge graph and why it has three layers
        
       Author : mooreds
       Score  : 165 points
       Date   : 2022-09-07 12:21 UTC (1 days ago)
        
 (HTM) web link (medium.com)
 (TXT) w3m dump (medium.com)
        
       | insane_dreamer wrote:
       | a little surprised they don't have a fourth layer containing the
       | individual product variants; i.e., layer 3 has 'Billy Bookcase'
       | while layer 4 has each product variant and code (white,
       | 3-shelves, 003.389.132)
        
       | advisedwang wrote:
       | I feel like IKEA likely operates in a pretty restricted problem
       | space compared to a general knowledge graph like wikidata or what
       | have you. I don't know that you can separate the "all knowledge"
       | graph into 3 layers like this.
        
         | mtnygard wrote:
         | I don't think they claimed it would work for everyone. Or
         | indeed for anyone else. Seems like it's just saying "this is
         | what we do."
         | 
         | (Edit: removed needlessly snarky wording.)
        
           | advisedwang wrote:
           | My main interest in a knowledge graph is the universal
           | application of it, and I suspect that's true for much of HN
           | audience. So of course it's natural when reading this article
           | to wonder if their methodology applies, and I was answering
           | my own implicit question.
           | 
           | Good on IKEA for solving the problem they have efficiently,
           | but I can be interested in a larger scope.
        
             | mtnygard wrote:
             | Yes, you're correct and that's a reasonable interest. I
             | also realize that I worded my comment in a needlessly
             | obnoxious way.
        
       | 0xbadcafebee wrote:
       | I wonder if they're using something like WebProtege to help make
       | authoring/maintenance easier.
        
       | mark_l_watson wrote:
       | That is a wonderful article for several reasons. I especially
       | like explaining the upper Ontology in terms for both W3C linked
       | and and also for property graphs. I also especially liked the
       | breakdown of data ownership.
        
       | elcapitan wrote:
       | Maybe I'm missing something, but .. what problem is this solving?
        
         | neurostack wrote:
         | wake up babe new computerphile video on knowledge graphs just
         | dropped https://www.youtube.com/watch?v=PZBm7M0HGzw
        
         | frakt0x90 wrote:
         | Agreed the article doesn't make it clear. I know companies like
         | Netflix have built knowledge graphs of their products which
         | they create embeddings of to feed to ML models which helps them
         | make better recommendations. NASA also built one to ease search
         | of safety information when building new things.
         | 
         | https://netflixtechblog.com/supporting-content-decision-make...
         | 
         | https://neo4j.com/blog/nasa-critical-data-knowledge-graph/
        
           | kendallgclark wrote:
           | NASA has more than one Knowledge Graph.
           | 
           | https://www.stardog.com/blog/nasas-knowledge-graph/
        
         | BatteryMountain wrote:
         | Most companies are a mess internally and information/meta data
         | about various parts about the org is badly grouped and/or
         | named. When reporting time comes, you have a big'ol mess to
         | categorize things manually to make sense of it. The same issues
         | spill over into code and thus websites and catalogues (ever
         | wondered why some companies websites are better organised and
         | filterable?, example Dell, but think of a car manufacturer and
         | all their parts), so it really matters that someone or a group
         | sits down and formalize their vocabulary & taxonomy & grouping
         | of things. Meta data is often more important than the actual
         | thing being described! This all plugs into DDD &
         | standardization efforts (see banking and healthcare) and why
         | programmers subconsciously hammers on about "naming things are
         | hard" - whether they are aware of it or not, they are sensing
         | that somehow the order and naming of things matter. We also
         | have to deal with versioning of things, and not just in code,
         | but in hardware too. So it really pays off if done well.
        
           | LeifCarrotson wrote:
           | See also the parametric search available at McMaster Carr:
           | 
           | https://www.mcmaster.com/screws/hex-head-screws/
           | 
           | or Digikey:
           | 
           | https://www.digikey.com/en/products/filter/ceramic-
           | capacitor...
           | 
           | or PCpartPicker:
           | 
           | https://pcpartpicker.com/products/motherboard/
           | 
           | compared to trying to find the same products on Amazon or
           | AliExpress. Many of the products are available, but every
           | product on those examples can be filtered against comparable
           | products by the specs that matter to the engineers doing the
           | selection. On other sites, the metadata is generated
           | inconsistently by individual sellers.
        
             | iamjackg wrote:
             | It's very interesting to me that, as an absolute amateur at
             | electronics, I find the Amazon/AliExpress approach
             | infinitely more usable, even though Digi-Key has a better
             | selection of products. Of course, this is because my needs
             | are usually something extremely generic and simple like "I
             | need some 400ohm resistors" or "I need an 8-bit shift
             | register," with a strong emphasis on the "anything goes"
             | aspect.
             | 
             | On Digi-Key I get absolutely lost. There are thousands of
             | options, with different form factors, costs, availability,
             | specs, and more. Can I buy 5 of them? What's the lead time?
             | Is it SMD or through? How much is shipping? Which vendor do
             | I choose?
             | 
             | On AliExpress, I get a bunch of "5 8-bit shift registers
             | for electronics projects" listings, check a couple of them,
             | look up some info, and purchase one in a few minutes.
             | 
             | Of course this means I end up with mediocre, sometimes
             | outright broken parts, but it feels like it's worth the
             | time I save. I wish there was a curated list or an "easy
             | mode" on Digi-Key.
        
               | somat wrote:
               | Conversly when I want a power jack with a 3/4 inch hole
               | diameter, 3 wires and no more than 1 inch penetration
               | into the chassis. It is so nice to be able to go to a
               | vendor that has actual metadata on the products they are
               | selling. I hate going on amazon and having to wade
               | through 15 pages of stuff.
               | 
               | What I have done when I find myself with several similar
               | items on digikey and am unable to make a choice, I will
               | go with whatever has the biggest inventory, the
               | assumption being whatever sells the best will probably be
               | the best... or at least the most available, which is good
               | enough for me.
        
               | asmithmd1 wrote:
               | Digi-Key needs a sort by "most popular" You can often
               | sort by number in stock to find a "normal" one
        
               | 8note wrote:
               | Number in stock tend to be better than popular -- popular
               | digikey items tend to go out of stock
        
             | poulsbohemian wrote:
             | >See also the parametric search available at McMaster Carr
             | 
             | About 25 years ago I built a series of calculators for a
             | competing industrial supplier, where you could match up the
             | bolt / screw / washer / nut needed for each size, metal vs
             | wood application, etc. Still a very relevant need today
             | that I've seldom seen replicated usefully on any site.
        
           | travisjungroth wrote:
           | > programmers subconsciously hammers on about "naming things
           | are hard" - whether they are aware of it or not, they are
           | sensing that somehow the order and naming of things matter.
           | 
           | Never seen someone noble savage programmers before.
        
           | tanepiper wrote:
           | This (disclosure: I'm one of the tech leads on this project)
        
           | MetaWhirledPeas wrote:
           | I'm consistently impressed with how IKEA does business, with
           | the exception of their website. For example, search for
           | "storage bin" then try to filter by the dimensions of the bin
           | (for fitting on a bookshelf or in a cubby hole). You're given
           | two filtering choices: Large and Medium. Those are not very
           | helpful choices.
           | 
           | I'm sure their metadata is great compared to some groups, but
           | in my case it's still insufficient.
        
             | tanepiper wrote:
             | Not only you. It's an identified problem the Knowledge
             | Graph is attempting to solve.
        
               | MetaWhirledPeas wrote:
               | I also noticed it might be considering a more European
               | usage of the word "bin". There were lots of trash cans in
               | the results. The metadata might need to be regionalized.
        
           | wikfwikf wrote:
           | To provide a concrete example, TFA said that 'product' was a
           | 'concept'. Another concept could be 'part'. Another concept
           | could be 'package'.
           | 
           | (You buy a product such as a bookcase. You then go and pick
           | up one or more packages which make up that product. When you
           | get the packages home and open them up, each contains several
           | parts.)
           | 
           | There are lots of different systems at IKEA, which work
           | somewhat in parallel but sometimes have to interoperate. For
           | example, point of sale, returns, warehouse management,
           | showroom design. Some of them care about all of
           | product/package/part, but many of them care more about one of
           | those levels than the other. Point of sale just needs to know
           | what products you bought, not what parts are in the packages.
           | Warehouse really cares about what packages there are, but
           | also wants to be aware of which sets of packages are
           | products.
           | 
           | Suppose that one system doesn't make a distinction between
           | product and package, or uses 'product' to mean either product
           | or package. That system might work perfectly fine on its own,
           | but when it has to interact with another system which cares a
           | lot about that categorical distinction, things will go wrong.
           | So you want to have one place where all those concepts are
           | defined. Then when you create a new system, you can confirm
           | that you are using the same categories with the same meanings
           | as everyone else.
        
         | [deleted]
        
         | contravariant wrote:
         | Turns out it's easier to reason with binary relationships so if
         | you only use tables with 2 columns it's somewhat easier to
         | _infer_ things from your data.
         | 
         | Categories of products is a good example as they form a
         | transitive relation, but not necessarily a strict hierarchy
         | (any particular entity might be in multiple distinct
         | categories).
        
         | fredrikholm wrote:
         | I've done contract work for IKEA.
         | 
         | When talking to their senior engineers, a common trope was:
         | 
         | > I wouldn't know, I've only worked here for 5 years.
         | 
         | The sheer volume of new hierarchies replacing old ones, teams
         | being split into other reams, rebranding of departments ...
         | 
         | I doubt any one person understands how IKEA works, let alone
         | enough to be a source for others.
         | 
         | Perhaps they are projecting onto their customers here.
        
         | sunpazed wrote:
         | Search, data normalisation, equivalencies, recommendation
         | engines, supply chain analytics and reporting, etc.
         | 
         | Having a well defined ontology helps power lots of data
         | products, and even build new ones.
        
       | novaleaf wrote:
       | The only example of "Concept" in the article is "product", yet it
       | talks to great length about it (Concept).
       | 
       | What are some other examples? I really struggle to understand the
       | value of it, and find the lack of transparency here bizarre given
       | how much the espouse this 3 tier system.
        
         | mtnygard wrote:
         | I'm not with IKEA but I've been part of other ontology
         | exercises. Off the top of my head, they are a retailer with
         | physical stores and distribution centers--which could both be
         | categories within the concept "location". They have associates
         | (people), and customers (maybe just "people" again, but maybe a
         | different concept.) I could also imagine transactions or
         | loyalty accounts as other concepts. Depending on how far they
         | go, they could include things like "region" (i.e., region-> has
         | many -> location) or general ledger accounts.
        
       | [deleted]
        
       | [deleted]
        
       | bleonard wrote:
       | Maybe some day this will be available in JSON.
       | 
       | I built a system for TaskRabbit that scraped all the IKEA
       | products from a variety of sources and ran algorithms to
       | determine their category and predict how long they would take to
       | be assembled. Then there was a Mechanical Turk sort of system for
       | human input. When combined with real-world feedback from the
       | Taskers, it was pretty good.
       | 
       | For better or worse, I've personally been through the entire
       | catalog multiple times.
        
         | 0xbadcafebee wrote:
         | Maybe as Turtle or JSON-LD, but you need a format that
         | encapsulates triples and various data types. Otherwise you're
         | throwing away most of the utility of a semantic web knowledge
         | base.
        
       | MichaelZuo wrote:
       | There should be a fourth layer in a fully fleshed out pyramid,
       | and it was hinted at in the text, that comprises each individual
       | copy of BILLY bookcase, white, 80cm, etc..
       | 
       | Maybe even a fifth layer could be necessary if the individual
       | products are broken down by subcomponent.
       | 
       | In the software context this would each individual copy of an OS
       | with subcomponents being each individual copy of a driver, etc...
        
       | franky47 wrote:
       | When I was a kid, I thought IKEA product codes (eg: 002.638.50)
       | were coordinates in 3D space of where the item was stored in a
       | giant IKEA warehouse (like in the film Cube, but less deadly).
       | 
       | I'd like to know the reasoning behind it though. Parts of a same
       | product usually have very different numbers.
        
         | Jun8 wrote:
         | https://scp-wiki.wikidot.com/scp-3008
        
         | t0mas88 wrote:
         | I think that very different numbering is to make sure customers
         | don't pick up the wrong box. They seem to put very different
         | numbers next to each other in the warehouse.
        
           | yamtaddle wrote:
           | Kinda like that (maybe false?) story about the Stalin solving
           | a problem during WWII involving same-diameter mortar shells
           | and rockets getting mixed up in logistical orders (so, your
           | unit needs mortar shells, but you receive rockets, and vice
           | versa) by dictating that one be re-labeled with an incorrect
           | (but unique!) diameter. Make it different enough that even a
           | partial or partially-understood name is unlikely to be
           | mistaken for something else.
        
             | somat wrote:
             | The world war two sherman tank originally had a 75 mm gun,
             | later this was upgraded to a 76 mm high velocity gun. The
             | interesting thing is that the 76 mm gun was actually 75mm,
             | the army used the 76mm designation because the ammo was
             | incompatible and they wanted to avoid exactly the sort of
             | problems you would have if you had to deliver ammo for two
             | different 75 mm guns.
             | 
             | https://en.wikipedia.org/wiki/76_mm_gun_M1
        
               | totoglazer wrote:
               | The wiki page seems to imply it was actually 76mm?
        
           | ape4 wrote:
           | That seems smart - but then they need other numbers for
           | coordinates I guess.
        
             | teejmya wrote:
             | Which they do: Aisle and Bin numbers on each item
             | describing where it is in the warehouse.
             | 
             | I think the product number codes are equivalent to SKUs.
        
             | agloeregrets wrote:
             | Assuming that all warehouses are the same size and shape
             | and carry the same things, which is why they instead use
             | Local bin numbers. Works a lot like an IP and MAC I
             | suppose.
        
             | brudgers wrote:
             | Items in the warehouse go through many coordinates during
             | manufacture, shipment, merchandiser, etc. before going out
             | to the parking lot with a customer.
             | 
             | The part number is for accounting.
             | 
             | It allows allocation of expenses such as raw materials in a
             | meaningful way.
        
         | tanepiper wrote:
         | Next time you're in the store... look up
        
           | solarkraft wrote:
           | Wow, those fans are pretty big ...
        
             | easrng wrote:
             | Maybe big ass fans, even.
        
       | [deleted]
        
       | imwillofficial wrote:
       | This seems wildly pointless and pedantic
        
         | actionfromafar wrote:
         | Every large company will grow a pointless and pedantic way to
         | organise data. Might just as well make it explicit.
        
           | ska wrote:
           | To the contrary - it's anything but pointless.
           | 
           | It tends to become pendantic to combat entropy.
        
           | taneq wrote:
           | Conway's Law would have you believe that this is because
           | every large company will grow a pointless and pedantic org
           | chart. :P
           | 
           | (Yeah yeah I know that was technically about software
           | architecture but code is data soooo...)
        
         | ble wrote:
         | I think the point is it's a technical structure that supports a
         | very large organization's unified datastore, despite the fact
         | that ownership of the structure of that datastore is
         | decentralized and the responsibility for populating that
         | datastore is maybe even more decentralized.
         | 
         | Very large organizations need technical solutions to
         | organizational problems, especially when there are many loosely
         | coupled teams interacting in one way or another.
        
       | castratikron wrote:
       | So Ikea is written in Prolog?
        
       | adolph wrote:
       | I'm really grateful to read this about Ikea's effort and Dave
       | McComb's continued work. I just received email of the below
       | training opportunity from Dave's company Semantic Arts. If you
       | are interested in Gist, ontologies, knowledge graph, it may be of
       | interest to you.
       | 
       | https://events.eventzilla.net/e/semantic-boot-camp-introduct...
       | 
       |  _I have no relationship with Semantic Arts other than they
       | performed a contract for a company at which I worked._
        
       | wirthjason wrote:
       | I like the idea of concepts, categories, and data but I had
       | trouble seeing how it fits into the traditional knowledge graph
       | structure of tuples that I am used to.
        
         | prometheus76 wrote:
         | Another analogy I can think of is food-related. The concept
         | would be "bread". The categories would be "recipes for bread".
         | The data would be "bread ingredients".
        
         | udp wrote:
         | OWL2 does a good job of formalising these things. What they
         | call concepts and categories would be Classes in OWL. What they
         | call data would be Individuals.
        
         | unboxingelf wrote:
         | (Product) -> (bookshelf) -> (billy white 80cm)
         | 
         | The above would be the graph representation of concepts,
         | categories, and data. In RDF triple terms of subject-predicate-
         | object it could be represented as:                 Product (s)
         | has a (p) bookshelf (o)       Billy white 80cm (s) is a (a)
         | bookshelf (o)
        
       ___________________________________________________________________
       (page generated 2022-09-08 23:01 UTC)