this is my first ever stack exchange question.

I'm trying to build a tool right now and one of the features of the tool is the ability to break down a product or service into it's associated attributes/properties/classes/keywords/entities. (Choose which word best suits, as I have no idea).

For example if we had a Camera as the product. I would like to be able to generate a breakdown of everything that is associated to a camera. Such as;

Digital, Film, Optical, LCD, Glass, CCD, CMOS, RGB, Lens, Shutter, Negative, Polaroid, Darkroom, Flash, Resolution, Stabilisation, Batteries, Zoom, Angle, Telephoto, Macro, Filters, Memory, CF, SD

The list could go on for quite some time, those were jsut a few off the top of my head.

How on earth could I go about retrieving such attributes automatically? Is there a database out there that has such info? Are there any special tricks anyone has up their sleeve to be able to accumulate datasets such as the example above?

Very interested in your answers.

Thanks :)

  • $\begingroup$ What structure is your source data? If it is just the string "Camera", what kind of associations are you hoping to make - properties that a physical camera might have with variation, properties related to selling cameras? The latter is what your list looks like, but if you are starting with just a string word, you might just as well get into more open-ended word association (e.g. "Camera" is a word derived from a Latin root, it has X million Google hits, it is of interest to photographers etc etc) $\endgroup$ Nov 17, 2014 at 14:07
  • $\begingroup$ Thanks for your reply Neil. It would be just a string for "camera" and I would be looking for any words that would be associated to it, whether that be physical properties or non physical such as "light". $\endgroup$ Nov 17, 2014 at 15:20
  • $\begingroup$ This is mostly a request to find a database of particular data. I think it's not quite the right type of question for this StackExchange. $\endgroup$
    – Sean Owen
    Nov 18, 2014 at 0:23

1 Answer 1


It seems to me as if a good starting point would be to read up on the semantic web, perhaps starting with DBpedia and maybe LinkedData. You could go from there and build up your own database.

Example of a SPARQL query starting with the DBpedia page of 'Camera':

select ?label where {
  ?prod dbpedia-owl:product :Camera .
  ?prod dcterms:subject ?categories .
  ?entity dcterms:subject ?categories.
  ?entity rdf:type yago:PhysicalEntity100001930 .
  ?entity rdfs:label ?label .
  filter langMatches( lang(?label), 'en').

Generating a lot of words somehow related to 'Camera'.

"Shutter button"@en
"Rangefinder camera"@en
"Still camera"@en
"Lomo LC-A"@en
"Land Camera"@en
"Robot (camera)"@en
"Speed Graphic"@en
"Ansco Panda"@en
"Image trigger"@en
"Still video camera"@en
"Hidden camera"@en
"Mainichi Shimbun"@en
"Ōhiradai Station"@en
"Depth-of-field adapter"@en
"Banquet camera"@en
"Digital versus film photography"@en
"Remote camera"@en
"Professional video camera"@en

The above result is just an excerpt.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.