1
votes

Being new to semantic techs and having read much about semantic representation structures (concept nets, (xml) topic maps, semantic nets, ontologies, description logic, as well as Semantic Web techs like RDF(S), OWL(S), SPARQL), I'm currently quite confused what semantic tech to use for my current app requirement:

Goal: a web app using crowd-sourcing to semantically describe the contents of photos in photo collections -- i.e. to describe the depicted "scenes" in terms of observable subjects and objects, their respective appearances (=characteristic features), their associations, their actions, etc. -- in a textual (tag-based) manner so that a feature-based semantic search (initial) and navigation (afterwards) paradigm is supported.

Undoubtedly, I'll need to enhance recent folksonomic (tagging) approaches by a semantic tech to organize and browse the contents -- a tech nearly as simple and flexible/dynamic as social tagging and powerful enough to formalize the required statements. I think most of these constructs should be supported:

  1. Concepts, concept types, and concept instances.
    Respective system-supported relations such as is-a, is-instance-of, is-subtype-of, etc.

    Examples:

    • 'Man', 'Woman' is-a 'Person', 'Person' is-a 'Animate', etc.
    • 'Peter Parker' is-instance-of 'Man'. 'Mary Jane' is_instance_of 'Woman'.
    • 'Brasilia' is-city-of 'Brazil' located-in 'South America'.

  2. Concept features/properties (= typed attributes and relations) with system- and user-defined names (the diff. kinds).

  3. [concerning the attributes]:

    • Attributes of simple data type, as well as
    • Attributes of complex type (composites; ref. to concept or concept type), i.e.
      system supports 'has-part' relation.
    • Perhaps the distinction between 'single-' and 'multi-valued' attributes.

    Examples:

    • 'Person' has attribute 'last-name' of type 'string', 'age' of type 'int', etc. for:
      Concept 'Person Parker' first-name 'Peter', age '29'.
    • 'Person' has relation 'knows' to another 'Person' , e.g. for:
      'Peter Parker' knows 'Mary Jane Watson'.
    • 'Peter Parker' wears 'body suit' of-color 'red and blue'.

  4. [concerning the relations]:

    • Mostly binary BUT also some cases of n-ary relations, e.g.
      ternary rel "cuts_with(Person,Object,Tool)" for expressing "Peter cuts bread with knife".
      So, actually we have hyper-graphs, but higher-order rels could be handled through multiple binary rels (reification).

    • domain and/or range restrictions for relations: e.g.
      Relation 'has-human-part' goes from concept 'Person' to concept 'HumanPart'.

    • relations on relations, in other words: secondary statements on primary statements. E.g.:
      "'Harry Osborn' suspects ('Peter Parker' knows 'Spiderman')" -- i.e. a combined/higher-order range. The other case: "('Plastic' x 'Metal') is-glued-by 'mySuperGlue' (instance of Glue)" -- i.e. a combined/higher-order domain.

  5. Topology/location-based descriptions, e.g.

    • 'Mary Jane' stands-behind 'Peter'.
    • The river 'abc' is-to-the-south-of church 'xyz'.
    • 'Shark swarm' is-on-the-upper-right (of the image).

So my main question basically is:
Q1: What semantic representation technology would you use for this web app context?

  • Would you go with a special semantic network type?
    Which (optimally light-weight) type would be powerful enough?

    Or, would you instead go with a Semantic Web tech like RDF(S) or OWL(S)?
    In this case, which one would at least be needed?

  • Which storage kind would this selected semantic tech use or be appropriate?
    RDBMS, Graph DBs, or Triple Stores?

Q2: Do you know any good similar project(s) you could me point to?


Thank you all very much for you suggestions.

1
This is off-topic for Stack Overflow. Stack Overflow is a Q&A site, and this isn't a great fit for that format. One, it's too broad: "There are either too many possible answers, or good answers would be too long for this format." Two, tool/library/resource requests generally aren't a good match: "Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam."Joshua Taylor
Being new to this forum, I wasn't aware of the "off-topicness" of my question. I hoped to reach respective professionals or users who could give me some general/architectural hints from their experiences, i.e. some kind of answers like "Well, topic maps would work, but they don't support requirement xy", or more like "Oh, we had nearly the same reqs in 1 project and solved it (successfully) with RDF+OWL2", or "If you wanna support all listed reqs, there's no other option to description logic" (for example). Thus, my intention was to get some (short) architectural hints from your experiences.Kim Schmitter
It's not a bad question (although, it might be rather broad); it's just that Stack Overflow has found that this type of question doesn't tend to be a good fit for this format. answers.semanticweb.com seems to work a little bit better with some of these broader, more open ended, recommendation questions, though.Joshua Taylor

1 Answers

0
votes

I would always go for Schema.org since it is made by google and google is the biggest player here.