PREFIX gsn: <https://w3id.org/OntoGSN/ontology#>
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#>

<http://www.w3.org/2003/11/swrl#Imp> a rdfs:Class .

gsn:Goal a rdfs:Class ;
  rdfs:label "Goal"@en ;
  rdfs:comment "(Claim is) A proposition being asserted by the author that is a true or false statement."@en ;
  rdfs:subClassOf gsn:GSNElement .

gsn:uninstantiated a rdf:Property ;
  rdfs:label "uninstantiated"@en ;
  rdfs:comment "The attached element remains to be instantiated: at some later stage the abstract element needs to be replaced with a more concrete instance."@en ;
  rdfs:domain gsn:GSNElement ;
  rdfs:range xsd:boolean .

gsn:defeated a rdf:Property ;
  rdfs:label "defeated"@en ;
  rdfs:comment "This decorator symbol indicates that the element is defeated. The Defeated decorator can be applied to any of the GSN elements."@en ;
  rdfs:range xsd:boolean .

gsn:supportedBy a rdf:Property ;
  rdfs:label "supported by"@en ;
  rdfs:comment "SupportedBy, rendered as a line with a solid arrowhead, allows support relationships between elements to be documented."@en ;
  rdfs:range xsd:string , gsn:Goal , gsn:Module .

<http://schema.org/identifier> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

gsn:undeveloped a rdf:Property ;
  rdfs:label "undeveloped"@en ;
  rdfs:comment "Undeveloped element decorator, rendered as a hollow diamond applied to the bottom centre of an element, indicates that a line of argument has not been developed."@en ;
  rdfs:range xsd:boolean .

gsn:inModule a rdf:Property ;
  rdfs:label "in module"@en ;
  rdfs:comment "The module an element belongs to, whether the element sits in an argument the module contains or in a module nested inside it."@en ;
  rdfs:domain gsn:GSNElement ;
  rdfs:range gsn:Module .

gsn:statement a rdf:Property ;
  rdfs:label "statement"@en ;
  rdfs:comment "[OntoGSN] The text the element asserts, written to the grammatical rules the standard sets for GSN statements."@en ;
  rdfs:range xsd:string .

gsn:public a rdf:Property ;
  rdfs:label "public"@en ;
  rdfs:comment "This indicates that the element is publicly visible in one or more interfaces of the module and can be referenced as an away element."@en ;
  rdfs:range xsd:boolean .

gsn:offDiagram a rdf:Property ;
  rdfs:label "off-diagram"@en ;
  rdfs:comment "[OntoGSN] Determines whether the argument at this element continues in, or is a continuation from, a separate diagram."@en ;
  rdfs:domain gsn:GSNElement ;
  rdfs:range xsd:boolean .

gsn:valid a rdf:Property ;
  rdfs:label "valid"@en ;
  rdfs:comment "[OntoGSN] Marks whether the element is determined (e.g., by a GSN rule) to be consistent or otherwise correct with respect to the GSN argument syntax."@en ;
  rdfs:range xsd:boolean .

gsn:true a rdf:Property ;
  rdfs:label "true"@en ;
  rdfs:comment "[OntoGSN] Marks whether the claim in the element or relationship is determined (e.g., by the auditor or some process) as correct or not."@en ;
  rdfs:range xsd:boolean .

gsn:inContextOf a rdf:Property ;
  rdfs:label "in context of"@en ;
  rdfs:comment "InContextOf, rendered as a line with a hollow arrowhead, declares a contextual relationship."@en ;
  rdfs:range xsd:string , gsn:Module .

gsn:away a rdf:Property ;
  rdfs:label "away"@en ;
  rdfs:comment "An away element reference repeats a claim or evidence presented in another argument module."@en ;
  rdfs:range xsd:boolean .

gsn:toBeSupportedByContract a rdf:Property ;
  rdfs:label "to be supported by contract"@en ;
  rdfs:comment "Support for the claim presented by the attached goal is intended to be provided from an argument in another module linked by an as-yet-undisclosed contract."@en ;
  rdfs:domain gsn:Goal ;
  rdfs:range xsd:boolean .

gsn:instantiationOf a rdf:Property ;
  rdfs:label "instantiation of"@en ;
  rdfs:comment "[OntoGSN] Relates an argument or element to the pattern it was instantiated from."@en ;
  rdfs:range gsn:Pattern .

