.. _GRID: https://www.grid.ac/ .. _IPEDS: https://nces.ed.gov/ipeds/ .. _Wikidata: https://www.wikidata.org/wiki/Wikidata:Main_Page .. _Carnegie: http://carnegieclassifications.iu.edu/ .. _syllabi: Syllabus schema =============== Open Syllabus uses a unified document format to represent the metadata extracted from a syllabus: .. code-block:: plain |-- _id: long |-- md5: string |-- doc_type: string |-- text: string |-- syllabus_probability: float |-- field: struct | |-- _id: long | |-- cip_codes: array | | |-- element: string | |-- name: string |-- language: string |-- institution: struct | |-- _id: long | |-- grid_id: string | |-- wikidata_id: string | |-- unitid: long | |-- city: string | |-- name: string | |-- lat: float | |-- lng: float | |-- url: string | |-- country_code: string | |-- country: string | |-- state_code: string | |-- state: string | |-- enrollment: long | |-- two_year: boolean | |-- four_year: boolean | |-- graduate: boolean | |-- research: boolean | |-- wikipedia_url: string | |-- description: string | |-- image_url: string |-- date: struct | |-- term: string | |-- year: long |-- urls: array | |-- element: string |-- extracted_sections: struct | |-- title: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- code: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- section: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- date: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- class_days: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- class_time: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- class_location: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- instructor: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- instructor_phone: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- office_hours_days: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- office_location: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- office_hours_times: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- credits: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- description: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- learning_outcomes: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- citations: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- required_reading: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- grading_rubric: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- assessment_strategy: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- topic_outline: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- assignment_schedule: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | |-- school_name: array | | |-- element: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long |-- citations: array (nullable = false) | |-- element: struct (containsNull = false) | | |-- doc_span: struct | | | |-- text: string | | | |-- mean_proba: float | | | |-- ci1: long | | | |-- ci2: long | | | |-- ti1: long | | | |-- ti2: long | | |-- parsed_citation: struct | | | |-- title: array | | | | |-- element: struct | | | | | |-- text: string | | | | | |-- mean_proba: float | | | | | |-- ci1: long | | | | | |-- ci2: long | | | | | |-- ti1: long | | | | | |-- ti2: long | | | |-- subtitle: array | | | | |-- element: struct | | | | | |-- text: string | | | | | |-- mean_proba: float | | | | | |-- ci1: long | | | | | |-- ci2: long | | | | | |-- ti1: long | | | | | |-- ti2: long | | | |-- author: array | | | | |-- element: struct | | | | | |-- text: string | | | | | |-- mean_proba: float | | | | | |-- ci1: long | | | | | |-- ci2: long | | | | | |-- ti1: long | | | | | |-- ti2: long | | | |-- editor: array | | | | |-- element: struct | | | | | |-- text: string | | | | | |-- mean_proba: float | | | | | |-- ci1: long | | | | | |-- ci2: long | | | | | |-- ti1: long | | | | | |-- ti2: long | | | |-- publisher: array | | | | |-- element: struct | | | | | |-- text: string | | | | | |-- mean_proba: float | | | | | |-- ci1: long | | | | | |-- ci2: long | | | | | |-- ti1: long | | | | | |-- ti2: long | | | |-- isbn: array | | | | |-- element: struct | | | | | |-- text: string | | | | | |-- mean_proba: float | | | | | |-- ci1: long | | | | | |-- ci2: long | | | | | |-- ti1: long | | | | | |-- ti2: long | | |-- catalog_key: struct | | | |-- clean_title: string | | | |-- clean_author: struct | | | | |-- forenames: string | | | | |-- keyname: string | | | |-- title_key: string | | | |-- author_key: string | | |-- catalog_record: struct | | | |-- _id: long | | | |-- work_cluster_size: long | | | |-- sources: map | | | | |-- key: string | | | | |-- value: array (valueContainsNull = true) | | | | | |-- element: string | | | |-- title: string | | | |-- subtitle: string | | | |-- authors: array | | | | |-- element: struct | | | | | |-- forenames: string | | | | | |-- keyname: string | | | |-- publisher: string | | | |-- year: long | | | |-- description: string | | | |-- image_urls: array | | | | |-- element: string | | | |-- dois: array | | | | |-- element: string | | | |-- isbns: array | | | | |-- element: string | | | |-- issns: array | | | | |-- element: string | | | |-- urls: array | | | | |-- element: string | | | |-- publication_type: string | | | |-- open_access: boolean | | | |-- article: struct | | | | |-- venue: string | | | | |-- volume: string | | | | |-- issue: string | | | | |-- page_start: string | | | | |-- page_end: string | | | | |-- abstract: string Syllabus ******** The top-level document schema in the Open Syllabus dataset. Each row in the :code:`syllabi` dataframe is a single :code:`Syllabus` instance. _id --- An OS-assigned surrogate identifier for the syllabus. .. note:: This unique identifier is not guaranteed to be consistent across versions of the dataset. md5 --- The md5 checksum of the raw document bytes. .. note:: This field is removed in some distributions of the dataset. doc_type -------- The underlying source document type. Possible values are :code:`html`, :code:`plain`, :code:`pdf`, :code:`doc`, :code:`docx`, :code:`rtf`. .. note:: This field is removed in some distributions of the dataset. text ---- The plain text extracted from the document. .. note:: This field is removed in some distributions of the dataset. syllabus_probability -------------------- The probability that the document is a syllabus, per the syllabus classifier The classifier is trained and tested around a 0.5 threshold: Every document assigned a score above 0.5 is considered a syllabus. The majority of documents in the syllabi dataframe have a score greater than 0.5, but ocassionally OS will manually identify certain groups of documents as being syllabi, regardless of the output of the syllabus classifier. Filtering the syllabi dataframe by a value greater than 0.5 will return a set of documents with higher precision, at the cost of recall. At the 0.5 threshold, the model is 97% accurate on held-out test data. (See :ref:`Pipeline and models ` for details.) field ----- Instance of :code:`Field` -- The academic field assigned to the document, as determined by the OS field classifier. See :ref:`Pipeline and models ` for details about the model. language -------- The language code for the document, as inferred by `pycld2 `_. institution ----------- Instance of :code:`Institution` -- The college or university where the syllabus was taught, as determined by the OS institution matcher. Null if no institution was matched. date ---- Instance of :code:`Date` -- The year and semester of the course. urls ---- Instance of :code:`URLs` -- URLs extracted from the document. .. note:: This field is removed in some distributions of the dataset. extracted_sections ------------------ Instance of :code:`ExtractedSections` -- Normalized document sections extracted by the parser. citations --------- List of :code:`Citation` -- Parsed and linked citations extracted from the document. Field ***** _id --- An OS-assigned surrogate identifier for the field. .. note:: This unique identifier is not guaranteed to be consistent across versions of the dataset. cip_codes --------- A list of one or more `IPEDS`_ CIP codes, representing the academic field(s) representing the field. OS's field classifier draws heavily from the `IPEDS 2010 CIP taxonomy `_ in order to determine the academic field best associated with each syllabus. CIP codes come in lengths of two-, four- and six-digits, where two-digit codes represent a discipline, four-digit codes a subdivision of that discipline, and six-digit codes a further subdivision of the previous subdivision. For example, the two-digit CIP code '01' is the code for all 'Agriculture, Agriculture Operations, and Related Sciences' courses; within that, the four-digit CIP code '01.01' is the subdivision for all 'Agricultural Business and Management' courses, and within that, '01.0103' is the subdivision for all 'Agricultural Economics' courses. Our field classifier is trained and tested on a subset of the CIP taxonomy that we find most useful for describing syllabi. In some cases, we have combined codes, though we have generally done so only within the same two-digit branch of the taxonomy. For example, the codes :code:`['45.09', '45.10']` are a combination of 'International Relations and National Security Studies' and 'Political Science and Government', which are both subdivisions of code '45', 'Social Sciences'; we combine them into a field that we call "Political Science" (see `name`). name ---- The field, as chosen by OS. Institution *********** _id --- An OS-assigned surrogate identifier for the field. .. note:: This unique identifier is not guaranteed to be consistent across versions of the dataset. grid_id ------- The GRID_ unique identifier of the institution. wikidata_id ----------- The Wikidata_ unique identifier of the institution. unitid ------ The IPEDS_ unique identifier of the institution. Only defined for institutions within the United States. city ---- The city the syllabus was taught in. name ---- The name of the institution. lat --- The latitude of the institution location. lng --- The longitude of the institution location. url --- The URL to the home webpage of the institution. country_code ------------ The ISO 3166-1 alpha-2 code of the institution country. country ------- The full English name of the country corresponding to `country_code`_. state_code ---------- The ISO 3166-2 region code of the region (state, parish, district, etc.) the syllabus was taught in. state ----- The English name of the state corresponding to `state_code`_. enrollment ---------- The number of total students enrolled at the institution, as aggregated from several data sources. This data is the most recent available, usually the 2018-2019 school year. two_year -------- Whether or not the institution is primarily a two year institution. This value is derived from the :code:`carnegie_basic2018` classification. It is true when :code:`carnegie_basic2018` is in the range [1, 14]. four_year --------- Whether or not the institution is a four year institution. This value is derived from the :code:`carnegie_basic2018` classification. It is true when :code:`carnegie_basic2018` is in the range [15, 32]. graduate -------- Whether or not the institution is a graduate institution. This value is derived from the :code:`carnegie_basic2018` classification. It is true when :code:`carnegie_basic2018` is in the range [15, 20]. research -------- Whether or not the institution is an R1 or R2 research institution. wikipedia_url ------------- The URL of the institution's Wikipedia article. description ----------- A paragraph-length description of the institution, extracted from Wikipedia. image_url --------- A URL to a "profile" image for the school (a logo, seal, or wordmark), extracted from Wikipedia. Date **** year ---- The academic year the syllabus was or will be taught. term ---- The academic term of the syllabus. Possible values are :code:`winter`, :code:`spring`, :code:`summer` and :code:`fall`. ExtractedSections ***************** Normalized document sections extracted by the parser. Each field is an instance of :code:`Span`. title ----- The name of the course. E.g., :code:`Statistical Learning Theory and Applications`. code ---- The identifier that appears in the institutional course catalog. Generally (but not always) a combination of a department code and course number. E.g., :code:`CS224n` or :code:`9.520`. section ------- The identifier for the specific section of the course that the syllabus corresponds to. Most common for lower-level courses with large enrollments. date ---- The raw, un-normalized representation of the course date, as it appears in the document. Generally a term + year pair -- eg, :code:`Fall 2009`. class_days ---------- The days of the week when the class meets. class_time ---------- The time when the class meets. class_location -------------- The location of the class meetings. instructor ---------- The name of the instructor(s). .. note:: This field is removed in anonymized distributions of the dataset. instructor_phone ---------------- The instructor's phone number. .. note:: This field is removed in anonymized distributions of the dataset. office_hours_days ----------------- The days of the week when office hours are held. office_location --------------- The location of the instructor's office. office_hours_times ------------------ The time when office hours are held. credits ------- The credits earned by taking the course. description ----------- Narrative description of course content. Often a 1-2 paragraphs at the beginning of the syllabus. learning_outcomes ----------------- Lists of competencies or skills that students are expected to acquire in the course. Often structured as verb phrases. These will often overlap with :code:`description` and :code:`topic_outline`. E.g.: - :code:`Articulate the relationship between derivatives and integrals using the Fundamental Theorem of Calculus` - :code:`Sharpen and develop new research methodology skills`. citations --------- Book and article citations in the syllabus. These are the raw document spans that are taken in by the citation parsing and linking models, the output of which is provided under the top-level :code:`citations` key. required_reading ---------------- The citation(s) for books, articles, or other resources that are required for the course. grading_rubric -------------- The description of the range of grades that can be assigned. Often - a mapping between letter grades and numeric ranges. E.g., :code:`A+ = 90-100, A = 85-89, ...` assessment_strategy ------------------- Descriptions of how grades are calculated -- the types of assignments, the weighting or percentage assigned to each, etc. topic_outline ------------- Lists of topics that are covered in the course. Compared to :code:`learning_outcomes`, these lists tend to be more narrowly focused on the course material itself (as opposed to the student interaction with the material), and are often structured like a table of contents in a book. assignment_schedule ------------------- A chronologically-ordered sequence of assignments, readings, or topics. Often structured as an ordered list where each item corresponds to a week or class meeting. school_name ----------- The name of the institution where the course was taught. When present, this value is passed into the institution matcher and used as the basis for one of the entity linking routines used to match the syllabus with an institution. Citation ******** doc_span -------- Instance of :code:`Span` -- The raw span from the document where the citation appears. parsed_citation --------------- Instance of :code:`ParsedCitation` -- A segmented version of the citation, with title, subtitle, author, editor, publisher, and ISBN extracted as structured items. catalog_key ----------- Instance of :code:`CatalogKey` -- The normalized title and author values used to link the citation with an canonical bibliographic record. catalog_record -------------- Instance of :code:`CatalogRecord` -- The linked bibliographic record. Null if no record is found. ParsedCitation ************** Normalized sections extracted by the citation parser. Each field is an instance of :code:`Span`. title ----- The title of the work. subtitle -------- The subtitle of the work. author ------ The author of the work. editor ------ The editor of the work. publisher --------- The publisher of the work. isbn ---- The ISBN of the work. CatalogKey ********** clean_title ----------- A lightly normalized version of the title string. clean_author ------------ A lightly normalized version of the parsed author keyname string. title_key --------- A heavily normalized version of the title string. Used for lookups into the bibliographic database. author_key ---------- A heavily normalized version of the author string. Used for lookups into the bibliographic database. CatalogRecord ************* _id --- An OS-assigned surrogate identifier for the record. .. note:: This unique identifier is not guaranteed to be consistent across versions of the dataset. work_cluster_size ----------------- The number of individual "expression" records that were clustered together to form this work record. sources ------- Third-party identifiers of the work in the source catalogs. A dictionary of :code:`{source_name: [id1, id2, id3, ...]}`. title ----- The title of the work. subtitle -------- The subtitle of the work. authors ------- List of :code:`Author` -- the authors of the work. publisher --------- The publisher of the work. year ---- The year the work was published. description ----------- A free-text description of the work, intended for display. image_urls ---------- URLs to cover images for the work. dois ---- A list of `DOIs `_ for the work, derived from lists in the source catalogs. isbns ----- A list of `ISBNs `_ for the work, derived from lists in the source catalogs. issns ----- A list of `ISSNs `_ for the work, derived from lists in the source catalogs. urls ---- A list of URLs for the work, derived from lists in the source catalogs. publication_type ---------------- The type of publication the work is. Possible values are :code:`book`, :code:`book-chapter`, :code:`article`, or :code:`report`. open_access ----------- Whether or not the work is an open access work. article ------- Instance of :code:`Article` -- Metadata specific to article records. Article ******* venue ----- The name of the journal or conference. volume ------ The journal volume. issue ----- The journal issue. page_start ---------- The starting page number. page_end -------- The ending page number. abstract -------- The abstract of the article. Author ****** forenames --------- A single string containing the names or initials of the first and/or middle names. keyname ------- The last name of the author. Span **** text ---- The raw text span extracted from the document, without any postprocessing. mean_proba ---------- The average of the probabilities assigned by the model to the start and end "boundary" tokens that define the span in the document. (Or, for single-token spans, just the probability assigned to the one token.) This can be used in a comparative sense as a signal for the confidence of the model on the prediction. ci1 --- The index of the first character in the span. ci2 --- The index of the last character in the span. ti1 --- The index of the first token in the span. ti2 --- The index of the last token in the span.