@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix schema: <https://schema.org/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix ec: <https://eliascrum.info/vocab#> .

<https://eliascrum.info/vocab>
  rdfs:label "Elias Crum Website Vocabulary"@en ;
  rdfs:comment "Vocabulary for data entities and relationships used in the Elias Crum personal website RDF graph."@en ;
  rdfs:seeAlso <https://eliascrum.info/vocab.ttl> .

# Classes

ec:WebsiteDataset
  a rdfs:Class ;
  rdfs:subClassOf schema:Dataset ;
  rdfs:label "Website Dataset"@en ;
  rdfs:comment "Top-level dataset resource representing the website data graph."@en .

ec:Tag
  a rdfs:Class ;
  rdfs:subClassOf skos:Concept ;
  rdfs:label "Tag"@en ;
  rdfs:comment "Base class for controlled or free-text tags used in filtering and categorization."@en .

ec:TopicTag
  a rdfs:Class ;
  rdfs:subClassOf ec:Tag ;
  rdfs:label "Topic Tag"@en ;
  rdfs:comment "Tag describing a topical theme (for example Semantic Web, Genomics)."@en .

ec:VenueTag
  a rdfs:Class ;
  rdfs:subClassOf ec:Tag ;
  rdfs:label "Venue Tag"@en ;
  rdfs:comment "Tag describing where a talk/publication was presented."@en .

ec:PublicationTypeTag
  a rdfs:Class ;
  rdfs:subClassOf ec:Tag ;
  rdfs:label "Publication Type Tag"@en ;
  rdfs:comment "Tag describing publication category (for example Journal Article, Conference Paper)."@en .

ec:BlogCategoryTag
  a rdfs:Class ;
  rdfs:subClassOf ec:Tag ;
  rdfs:label "Blog Category Tag"@en ;
  rdfs:comment "Tag describing a blog post category."@en .

ec:CvSection
  a rdfs:Class ;
  rdfs:label "CV Section"@en ;
  rdfs:comment "Section of the CV grouping related CV items."@en .

ec:CvItem
  a rdfs:Class ;
  rdfs:label "CV Item"@en ;
  rdfs:comment "Single CV entry belonging to a CV section."@en .

ec:CvDetail
  a rdfs:Class ;
  rdfs:label "CV Detail"@en ;
  rdfs:comment "Detail line attached to a CV item, optionally with link metadata."@en .

ec:CvProfile
  a rdfs:Class ;
  rdfs:label "CV Profile"@en ;
  rdfs:comment "Profile and contact metadata displayed on the CV page."@en .

ec:CvContact
  a rdfs:Class ;
  rdfs:label "CV Contact"@en ;
  rdfs:comment "Contact method attached to the CV profile."@en .

ec:CvArtifact
  a rdfs:Class ;
  rdfs:label "CV Artifact"@en ;
  rdfs:comment "Linked certificate or other artifact attached to a CV item."@en .

ec:Talk
  a rdfs:Class ;
  rdfs:subClassOf schema:CreativeWork ;
  rdfs:label "Talk"@en ;
  rdfs:comment "Presentation entity with slides, metadata, tags, and optional poster link."@en .

ec:TalkMetadata
  a rdfs:Class ;
  rdfs:label "Talk Metadata"@en ;
  rdfs:comment "Editable metadata node containing curated talk overrides and descriptors."@en .

ec:TalkReference
  a rdfs:Class ;
  rdfs:label "Talk Reference"@en ;
  rdfs:comment "Reference placeholder for a talk when a link points to an unresolved talk slug."@en .

ec:Poster
  a rdfs:Class ;
  rdfs:subClassOf schema:CreativeWork ;
  rdfs:label "Poster"@en ;
  rdfs:comment "Poster material represented as a PDF asset."@en .

ec:Publication
  a rdfs:Class ;
  rdfs:subClassOf schema:ScholarlyArticle ;
  rdfs:label "Publication"@en ;
  rdfs:comment "Scholarly publication with citation and display metadata."@en .

ec:PublicationReference
  a rdfs:Class ;
  rdfs:label "Publication Reference"@en ;
  rdfs:comment "Reference placeholder for a publication when a relationship points to an unresolved publication ID."@en .

