PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX sur: <https://w3id.org/survey-ontology#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

sur:CompletedQuestion a rdfs:Class ;
  rdfs:label "Completed Question" ;
  rdfs:comment "Answer provided by a participant in completing a survey for a specific question." ;
  rdfs:subClassOf <http://purl.org/linked-data/cube#Observation> , <http://purl.org/wf4ever/wfdesc#Output> , <http://www.w3.org/ns/prov#Entity> .

sur:hasAnswerText a rdf:Property ;
  rdfs:label "has answer text" ;
  rdfs:comment "Property linking a completed question to the textual answer provided by the user." ;
  rdfs:domain sur:CompletedQuestion ;
  rdfs:range xsd:string .

sur:hasCompletionTimestamp a rdf:Property ;
  rdfs:label "has completion timestamp" ;
  rdfs:comment "Timestamp at which a survey question is completed by the participant." ;
  rdfs:domain sur:CompletedQuestion ;
  rdfs:range xsd:dateTime .

sur:completesQuestion a rdf:Property ;
  rdfs:label "completes question" ;
  rdfs:comment "Property linking a completed question to the question element of the survey that is answered by the participant." ;
  rdfs:domain sur:CompletedQuestion ;
  rdfs:range sur:Question .

sur:hasAnswer a rdf:Property ;
  rdfs:label "has answer" ;
  rdfs:comment "Property linking a completed question to the answer element of the survey that is selected by the participant." ;
  rdfs:domain sur:CompletedQuestion ;
  rdfs:range sur:Answer .

sur:answeredIn a rdf:Property ;
  rdfs:label "answered in" ;
  rdfs:comment "Property defining for a completed question the survey completion task, performed by a survey participant, collecting this output." ;
  rdfs:domain sur:CompletedQuestion ;
  rdfs:range sur:SurveyCompletionTask .

sur:SingleInputQuestion a rdfs:Class ;
  rdfs:label "Single Input Question" ;
  rdfs:comment "An open-ended answer expecting a single input from the participant." ;
  rdfs:subClassOf sur:OpenQuestion .

sur:leadsTo a rdf:Property ;
  rdfs:label "leads to" ;
  rdfs:comment "Property describing the flow between different survey elements." ;
  rdfs:domain sur:SurveyElement ;
  rdfs:range sur:SurveyElement .

sur:inSurveyProcedure a rdf:Property ;
  rdfs:label "in survey procedure" ;
  rdfs:comment "Property linking a survey element to the survey procedure it belongs to." ;
  rdfs:domain sur:SurveyElement ;
  rdfs:range sur:SurveyProcedure .

sur:hasText a rdf:Property ;
  rdfs:label "has text" ;
  rdfs:comment "Textual description for a survey element." ;
  rdfs:domain sur:SurveyElement ;
  rdfs:range xsd:string .

sur:hasLatentVariable a rdf:Property ;
  rdfs:label "has latent variable" ;
  rdfs:comment "Property linking a survey question to the latent variable measured by the question." ;
  rdfs:domain sur:Question ;
  rdfs:range sur:LatentVariable .

sur:hasObservableVariable a rdf:Property ;
  rdfs:label "has observable variable" ;
  rdfs:comment "Property linking a survey question to the observable variable measured by the question." ;
  rdfs:domain sur:Question ;
  rdfs:range sur:ObservableVariable .

sur:OpenAnswer a rdfs:Class ;
  rdfs:label "Open Answer" ;
  rdfs:comment "An open answer for a survey open-ended question." ;
  rdfs:subClassOf sur:Answer .

sur:MultipleInputQuestion a rdfs:Class ;
  rdfs:label "Multiple Input Question" ;
  rdfs:comment "An open-ended answer allowing multiple inputs from the participant." ;
  rdfs:subClassOf sur:OpenQuestion .

<http://www.w3.org/ns/prov#Entity> a rdfs:Class .

<http://purl.org/linked-data/cube#DataSet> a rdfs:Class .

<http://purl.org/linked-data/cube#Observation> a rdfs:Class .

<http://purl.org/wf4ever/wfprov#Artifact> a rdfs:Class .

sur:OpenQuestion a rdfs:Class ;
  rdfs:label "Open Question" ;
  rdfs:comment "An open-ended question in a survey." ;
  rdfs:subClassOf sur:Question .

sur:SurveyCompletionTask a rdfs:Class ;
  rdfs:label "Survey Completion Task" ;
  rdfs:comment "Execution of a survey procedure by a participant." ;
  rdfs:subClassOf <http://purl.org/wf4ever/wfprov#ProcessRun> .

