jump to navigation

Preserving content creator credit in OpenSim IAR transfers September 25, 2009

Posted by justincc in iars, opensim, opensim-dev, secondlife, virtual-environments, virtual-worlds.
trackback

Last week I blogged about the new experimental Inventory Archive (IAR) format in OpenSim.  This week I want to explore how much content creator information it preserves and how this could be increased in the future.

The current situation

For any object, the OpenSim Archive (OAR) format (as of OAR version 0.2) saves the creator’s unique system UUID, such as 517d9f5d-2ef2-49ba-a47c-c1658ffe715f.  This means that the creator details are preserved only if the OAR is loaded on the same system.  If the OAR is loaded to another OpenSim installation then the creator defaults to the master avatar since that target system has no profiles that match the unique ID.

IARs (as of IAR version 0.1) go one step further by saving the creator’s name rather than the ID. This is done in a prototype format known as an OpenSim Profile Anchor (OSPA).  This is buried in the XML that describes an item in an IAR.  Here’s an example.

<?xml version="1.0" encoding="utf-16"?>
<InventoryItem>
  <Name>boxee</Name>
  ...
  <CreatorUUID>ospa:n=Justin Clark-Casey</CreatorUUID>
  ...
</InventoryItem>

In this case, the boxee item was created by me.  So the OSPA is ‘ospa:n=Justin Clark-Casey’ where the n attribute is my name.  When the IAR is loaded to another OpenSim installation, if a profile exists with this name, then that profile is registered as the creator.

Possible futures

This is a little better but clearly still far from ideal.  Most OpenSim installations onto which an IAR is loaded will not have a user profile for the given creator.  Furthermore, the target system may have a different user with the same name (though I’m not sure if there’s more than one Justin Clark-Casey in the world), or more than one user could have the same name (which is defacto possible in OpenSim though not recommended).  In these cases the loaded item may end up being associated with the wrong person.

Copy the profiles

One solution would be to save the entire creator’s profile into an IAR.  That way, if the creator doesn’t exist when the IAR is loaded then their profile can be recreated.  But this doesn’t really address the issue of different users on the target OpenSim with the same name (should the existing user profile be registered as the creator or an imported one?).  It also can result in the creation of lots of profiles on big OpenSim grids.  Nonetheless this may still be a good solution for small specific-purpose grids or OpenSim applications.

Put profiles on the web

A more adventurous approach is to include a URL pointing to an external profile somewhere on the web.  The OpenSim installation to which an IAR is loaded would store creator URLs in its database rather than UUIDs.  When the profile is needed it would be fetched from the web.

This is what OSPAs were looking to accomodate.  Under this system, a creator reference might look something like

<?xml version="1.0" encoding="utf-16"?>
<InventoryItem>
  <Name>boxee</Name>
  ...
  <CreatorUUID>ospa:n=Justin Clark-Casey,p=http://justincc.org/my-vw-profile</CreatorUUID>
  ...
</InventoryItem>

where the p attribute contains the URL referencing an external profile. The n attribute remains as well in case the URL can’t be retrieved (somewhat analagous to alt attributes in HTML).

This scheme solves the doppelganger problem (users with the same name) since URLs are unique to a particular creator.  There’s also the added bonus in that the creator can update their profile after the content has been released.

However, there are still major problems to overcome. One is that it’s very difficult to shoehorn OSPAs into the Second Life system.  Second Life expects UUIDs everywhere and OpenSim has inherited this tendency.  Storing OSPAs means storing arbitrary strings rather than just UUIDs – this requires messy OpenSim architectural compromises and the evolution of existing internal data formats.

The current SL protocol also expects to reference profiles by UUIDs. not by arbitrary strings or URLs.  The workaround is to create ‘temporary’ profiles in OpenSim where OSPAs are hashed to UUIDs.  This is a very complicated task that creates a lot of holes to seal up.  I was some way down the path with this earlier this year but unfortunately I’ve since had to deprioritize the work.

In conclusion