gsn:top a rdf:Property ;
  rdfs:label "top (goal)"@en ;
  rdfs:comment "The top goal presents the overall claim asserted by the author and it is up to the reader to determine their belief that it is adequately supported."@en ;
  rdfs:domain gsn:Goal ;
  rdfs:range xsd:boolean .

gsn:challenges a rdf:Property ;
  rdfs:label "challenges"@en ;
  rdfs:comment "Allows a Challenge to any GSN entity to be documented. A goal, (core element) can be used in a dialectic context to assert a challenge to part of the argument. A solution, (core element) can be used to present a reference to an evidence item that asserts a challenge to part of the argument."@en ;
  rdfs:range gsn:GSNElement .

gsn:inDoubt a rdf:Property ;
  rdfs:label "in doubt"@en ;
  rdfs:comment "The dialectic challenge within this structure asserts that if the claim presented in Goal CG1 is true then this is sufficient to establish that the claim in Goal G1 in the original structure is in doubt."@en ;
  rdfs:range xsd:boolean .

gsn:Assumption a rdfs:Class ;
  rdfs:label "Assumption"@en ;
  rdfs:comment "An assumption, rendered as an oval with the letter 'A' at the top- or bottom-right, presents an intentionally unsubstantiated statement."@en ;
  rdfs:subClassOf gsn:GSNElement .

gsn:consistentWith a rdf:Property ;
  rdfs:label "consistent with"@en ;
  rdfs:comment "By making the relationship to the away goal the author is asserting not only the inference of support for the parent goal, but also that the context in which the away goal is declared is consistent with the context and assumptions in scope for the parent goal." ;
  rdfs:range xsd:string .

gsn:ArtefactReference a rdfs:Class ;
  rdfs:label "Artefact Reference"@en ;
  rdfs:comment "[OntoGSN] An element that makes no claim of its own and instead points at an artefact, such as a solution or a context expressed as a noun phrase."@en ;
  rdfs:subClassOf gsn:GSNElement .

gsn:associatedWith a rdf:Property ;
  rdfs:label "associated with"@en ;
  rdfs:comment "[OntoGSN] Links a relationship or an artefact reference to the confidence argument provided for it."@en ;
  rdfs:range gsn:Argument .

gsn:refersTo a rdf:Property ;
  rdfs:label "refers to"@en ;
  rdfs:comment "[OntoGSN] Relates an artefact reference or an instantiation data reference to the artefact it points at."@en ;
  rdfs:range gsn:Artefact .

gsn:assuranceClaimPoint a rdf:Property ;
  rdfs:label "assurance claim point"@en ;
  rdfs:comment "An Assurance Claim Point (ACP) can be used in GSN to indicate that a confidence argument is associated with an assertion in a risk argument."@en ;
  rdfs:range xsd:boolean .

gsn:GSNElement a rdfs:Class ;
  rdfs:label "GSN Element"@en ;
  rdfs:comment "Goals, solutions, strategies, contexts, assumptions and justifications form the principal elements of GSN."@en .

rdf:Statement a rdfs:Class .

gsn:AssuranceCase a rdfs:Class ;
  rdfs:label "Assurance Case"@en ;
  rdfs:comment "A reasoned and compelling argument, supported by a body of evidence, that a system, service or organisation will operate as intended for a defined application in a defined environment."@en .

gsn:contains a rdf:Property ;
  rdfs:label "contains"@en ;
  rdfs:comment "[OntoGSN] Relates a container (e.g., an assurance case, argument, module, catalogue or pattern) to its components (e.g., elements, arguments, patterns or artefacts)."@en ;
  rdfs:range xsd:string , gsn:Pattern .

gsn:Relationship a rdfs:Class ;
  rdfs:label "Relationship"@en ;
  rdfs:comment "[OntoGSN] A link between GSN elements treated as an individual in its own right, carrying its subject, object and type, so that the link itself can be decorated and described."@en ;
  rdfs:subClassOf rdf:Statement .

