Search Copia:   

Diamonds are so over ((author unknown))

I was listening to my beloved Asa today (Up Nigerian soul!) "Fire on the Mountain", an incredible monument of a song:

 

So you say you have a lover and you love her like no other
So you buy her a diamond that someone has died on
Don't you think there's something wrong with this?

 
Diamonds are contemptible bits of mediocre mineral that serve testimony to the gullibility and pliability of the public. I can't wait for the advent of perfect, carats-for-pennies diamonds from the laboratory, and it won't be long (would probably have been by now if not for the invidiousness of the diamond cartels). Soon, I hope, we can finally ditch the foetid illusion that diamonds have any value.


Hey Mr. soldier man, tomorrow is the day you go to war
Boy you are fighting for another man's cause and you don't even know him
 
Ooooh!
 
What did they say to make you so blind to your conscience and reason?
Could it be love for your country or for the gun you use in killing?

 
Or for the diamonds that corrupt your country and purchase those very guns?
 
You've heard it before, but Asa tells it with a fierce trueness. It's time to stop giving money to the diamond cartels. You might as well spend two months' salary funding coca and poppy production.

Permalink | Leave a comment  »

The Tongue ((author unknown))

In my poetical wandering over the weekend I ran across Karl Shapiro's "The Tongue". He starts by getting the conceit all wrong, and even though it bears the execution of a fine craft piece, the result comes off a bit of a mess.
 
As a slug on the flat of the sun-heated clay, With the spit of its track left behind it like glass, Imperceptibly voyages, licking its way In the sinuous slime of itself to the grass,   So my tongue on the white-heated wall of your thigh Licks its belly across, and the path of my slime Lies in ribbons of passion, the wet and the dry Overlapping to mount to the leaf of its climb.   And the mouth and the mouth and the tongue and the tongue And the fishes that feed in the joy of our oil And the slug of our wetness finds green food among The hair-forests of longing where serpents uncoil.
 
You can see how the cleverness dampens the sense, something I often struggle with myself. This is a large part of the reason why Shapiro, despite his technical skill, has never been as celebrated as he should be. He tries to use a sprinkling of words ("passion", "longing") to mend the detachment of the conceit of the slug, which could never hope to transport the idea of a tongue inching towards cunnilingus.
 
The piece pretty much cries out for a rival metaphysical poet's response.  And it should serve as a lesson to me.

Permalink | Leave a comment  »

Automatic Generation of Computer Animation: Using AI for Movie Animation (chimezie)

Turning a story in text form into an animated movie is a long and complicated procedure. [...] many parts of this process could be automated by using artificial intelligence techniques [...] So we decided to explore the possibility of a generation process of computer animation from a childrens story in natural language text form to the final animated movie.

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

Data chef: SPSS Tripe Consommé (Uche Ogbuji)

The data chef discusses translation of data from SPSS format, for those who don't have a licensed copy at hand.

Only one poem for the implosion of Capital (Uche Ogbuji)

BOULDER, CO- I’ve often heard it said that “there is no such thing as a communist Igbo”, a reference to our intense mercantile culture. Somewhat like stereotype of Lebanese, we’ve tended to structure our very existence around what we can sell, and in this 419 age, what we can con out of others. Ok, [...]

NLTK Home ‎(Natural Language Toolkit)‎ (chimezie)

Open source Python modules, linguistic data and documentation for research and development in natural language processing, supporting dozens of NLP tasks

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

Stephen Marsland (chimezie)

"I've written a textbook entitled 'Machine Learning: An Algorithmic Perspective'. [...] There are lots of Python code examples in the book, and the code is available here." Yummy

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

Character-length restrictions, RPC, and choosing FriendFeed over Twitter (Uche Ogbuji)

Database field-length silliness has haunted me throughout my career as an data/information architect, and I've never liked it. "VARCHAR(255)? What? Because in the lifetime of that data, which by the way you'd better be planning to exceed the lifetime of this miserable application, you're never going to need more than 255 characters?" ... So here comes Twitter with it's damned 140 characters.

Semantic Web takes root at the IA Summit « Meaningful Data (Uche Ogbuji)

Semantic Web takes root at the IA Summit « Meaningful Data

Bookmark added by Uche Ogbuji at 09:44 PM CDT
"At the recent IA Summit, I was surprised and delighted to see how many talks there were about the Semantic Web. Before this emerging technology can really catch on, we will need more Information Architects and Interaction Designers who understand the potential and can design elegant solutions ...

On Model Theory ((author unknown))

So, I've started a part-time Ph.D program at the EECS department of
Case Western University. I'm hoping to write a thesis on higher
education information science as patient advocacy. I've taken a
course on Machine Learning, database systems, and now on model theory.
 Luckily Case has a class on model theory in the philosophy
department. But it also counts as credit from the graduate
mathematics department.
 
