Writing /home2/kitto/data/metakitto/data/cache/8/8bc9f56a6cb328db66b7675273ef8cf2.i failed
Writing /home2/kitto/data/metakitto/data/cache/8/8bc9f56a6cb328db66b7675273ef8cf2.xhtml failed

LOracle Documentation

LOracle is a script and attachment that responds to certain chat commands to accomplish the following:

  • Establish a persistent memory about people and their attributes, as described by others.
  • Provide a persistent rating system that is based on trusted ratings.
  • Provide an API to access ratings from other scripts.
See LOracle Quick Start for a short tutorial. :!:

Getting started

Attach the LOracle Hat or other attachment, or rez it in-world. You should see a welcome message indicating which channels are being monitored. The default channels are 8 for regular text and 88 for administrative commands and requests.

Now, try saying this:

/8 describe Second Life

You should get some sort of witty (or not so witty) response. 1)

Let's try to describe ourselves. If your avatar name is Johnny Appleseed, say the following:

/8 Johnny Appleseed is a good friend to men and women of all walks of life.

Next, let's see if LOracle learned anything: 2)

/8 describe Johnny

Notice that you didn't have to type the full name. That's because LOracle scans the people around itself within chat range, and tries to guess who you mean if you don't enter a full name (comprising a first and last name).

Scanning

LOracle scans periodically to get a list of the avatars within chat range of itself (20 meters). This helps you avoid having to type someone's full name when talking to LOracle about him/her.

LOracle also announces new arrivals when avatars first enter (or re-enter) chat range. If LOracle knows anything about the newcomer, he will say so.

Who said that?

If LOracle ever says something that strikes you as odd, or otherwise bothersome, you can find out who originally said it:

LOracle: John Doe is a bleep.
/8 WhoSaid John Doe is a bleep.

LOracle will respond with the name of the first person who said such a thing. You can take it up with him/her. There is currently no way to remove a descriptive phrase even if it is offensive. 3)

What did I say?

You can also get a list of everything you've ever said about a single person:

/8 ISaidAbout John Doe

LOracle will respond via Instant Message with a list of everything you've ever said about John Doe. This list is not available to other users.

Oops, didn't mean to say that, or Hey, that wasn't nice!

You can erase comments made about you that you don't like, or any comments you have made:

/8 erase John Doe is not very nice

Only John Doe or the person who originally said “John Doe is not very nice” can erase this. Be careful to exactly copy the phrase, including any punctuation or lack thereof.

Ratings

The following rating- and trust-related commands are available in normal chat (channel 8 by default).

Trust Model

The LOracle rating system is based on a model of a trusted network. Basically, it answers the question: “What do people I trust think about this avatar?” In order to do this, there are two basic interfaces:

  1. Rating someone
  2. Trusting someone

Please keep this model in mind as you read the following reference.

rate

/8 rate good/bad/neutral First Last

Applies a rating to avatar named First Last. Last name may be omitted if the avatar is within scan range. Choose only one of good/bad/neutral, e.g.:

/8 rate good First Last

or

/8 rate bad First Last

Ratings supercede any previous rating, so if you apply a good rating followed by a bad rating, the bad rating sticks. To remove the impact of a rating, apply a neutral rating, or use the unrate command.

unrate

/8 unrate First Last

Removes your rating of avatar named First Last. Again, you may omit Last if the avatar is within scanning range.

rating

/8 rating First Last

Displays rating information for avatar named First Last. Again, you may omit Last if the avatar is within scanning range.

Displays both your own trusted network's rating of the avatar as well as his cumulative rating by everyone, even avatars you haven't trusted yet. For example:

LOracle: People trusted by Joe Avatar rate First Last: [10:13:-3] (all 29:35:-6)

This tells you that within your trust network, 13 people have rated First Last positively, and 3 have rated her negatively, for a net score of 10. Including people outside your trusted network, her net score is 29, with 35 positives and 6 negatives. 4)

trust

/8 trust Mary Jane