gsn:minCardinality a rdf:Property ;
  rdfs:label "minimum cardinality"@en ;
  rdfs:comment "[OntoGSN] The lower bound on how many instances of the related element this relationship stands for."@en ;
  rdfs:domain gsn:Relationship ;
  rdfs:range xsd:nonNegativeInteger .

gsn:optional a rdf:Property ;
  rdfs:label "optional"@en ;
  rdfs:comment "Optional instantiation means that the relationship and the argument below may or may not be instantiated."@en ;
  rdfs:domain gsn:Relationship ;
  rdfs:range xsd:boolean .

gsn:maxCardinality a rdf:Property ;
  rdfs:label "maximum cardinality"@en ;
  rdfs:comment "[OntoGSN] The upper bound on how many instances of the related element this relationship stands for."@en ;
  rdfs:domain gsn:Relationship ;
  rdfs:range xsd:nonNegativeInteger .

gsn:choice a rdf:Property ;
  rdfs:label "choice"@en ;
  rdfs:comment "A GSN choice can be used to denote possible alternatives in satisfying a relationship."@en ;
  rdfs:domain gsn:Relationship ;
  rdfs:range xsd:boolean .

gsn:multiple a rdf:Property ;
  rdfs:label "multiple"@en ;
  rdfs:comment "[OntoGSN] Determines whether the relationship stands for multiple instantiations rather than a single one."@en ;
  rdfs:domain gsn:Relationship ;
  rdfs:range xsd:boolean .

gsn:relationshipType a rdf:Property ;
  rdfs:label "relationship type"@en ;
  rdfs:comment "SupportedBy relationships – represented by lines with solid arrowheads – indicate inferential or evidential relationships between elements. InContextOf relationships – represented as lines with hollow arrowheads – declare contextual relationships."@en ;
  rdfs:domain gsn:Relationship ;
  rdfs:range <https://w3id.org/linkml/Any> .

gsn:RelationshipWithConfidence a rdfs:Class ;
  rdfs:label "Relationship with Confidence"@en ;
  rdfs:comment "[OntoGSN] A relationship carrying an assurance claim point, whose associated confidence argument documents the reasons for having confidence in the relationship between two elements."@en ;
  rdfs:subClassOf gsn:Relationship .

gsn:Catalogue a rdfs:Class ;
  rdfs:label "Catalogue"@en ;
  rdfs:comment "A pattern catalogue may be created to collate a series of patterns; where such a catalogue is created the structure and format of the definition should be consistent and each pattern’s definition should have a unique {pattern identifier}."@en .

gsn:Argument a rdfs:Class ;
  rdfs:label "Argument"@en ;
  rdfs:comment "A body of information presented with the intention to establish one or more claims through the presentation of related supporting claims, evidence and contextual information."@en .

gsn:published a rdf:Property ;
  rdfs:label "published"@en ;
  rdfs:comment "[OntoGSN] Determines whether the argument or pattern is in its published form, in which the undeveloped decorator is not permitted."@en ;
  rdfs:range xsd:boolean .

gsn:final a rdf:Property ;
  rdfs:label "final"@en ;
  rdfs:comment "[OntoGSN] Determines whether this is the delivered version of the argument or pattern, in which no element remains uninstantiated or undeveloped."@en ;
  rdfs:range xsd:boolean .

gsn:structured a rdf:Property ;
  rdfs:label "structured"@en ;
  rdfs:comment "A particular kind of argument where the relationships between the asserted claims, and from the evidence to the claims, are explicitly represented."@en ;
  rdfs:domain gsn:Argument ;
  rdfs:range xsd:boolean .

gsn:argumentType a rdf:Property ;
  rdfs:label "argument type"@en ;
  rdfs:comment "[OntoGSN] Defines the kind of argument this is: a risk argument (i.e., the main content of assurance), a confidence argument for an assurance claim point, a compliance argument (undefined in the normative standard), or a dialectic argument."@en ;
  rdfs:domain gsn:Argument ;
  rdfs:range <https://w3id.org/linkml/Any> .

gsn:Solution a rdfs:Class ;
  rdfs:label "Solution"@en ;
  rdfs:comment "A solution, rendered as a circle, presents a reference to an evidence item."@en ;
  rdfs:subClassOf gsn:ArtefactReference .

