danbri_: An old post of mine from a while back; I think Sandro and I are agreeing wildly... Most (public; read-only; stateless) SOAP services are database lookups and should be wrappable as RDF.
sandro: thanks for the pointer, danbri.
sandro: I do go one step farther, and argue that most NON-QUERY web services are/will be also database operations. Try to imagine a commercial web service that is not going to be implemented as a database application on the server side.....
danbri_: For some sense of database, sure. A web service that doesn't store and manage information through some database-like system isn't going to do much. Except maybe turn the lights on and off by X10? ;-)
danbri_: In which case the state of the lights in ones house would be implementing a simple database for you.
sandro: The classic example of a non-query web service is "buy this book". Of course any bookstore is going to record the purchase in a RDBMS. What's interesting is that if we expose the database nature of these operations, then "buy these two books, only if they are both in stock" becomes a natural operation. And, of course, querying the shipping status of your order after the fact, etc, are all natural database operations.
danbri_: I don't think I disagree with anything you've said, but still feel hazy on what you mean by 'the database nature of these operations'
sandro: The one non-query method at xmethods is "send an SMS message". It's PacTel only. I'm a verizon customer. Verizon's HTML send-SMS-message is obviously a database app, giving you a record locator so you can later check the status of the message, etc.
danbri_: "Obviously a database app" still vague... you mean theres some (hidden) state change involved that the Web service has access to?
sandro: That is, you could call sendSMS(destination_number, text) and get back a receipt number, then querySMSStatus(receipt_number) and get back a code or something. Or....
sandro: you could "INSERT INTO SMS_MESSAGES (ID, DEST, TEXT) VALUES(gensym(), destination_number, text);" and later "SELECT STATUS FROM SMS_MESSAGE WHERE ID=myGenSym;". That's all the back-end is doing anyway. And this ways simpler -- you just need to know the schema, not the API. (I've used SQL here, in real life I'd use an RDF Database Access Protocol.)
sandro: I don't think the RPC style is wrong, but I think the database style pays off more and more as we get to more complex apps.
AaronSw-UK: One of the benefits of thinking about these things as databases is the sort of division-of-labor you can get from a system like that. So, I can insert a new SMS request into the database, and the SMS sender (an independent piece) can query the database every so often to send out the messages.
sandro: thanks for the pointer, danbri.
sandro: I do go one step farther, and argue that most NON-QUERY web services are/will be also database operations. Try to imagine a commercial web service that is not going to be implemented as a database application on the server side.....
danbri_: For some sense of database, sure. A web service that doesn't store and manage information through some database-like system isn't going to do much. Except maybe turn the lights on and off by X10? ;-)
danbri_: In which case the state of the lights in ones house would be implementing a simple database for you.
sandro: The classic example of a non-query web service is "buy this book". Of course any bookstore is going to record the purchase in a RDBMS. What's interesting is that if we expose the database nature of these operations, then "buy these two books, only if they are both in stock" becomes a natural operation. And, of course, querying the shipping status of your order after the fact, etc, are all natural database operations.
danbri_: I don't think I disagree with anything you've said, but still feel hazy on what you mean by 'the database nature of these operations'
sandro: The one non-query method at xmethods is "send an SMS message". It's PacTel only. I'm a verizon customer. Verizon's HTML send-SMS-message is obviously a database app, giving you a record locator so you can later check the status of the message, etc.
danbri_: "Obviously a database app" still vague... you mean theres some (hidden) state change involved that the Web service has access to?
sandro: That is, you could call sendSMS(destination_number, text) and get back a receipt number, then querySMSStatus(receipt_number) and get back a code or something. Or....
sandro: you could "INSERT INTO SMS_MESSAGES (ID, DEST, TEXT) VALUES(gensym(), destination_number, text);" and later "SELECT STATUS FROM SMS_MESSAGE WHERE ID=myGenSym;". That's all the back-end is doing anyway. And this ways simpler -- you just need to know the schema, not the API. (I've used SQL here, in real life I'd use an RDF Database Access Protocol.)
sandro: I don't think the RPC style is wrong, but I think the database style pays off more and more as we get to more complex apps.
AaronSw-UK: One of the benefits of thinking about these things as databases is the sort of division-of-labor you can get from a system like that. So, I can insert a new SMS request into the database, and the SMS sender (an independent piece) can query the database every so often to send out the messages.
dajobe: Uses XQuery to query RDF and [XML] Topic Maps by transforming with functions and "joining"
dajobe: presented at XML 2001, Orlando, Dec 2001
dajobe: I wasn't really convinced by this method; although as a proof it could be done, sure
sandro: At a quick glance, his triples form doesn't make sense, re distinguishing URIs, QNames, and Literals.
dajobe: I noticed that, and the infamous blank nodes
sandro: Them too.
dajobe: presented at XML 2001, Orlando, Dec 2001
dajobe: I wasn't really convinced by this method; although as a proof it could be done, sure
sandro: At a quick glance, his triples form doesn't make sense, re distinguishing URIs, QNames, and Literals.
dajobe: I noticed that, and the infamous blank nodes
sandro: Them too.
SethR2: Method and apparatus utilizing bond identifiers executed upon accessing of an endo-dynamic information node (EDIN)
SethR2: but RDF says nothing about executing anything whasoever
SethR2: but RDF says nothing about executing anything whasoever
DanC: by Peter Suber
DanC: part of his Logical Systems course notes
DanC: the chump should notice that I've chumped this before and add a link to previous chumpings.
DanC: my favorite resource on stuff like how many things you can identify with URIs, as discussed in www-rdf-interest
sbp: Nice article - non technical, well-written
DanC: part of his Logical Systems course notes
DanC: the chump should notice that I've chumped this before and add a link to previous chumpings.
DanC: my favorite resource on stuff like how many things you can identify with URIs, as discussed in www-rdf-interest
sbp: Nice article - non technical, well-written
DanC: email/RDF hacking
DanC: ok; since I got a couple WWW2002 paper reviews done, I'm rewarding myself by hacking a deely to take the data about people I've sent mail to that I collected for whitelist-based filtering purposes and convert it to ldif for import into evolution.
DanC: of course, the next step is to model RFC822 and ldif in RDF and develop an rdf->ldif tool
DanC: ok; since I got a couple WWW2002 paper reviews done, I'm rewarding myself by hacking a deely to take the data about people I've sent mail to that I collected for whitelist-based filtering purposes and convert it to ldif for import into evolution.
DanC: of course, the next step is to model RFC822 and ldif in RDF and develop an rdf->ldif tool
AaronSw-UK: How ironic! "We are, emphatically, not supporters of RDF. However, we do support the power of developers to create open formats and protocols and make their software compatible, even if we choose to not support a specific technology, as we have done with RDF."
DanC: hmm... part of a good review system would be somthing that let me check off the references I've read. even better: automate that, based on my browser history and/or bibliographies I maintain, papers I've written, etc.
DanC: i.e. many review systems ask "how confident are you about this review" or "how expert are you in this field"? if I'm familiar with all the stuff a paper cites, I'm clearly expert in its field.
DanC: TODO: build a search service that answers hasRead(?who, ?paper) ...
DanC: where read(?who, ?paper) :- wrote(?who, ?p), cites(?p, ?paper)
DanC: using stuff like homepage(?who, ?hp), publications(?who, ?pubs), some sort of "this page is about a collection, and this other page also gives stuff in this collection" compound-document-building properties.
DanC: I'm making comments as I read; I find myself keying in heading names and what-not; those could be xpointers, and I could be using annotea to do make my comments, perhaps.
DanC: hmm... academis:citation is like guha:lifting. "dogs have fleas[Dogbert, 1994]" is like { [ dc:creator "Dogbert"; dc:date "1994"] log:semantics [ log:includes { :Dogs :have :Fleas} ] } :justifies { :Dogs :have :Fleas }.
DanC: hmm... does acroread support annotation authoring?
DanC: nope; doesn't seem to. I guess you need the full acrobat thingy for that. Follows the read-for-free, pay-to-write market trend. sigh.
DanC: i.e. many review systems ask "how confident are you about this review" or "how expert are you in this field"? if I'm familiar with all the stuff a paper cites, I'm clearly expert in its field.
DanC: TODO: build a search service that answers hasRead(?who, ?paper) ...
DanC: where read(?who, ?paper) :- wrote(?who, ?p), cites(?p, ?paper)
DanC: using stuff like homepage(?who, ?hp), publications(?who, ?pubs), some sort of "this page is about a collection, and this other page also gives stuff in this collection" compound-document-building properties.
DanC: I'm making comments as I read; I find myself keying in heading names and what-not; those could be xpointers, and I could be using annotea to do make my comments, perhaps.
DanC: hmm... academis:citation is like guha:lifting. "dogs have fleas[Dogbert, 1994]" is like { [ dc:creator "Dogbert"; dc:date "1994"] log:semantics [ log:includes { :Dogs :have :Fleas} ] } :justifies { :Dogs :have :Fleas }.
DanC: hmm... does acroread support annotation authoring?
DanC: nope; doesn't seem to. I guess you need the full acrobat thingy for that. Follows the read-for-free, pay-to-write market trend. sigh.
dajobe: article in The Library AssociatioN Record 104(1), January 2002
dajobe: ISSN 0024-2195
dajobe: ISSN 0024-2195
dajobe: (might be CNET story syndicated)
AaronSw-UK: Points to a CNET story about it.
AaronSw-UK: Kevin Burton points out the difference between RSS and RDF and explains how he plans to use RDF for a distributed reputation system.
AaronSw-UK: Other commenters claim there's prioir art.
AaronSw-UK: Another points out the real implications of the patent. ;-)
AaronSw-UK: Someone else searches for relevant trademarks.
dajobe: Despite what a comment in this story says, slashdot does provide RDF
dajobe: syndicated further, to BusinessWeek
AaronSw-UK: and Yahoo! News.
AaronSw-UK: Kevin Burton points out the difference between RSS and RDF and explains how he plans to use RDF for a distributed reputation system.
AaronSw-UK: Other commenters claim there's prioir art.
AaronSw-UK: Another points out the real implications of the patent. ;-)
AaronSw-UK: Someone else searches for relevant trademarks.
dajobe: Despite what a comment in this story says, slashdot does provide RDF
dajobe: syndicated further, to BusinessWeek
AaronSw-UK: and Yahoo! News.