@prefix bibo: . @prefix cc: . @prefix dc: . @prefix gsn: . @prefix gsnswrl: . @prefix owl: . @prefix rdf: . @prefix rdfs: . @prefix schema: . @prefix skos: . @prefix swrl: . @prefix swrla: . @prefix terms: . @prefix vann: . @prefix xsd: . cc:license a owl:AnnotationProperty . dc:contributor a owl:AnnotationProperty . dc:creator a owl:AnnotationProperty . dc:description a owl:AnnotationProperty . dc:publisher a owl:AnnotationProperty . dc:source a owl:AnnotationProperty . dc:title a owl:AnnotationProperty . terms:bibliographicCitation a owl:AnnotationProperty . terms:created a owl:AnnotationProperty . terms:issued a owl:AnnotationProperty . terms:modified a owl:AnnotationProperty . bibo:doi a owl:AnnotationProperty . bibo:status a owl:AnnotationProperty . vann:preferredNamespacePrefix a owl:AnnotationProperty . vann:preferredNamespaceUri a owl:AnnotationProperty . schema:description a owl:AnnotationProperty, owl:DatatypeProperty . schema:disclaimer a owl:AnnotationProperty . schema:includedInDataCatalog a owl:AnnotationProperty . schema:logo a owl:AnnotationProperty . schema:name a owl:AnnotationProperty . schema:url a owl:AnnotationProperty . swrla:isRuleEnabled a owl:AnnotationProperty . skos:definition a owl:AnnotationProperty . skos:note a owl:AnnotationProperty . skos:scopeNote a owl:AnnotationProperty . gsn:coreOrExtension a owl:AnnotationProperty . gsn:depicts a owl:ObjectProperty ; rdfs:label "depicts"@en ; rdfs:domain gsn:View ; rdfs:range gsn:Module ; skos:definition "The argument view depicts the argument inside an individual module."@en ; gsn:coreOrExtension "Modular Extension"@en . gsn:inferredOnly a owl:AnnotationProperty . gsn:renderedAs a owl:AnnotationProperty . gsn:viewType a owl:DatatypeProperty ; rdfs:label "view type"@en ; rdfs:domain gsn:View ; rdfs:range [ a rdfs:Datatype ; owl:oneOf [ a rdf:List ; rdf:first "architecture" ; rdf:rest [ a rdf:List ; rdf:first "argument" ; rdf:rest () ] ] ] ; skos:definition "[OntoGSN] Determines whether the view shows the argument or the module architecture."@en ; gsn:coreOrExtension "Modular Extension"@en . a owl:Ontology ; cc:license ; dc:contributor "Barbara Gallina"@en, "Dian Balta"@en, "Ingmar Kessler"@en, "Jule Hendricks"@en ; dc:creator "Tomas Bueno Momčilović"@en ; dc:description "The complete Modular Extension section of OntoGSN. Generated from ontogsn.ttl by development/dev_tools/build_separated.py. Includes the SWRL rules and every annotation."@en ; dc:publisher [ schema:name "fortiss GmbH" ; schema:url ] ; dc:source "https://w3id.org/OntoGSN/ontology" ; dc:title "OntoGSN — Modular Extension"@en ; terms:bibliographicCitation "Bueno Momčilović, T. (2026). OntoGSN (Version 1.3.0) [Ontology]. https://doi.org/10.5281/zenodo.17808330" ; terms:created "2025-02-20"^^xsd:date ; terms:issued "2026-11-05"^^xsd:date ; terms:modified "2026-11-05"^^xsd:date ; bibo:doi "10.5281/zenodo.17808330" ; bibo:status ; vann:preferredNamespacePrefix "gsn" ; vann:preferredNamespaceUri "https://w3id.org/OntoGSN/ontology#" ; schema:disclaimer "[Disclaimer from the GSN Community Standard v3.0]: While the authors and the publishers have used reasonable endeavours to ensure that the information and guidance given in this work is correct, all parties must rely on their own skill and judgement when making use of this work and obtain professional or specialist advice before taking, or refraining from, any action on the basis of the content of this work. Neither the authors nor the publishers make any representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to such information and guidance for any purpose, and they will not be liable for any loss or damage including without limitation, indirect or consequential loss or damage, or any loss or damage whatsoever (including as a result of negligence) arising out of, or in connection with, the use of this work. The views and opinions expressed in this publication are those of the authors and do not necessarily reflect those of their employers, the SCSC1 or other organisations."@en ; schema:includedInDataCatalog ; schema:logo ; schema:url "https://w3id.org/OntoGSN/"^^xsd:anyURI ; rdfs:seeAlso ; owl:priorVersion ; owl:versionIRI ; owl:versionInfo "1.3.0" ; skos:definition "GSN is a graphical argument notation which can be used to document explicitly the elements and structure of an argument and the argument’s relationship to evidence."@en ; skos:scopeNote "A definition prefixed [OntoGSN] is this ontology’s wording, not the GSN Community Standard’s. Every definition, tagged or not, has a record in the design record under development/design/ naming the passage it rests on, or stating that it rests on none."@en ; gsn:coreOrExtension "Modular Extension"@en . gsn:Relationship a owl:Class . gsn:consistentWith a owl:ObjectProperty, owl:SymmetricProperty ; rdfs:label "consistent with"@en ; rdfs:domain [ a owl:Class ; owl:unionOf ( gsn:Assumption gsn:Context ) ] ; rdfs:range [ a owl:Class ; owl:unionOf ( gsn:Assumption gsn:Context ) ] ; skos:definition "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." ; gsn:coreOrExtension "Modular Extension"@en . gsn:substitutedBy a owl:ObjectProperty ; rdfs:label "substituted by"@en ; rdfs:domain gsn:Justification ; rdfs:range [ a owl:Class ; owl:intersectionOf ( gsn:Goal [ a owl:Restriction ; owl:hasValue true ; owl:onProperty gsn:away ] ) ] ; skos:definition "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 ; gsn:coreOrExtension "Modular Extension"@en . schema:identifier a owl:DatatypeProperty . gsn:Solution a owl:Class . gsn:View a owl:Class ; rdfs:label "View"@en ; skos:definition "The argument view depicts the argument inside an individual module."@en ; gsn:coreOrExtension "Modular Extension"@en . gsn:undeveloped a owl:DatatypeProperty . gsnswrl:C1 a swrl:Variable . gsnswrl:ID a swrl:Variable . gsn:Argument a owl:Class . gsn:GSNElement a owl:Class . gsn:public a owl:DatatypeProperty ; rdfs:label "public"@en ; rdfs:domain [ a owl:Class ; owl:unionOf ( gsn:Assumption gsn:Context gsn:Goal gsn:Justification gsn:Solution ) ] ; rdfs:range xsd:boolean ; skos:definition "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 ; gsn:coreOrExtension "Modular Extension"@en ; gsn:renderedAs "miniature module symbol superimposed on an element at the top right" . gsn:toBeSupportedByContract a owl:DatatypeProperty ; rdfs:label "to be supported by contract"@en ; rdfs:domain gsn:Goal ; rdfs:range xsd:boolean ; owl:propertyDisjointWith gsn:undeveloped ; skos:definition "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 ; gsn:coreOrExtension "Modular Extension"@en ; gsn:renderedAs "attached centrally immediately below the goal to which it relates" . gsn:transitivelyInContextOf a owl:ObjectProperty, owl:TransitiveProperty ; rdfs:label "transitively in context of"@en ; rdfs:domain gsn:Module ; rdfs:range gsn:Module ; skos:definition "[OntoGSN] Relates a module to every module that it reaches through a chain of one or more in-context-of links between modules."@en ; skos:note "Inferred, never authored. It is derived by the Module Context Closure rule, and the Module Context Cycle rules read it."@en ; gsn:coreOrExtension "Modular Extension"@en ; gsn:inferredOnly true . gsnswrl:Arg a swrl:Variable . gsnswrl:C2 a swrl:Variable . gsn:Assumption a owl:Class . gsn:Justification a owl:Class . gsnswrl:C a swrl:Variable . gsnswrl:E2 a swrl:Variable . rdf:object a owl:ObjectProperty . rdf:subject a owl:ObjectProperty . gsn:Context a owl:Class . gsn:contract a owl:DatatypeProperty ; rdfs:label "contract"@en ; rdfs:domain gsn:Module ; rdfs:range xsd:boolean ; owl:propertyDisjointWith gsn:undeveloped ; skos:definition "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 ; skos:note "A contract may be described in textual form (e.g. as a table) or for more complex relationships may be described within a contract module using GSN."@en, "Contract modules can be used in the support relationship between modules to aid decoupling. The de-coupling by use of a contract permits argument module construction in cases where the eventual source of support for an argument is unknown at the time of authoring or can be changed for example through re-use or planned product improvement or reconfiguration."@en ; gsn:coreOrExtension "Modular Extension"@en ; gsn:renderedAs "a rectangle with two smaller rectangles (of equal size to each other) adjoining at the top left and bottom right" . gsnswrl:G a swrl:Variable . gsnswrl:J a swrl:Variable . gsn:away a owl:DatatypeProperty ; rdfs:label "away"@en ; schema:description "An away assumption repeats an assumption presented in another argument module and is typically used only in Contract Modules. An away context repeats a reference to context presented in another argument module. An away goal reference repeats a claim presented in another argument module. An away justification repeats a justification presented in another argument module and is typically used only in Contract Modules. An away solution repeats a reference to evidence items presented in another argument module."@en ; rdfs:domain [ a owl:Class ; owl:unionOf ( gsn:Assumption gsn:Context gsn:Goal gsn:Justification gsn:Solution ) ] ; rdfs:range xsd:boolean ; skos:definition "An away element reference repeats a claim or evidence presented in another argument module."@en ; gsn:coreOrExtension "Modular Extension"@en ; gsn:renderedAs "bisecting line in the lower half" . gsnswrl:E1 a swrl:Variable . gsnswrl:G2 a swrl:Variable . gsn:Goal a owl:Class . gsnswrl:G1 a swrl:Variable . gsnswrl:E a swrl:Variable . gsnswrl:N a swrl:Variable . gsn:inContextOf a owl:ObjectProperty . gsn:supportedBy a owl:ObjectProperty . gsn:valid a owl:DatatypeProperty . gsn:contains a owl:ObjectProperty . gsnswrl:R a swrl:Variable . gsn:inModule a owl:ObjectProperty ; rdfs:label "in module"@en ; rdfs:domain gsn:GSNElement ; rdfs:range gsn:Module ; skos:definition "The module an element belongs to, whether the element sits in an argument the module contains or in a module nested inside it."@en ; skos:note "Inferred, never authored. A module contains arguments and other modules, so the module an element belongs to is always reached in two steps or more. This property names the result of that traversal so that the rules of the Modular Extension can state it in one atom. It is derived by the Module Membership and Nested Module Membership rules."@en ; gsn:coreOrExtension "Modular Extension"@en ; gsn:inferredOnly true . gsnswrl:B a swrl:Variable . gsnswrl:M a swrl:Variable . gsnswrl:M1 a swrl:Variable . gsnswrl:M2 a swrl:Variable . gsnswrl:A a swrl:Variable . gsn:Module a owl:Class ; rdfs:label "Module"@en ; rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom [ a owl:Class ; owl:unionOf ( gsn:Argument gsn:Module ) ] ; owl:onProperty gsn:contains ], [ a owl:Restriction ; owl:allValuesFrom gsn:Module ; owl:onProperty gsn:inContextOf ], [ a owl:Restriction ; owl:allValuesFrom gsn:Module ; owl:onProperty gsn:supportedBy ], [ a owl:Restriction ; owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass gsn:Argument ; owl:onProperty gsn:contains ], gsn:GSNElement ; skos:definition "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 ; gsn:coreOrExtension "Modular Extension"@en ; gsn:renderedAs "a rectangle with a second smaller rectangle adjoining at the top left" . [] a swrl:Imp ; rdfs:label "Contract Violation Relation" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 gsnswrl:M1 ; swrl:propertyPredicate rdf:object ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M1 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M2 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:M2 ; swrl:argument2 gsnswrl:A ; swrl:propertyPredicate gsn:contains ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 gsnswrl:M1 ; swrl:propertyPredicate gsn:supportedBy ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 gsnswrl:A ; swrl:propertyPredicate rdf:subject ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:M2 ; swrl:argument2 true ; swrl:propertyPredicate gsn:contract ] ; rdf:rest () ] ] ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 false ; swrl:propertyPredicate gsn:valid ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Contract Support Invalidation" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:M ; swrl:argument2 gsnswrl:A ; swrl:propertyPredicate gsn:contains ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 true ; swrl:propertyPredicate gsn:toBeSupportedByContract ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:M ; swrl:argument2 true ; swrl:propertyPredicate gsn:contract ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M ; swrl:classPredicate gsn:Module ] ; rdf:rest () ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 false ; swrl:propertyPredicate gsn:valid ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Cross-Module Support" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:E1 ; swrl:argument2 gsnswrl:M2 ; swrl:propertyPredicate gsn:supportedBy ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M1 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M2 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:E1 ; swrl:argument2 gsnswrl:M1 ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DifferentIndividualsAtom ; swrl:argument1 gsnswrl:M1 ; swrl:argument2 gsnswrl:M2 ] ; rdf:rest () ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:M1 ; swrl:argument2 gsnswrl:M2 ; swrl:propertyPredicate gsn:supportedBy ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Away Goal Invalidation" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 gsnswrl:G1 ; swrl:propertyPredicate rdf:subject ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M1 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:G1 ; swrl:classPredicate gsn:Goal ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 gsnswrl:G2 ; swrl:propertyPredicate rdf:object ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M2 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:G1 ; swrl:argument2 gsnswrl:G2 ; swrl:propertyPredicate gsn:supportedBy ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:G1 ; swrl:argument2 true ; swrl:propertyPredicate gsn:away ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:G1 ; swrl:argument2 gsnswrl:M1 ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:G2 ; swrl:argument2 gsnswrl:M2 ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest () ] ] ] ] ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 false ; swrl:propertyPredicate gsn:valid ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Contract Relation Invalidation" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:M ; swrl:argument2 gsnswrl:B ; swrl:propertyPredicate gsn:contains ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:M ; swrl:argument2 gsnswrl:A ; swrl:propertyPredicate gsn:contains ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 true ; swrl:propertyPredicate gsn:toBeSupportedByContract ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 gsnswrl:B ; swrl:propertyPredicate gsn:supportedBy ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 gsnswrl:A ; swrl:propertyPredicate rdf:subject ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 gsnswrl:B ; swrl:propertyPredicate rdf:object ] ; rdf:rest () ] ] ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 false ; swrl:propertyPredicate gsn:valid ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Module Membership" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:M ; swrl:argument2 gsnswrl:Arg ; swrl:propertyPredicate gsn:contains ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:Arg ; swrl:classPredicate gsn:Argument ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:Arg ; swrl:argument2 gsnswrl:E ; swrl:propertyPredicate gsn:contains ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:E ; swrl:classPredicate gsn:GSNElement ] ; rdf:rest () ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:E ; swrl:argument2 gsnswrl:M ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Module Context Cycle Relationship Invalidation" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:R ; swrl:classPredicate gsn:Relationship ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 gsnswrl:A ; swrl:propertyPredicate rdf:subject ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 gsnswrl:B ; swrl:propertyPredicate rdf:object ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 gsnswrl:B ; swrl:propertyPredicate gsn:inContextOf ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:B ; swrl:argument2 gsnswrl:A ; swrl:propertyPredicate gsn:transitivelyInContextOf ] ; rdf:rest () ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 false ; swrl:propertyPredicate gsn:valid ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Context Consistency" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:G1 ; swrl:argument2 gsnswrl:C1 ; swrl:propertyPredicate gsn:inContextOf ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:G2 ; swrl:argument2 gsnswrl:C2 ; swrl:propertyPredicate gsn:inContextOf ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:G1 ; swrl:classPredicate gsn:Goal ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:G2 ; swrl:classPredicate gsn:Goal ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:G2 ; swrl:argument2 true ; swrl:propertyPredicate gsn:away ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:G1 ; swrl:argument2 gsnswrl:G2 ; swrl:propertyPredicate gsn:supportedBy ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:C2 ; swrl:classPredicate gsn:Context ] ; rdf:rest () ] ] ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:C1 ; swrl:argument2 gsnswrl:C2 ; swrl:propertyPredicate gsn:consistentWith ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Module Context Closure" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:A ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:B ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 gsnswrl:B ; swrl:propertyPredicate gsn:inContextOf ] ; rdf:rest () ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 gsnswrl:B ; swrl:propertyPredicate gsn:transitivelyInContextOf ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Module Support Propagation" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M1 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M2 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:E1 ; swrl:argument2 gsnswrl:E2 ; swrl:propertyPredicate gsn:supportedBy ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:E1 ; swrl:argument2 gsnswrl:M1 ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:E2 ; swrl:argument2 gsnswrl:M2 ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DifferentIndividualsAtom ; swrl:argument1 gsnswrl:M1 ; swrl:argument2 gsnswrl:M2 ] ; rdf:rest () ] ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:M1 ; swrl:argument2 gsnswrl:M2 ; swrl:propertyPredicate gsn:supportedBy ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Cross-Module Away Context" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 gsnswrl:M ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:B ; swrl:argument2 gsnswrl:N ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:N ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 gsnswrl:B ; swrl:propertyPredicate gsn:inContextOf ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DifferentIndividualsAtom ; swrl:argument1 gsnswrl:M ; swrl:argument2 gsnswrl:N ] ; rdf:rest () ] ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:B ; swrl:argument2 true ; swrl:propertyPredicate gsn:away ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Module Context Cycle Invalidation" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:M ; swrl:argument2 gsnswrl:M ; swrl:propertyPredicate gsn:transitivelyInContextOf ] ; rdf:rest () ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:M ; swrl:argument2 false ; swrl:propertyPredicate gsn:valid ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Duplicate Identifier Invalidation" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:M ; swrl:argument2 gsnswrl:B ; swrl:propertyPredicate gsn:contains ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:M ; swrl:argument2 gsnswrl:A ; swrl:propertyPredicate gsn:contains ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 gsnswrl:ID ; swrl:propertyPredicate schema:identifier ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DifferentIndividualsAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 gsnswrl:B ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:B ; swrl:argument2 gsnswrl:ID ; swrl:propertyPredicate schema:identifier ] ; rdf:rest () ] ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 false ; swrl:propertyPredicate gsn:valid ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:B ; swrl:argument2 false ; swrl:propertyPredicate gsn:valid ] ; rdf:rest () ] ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Nested Module Membership" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:M ; swrl:argument2 gsnswrl:N ; swrl:propertyPredicate gsn:contains ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:N ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:E ; swrl:argument2 gsnswrl:N ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest () ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:E ; swrl:argument2 gsnswrl:M ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Cross-Module Away Support" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 gsnswrl:M ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:B ; swrl:argument2 gsnswrl:N ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 gsnswrl:B ; swrl:propertyPredicate gsn:supportedBy ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:N ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DifferentIndividualsAtom ; swrl:argument1 gsnswrl:M ; swrl:argument2 gsnswrl:N ] ; rdf:rest () ] ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:B ; swrl:argument2 true ; swrl:propertyPredicate gsn:away ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Public Context Propagation" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:G ; swrl:argument2 true ; swrl:propertyPredicate gsn:public ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:G ; swrl:argument2 gsnswrl:C ; swrl:propertyPredicate gsn:inContextOf ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:G ; swrl:classPredicate gsn:Goal ] ; rdf:rest () ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:C ; swrl:argument2 true ; swrl:propertyPredicate gsn:public ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Public Contract Invalidation" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:C ; swrl:argument2 true ; swrl:propertyPredicate gsn:contract ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:E ; swrl:argument2 true ; swrl:propertyPredicate gsn:public ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:C ; swrl:argument2 gsnswrl:E ; swrl:propertyPredicate gsn:contains ] ; rdf:rest () ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:E ; swrl:argument2 false ; swrl:propertyPredicate gsn:valid ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Context Contract Invalidation" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 gsnswrl:M1 ; swrl:propertyPredicate gsn:inContextOf ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 gsnswrl:M1 ; swrl:propertyPredicate rdf:object ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M1 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M2 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:M2 ; swrl:argument2 gsnswrl:A ; swrl:propertyPredicate gsn:contains ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 gsnswrl:A ; swrl:propertyPredicate rdf:subject ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:M2 ; swrl:argument2 true ; swrl:propertyPredicate gsn:contract ] ; rdf:rest () ] ] ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:R ; swrl:argument2 false ; swrl:propertyPredicate gsn:valid ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Substitution Invalidation" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:G ; swrl:argument2 gsnswrl:M2 ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M1 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M2 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:J ; swrl:argument2 gsnswrl:G ; swrl:propertyPredicate gsn:substitutedBy ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:J ; swrl:argument2 gsnswrl:M1 ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:J ; swrl:classPredicate gsn:Justification ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:E ; swrl:argument2 gsnswrl:J ; swrl:propertyPredicate gsn:inContextOf ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DifferentIndividualsAtom ; swrl:argument1 gsnswrl:M1 ; swrl:argument2 gsnswrl:M2 ] ; rdf:rest () ] ] ] ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:J ; swrl:argument2 false ; swrl:propertyPredicate gsn:valid ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Contract Activation" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 true ; swrl:propertyPredicate gsn:away ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 true ; swrl:propertyPredicate gsn:toBeSupportedByContract ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M1 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M2 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 gsnswrl:M1 ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:B ; swrl:argument2 gsnswrl:M2 ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:A ; swrl:argument2 gsnswrl:B ; swrl:propertyPredicate gsn:supportedBy ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DifferentIndividualsAtom ; swrl:argument1 gsnswrl:M1 ; swrl:argument2 gsnswrl:M2 ] ; rdf:rest () ] ] ] ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:DatavaluedPropertyAtom ; swrl:argument1 gsnswrl:M2 ; swrl:argument2 true ; swrl:propertyPredicate gsn:contract ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" . [] a swrl:Imp ; rdfs:label "Module Context Propagation" ; swrla:isRuleEnabled true ; swrl:body [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M1 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:ClassAtom ; swrl:argument1 gsnswrl:M2 ; swrl:classPredicate gsn:Module ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:E1 ; swrl:argument2 gsnswrl:M1 ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:E2 ; swrl:argument2 gsnswrl:M2 ; swrl:propertyPredicate gsn:inModule ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:E1 ; swrl:argument2 gsnswrl:E2 ; swrl:propertyPredicate gsn:inContextOf ] ; rdf:rest [ a swrl:AtomList ; rdf:first [ a swrl:DifferentIndividualsAtom ; swrl:argument1 gsnswrl:M1 ; swrl:argument2 gsnswrl:M2 ] ; rdf:rest () ] ] ] ] ] ] ; swrl:head [ a swrl:AtomList ; rdf:first [ a swrl:IndividualPropertyAtom ; swrl:argument1 gsnswrl:M1 ; swrl:argument2 gsnswrl:M2 ; swrl:propertyPredicate gsn:inContextOf ] ; rdf:rest () ] ; gsn:coreOrExtension "Modular Extension" .