Log of the #duraspace-ff channel on chat.freenode.net

Using timezone: Eastern Standard Time
* kaarefc joins00:50
* kaarefc leaves01:15
* kaarefc joins01:24
* kaarefc leaves01:30
* kaarefc joins01:48
* kaarefc leaves01:52
* eddies leaves02:05
* eddies joins02:11
* eddies leaves
* eddies joins
* kaarefc joins02:33
* eddies leaves03:06
* eddies joins03:31
* eddies leaves
* eddies joins
* eddies leaves03:49
* eddies joins05:18
* eddies leaves
* eddies joins
* fasseg joins06:40
hola!
cbeer: are you there?
Or can anyone tell me how the dsChecksum semantics changed? Since it's a URI now...06:41
is this just urn:sha-1:<checksumdata> now?06:44
* nbanks joins06:56
* nbanks leaves06:57
* nbanks joins06:58
* nbanks leaves07:05
* nbanks joins
<eddies>fasseg: i think that's right. i can't remember if there's a hyphen or not in sha-1. in any case, just refer to the datastream test case07:07
<fasseg>yeah i saw it in there, but i though i'd better ask before i miss something ;)07:08
* nbanks leaves07:09
* nbanks joins
* nbanks leaves
* nbanks joins
* kaarefc leaves07:49
* kaarefc joins07:50
* jcoyne joins08:27
* vng0-aws joins08:42
* kaarefc leaves09:00
<vng0-aws>how should a user request fixity check on a object/datastream? /{PID}/datastreams/{DSIS}/fixity ?09:06
<cbeer>eddies: i think i'm going to pull some easy tasks into the current iteration to work on today. i don't feel up to starting some of the others on a Friday.09:54
<VincentNG>#fridayitis09:56
<eddies>cbeer: can you resurrect ff-pivotal?10:03
<cbeer>eddies: yes, sorry. restarted the machine10:04
* ff-pivotal joins
<cbeer>might be time to permanently mount that, i guess.
<ff-pivotal>Chris Beer added comment: "https://github.com/futures/fcrepo-merritt" https://www.pivotaltracker.com/story/show/4584426110:05
<cbeer>hm.10:07
* ff-pivotal leaves
* ff-pivotal joins
Chris Beer added comment: "(please tell me this is some cruel Java/JAX-RS parody of cache headers..)" https://www.pivotaltracker.com/story/show/4545854510:08
Edwin Shin added comment: "i just add the links to folks who talk about these specs" https://www.pivotaltracker.com/story/show/4545854510:10
<eddies>cbeer++ (for fcrepo-merritt)10:12
<cbeer>i was lazy.10:13
done properly, i would have preserved the commits that got us to that point
<ff-pivotal>Frank Asseg added comment: "So create a new ticket and mark this one as "delivered" ?" https://www.pivotaltracker.com/story/show/4569056910:16
<eddies>having spent most of day trying (and failing) to write a unit (not integration) test for a 5-sec code fix to an fcrepo3 jax-rs resource, i'm actually nervous to see what the state of affairs is in fcrepo4 with cxf and spring-magic
<ff-pivotal>Chris Beer added comment: "Yes, if you can run that command and see the two filecacheloader directories (defined in that infinspan confi..." https://www.pivotaltracker.com/story/show/4569056910:17
<eddies>i just want to let you all know i passed on a trip to bangkok for a bachelor's party tonight so i could make our call and work on ff :-P10:18
(that, and i felt like i'd already seen the movie version)10:19
<cbeer>i wouldn't mind cancelling stand-up any time I get at least 12 hours notice :)
<eddies>but i'm still grumpy
cbeer--10:20
has anyone tried http://arquillian.org/ ?
<ff-pivotal>A. "Schwarmerei" Soroka added comment: ""@Cacheable(cc="public, maxAge=3600")"? That's really so terrible?" https://www.pivotaltracker.com/story/show/4545854510:21
* ajs6f joins10:22
<ff-pivotal>Frank Asseg added comment: "there's already this: https://www.pivotaltracker.com/story/show/45690659" https://www.pivotaltracker.com/story/show/45690569
Chris Beer added comment: "After writing 30 lines of code to let us do that? And I still have no idea how we'd add etags or lastupdated ..." https://www.pivotaltracker.com/story/show/45458545
<ajs6f>Yeah, it' a JBoss product, and it's good but young. For my work with CDI I went with Pax Exam.
* eddies should make everyone write a test case for fcrepo3 Server code to appreciate what happens when tests are an afterthought10:23
<ff-pivotal>Chris Beer added comment: "i'd be happy now with an example that i can mvn jetty:run. What you say sounds good, but I have no idea how t..." https://www.pivotaltracker.com/story/show/45458249
<eddies>oh. i met the guy who wrote pax-exam in geneva a few years back
<cbeer>https://community.jboss.org/message/801588#801588
<eddies>haven't used it since =)
* github-ff joins10:24
[fcrepo4] vnguyen745 pushed 1 new commit to master: http://git.io/4ZV1eQ
fcrepo4/master a6bff94 Vincent Nguyen: changed case of exceptionhandler package
* github-ff leaves
<ff-pivotal>A. "Schwarmerei" Soroka added comment: "Pretty much the same way, with a filter. You could alter the same filter to select for either. A..." https://www.pivotaltracker.com/story/show/45458545
<cbeer>i don't think his answers are very useful for the weird stuff we want to do, but.
<fasseg>cbeer: when trying to verify the ticket: so i should have "FedoraRepository/storage" and "FedoraRepository/storage-alt" in my targe, right?
<cbeer>sounds right. and if you wanted to be really good, you could try deleting one of them and restarting and see what happens.10:25
(because i didn't. and the forum post i just linked to makes me doubt what might happen)
<fasseg>no storage-alt here :/
gues ill have to add some objects ;)10:28
Is there an example xml/json somewhere that i can post to the server?10:29
<eddies>just curl -X POST http://localhost:8080/rest/objects/new10:31
then POST again to /datastreams10:32
or am i misunderstanding
<fasseg>thx10:33
<eddies>e.g. curl -H "Content-Type:application/pdf" -X POST —data-binary @myPdf.pdf "http://localhost:8080/rest/objects/{PID}/datastreams/myPdf"
<jonathangee>i have a conflict with the standup today, so i won't be around. i don't have any ff updates today though.10:34
* nbanks leaves10:37
<ff-pivotal>A. "Schwarmerei" Soroka added comment: "One way might be to use something like: ""10:38
https://code.google.com/p/google-oauth-java-client/wiki..." https://www.pivotaltracker.com/story/show/45458249
<cbeer>ajs6f: ignoring the oauth piece (so, really, i guess this ticket: https://www.pivotaltracker.com/story/show/45458055)10:40
how do i make it happen?
i feel like i'm missing some really big, really obvious piece10:41
<eddies>ajs6f: golly it would be swell if we could package a jar that could be a kitchen-sink dependency for folks who want oauth support
<ajs6f>eddies: Sure would, big guy! Just let me know when it's done! :)10:42
<cbeer>(which, if my evil plan plays out, should be most people.. seems like as good a way as any to authenticate services)
<eddies>*plays cackling effect*
<ajs6f>cbeer: we just want the authN info, right? We're not talking about authZ yet?
<cbeer>ajs6f: yes. i just care about authN right now.10:43
speaking of authz though...
there was a modeshape forum post recently about modeshape + authz and i followed some links down until i found...
http://www.jboss.org/picketlink/XACML.html10:44
<ajs6f>So, assuming that the container has developed some identity (some Principal) on the request, we want to retrieve it inside a JAX-RS message, yes?
Sorry to be nitpicky, just trying to understand xactly =what we want/10:45
<cbeer>sure, that sounds right.
<ajs6f>Okay, I think the first thing to try would be to inject :http://jackson.codehaus.org/javadoc/jax-rs/1.0/javax/ws/rs/core/SecurityContext.html10:46
into the method. So like:
getMy#&$Together(@Context SecurityContext secContext, other params…) {10:47
doSomeStuff();
Principal myUser = secContext.http://jackson.codehaus.org/javadoc/jax-rs/1.0/javax/ws/rs/core/SecurityContext.html#getUserPrincipal()();
Urg, bad paste.10:48
<cbeer>eddies: is it out-of-line to respond to Dan Davis' email:
"Fedora must be designed to evolve and using a single checksum or being bound to the implementation of a single storage storage subsystem is bad---convenient, reduces implementation cost but bad. "
<ajs6f>more like
<cbeer>with: hey, we're building an MVP here. is it ok for an MVP?
<ajs6f>Principal myUser = secContext.getUserPrincipal();
<eddies>STOP. THE. PRESSES. we can have xacml all over again? YES.
<ajs6f>}
<eddies>sorry. couldn't resist. carry on.
i have emotional scars from xacml
<ajs6f>Wow. I'd hate to try to follow this IRC log if you weren't here at the time.10:49
<ff-pivotal>Frank Asseg added comment: "I can't verify that there a two storage directory: I'm running the current build from master, cd into fcrepo..." https://www.pivotaltracker.com/story/show/45690569
<cbeer>ajs6f: ok, cool (man, JAX-RS is magic)
<ajs6f>INJECTTTTIONNNNNN, TO INFINITY!
<cbeer>so, then, how do I teach jetty about authn? can i do that with our mvn jetty:run?
i guess that's a web.xml thing, huh?
<ajs6f>Yeah, hang on— I have an example here somewhere.10:50
cbeer: Do you have Safari (O'Reilly's online product)? maybe through your library? 'Cause I can just send you a link then.10:51
<cbeer>ajs6f: yeah, i think so
<ajs6f>http://my.safaribooksonline.com/book/programming/java/9780596809300/securing-jax-rs/authentication_and_authorization_in_jax-10:52
If that don't work, I'll cut a Gist.
<cbeer>hey, that sounds like a book i should probably read all of.
<ajs6f>Me, too.
But I hate reading online.
<cbeer>me too. it's a clever ploy to get you to buy the actual book10:53
<fasseg>eddies: should the fixity service be a war an d run in a Servlet Container or should this be a plain executable jar?
interesting because of fixity result reporting mainly.
<ajs6f>I think I'll get my library to but the book.10:54
s/but/buy
<eddies>i hadn't thought of it as a war. but i suppose i can conceive of a war packaging—yes, because of the reporting side
<ff-pivotal>Chris Beer edited "Configure Infinispan to store multiple copies of the data in different directories" https://www.pivotaltracker.com/story/show/45690569
<eddies>fcrepo-fixity-webapp or something
afk until standup
<ff-pivotal>Chris Beer finished "Configure Infinispan to store multiple copies of the data in different directories" https://www.pivotaltracker.com/story/show/4569056910:58
Chris Beer added comment: "It's probably help if I gave the right syntax for the MAVEN OPT: ""
MAVEN_OPTS="-Dfcrepo.infinispan.cache_confi..." https://www.pivotaltracker.com/story/show/45690569
<cbeer>turns out : and = are not the same.
https://plus.google.com/hangouts/_/46ed3fe3f2d8606cbc4c4056cc8bb4cce9176ebc?authuser=0&hl=en11:00
whoa, i think i just saw a dial-pad in the hangout
<eddies>yah me too
<cbeer>that might make dialing into the other conference call possible11:01
<eddies>oh right. barmintor is at yale today11:02
shall we start, scrummaster?
<cbeer>so, no barmintor, for jonathangee11:03
ajs6f? i assume not.
<ajs6f>No, but I'm here on IRC if there are any super important questions.
<cbeer>k
<ajs6f>I haven't done anything worthwhile, anyway.
<ff-pivotal>Frank Asseg started "Fixity failure reporting + logging" https://www.pivotaltracker.com/story/show/4568918711:08
Frank Asseg edited "Build a fixity/checksum validation service" https://www.pivotaltracker.com/story/show/4545782311:09
Frank Asseg started "Build a fixity/checksum validation service" https://www.pivotaltracker.com/story/show/45457823
Edwin Shin started "Switch from #duraspace-ff to #fcrepo for IRC" https://www.pivotaltracker.com/story/show/4575692711:14
<eddies>going to step out for a bit.11:15
<ajs6f>afk11:16
<ff-pivotal>A. "Schwarmerei" Soroka added comment: "That looks really cool. Simple and clear. If we can pick a templating tool on which to agree (Mu..." https://www.pivotaltracker.com/story/show/4517870511:32
Chris Beer started "Create RDF triples generator service" https://www.pivotaltracker.com/story/show/4546409911:33
<cbeer>gah. i really don't want to go into the office today, but java on just a laptop screen is soo annoying.11:34
* travis-ci joins11:39
[travis-ci] futures/fcrepo4#182 (master - a6bff94 : Vincent Nguyen): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/46dd92a6e54e...a6bff9402807
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/5344686
* travis-ci leaves
<ff-pivotal>Frank Asseg added comment: "yep...now it works for me...delivering" https://www.pivotaltracker.com/story/show/4569056911:40
Frank Asseg edited "Configure Infinispan to store multiple copies of the data in different directories" https://www.pivotaltracker.com/story/show/45690569
<cbeer>ajs6f: given a JCR property, do you know how to get the namespace etc defined in the CND?12:08
i've been looking through the javadocs, and they must call it something else
or i'm not looking in the right place
(or are namespaces a MODE thing, not a JCR thing?)
ah, getName()12:12
or..12:13
uh.
<ajs6f>You want...12:24
<cbeer>(i've asked in #modeshape now too..)
as far as I've been able to tell, i need to query teh namespace registry after splitting the string myself.
but i seriously hope there's a better way12:25
(although i almost doubt it.. it seems like namespaces are kinda bolted on)
<ajs6f>http://www.day.com/maven/javax.jcr/javadocs/jcr-2.0/index.html?javax/jcr/NamespaceRegistry.html12:26
getPrefixes();
and
getURIs
;
Right?
<cbeer>yes, i want to get there eventually. but i was hoping i wouldn't need to:12:27
take my property
getName
split by :
go to the namespace registry
get the prefix.
that seems almost cruel.
* github-ff joins12:32
[fcrepo4] vnguyen745 pushed 2 new commits to master: http://git.io/xPJQLQ
fcrepo4/master 36cd235 Vincent Nguyen: changed case of exceptionhandler package
fcrepo4/master 157ac89 Vincent Nguyen: Merge branch 'master' of https://github.com/futures/fcrepo4
* github-ff leaves
<cbeer>and the overlap in class names between jena and jcr is killing me.
<ajs6f>I'm not sure I understand what you're trying to do...?12:35
afk12:36
<cbeer>ajs6f: so, here's what I don't want to write:12:39
String n = property.getName();
final String[] parts = n.split(":", 2);
String namespace = property.getParent().getSession().getWorkspace().getNamespaceRegistry().getURI(parts[0]);
String local_part = parts[1];
resource.addProperty(resource.getModel().createProperty(namespace, local_part), property.getValue().getString());
oh well, i'll just commit it and we can fix it later13:05
<ajs6f>I still have no idea what's going on here. Are you trying to add a property to a node?13:26
What's the use case?13:27
<cbeer>ajs6f: i'm taking the JCR properties and turning them into rdf.13:29
<ajs6f>Okay. So you need to expand the prefixes?
<cbeer>so i need the full URI namespace of the jcr property.
yes.
<ajs6f>Okay, now I'm with you.
And you're using the Jena API for this?
<cbeer>yes.
<ajs6f>Okay.13:30
Hang on… I want to check something real quick.
<cbeer>k
and an unrelated spring question. i've broken something somehow:
https://gist.github.com/cbeer/20970f6a489643bbec9c
i renamed stuff, but can't make heads or tails of that stack trace13:32
<ajs6f>org/w3c/dom is in the JDK...
Did you upgrade any dependencies?13:33
<cbeer>not to my knowledge.
* travis-ci joins13:34
[travis-ci] futures/fcrepo4#183 (master - 157ac89 : Vincent Nguyen): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/a6bff9402807...157ac898fd14
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/5348159
* travis-ci leaves
<cbeer>oh well, as long as you haven't said "oh, duh, you need to do X" i'll keep poking at it. narrow it down to the commit at least
<ajs6f>My guess would be a classloading issue that is preventing xml-api.jar from loading, but I don't know how you might have introduced that. Did you start seeing it when you added Jena to the mix?13:35
P.S. Have you pushed the RDF stuff somewhere? I'd like to take a look at it in an IDE.13:36
<cbeer>not yet. let me take out the dependency and see13:37
<ajs6f>Y'know, I think you may be going at the property creation in a way that makes life hard. What about using a ResourceFactory, like:13:39
http://jena.apache.org/documentation/javadoc/jena/com/hp/hpl/jena/rdf/model/ResourceFactory.Interface.html#createProperty%28java.lang.String%29
Wouldn't that let you avoid parsing the property name? You'd just have to see to it that any serializations get written out with prefix-URI mappings incuded,13:40
as appropriate to that serialization.
Or am I still misunderstanding what you're trying to do?
<eddies>cbeer: i think that is one of those unfortunate cases where one of the dependencies is shadowing org.w3c.dom. I remember this with things like XMLConstants where an implementation of the stax-api would shadow XMLConstants but not provide one of the values provided by the jdk13:41
so you either isolate the dependency, play with order in the classpath, or i-don't-know
<fasseg>eddies: here's something to play with: https://github.com/futures/fcrepo-fixity-webapp13:42
<ajs6f>This is a case where OSGi is handy, but all in good time.
<fasseg>eddies: you can run this now against a fedora repository and it exposes endpoints for queueng fixity checks and for retrieveing results13:43
<eddies>can you even deal with that easily in osgi? if a bundle says it exports a class/package, as a consumer of that bundle can you override that?
<fasseg>im off in the weekend, if you guys need something, you can try to reach me via googletalk..
bye..
* fasseg leaves
<eddies>(it's been a long time since i've played w/ osgi)
<ajs6f>You can decide which provider is going to service hom.13:44
whom
In previous versions of osgi, you couldn't do that within the consuming bundle.
<eddies>right, but say you need both dependencies…but one them is being obnoxious and shadowing something in the other
<ajs6f>But you could do it elsewhere in the framework.
But if I am not mistaken, you now have:13:45
:::13:46
<eddies>gosh, i feel like i'm waiting on pins-and-needles ;-)13:47
<ajs6f>capabilities, which allows for arbitrary metadata on requirements.
:::::
::::
:
Depending on the actual interaction going on here ::::we might also be able to use version or other :semantic to avoid a collision. :M:y point isn't that OSGi is magic, but that it give you some tools (and a lot of diagnostics) to get around this kind of problem, because:::::::::: of it's mercilessly strict classloading.13:49
<eddies>ajs6f: is the :::: business supposed to be meaningful or is my irc client bugging out13:50
<ajs6f>No, I think thats my eyboard
Yeah, it definetly is.
<cbeer>ok, i think i figured it out. apparently when you add a dependency on jena-core, you also have to add a dependency on xerces?
<ajs6f>I just switched.
Really, cbeer? That's crummy. Shouldn't Maven handle that?13:51
<cbeer>maybe i'm mavening wrong.
<eddies>cbeer: you mean xerces is a transitive dependency of jena-core or that you need to explicitly add xerces?
<cbeer>i had to explicitly add xerces.
<eddies>huh
<cbeer>i might be doing something wrong13:52
<ajs6f>No, maybe Jena is Mavening wrong.
<cbeer>but at least my test passed
<eddies>i think jena is mavening wrong then
<cbeer>i guess it's nice of them not to insist on xerces or something
but :/
<ajs6f>Aye. That's the whole bloody point of Maven's trans-dep management.
<cbeer>i'll push this up to a branch first13:53
<ajs6f>cbeer: did you catch my comment above about ResourceFactory?
* github-ff joins
[fcrepo4] cbeer created rdf-generator (+7 new commits): http://git.io/jGWeIA
fcrepo4/rdf-generator 83c9488 Chris Beer: add RDF generator stub, that pulls data from the jcr properties
fcrepo4/rdf-generator fb22b3e Chris Beer: rename dublin core stuff for consistency with the rdf generator
fcrepo4/rdf-generator afaebb9 Chris Beer: update the webapp with the new names for some of the classes
* github-ff leaves
* github-ff joins13:54
[fcrepo4] cbeer opened pull request #32: Rdf generator (master...rdf-generator) http://git.io/u_PCWg
* github-ff leaves
<cbeer>ajs6f: i saw it, looked at the doc, and decided i didn't know what to do with that knowledge
<ff-pivotal>Chris Beer added comment: "https://github.com/futures/fcrepo4/pull/32" https://www.pivotaltracker.com/story/show/45464099
<cbeer>does it mean i could create a property using "dc:title" and, because i registered a bunch of namespaces ahead of time, it'd just do the right thing?
<ff-pivotal>Chris Beer edited "Create RDF triples generator service" https://www.pivotaltracker.com/story/show/4546409913:55
<ajs6f>You're trying to create a Property by createProperty(namespace, name).
That's why you have to break up the JCR Prop name.
ResourcFactory has a createProperty(String uri)
No need to break up the name and look it up.
<cbeer>yes, but wouldn't I need the fully-qualified property URI?
<ajs6f>Why?13:56
You would when you serlalizae.
<cbeer>how is it going to know dc:title is actually purl.org/terms/dc#title, or whatever
<ajs6f>It won't, until you serialize.
Why would it need to?
You're not building a persistenent graph to reason over, are you?
Just generating serializaed RDF, right?13:57
So when you serialize, that's when you offer the prefix-to-namespace mapping.
Are you going to use Jena for writing? I would take a look at Any23.13:59
Real nice: http://any23.apache.org/apidocs/org/apache/any23/writer/package-frame.html14:01
<cbeer>yes, i was using Jena for everything. i pulled in a massive sledge-hammer and intended to use it.
<ajs6f>Try my Swiss army knife.
The thing about Jena is that it's for processing RDF< but it sounds like for this task, you just want to build it, not process it.14:02
No reasoning or validation or that sort of thing.
<eddies>i was never fond of jena's apis if you just want to parse/generate triples
<ajs6f>Right.
<eddies>all that model and statement creation
<ajs6f>I turn to Any23 for that sort of thing these days.
<eddies>(unless that's changed since i last used it)
<ajs6f>It's not as heavy, but it's still heavy.14:03
<cbeer>ajs6f: got an example of taking a java object and turning it into triples? i'm looking for examples and everyone wants to use it for converting an html document into triples it seems
<eddies>i remember looking at any23…i know there was something it didn't do when i was looking at it for fedora-client
(so i ended up using jena anyway for the fedora-client integration tests of the relationships api)
<ajs6f>You want to set up a writer and then feed it directly with triples.
Hang on, I've got an example here somewhere.
<cbeer>thanks. you just continue to confuse me with someone who knows what he's doing. i'm just unusually good at taking an example and turning it into something that passes tests :)14:04
<ajs6f>Here's the method you want to use14:05
http://any23.apache.org/apidocs/org/apache/any23/writer/TripleHandler.html#receiveTriple(org.openrdf.model.Resource, org.openrdf.model.URI, org.openrdf.model.Value, org.openrdf.model.URI, org.apache.any23.extractor.ExtractionContext)
So you'd build a writer, maybe RDF/XML, like:
myWriter =RDFXMLWriter(http://download.oracle.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true out) ;14:06
<cbeer>(ok, this reminds me why i chose jena.. the sesame website seems slow or non-responsive)
<ajs6f>Urg, stupid paste.
<eddies>cbeer: also see: http://any23.apache.org/dev-data-conversion.html
<ajs6f>myWriter = new RDXMLWriter(outputstream)
and then loop on your triples (that you generated from JCR props)14:07
and do: myWriter.receiveTriple();
Actually, you also want to loop over the NamespaceRegistry and do:
<cbeer>ok, but then i still have the annoyance of converting a jcr property to a proper predicate URI, right?
<ajs6f>No, no, hang on, I was just about to explain that.
<cbeer>k
<ajs6f>loop over the NamespaceRegistry and do:14:08
<cbeer>(PATCHES WELCOME!)
<ajs6f>myWrtiter.receiveNamespace(prefix, uri)
Then do myWriter.endDocument
()
Urg. Can't get formatting. But do you see what I'm saying?
Don't precess the namespace in each triple.14:09
Namespaces, possbiy.
<cbeer>ok, and something magic in any23 will take a new URI("dc:title") and do the right thing with it?
<ajs6f>No, and that's not how you would call it.
I'm suggesting two loops:
one over the triples from your JCR resource (no namespace mapping going on)
the other over the entries in NamespaceRegistry.14:10
o you want me to write pseudocode, maybe
?
<cbeer>i'm still not getting where we get from the jcr property name of "dc:title" into a serialized rdf predicate <http://purl.org/terms/dc#title> (or whatever it actually is)
so, if you think pseudocode would help, i'll take it.14:11
or i can start converting my jena code to use any23
<ajs6f>YOU don't. That's the point. You put the prefix _in_ the document, and you put the prefix mapping in the document.
<cbeer>and maybe it'll occur to me
<ajs6f>Hang on.
<cbeer>ok. just from reading the java docs, i give receiveTriple a URI. what is the URI i give it? just dc:title?14:12
<ajs6f>?!?!
void receiveTriple(org.openrdf.model.Resource s,
org.openrdf.model.URI p,
org.openrdf.model.Value o,
org.openrdf.model.URI g,
http://any23.apache.org/apidocs/org/apache/any23/extractor/ExtractionContext.html context)
<cbeer>org.openrdf.model.URI p
<ajs6f>That's four URIs, one of which is optional.
<cbeer>needs to be a value.
what is its value
<ajs6f>Oh, yeah, "dc:title" is fine.14:13
<cbeer>ok. so we're assuming all predicates are handled in the JCR namespace registry
and no one is going to do anything stupid
any23 is just a concatenation engine for us
right?
<ajs6f>Not sure what you mean by concat engine?14:14
<cbeer>(one that can concatenate things into n3 or rdf/xml or whatever.. but just dealing with our text for us)
<ajs6f>Yeah, basically. The two things it's doing for us are:
1) Writing a proper namespace declaration in whatever format we like, and14:15
2) Writing a proper triple in w. f. w. l.
And doing those two things as many times as we like.
We have nothing to wrory about as far as keeping track of the namespaces in the JCR.
Because no one _can_ use a non-registered namespace in a property. We found that out early on, the ahrd way.14:16
<cbeer>but someone could write a rdf generator that pulls data out of a datastream (e.g. RELS-EXT)
but i guess that's ok, because that'd actually get parsed as rdf first?14:17
<ajs6f>Yeah, this trick only works if you let the JCR keep track of all of your namespaces.14:18
I woud think of it as being part of what we get if we pay the price of using the JCR to store assertions. Namespace tracking for free.
If we wanted to include a special-slot ds, then I would keep using Any23.
<cbeer>i'm not sure i feel comfortable assuming that. i might have some really awful existing rdf14:19
<ajs6f>I would just, as you say, parse the magic ds and then add it to the triples I send to my writer.
<cbeer>ok
<ajs6f>If your RDF literally doesn't parse…. ?
<cbeer>oh, no, it must parse.
<ajs6f>Right. And then, I think we're cool.
We just have to refrain from trying to _do_ anything with the triples other than build them and write them.14:20
<cbeer>but i use the dc prefix to mean something different.. but that's fine, because we'll have to parse the RDF properly
<ajs6f>Put that sledgehammer down!
Right, right.
<eddies>(you know, jena isn't looking so bad) ;-)
<ajs6f>This is just a convenient trick to aavoid you, chris from having to keep track of namespaces independently.14:21
Seriiously, Eddie?
myWriter = new SomeKindOfAny23Writer(outputStream);
for (String prefix : namespaceRegistry.getPrefixes() ) {
myWriter.receiveNamespace(prefix, namespaceRegistry.getURI(prefix) );
for ( {loop-over-the-props-of-a-node} ) {
myWriter.receiveTriple(nodeURI, propURI, value)
}
Looks pretty reasonable to me.
<eddies>heh. actually, time has conveniently erased the more painful details of jena for me14:22
so not, not so serious
<ajs6f>It's a great system. It's just that it's meant for semantic work. We're really interested in serializing into an RDF format. We're not really using the RDF model or anything else of that ilk.
I'm going to go afk for a bit. I hope that maybe helped a little, cbeer. let me know if you want back up.14:23
afk14:24
<cbeer>eddies: with your product owner hat on, any thoughts?14:25
<eddies>any23 vs jena you mean?14:26
<cbeer>i guess there's nothing stopping us from using any23 to do the jcr stuff
and something else to do something else
<eddies>in the spirit of full-disclosure: i just went down to the bar with some friends for an hour and had two drams of scotch and a beer, so i should refrain from any executive decisions tonight14:27
<cbeer>:P
<eddies>jena is the "safe" choice14:28
in java land it seems everyone falls back to jena. next i would say is sesame
<cbeer>ok, and because i haven't found out what maven group and artifact to use for any23 in a minute, i'm just going to ship it.
<eddies>but adam's point that for what you need, jena seems a bit overkill14:29
<ff-pivotal>Chris Beer edited "Create RDF triples generator service" https://www.pivotaltracker.com/story/show/45464099
<eddies>=)
<cbeer>sorry adam.
<eddies>fyi, http://search.maven.org/ is your friend
http://search.maven.org/#search|ga|1|any23
* github-ff joins14:30
[fcrepo4] cbeer pushed 1 new commit to master: http://git.io/6c27FA
fcrepo4/master c00ad05 Chris Beer: Merge branch 'rdf-generator'...
* github-ff leaves
<cbeer>ah ha
i didn't know about that
<eddies>and there are sites like jarvana.com for looking up a maven artifact from a class name
or mvnbrowser or i'm sure plenty others14:31
<cbeer>hm. the any23 website suggests 0.7.1 is out
oh, no. -SNAPSHOT
<eddies>yeah, search.maven.org lags the actual releases by a few hours
oh, nm
<ff-pivotal>Chris Beer added "Convert fcrepo-generator-rdf to use any23" https://www.pivotaltracker.com/story/show/4586422314:32
<ajs6f>Assign that to me, cbeer.14:33
<ff-pivotal>Chris Beer edited "Convert fcrepo-generator-rdf to use any23" https://www.pivotaltracker.com/story/show/45864223
<cbeer>success!
i'm getting kinda annoyed at the apache foundation for having overlapping project scopes14:34
i mean, they don't have a choice
but..
i guess i should add another example from a well-known datastream14:35
and a fcrepo 3.x legacy property name serializer14:36
<ff-pivotal>Chris Beer added "Create a rdf generator that serializes properties into the minimum required set of properties that make Islandora happy" https://www.pivotaltracker.com/story/show/4586454114:37
Chris Beer added "Add an rdf generator example that pulls triples from a well-known datastream location" https://www.pivotaltracker.com/story/show/45864569
<ajs6f>If the basic generator runs over all the properties, and we store all the fcrepo3 objProps in JCR props, won't it automatically be "a fcrepo 3.x legacy property name serializer"?14:39
Or do I misunderstand what that means/
<cbeer>nope, that'd work. but sounds kinda annoying to keep track of, doesn't it?14:40
in any case, i don't know what the minimum set of properties islandora wants actually is
i'd guess an identifier and content models
and probably RELS-EXT data or something14:41
(but that could be done through the well-known datastream generator)
<ff-pivotal>Chris Beer added "Add minimum required RDF predicates required to make Islandora happy to a ticket" https://www.pivotaltracker.com/story/show/4586486714:42
<ajs6f>I don't know what ISL wants, either. I was only thinking about the fcrepo3 objProps, and I think it would be much less annoying to put them all in JCR props and have done with it than to have some other way to store them and have to have a special generator to consume and publisht them...14:45
<ff-pivotal>A. "Schwarmerei" Soroka edited "Convert fcrepo-generator-rdf to use any23" https://www.pivotaltracker.com/story/show/4586422314:46
<ajs6f>I think maybe the default from-props RDF generator ought to run over the nodeTypes as well and offer nodeURI rdf:type someType triples for them. WDYT?14:47
<cbeer>+114:48
(i'd also caution us from being too productive on these issues.. if we're bringing on more new developers, leaving simple tasks like extending X could be nice of us.)
<ajs6f>Hm… true enough.14:49
I don't think we're wrong to lay in a good frameowkr, tho', right?14:50
These are Friday kind of issues.
<cbeer>+114:51
hey, CAS is a thing. i was making no value judgements.15:05
* travis-ci joins15:11
[travis-ci] futures/fcrepo4#185 (master - c00ad05 : Chris Beer): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/157ac898fd14...c00ad0563165
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/5350873
* travis-ci leaves
<ff-pivotal>Chris Beer added "Add etag, last-modified headers (and handle them appropriately) to the getDatastreamContent method" https://www.pivotaltracker.com/story/show/4586819715:23
Chris Beer started "Add etag, last-modified headers (and handle them appropriately) to the getDatastreamContent method" https://www.pivotaltracker.com/story/show/45868197
Chris Beer added comment: "One down, many to go: https://www.pivotaltracker.com/story/show/45868197" https://www.pivotaltracker.com/story/show/4545854515:24
* github-ff joins
[fcrepo4] cbeer pushed 1 new commit to master: http://git.io/Hq-40Q
fcrepo4/master 1c2dd50 Chris Beer: add etag/last-modified headers to the datastream content request. use the sha1 as the etag
* github-ff leaves
<ff-pivotal>Chris Beer added comment: "https://github.com/futures/fcrepo4/commit/1c2dd5076ba10b9ad7d20aab2828251e92871beb" https://www.pivotaltracker.com/story/show/45868197
Chris Beer edited "Add etag, last-modified headers (and handle them appropriately) to the getDatastreamContent method" https://www.pivotaltracker.com/story/show/4586819715:25
<cbeer>sorry, the fancy annotation version was too much for me.
<ajs6f>No, CAS exists— I just don't see it used much, so I don't think it was a strong point.15:31
<cbeer>i'm more amused it seems to be regularly used in P2P communities
<ajs6f>Oh, then it _is_ used. That's a perfectly legit use, for my money.15:32
I may go back and do the "fancy annotation version". Declarative code makes me happy.
But first I'll offer an Any23 branch for the RDF generators.15:33
If Eddie doesn't start drinking again and quash me.
I'm out for the weekend. See y'all soon.15:34
* ajs6f leaves15:36
* travis-ci joins16:03
[travis-ci] futures/fcrepo4#186 (master - 1c2dd50 : Chris Beer): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/c00ad0563165...1c2dd5076ba1
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/5352347
* travis-ci leaves
* github-ff joins16:10
[fcrepo-kitchen-sink] cbeer pushed 1 new commit to master: http://git.io/R5S6Jw
fcrepo-kitchen-sink/master 42fea35 Chris Beer: Add rdf generator to kitchen sink
* github-ff leaves
* github-ff joins16:45
[fcrepo4] vnguyen745 opened pull request #33: Added REST API for requesting fixity check on a datastram (master...master) http://git.io/s3muPQ
* github-ff leaves
<ff-pivotal>Vincent Nguyen added comment: "Do you mean when checking fixity for multiple datastreams?" https://www.pivotaltracker.com/story/show/4569065916:46
Vincent Nguyen added comment: "https://github.com/futures/fcrepo4/pull/33" https://www.pivotaltracker.com/story/show/45690659
* VincentNG leaves16:47
* avessey leaves17:02
* jcoyne leaves17:36
* jcoyne joins17:38
* jcoyne leaves17:41
* github-ff joins18:37
[fcrepo4] eddies deleted CDIKernel at 05673b9: http://git.io/5g4-jg
* github-ff leaves
* github-ff joins19:49
[fcrepo4] cbeer pushed 1 new commit to master: http://git.io/FWiINg
fcrepo4/master f440564 Chris Beer: work-around a possible bug (or, at least, undesirable behavior0) in CXF when the lastModified date is EQUAL to the if-modified-since header.
* github-ff leaves
<cbeer>https://issues.apache.org/jira/browse/CXF-488620:04
grr.
<ff-pivotal>Chris Beer added comment: "Currently have a workaround in place for a possible CXF bug: https://issues.apache.org/jira/browse/CXF-4886" https://www.pivotaltracker.com/story/show/4586819720:05
Chris Beer edited "Add etag, last-modified headers (and handle them appropriately) to the getDatastreamContent method" https://www.pivotaltracker.com/story/show/45868197
* travis-ci joins20:06
[travis-ci] futures/fcrepo4#188 (master - f440564 : Chris Beer): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/1c2dd5076ba1...f4405641924d
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/5358739
* travis-ci leaves
* github-ff joins20:26
[fcrepo4] cbeer pushed 2 new commits to master: http://git.io/_y7dsg
fcrepo4/master 26f5fb5 Chris Beer: use a different util:list id for the rdf indexers vs the dc indexers.
fcrepo4/master 9406d11 Chris Beer: rename indexer -> generator as appropriate for consistencies sake.
* github-ff leaves
* travis-ci joins20:41
[travis-ci] futures/fcrepo4#189 (master - 9406d11 : Chris Beer): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/f4405641924d...9406d116f8f2
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/5359221
* travis-ci leaves
<ff-pivotal>Chris Beer edited "Add list of minimum required RDF predicates required to make Islandora happy to a ticket" https://www.pivotaltracker.com/story/show/4586486721:41