Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

(OT) Does anyone know of a common object repository?

by bcarroll (Pilgrim)
on Oct 09, 2012 at 14:09 UTC ( [id://998010]=perlquestion: print w/replies, xml ) Need Help??

bcarroll has asked for the wisdom of the Perl Monks concerning the following question:

Not a perl question, but I figured someone here would have some ideas...

I am trying to find out if a repository exists that contains information about common objects.

Example: I want to create an instance of a lamp object. I want to know the available attributes of the lamp (color, height, width, shape, etc...), but I don't want to have to define all the attributes every time I want to use that object in a program.

Is there anything on the Internet that contains a list of objects and their attributes?

I am interested in this for robotics/artificial intelligence purposes, but there are potentially many more use cases for this type of repository.

  • Comment on (OT) Does anyone know of a common object repository?

Replies are listed 'Best First'.
Re: (OT) Does anyone know of a common object repository?
by ELISHEVA (Prior) on Oct 09, 2012 at 16:47 UTC

    Way back when, when people were all hot about XML and ontologies (c. 2000) there was the fantasy that one could define some sort of repository where all the "things" of the world were categorized, organized, and named based on some sort of standardized set of attributes and categories. The fantasy died a slow death throughout the 00's because it turns out that names, categories and attributes are quite political and context specific. Standards like these are VERY dependent on the community that uses them. The community is important because the right attributes and categories depend on what is salient for that community.

    If you want to get a sense of how complicated this gets take a look at WordNet. If you use the search page to look up "lamp", you will get two sense listings. Click on any of the sense listings and you will get a listing of all of the superclasses (hypernyms) and subclasses (hyponyms). There are quite a lot for "source of artificial illumination". The "piece of furniture" sense has fewer, but I suspect the list is incomplete. If a lamp marketing guru were to take the time to enter in all of their favorite product categories for lamps the list of hyponyms would be a lot longer.

    Although the lists of hyponyms and hypernyms doesn't directly give you your list of attributes, it should illustrate the scale of the problem: each of those hypernyms and hyponyms potentially has its own list of important attributes. If you pick any two hyponyms, sometimes the attribute lists will overlap and sometimes they will conflict. Any "standard" would have to pick a mutually consistent set of standard hypernyms and hyponyms and then plumb them for attributes.

    If you really do want to come up with some standard, you have to first define your community of concern: whose notion of lamp are you trying to define? Even ISO standards for electrical equipment don't pretend to define every aspect of electrical equipment. Rather they define whatever is important for the particular kind of engineering problem its user community needs to address. Same thing with genetic information data, wellbore data, electronic automated design data, financial data, etc. etc. IF you have a clear idea of a community, you MIGHT be able to find a business association that has created a standard. But without a community to name its important categories of lamp (hyponyms, hypernyms) you can't even begin to guess at what the standard attributes should be.

Re: (OT) Does anyone know of a common object repository?
by BrowserUk (Patriarch) on Oct 09, 2012 at 14:43 UTC

    Let's say you had such a repository. And in it you have a bunch of objects that got put there at some point.

    Amongst them, there are say 3 lamps with the attributes you listed. Two are identical, and the third is the same as the first two, except for its color.

    How will your program tell the repository which one (instance) of the lamp that it wants to deal with?


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

    RIP Neil Armstrong

      I'm not looking to store any data in the repository, just get a list of standard/common attributes. Then in my program I will decide which attributes I want to use, and possibly define others as I need them (these won't be updated in the repository), and store the object definitions locally.

        OIC. In that case, you may want to do a search for XML Schema repositories. You might find one or more of the schemas at sites like this fit your requirements.

        In the big picture though, such schemas are either wholly inadequate because they do not cover everything you need; or wholly unmanageable because they do.

        Whilst they might serve you as a starting point, as soon as you reject one of their included attributes; or add a new one of your own, you've effectively made it up as you've gone anyway and any probative value that using it as a starting point might have had is lost.


        With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.

        RIP Neil Armstrong

Re: (OT) Does anyone know of a common object repository?
by zentara (Archbishop) on Oct 09, 2012 at 14:36 UTC
    As far as I know, there is no common standard for defining object attributes. It would all depend on what programming language you are using, and what the language's API uses. For instance in your lamp example, should infrared and ultraviolet emissions be an attribute of any lamp object? If your object's intended usage is simple, do you really want to deal with loading huge objects which define every possible attribute? Sometimes all a lamp needs is on/off and wattage.

    I'm not really a human, but I play one on earth.
    Old Perl Programmer Haiku ................... flash japh
      My goal here is a language independent repository of object attributes. Basically a big database that has lots of information about everyday objects.
      Example: If I want to know the standard attributes about a car I just retreive the attributes of the car object. The data returned will be a list of attributes and possibly their data type (boolean, string, number, etc...)
      Then using any programming language I can query the object repository and retreive the same standard list of attributes, for re-use.
        If I want to know the standard attributes about a car I just retreive the attributes of the car object.

        In the late 70's I was an apprentice at a car plant. Every year, each apprentice had to pick and complete a project from a long list of possibilities suggested by any of the 23,000 employees and management on site.

        In my 3rd or 4th year, the project I picked -- along with 2 others -- was part of an attempt to utilise the old payroll computer system which had just been replaced, but was still available and working, to aid in the logistics of parts for the production lines. The idea was to encode all the parts onto punch cards and use them to track the inventory as stills (wire crates or pallets) were delivered from suppliers and then again as they were consumed by the production lines.

        (Our part was simply to design and construct prototype holders for the punch cards that would be attached to each still when it arrived, and keep it dry and safe until it was empty. We were Mech.Eng. apprentices.)

        The were 3 basic car models in production at that time -- the Chevette, the Cavalier and the Ventora/Viscount. But, with body styles available in 3 and 5 door, and 'estate' variants; 3, 4 or 5 different engine options; 3 or 4 different trim levels; different wheels -- size; width; steel or alloy -- mirrors; lights; interior trims; colors -- and thus body colored option extras; ... etc. etc. etc. The machine that had handled the payroll for 23,000 people perfectly well for years, proved totally inadequate for the task. It simply couldn't handle the number of variables involved.

        As I recall, each individual vehicle require upwards of 200 punch cards -- each with 80 columns -- to define its unique combination of booleans attributes. Over 16,000 attributes to describe one single type of "object". And I betting today it would be close to double that; cars were much simpler beasts back then.

        My point is that I think you are grossly optimistic to believe what you describe is even a possibility.


        With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.

        RIP Neil Armstrong

        I think they call such a repository an Encyclopedia. :-)

        But to be serious, you might have the core of an idea for a database business .... it would take alot of work to build that encyclopedic database.


        I'm not really a human, but I play one on earth.
        Old Perl Programmer Haiku ................... flash japh
