Sunday, August 29, 2010

I am freezing this blog: future artificial intelligence material will be on my main technology blog

Please visit my general technology blog

Tuesday, February 16, 2010

URL for this blog: http://aiblog.markwatson.com

I had to change the URL for this blog: please update any links to:

http://aiblog.markwatson.com

Thursday, October 08, 2009

Verison 2.0 of OpenCyc is available

I installed OpenCyc 2.0 on one of my test servers last night. It is now Java based, so is (in principle) portable: I'll try modifying the start up scripts for OS X when I have time. There is also now a Semantic Web sub project for OpenCyc.

There are now references to other lined data sources - you will notice this as soon as you start experimenting with the browser based interface.

If you have not tried OpenCyc before, it is a free version of the Cyc product. OpenCyc provides an ontology of the "real world" and many facts and relations dealing with what might be called "common sense" knowledge.

Friday, June 20, 2008

Very nice: Elsevier IJCAI AI Journal articles now available for free as PDFs

This requires a free sign up process. I just registered and I found a dozen articles on topics of interest to me that are now in my reading queue.

New version of Numenta software is available

I prefer open source software - the license applied to an open source software project lets me know up front what my usage rights and obligations are.

The Numenta Platform for Intelligent Computing (NuPIC) is free for academic and non-commercial research use, but there is so far no definitive information on commercial licensing costs. As a result of this, even though I like the ideas behind NuPIC, I spend relatively little time playing with the examples. I very much enjoyed Jeff Hawkin's book On Intelligence (Amazon purchase link) and I will probably devote a lot more time to experimenting with NuPIC when all of the licensing issues are nailed down.

Saturday, March 29, 2008

Protégé OWL Ontology Editor

I installed Protégé version 4 alpha last night and it has been solid for me so far. It has been over a year since I upgraded my local Protégé installation, and I like these (new ?) features a lot:I have started working again on an old KnowledgeBooks project: an OWL ontology for news stories and associated "Semantic Scrappers" to populate the ontology from plain texts of news stories. I am still in the experimentation stage for the semantic scrapper: I am trying to decide between pure Ruby code, Java using the available OWL APIs, or a combination of JRuby and the Java OWL APIs. I am currently playing with these three options - for now, I am in no hurry to choose a single option. Using a dynamic language like Ruby has a lot of advantages as far as generating "OWL classes" automatically from an ontology, etc. That said, the Java language has the best semantic web tools and libraries.

Long term, I would like a semi-automatic tool for populating ontologies via custom scrapper libraries. I say "semi-automatic" because it would be useful to integrate with Protégé for manual editing and browsing, while supporting external applications accessing data read-only (?) via the Java OWL APIs.

Labels: , ,


Saturday, February 23, 2008

Ruby API for accessing Freebase/Metaweb structured data

I had a good talk with some of the Metaweb developers last year and started playing with their Python APIs for accessing structured data. I wanted to be able to use this structured data source in a planned Ruby project and was very pleased to see Christopher Eppstein's new project that provides an ActiveRecord style API on top of Freebase. Here is the web page for Christopher's Freebase API project. Assuming that you do a "gem install freebase", using this API is easy; some examples:
require 'rubygems'
require "freebase"
require 'pp'

an_asteroid = Freebase::Types::Astronomy::Asteroid.find(:first)
#pp "an_asteroid:", an_asteroid
puts "name of asteroid=#{an_asteroid.name}"
puts "spectral type=#{an_asteroid.spectral_type[0].name}"

#all_asteroids = Freebase::Types::Astronomy::Asteroid.find(:all)
#pp "all_asteroids:", all_asteroids

a_company = Freebase::Types::Business::Company.find(:first)
#pp "a_company:", a_company
puts "name=#{a_company.name}"
puts "parent company name=#{a_company.parent_company[0].name}"
You will want to use this API interactively: use the Freebase web site to find type hierarchies that you are interested in, fetch the first object matching a type hierarchy (e.g., Types -> Astronomy -> Asteroid) and pretty print the fetched object to see what data fields are available.

Labels: , ,


This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]