ec:PublicationDetail
  a rdfs:Class ;
  rdfs:label "Publication Detail"@en ;
  rdfs:comment "Label-value detail row attached to a publication."@en .

ec:PublicationPresentationLink
  a rdfs:Class ;
  rdfs:label "Publication Presentation Link"@en ;
  rdfs:comment "Join entity connecting publications to talks or static files."@en .

ec:SoftwareSection
  a rdfs:Class ;
  rdfs:label "Software Section"@en ;
  rdfs:comment "Curated section grouping software, tools, specifications, and semantic resources."@en .

ec:Software
  a rdfs:Class ;
  rdfs:subClassOf schema:SoftwareApplication ;
  rdfs:label "Software"@en ;
  rdfs:comment "Software, web application, utility, specification, or semantic resource displayed on the website."@en .

ec:SoftwareDetail
  a rdfs:Class ;
  rdfs:label "Software Detail"@en ;
  rdfs:comment "Label-value detail row attached to a software entry."@en .

ec:SoftwareRelease
  a rdfs:Class ;
  rdfs:label "Software Release"@en ;
  rdfs:comment "Latest release or repository-update record associated with software."@en .

ec:Fellowship
  a rdfs:Class ;
  rdfs:subClassOf schema:Grant ;
  rdfs:label "Fellowship"@en ;
  rdfs:comment "Fellowship or grant record presented on the website."@en .

ec:FellowshipDetail
  a rdfs:Class ;
  rdfs:label "Fellowship Detail"@en ;
  rdfs:comment "Label-value detail row attached to a fellowship record."@en .

ec:RelatedResource
  a rdfs:Class ;
  rdfs:label "Related Resource"@en ;
  rdfs:comment "Named external or internal resource related to a talk or poster."@en .

ec:BlogPost
  a rdfs:Class ;
  rdfs:subClassOf schema:BlogPosting ;
  rdfs:label "Blog Post"@en ;
  rdfs:comment "Blog entry represented in the website data graph."@en .

ec:HomepageUpdate
  a rdfs:Class ;
  rdfs:label "Homepage Update"@en ;
  rdfs:comment "Recent-work update card rendered on the homepage."@en .

ec:ExternalProfile
  a rdfs:Class ;
  rdfs:subClassOf schema:WebPage ;
  rdfs:label "External Profile"@en ;
  rdfs:comment "External scholarly profile link (for example Google Scholar, Semantic Scholar)."@en .

ec:ScholarCitationSnapshot
  a rdfs:Class ;
  rdfs:label "Scholar Citation Snapshot"@en ;
  rdfs:comment "Snapshot metadata representing when citation counts were last refreshed."@en .

ec:CitationObservation
  a rdfs:Class ;
  rdfs:label "Citation Observation"@en ;
  rdfs:comment "Citation count observation for a publication at a given snapshot."@en .

# Properties

ec:abstract
  a rdf:Property ;
  rdfs:label "abstract"@en ;
  rdfs:comment "Long-form abstract text for a publication."@en ;
  rdfs:domain ec:Publication ;
  rdfs:range xsd:string .

ec:audienceExpertise
  a rdf:Property ;
  rdfs:label "audience expertise"@en ;
  rdfs:comment "Description of the intended audience's domain or technical background."@en ;
  rdfs:range xsd:string .

ec:audienceGroups
  a rdf:Property ;
  rdfs:label "audience groups"@en ;
  rdfs:comment "Audience group labels associated with a talk or poster."@en ;
  rdfs:range xsd:string .

ec:audienceSizeApprox
  a rdf:Property ;
  rdfs:label "approximate audience size"@en ;
  rdfs:comment "Approximate number of attendees for a talk."@en ;
  rdfs:domain ec:Talk ;
  rdfs:range xsd:integer .

ec:audienceSizeCategory
  a rdf:Property ;
  rdfs:label "audience size category"@en ;
  rdfs:comment "Categorical audience size label such as Small, Medium, or Large."@en ;
  rdfs:range xsd:string .

