Thursday, March 5, 2009

OpenCalais Meetup

Meetup Description

Tom Tague will be presenting Calais 4.0 - and its connection to the Linked Data cloud - to reporters, editors, Semantic Web aficionados, and developers alike in Washington DC on March 5, 2009. The DC Area Online News Association Meetup will also be joining us at this event.

Specifically, Tom will address the 'Linked Content Economy,' an evolving ecosystem of enriched and connected content that puts semantic metadata and open data assets to work in everyday media, content applications and Web-based services of all kinds.

Parking is available under the building, and the location is walking distance from McPherson Square and Metro Center stations.

Refreshments will be served.

Calais: Connect. Everything.

We want to make all the world's content more accessible, interoperable and valuable. Some call it Web 2.0, Web 3.0, the Semantic Web or the Giant Global Graph - we call our piece of it Calais.

What Calais does sounds simple – what you do with it could be simply amazing.

The Core: The Calais Web Service

The Calais Web Service automatically creates rich semantic metadata for the content you submit – in well under a second. Using natural language processing, machine learning and other methods, Calais analyzes your document and finds the entities within it. But, Calais goes well beyond classic entity identification and returns the facts and events hidden within your text as well.

Take a look at the Document Viewer for a small demonstration of what Calais can do.

This metadata gives you the ability to build maps (or graphs or networks) linking documents to people to companies to places to products to events to geographies to… whatever. You can use those maps to improve site navigation, provide contextual syndication, tag and organize your content, create structured folksonomies, filter and de-duplicate news feeds, or analyze content to see if it contains what you care about.

The Tools: A Growing Ecosystem of Calais-Enabled Capabilities

The Calais Web Service is a powerful capability - but using it to deliver value to real people requires applications and the tools to build them. Major focus areas of the Calais initiative are delivering the tools with which to build great applications and fostering the community of developers that will make those applications happen.

To learn more about the growing set of Calais tools please take a moment to visit the Gallery and Tools sections of the site.

The "Open" in Calais

The web service is free for commercial and non-commercial use. We’ve sized the initial release to handle millions of requests per day and will scale it as necessary to support our users.

Tuesday, March 3, 2009

Sunday, March 1, 2009

Diary: Week of 2/23/2009 - 3/1/2009

Sunday, March 1 -- Coupons for free small subs at Quiznos in Alexandria. Too bad one of them didn't participate in the promotion. Hoang-Anh drove back to school around 2. Finished watching 'The Express' at home - good movie. Finishing up SWE625 Stage 4 - charter, whole document. Need to prepare for Quiz #1. Excited about having the braces taken off tomorrow after 3 long years.

Saturday, February 28, 2009

SPARQL for the Pragmatic Ontologist

SPARQL

  • SQL of RDF

  • XSLT of RDF

  • JavaDoc of RDF

  • Lint of RDF

  • Unit Test of RDF



SPARQL is READ-ONLY!

Jena ARQ Extensions (SPARQL 2 Candidates)

1st Query: Find the country names
SELECT ?country ?name
WHERE {
?country rdf:type country:Country .
?country country:name ?name
}

OR

SELECT ?country ?name
WHERE {
?country a country:Country .
?country country:name ?name
}

OR

SELECT ?country ?name {
?country rdf:type country:Country ;
country:name ?name
}

OR

SELECT ?country ?name {
?country country:name ?name
}

2nd Query: Find the states and their cities sorted by ascending state, then city name, then by descending city name
SELECT ?state ?city
WHERE {
?cityR city:name ?city ;
Uscity:state ?stateR .
?stateR state:name ?state
} ORDER BY ASC(?state) DESC(?city)

Compactified Expression
SELECT ?state ?city
WHERE {
?cityR city:name ?city;
uscity:state [state:name ?state]
} ORDER BY ASC(?state) DESC(?city)

SELECT ?state ?capital ?airport
WHERE {
?stateR state:name ?state ;
state:capital ?capitalR .
?capitalR city:name ?capital
OPTIONAL {
?airportR airports:city ?capital ;
airports:airport ?airport
}
}

3rd Query: Select with UNION
SELECT ?state
WHERE {
{
?stateR state:borderstate usstate:AL, usstate:TN .
?stateR state:name ?state .
}
UNION
{
?stateR state:borderstate usstate:ID .
?stateR state:name ?state .
}
}