gsn:Pattern a rdfs:Class ;
  rdfs:label "Pattern"@en ;
  rdfs:comment "[OntoGSN] A reusable argument structure, accompanied by a description that defines its intent and the constraints on its use, from which concrete arguments are instantiated."@en .

gsn:applicability a rdf:Property ;
  rdfs:label "applicability"@en ;
  rdfs:comment "The applicability section should state under what circumstances the pattern can be applied, making clear the assumptions and principles underlying the pattern to avoid inappropriate application in a mismatched context. This section should record what contextual information is required in order to apply the pattern."@en ;
  rdfs:domain gsn:Pattern ;
  rdfs:range xsd:string .

gsn:knownUses a rdf:Property ;
  rdfs:label "known uses"@en ;
  rdfs:comment "It may be useful to provide references to known applications of the pattern. These can serve as additional examples."@en ;
  rdfs:domain gsn:Pattern ;
  rdfs:range xsd:string .

gsn:collaboration a rdf:Property ;
  rdfs:label "collaboration"@en ;
  rdfs:comment "The collaboration section should describe how elements of the pattern work together to achieve the desired effect, particularly where there are links that are not readily apparent from the argument structure."@en ;
  rdfs:domain gsn:Pattern ;
  rdfs:range xsd:string .

gsn:examples a rdf:Property ;
  rdfs:label "examples"@en ;
  rdfs:comment "It may be useful to provide example illustrations of the application of the pattern, particularly for more abstract patterns. Illustrations should include a typical case and can be supplemented with atypical cases where more than one example is provided."@en ;
  rdfs:domain gsn:Pattern ;
  rdfs:range xsd:string .

gsn:intent a rdf:Property ;
  rdfs:label "intent"@en ;
  rdfs:comment "The intent statement should state clearly what the pattern aims to achieve."@en ;
  rdfs:domain gsn:Pattern ;
  rdfs:range xsd:string .

<http://schema.org/description> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

gsn:participants a rdf:Property ;
  rdfs:label "participants"@en ;
  rdfs:comment "The participants section augments the structure by providing a description of each element. This can provide more complete descriptions, clarify the role of the element in the overall argument and emphasise the aspects that require development or instantiation."@en ;
  rdfs:domain gsn:Pattern ;
  rdfs:range xsd:string .

gsn:motivation a rdf:Property ;
  rdfs:label "motivation"@en ;
  rdfs:comment "The motivation statement can be used to state why the pattern was created. It could be expressed in terms of previous experiences e.g. as the abstraction of a successfully presented argument, or challenges addressed e.g. argument topics that are often incompletely or poorly addressed."@en ;
  rdfs:domain gsn:Pattern ;
  rdfs:range xsd:string .

gsn:relatedTo a rdf:Property ;
  rdfs:label "related to"@en ;
  rdfs:comment "This section can be used to reference patterns that are related e.g. addressing the same intent in a different context."@en ;
  rdfs:domain gsn:Pattern ;
  rdfs:range gsn:Pattern .

gsn:consequences a rdf:Property ;
  rdfs:label "consequences"@en ;
  rdfs:comment "The consequences section should make clear what work remains after the pattern has been applied. This should highlight where further support to the argument is required, and assumptions that need to be discharged."@en ;
  rdfs:domain gsn:Pattern ;
  rdfs:range xsd:string .

gsn:structure a rdf:Property ;
  rdfs:label "structure"@en ;
  rdfs:comment "The structure uses the structural and element abstraction notations to present the pattern, clearly indicating where the argument needs to be further developed or populated with details to instantiate the pattern for a specific case."@en ;
  rdfs:domain gsn:Pattern ;
  rdfs:range xsd:string .

gsn:implementation a rdf:Property ;
  rdfs:label "implementation"@en ;
  rdfs:comment "The implementation section should communicate how the application of the pattern is carried out e.g. the order in which elements should be developed; communicate hints or techniques that may ease successful application; highlight common or recognised pitfalls with the application of the pattern; and record potential misinterpretation of the terms or concepts in the pattern."@en ;
  rdfs:domain gsn:Pattern ;
  rdfs:range xsd:string .

gsn:Defeater a rdfs:Class ;
  rdfs:label "Defeater"@en ;
  rdfs:comment "The source of challenge being applied; can be directed at any part of an argument. A defeater (goal or solution) can challenge any element in a goal structure, e.g. goal, solution, strategy, context, assumption, justification." .