ec:audienceSizeEstimate
  a rdf:Property ;
  rdfs:label "audience size estimate"@en ;
  rdfs:comment "Display-oriented audience size estimate."@en ;
  rdfs:range xsd:string .

ec:address
  a rdf:Property ;
  rdfs:label "address"@en ;
  rdfs:comment "Address text from the CV profile."@en ;
  rdfs:domain ec:CvProfile ;
  rdfs:range xsd:string .

ec:authors
  a rdf:Property ;
  rdfs:label "authors"@en ;
  rdfs:comment "Author list for a publication as display text."@en ;
  rdfs:domain ec:Publication ;
  rdfs:range xsd:string .

ec:bibtex
  a rdf:Property ;
  rdfs:label "bibtex"@en ;
  rdfs:comment "BibTeX citation text for a publication."@en ;
  rdfs:domain ec:Publication ;
  rdfs:range xsd:string .

ec:citationCount
  a rdf:Property ;
  rdfs:label "citation count"@en ;
  rdfs:comment "Observed citation count for a publication."@en ;
  rdfs:domain ec:CitationObservation ;
  rdfs:range xsd:integer .

ec:date
  a rdf:Property ;
  rdfs:label "date"@en ;
  rdfs:comment "Date field used in curated talk metadata."@en ;
  rdfs:domain ec:TalkMetadata ;
  rdfs:range xsd:date .

ec:dateLabel
  a rdf:Property ;
  rdfs:label "date label"@en ;
  rdfs:comment "Human-friendly date label used for display."@en ;
  rdfs:range xsd:string .

ec:dateText
  a rdf:Property ;
  rdfs:label "date text"@en ;
  rdfs:comment "Non-ISO textual date when exact xsd:date is unavailable."@en ;
  rdfs:range xsd:string .

ec:group
  a rdf:Property ;
  rdfs:label "group"@en ;
  rdfs:comment "Optional grouping label for a CV item."@en ;
  rdfs:domain ec:CvItem ;
  rdfs:range xsd:string .

ec:description
  a rdf:Property ;
  rdfs:label "description"@en ;
  rdfs:comment "Description text for talks or talk metadata."@en ;
  rdfs:range xsd:string .

ec:codeRepository
  a rdf:Property ;
  rdfs:subPropertyOf schema:codeRepository ;
  rdfs:label "code repository"@en ;
  rdfs:comment "Repository containing the source code or specification for a software entry."@en ;
  rdfs:domain ec:Software ;
  rdfs:range rdfs:Resource .

ec:displayDate
  a rdf:Property ;
  rdfs:label "display date"@en ;
  rdfs:comment "Primary sortable/display date for a talk."@en ;
  rdfs:domain ec:Talk ;
  rdfs:range xsd:date .

ec:displayDateLabel
  a rdf:Property ;
  rdfs:label "display date label"@en ;
  rdfs:comment "Human-friendly date label for talk display."@en ;
  rdfs:domain ec:Talk ;
  rdfs:range xsd:string .

ec:displayDateText
  a rdf:Property ;
  rdfs:label "display date text"@en ;
  rdfs:comment "Fallback text date for talk display when ISO date is unavailable."@en ;
  rdfs:domain ec:Talk ;
  rdfs:range xsd:string .

ec:displayDateDetailedLabel
  a rdf:Property ;
  rdfs:label "detailed display date label"@en ;
  rdfs:comment "Long-form human-readable date label for a talk or poster."@en ;
  rdfs:range xsd:string .

ec:defenseSlidesUrl
  a rdf:Property ;
  rdfs:label "defense slides URL"@en ;
  rdfs:comment "URL for fellowship defense presentation slides."@en ;
  rdfs:domain ec:Fellowship ;
  rdfs:range rdfs:Resource .

ec:durationCategory
  a rdf:Property ;
  rdfs:label "duration category"@en ;
  rdfs:comment "Categorical duration label such as Short, Medium, or Long."@en ;
  rdfs:range xsd:string .

ec:durationMinutes
  a rdf:Property ;
  rdfs:label "duration in minutes"@en ;
  rdfs:comment "Approximate duration of a talk in minutes."@en ;
  rdfs:domain ec:Talk ;
  rdfs:range xsd:integer .