sur:completedFor a rdf:Property ;
  rdfs:label "completed for" ;
  rdfs:comment "Property associating a survey completion to the survey target for that completion." ;
  rdfs:domain sur:SurveyCompletionTask ;
  rdfs:range sur:SurveyTarget .

sur:sessionId a rdf:Property ;
  rdfs:label "session id" ;
  rdfs:comment "Identifier for a survey completion task." ;
  rdfs:domain sur:SurveyCompletionTask ;
  rdfs:range xsd:string .

sur:ClosedAnswer a rdfs:Class ;
  rdfs:label "Closed Answer" ;
  rdfs:comment "An available closed answer for a survey question." ;
  rdfs:subClassOf sur:Answer .

sur:hasOrderNumber a rdf:Property ;
  rdfs:label "has order number" ;
  rdfs:comment "Order for a closed answer among the available answers for a question." ;
  rdfs:domain sur:ClosedAnswer ;
  rdfs:range xsd:integer .

sur:hasValue a rdf:Property ;
  rdfs:label "has value" ;
  rdfs:comment "Value for a survey answer." ;
  rdfs:domain sur:ClosedAnswer ;
  rdfs:range xsd:float .

sur:hasPoints a rdf:Property ;
  rdfs:label "has points" ;
  rdfs:comment "Points associated to an answer." ;
  rdfs:domain sur:ClosedAnswer ;
  rdfs:range xsd:float .

<http://purl.org/wf4ever/wfdesc#Output> a rdfs:Class .

<http://www.w3.org/ns/prov#Agent> a rdfs:Class .

sur:CheckboxQuestion a rdfs:Class ;
  rdfs:label "Checkbox Question" ;
  rdfs:comment "A question having a limited set of potential answers and allowing the participant to select more than one answer." ;
  rdfs:subClassOf sur:ClosedQuestion .

sur:Survey a rdfs:Class ;
  rdfs:label "Survey" ;
  rdfs:comment "A research object aggregating resources for a survey research study." ;
  rdfs:subClassOf <http://purl.org/wf4ever/ro#ResearchObject> .

<http://purl.org/wf4ever/wfdesc#Process> a rdfs:Class .

sur:Talk a rdfs:Class ;
  rdfs:label "Talk" ;
  rdfs:comment "A survey element to be provided to the participant within a survey procedure (e.g. text, link, image, etc.)." ;
  rdfs:subClassOf sur:SurveyElement .

sur:hasLink a rdf:Property ;
  rdfs:label "has link" ;
  rdfs:comment "Link associated to a talk survey element." ;
  rdfs:domain sur:Talk ;
  rdfs:range xsd:anyURI .

sur:SurveyDataSet a rdfs:Class ;
  rdfs:label "Survey Dataset" ;
  rdfs:comment "Set of data collected for a survey considering the completions performed by participants." ;
  rdfs:subClassOf <http://purl.org/linked-data/cube#DataSet> , <http://purl.org/wf4ever/ro#Resource> .

sur:MultipleChoiceQuestion a rdfs:Class ;
  rdfs:label "Multiple Choice Question" ;
  rdfs:comment "A question having a limited set of potential answers and allowing the participant to select only one answer." ;
  rdfs:subClassOf sur:ClosedQuestion .

sur:hasVisualization a rdf:Property ;
  rdfs:label "has visualization" ;
  rdfs:comment "Property linking a survey question to the visualisation expected for the question." ;
  rdfs:domain sur:MultipleChoiceQuestion ;
  rdfs:range sur:QuestionVisualization .

sur:Question a rdfs:Class ;
  rdfs:label "Question" ;
  rdfs:comment "A question requiring an input from the participant in a survey." ;
  rdfs:subClassOf sur:SurveyElement .

<http://w3id.org/rv-ontology#Variable> a rdfs:Class .

sur:SurveyTarget a rdfs:Class ;
  rdfs:label "Survey Target" ;
  rdfs:comment "Entity representing the target of a survey completion. The same survey can be completed by the same participant considering different survey targets." .

sur:LatentVariable a rdfs:Class ;
  rdfs:label "Latent Variable" ;
  rdfs:comment "A latent variable represents a variable that is measured indirectly through different observable variables." ;
  rdfs:subClassOf <http://w3id.org/rv-ontology#Variable> .

<http://purl.org/wf4ever/ro#ResearchObject> a rdfs:Class .

<http://purl.org/wf4ever/ro#Resource> a rdfs:Class .

