Search This Blog

Semantic Web Use Case

I put food on the table by developing Java web services (for both humans and machines). I work primarily with Open Source tools, and contribute many bug reports and an occasional patch or two.

In the open source world, there are typically more than one programmer with commit access to the project. Usually, the existing developers will vote on the new developer. The voting criteria differ between projects, but usually it comes down to an issue of trust. Is the new developer trusted to have write access?

I believe that a correctly tripled Semantic Web could help with that question. The data for determining trust, in this case, is ample throughout the web.

For instance, as a developer, I leave breadcrumbs everywhere: bugzilla posts, JIRA posts, mailing list posts, CVS commits (on the web via ViewCVS). Let's pretend in some magical world all those actions and events had triples to describe them. It's conceivable to write a Rule against the Semantic Web that would say "Seth has contributed X patches to the following projects: A, B, C. Seth has written Y posts to Z mailing list that have been judged Non-Spam and Helpful. Seth has posted to W blogs C, D, E as comments, all Non-Spam. Blog C and D are about programming project A and B. Patch X was label severity Major, and has been fixed. No other bugs are related to patch X. Seth is known, via FOAF, by developer F, G, and H. F and G's trust rating is T1 and T2." etc, etc

It would be easy to paint a picture of Seth as a developer, and thus easy to get a objective view (as least, as the internet can see). Some of the voting into open source projects is subjective, but not by much.

To make this work we would need:

* A query language with aggregate functions (these exist)* A triple aggregator/store that can crawl development related sources (bugzilla, JIRA, mailing list archives, etc)* TRIPLES at those locations, or some way to transform the HTML into triples

The first two bullets are either done, or can be written (assuming we known most of the development related islands on the net). It's the last that scares me. We have so many bugzilla and ViewCVS installations out there, but no raw triples. Patching those open source programs actually won't be that difficult. Would convincing the maintainers to accept those patches be easy? If only we have a semantic web query to show we are trustworthy developers...

Thoughts or comments? Is this a valid use case? If not, why? If so, how do we get there?

In which I port a snazzy little JavaScript audio web app to Dart, discover a bug, and high-five type annotations. Here's what I learned.

[As it says in the header of this blog, I'm a seasoned Dart developer. However, I certainly don't write Dart every day (I wish!). Don't interpret this post as "Hi, I'm new to Dart". Instead, interpret this post as "I'm applying what I've been documenting."]

This post analyzes two versions of the same app, both the original (JavaScript) version and the Dart version. The original version is a proxy for any small JavaScript app, there's nothing particularly special about the original version, which is why it made for a good example.

Warning: We expect the Dart libraries to undergo potentially sweeping changes before Dart goes to alpha. This document is relevant as of 2011-12-22.

Intro

Dart is a "batteries included" effort to help app developers build modern web apps. An important "battery" is the bundled core Dart libraries, providing common and rich functionality. Dart is building a solution for large, complex web apps, and providing well tested, integrated, and common libraries is key to helping a web app developer be more productive out of the box.

The Collection libraries are a crucial set of APIs that Dart developers get for free. Much more than simple arrays and maps, the Collection library includes standard ways to filter, iterate, inspect, compose, and sort your data. This post specifically looks at List<E>, Dart's ordered, indexable collection of objects.