ec:filePath
  a rdf:Property ;
  rdfs:label "file path"@en ;
  rdfs:comment "Relative website file path for linked static resources."@en ;
  rdfs:range xsd:string .

ec:forPublication
  a rdf:Property ;
  rdfs:label "for publication"@en ;
  rdfs:comment "Associates an entity with a publication or publication reference."@en ;
  rdfs:range rdfs:Resource .

ec:forTalk
  a rdf:Property ;
  rdfs:label "for talk"@en ;
  rdfs:comment "Associates a talk metadata node with a talk."@en ;
  rdfs:domain ec:TalkMetadata ;
  rdfs:range ec:Talk .

ec:goal
  a rdf:Property ;
  rdfs:label "goal"@en ;
  rdfs:comment "Primary objective of a talk or fellowship-related presentation."@en ;
  rdfs:range xsd:string .

ec:fromSnapshot
  a rdf:Property ;
  rdfs:label "from snapshot"@en ;
  rdfs:comment "Links a citation observation to a citation snapshot."@en ;
  rdfs:domain ec:CitationObservation ;
  rdfs:range ec:ScholarCitationSnapshot .

ec:hasDetail
  a rdf:Property ;
  rdfs:label "has detail"@en ;
  rdfs:comment "Associates an entity with detail rows (CV detail or publication detail)."@en ;
  rdfs:range rdfs:Resource .

ec:hasExternalProfile
  a rdf:Property ;
  rdfs:label "has external profile"@en ;
  rdfs:comment "Links website dataset to external profile resources."@en ;
  rdfs:domain ec:WebsiteDataset ;
  rdfs:range ec:ExternalProfile .

ec:hasAudienceGroupTag
  a rdf:Property ;
  rdfs:label "has audience group tag"@en ;
  rdfs:comment "Associates a talk or poster with an audience group tag."@en ;
  rdfs:range ec:Tag .

ec:hasAudienceSizeTag
  a rdf:Property ;
  rdfs:label "has audience size tag"@en ;
  rdfs:comment "Associates a talk with a categorical audience size tag."@en ;
  rdfs:range ec:Tag .

ec:hasArtifact
  a rdf:Property ;
  rdfs:label "has artifact"@en ;
  rdfs:comment "Associates a CV item with a linked artifact."@en ;
  rdfs:domain ec:CvItem ;
  rdfs:range ec:CvArtifact .

ec:hasContact
  a rdf:Property ;
  rdfs:label "has contact"@en ;
  rdfs:comment "Associates a CV profile with a contact method."@en ;
  rdfs:domain ec:CvProfile ;
  rdfs:range ec:CvContact .

ec:hasCvProfile
  a rdf:Property ;
  rdfs:label "has CV profile"@en ;
  rdfs:comment "Links the website dataset to the displayed CV profile."@en ;
  rdfs:domain ec:WebsiteDataset ;
  rdfs:range ec:CvProfile .

ec:hasFocusTag
  a rdf:Property ;
  rdfs:label "has focus tag"@en ;
  rdfs:comment "Associates the CV profile with a focus-area tag."@en ;
  rdfs:domain ec:CvProfile ;
  rdfs:range ec:Tag .

ec:hasDefenseTalk
  a rdf:Property ;
  rdfs:label "has defense talk"@en ;
  rdfs:comment "Links a fellowship to its defense presentation."@en ;
  rdfs:domain ec:Fellowship ;
  rdfs:range ec:Talk .

ec:hasFellowship
  a rdf:Property ;
  rdfs:label "has fellowship"@en ;
  rdfs:comment "Links the website dataset to a fellowship record."@en ;
  rdfs:domain ec:WebsiteDataset ;
  rdfs:range ec:Fellowship .

ec:hasItem
  a rdf:Property ;
  rdfs:label "has item"@en ;
  rdfs:comment "Associates a CV section with its CV items."@en ;
  rdfs:domain ec:CvSection ;
  rdfs:range ec:CvItem .

