LOracle is a script and attachment that responds to certain chat commands to accomplish the following:
| See LOracle Quick Start for a short tutorial. |
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).
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.
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)
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.
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.
The following rating- and trust-related commands are available in normal chat (channel 8 by default).
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:
Please keep this model in mind as you read the following reference.
/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.
/8 unrate First Last
Removes your rating of avatar named First Last. Again, you may omit Last if the avatar is within scanning range.
/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)
/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.
/8 untrust Mary Jane
Removes Mary Jane from your trusted network. Her ratings will no longer be included in your view of avatars' ratings.
/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)
/8 whoitrust
“Who I Trust.” Displays list of avatars you have explicitly trusted. 6)
The following admin commands exist. LOracle will only respond to its owner and listens on channel 88 by default. (This can be changed.)
/88 chan xxx
Changes the default listen channel (8) to xxx
/88 adminchan xxx
Changes the default admin listen channel (88) to xxx
/88 agents
Displays the list of avatars that have been detected nearby.
/88 mem
Displays the free memory available to the LOracle script. 7)
/88 whois xxx
Attempts to identify the avatar referred to by the first part of its name, xxx.
/88 reset
Resets the script to its default state, including its default listen channels (8 and 88)
/88 help
Displays brief command help.
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:
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 |
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.
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.
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.
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.
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