(1) |
(2) Part of RSACi system at start |
(3) Announcements (at start) uQuiz, Quiz Wed. March 11 See also http://www.w3.org/PICS |
(4) Examples of EQ? |
(5) Examples of quotation |
(6) Examples of quoted lists |
(7) ASSQ alist->value |
(8) CATEGORY->NAME CATEGORY? |
(9) EXPAND |
Board 1:
(PICS-1.0 "http://www.rsac.org/ratingsv01.html" l gen true comment "RSACi North America Server" by "rodgerb@playboy.com" for "http://www.playboy.com" on "1996.04.04T08:15-0500" r (n 4 s 3 v 0 l 4)))
Board 2:
((PICS-version 1.1) (rating-system "http://www.rsac.org/ratingsv01.html") (rating-service "http://www.rsac.org/") (name "The RSAC Ratings Service") (description "...Dr. Roberts of Stanford University...") ... (category (transmit-as "v") (name "Violence") (label (name "Conflict") (description "Harmless conflict;...") (value 0)) ...) ...)
10:05 - 10:10 Public debate about free speech on the Internet, focussed in the U.S. on the issue of children's access to materials on the net that are considered normal for adults but are not generally for children. Work started in June 1995 and still continues, with a White House meeting this past July and an "Internet Summit" in December. Example slide from PC. Part of the issue is the technology: can we allow everyone to say what they wish, but allow parents some degree of control over what their children see?
PICS is a cross-industry working group whose goal is to facilitate the development of technologies to give users of interactive media, such as the Internet, control over the kinds of material to which they and their children have access. PICS members believe that individuals, groups and businesses should have easy access to the widest possible range of content selection products, and a diversity of voluntary rating systems.
In order to advance its goals, PICS will devise a set of standards that facilitate the following:
Clinton "if I can use it anyone can"
PICS members believe that an open labeling platform which incorporates these features provides the best way to preserve and enhance the vibrancy and diversity of the Internet. Easy access to technology which enables first- and third-party rating of content will give users maximum control over the content they receive without requiring new restrictions on content providers.
Membership in PICS includes a broad cross-section of companies from the computer, communications, and content industries, as well as trade associations and public interest groups. PICS member will deploy products and services based on these standards.
10:10 - 10:20 PowerPoint presentation.
10:20 - 10:25 Show sample Rating Service Description and Label already on boards 1 and 2 (and in handout). Slide of overall PICS system on overhead, swapping with full label and rating service description from handout.
10:25 - 10:35 Introducing symbols, EQ?, and quotation
Examples and Box-and-Pointer on board 4
(define x (list 1 2)) (define y (list 1 2)) (eq? x x) => #T (eq? x y) => #F
If two symbols look the same, they are the same.
The value of X is the symbol that prints out as X
Some examples: more on board 4 and 5
(define A X)
A => X
(eq? a X) => #T
(eq? X X) => #T
(define B (list a 2))
B => (X 2)
(eq? (car b) X) => #T
(eq? b (list a 2)) => #F note: CONS always creates a new pair!
One final note. As a convenience, the single quote can be used to create data structures as well as symbols. Examples: on board 6
(define C (X 2))
C => (X 2)
(pair? C) => #T
(eq? (car c) X) => #T
(define d (A 1 B))
(car d) => A
(length d) => 3
(list-ref d 2) => B
10:35 - 10:40 Selectors from the PICS Service Description data structure
Board 7
(define (assq name a-list) (cond ((null? a-list) #F) ((eq? name (car (car a-list))) (car a-list)) (else (assq name (cdr a-list)))))
(define (alist->value name a-list) (let ((result (assq name a-list))) (if result (second result) #F)))
Board 8
(define (category->name category) (alist->value 'NAME (cdr category)))
(define (category? entry) (eq? (car entry) 'CATEGORY))
10:40 - 10:50 Code to expand a label given a service description
Board 9
(define (expand picslabel service) (let ((ratings (picslabel->rating picslabel))) ; Magic, on handout (map (lambda (category) (get-name-and-value category ratings)) (filter category? service))))
Following from slide:
(define (get-name-and-value category ratings) (list (category->name category) (category->description category) (value->name category (the (filter (lambda (rating) (eq? (category->transmit-name category) (rating->name rating))) ratings)))))
(define (the l) (cond ((null? l) '()) ((null? (cdr l)) (first l)) (else (error "Not unique" l))))
Following from slide if there is time:
(define (value->name category rating) (if (null? rating) (list 'NO 'VALUE 'FOR 'THIS 'CATEGORY) (let ((value (rating->value rating))) (let ((label (the (filter (lambda (label) (let ((values (filter value? label))) (if (null? values) #F (= value (second (first values)))))) (map cdr (filter label? (cdr category))))))) (if label (list (label->name label) (label->description label)) (list 'VALUE 'HAS 'NO 'NAME))))))
10:50 - 10:55 Wrap-up list of data types in Scheme:
number, boolean, string, pair, symbol
New today: special form QUOTE, data type SYMBOL, primitive procedures EQ? and SYMBOL?