ec:hasRelatedResource
  a rdf:Property ;
  rdfs:label "has related resource"@en ;
  rdfs:comment "Links a talk or poster to a named resource."@en ;
  rdfs:range ec:RelatedResource .

ec:hasSoftware
  a rdf:Property ;
  rdfs:label "has software"@en ;
  rdfs:comment "Links a software section to one of its software entries."@en ;
  rdfs:domain ec:SoftwareSection ;
  rdfs:range ec:Software .

ec:hasSoftwareSection
  a rdf:Property ;
  rdfs:label "has software section"@en ;
  rdfs:comment "Links the website dataset to a software section."@en ;
  rdfs:domain ec:WebsiteDataset ;
  rdfs:range ec:SoftwareSection .

ec:hasPoster
  a rdf:Property ;
  rdfs:label "has poster"@en ;
  rdfs:comment "Associates a talk with a related poster."@en ;
  rdfs:domain ec:Talk ;
  rdfs:range ec:Poster .

ec:hasPresentationLink
  a rdf:Property ;
  rdfs:label "has presentation link"@en ;
  rdfs:comment "Associates a publication (or reference) with publication-presentation link nodes."@en ;
  rdfs:range ec:PublicationPresentationLink .

ec:hasPublicationTypeTag
  a rdf:Property ;
  rdfs:label "has publication type tag"@en ;
  rdfs:comment "Associates a publication with a publication type tag."@en ;
  rdfs:domain ec:Publication ;
  rdfs:range ec:PublicationTypeTag .

ec:hasTag
  a rdf:Property ;
  rdfs:label "has tag"@en ;
  rdfs:comment "Generic tag association, currently used for blog categories."@en ;
  rdfs:range ec:Tag .

ec:hasTopicTag
  a rdf:Property ;
  rdfs:label "has topic tag"@en ;
  rdfs:comment "Associates talks or publications with topic tags."@en ;
  rdfs:range ec:TopicTag .

ec:hasVenueTag
  a rdf:Property ;
  rdfs:label "has venue tag"@en ;
  rdfs:comment "Associates talks or publications with venue tags."@en ;
  rdfs:range ec:VenueTag .

ec:isDeclaredOption
  a rdf:Property ;
  rdfs:label "is declared option"@en ;
  rdfs:comment "Indicates whether a tag is part of a declared options list."@en ;
  rdfs:domain ec:Tag ;
  rdfs:range xsd:boolean .

ec:isInternal
  a rdf:Property ;
  rdfs:label "is internal"@en ;
  rdfs:comment "Indicates whether a CV detail links to an internal website route."@en ;
  rdfs:domain ec:CvDetail ;
  rdfs:range xsd:boolean .

ec:isPosterForTalk
  a rdf:Property ;
  rdfs:label "is poster for talk"@en ;
  rdfs:comment "Inverse-like relation from poster to talk."@en ;
  rdfs:domain ec:Poster ;
  rdfs:range ec:Talk .

ec:isResolved
  a rdf:Property ;
  rdfs:label "is resolved"@en ;
  rdfs:comment "Indicates whether a reference placeholder resolves to a concrete entity."@en ;
  rdfs:range xsd:boolean .

ec:latestRelease
  a rdf:Property ;
  rdfs:label "latest release"@en ;
  rdfs:comment "Links software to its most recently observed release or repository update."@en ;
  rdfs:domain ec:Software ;
  rdfs:range ec:SoftwareRelease .

ec:linkLabel
  a rdf:Property ;
  rdfs:label "link label"@en ;
  rdfs:comment "Display label for rendered link buttons."@en ;
  rdfs:range xsd:string .

ec:headline
  a rdf:Property ;
  rdfs:label "headline"@en ;
  rdfs:comment "Professional headline from the CV profile."@en ;
  rdfs:domain ec:CvProfile ;
  rdfs:range xsd:string .

ec:linksTalk
  a rdf:Property ;
  rdfs:label "links talk"@en ;
  rdfs:comment "Connects a publication-presentation link node to a talk or talk reference."@en ;
  rdfs:range rdfs:Resource .

