Saturday, February 26, 2005

Message focus for AXIS 2.0

Axis 2.0 - Tech Preview / Milestone "Another driving force for Axis2 is to move away from RPC oriented
Web services towards more document-oriented, message style asynchronous service interactions. The Axis2 project is centered on a new representation for SOAP messages called AXIOM (AXIs Object Model). AXIOM consists of two parts: a complete XML Infoset representation and a SOAP Infoset representation on top of that. The XML Infoset representation provides a JDOM-like simple API but is built on a deferred model via a StAX-based (Streaming API for XML) pull parsing API. A key feature of AXIOM is that it allows one to stop building the XML tree and just access the pull stream directly; thus
enabling both maximum flexibility and maximum performance. This approach allows us to support multiple levels of abstraction for consuming and offering Web services: using plain AXIOM, using generated code and statically data-bound data types and so on."

From Ajax: A New Approach to Web Applications.

Also, What if SOAP had never happened?.

Thursday, February 24, 2005

Will Link For Food

REST design question #3: meaning of a link "The second counter-example is the rise of the rel="nofollow" attribute in HTML links, partly as an attempt to counter spam in weblog comments and wiki sandboxes. If anything, this appears to vindicate the old-school hypertexters. They should be rushing into the street in disheveled clothing with a mad gleam in their eyes, shouting “Look, we were right! It took 15 years, but finally everyone sees that links do need semantic information attached!” and so on. But they’re not, probably because they’re smart enough to realize that this isn’t, quite, change the primary meaning of a link. The rel="nofollow" attribute says that the author does not endorse the link target, but it still provides a more complete version of the information."

REST design question #4: how much normalization "The project I mentioned actually was trying to use RDF [first the 1.0 WD, then the REC]; unfortunately, RDF makes an example like my third one difficult, since in 1.0 at least, a property had to have either a link or content, but not both; you end up having to create a new, inline resource for every link, which is messy. I’m not too familiar with the newer RDF version, so I don’t know if they’ve fixed that by allowing labeled links.)"

REST design question #5: the “C” word (content) "On the other hand, the lack of any kind of standard content format makes it hard actually to do anything useful with RESTful resources once you’ve retrieved them. People have put forward candidates for standard XML-encoded REST content, including RDF and XTM, but it’s unlikely that either of these will take off, especially since RDF (the leader) does not even work nicely with most other XML-based specifications like XQuery or XSLT."

Tuesday, February 22, 2005

Commercial Licences for OS Projects

Here's a few commercial tools that give you licences if you are doing OS work:
* Jira (defect tracking),
* YourKit Java Profiler (memory and CPU profiling - runs on OS X),
* IntelliJ (IDE),
* Anthill (Continuous Integration).

Friday, February 18, 2005

Comparing YARS and Kowari

Cold, Mastering OWL, Scalability, Indexing "There are two differences in their implementation to our own. The first is that they used B-trees rather than the AVL trees that Kowari uses. That is not a significant difference, and I blogged about this several times before. The main advantage of the AVL tree is that they are cheaper to write to the structure than B-trees are, though a little slower to read. They also pointed out that they wanted to use an existing library for the index, and while B-tree libraries are common, we never found a completely working AVL tree library (deletions were always buggy).