4th Query: Find all states that do NOT border another state

SELECT ?state
WHERE {
?stateR state:name ?state .
OPTIONAL {
?stateR state:borderstate ?borderState .
}
FILTER(!bound(?borderState))
}

FILTER means "keep".
With !bound() we effectively look for the absense of a resource.

5th Query: Find all states, and cities, where the city name begins with the letter 'Y'

SELECT ?state ?city
WHERE {
?cityR uscity:state ?stateR
?cityR city:name ?city .
?stateR state:name ?state
FILTER(regex(xsd:string(?city), "^Y"))
}

Cast untyped literals into datatype needed by function.

Filter early, near the top of an expression
-if a condition is not met the pattern match aborts immediately.

User OPTIONAL sparingly, they will slow down a query, sometimes drastically.

Use ASK when you do need the results of the match.

DISTINCT and ORDERED BY may also be slow over large result sets.

USE LIMIT and OFFSET with large result sets.

6th Query: DISTINCT avoids duplicate result sets

SELECT DISTINCT ?state ?city
WHERE {
?person uscity:address ?address .
?address uscity:city ?city .
?city uscity:state ?state
}

7th Query: CONSTRUCT Query
CONSTRUCT allows us to specify a graph to return.
CONSTRUCTed graphs are not inserted into the queried graph - but some tools allow the constructed graph to be asserted.

CONSTRUCT {
?countryR owl:sameAs ?nationR
}
WHERE {

}

Start comments anywhere with "#".
Use LET() to assign variables.

Use INSERT before DELETE to move data.
The graph can also be a variable.

TopBraid Suite Advanced Product Training
SPARQLMotion
SPIN - SPARQL Inferencing Notation (SPROC)

Tuesday, January 20, 2009

44th President Inauguration Photos Slideshow

Through my TV :)
From Inauguration

Hello President Barack Obama

Our 44th President.



Tuesday, January 20th, 2009 at 12:01 pm

Change has come to WhiteHouse.gov


Welcome to the new WhiteHouse.gov. I'm Macon Phillips, the Director of New Media for the White House and one of the people who will be contributing to the blog.

A short time ago, Barack Obama was sworn in as the 44th president of the United States and his new administration officially came to life. One of the first changes is the White House's new website, which will serve as a place for the President and his administration to connect with the rest of the nation and the world.

Millions of Americans have powered President Obama's journey to the White House, many taking advantage of the internet to play a role in shaping our country's future. WhiteHouse.gov is just the beginning of the new administration's efforts to expand and deepen this online engagement.

Just like your new government, WhiteHouse.gov and the rest of the Administration's online programs will put citizens first. Our initial new media efforts will center around three priorities:

Communication -- Americans are eager for information about the state of the economy, national security and a host of other issues. This site will feature timely and in-depth content meant to keep everyone up-to-date and educated. Check out the briefing room, keep tabs on the blog (RSS feed) and take a moment to sign up for e-mail updates from the President and his administration so you can be sure to know about major announcements and decisions.

Transparency -- President Obama has committed to making his administration the most open and transparent in history, and WhiteHouse.gov will play a major role in delivering on that promise. The President's executive orders and proclamations will be published for everyone to review, and that’s just the beginning of our efforts to provide a window for all Americans into the business of the government. You can also learn about some of the senior leadership in the new administration and about the President’s policy priorities.

Participation -- President Obama started his career as a community organizer on the South Side of Chicago, where he saw firsthand what people can do when they come together for a common cause. Citizen participation will be a priority for the Administration, and the internet will play an important role in that. One significant addition to WhiteHouse.gov reflects a campaign promise from the President: we will publish all non-emergency legislation to the website for five days, and allow the public to review and comment before the President signs it.

We'd also like to hear from you -- what sort of things would you find valuable from WhiteHouse.gov? If you have an idea, use this form to let us know. Like the transition website and the campaign's before that, this online community will continue to be a work in progress as we develop new features and content for you. So thanks in advance for your patience and for your feedback.

Later today, we’ll put up the video and the full text of President Obama’s Inaugural Address. There will also be slideshows of the Inaugural events, the Obamas’ move into the White House, and President Obama’s first days in office.

Thursday, January 15, 2009

