Transcript weboql-2
• Compute a listing of the papers’ publication
data grouped by title.
• Select [x.Title /
Select [z.Publication] from y in csPapers, z in
y’
Where x.title = y.title ]
From w in csPapers , x in w’
• Schema – a distinguished hypertree
• Browsing function – maps strings (URLs)
to hypertree, it defines a graph where the
nodes are pages and there is an arc between
node a and b if the content of the page at
node a contains an external arc whose url
attribute is the url of the page at node b.
•
•
•
•
Analogy with Relational database
Hypertree > Relations
Webs > databases
Schema of a web >catalog of a database
• Select [x.Tag]
From x in
browse(http://www.cs.toronto.edu”)
[Tag
:head]
Tag : body]
• SFW creates a web
Select [y.Title, y’.URL] as schema
From x in csPapers , y in x’
Where y.authors ~”smith”
• Create a web page with URL “Group
Names” whose content is the list of group
names (assume that there is no such page in
the current web)
• Select [x.Group] as “Group Names” from x
in csPapers
• Create several pages ; one for each research
group (using the group name as URL). Each
page contains the publications of the
corresponding group
• Select x’ as x.Group from x in csPapers
• Select q1 as s1, q2 as s2, q3 as s3, ….qm as sm
where qi’s are queries and si is either a string
query or keyworld Schema.
• Generate a web consisting of a page for each
research group containing a title and author of all
its publications, and an index web page , that lists
all the groups and provides links to their pages
• newWeb
Select unique [Name : x.Group, url :
x.Group] as schema
[y.Title, y.Authors ] as x.Group
From x in csPapers, y in x’
•
•
•
•
•
•
•
•
•
NewerWeb < newWeb
select [ Tag: “H3”, Text: y.Title ] +
[ Tag: “BR”, Text: y.Publication ] +
[ Tag: “BR”, Text: y.Authors ] +
[ Tag: “P” ]
as x.Name
from x in schema, y in x.Name
|
select [ Tag: “H2”, Text: “Publications of the” *
x.Name * “ Group” ] + x.Name +
• [ Tag: “A”, Label: “To Index”, Url:
“http://a.b.c/Index of Projects.html” ]
• as “http://a.b.c/” * x.Name * “.html”
• from x in schema
• |
• select [ Url: “http://a.b.c/Index of Projects.html” ]
as schema,
• [ Tag: “H2”, Text: “Index of Projects” ] +
• [ Tag: “UL” /
• select [ Tag: “LI” /
• [Tag: “A”, Label: x.Name,
• Url: “http://a.b.c/” * x.Url * “.html”
• ]
• ]
• from x in schema
• ] as “http://a.b.c/Index of Projects.html