The second difference is a set of special statements which count the number of triples in parts of each of the indexes. This is certainly novel, but not an approach I would use. I believe that counting is still very efficient in Kowari (O(log(n)), and the space overhead they incurred would seem prohibitive. More importantly, writing is always the slowest operation, and their system would incur a large writing penalty for using this scheme."

Thursday, February 17, 2005

RDF/XML for Aliens

Master Foo explains XML to Aliens "Aliens: What about knowledge representation? Fundamental building blocks such as subject, predicate, object triples, you have another technology for that form of data presumably?

Master Foo: No, increasingly all that data is in XML too."

"And so the conversation between Master Foo and the Aliens continued long into the night. In the morning, Master Foo popped up his instant messenger client to tell the world of his encounter with the aliens.

'They have not invented XML', he said, 'because they do not need it.'. Instead, they have developed technologies that we would probably call CSV++, XHTML++ and N3++[1]. Looks very sensible to me. I'm going back to their place. Bye.'.

Master Foo left to live with the aliens. That surprised everyone."

Achieving WS Functionality with REST

REST design questions "REST in its now-broadened meaning is easy to explain: pieces of data (likely XML-encoded) sit out there on the web, and you manipulate them using HTTP’s GET, PUT, and DELETE methods..."

"This very simplicity should raise some alarm bells, though. RDF also has an apparently simple data model, but for RDF 1.0, at least, the model turned out to be painfully incomplete, as I found out when I implemented my RDF parsing library. Is REST hiding any of the same traps? "

REST design question #2: listing and discovering resources "The second in my series of REST design questions is how to handle listing and paging, or, in fancier jargon, resource discovery. I prefer concrete examples, so I’ll start with one that I know is flawed and then try to find ways to fix it."

Wednesday, February 16, 2005

Quick Links

* Policy-Aware Web Kickoff Meeting "The Policy-Aware Web will "a rule-based policy management system" based on Semantic Web techniques. The first paper is here."
* IE 7 "First, some basics: we’re committing to deliver a new version of Internet Explorer for Windows XP customers. Betas of IE7 will be available this summer. This new release will build on the work we did in Windows XP SP2 and (among other things) go further to defend users from phishing as well as deceptive or malicious software."
* Understanding the Place of POX, SOAP and WS-* in Building XML Web Services.

YARS

I thought I'd put a link in as well into my recent Graph and Triple Store to YARS. Lots of good stuff in there (small, HTTP interface, etc). Interestingly, they use JDBM which doesn't use NIO. I evaluated JDBM for blank node tracking but found that it was too slow for Kowari.

Tuesday, February 15, 2005

SSDL

"SSDL is a SOAP-centric description language for Web Services. It promotes message-orientation as the architectural paradigm for building distributed applications and enables protocol-based integration between Web Services. The SSDL effort is an attempt to explore ideas in the areas of contract and protocol description and Web Services implementations using message-oriented programming abstractions."

"I collaborated with a small team of people to produce a description language for Web Services that we think is exciting since it encourages us to reason in terms of messages, rather than 'operations', 'interfaces', and 'inheritance', when writing contracts...We have made available four such protocol frameworks: MEP, CSP, Rules, and SC). There are also an SSDL high-level overview document and a whitepaper available."

The SOAP Service Description Language and SSDL: The SOAP Service Description Language.

Where's the SOAP?

SOAP is boring, wake up Big Vendors or get niched "Evidence continues to mount that developers can' t be bothered with SOAP and the learning requirements associated with use of the standard for information interchange. It is often described as "lightweight", but its RPC roots keep showing.

Developers are turning their backs on the standard. Folks that is, building interesting information splicing apps--semantically rich platforms like flickr and Amazon are being accessed by RESTful methods, not IBM/MS defined "XML Web Services" calls. Now it seems the Creative Commons is responding to RESTful demand. Or more pertinently-not responding to SOAP demand because there isn't any."

"Whats a web service? Still a great question. But anyone that defines a Web Service using SOAP in the definition is missing out on where the action is. Distinctions between enterprise and "consumer" are breaking down. REST is evidently where that convergence is being played out, not WS-I."

Via Is SOAP a washout?.

Also, Interop is Hard: "If you find that you must use a toolkit to help with generating the contract, I'd recommend a technique that is similar to Steve's customer's: generate WSDL using a foreign toolkit, remove all unwarranted idioms and assumptions, and then try to import the result in the toolkit that you are using to develop the service."

Jon Udell had a very interesting post about Google's new map service (all plain XML/HTTP and XSLT where you want): Google Maps is a web of linked XML documents.

Saturday, February 12, 2005

Imagine Google on iTunes

mSpace "mSpace helps people build knowledge from exploring those relationships. mSpace does this by offering several powerful tools for organizing an information space to suit a person's interest: slicing, sorting, swapping, infoViews and preview cues."

Sourceforge page and onlie demo. Requires a Mozilla based browser - it seems as if it's using XMLHttpRequests.

What a MEST

On Interoperability and Tim Ewald's 3 Web Services Stacks "Replacing a world of distributed applications written with DCOM, CORBA, Java RMI, etc with one where they are written using the WS-* protocols is a step in the right direction. I completely agree that it leads to better interoperability across technologies produced by the big vendors who are using incompatible technologies today.

But when your plan is to reach as many parties as possible one should favor simpler Web services technologies like plain old SOAP or just plain old XML (aka POX). Plain old XML doesn't necessarily mean following the principles of REST either."

Intersecting XML threads "What the REST vs SOAP and Doc vs RPC debates miss is the subtle point at which systems become multi-celular. At some point, evolution stopped producing organisms consisting of every bigger and bigger cells, and started producing organisms consisting of multiple differentiated cells. These cells communicate exclusively via message passing."

MEST is already omni-present, if you look for it "As far as I can tell, the basic idea behind MEST is that web services developers should be thinking about message passing instead of RPC calls. I completely agree. But I disagree with the idea that that means there should be one WSDL interface with one operation “ProcessMessage”. There's no need to go there, because we're there already."

Some of the earlier MEST postings were covered in "MEST Architecture".

XAML vs SOAP vs RDF

XAML, SOAP 1.2 Part II Section 3, and RDF "All three support the notion of named properties...the notion of sequences of values...[and] the notion of atomic values."

"...RDF expects you to buy into a URI-based resource model and only added the notion of "blank nodes" recently. For data transfer applications (which are exceedingly common), there often isn't a persistent URI or ID for the data being represented. Query results that use projection are a great example where having to cons up URI is overkill.

On the upside, RDF is unique amongst the three in its ability to have properties on properties on properties on…. Being able to treat an RDF statement as a resource that itself can have properties (in addition to the object or "value" of the property) is certainly powerful and appeals to the inner modeling geek."

I think the notion of blank nodes has been around since at least 1999.

Friday, February 11, 2005

Nearly an RDF Store

LWI and Safari: A New Index Structure and Query Model for Graph Databases "Graph databases are gaining importance in several emerging applications, especially molecular biology. In many existing approaches, such databases are regarded as a ``schemaless'' collection of labeled graphs. However, there are often user-defined schemes that help in limiting the search space while answering a query and to deliver meaningful results. Techniques based only on index structures do not exploit such situations. This paper presents our work on a graph database system called GRACE, where a DML called Safari is proposed for graph databases and is closely integrated with structural indexes in the DBMS. Users may define schematic structures over a subset of graphs in the database and add them into the database as any other member graphs."

Has three data structures attribute-value index (AVI), graph location index (GLI) and label-walk index (LWI). AVI is an inverted index that stores gid values of graphs matching pecific attribute and value pairs. GLI indexes every graph entered into the system. LWI is used for structure based searches.

The AVI is string only. They claim that it's general purpose enough to do any labelled graph application.

Part of COMAD 2005.

Graph and Triple Stores

RDF and Graph DBMSs A great page listing a lot of different types of databases:
* AKT Triplestore Used by Redland.
* Sesame Java based, B-Tree indexing.
* Kowari Java based, AVL Tree and Node/String pool. A good write up of the ideas is in Kowari: A Platform for Semantic Web Storage and Analysis and Yet Another RDF Store.
* YARS Available for download. Uses Java, JDBM and only 2MB.
* RDFStore C based, even has compressed triples. See Indexing and retrieving Semantic Web resources: the RDFStore model.
* SWI-Prolog/XPCE Semantic Web Library
* ParkaSW
* GRAS "A Graph-Oriented Database System for SE Applications"
* coreSe

I'm only including native RDF stores (non-SQL based).

As these are commercial only it's hard to tell what they're based on:
* Intellidimension
* Cogito

2 KAON

dlpconvert "dlpconvert is able to convert ontologies, that are within the dlp-fragment, from one syntax - namely the OWL XML Presentation Syntax - into another, here Datalog. Thus you can just take your ontology, convert it and then use the result as your program in your Prolog-engine. Isn't that cool?"

rdf2owlxml "Another KAON2 based tool just got finished, a converter to turn RDF/XML-serialisation of an OWL-ontology into an OWL/XML Presentation Syntax document. And it even works with the Wine-ontology."

XForms XPlodes

Top 10 XForms Engines "...the XForms implementation landscape has intensified. Of the ten engines previously listed, a healthy seven make a repeat appearance, having made significant improvements. IBM's XML Forms Package narrowly missed being on the list--only because it hasn't been refreshed in a while. Even so, IBM still makes an appearance here, through their joint work on XForms-in-Mozilla. That work is part of the latest buzz in the XForms world, along with the other the new entrants.

Other new entries in this year's list are an OpenOffice implementation, a second Novell engine as an IE plugin, an updated Oracle engine that now can run inside IE, and two new approaches to implementing XForms without plugins in modern browsers. (Because of double entries, there are actually more than ten engines in this top-ten list. Go figure.) With the availability of native browsers and plugins, server solutions, and even mobile devices, XForms has a wider reach than ever."

"Also, Chiba can now run on the client in a hidden Java applet, thanks to a new technology called "convex." Look for Chiba to continue to blur the line between client and server-side processing. This is a good thing."

Adriot Management

Agile Project Management. Links to such articles as Martin Fowler's The New Methodology.

Via Agile Management which was calling to "Burn your PMBOK guide as a sacrifice to the gods of uncertainty! Melt down your iron triangle and embrace the flow of value! The Declaration of Interdependence".

Wiki World

Making the Case for a Wiki "The wiki was rather aptly described by Ward Cunningham as 'the simplest online database that could possibly work'...Generally speaking, a golden rule of successful software deployment is, 'get to know your audience'. There are any number of approaches to this goal; from the approach advocated in The Inmates Are Running the Asylum [9], thinking yourself into the user's perspective in a manner reminiscent of method acting, to Lucy Suchman's pioneering approach to ethnography in the office environment. These vary in efficacy, but it is very worthwhile attempting to fit time for such analysis, investigation, or roleplay into the early stages of any technology deployment. Knowing your audience, in computer-mediated communication, means gaining an understanding of the target community. Be warned: with only rare exceptions, if you cannot imagine your target group conversing comfortably together under normal circumstances, the chances are fairly slim that they will imagine they can either … much less online."

Seems to miss a lot of the corporate Wiki usage - like requirements gathering. A problem can be MS Office format filters - where only Word, Excel and Powerpoint are valid file types to express ideas in.

Thursday, February 10, 2005

RDF Metadata Gardening

RDF Exporter Plugin for iPhoto "My aims in writing this plugin were:
* To provide a functional example of how to write an iPhoto plugin, up-to-date as of iPhoto 4
* To allow conversion of keywords into arbitrary RDF (e.g. from “Taken by Richard” to dc:creator :Richard, for example)
* To export additional RDF, such as titles, dates, etc.
* To provide a datasource for my PhD work."

Wednesday, February 09, 2005

UDDI and RDF

Registry holds the keys to SOA success "UDDI is certainly gaining momentum, we have two customers interested in moving to UDDI; but from a metadata perspective a number of people want to go a lot further." In the meantime, too, other developments have been taking place. Blue Titan instead uses a metadata repository which can be rendered as UDDI but others are pursuing different standards proposals, such as WS-MetadataExchange, which is being proposed by IBM and Microsoft...A registry without UDDI is not going to work in an SOA. But where it lacks is the ability to map the business into the overall SOA model."

"In fact, Graham Glass, CTO of webMethods, speaking at last November's XML and Web Services conference, highlighted this disconnect with everything outside of the services environment as one of the key weaknesses in SOA. "We think UDDI is a good specification. But if you create a shopping list of all the parts of your IT infractructure — services, schemas, business processes, portlets, workflows and databases for example — if you try to do all this in UDDI it would be very hard."

Glass called for UDDI to widen its scope and embrace some of the emerging standards in the semantice web such as RDF."

"He [Lipton] concludes: "It's more complicated than to string a single thing in the middle that everybody has to go to and say: "Mother may I?" That's not very peer-to-peer or distributed — that's so 1980s client/server.""

Libraries for the Semantic Web

Developers Guide to Semantic Web Toolkits for different Programming Languages " This guide collects Semantic Web toolkits for different programming languages and gives an overview about the features of each toolkit, the strength of the development effort and the toolkit's user community."

Java and Python come up pretty well as far as choice is concerned (with 6 and 7 respectively).

Tuesday, February 08, 2005

Not Nothing

Keep Web Services on a Diet highlights the different approaches to a rule based system, ends with "The affirmative approach, "This is what you're allowed to do," and the exception-detecting approach, "This would be odd and should be reported if it happens," seem to me a much more attractive set of strategies."

Monday, February 07, 2005

The SWeb for Web Services

Web Service API and the Semantic Web "For Semantic Web services to become a reality, a markup language must be descriptive enough that a computer can automatically determine meaning. Following is a list of tasks such a language would require:

I Need to Find a Service (Discovery)
A program must first be able to automatically find, or discover, an appropriate Web service. Neither WSDL nor UDDI allows for software to determine what a Web service offers to the client. A Semantic Web service describes its properties and capabilities so that software can automatically determine its purpose.

I Need to Run a Service (Invocation)
Software must be able to automatically determine how to invoke or execute the service. For example, if executing the service is a multistep procedure, the software needs to know how to interact with the service to complete the necessary sequence. A Semantic Web service provides a descriptive list of what an agent needs to be able to do to execute and fulfill the service. This includes what the inputs and outputs of the service are.

I Need to Use a Few Services Together (Composition)
Software must be able to select and combine a number of Web services to complete a certain objective. The services have to interoperate with each other seamlessly so that the combined results are a valid solution. In this way, agent software can create entirely new services by combining existing ones on the Web.

I Need to Know What is Happening After I Run the Service (Monitoring)
Agent software needs to be able to verify the service properties as well as monitor its execution. Some services may take some time to complete, and the agent should have the ability to monitor the status of a process."

Reasoning

As a followup to Ruling a list of OWL reasoners (mainly DL) from SemWeb Central.

Via RDF IG.

Sunday, February 06, 2005

Mozilla XForms

MOZILLA FOUNDATION ANNOUNCES BETA RELEASE OF XFORMS 1.0 RECOMMENDATION "Developed in collaboration with IBM, Novell, and the open source community, XForms technology is now available as an extension to the Mozilla 1.8 and Firefox 1.1 web browsers which are currently under development. This release is intended for users in non-production environments who are interested in exploring XForms 1.0 technology ahead of the extension's general availability release later this year. The extension is available for Linux, Windows, and Macintosh platforms. Beta user feedback on this release is highly encouraged."

http://www.mozilla.org/projects/xforms.

Completed Transactions

Commons Transaction "Commons Transaction aims at providing lightweight, standardized, well tested and efficient implementations of utility classes commonly used in transactional Java programming. Initially there are implementations for multi level locks, transactional collections and transactional file access. There may be additional implementations when the common need for them becomes obvious. However, the complete component shall remain compatible to JDK1.2 and should have minimal dependencies."

Also, Tyrex, Transaction Recovery and JOTM.

Saturday, February 05, 2005

Guides, Minis and JSF

Predictions for 2005, part 1 "Also on the subject of filtering our lives, metadata becomes increasingly important, and the push is on for new ontologies. The Semantic Web, however, doesn't happen yet because there is still resistance from those who are convinced it's too complicated. (A large portion of those people will have never read the specifications, mostly because they are too complicated.)"

Also, "WS-" spec fatigue, SOA does not mean SOAP and REST APIs continue to rise. Also, Part 2.

Mac Mini: The Emperor's New Computer "So is the mini a maxi value? For me, clearly, no. When I consider that a good deal of my time is spent running applications like Disk Defragmenter, Scandisk, Norton AV, Windows Update and Ad-Aware--none of which are available for the Mac platform--it doesn't make sense for me to "switch" to a Mac at this time. But will Apple's famous marketing team be able to sell the the emperor an invisible computer anyway and turn the mini into a maxi hit? That’s the question that remains to be answered."

Using JSF technology for XForms applications (mentions XSmiles XForms editor/browser) and JSF for nonbelievers: Clearing the FUD about JSF.

Friday, February 04, 2005

Enhanced Javadoc

Documentation Enhancer for Java "The Documentation Enhancer provides the following semantic information:
* Call-graph information: for every method, what other methods may call it and what are the methods that it may call. This analysis uses sophisticated type analysis algorithms to resolve virtual calls.
* Effect information: for every field, which methods may modify or inspect it. For every method, what may it do (modify, forward, inspect) to its parameters and to static fields, and what values it may return (if applicable).
* Reference information: for every class, which classes reference it and which classes does it reference. The same information is provided for packages at the package level.
* Executable classes: classes that have a main(String[] args) method are detected and marked as such."

For Windows only.

Wednesday, February 02, 2005

URI dereferencing

For more than the first time, I'd forgotten and had to go through URI Equivalence. My feeling is that deferencing should be done by calling code. It's not the responsibility of say Java's URI object to dereference them (basically only doing string comparison). If you you are doing Scheme-based Normalization you apply it externally - mapping them consistently to the same URI. In Kowari our models can mapped from "rmi://localhost:1099/server1#..." to "rmi://localhost/server1#...". However, if the server starts on port 1199 instead then that's mapped and 1099 will be left. Tim Bray wrote something about it "Good Practice When Generating URIs".

Tags link

Stemming tags, and one website to the tune of another "So, what are you seeing in this movie? It's nothing more than a bit of DHTML trickery that imports a subset of del.icio.us functionality into an existing website...I like the immediate feedback that you can get from adding a tag to a programme. Decide that 'cello' is relevant, and within seconds you see a bunch of other cello programmes. It's common for content management systems to demand 'metadata' or 'keywords' of you when you file content, but rare that there's an easy way to get a feel for what value you've added by doing so...This was my first real attempt to wrangle the XMLHTTPRequest system, and it was a satisfying one. I did learn one or two things, including some problems with asynchronous and synchronous modes of operation."

Folksonomies Tap People Power "Dog owners would probably object. But because of Flickr's tagging system, which allows the photographers or other users to assign identifying tags to most photos on the service, we know that Flickr hosts 23,081 images tagged with "cat" or "cats" and only 17,463 with "dog" or "dogs.""

"Rubel also said he'd like to see services like Google add tags as a way to bring more user-specific context to search results. As it is, he explained, search-engine results differ from tag searches in that they are not based on user-created content.

"One of the things that's nice to see is that people are actually spending time tagging and doing it in a social environment, and following the power curve and the net effect," said Vander Wal. "The more people getting involved with it, the greater the value.""

More on Technorati tags "By allowing people to add format metadata, tags give bloggers the power to describe aspects of their posts that would not be accurately reflected by keywords selected from the content."

Closure - Code is Data

Wall, Escher and Berners Lee: An eternal golden braid On "Drawing Hands": "With my ever-present geek-glasses on, I see the hand of the left as symbolizing data. The hand on the right symbolizes code. The code is of course also data which in turn, can be viewed as code. Somebody once said that a data structure is nothing more than a poor, limited programming language. I like that. Two hands. One hand, inter-twingled in the drawing of the other hand."

"With my ever-present geek-glasses on, the hand on the left in Escher's print also belongs to Larry Wall[7], inventor of Perl[8]. Perl is a good example of a computer code format that is good at embedding computer data formats. The hand on the right belongs to Tim Berners-Lee[9]. Inventor of HTML. HTML is a good example of a computer data format that is good at embedding computer code formats. Two hands. One hand, inter-twingled in the drawing of the other hand."

Tuesday, February 01, 2005

e-mentality

e-mentality is Semantic Web Outliner "For me, this project is kind of 'technology trainer'. I'm fascinated by REST, cognition visualization, outline editors, Semantic Web, TWiki, Longhorn architecture and many other emerging technologies."

e-mentality blog and MindRaider via Danny's MindRaider.

No time

For later:
* HealthCyberMap.org
* Entrez