Preserving creator identities when transferring content between separate grids is a challenge.  Nonetheless, I believe that it’s an important feature that could further promote the evolution of the OpenSim content ecosystem.  I also believe that it’s possible with the current Second Life infrastructure, albeit with a number of hacky compromises and workarounds. Luckily, in the open-source world even imperfect solutions light the onward path.

I’m also hopeful that future protocol work (such as the Linden Lab led VWRAP and other efforts) will make creator identity preservation easier.

Please note that none of what I’ve said addresses the issue of Digital Rights Management.  It’s trivial for anybody to change the saved creator information.  But I think that preserving creator information by default would be a good step forward.

All this is very experimental stuff that has largely just come out of my own head.  I hope to develop it further but I’m not sure how much time I’m going to get in the short term.  So I would love to hear comments, alternative solutions or code patches for this area of OpenSim.

Advertisements

Comments»

1. Tweets that mention Preserving content creator credit in OpenSim IAR transfers | justincc.org -- Topsy.com - September 25, 2009

[…] This post was mentioned on Twitter by Dirk Krause and Justin Clark-Casey. Justin Clark-Casey said: New blog post, Preserving content creator credit in OpenSim IAR transfers -> http://bit.ly/16zQjo […]

2. Albert Revolution - October 13, 2009

Just as you said: “Preserving creator identities when transferring content between separate grids is a challenge”. ¿Perhaps the work than the realXtend’s people are doing in their CORUS Project with OpenID and CableBeach will help?.

3. justincc - October 13, 2009

@Albert – Maybe, providing that this work proves out and can be imported upstream to the OpenSim platform.

4. Chris White - October 26, 2009

Justin,

Thanks for spending some brain cycles on this thorny problem.

I am a relative newbie to simulator architectures so please forgive any stupid questions and/or comments.

I have just started experimenting with OpenSim and have been transferring inventory from my SL account to a local simulator using Second Inventory. It did a pretty good job transferring my own creations but of course it did not transfer purchased assets where I did not have copy/transfer permission.

As a user, it bugs me that I can’t use the objects I paid for in SL in other worlds. As a content creator, I am glad that purchased content is being served up to avatars from an entity that is taking steps to insure it was only used by someone who had rights to do so.

Anyhow, it made me wonder whether there is any thought of extracting out the asset management from the simulator into a separate service. When someone creats an avatar in the ‘meta-verse’, they would select an asset service used to store their inventory. As they move from grid to grid, their inventory would move with them without needing to be transferred per-se. I imagine this would become a paid service over time (with dollars or advertising, etc).

Do you know if this approach has come up?

Chris

5. justincc - October 27, 2009

Hi Chris. Yes, people have been thinking along these lines, where the viewer accesses asset and inventory services directly rather than through the grid itself (as happens at the moment). Some of this is mentioned in my own (old!) post

http://justincc.org/blog/2008/08/15/could-there-be-a-future-without-big-grids/

and Diva’s work on Hypergrid 2 takes the same tack.

I personally think that this is the future. However, it’s a major architectural change and it will take quite a long while to get there.

6. Chris Phillips - March 6, 2010

Justin, as of todays date I have found a small glitch with iar’s. It seems to have trouble with passwords, in that the save iar command reports password incorrect, for myself, and for my wife, on our own regions attached to OSGrid. This is consistently reproducable in every attempt.
Keeping in mind of course, it could also be a grid server glitch.

regards
Chris (Greybeard Thinker in OSG)

7. justincc - March 9, 2010

@Chris. If you’re using the very latest distribution from osgrid.org this has, unfortunately, been broken. The latest official OpenSim release, 0.6.8, should be fine. There is a bug report open at

http://opensimulator.org/mantis/view.php?id=4613

hopefully I’ll get some time to fix it at the end of this week.

8. Limitations of OAR format, and/or selling opensim OAR files? - SLUniverse Forums - July 30, 2010

[…] OARs/IARs rather than a UUID or simple name is an interesting possibility, and one that I’ve previously written about. I suspect that could be the ultimate way forward, though it’s very hard to implement on OpenSim […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: