Hi Daniel,
Your message raises some important questions. I'll address them inline:
On Feb 20, 2006, at 4:07 AM, Daniel Harris wrote:
> - I'm not sure but it seems that you have one name space in your
> system. The way we are modeling Kendra Base is to have one name
> space per user. All assertions made by a user are marked as such.
> In the real world people say the same words but mean different
> things so we need to allow for that.
There is one namespace, but it is collaborative. The names themselves
are not the critical issue, since likn does not consider names to be
unique. So if you say "python is an instance of programming
language," qbot will ask something like "Are you sure? I though
python was a type of snake. Does 'python' have another meaning?" At
that point, you can abandon your own assertion and say "No, sorry,
you're right," or you can say "Yes, python also is an instance of
programming language."
From that point on, users asking qbot about 'python' will get into
its disambiguation routine. Once you've sorted out which 'python' you
mean, you can refer to it throughout your session without having to
disambiguate it every time.
> - Where is the issue of trust in terms of assertions made. Do I
> trust all assertions in your system? Can I select the users which I
> trust and the assertions which I trust? Both of which will impact
> on the results of any query/search I make.
Well, this is certainly an area where I'm open to suggestion. Because
every statement is reified internally, it's relatively simple to
allow this. The question is whether the usefulness outweighs the
tricky issues you'd face in creating an interface for this.
At the moment, I have a rough filter which reevaluates users who make
consistently unpopular assertions. If you can't seem to agree with
the community, qbot will start to respond to your assertions with
something like "No one else seems to agree with you; would you like
me to guide you through the tutorial again?" But I'm hesitant to
block vandals altogether, as I think this could inadvertently block
plenty of valid dissent.
The problem with ignoring users is that you get breakage between
nodes. For example, if you read a bunch of UserX's posts, decide he's
a complete wingnut, and ignore his assertions, it may break pre-
existing connections that you rely on. Maybe UserX was the only one
who asserted that "car" has the component "sound system," so even if
you've described your own car's sound system to qbot, all of a sudden
it will start to say "I wasn't aware that 'car' had a relationship to
'sound system;' care to elaborate?"
Rather than selecting which users are "good" and which are "bad," I
tend to prefer the democratic method of letting the assertions sink
or swim based on the community's response. This is more or less what
Wikipedia does, and with enough users, it seems to work okay.
> - I'm unsure how you have implemented "Everyone in the community
> agrees, and the model shifts". Surely, everybody is just making
> assertions. And they agree by making an assertion that looks like:
> when I say blah1574 it means the same as when John476 says blah68547.
That's certainly a possibility, but not the only one. When you say
"blah1574," Qbot searches the database for any direct matches. If it
finds one, it assumes you're talking about that specific node (which
is also a specific URI, conveniently enough). If it finds more than
one, it will almost always ask you which one you're referring to
before proceeding.
If someone has a definition of "light" that is either unworkable or a
homograph (same spelling), you can simply tell Qbot something like:
"light is a type of electromagnetic radiation."
Qbot will protest:
"But I heard that light was a type of beer!"
"Yes, but light is also a type of electromagnetic radiation."
In practice that gets you a "fresh" version of light to work with.
There's no capability to exactly say "when I say blah1574 it means
the same as when John476 says blah68547," but you can say things like
"color is the same as colour." I don't think individual people will
make enough assertions to make it worth exposing all that reification
to the user.
> - You talk about an and "outdated relationship" and "ambiguous"
> relationships. To the author of those relationships they are most
> likely current and unambiguous. It depends from whose standpoint
> you are viewing the sea of assertions. So, I guess I'm unsure where
> your standpoint is; where you're viewing from.
Very true, and this underscores how incredibly subjective all of
these assertions are. Clearly one could always get more specific, or
structure things in a different way. I think over the past few days
I've been letting go of the idea that everything needs to be
addressed hierarchically (the hair of the head of ben's body), and
embracing the idea that "Ben's hair" should be a valid term as long
as Ben has a component, possession or property named "hair"
somewhere. This largely solves the problem of needing to maintain a
1:1 relationship between the overall model/vocabulary/ontology and
the individual objects within.
- ben syverson
likn