Re: (OT) Does anyone know of a common object repository?
by MidLifeXis (Monsignor) on Oct 09, 2012 at 14:44 UTC

    You may want to search for 'parametric database'.

    --MidLifeXis

Re: (OT) Does anyone know of a common object repository?
by tobyink (Canon) on Oct 09, 2012 at 17:29 UTC

    I'd suggest OpenCyc, but http://sw.opencyc.org/ seems to be down right now. :-(

    There is UMBEL too, which gives you classes with subclass/superclass relationships, but not a list of properties you might associate with a lamp. e.g. http://umbel.org/umbel/rc/FloorLamp.rdf.

    The Schema.org ontology (here in RDF) is quite well-curated, but not extensive enough to have a specific class for lamps - the closest appears to be its "Product" class.

    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
      Thanks for all the feedback!

      Looks like their are several promising projects doing this sort of thing (at some level).
      A WordNet type of approach looks interesting (and complex). UMBEL might be on the right track.

Re: (OT) Does anyone know of a common object repository?
by daxim (Curate) on Oct 09, 2012 at 14:46 UTC
Re: (OT) Does anyone know of a common object repository?
by greengaroo (Hermit) on Oct 09, 2012 at 14:35 UTC

    I don't think such a repository exists. What you can find is more of conceptual object oriented techniques called "Design Patterns". If you don't know about design patterns, I suggest you look into it. Some of these techniques are commonly used.

    Now regarding your problem, what are you trying to achieve exactly?

    There are no stupid questions, but there are a lot of inquisitive idiots.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://998010]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (5)
As of 2024-04-18 01:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found