Geospatial Semantics Meetup

What
Geospatial Semantics

When
Thursday, January 15, 2009 7:00 PM

Who
At least 45 Semantic Web Supporters.
This Meetup is full.

Where
SHRM Conference Room
1800 Duke Street
Alexandria VA 22314

Meetup Description
In this month's meeting, we discuss Geospatial Semantics. Mashups using Google Maps and other APIs have suddenly become very popular. However, this is only the beginning. As more linked data becomes available on the web, a whole new generation of applications become possible. In this meeting, we will discuss related technologies and current work that is being done in Geospatial Semantics.

Our speaker will be Dr. Yaser Bishr. Yaser is the co-founder and CTO of Image Matters LLC. Dr. Bishr has extensive experience in geospatial semantics, semantic web, and social web. In 1997, he published the first book on geospatial semantics, his Ph.D. topic, and wrote the geospatial semantic entry in the Encyclopedia of GIS. He is the visionary and architect of Image Matters' gnizr Enterprise semantic technology. Yaser is a serial entrepreneur. Prior to founding Image Matters, he founded Millennia GmbH, a German software consulting firm with clients in Europe, the US, SE Asia and the Middle East. Prior to Millennia Yaser was assistant professor at the University of Muenster, Germany. Currently Yaser is on a mission to develop a profitable business model for gnizr Enterprise. Yaser has an MBA from the Fuqua School of Business, Duke University and a Ph.D. and M.S. in Computer Science from ITC and the University of Wageningen in the Netherlands.

Image Matters LLC is a software technology and professional services company that produces software products, develops advanced technology solutions, and provides consulting services to government and commercial clients. Image Matters specializes in Geospatial Web, Semantic Web (Web 3.0), Web 2.0, Sensor Web, Service-Oriented Architectures (SOA), Geographic Information Systems (GIS), Web services, and Location-Based Services (LBS).

The meeting location and light refreshments are provided courtesy of TopQuadrant.

Friday, January 9, 2009

VietFinds Moon on January 9, 2009




First Training of the Year

We have reserved a seat for you at our One Day TDD training course. The event will be held January 10th at the HRTec Computer Technology Center in Alexandria, VA from 10:00am - 4:00pm with registration beginning at 9:30am. Breakfast and lunch will be provided.

No preparation is necessary. We will provide you with a bound copy of the course materials.

Since space is limited and this is a hands-on course, we ask that only one person from your company attends. Slides will be available on our website for you to share with your team.

Event Location:

HRTec Computer Technology Center
6416 Grovedale Dr., Suite 302B
Alexandria VA 22310

On-site parking is available

9:30 AM Registration
10:00 AM Start
4:00 PM End

Prerequisites:
Must be proficient in C#
Must have a good understanding of Object Oriented principles

Agenda:
Unit Testing
Test Driven Development
Rules and Techniques
Refactoring
Working with Dependencies
Mock based testing

Sunday, December 21, 2008

My Third Dell Server

It's a Dell PowerEdge T100. :)

My Second Dell Server

It's a Dell PowerEdge SC440. It's great! :)

Thursday, October 2, 2008

Rails Hello World!

App\Controllers\say_controller.rb


class SayController < ApplicationController
    def hello
        @time = Time.now
    end

    def goodbye
    end

    def files
        @files = Dir.glob('*')
    end
end

app\views\say\hello.html.erb


<html>
<head>
<title>Hello, Rails!</title>
</head>
<body>
<h1>Hello from Rails!</h1>
<ul>
<li>Addition: <%= 1+2 %> </li>
<li>Concatenation: <%= "cow" + "boy" %> </li>
<li>Time in one hour: <%= 1.hour.from_now %> </li>
</ul>

<% 3.times do %>
Ho!<br />
<% end %>
Merry Christmas!
<br /><br />
<% 3.downto(1) do |count| -%>
<%= count %>...<br />
<% end -%>
Lift off!
<br /><br />
Email: <%= h("The <thekhuc@gmail.com>") %>

<p>
It is now <%= Time.now %>
</p>

<p>
It is now <%= @time %>
</p>

<p>
Time to say
<%= link_to "Goodbye!", :action => "goodbye" %>
</body>
</html>

http://localhost:3000/say/hello