<http://www.w3.org/2003/11/swrl#Variable> a rdfs:Class .

gsn:Strategy a rdfs:Class ;
  rdfs:label "Strategy"@en ;
  rdfs:comment "A strategy, rendered as a parallelogram, describes the inference that exists between a goal and its supporting goal(s)."@en ;
  rdfs:subClassOf gsn:GSNElement .

gsn:View a rdfs:Class ;
  rdfs:label "View"@en ;
  rdfs:comment "The argument view depicts the argument inside an individual module."@en .

gsn:viewType a rdf:Property ;
  rdfs:label "view type"@en ;
  rdfs:comment "[OntoGSN] Determines whether the view shows the argument or the module architecture."@en ;
  rdfs:domain gsn:View ;
  rdfs:range <https://w3id.org/linkml/Any> .

gsn:depicts a rdf:Property ;
  rdfs:label "depicts"@en ;
  rdfs:comment "The argument view depicts the argument inside an individual module."@en ;
  rdfs:domain gsn:View ;
  rdfs:range gsn:Module .

gsn:Context a rdfs:Class ;
  rdfs:label "Context"@en ;
  rdfs:comment "A context, rendered as shown left, presents a contextual artefact. This can be a reference to contextual information, or a statement."@en ;
  rdfs:subClassOf gsn:ArtefactReference .

gsn:Template a rdfs:Class ;
  rdfs:label "Template"@en ;
  rdfs:comment "A template argument is a special case of a pattern argument. It uses the core GSN and argument pattern extension to construct an argument structure which requires no further development."@en ;
  rdfs:subClassOf gsn:Pattern .

gsn:Artefact a rdfs:Class ;
  rdfs:label "Artefact"@en ;
  rdfs:comment "[OntoGSN] Information or objective artefacts (e.g., files) being offered in support or context of one or more claims."@en .

gsn:Justification a rdfs:Class ;
  rdfs:label "Justification"@en ;
  rdfs:comment "A justification, rendered as an oval with the letter 'J' at the top- or bottom-right, presents a statement of rationale."@en ;
  rdfs:subClassOf gsn:GSNElement .

gsn:substitutedBy a rdf:Property ;
  rdfs:label "substituted by"@en ;
  rdfs:comment "There may be occasions when a goal or strategy requires fuller justification than can be provided within the confines of a GSN justification element. In such cases, an away goal can be substituted for the justification."@en ;
  rdfs:domain gsn:Justification ;
  rdfs:range <https://w3id.org/linkml/Any> .

gsn:InstantiationDataReference a rdfs:Class ;
  rdfs:label "Instantiation Data Reference"@en ;
  rdfs:comment "This symbol indicates that the GSN argument below the attached element is to be instantiated as a template argument. It provides a reference to the information used to instantiate the template argument." .

gsn:attachedTo a rdf:Property ;
  rdfs:label "attached to"@en ;
  rdfs:comment "[OntoGSN] Links an instantiation data reference to the element or template argument it annotates."@en ;
  rdfs:domain gsn:InstantiationDataReference ;
  rdfs:range xsd:string .

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

gsn:Module a rdfs:Class ;
  rdfs:label "Module"@en ;
  rdfs:comment "Goal structures can be partitioned into separate, but interrelated, modules. This can allow the division of an overall goal structure into separate goal structures focusing on particular aspects of the overall argument. A module may contain one or more arguments and may contain other modules."@en ;
  rdfs:subClassOf gsn:GSNElement .

gsn:contract a rdf:Property ;
  rdfs:label "contract"@en ;
  rdfs:comment "A contract module is a special type of module that controls the relationship between argument module interfaces using arguments to define how a goal in one module is supported by one or more goals in one or more other modules."@en ;
  rdfs:domain gsn:Module ;
  rdfs:range xsd:boolean .

gsn:coreOrExtension a rdf:Property ;
  rdfs:label "core or extension"@en ;
  rdfs:comment "Indicator of the sourcing section in the GSN Community Standard v3."@en ;
  rdfs:range xsd:string .

gsn:renderedAs a rdf:Property ;
  rdfs:label "rendered as"@en ;
  rdfs:range xsd:string .