ec:modifiedText
  a rdf:Property ;
  rdfs:label "modified text"@en ;
  rdfs:comment "Fallback textual modified timestamp when xsd:dateTime cannot be emitted."@en ;
  rdfs:range xsd:string .

ec:moreInfoUrl
  a rdf:Property ;
  rdfs:label "more information URL"@en ;
  rdfs:comment "External URL containing more information about a fellowship."@en ;
  rdfs:domain ec:Fellowship ;
  rdfs:range rdfs:Resource .

ec:order
  a rdf:Property ;
  rdfs:label "order"@en ;
  rdfs:comment "Numeric sort/display order for list members."@en ;
  rdfs:range xsd:integer .

ec:icon
  a rdf:Property ;
  rdfs:label "icon"@en ;
  rdfs:comment "Icon identifier used for a CV contact method."@en ;
  rdfs:domain ec:CvContact ;
  rdfs:range xsd:string .

ec:layout
  a rdf:Property ;
  rdfs:label "layout"@en ;
  rdfs:comment "Display layout identifier for a CV section."@en ;
  rdfs:domain ec:CvSection ;
  rdfs:range xsd:string .

ec:organization
  a rdf:Property ;
  rdfs:label "organization"@en ;
  rdfs:comment "Organization text for CV items."@en ;
  rdfs:domain ec:CvItem ;
  rdfs:range xsd:string .

ec:location
  a rdf:Property ;
  rdfs:label "location"@en ;
  rdfs:comment "Location text for a CV item."@en ;
  rdfs:domain ec:CvItem ;
  rdfs:range xsd:string .

ec:paperPdfPath
  a rdf:Property ;
  rdfs:label "paper PDF path"@en ;
  rdfs:comment "Relative website path to a publication PDF asset."@en ;
  rdfs:domain ec:Publication ;
  rdfs:range xsd:string .

ec:profileVariant
  a rdf:Property ;
  rdfs:label "profile variant"@en ;
  rdfs:comment "Profile category identifier such as scholar, semantic, ORCID, or research-portal."@en ;
  rdfs:domain ec:ExternalProfile ;
  rdfs:range xsd:string .

ec:projectDescriptionPdfPath
  a rdf:Property ;
  rdfs:label "project description PDF path"@en ;
  rdfs:comment "Relative website path to a fellowship project-description PDF."@en ;
  rdfs:domain ec:Fellowship ;
  rdfs:range xsd:string .

ec:projectDescriptionPdfUrl
  a rdf:Property ;
  rdfs:label "project description PDF URL"@en ;
  rdfs:comment "URL to a fellowship project-description PDF."@en ;
  rdfs:domain ec:Fellowship ;
  rdfs:range rdfs:Resource .

ec:purpose
  a rdf:Property ;
  rdfs:label "purpose"@en ;
  rdfs:comment "Curated purpose of a software entry."@en ;
  rdfs:domain ec:Software ;
  rdfs:range xsd:string .

ec:releaseKind
  a rdf:Property ;
  rdfs:label "release kind"@en ;
  rdfs:comment "Whether an observed software record is a tagged release or repository update."@en ;
  rdfs:domain ec:SoftwareRelease ;
  rdfs:range xsd:string .

ec:releasePublishedAt
  a rdf:Property ;
  rdfs:label "release published at"@en ;
  rdfs:comment "Timestamp when a software release or repository update was published."@en ;
  rdfs:domain ec:SoftwareRelease ;
  rdfs:range xsd:dateTime .

ec:releasePublishedAtText
  a rdf:Property ;
  rdfs:label "release published at text"@en ;
  rdfs:comment "Fallback textual release timestamp."@en ;
  rdfs:domain ec:SoftwareRelease ;
  rdfs:range xsd:string .

ec:releaseTag
  a rdf:Property ;
  rdfs:label "release tag"@en ;
  rdfs:comment "Version tag for a software release."@en ;
  rdfs:domain ec:SoftwareRelease ;
  rdfs:range xsd:string .

ec:releaseUrl
  a rdf:Property ;
  rdfs:label "release URL"@en ;
  rdfs:comment "URL of a software release or repository-update source."@en ;
  rdfs:domain ec:SoftwareRelease ;
  rdfs:range rdfs:Resource .