Hello from Rails!



  • Addition: 3

  • Concatenation: cowboy

  • Time in one hour: 2008-10-03 06:23:33 UTC


Ho!
Ho!
Ho!
Merry Christmas!

3...
2...
1...
Lift off!

Email: The <thekhuc@gmail.com>

It is now Fri Oct 03 01:23:33 -0400 2008

It is now Fri Oct 03 01:23:33 -0400 2008

Time to say Goodbye!

app\views\say\goodbye.html.erb


<html>
<head>
<title>See You Later!</title>
</head>
<body>
<h1>Goodbye!</h1>
<p>
It was nice having you here.
</p>

<p>
Time to say
<%= link_to "Hello!", :action => "hello" %>
</body>
</html>

http://localhost:3000/say/goodbye


Goodbye!


It was nice having you here.

Time to say Hello!

app\views\say\files.html.erb


<html>
<head>
<title>Files</title>
</head>
<body>
<ul>
<% for file in @files %>
<li>file name is <%= file %></li>
<% end %>
</ul>
</body>
</html>

http://localhost:3000/say/files



  • file name is app

  • file name is config

  • file name is db

  • file name is doc

  • file name is lib

  • file name is log

  • file name is public

  • file name is Rakefile

  • file name is README

  • file name is script

  • file name is test

  • file name is tmp

  • file name is vendor



Wednesday, September 17, 2008

Agile Web Development with Rails - Third Edition

This is my current read. I want to see how Rails development is different from ASP.NET and how Rails enables Agile Web Development.

Friday, August 22, 2008

Current Read

UNIX Shell Programming by Stephen Kochan and Patrick Wood

NAnt Intellisense in Visual Studio 2005

Kevin Miller has a great tutorial for getting Intellisense working for NAnt under Visual Studio 2005.

AnkhSVN and VS Command Shell

Add the following tools to your toolset if you're doing doing Continuous Integration with your .NET projects:

AnkhSVN - A Subversion SourceControl Provider for Visual Studio. The software allows you to perform the most common version control operations directly from inside the Microsoft Visual Studio IDE. With AnkhSVN you no longer need to leave your IDE to perform tasks like viewing the status of your source code, updating your Subversion working copy and committing changes. You can even browse your repository and you can plug-in your favorite diff tool.

VS Command Shell - VSCmdShell provides users with a shell window inside the Visual Studio IDE that can be used for Visual Studio commands as well. Current version allows user to use either Windows Command Shell (cmd.exe) or Windows PowerShell.

Friday, July 18, 2008

IIS 6 Fix for UrlRewriter.Net

Make sure you add a Wildcard application maps entry under Application Configuration for UrlRewriter.Net to work without file extensions, e.g. http://localhost/show/users.

Wednesday, July 16, 2008

Could Not Load File or Assembly Issue

Problem:

Could not load file or assembly 'System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. System could not find the file.

Cause:

System.EnterpriseServices.dll is missing in the GAC or there exist different versions of this dll.

Fix:

Drag and drop "<windows_directory>\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll"
into the "<windows_directory>\assembly\" folder.

Source: http://forums.asp.net/t/956018.aspx

Tuesday, July 15, 2008

Projects

These are some of my latest projects, which I take great pride in posting.

Tools used: ASP.NET, C#, ASP.NET AJAX Control Toolkit, Javascript, CSS

Create/Edit New Foods




Grocery List




Eight 8-oz Glasses of Water




Edit Nutrition Goals


Development Tools

If you manage a start-up, and can't afford to pay for software development tools, then these are for you. They are very popular in the open-source community. There is also plenty of help on these tools on the web to help you get started. I am currently using these for my projects as well, and they're really good.

NUnit


NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the current production release, version 2.4, is the fifth major release of this xUnit based unit testing tool for Microsoft .NET. It is written entirely in C# and has been completely redesigned to take advantage of many .NET language features, for example custom attributes and other reflection related capabilities. NUnit brings xUnit to all .NET languages.

NAnt


NAnt is a free .NET build tool. In theory it is kind of like make without make's wrinkles. In practice it's a lot like Ant. A

TortoiseSVN


Subversion client, implemented as a windows shell extension.

TortoiseSVN is a really easy to use Revision control / version control / source control software for Windows.
Since it's not an integration for a specific IDE you can use it with whatever development tools you like.
TortoiseSVN is free to use. You don't need to get a loan or pay a full years salary to use it.

