Michael,

see responses inline

On 28/04/09 23:55, Michael Della Bitta is rumored to have said:
> Hi, I'm wondering if there's an existing body of code or more advanced
> documentation that shows off the add/purgeRelationship and
> getRelationships calls in API-M. I'm a little confused about what
> acceptable values for each of the fields are, the transactionality of
> these calls, when information is written even when an exception is
> thrown, etc.

There's some test coverage of the relationships API which has some code 
examples:

http://fedora-commons.svn.sourceforge.net/viewvc/fedora-commons/fedora/trunk/src/test/junit/fedora/test/api/TestRelationships.java?view=markup

The relationships API is a set of convenience methods for manipulating 
the RELS-EXT datastream. So, acceptable values should map directly to 
what's allowed in the RELS-EXT datastream. If an api call throws an 
exception, the RELS-EXT datastream should remain untouched.

> In particular, it seems I can create a relationship to an object that
> doesn't exist yet, but I can't purge it. And I'm having difficultly
> creating an entry with a literal value, which seems to be related to
> not knowing when I need to specify a PID as an object identifier or a
> info:fedora/ URI.

The former sounds like a bug. I can look into that--if you have a 
stacktrace send it to me or if you don't mind, go ahead and open a bug 
on our tracker and post it there. As for the latter, use the short-form 
pid, e.g. "demo:123", NOT info:fedora/demo:123.

> Lastly, I'm not clear on how a non-Fedora system predicate should be
> expressed... In the XML, it's kind of clear, I declare a namespace and
> use it, but I can only offer a String to the SOAP call. How should I
> express it here? Via a URI like a namespace?

Just use the full uri, e.g.: "http://example.org/foo#bar";.

I don't recall offhand whether you could first create the RELS-EXT 
datastream in your object with your own namespace declarations and then 
have subsequent addRelationship calls take advantage of that, but my 
guess is not. I can look into this while looking at the bug you 
identified above.

> Is the best practice for an organization creating their own
> relationship types to use HTTP URIs with the organization's own
> Internet domain, or something else?

I don't know if it's a best practice, but it seems a common one. Of 
course, organization names change and sometime domain names follow, so 
even in that case, I don't think that it's terribly important from a 
technical standpoint (marketing & branding might say otherwise).

------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance & Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
Fedora-commons-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fedora-commons-users

Reply via email to