<http://w3id.org/rv-ontology#Model> a rdfs:Class ;
  rdfs:subClassOf <http://purl.org/wf4ever/ro#Resource> .

sur:CompletedSurvey a rdfs:Class ;
  rdfs:label "Completed Survey" ;
  rdfs:comment "A survey completed by a participant following a survey procedure." ;
  rdfs:subClassOf <http://purl.org/linked-data/cube#Slice> , <http://purl.org/wf4ever/wfprov#Artifact> .

sur:SurveyElement a rdfs:Class ;
  rdfs:label "Survey Element" ;
  rdfs:comment "An element of a survey procedure." .

sur:ClosedQuestion a rdfs:Class ;
  rdfs:label "Closed Question" ;
  rdfs:comment "A question in a survey with a defined set of available answers." ;
  rdfs:subClassOf sur:Question .

<http://purl.org/linked-data/cube#Slice> a rdfs:Class .

sur:ObservableVariable a rdfs:Class ;
  rdfs:label "Observable Variable" ;
  rdfs:comment "A variable that is directly measured collecting data about it." ;
  rdfs:subClassOf <http://w3id.org/rv-ontology#Variable> .

<http://purl.org/wf4ever/wfprov#ProcessRun> a rdfs:Class .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object" .

sur:Participant a rdfs:Class ;
  rdfs:label "Participant" ;
  rdfs:comment "A participant to a survey study." ;
  rdfs:subClassOf <http://www.w3.org/ns/prov#Agent> .

sur:participantId a rdf:Property ;
  rdfs:label "participant id" ;
  rdfs:comment "Identifier for a participant." ;
  rdfs:domain sur:Participant ;
  rdfs:range xsd:string .

sur:SurveyProcedure a rdfs:Class ;
  rdfs:label "Survey Procedure" ;
  rdfs:comment "Procedure describing the structure of the survey as an ordered graph of connected survey elements." ;
  rdfs:subClassOf <http://purl.org/wf4ever/ro#Resource> , <http://purl.org/wf4ever/wfdesc#Process> .

sur:startsWith a rdf:Property ;
  rdfs:label "starts with" ;
  rdfs:comment "Property identifying the first survey element for a survey procedure." ;
  rdfs:domain sur:SurveyProcedure ;
  rdfs:range sur:SurveyElement .

sur:hasStatus a rdf:Property ;
  rdfs:label "has status" ;
  rdfs:comment "Status of a survey procedure." ;
  rdfs:domain sur:SurveyProcedure ;
  rdfs:range xsd:string .

sur:hasTitle a rdf:Property ;
  rdfs:label "has title" ;
  rdfs:comment "Title for a survey procedure." ;
  rdfs:domain sur:SurveyProcedure ;
  rdfs:range xsd:string .

sur:Answer a rdfs:Class ;
  rdfs:label "Answer" ;
  rdfs:comment "An available answer for a survey question." ;
  rdfs:subClassOf sur:SurveyElement .

<http://purl.org/linked-data/cube#dataSet> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://purl.org/linked-data/cube#observation> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://purl.org/wf4ever/wfprov#describedByParameter> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://purl.org/wf4ever/wfprov#wasOutputFrom> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://www.openarchives.org/ore/terms/aggregates> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://www.w3.org/ns/prov#endedAtTime> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://www.w3.org/ns/prov#startedAtTime> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://www.w3.org/ns/prov#wasAssociatedWith> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://www.w3.org/ns/prov#wasAttributedTo> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

sur:describedByProcess a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

sur:QuestionVisualization a rdfs:Class ;
  rdfs:label "Question Visualization" ;
  rdfs:comment "A visualisation method for a multiple choice question." .

sur:Dropdown a sur:QuestionVisualization ;
  rdfs:label "Dropdown" ;
  rdfs:comment "Visualisation of the available textual answers of a question using a dropdown menu." .

sur:Option a sur:QuestionVisualization ;
  rdfs:label "Option" ;
  rdfs:comment "Visualisation of the available textual answers of a question listing them as different options." .

sur:Slider a sur:QuestionVisualization ;
  rdfs:label "Slider" ;
  rdfs:comment "Visualisation of the available answers of a question using a slider that allows the user to select the answer between the minimum and maximum values available." .

sur:Emoji a sur:QuestionVisualization ;
  rdfs:label "Emoji" ;
  rdfs:comment "Visualisation of the available answers of a question using a set of emojis representing their values." .

sur:Scale a sur:QuestionVisualization ;
  rdfs:label "Scale" ;
  rdfs:comment "Visualisation of the available answers as a scale of values (e.g. using stars)." .
