{"size": 1197, "ext": "scrbl", "max_stars_repo_path": "private/web-graph.scrbl", "max_stars_repo_name": "dys-bigwig/rebellion", "max_stars_repo_stars_event_min_datetime": "2019-05-28T21:50:27.000Z", "max_stars_repo_stars_event_max_datetime": "2022-03-17T21:21:52.000Z", "max_issues_repo_path": "private/web-graph.scrbl", "max_issues_repo_name": "dys-bigwig/rebellion", "max_issues_repo_issues_event_min_datetime": "2019-03-02T23:19:07.000Z", "max_issues_repo_issues_event_max_datetime": "2022-01-24T08:43:16.000Z", "max_forks_repo_path": "private/web-graph.scrbl", "max_forks_repo_name": "dys-bigwig/rebellion", "max_forks_repo_forks_event_min_datetime": "2019-02-01T22:21:26.000Z", "max_forks_repo_forks_event_max_datetime": "2022-01-24T04:35:35.000Z"}
{"max_stars_count": 73, "max_issues_count": 216, "max_forks_count": 20, "avg_line_length": 32.3513513514, "max_line_length": 79, "alphanum_fraction": 0.6624895572}
#lang scribble/manual

@(require (for-label racket/base
                     racket/contract/base
                     rebellion/web-graph
                     rebellion/web-link)
          (submod rebellion/private/scribble-evaluator-factory doc)
          scribble/example)

@(define make-evaluator
   (make-module-sharing-evaluator-factory
    #:public (list 'rebellion/web-graph 'rebellion/web-link)
    #:private (list 'racket/base)))

@title{Web Graphs}
@defmodule[rebellion/web-graph]

A @deftech{web graph} is an immutable, directed multigraph where nodes are URIs
and edges are link relations.

@defproc[(web-graph? [v any/c]) boolean?]{
 A predicate for @tech{web graphs}.}

@defproc[(web-graph [link web-link?] ...) web-graph?]{
 Constructs a @tech{web graph} containing the given @racket[link]s.

 @(examples
   #:eval (make-evaluator) #:once
   (web-graph
    (web-link "http://example.org" 'stylesheet "/styles.css")
    (web-link "http://example.org" 'stylesheet "/fonts.css")
    (web-link "http://example.org" 'search "/opensearch.xml")
    (web-link "http://example.org" 'privacy-policy "/privacy-policy")))}

@defthing[empty-web-graph web-graph?]{
 The empty @tech{web graph}.}