ec:relatedFellowship
  a rdf:Property ;
  rdfs:label "related fellowship"@en ;
  rdfs:comment "Associates an entity with a fellowship record."@en ;
  rdfs:range ec:Fellowship .

ec:relatedPoster
  a rdf:Property ;
  rdfs:label "related poster"@en ;
  rdfs:comment "Associates software with a related poster."@en ;
  rdfs:range ec:Poster .

ec:relatedSoftware
  a rdf:Property ;
  rdfs:label "related software"@en ;
  rdfs:comment "Associates publications, talks, posters, or other entities with software."@en ;
  rdfs:range ec:Software .

ec:repositoryUrl
  a rdf:Property ;
  rdfs:label "repository URL"@en ;
  rdfs:comment "URL of the source repository for a software entry."@en ;
  rdfs:domain ec:Software ;
  rdfs:range rdfs:Resource .

ec:posterPath
  a rdf:Property ;
  rdfs:label "poster path"@en ;
  rdfs:comment "Relative path to a poster linked from a talk."@en ;
  rdfs:domain ec:Talk ;
  rdfs:range xsd:string .

ec:posterTitle
  a rdf:Property ;
  rdfs:label "poster title"@en ;
  rdfs:comment "Display title for poster material linked from a talk."@en ;
  rdfs:domain ec:Talk ;
  rdfs:range xsd:string .

ec:prefix
  a rdf:Property ;
  rdfs:label "prefix"@en ;
  rdfs:comment "Optional text prefix displayed before a CV detail value."@en ;
  rdfs:domain ec:CvDetail ;
  rdfs:range xsd:string .

ec:publicationId
  a rdf:Property ;
  rdfs:label "publication ID"@en ;
  rdfs:comment "Raw publication ID string used by citation observation mappings."@en ;
  rdfs:domain ec:CitationObservation ;
  rdfs:range xsd:string .

ec:publicationYear
  a rdf:Property ;
  rdfs:label "publication year"@en ;
  rdfs:comment "Publication year as xsd:gYear."@en ;
  rdfs:domain ec:Publication ;
  rdfs:range xsd:gYear .

ec:rawUrl
  a rdf:Property ;
  rdfs:label "raw URL"@en ;
  rdfs:comment "Non-normalized URL string when URI normalization fails."@en ;
  rdfs:range xsd:string .

ec:referencesEntity
  a rdf:Property ;
  rdfs:label "references entity"@en ;
  rdfs:comment "Links a homepage update to the entity it summarizes."@en ;
  rdfs:domain ec:HomepageUpdate ;
  rdfs:range rdfs:Resource .

ec:relatedPublication
  a rdf:Property ;
  rdfs:label "related publication"@en ;
  rdfs:comment "Associates a talk with related publication nodes."@en ;
  rdfs:range rdfs:Resource .

ec:relatedTalk
  a rdf:Property ;
  rdfs:label "related talk"@en ;
  rdfs:comment "Associates a publication with related talk nodes."@en ;
  rdfs:range rdfs:Resource .

ec:role
  a rdf:Property ;
  rdfs:label "role"@en ;
  rdfs:comment "Role/title text for CV items."@en ;
  rdfs:domain ec:CvItem ;
  rdfs:range xsd:string .

ec:slidePath
  a rdf:Property ;
  rdfs:label "slide path"@en ;
  rdfs:comment "Relative path to talk slides."@en ;
  rdfs:domain ec:Talk ;
  rdfs:range xsd:string .

ec:slug
  a rdf:Property ;
  rdfs:label "slug"@en ;
  rdfs:comment "Stable URL-friendly identifier used by a displayed entity."@en ;
  rdfs:range xsd:string .

ec:sortDate
  a rdf:Property ;
  rdfs:label "sort date"@en ;
  rdfs:comment "Sortable publication date."@en ;
  rdfs:domain ec:Publication ;
  rdfs:range xsd:date .

ec:sortDateText
  a rdf:Property ;
  rdfs:label "sort date text"@en ;
  rdfs:comment "Fallback textual sort date for publications."@en ;
  rdfs:domain ec:Publication ;
  rdfs:range xsd:string .

