Another Word For It Patrick Durusau on Topic Maps and Semantic Diversity

May 20, 2013

Reloading my Beergraph – using an in-graph-alcohol-percentage-index

Filed under: Graphs,Neo4j — Patrick Durusau @ 3:27 pm

Reloading my Beergraph – using an in-graph-alcohol-percentage-index by Rik Van Bruggen.

From the post:

As you may remember, I created a little beer graph some time ago to experiment and have fun with beer, and graphs. And yes, I have been having LOTS of fun with it – using it to explain graph concepts to lots of not-so-technical folks, like myself. Many people liked it, and even more people had some questions about it – started thinking in graphs, basically. Which is way more than what I ever hoped for – so that’s great!

One of the questions that people always asked me was about the model. Why did I model things the way I did? Are there no other ways to model this domain? What would be the *best* way to model it? All of these questions have somewhat vague answers, because as a rule, there is no *one way* to model a graph. The data does not determine the model – it’s the QUERY that will drive the modelling decisions.

One of the things that spurred the discussion was – probably not coincidentally – the AlcoholPercentage. Many people were expecting that to be a *property* of the Beerbrand – but instead in my beergraph, I had “pulled it out”. The main reason at the time was more coincidence than anything else, but when you think of it – it’s actually a fantastic thing to “pull things out” and normalise the data model much further than you probably would in a relational model. By making the alcoholpercentage a node of its own, it allowed me to do more interesting queries and pathfinding operations – which led to interesting beer recommendations. Which is what this is all about, right?

(…)

When I read:

All of these questions have somewhat vague answers, because as a rule, there is no *one way* to model a graph. The data does not determine the model – it’s the QUERY that will drive the modelling decisions.

or

…but instead in my beergraph, I had “pulled it out”. The main reason at the time was more coincidence than anything else, but when you think of it – it’s actually a fantastic thing to “pull things out” and normalise the data model much further than you probably would in a relational model.

I don’t feel like I’ve been vague, ever. 😉

Here is my summary of what Rik may have meant:

  • “no *one way* to model a graph” -> graphs support multiple models of data
  • “The data does not determine the model ” -> may mean you can create any arbitrary model based on any data
  • “…the QUERY that will drive the modeling decisions.” -> in topic map terms, what gets represented by a topic (node in a graph) is what you want to talk about (query)
  • “…pulled it out…”/”…pull things out…” -> represent a subject with a node (graph) or topic (topic maps).
  • “…normlise the data model much further…” -> The distinction from database normalization isn’t clear, may just be filler.
    • Clarity in writing reduces unnecessary vagueness.

No Comments

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress