* Person
* World
* Avatar
Much of what needs to be represented can hang off those entities as
attributes or relations. (BTW, I prefer the term "persona", but
"avatar" has less name collision in this case.)
It'd be great to use a well-developed schema such as FOAF. For
example, here is a very simple document about my SL avatar, expressed
in FOAF, based on the spec at http://xmlns.com/foaf/0.1/
<foaf:Person>
<foaf:name>Hugo Junot</foaf:name>
<foaf:homepage rdf:resource="http://beta.headcaselabs.com/profile/
ceteri/SecondLife/Hugo+Junot" />
<foaf:depiction rdf:resource="http://static.flickr.com/
120/289014132_55d0d4fc78.jpg" />
</foaf:Person>
An ontology called SIOC provides extensions so that we could represent
data about blogs, forums, mailing lists, etc. They have a pretty good
illustration of how the vocabularies/namespaces can be mixed for a
combined ontology:
http://sioc-project.org/node/158
However, that approach presents a few gotchas - actually there are
several more issues, but these provide a good starting point:
* FOAF is very much centered around the concept of a physical
"Person" and "User" accounts
* Most info we need to represent centers around the concept of an
"Avatar"
* "World" representation is centered on Earth, not virtual
coordinate systems
* There is an inherent one-to-many mapping from "Person" to
"Avatar"
I've posted an illustration here of a change in "Web 2.0" usage which
seems to be afoot. Maybe this is a point where PMOG has pioneered
related ideas?
http://avatarics-discuss.googlegroups.com/web/persona_views.png
My critique is that FOAF and SIOC seem quite focused on a Person who
has various Accounts. The use cases we see at HeadCase, however,
indicate that people use clusters of accounts to establish multiple
persona. For example, I have one blog for my family, one blog for
work, one for close friends from a particular social sphere - and
practically speaking the content from those rarely ever mix. The
context for each persona draws from more than just a single account
online: my family blog references one set of pictures (MySpace) while
my work blog references another set (Flickr).
When you start to see blog + photo albums + IM accounts + etc.,
clustering to support the construction of persona, then the FOAF +
SIOC model begins to break. FWIW, LiveJournal practically makes a
business case out of supporting multiple persona... not to mention how
Linden Labs reports their economic data for Second Life.
Fortunately, FOAF allows for extensions. The parent class of
foaf:Person is foaf:Agent. While it might be tempting simply to use
foaf:Agent to represent an "avatar", that eliminates some useful
relationships only in the range/domain of foaf:Person. So it's
probably best to subclass foaf:Person, creating something like
raw:Avatar.
At this point, we might want to add more attributes specific to
avatars, such as:
* description
* time of creation (to mitigate "alts" and "griefing")
* homepage / online profile
* image
There already exist properties for foaf:homepage and foaf:image, and
plus with some creative use of Dublin Core, we can handle representing
timestamps, descriptions, etc.
There is also an existing property called foaf:based_near which
provides location. That might be useful for specifying a "World"
entity, such as say Second Life, Ogoglio, Hive7, WoW, etc. Within
discussions at HeadCase, we've been using the term "terroir" to
describe how the narrative of an avatar/persona is generally tied to
some location, some grounding, some specific space. I find that, in
terms of representing location, most online games and virtual worlds
can be considered ad-hoc geobrowsers: SL viewer is not quite the same
as Google Earth, but an approximation of sorts. However, the "geo"
part gets replaced with a virtual world coordinate system or a game
map.
This is where FOAF and most of the RDF ontology work simply won't work
for virtual worlds. Researching the existing approaches - such as
http://esw.w3.org/topic/GeoInfo - it seems obvious that these are
strongly tied with latitude/longitude systems for geolocation. For
example, here is our earlier simple FOAF document with geolocation
added:
<foaf:Person>
<foaf:name>Hugo Junot</foaf:name>
<foaf:homepage rdf:resource="http://beta.headcaselabs.com/profile/
ceteri/SecondLife/Hugo+Junot" />
<foaf:depiction rdf:resource="http://static.flickr.com/
120/289014132_55d0d4fc78.jpg" />
<foaf:based_near>
<geo:Point geo:lat="35.274305" geo:long="-120.663192"/>
</foaf:based_near>
</foaf:Person>
Unfortunately the virtual worlds differ widely in their coordinate
systems. For example, a Second Life "SLURL" contains an island name
plus an <X,Y,Z> region coordinate vector, such as this one for my
avatar in SL:
http://slurl.com/secondlife/Headlands/233/64/32/
Other systems which are browser-based use URLs. For example, my avatar
in Hive7 has a profile room at:
http://wvw.hive7.com/hugo.junot.home
Still others use URLs plus some keys (GET-encoded parameters), such as
on GaiaOnline:
http://www.gaiaonline.com/gaia/shopping.php?key=ggcmjiwqlqkpvbos
In any case, I'll assume that there is enough richness in RDF, RDF
Schema, OWL, etc., so that a system of metadata descriptions for
"World" could be designed. It would probably be a "resource" (a URI)
plus some additional attributes: reference to World name, optional
<X,Y,Z> coordinates, optional keys, etc.
Another point I should mention is that an RDF vocabulary called
RELATIONSHIP extends FOAF to provide ways for describing relationships
between people:
http://vocab.org/relationship/
That could be useful here. I could see a rel:descendantOf kind of
property being followed as a pattern here - such as raw:personaOf - to
help represent the one-to-many mapping between "Person" and "Avatar".
I hope that helps present some issues for discussion about
representing "terroir" in virtual worlds. Next, I'll show an RDF
vocabulary that implements these extensions.
Paco
I know that we don't want to make it too complex, but I think that
these attributes might be really useful for automatic processing for a
myriad of applications.
~flo