ec:sourceDate
  a rdf:Property ;
  rdfs:label "source date"@en ;
  rdfs:comment "Date extracted from source talk data before display overrides."@en ;
  rdfs:domain ec:Talk ;
  rdfs:range xsd:date .

ec:sourceDateLabel
  a rdf:Property ;
  rdfs:label "source date label"@en ;
  rdfs:comment "Source date display label from generated talk data."@en ;
  rdfs:domain ec:Talk ;
  rdfs:range xsd:string .

ec:sourceDateText
  a rdf:Property ;
  rdfs:label "source date text"@en ;
  rdfs:comment "Fallback textual source date for talks."@en ;
  rdfs:domain ec:Talk ;
  rdfs:range xsd:string .

ec:sourceDirectory
  a rdf:Property ;
  rdfs:label "source directory"@en ;
  rdfs:comment "Filesystem-relative source directory used to generate the dataset."@en ;
  rdfs:domain ec:WebsiteDataset ;
  rdfs:range xsd:string .

ec:sourceFile
  a rdf:Property ;
  rdfs:label "source file"@en ;
  rdfs:comment "Source filename for a talk's slide input."@en ;
  rdfs:domain ec:Talk ;
  rdfs:range xsd:string .

ec:sourceTitle
  a rdf:Property ;
  rdfs:label "source title"@en ;
  rdfs:comment "Source title from generated talk data before metadata override."@en ;
  rdfs:domain ec:Talk ;
  rdfs:range xsd:string .

ec:softwareType
  a rdf:Property ;
  rdfs:label "software type"@en ;
  rdfs:comment "Curated type label for a software entry."@en ;
  rdfs:domain ec:Software ;
  rdfs:range xsd:string .

ec:subtitle
  a rdf:Property ;
  rdfs:label "subtitle"@en ;
  rdfs:comment "Subtitle or fellowship scheme label."@en ;
  rdfs:domain ec:Fellowship ;
  rdfs:range xsd:string .

ec:summary
  a rdf:Property ;
  rdfs:label "summary"@en ;
  rdfs:comment "Short summary text used in listings and cards."@en ;
  rdfs:range xsd:string .

ec:tagKind
  a rdf:Property ;
  rdfs:label "tag kind"@en ;
  rdfs:comment "Tag category key (for example topic, venue, publication-type)."@en ;
  rdfs:domain ec:Tag ;
  rdfs:range xsd:string .

ec:text
  a rdf:Property ;
  rdfs:label "text"@en ;
  rdfs:comment "Primary text content for CV detail rows."@en ;
  rdfs:domain ec:CvDetail ;
  rdfs:range xsd:string .

ec:updateDate
  a rdf:Property ;
  rdfs:label "update date"@en ;
  rdfs:comment "Date of a homepage update card."@en ;
  rdfs:domain ec:HomepageUpdate ;
  rdfs:range xsd:date .

ec:updateDateText
  a rdf:Property ;
  rdfs:label "update date text"@en ;
  rdfs:comment "Fallback textual date for homepage updates."@en ;
  rdfs:domain ec:HomepageUpdate ;
  rdfs:range xsd:string .

ec:updateType
  a rdf:Property ;
  rdfs:label "update type"@en ;
  rdfs:comment "Type of update card (for example Publication, Talk, Blog)."@en ;
  rdfs:domain ec:HomepageUpdate ;
  rdfs:range xsd:string .

ec:venue
  a rdf:Property ;
  rdfs:label "venue"@en ;
  rdfs:comment "Venue/publication outlet label."@en ;
  rdfs:domain ec:Publication ;
  rdfs:range xsd:string .

ec:webUrl
  a rdf:Property ;
  rdfs:label "web URL"@en ;
  rdfs:comment "Primary website URL for a software entry."@en ;
  rdfs:domain ec:Software ;
  rdfs:range rdfs:Resource .

ec:year
  a rdf:Property ;
  rdfs:label "year"@en ;
  rdfs:comment "Year or ongoing status associated with a software entry."@en ;
  rdfs:domain ec:Software ;
  rdfs:range xsd:string .
