Hey Folks, Now that all the fun and games of learning Rails has almost sunk in it''s time to build something useful. I am tasked with building a system to control and search our large (and I mean large 1.5 million + and growing) photograph collection. I have been building databases for years and after thinking about the situation we decided that trying to store the information about individual photos in a relational system is masochistic to say the least (the number of one-to-many as well as many-many relations would make it a real headache to manage). XML to the rescue. We could really simplify things by creating an XML record for each photo (we will be using modified Dublin Core www.dublincore.org for fields and descriptions). We have tried and failed to get a relational system to work well - too many "what if''s" and exceptions to the rules to deal with using a relation system. Since this is the Rails mailing list you can assume that I would like to do this using Rails. However, searching high a low I cannot find a starting point for a storage and retrieval method using Rails and XML data. Searching this list I see that the eXist project has been mentioned and I think this is the way to go (soon MySQL will have the ability to store and query XML - but it''s not there yet). Since Ruby and Rails is fairly new to me any pointers about conversing with eXist or any other XML storage solution (XML-RPC? REST? never used these so go easy) would be greatly appreciated, also any tips or pointers about building the XML would also be helpful. Builder seems to be best and easiest method - but how to get it from builder to the database - aye there''s the rub. Once this is all figured out it could become a very powerful method for storing and retrieving data - one XPath or XQuery and all is yours. No more fiddling with relations and so on - just where to start. Thanks for any help or pointers.... Cheers. P.S. I have, for development purposes, thought about building the XML and storing it in a MySQL field (the whole record is an XML document) - I am not worried about the searching at the moment (but I could build queries to violently rip out what I needed using regex - slow but it would work). But how would I build the XML from a form and slap the whole thing into MySQL - sorry different issue than above, but again any help for this (hopefully) temporary solution would again be greatly appreciate. Andrew Macdonald New Media Officer / Agent des nouveaux m?dias Canada Aviation Museum / Mus?e de l''aviation du Canada Phone / T?l?phone : (613) 998-5689 Fax / T?l?copie : (613) 990-3655 Website: www.aviation.technomuses.ca Email: amacdonald@technomuses.ca -------------- next part -------------- An HTML attachment was scrubbed... URL: http://wrath.rubyonrails.org/pipermail/rails/attachments/20060327/2fc73883/attachment.html
In case you were unaware of it, the Pragmatic Programmers have a beta book called "Enterprise Integration with Ruby". Here''s the link: http://www.pragmaticprogrammer.com/titles/fr_eir/index.html . It has several sections on interacting with XML using Ruby code. It''s not specifically Rails, but I imagine it''ll have what you need, all for the price of a pdf ($20). Also, the O''Reilly XML site (www.xml.com) has some articles on dealing with XML in Ruby and/or Rails. I''m sure others here will comment on REXML and the other associated libraries, but the book goes through all that in detail. Good luck! Ken -- Kenneth A. Kousen, Ph.D. President Kousen IT, Inc. http://www.kousenit.com ken.kousen@kousenit.com> -------- Original Message -------- > Subject: [Rails] XML Storage? > From: amacdonald@technomuses.ca > Date: Mon, March 27, 2006 1:14 pm > To: rails@lists.rubyonrails.org > > > Hey Folks, > > Now that all the fun and games of learning Rails has almost sunk in it''s time to build something useful. I am tasked with building a system to control and search our large (and I mean large 1.5 million + and growing) photograph collection. I have been building databases for years and after thinking about the situation we decided that trying to store the information about individual photos in a relational system is masochistic to say the least (the number of one-to-many as well as many-many relations would make it a real headache to manage). XML to the rescue. We could really simplify things by creating an XML record for each photo (we will be using modified Dublin Core www.dublincore.org for fields and descriptions). We have tried and failed to get a relational system to work well - too many "what if''s" and exceptions to the rules to deal with using a relation system. > > Since this is the Rails mailing list you can assume that I would like to do this using Rails. However, searching high a low I cannot find a starting point for a storage and retrieval method using Rails and XML data. Searching this list I see that the eXist project has been mentioned and I think this is the way to go (soon MySQL will have the ability to store and query XML - but it''s not there yet). Since Ruby and Rails is fairly new to me any pointers about conversing with eXist or any other XML storage solution (XML-RPC? REST? never used these so go easy) would be greatly appreciated, also any tips or pointers about building the XML would also be helpful. Builder seems to be best and easiest method - but how to get it from builder to the database - aye there''s the rub. > > Once this is all figured out it could become a very powerful method for storing and retrieving data - one XPath or XQuery and all is yours. No more fiddling with relations and so on - just where to start. > > Thanks for any help or pointers.... Cheers. > > P.S. I have, for development purposes, thought about building the XML and storing it in a MySQL field (the whole record is an XML document) - I am not worried about the searching at the moment (but I could build queries to violently rip out what I needed using regex - slow but it would work). But how would I build the XML from a form and slap the whole thing into MySQL - sorry different issue than above, but again any help for this (hopefully) temporary solution would again be greatly appreciate. > > > Andrew Macdonald > New Media Officer / Agent des nouveaux médias > Canada Aviation Museum / Musée de l''aviation du Canada > Phone / Téléphone : (613) 998-5689 > Fax / Télécopie : (613) 990-3655 > Website: www.aviation.technomuses.ca > Email: amacdonald@technomuses.ca > --------------------------------------------------------------------- > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails >
> and after thinking about the situation we decided that trying to store > the > information about individual photos in a relational system is > masochistic > to say the least (the number of one-to-many as well as many-many > relations > would make it a real headache to manage). XML to the rescue. We could > really simplify things by creating an XML record for each photo (we will > be using modified Dublin Core www.dublincore.org for fields and > descriptions). We have tried and failed to get a relational system to > work well - too many "what if''s" and exceptions to the rules to deal > with > using a relation system. >Not really related to your original question - but you might consider using RDF to describe your metadata [which can leveage DC]: "Describing and retrieving photos using RDF and HTTP" http://www.w3.org/TR/photo-rdf/#the-dublin RDF can be describe in XML btw [there''s also another format called N3] -- Posted via http://www.ruby-forum.com/.
> Not really related to your original question - but you might consider > using RDF to describe your metadata [which can leveage DC]: > > "Describing and retrieving photos using RDF and HTTP" > http://www.w3.org/TR/photo-rdf/#the-dublin > > RDF can be describe in XML btw [there''s also another format called N3]Thanks, how the data is stored is still being determined (Is the type of Aircraft a subject? or do we make a separate field for that?). We are looking at RDF, EAD, even MARC for some data. The nice thing about XML (and its flavors) is that we can create crosswalks to move the data from one format to the other. Once we have a storage solution and a method to query and pull the data out - we can create filters (crosswalks) that will give you whatever you want. Put Z39.50 into the mix and you have so many posiblities to export and share the data... Now just to get it all working.... :-) Andrew Macdonald -- Posted via http://www.ruby-forum.com/.