this text was originally in “TriplesBad.”

So I want to represent:

 "Alex Schroeder put 6 simple ideas on his page, and they are..."

Well, let’s have at it:

 "Alex Schroeder" wikihomepage AlexSchroeder;
 AlexSchroeder says (wikiway doesnt scale;
                     wikiway neednot scale;
                     design matters;
                     multilingualsites good;
                     multilingualpages bad;
                     complexdiagrams require explanation;
                     simplediagrams require memorable)

That’s pretty fair. I like that representation. That would make me happy as far as SemanticNetworksForSearch goes.

“Happy” requires elaboration--

I mean that the data is manageable, and I can write nice queries like:

 ?who says (wikiway ?relation scale)

…which will tell me who had something to say about whether the wikiway scales or not, and how it scales or not, and so on.

 ?what good
 ?what bad
 ?who says (?what good)

…and so on, and so forth.

I feel fairly comfortable with the representation.

But, if I attempt to do that in pure triples, … Yikes!

 AlexSchroeder says wikiwaydoesntscale
 AlexSchroeder says wikiwayneednotscale
 wikiwaydoesntscale subject wikiway
 wikiwaydoesntscale predicate doesnt
 wikiwaydoesntscale object scale
 wikiwayneednotscale subject wikiway
 wikiwayneednotscale predicate neednot
 wikiwayneednotscale object scale

…and, great joy to the person who’s always writing queries to make reasoners that can reason conclusions over “what scales” and “what doesn’t scale” and whether AlexSchroeder said it or not.


Note: This is tangential, and ContextProblem should probably become it’s own page.

The syntax of expressing context is trivial.

 foo bar ( a b c; d (x y) f )

The difficulty I see with introducting context, is specifying queries- there are many queries that are very tricky to write:

  • “Find me a context that has, N levels beneath it, statement foo. Now, find me another (but different) context, also N levels deep, with statement bar.

You may want to keep a relative depth, for instance, you may want specific context paths, you may want specific paths to match or not to match; I suspect there are other difficulties as well.

This doesn’t mean contexts are a bad idea- the hard-to-express things are not a loss. It just means that there is some non-trivial “hard to reach” stuff.

I’ve been doing a fair bit more thinking into the subject.

( see: LionKimbroScratch?0000 )

I’m starting to think that queries involving contexts are non-trivial:

  • Do you want to look for exactly matching contexts? (“Said X, Y, and only X & Y.”)
  • Do you want to talk about context expressions that include some minimum number of statements included?
  • Or do you want to take ALL the contexts that match some given framing? (“Everything that AlexSchroeder said.”)
  • How do we label something Lion said as being on a particular date, or of being of a particular category of saying things? (“Everything that AlexSchroeder said at a conference.”)

I’m wondering:

  • Is there some single, specific form of context-related query that is immensely useful?

The version for normal Triple-based spaces, is the AND operation: the single operation of AND-ing is immensely useful, and gives you great power.

Is there such a single manipulation, involving contexts, that is similarly useful?

Regardless: I think I’ll be backing away from contexts.

If I ever approach the subject again, I’d do two things:

  • Experiment & think to find a useful single context-based expression & search method.
  • Work hard to find people working on the context problem, and to find text on the context problem.

One important clarification: I’m interested in the ContextProblem as interpreted by engineers, not psychologists. Using Knowledge In Its Context: Report on the IJCAI-93 Workshop makes the distinction clear.

The simple query system should:

  • be easy to implement in Python code - no longer than a day, and no more than, say, 500 lines
  • use simple, intuitive query forms, involving zero or 1 new operator
  • be attractively useful, similar to the implicit “AND”-ing in traditional triple modeling, doing the majority of what we want to do.


Hmm, I think this is one of those things that people have worked on a lot and yet a solution that makes everyone happy has not yet been found.

Do you have links to solutions, or know the names of solutions, that don’t make everyone happy?

No, it’s something I’ve been meaning to learn about someday though. I just have vague memories of seeing webpages or discussion threads where people list different approaches and then show why each one is annoying in some situations. MurrayAltheim would probably know. If you find such a list, let me know, I’d like to learn it.


Define external redirect: LionKimbroScratch