DBVisualizer


DbVisualizer is a database tool useful for developers and database administrators to aid develop and maintain their databases. It is the perfect solution since the same tool can be used on all major operating systems accessing a wide range of databases.

Oracle Database 10g Express Edition


Oracle Database 10g Express Edition (Oracle Database XE) is a free, downloadable version of the world's most capable relational database.

Oracle Database XE is easy to install and easy to manage. With Oracle Database XE, you use the Database Home Page, an intuitive browser-based interface, to administer the database; create tables, views, and other schema objects; import, export, and view table data; run queries and SQL scripts; and generate reports.

Oracle Database XE includes Oracle HTML DB 2.1, a declarative, graphical development environment for creating database-centric Web applications. In addition to HTML DB 2.1, you can use popular Oracle and third-party languages and tools to develop your Oracle Database XE applications.

Links


http://www.nunit.org/index.php
http://nant.sourceforge.net/
http://tortoisesvn.tigris.org/
http://www.minq.se/products/dbvis/
http://www.oracle.com/technology/software/products/database/xe/index.html

Wednesday, June 25, 2008

Firefox 3 Broke My Code

Yesterday, I had to install Firefox 3, because my most recent work stopped functioning properly in the new Firefox. I wanted to wait a little longer for Firefox 3 to be more stable, but had no other choice. Who would have thought the new version of my beloved Firefox would break my code? Basically, it had to do with my 3 Javascript functions that I wrote: OnMouseOver, OnMouseOut and OnClick. In the OnMouseOver function, I used the innerHTML property to replace some div text. I'm not sure if anybody else had this problem with the new Firefox, but the innerHTML property prevented my OnClick function from being called. I figured this out using my favorite Javascript debug method: alert('test'); It took me the whole day yesterday debugging and researching on Google, but still came out clueless. I ended up throwing away the innerHTML code and used the image src property instead. From experience, I've found sometimes it's best to throw away my current non-working solution and start fresh.

Wednesday, June 18, 2008

Ray Allen is Back

Congratulations to the Boston Celtics. I'm really glad to see the Celtics won their 17th championship against the Lakers last night. They deserve it. Most importantly, Ray is back to his former self. Last night's game was one of the most exciting games I have seen in a long time. Can't wait to see them come back next season to defend their title.

Ray Allen

Source: NBA.COM

Friday, May 9, 2008

NBA Playoffs 2008

I like to root for the underdogs, so this season I'm rooting for the Utah Jazz and the New Orleans Hornets. Well, if you have watched them playing, they're not really the underdogs. I did not watch many NBA games in the regular season, because honestly I do not have a favorite team or a favorite player. Michael Jordan and Allen Iverson were my two favorite players.

I started to watch the NBA Playoffs a few weeks ago, and I found the Jazz and the Hornets were fun to watch. The Jazz's #5 Carlos Boozer and #8 Deron Williams play great together, while the Hornets' #3 Chris Paul is becoming one of the League's best point guards. I'm rooting for the New Orleans Hornets to make it all way and win the 2008 NBA Playoffs.

Wednesday, May 7, 2008

Summer Has Arrived

Another semester has gone by and summer is finally here. Took SWE 637 final yesterday. I think it went well. The class is on Software Testing and taught by Professor Paul Ammann. It turned out to be more interesting and useful than I expected,and I learned quite a lot from this class.

I also took SWE 621 this semester. It's on Software Design and taught by Professor Robert Pettit. I learned to use IBM's Rational Software Architect software to design a racing system, which is a concurrent and real-time application. Got an opportunity to sharpen my UML skills as well as software design knowledge.

I would highly recommend both classes.

SWE 621 - This is a course in concepts and methods for the architectural design of software systems of sufficient size and complexity to require the effort of several people for many months. Fundamental design concepts and design notations are introduced. Several design methods are presented and compared, with examples of their use. Students will undertake a term project working in small groups addressing the design of a relatively complex software system.

SWE 637 - Concepts and techniques for testing software and assuring its quality. Topics cover software testing at the unit, module, subsystem, and system levels, automatic and manual techniques for generating and validating test data, the testing process, static vs. dynamic analysis, functional testing, inspections, and reliability assessment.