Published
Edited
Jun 6, 2019
1 fork
4 stars
Insert cell
Insert cell
basic = pl`
likes(fred,beer).
likes(fred,cheap_cigars).
likes(fred,monday_night_football).

likes(sue,jogging).
likes(sue,yogurt).
likes(sue,bicycling).
likes(sue,amy_goodman).

likes(mary,jogging).
likes(mary,yogurt).
likes(mary,bicycling).
likes(mary,rush_limbaugh).

health_freak(X) :-
likes(X,yogurt),
likes(X,jogging).

left_wing(X) :-
likes(X,amy_goodman).

right_wing(X) :-
likes(X,rush_limbaugh).

low_life(X) :-
likes(X,cheap_cigars).

`
Insert cell
query(basic)('likes(fred, beer).')
Insert cell
query(basic)('likes(fred,yogurt).')
Insert cell
query(basic)('likes(fred,X).')
Insert cell
query(basic)('left_wing(X), low_life(X).')
Insert cell
Insert cell
prerequisites = pl`
/* Some CSE majors courses and their prerequisites. This simplifies
the actual CSE curriculum by assuming courses have at most one
direct prerequisite. */

prerequisite(cse142,cse143).
prerequisite(cse143,cse311).
prerequisite(cse311,cse312).
prerequisite(cse143,cse331).
prerequisite(cse143,cse341).

/* take_before(A,B) succeeds if you must take A before B */
take_before(X,Z) :- prerequisite(X,Z).
take_before(X,Z) :- prerequisite(X,Y),
take_before(Y,Z).
`
Insert cell
query(prerequisites)('take_before(cse142,cse341).')
Insert cell
query(prerequisites)('take_before(cse341,cse311).')
Insert cell
query(prerequisites)('take_before(X,cse341).')
Insert cell
query(prerequisites)('prerequisite(X,Y).')
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more