Instructs LOracle to remember that you trust Mary Jane for the purposes of rating other avatars. She will now be part of your trusted network.

untrust

/8 untrust Mary Jane

Removes Mary Jane from your trusted network. Her ratings will no longer be included in your view of avatars' ratings.

doitrust

/8 doitrust Mary Jane

“Do I Trust” Mary Jane? LOracle tells you what he thinks about whether or not Mary Jane is in your trust network. 5)

whoitrust

/8 whoitrust

“Who I Trust.” Displays list of avatars you have explicitly trusted. 6)

Admin commands

The following admin commands exist. LOracle will only respond to its owner and listens on channel 88 by default. (This can be changed.)

chan

/88 chan xxx

Changes the default listen channel (8) to xxx

adminchan

/88 adminchan xxx

Changes the default admin listen channel (88) to xxx

agents

/88 agents

Displays the list of avatars that have been detected nearby.

mem

/88 mem

Displays the free memory available to the LOracle script. 7)

whois

/88 whois xxx

Attempts to identify the avatar referred to by the first part of its name, xxx.

reset

/88 reset

Resets the script to its default state, including its default listen channels (8 and 88)

help

/88 help

Displays brief command help.

API

The LOracle API for script use is protected by an authentication system. However, in the interest of enabling interesting third-party applications, there is a simple HTTP API available to retrieve rating information. This is a read-only API.

This API performs two functions:

  1. Display cumulative rating information for any avatar
  2. Display trusted network rating for any avatar

HTTP Interface

HTTP GET URL: http://www.metakitto.com/loracle/db/rating?

The following variables should be included in the URL:

Variable name Purpose Required value
ver version number 4
auth authentication may be blank or missing 8)
user avatar whose ratings are requested full name of avatar
by avatar trusted network (see below) full name of avatar or blank
text JSON or text/plain 0 for JSON, 1 for plain text response

Variable: by

The by variable is used to replicate the LOracle command /8 rating John Doe issued by, for example, Mary Jane. In this case, by would be set to Mary Jane, and user would be set to John Doe.

The result would be John Doe's rating as seen by Mary Jane and her own trusted network.

Return values

Rating information is returned in a 3-tuple: (total rating, positive ratings, negative ratings). The special tuple (-1, -1, -1) is reserved to indicate “none” or “not found.”

By default, a JSON string is returned including the following fields: all_rating, by_rating, user, and r. The field tg_flash may be ignored. JSON is easily parsed by almost any language.

If text is set to 1, a plain text string is returned instead of JSON. The string is composed of 6 numbers, separated by commas. The first three numbers correspond to the by_rating tuple. The second three numbers are the all_rating tuple. This return format is easier to parse in LSL.

Examples

Cumulative ratings

Fetching the following URL:

http://www.metakitto.com/loracle/db/rating?ver=4&user=Second%20Life

returns the avatar Second Life's ratings in a JSON string.

Trusted network ratings

Fetching the following URL:

http://www.metakitto.com/loracle/db/rating?ver=4&user=Second%20Life&by=Mary%20Jane

returns the avatar Second Life's ratings as seen by Mary Jane and her trusted network. It also returns Second Life's cumulative ratings.

Text results

Adding &text=1 to the URL will cause it to return results in plain text format, rather than JSON. Plain text is easier to parse using LSL. For example:

http://www.metakitto.com/loracle/db/rating?ver=4&user=Second%20Life&by=Mary%20Jane&text=1

1) You can also use the following question words in place of 'describe': who, whois, who's, what's
2) You can use almost any verb in place of 'is' when describing something. It's usually best if the verb ends in the letter 's', to help the parser in case of ambiguity, but LOracle usually does a good job.
3) This should probably be fixed.
4) , 5) , 6) NOTE: Like everything else, this information is displayed in normal chat, so anyone within chat range will be able to see it.
7) No, this isn't terribly useful for anything.
8) This API is fully open for now.
 
wiki/loracle_documentation.txt · Last modified: 2007/01/05 01:26 by kitto
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki