Search Mailing List Archives


Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-discussion] Question

Thomas Russ tar at ISI.EDU
Tue Nov 14 11:45:10 PST 2006


On Nov 14, 2006, at 11:19 AM, Patricio Gorin wrote:

> Hi, my name is Patricio. I'm a software developer for a e-commerce
> organization. We are thinking to using ontologies to model our
> bussiness.
>
> Now we use this navegation channels as the concepts clasification.  
> This
> model has the problem that Marketing needs to modify the channels to
> promote somes categories, creating categories, modifiyng attributes or
> deleting categories, just for commercial goals.

This all seems reasonable and doable.

One thing to consider is that you can combine the use of metaconcepts
and the ability of instances to belong to more than one concept in
order to achieve some of these goals.

So, for example, you could have a class Camera and a class SaleItem
and have a particular instance of a camera belong to both classes.

> We are thinking to separate the clasification or concepts of products
> that a user can sell. We will model this with an ontology. Each  
> concept
> will have specific attributes. Example: the Digital Camera concept  
> will
> have: provider, megapixels, memory, etc.
> But, we need to model, on the other hand, our navigation channels. We
> think that a way to do this, is creating a data structure (graph),  
> where
> each node of the graph reference to a concept in the ontology (one
> concept or more). Then, each node is a query definition on concepts  
> from
> the ontology, and the result of this channels is that a user can
> navigate this structure, and each node visited, searchs the products
> publicated in the concepts that the node reference.

Separating the taxonomic classification and the navigation methods
is a good idea.  There is often a tendency when using a modeling tool
like Protege to try to make the class hierarchy do everything.  It
is important to remember that there really are semantics that are
associated with the class-subclass relationship and not abuse that
relationship.

You will need to identify additional slots that you can use for
navigation purposes.  One thing to look into is various forms of
mereologic (part-whole) relations in addition to the taxonomic one.

You may also want to introduce a notion of themes as well, which
you can use to relate items that ordinarily would not be related.

>
> We model the ontology with Protege 3.1. Now we are looking for the  
> best
> way to model the navigation channels that have to know the ontology to
> reference the concepts.
> Example:
>
> Ontology of Concepts:
> Photography
>     - Accesories
>             - Bags
>             - Flashes
>             - Bateries
>             - Memories
>     - Cameras
>             - Digital Cameras
>             - Reflex Cameras
>     - Services
>             - Edition
>             - Photograph

Part of this hierarchy seems to be to be a little bit suspect,
since it makes, for example, all batteries and memories be
types of "Photography".   It would be cleaner to have something
along the lines of "Photography" as a theme, and then have more
specialized taxonomies for things like

   PhotographicEquipment
      PhotographicAccessories
         CameraBags
         FlashEquipment
      Cameras
         DigitalCameras
             --> has-part batteries
             --> has-part memorycard
         FilmCameras
             --> has-part batteries
             --> has-part photographicfilm
   PhotographicServices

   Batteries
      Alkaline
      Rechargeable
   MemoryCard
      SDMemoryCard

      LargeMemoryCards
      MediumMemoryCards

which relate to each other through a theme slot rather than
trying to make them subconcepts of "Photography".

Relations to things like batteries are better handled through
links like the part-of (compenent-of), since the batteries
are actually part of a camera and not really photographic
equipment in their own right.

They can be in their own hierarchy.  Note that you also have
the flexibility to use more than one parent, so you could
organize the concepts along more than one dimension.

To emphasize again, it is important to remember that the
subclass-of hierarchy is not the only organizational principle
to use.  Anything that appears in that hierarchy must belong
to the concepts that are above it in the hierarchy.

In this way an ontology is different from the sorts of categories
that you see in a lot of search engines.

>
> Navigation Channels:
> Photography
>     - Digital Cameras --> retrieve all products of concept "Digital
> Cameras"
>             - HP --> retrieve all products of concept "Digital  
> Cameras"
> and "Provider = HP"
>                 - Less than 5 Megapixel --> retrieve all products of
> concept "Digital Cameras" and "Provider = HP" and "Megapixels < 5"
>                 - More than 5 Megapixel --> retrieve all products of
> concept "Digital Cameras" and "Provider = HP" and "Megapixels > 5"
>             - Nikon --> retrieve all products of concept "Digital
> Cameras" and "Provider = Nikon"
>             - Sony --> retrieve all products of concept "Digital
> Cameras" and "Provider = Sony"

This makes sense.
But you should also expand some of the navigation channels to
also include items that are part-of a camera or used-with a camera
as well.

Taking care to do this setup and classification properly will let
you write applications where you are less likely to have bizarre
results returned from the queries, whereas lumping everything into
the class hierarchy robs you of the ability to make appropriate
distinctions.






More information about the protege-discussion mailing list