The class on model theory is about Kurt Godel's (I know I'm
misspelling it) theory on the incompleteness theory of peano's
arithmetic ( an axiomatization of number theory ). The book for the
class, It is supposed to be written by mathematical geniuses, our
professor proclaims. The book is ".."
 
Models are states of absolute (binary) logical certainty: things that
are or things that aren't. Statements in this language are 'sound'
(they follow from our understanding of logic). The consist of
domains: sets of 'things' denoted by terms in a written language (a
first-order language). The model also consists of 'interpretations'
of phrases (or formulas) in this language, some of which are 'closed'
(i.e., all variables refer to constants interpreted through this
model) or open. The axiomatic nature of basic science presumes
logical certainty in its canon. The language consists of constants
that can be interpreted 'against' the domain of a model, sets of
constants composed form constants interpreted against the domain of
the model, functions that map sets of members of the domain to members
of the domain, 'relations' over the domains, and a determination of
'equality' over members of the domain. Model theory is the basis of
first-order theory, logic-based knowledge representation, numeric
theory, etc..
 
Godel's theory says that any axiomatic system that is as expressive as
some computable representation of number theory is not complete (i.e.,
there is at least one question you can formulate in the language for
which you cannot say with certainty that it is so or it isn't so).
 
Models 'entail' sets of formulas when they entail all the members of
the set. Models satisfy sentences and 'terms' in languages. Some
formulas can be said to be valid in every model (i.e., they are
satisfied by every model of a language) or they specifically are
entailed by a particular model. Axiomatic machinations (finite state
automata, etc..) are systems about languages and a set of axioms that
can be used to 'derive' expressions in the language via a finite set
of valid theories, specifically given sentences in a theory, or
sentences that follow from modus ponens (common sense if / then
conditionals) and sentences in a theory (a scientific theory).
 
As our prof puts it, all of logic programming (and database theory) is
spawned by this known limitation to model theory and first-order
logic. They are restricted forms of it that are complete (unlike
number theoretic languages), and sound and thus 'decidable' by a
finite state automaton or turing machine.
 
Systems that describe their 'formal semantics' - the meaning of
statements made in their languages often describe them using model
theory (all of semantic web theory does this: RDF, RDFS, OWL-DL,
etc..). More on this later

Permalink | Leave a comment  »

Using OWL and Default Negation to Reason about Patient Records ((author unknown))

We've been using SPARQL, OWL, and N3 lately to prototype the reporting
of common research variables to the Society of Thoracic Surgeon's
(STS) National Database. The reports are being run against our large
RDF dataset of abstracted electronic patient records from the
Cleveland Clinic's Electronic Health Record system. Our dataset
consists of about 200,000 patients each represented as statements in
named RDF graphs. The STS variables we are responsible for deriving
are represented using a combination of OWL-DL and Notation 3. The
constraints that do not benefit from the restricted, tree-like nature of description logic are captured using secondary plain Horn clauses
(or rules) represented in Notation 3.
 
We use an open source logic reasoning system for the semantic web that
converts the constraints and a SPARQL query for an RDF dataset
governed by these OWL-DL constraints into provably optimal sets of
rules used to calculate an entailed RDF graph (the specifics of this
method is a subject of a paper I'm working on for the RuleML 2009
conference). Such an entailed RDF graph can then be targeted with
SPARQL queries to answer for the STS variables. A recent challenge
has been to try to capture the semantics of negation in order to
implement 'exclusion criteria'. This is typically of the form of a
class of procedures that do not involve combinations of one or more
kinds of other procedures. A recent update to FuXi includes the
ability to convert OWL-DL expressions that use owl:complementOf into
general, stratified, logic programs that can be evaluated using SPARQL
in order to implement the semantics of stable model negation (which is
quite different from the way owl:complementOf is meant to be
interpreted: according to the negation of first-order logic).
 
In particular, statements of classical (first-order) negation are
making assertions about the lack of existence of models that satisfy
the positive form of such a statement in a theory. I prefer this
explanation to the way the term 'open world' assumption is often
used to describe this interpretation of negated terms in a
description logic language. Database theory, ofcourse, does not interpret negated terms
in this way, but instead (intuitively) understands statements of negated terms to be
'true' if the (ground) positive form is not in the set of known facts (the
database).

Our use of negation, and the nature of knowledge
recorded in a computer-based patient record system seems (so far) to
lend itself more to the database interpretation where there is an
understanding that a curated medical information system would have its
data entered under the governance of policies that would allow
medically useful inferences to be made from the absence of certain
facts about patient care.
 
In particular, if a fact is known to not be true about a patient or
some activity involving a patient, it is not recorded. This common
understanding can be used to make inferences about whether facts in a
patient record satisfy an exclusion criteria. Below is an example of
this:
 
Consider the following OWL descriptions of a class of operations:
 

SubClassOf(
  IntersectionOf(
  Operation
  PostOpInHOspitalEvent
  ObjectAllValuesFrom(
  involves
  ComplementOf( UnionOf( CardiacProcedure ThoracicControlBleeding ) ) )
 )
 sts:ReopForOtherNonCardiac )

The syntax above is the OWL2 functional-style syntax. We can
paraphrase the general class inclusion (GCI) axiom above as saying:
"..  all operations that followed another operation and do  not involve any 
cardiac procedures or thoracic control bleeding procedures.

The original documentation for this variable in the STS adult cardiac
database manual says: 

Indicate whether the patient returned to the operating room for
other non-cardiac reasons

Now, if we assume that all operations of interest and the involved
procedures are explicitly recorded in our patient RDF dataset. This
general class inclusion axioms can be reduced into a set of rules that use negated
'literals' (as they are called); understood to capture the semantics of
default negation (or the 'closed world assumption').  It is worth noting that this is exemplary of a class of expressions that description logic, tableaux-based reasoning algorithms often have problems with.

Conjunctive query answering for stratified datalog is a well-studied class of
problems in database theory. It is through the insight of this canon of theory that FuXi is now able to reduce
OWL-DL expressions that use owl:complementOf into sets of rules (or
logic programs) that can be efficiently processed in order to
implement SPARQL entailment regimes for combinations of OWL and
rule-based representations for the semantic web such as
Notation 3 or RIF core.
 
The current FuXi implementation converts the GCI into the following
two RIF rules:


Forall ?X ?QrjeKHuq961 (
?X # sts:ReopForOtherNonCardiac

  :- And(

    ?X # PostOpInHospitalEvent
    ?X # Operation,
    Naf ?X[involves -> ?QrjeKHuq961] ) )


Forall ?X ?QrjeKHuq961 (
?X # sts:ReopForOtherNonCardiac
  :- And(

    ?X # PostOpInHospitalEvent ,
    ?X # Operation,
    ?X[involves -> ?QrjeKHuq961],
    Naf ?QrjeKHuq961 # CardiacProcedure,
    Naf ?QrjeKHuq961 # ThoracicControlBleeding ) )


 Note, Naf is in the (current) 30 July 2008 version of the " RIF
Framework for Logic Dialects

The first rule describes members of the clas of ReopForOtherNonCardiac as those post-operative operations (i.e., operations that follow another operation in the same patient hospital visit or episode) that do not involve other procedures.

The second rule applies to those post-operative operations that do involve other procedures where these other operations are not either cardiac procedures or thoracic control bleeding procedures.

These RIF rules can be exchanged with other RIF-compliant rule-based
systems that implement any of the well-accepted semantics for negated
formulas in horn clause logic (stable models, well-founded models,
stratified models, etc.). A recent modification to FuXi makes
use of a programmatic SPARQL interface for Python that a colleague of
mind has been working on called telescope. It works with
rdflib (same as FuXi) and is used as a control layer that converts
negated RIF rules into a series of SPARQL queries involving
OPTIONAL/FILTER/!BOUND that are used to calculate "stratified models"
(i.e., the finite set of facts that can be inferred from the set of
rules that include negated literals).
 
Renzo Angles et al. ( 2008) and Polleres, A. ( 2007) have since
demonstrated that the expressive power of SPARQL coincides with that
of datalog with negation, so it comes as no suprise that certain
datalog clauses (or rules) can be converted into SPARQL queries using
so-called copy-patterns and the introduction of a MINUS operator. For
the details of how this operator works and how its semantics are
equivalent with that of datalog, the reader is urged to read any of
the above mentioned papers.
 
telescope is used to programatically convert MINUS operators into a
SPARQL queries that answer for RIF rules with the corresponding
negated frame formulas below:
 

SELECT ?X
WHERE {
 ?X a PostOpInHospitalEvent .
 ?X a Operation
 #The post-operative operation does not invlolve any procedures
 OPTIONAL { ?X involves ?QrjeKHuq961 }
 FILTER (!bound(?QrjeKHuq961))
}


SELECT ?X
WHERE {
 ?X a PostOpInHospitalEvent .
 ?X a Operation .
 ?X involves ?QrjeKHuq961
 #In the case where the post-operative operation involves a procedure
it is *not* either a
 # cardiac procedure or a thoracic control bleeding
 OPTIONAL {
  ?QrjeKHuq961 a CardiacProcedure .
  ?QrjeKHuq961 a ThoracicControlBleeding .
  ?QrjeKHuq16542 a CardiacProcedure .
  ?QrjeKHuq16542 a ThoracicControlBleeding
  FILTER (?QrjeKHuq961 = ?QrjeKHuq16542)
 }
 FILTER (!bound(?QrjeKHuq16542))
}


I'll be adding a wiki shortly (on the python-dlp google code wiki)
describing the explicit APIs that can be used for this purpose, but I
wanted to give the feature some context in the recent work I've been
doing on applications of semantic web for medical informatics
 
-- Chimezie

Permalink | Leave a comment  »

RDF / OWL Tool Developers Should Respect xml:base! ((author unknown))

Okay. I think it needs to be said that RDF / OWL tool-makers do not
do a good job of respecting the mechanics of xml:base . It seems
almost a given that most of them mangle the URI base resolution
conventions they find in existing RDF/OWL files, overwriting them with
their own. Often, this happens in a very destructive way that can be
even more annoying for a person who has much experience using XML and
thus has a better appreciation (perhaps) of the value of a base URI of
an OWL document for more than just owl:Ontology/@rdf:about.
 
This is the typical scenario: I create an OWL document like so:
 
<rdf:RDF>
 <owl:Ontology rdf:about="">
   <owl:imports rdf:resource=".. relative path .."/>
 </owl:Ontology>
 <owl:Class rdf:about=" tag:info@example.com#Stuff"/>
</rdf:RDF>

 
First, let me describe the intent here. I think it is perfectly
reasonable to modularize large ontologies into fragments (if you will)
that are bundled together and linked via relative imports. Since they
are bundled together, I often like to use the power of URI resolution
to make relative references to imported OWL documents (as you can see
above) in a way that is completely independent from where the bundle
is being deployed (file system or on the web).
 
The downside of not using xml:base explicitly is that the URIs of my
classes need to be fully qualified, but as far as I'm concerned this
is outweighed by the advantage of knowing that I can deploy my bundled
import network on a website or on a filesystem and have any
self-respecting tool know how to resolve the relative URIs.
 
One of the more involved technical points during the development of
GRDDL was regarding the use of empty URI references in GRDDL results.
The primary importance of empty, relative URI references (in RDF serializations) is the
ability to refer to the containing document without necessarily having
the URI on hand. It was this particular dialogue that made me better
appreciate the power and simplicity of the URI base resolution process
that sits at the bottom of many of the important W3C specifications.
 
From RFC 3986 (the process of determining the Base URI to use when
resolving relative URIs):
 
* The base URI is embedded in the document's content.
* The base URI is that of the encapsulating entity (message, document, or none).
* The base URI is the URI used to retrieve the entity.
* The base URI is defined by the context of the application.
 
Getting back to my example above (this was supposed to be a short
rant). Too often what happens is that when I load an OWL document
such as the oneabove into an OWL editor and save it (even after not
making any changes), it results in:
 
<rdf:RDF xml:base=" tag:info@example.com#">
 <owl:Ontology rdf:about="">
   <owl:imports rdf:resource="file:///path/to/OWL/document"/>
 </owl:Ontology>
 <owl:Class rdf:ID="Stuff"/>
</rdf:RDF>

 
<insert appropriate expletive>
 
Now, it's not so much the 'forced' use of rdf:ID that bothers me as
the fact that the relative paths used for the imports are now replaced
with absolute URIs. This sabotages the advantage I once had of being
able to rely on the URI resolution chain to be sufficient for clients
that need to resolve my relative URIs. Essentially, the OWL tool has
monopolized the opportunity to resolve relative URI references.
 
Now, in fairness, it seems much of the motivation of doing this is to
associate an explicit base URI with the ontology itself and often
ontology tools will complain if they are unable to determine an
absolute URI to use for this purpose. I think a better mechanism for
doing this would be explicit attributes or elements rather than
bastardization of the ability to give an explicit URI base in content.
 
It seems to me that if the author wanted to associate an explicit URI
with the ontology he or she would use one in the place of an empty,
relative URI reference. In fact, I would go as far as saying that it
is bad practice to forcibly insert an @xml:base in a document that
doesn't have one *and* uses empty, relative reference!
 
So, for any developers of RDF / OWL tools, please take care in trying
not to enforce a base resolution scheme despite the document author
providing one of their own for reasons that are orthogonal to
associating a URI to an ontology (and more important as far I'm
concerned): deployability.

Permalink | Leave a comment  »

Slender Mitochondrial Strand (Uche Ogbuji)

BOULDER, CO- Mitochondrial DNA is a profound, primeval truth.  As far back as all the creatures we can see with our naked eye, ourselves included, it’s meant that the blueprints for the energy of our lives are passed only through the lines of mothers.  Poetry is all about such profound truths.  Sometimes those truths possess lives [...]

"The Thinking Man’s Rapper", Black Thought interviewed by Touré [The Daily Beast] (Uche Ogbuji)

"The Thinking Man’s Rapper", Black Thought interviewed by Touré [The Daily Beast]

Bookmark added by Uche Ogbuji at 11:51 AM CDT
The Thinking Man’s Rapper In a rare interview, Touré talks with Black Thought—front man for The Roots and the new house MC of Late Night with Jimmy Fallon about what Chuck D. taught him about race, why rapping is like jumping rope, and the reasons behind his rhymes. Black Thought is not ...

RBMA Radio: Fireside Chat - The Roots (Uche Ogbuji)

RBMA Radio: Fireside Chat - The Roots

Bookmark added by Uche Ogbuji at 08:09 AM CDT
Long interview with Roots, interspersing their music, giving an overview of their history and work.

Total ordering class decorator « ActiveState Code (chimezie)

Given a class defining one or more ordering methods, this decorator supplies the rest. This simplifies and speeds-up the approach taken in recipe 576529.

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

New World (tap) Water [Poster Boy @ Flickr] (Uche Ogbuji)

New World (tap) Water [Poster Boy @ Flickr]

New World (tap) Water [Poster Boy @ Flickr]

Image added by Uche Ogbuji at 01:21 PM CST
Neat homage by the brilliant and infamous "Poster Boy" to one of the great songs of Hip-Hop.

Cobe Obeah "Know Thyself" [okayplayer - Audio] (Uche Ogbuji)

Cobe Obeah "Know Thyself" [okayplayer - Audio]

Cobe Obeah "Know Thyself" [okayplayer - Audio]

Comment added by Uche Ogbuji at 11:45 PM CST
Cobe Obeah comes with some of the illest lyrics I've heard in a minute (and I keep my ears out there). Minimalist production, but sometimes that's a good thing when someone is spitting fire and you don't want any interference. Intriguingly he hints at Nigerian roots, even rapping "give me ...

Cobe Obeah "Know Thyself" [okayplayer - Audio] (Uche Ogbuji)

Cobe Obeah "Know Thyself" [okayplayer - Audio]

Cobe Obeah "Know Thyself" [okayplayer - Audio]

Comment added by Uche Ogbuji at 11:45 PM CST
Cobe Obeah comes with some of the illest lyrics I've heard in a minute (and I keep my ears out there). Minimalist production, but sometimes that's a good thing when someone is spitting fire and you don't want any interference. Intriguingly he hints at Nigerian roots, even rapping "give me ...

A RESTful wrapper for MoinMoin (Uche Ogbuji)

I've always loved the MoinMoin wiki, and lately I've been using it for more and more, at work and at home. I've pined for a REST wrapper for a while, and I finally bit the bullet and wrote one, as part of the open-source Akara project, which among other things provides RESTful access to the XML processing capabilities of Amara 2.x.

A Unix Utility You Should Know About: Pipe Viewer (chimezie)

"Pipe viewer is a terminal-based tool for monitoring the progress of data through a pipeline. It can be inserted into any normal pipeline between two processes to give a visual indication of how quickly data is passing through, how long it has taken, how near to completion it is, and an estimate of how long it will be until completion."

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

Analyzing The Text Of Obama's Inaugural Address : NPR (Uche)

Analyzing The Text Of Obama's Inaugural Address : NPR

"Although many Americans heard Barack Obama's inauguration speech, they probably weren't listening for plyptotons and catachresis — but Geoff Nunberg was." This is the best reflection I've seen on Obama's speech. It's not that I agree with everything Nunberg says (for example, I think antimetabole can still be "vessel of deep ideas" to the modern ear, and even the cited examples from McCain and H.R. Clinton worked), but it's that Nunberg bases his points on basic, good sense, that's unfortunately rare these days in discussions of language.

Saved By: Uche Ogbuji | View Details | Give Thanks

Tags: , , , ,

Do you remember the inaugural Poem? (Uche Ogbuji)

BOULDER, CO- The inaugural poem by Elizabeth Alexander had one of the greatest audiences for poetry in the past 16 years or so, ever since Maya Angelou in 1993.  It seeped over its huge audience just yesterday.  Do you remember any of it?  How about the opening? “Praise song for the day.” How about the opening two words?  [...]

Solving the data warehouse dilemma with grid technology (chimezie)

"Grid computing introduces a new concept to IT infrastructures because it supports distributed computing over a network of heterogeneous resources and is enabled by open standards. Grid computing—which helps optimize underutilized resources, decrease expenses and reduce costs—has helped organizations accelerate business processes, enable more innovative applications, enhance productivity, and improve resiliency of IT infrastructure."

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

Fundamentals of Grid Computing (chimezie)

"The purpose of this IBM Redpaper is to provide discussion material about grid computing, concepts, use, and architecture. Grid computing represents unlimited opportunities in terms of business and technical aspects."

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

Easy State Pattern - support for implementing state machines « ActiveState Code (chimezie)

Recipe 576613: Easy State Pattern - support for implementing state machines "Provides is a module that gives support for implementing state machines. States are implemented as subclasses, derived from the state machine class. Methods that are state dependant or which cause transitions are declared using decorators. "

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

Counter class « ActiveState Code (chimezie)

Recipe 576611: Counter class: Bag/multiset class for convenient tallying of hashable elements.

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

Recovering text areas from Firefox session information (Uche Ogbuji)

A small Python utility to extract saved text area content from Firefox session files.

Financial Crisis, Housing Crisis, Recession, Budget Crisis, What It ... (chimezie)

"Last year, when lenders started dropping like flies as foreclosures rose and margins were called, the problems of Wall Street became more and more apparent, and lending guidelines were tightened to the point that many individuals were stuck in their time-bomb loans, and thus began a vicious cycle. But what led to this? Here is a visual guide to help you understand the events leading up to the bailout."

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

ExpanDrive: Ridiculously simple SFTP and FTP drive access on your Mac (chimezie)

"ExpanDrive gives you perfectly transparent access to open, edit, and save files with your favorite programs, even when those files are half a world away."

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

Tuffcode - Home (chimezie)

"Capture HTTP conversations regardless of the browser or server technology you use."

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

Why UML Fails to Add Value to the Design and Development Process « Learning Lisp (Uche)

Why UML Fails to Add Value to the Design and Development Process « Learning Lisp

'UML is applying an abstraction at the wrong end of the problem. It is primarily used to sketch object models for inferior languages. As such, it tends to explode into incomprehensible patterns of accidental complexity in order to accommodate the various “design patterns” that are used work around the lack of essential language features.' Wow. So harsh (written by a "lispy", mind you), yet so, so true. I's a much sharper version of something I've been saying for years. Too many architects focus on implementation artefacts rather than the core domain model, and this is one of the most expensive mistakes in software engineering.

Saved By: Uche Ogbuji | View Details | Give Thanks

Tags: ,

Wæs Hæil (or scattered thoughts from the sunk sap of the world) (Uche Ogbuji)

BOULDER, CO- The northern winter solstice.  Christmas.  Yule.  Shab-e Yaldā.  Channukah.  Epiphany.  Kwanzaa.  Soyal.  (I left out Eid ul-Fitr because, though it happens to fall around the solstice lately, that’s sheer coincidence—In a decade or so, it will be marked closer to the summer solstice).  The Season is the New Year in a thousand shapes and [...]

Magic sets, DLP, and other strange ways to implement semantic web expert systems ((author unknown))

I just finished some changes to python-dlp including a modification to
FuXi that includes an implementation of the Magic Set Transformation
(MST) method for RIF-like horn clauses. The most useful, immediate
value this has for me is to be able to (essentially) implement a DLP
(description logic programming) entailment regime for a SPARQL query
service.
 
Consider the test case for the SymmetricProperty OWL test.
 
The base facts are:
 
  first:Ghent first:path first:Antwerp .
  first:path a owl:SymmetricProperty
 
The goal we are trying to prove is:
 
  first:Antwerp first:path first:Ghent
 
I.e., a user wants to query an RDF dataset that includes an RDF graph
with the above statements and is expected to implement an entailment
regime for OWL-DL RDF such that the following query gives a positive
answer:
 
  ASK { first:Antwerp first:path first:Ghent }
 
The general pD* rule that would normally apply in helping answer this query is:
 
  {?P a owl:SymmetricProperty. ?S ?P ?O} => {?O ?P ?S}.
 
Re-written in a familiar (prolog-like) RIF-BLD syntax:
 
  Forall ?P ?O ?S ( ?P(?O ?S) :- And( owl:SymmetricProperty(?P) ?P(?S ?O) ) )
 
In order to maintain consistency, a rule-based engine that used this
clause to implement the definition of a symmetric property would need
to fire it for *every* triple in the fact base (in order to properly
calculate the herbrand base) because of the 2nd triple pattern in the
body / antecedent / left-hand-side of the rule: ?S ?P ?O
 
However, the DLP approach that converted tree-based OWL axioms into
colloquial horn clauses would allow us to use (instead) a
domain-specific rule:
 
  Forall ?Y ?X ( first:path(?Y ?X) :- first:path(?X ?Y) )]
 
This rule is domain-specific in the sense that it only applies to
instances of the first:path predicate rather than for every predicate.
 As a result of this transformation, the procedural evaluation of the
rule for symmetry has been reduced from the worst case to only the
fraction of the RDF dataset concerning first:path statements.
 
So, a knowledge base that could exhaustively evaluate rules in a
top-down fashion (via 'forward chaining') prior to bringing up the
SPARQL service could answer that question against the (smaller)
entailed RDF graph.
 
However, with the MST implementation, if the query was known a priori
the ruleset can be modified into a version that further restricts the
amount of redundant work done during the inference process. For
example, even if the SPARQL service is known to never have to answer
that query, the colloquial rule above would still be needed by a niave
implemenation and would apply to every statement that used the
first:path predicate.
 


 
The diagram above is a Graph-viz rendering of a Proof Markup Language
(PML) proof tree generated by taking the colloquial rule, modifying it
using the MST algorithm, evaluating the base facts against the
ruleset, and adding an RDF statement that 'triggers' the
backward-chaining process.  Fuxi includes a nice set of utilities for generating proof tree vizualizations.

 

Essentially, performing a top-down (or
forward chaining) evaluation of the rules and the facts simulates a
backward-chained proof.
 
Below are the 3 rules that replace the original domain-specific rule:
 
  :path_magic(?LOC1 ? LOC2) :- And( :path_magic(?X ? LOC2)
:path_bf(?X ? LOC1) :path_magic(?X) )
  :path_magic(?X) :- :path_magic(?X ?LOC)
  :path(?X ?LOC1) :- And( :path_magic(?X ? LOC1) :path_magic(?X)
:path(?X ?LOC2) :path_magic(? LOC2 ? LOC1) :path(?LOC2 ?LOC1) )
 
And finally, the trigger for the proof is the following RDF statement:
 
  first:Antwerp first:path_magic first:Ghent
 
The first two rules, pass through information about the sub-goals of
the query and essentially block the final rule from taking effect
until the trigger is added to the fact graph. It is clear to see that
the 3rd rule, will no longer apply to every RDF statement with a
first:path predicate, but rather only statements of that kind where
the subject and / or object terms are part of a query. So, for a
SPARQL service where we do not expect to answer queries that rely on
supporting symmetric properties in the first:path predicate, no
calculations will be performed and no unnecessary RDF statements will
be entailed.
 
I hope to write a bit more about some of the benefits of a Python
toolkit for building Semantic Web expert systems. I touched a bit on
these in my InfixOWL write-up and presentation, but haven't really put
the whole picture together.
 
-- Chimezie

 

Permalink | Leave a comment  »

RIF BLD Tests (chimezie)

Need to setup a harness to run these against FuXi

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

NetWorkSpaces for Python (chimezie)

"NetWorkSpaces (NWS) is a new way to write parallel programs. It allows you to take advantage of multicore and multiprocessors computers, as well as clusters, using scripting languages such as Python, R, and Matlab.."

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

Learning SHIQ+log Rules for Ontology Evolution (chimezie)

"In this paper, we have proposed an ILP framework built upon SHIQ+log¬ [...]. Indeed, well-known ILP techniques for induction have been reformulated in terms of the deductive reasoning mechanims of DL+log"

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

The Stationary Distribution of a Markov Chain (chimezie)

"In this note I present a concise proof of the existence and uniqueness of the limit distribution of an ergodic markov chain. This nice proof was described to me by David Gilat of Hebrew University during a hot summer afternoon in Perugia"

http://delicious.com Bookmark this on Delicious - Saved by chimezie to - More about this bookmark

Ngozi Isabella (Chioma) Ogbuji ((author unknown))

Initial 'portrait' shot of the new baby!

Ngozi(chukwu.nyere) means the blessing that God (or heaven/celestial, by my interpretation) gave.  My name (Chimezie) is an Igbo invokation for "(May) God resolve".  My interpretation substitutes the 'abstract' notion of the celestial for the word God.  My name was an invokation by my father to resolve things and after everything that has transpired, Ngozi is the gift or blessing that may bring about this resolution.  My dad prefers to call her Chioma.  It means 'good god.'  Again, substituting the idea of the celetrial (as a stark contrast to phenomena of the 'terrestrial' ) for the Islamic/Judeo-Christian notion of God/god, you have the idea of a benevolent circumstance or fate.  

Kwenu.com has a nice volume of decent translations of Igbo names.  In fact, it also has a nice overview of the concept of "Chi" in Igbo mythology.  Ironically, this concept as a strong correlation with my understanding of how the celestial interacts with the terrestrial, the rule of natural law, and how it relates to myself and humans in general.  The chinese word "Chi" has similar connotation:

the life-process or “flow” of energy that sustains living beings are found in many belief systems, especially in  Asia.

Igbo mythology and ancient Indo-Chinese spiritual philosophy have much in common, so I guess in the end it is not so odd that I have come to find myself practicing Indo-Chinese spiritual philosophy as a way to understand the crazy world that I live in.  Their themes appeal to me in the same long-lasting way that the meanings invoked by the names of my children appeal to me.

I have a flickr album set of our (Roschella and I) favorite pictures of her

Permalink | Leave a comment  »

The Center-Right Nation Exits Stage Left - washingtonpost.com (Uche)

The Center-Right Nation Exits Stage Left - washingtonpost.com

Respected conservative columnist Tod Lindberg in WaPo rebutting the notion that the US is now a "center-right nation". "We are now two elections into something big. This month's drubbing is just the latest sign that the country's political center of gravity is shifting from center-right to center-left. Republicans who fail to grasp this could be lost in the wilderness for years." I can relate because I've personally shifted to the left to quite an extent. Much of it is my furious reaction to the damningly hypocritical, cynical, venal and flat-out incompetent record, since 1980 (yes, I do mean that), of the US right wing. Oh where are the Eisenhowers of yesterage?

Saved By: Uche Ogbuji | View Details | Give Thanks

Tags: , ,

Wenger the king; Nasri the prince; Wilshere the princeling ((author unknown))

Yeah, people talking 'nuff less smack about my boys Arsenal this week. Nasri, yet another testament to Wenger's eye for talent, showed why we won't miss Hleb this season. He's as dynamic as Hleb, but he actually shoots! Now that's proper. But what impressed me most in the Man U game was how the zig-zagging runs off the ball pulled Man U's defense to pieces. I do still think we need a bit more experience in when deal seasons opens in bit (one massive center back and one defensive mid and we're set, son), but it's fun to watch what's possible with the boundless energy of youth.

I nicked the Nas/Nasri image, BTW from "gunsoldier" on my favorite footy forum.

Speaking of the energy of youth, how about that Arsenal peach fuzz brigade, schooling Wigan in mid-week? Simson showed me true confidence. He'll be ready for the big leagues soon. Vela's lob was obviously a sick attempt to better his effort in the last Carling Cup game for Gunner goal of the year. But honestly, it's all about Wilshere. That boy bossed that game. Only 16? Are you kidding me? Arsenal legend Liam Brady said he's honored that Wilshere's getting compared to him so much. Umm. Wow.

And for those nincompoops wo were heaping abuse on Wenger last week, the best response comes from an unexpected source.

"How can you criticise Arsenal's Arsene Wenger?"

There are Arsenal fans out there who are not happy with Wenger, I know, and I would love to sit down with those guys and ask the reason why. As far as I am concerned, he should be a template for any young coach or manager. Any one wanting to get started in the game, should study Arsene Wenger.

 

Or as Nas (sorta) put it:

 

Commentators ringside try watchin' my paper
Over a decade, quite impressive
Most of the best is in the essence
For this beautiful game I stand for
[...]
Want me off the scene fast, but good things last
like your favorite manager clocking the win fast
First boss to complete the unbeaten season project
but you still wanna hate, be my guest, I suggest

Ha ha.  Nah, not just because of the above piece, but I've always respected Phil Brown. When Hull shocked us to burst my bubble (we haven't been quite right since then), my first reaction was frustration, but my second was admiration for Hull City and their fantastic manager. They have always played wonderful football, and unlike the likes of Stoke, they beat us not through savage and negative tactics, but by matching our energy all over the pitch (and Man U have demonstrated how difficult that is).

Anyway, let's hold the line, Gunners. And to my fellow gunner fans. Let this week's triumphs be a lesson for you to back your club no matter what. Of course, I should be careful. The last time I waxed lyrical about The Arsenal they immediately went into an extended stumble...Hull, Stoke, Fener,...Tottenham (say it ain't so, not the ex-lolspurz!) But hey, I ain't superstitions. Bring on Aston Villa!

Permalink | Leave a comment  »

Spring Python and Amara (Uche Ogbuji)

Spring Python is an offshoot of the Java-based Spring Framework and Spring Security for Python. Version 0.8.0 is out and, and it builds on my favorite FLOSS project, Amara.

Celebrating “Things Fall Apart” | A golden jubilee | The Economist (Uche)

Celebrating “Things Fall Apart” | A golden jubilee | The Economist

A reflection on Chinua Achebe's iconic novel approach its 50th anniversary. Interesting quote: '[Achebe's] next project will be to translate “Things Fall Apart” into his native Ibo for the first time.' Apparently this won't be Central Igbo, but the Ogidi dialect, with other dialects used when appropriate by setting and character. I'll look forward to working my way through that.

Saved By: Uche Ogbuji | View Details | Give Thanks

Tags: , , , ,

Test: embedding a "gist" on Posterous ((author unknown))

So now that they added tagging, one of the few things missing to make Posterous perfect for me is good source code presentation. OK, to be honest, just good markup support would be nice (Posterous is obviously geared more to those who know for media than to those who know for markup), and poor code listing presentation is just a manifestation of the overall weakness in the markup system/editor.

So I'm trying out an idea: to use github gists to host the code, and embed them here. Here goes:

listing 1

If this works you should see some nicely formatted Python code, with some useful options, hosted at github. The code itself is a cool little trick with Amara 2, as well.

Update: So it didn't work.  I think Posterous is ignoring the script tag, and I can't say I blame them (users could do all sorts of frightfully naughty things with the script tag), but that does raise the question of whether I can have decent in-line code here, and thus whether I can use it as my primary blog host for my developer side.

 

Permalink | Leave a comment  »