Archive for the 'class' Category

Remixing Contracts

For my Comparative Media Studies final paper and presentation I focused on the design of social, programmable contract objects that I’ve touched on in a few previous entries. This paper covers all the ideas, and I think it satisfies my overall goal of nailing down an outline of the topics. Yet I’m slightly disappointed in how it reads. it feels slightly stiff and analytic. It is a bad style habit I unfortunately picked up writing analytic papers for undergrad philosophy classes, and that I still inadvertently fall back on occasionally. My goal for my next writing is to tone down the analysis and find more rhythm.

remixing_contracts.pdf

Triplemint RDF Search & Query for Scheme

Last week Ben Wagner and I finished our work on an RDF toolkit for crawling, searching and querying RDF graphs. It’s in scheme, and uses a simple s-expression based query language that is inspired in part by SPARQL.

Download about_triplemint.pdf (120K) & triplemint.tgz (180K). Requires the 2006/04/14 snapshot of MIT Scheme as well as a copy of the W3C’s cwm.

Things are better now

The last problem set is finished, and I’m now turning my attention to the final projects. What a huge relief. I managed to get the constraint propagation working pretty well, good enough at least to apply to the father-daughter-yacht puzzle in SICP. After printing out all the code I realized that it really wasn’t all that large of a program.

6891 Problem Set 7

Spotting the Outside Set

Well the 6891 problem set due date has come and I have yet to finish. The constraint propagation is hard to write and very hard to debug. I had some helpful advice about the coincidence handler from Ben, my project partner, that pushed me through what I hope was the hard part.

This is the part of the term where the challenge shifts from mental to physical. Less and less am I actively sifting through and grokking the material; it is now about maintaining, not getting in my own way, following the trajectory I created over the course of the term.

With slow computing I have started myself down a path towards what I hope is an overarching poetic framework, an approach to research that fits almost suspiciously well with the ways I try to model my life. And with the social contract I seem to have found something equally precious: a topic that excites me, that has potential for greater good, that’s fun to talk about and that is immediately relevant. I still have to instantiate these ideas into something both general and reusable. The summer will be key.

Constraint Propagation + Junior Mints

Scheme + Junior Mints

At this very moment my world seems to have narrowed to only scheme and junior mints (yum!). I have a nice assignment to add a set value system to the constraint propagation being developed by Sussman and Chris Hanson in 6.891. Here is a transcript showing off where I am with this.

(declare (usual-integrations))
;Unspecified return value

(load "load")
;Loading "load.scm"
;Loading "ps-util.scm" -- done
;Loading "tms.scm" -- done
;Loading "constraints.scm" -- done
;Loading "equality-constraint.scm" -- done
;Loading "boolean-constraints.scm" -- done
;Loading "numerical-constraints.scm" -- done
;Loading "line-prefix.scm" -- done
;Loading "proofs.scm" -- done
;Loading "handler.scm" -- done
;Loading "solve.scm" -- done
-- done
;Value: d2?

(load "set-constraints")
;Loading "set-constraints.scm"
;Loading "set.scm" -- done
-- done
;Value: cp:identity

(define network
(cp:make-network 'network
(cp:make-value-model set:is_set?
set:=?
set:smallest)))
;Value: network

(define a (cp:make-connector 'a network))
;Value: a

(define b (cp:make-connector 'b network))
;Value: b

(define c (cp:make-connector 'c network))
;Value: c

(cp:make-constraint cp:intersection #f network a b c)
;Value: #[cp:constraint 13]

(cp:assume-value b (set:construct_from_list '(x y z 1 2 3)))
;Unspecified return value

(cp:assume-value c (set:construct_from_list '(x z 2)))
;Unspecified return value

(cp:has-value? a)
;Value: #t

(cp:value-of a)
;Value: (*set* #[primitive-procedure eq?] 2 z x)

(cp:assume-value a (set:construct_from_list '(x z)))
;Warning: Contradiction: #[tms:node 14]
;Warning: Contradiction: #[tms:node 14]
;Warning: Contradiction: #[tms:node 14]
;Unspecified return value

(cp:value-of a)
;Value: (*set* #[primitive-procedure eq?] z x)

(cp:value-of b)
;Value: (*set* #[primitive-procedure eq?] z x)

(cp:value-of c)
;Value: (*set* #[primitive-procedure eq?] 2 z x)

What I’ve written so far does in fact allow intersection and union, which is nice, but I’m also looking to mix in the boolean system with cp:subset?

Vincent happened to stop by the PLW briefly while I was working on this thing, and when I explained it he suggested a networked, distributed version. This is in fact something I was thinking about several weeks ago, this idea of setting up simple connector and constraint P2P client programs. Input could come from anything: sensor values, humans, stock market, etc. Each type of constraint or value node is essentially offered as a service, and people can compose them to create new nodes.

I won’t be working on that just yet, but I’ll leave it percolating up there, swirling around with social contracts and slow computing. They all seem to relate. In the meantime I have a few more junior mints to eat.

DSL Followup: Law in Scheme

It so happens that in class yesterday Sussman showed off some amazing work that he and Chris have been doing rewriting certain legal documents within a scheme based rule system. They showed an example of the oft-cited, somewhat scary deadbeat dad federal law, showing the complicated set of rules necessary to successfully capture the legalese. I’ll get the link up when they put it up.

He took care to point out that the system works only when the investigator is looking for evidence for something already suspected, and wasn’t suited for generalized searching/fishing for transgressions within a large set of potential suspects. However I am confident it could be adapted to this more Orwellian system if desired.

Nevertheless, this sort of work is inspirational when I start thinking about the social contracts models I’ve been throwing around. The way I see it there are two possible ways to relate contract execution to law reasoning:

  1. like this sort of law system the contract could consist of a set of customized descriptive rules dictating what is allowed and expected from each party (essentially just translations of existing legal contracts),
  2. the contract is procedural logic, a description of actions taken by the computer rather than the people. People simply have to respond (or not) to the contract execution, and the software reacts and executes accordingly. I like this one better. For my interests in opt-in, independent contractor type situations I think this one makes more sense.

Dangers of attempting ethnographic research while in a foul mood

Yesterday evening after a group project involving observing people “consuming media” in Best Buy and Borders, I found myself extremely challenged to concoct any interesting analysis of the experience. My frustration came out in my writing, and I guess I adopted a rather negative tone. As Jenn so nicely described it, I ended up dissing the majority of the mall going population:

The easily observable characteristics such as age, gender, race and apparent social relationships quickly seemed insufficient. I found myself wondering about the personalities and backgrounds of these people. Who goes to the mall on a Saturday afternoon? What sort of person hangs out in Best Buy to play guitar hero? What brings people to linger in the food court picking at cinnabuns to the drab sounds of Mall Radio?

I only ever visit the mall out of necessity, such as when I’m searching for easy Christmas presents for people I don’t know well, or when I need to simultaneously shop for pillows, coat hangers, pain relievers, and electric fans. Nowhere in the mall can I find items that I desperately want to purchase or consume. I’ve never had any happy accidents in the mall, never stumbled into something new and unfamiliar, never been forced to reexamine myself, my tastes or my assumptions. For me the term “mall” conjures only expectations of generalized boredom, a dead zone of mediocrity, far removed from both the enjoyable warmth of poppy kitsch and the happy surprises of the niche.

This attitude was obviously not shared by the many people we observed hanging around the mall that afternoon. Certainly some of them were like me, in and out for a specific goal. But judging by our observations in Best Buy and Borders, a significant portion of the people there were enjoying the mall as an experience rather than a shopping resource…