# baseURI: https://www.omg.org/spec/API4KP/api4kp-lang/ # imports: https://www.omg.org/spec/API4KP/api4kp-series/ # imports: https://www.omg.org/spec/API4KP/api4kp/ # imports: https://www.omg.org/spec/Commons/AnnotationVocabulary/ # imports: https://www.omg.org/spec/Commons/Collections/ # imports: https://www.omg.org/spec/DOL/DOL-terms/ # imports: https://www.omg.org/spec/LCC/Languages/LanguageRepresentation/ @base . @prefix api4kp: . @prefix api4kp-lang: . @prefix api4kp-series: . @prefix cmns-av: . @prefix cmns-col: . @prefix dct: . @prefix dol: . @prefix lcc-lr: . @prefix owl: . @prefix rdf: . @prefix rdfs: . @prefix skos: . @prefix xsd: . a owl:Ontology ; rdfs:label "API4KP Ontology of Languages" ; dct:abstract "This ontology focuses on the definition of languages and grammars relevant to API4KP, including but not limited to natural languages." ; dct:contributor "Elisa Kendall (ekendall at thematix.com)" ; dct:creator "Davide Sottara (sottara.davide at mayo.edu)" ; dct:license "http://opensource.org/licenses/MIT"^^xsd:anyURI ; owl:imports , , , , , ; owl:versionIRI ; skos:changeNote "The https://www.omg.org/spec/API4KP/20210201/api4kp-lang.rdf version of this ontology was modified to leverage the Commons Ontology Library (API4KP-22), including replacement of references to Specification Metadata and references to LCC with the Commons Annotation Vocabulary and other Commons ontologies, to reduce the dependency on DOL as appropriate, and to address inconsistencies in the representation of linguistic entities (API4KP-29)." ; cmns-av:copyright "Copyright (c) 2014-2023 Athan Services" , "Copyright (c) 2014-2023 Fraunhofer Gesellschaft" , "Copyright (c) 2014-2023 Freie Universität Berlin" , "Copyright (c) 2014-2023 Mayo Foundation for Medical Education and Research (MFMER)" , "Copyright (c) 2014-2023 Raytheon Technologies" , "Copyright (c) 2014-2023 Thematix Partners LLC" , "Copyright (c) 2015-2023 Object Management Group, Inc." , "Copyright (c) 2019-2023 Universität Leipzig" , "Copyright (c) 2020-2023 Micro Focus" ; . dol:FormalLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:ConstructedLanguage ; rdfs:label "formal language"@en ; owl:equivalentClass [ a owl:Class ; owl:intersectionOf ( api4kp-lang:ConstructedLanguage [ a owl:Restriction ; owl:onProperty api4kp:specifiedBy ; owl:someValuesFrom api4kp-lang:FormalGrammar ; ] ) ; ] ; . dol:OMSLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:KnowledgeRepresentationAndReasoningLanguage ; . dol:Profile a owl:Class ; rdfs:subClassOf dol:OMSLanguage ; . dol:QueryLanguage a owl:Class ; rdfs:subClassOf dol:OMSLanguage , api4kp-lang:DedicatedLanguage ; . dol:Serialization a owl:Class ; rdfs:subClassOf api4kp-lang:Serialization ; . dol:Signature a owl:Class ; rdfs:subClassOf api4kp-lang:Lexicon ; . dol:StandoffMarkup a owl:Class ; rdfs:subClassOf api4kp-lang:MarkupLanguage ; . dol:isSerializedIn a owl:ObjectProperty ; rdfs:subPropertyOf api4kp-lang:usesSerialization ; . dol:isSubLanguageOf a owl:ObjectProperty ; owl:inverseOf api4kp-lang:hasSublanguage ; . dol:serializes a owl:ObjectProperty ; rdfs:subPropertyOf api4kp-lang:serializes ; . dol:supportsSerialization a owl:ObjectProperty ; rdfs:subPropertyOf api4kp-lang:hasGrammar ; . api4kp-lang:AbstractSemanticGraph a owl:Class ; rdfs:subClassOf dol:Graph , api4kp-lang:ParsingStructure , [ a owl:Restriction ; owl:onProperty api4kp:conveysFormalStructure ; owl:someValuesFrom api4kp:KnowledgeAsset ; ] ; rdfs:label "abstract semantic graph" ; skos:definition "graph-based parsing structure that formalizes an expression based on the semantics of its information content" ; skos:scopeNote "ASGs are the expressions that are closest to a knowledge asset, which otherwise cannot be shared without involving some language" ; cmns-av:synonym "ASG" ; . api4kp-lang:AbstractSyntax a owl:Class ; rdfs:subClassOf api4kp-lang:FormalGrammar ; rdfs:label "abstract syntax"@en ; dct:source "https://www.omg.org/spec/ASTM/About-ASTM/" ; owl:disjointWith api4kp-lang:Serialization ; skos:definition "a formal grammar that includes some and only rules that have a direct impact on the semantics of the conformant sentences" ; skos:note "In computer science, abstract syntaxes are used to construct Parsers" ; skos:scopeNote "DOL's 'abstract syntax' is an alias of api4kp's machine-interpretable language, i.e. a language that is specified by some expression of an abstract syntax in the api4kp's sense" ; . api4kp-lang:AbstractSyntaxTree a owl:Class ; rdfs:subClassOf api4kp-lang:ParsingStructure , [ a owl:Restriction ; owl:onProperty dol:formalizes ; owl:someValuesFrom api4kp:AbstractKnowledgeExpression ; ] , [ a owl:Restriction ; owl:onProperty api4kp:dependsOn ; owl:someValuesFrom api4kp-lang:AbstractSyntax ; ] ; rdfs:label "abstract syntax tree" ; cmns-av:synonym "AST" , "tree-based parsing structure that formalizes an expression according to the rules of an abstract syntax" ; . api4kp-lang:Alphabet a owl:Class ; rdfs:subClassOf cmns-col:Arrangement , cmns-col:Collection ; rdfs:label "alphabet" ; skos:definition "set of graphemes used to construct symbols, terms and sentences in a language" ; skos:scopeNote "not limited to written languages - in fact, includes musical alphabets and pictorial alphabets" ; . api4kp-lang:AnnotationLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:DedicatedLanguage , api4kp-lang:MachineReadableLanguage ; rdfs:label "annotation language" ; skos:definition "formal language dedicated to the expression of annotation" ; . api4kp-lang:BinaryStream a owl:Class ; rdfs:subClassOf api4kp-lang:SymbolSequence , [ a owl:Restriction ; owl:onProperty dol:formalizes ; owl:someValuesFrom api4kp:EncodedKnowledgeExpression ; ] ; rdfs:label "binary stream" ; skos:definition "sequence of symbols such that the only symbols are '0' and '1'" ; . api4kp-lang:ConcreteSyntaxTree a owl:Class ; rdfs:subClassOf api4kp-lang:ParsingStructure , [ a owl:Restriction ; owl:onProperty dol:formalizes ; owl:someValuesFrom api4kp:ConcreteKnowledgeExpression ; ] , [ a owl:Restriction ; owl:onProperty api4kp:dependsOn ; owl:someValuesFrom api4kp-lang:Serialization ; ] ; rdfs:label "concrete syntax tree" ; skos:definition "tree-based parsing structure that formalizes a concrete expression according to the rules of a concrete syntax" ; cmns-av:synonym "parse tree" ; . api4kp-lang:ConstructedLanguage a owl:Class ; rdfs:subClassOf lcc-lr:Language , [ a owl:Restriction ; owl:onProperty api4kp-lang:hasGrammar ; owl:someValuesFrom api4kp-lang:PrescriptiveGrammar ; ] ; rdfs:label "constructed language" ; skos:note "constructed languages are the product of explcit design, rather than natural evolution" ; . api4kp-lang:ControlledNaturalLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:ConstructedLanguage ; rdfs:label "controlled natural language" ; skos:definition "constructed language that approximates some natural language while reducing and/or eliminating complexities and ambiguities" ; . api4kp-lang:DedicatedLanguage a owl:Class ; rdfs:subClassOf dol:FormalLanguage ; rdfs:label "dedicated language" ; skos:definition "formal language designed to have language aspects used to express specific kinds of knowledge assets" ; . api4kp-lang:DescriptiveGrammar a owl:Class ; rdfs:subClassOf api4kp-lang:Grammar ; rdfs:label "descriptive grammar" ; dct:source "https://en.wikipedia.org/wiki/Linguistic_description" ; skos:definition "grammar that describes how a language is actually used" ; . api4kp-lang:DescriptiveMarkupLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:MarkupLanguage ; rdfs:label "descriptive markup language" ; skos:definition "markup language used to (re)assert the semantics of sentences in the embedded language" ; . api4kp-lang:Encoding a owl:Class ; rdfs:subClassOf cmns-col:Arrangement ; rdfs:label "encoding" ; skos:definition "system for the encoding elements of an alphabet using a second alphabet" ; skos:example "a ZIP compression" , "the ASCII encoding of basic western alphabet characters using 7 bit binary symbols" , "the trivial encoding that preserves the original symbols" ; . api4kp-lang:ExpressionLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:DedicatedLanguage , api4kp-lang:KnowledgeRepresentationAndReasoningLanguage ; rdfs:label "expression language" ; skos:definition "formal language designed to express functions" ; skos:note "several machine executable languages either have or embed a sub-language that is an expression language" ; . api4kp-lang:FormalGrammar a owl:Class ; rdfs:subClassOf api4kp-lang:PrescriptiveGrammar , api4kp:ConstructiveDefinition , [ a owl:Restriction ; owl:onProperty api4kp:defines ; owl:someValuesFrom dol:Language ; ] ; rdfs:label "formal grammar" ; skos:definition "prescriptive grammar that consists in a collection of (production) rules that define, intensionally, all and only the possible sentences of a language" ; skos:scopeNote "one may distinguish between formal grammar - grammars that allow to recognize if a sentence is part of the language - and generative grammars - grammars with rules that allow to construct new sentences" ; cmns-av:synonym "generative grammar" ; . api4kp-lang:Grammar a owl:Class ; rdfs:subClassOf api4kp:KnowledgeAsset ; rdfs:label "grammar" ; skos:definition "set of rules and constraints that allow to recognize and/or construct the valid sentences of a language" ; . api4kp-lang:GrammarSpecification a owl:Class ; rdfs:subClassOf dol:Specification , [ a owl:Restriction ; owl:onProperty api4kp:expresses ; owl:someValuesFrom api4kp-lang:Grammar ; ] ; rdfs:label "grammar specification"@en ; owl:equivalentClass [ a owl:Class ; owl:intersectionOf ( dol:Specification [ a owl:Restriction ; owl:onProperty api4kp:specifies ; owl:someValuesFrom api4kp-lang:Grammar ; ] ) ; ] ; skos:definition "specification of a grammar, itself expressed in some (meta)language" ; skos:example "The Java 1.8 grammar, expressed using the ANTLRv4 metalanguage, available at https://github.com/antlr/grammars-v4/tree/master/java/java8" ; skos:note "Syntaxes are 'reconstructed' from natural languages, but 'designed' in the case of constructed languages" ; . api4kp-lang:IslandGrammar a owl:Class ; rdfs:subClassOf api4kp-lang:Grammar ; rdfs:label "island grammar" ; skos:definition "grammar that is proper part of another grammar" ; skos:note "island grammars define languages embedded in other languages" ; . api4kp-lang:KnowledgeRepresentationAndReasoningLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:MachineExecutableLanguage , [ a owl:Restriction ; owl:onProperty [ owl:inverseOf dol:usesLanguage ; ] ; owl:someValuesFrom api4kp:KnowledgeExpression ; ] ; rdfs:label "knowledge representation and reasoning language" ; skos:definition "machine executable language used in knowledge expressions, to express works of knowledge" ; skos:example "Prolog" ; . api4kp-lang:LanguageSchema a owl:Class ; rdfs:subClassOf api4kp-lang:GrammarSpecification , [ a owl:Restriction ; owl:onProperty dol:usesLanguage ; owl:someValuesFrom api4kp-lang:SchemaLanguage ; ] ; rdfs:label "language schema" ; skos:definition "grammar specification that is expressed using a schema language" ; skos:example 'The schema of the "Decision Modeling and Notation Language v1.2", available at https://www.omg.org/spec/DMN/20180521/DMN12.xsd, expressed using the XML Schema Definition Language' ; . api4kp-lang:LexicalEntry a owl:Class ; rdfs:subClassOf api4kp:KnowledgeExpression ; rdfs:label "lexical entry"@en ; rdfs:seeAlso ; skos:definition "unit of analysis of a lexicon that consists of a set of forms that are grammatically related and a set of base meanings that are associated with all of these forms"@en ; skos:note "A lexical entry is a word, multiword expression or affix with a single part-of-speech, morphological pattern, etymology and set of senses."@en ; . api4kp-lang:Lexicon a owl:Class ; rdfs:subClassOf cmns-col:Arrangement , cmns-col:Collection ; rdfs:label "lexicon" ; dct:source "https://en.wikipedia.org/wiki/Lexicon" ; owl:equivalentClass [ a owl:Class ; owl:intersectionOf ( cmns-col:Arrangement [ a owl:Restriction ; owl:onProperty cmns-col:hasMember ; owl:someValuesFrom api4kp-lang:LexicalEntry ; ] ) ; ] ; skos:definition "complete set of the meaningful atomic signs that are or can be used in a language" ; skos:scopeNote "TODO: In DOL, signatures are 'set of symbols', but are treated as 'mathematical' rather than 'linguistic' entities (i.e. concepts vs terms)." ; . api4kp-lang:MachineExecutableLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:MachineReadableLanguage ; rdfs:label "machine-executable language"@en ; skos:definition "machine-readable language equipped with semantics that allows to drive the behavior of a software agent" ; skos:note "(expressions in) languages of this kind can be interpreted or compiled into the native language of the underlying machine - virtual or physical" ; . api4kp-lang:MachineReadableLanguage a owl:Class ; rdfs:label "machine-readable language"@en ; owl:equivalentClass [ a owl:Class ; owl:intersectionOf ( dol:FormalLanguage [ a owl:Restriction ; owl:onProperty api4kp-lang:hasGrammar ; owl:someValuesFrom api4kp-lang:Serialization ; ] ) ; ] ; skos:definition "formal language that has a concrete syntax which allows a software agent to parse and serialize expressions in that language" ; . api4kp-lang:MarkupLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:MachineReadableLanguage , [ a owl:Restriction ; owl:onProperty api4kp-lang:supportsEmbeddedLanguage ; owl:someValuesFrom lcc-lr:Language ; ] ; rdfs:label "markup language" ; dct:source "https://www.merriam-webster.com/dictionary/markup%20language" ; skos:definition "machine-readable language that embeds another language, impacting the processing but not the semantics of that language" ; . api4kp-lang:MetaFormat a owl:Class ; rdfs:subClassOf api4kp-lang:Serialization ; rdfs:label "metaformat" ; rdfs:seeAlso "https://www.w3.org/standards/webarch/metaformats" ; skos:definition "concrete syntax that consists primarily of structural rules" ; . api4kp-lang:MetaFormatSerializableLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:MachineReadableLanguage ; rdfs:label "meta-format serializable language" ; owl:equivalentClass [ a owl:Class ; owl:intersectionOf ( api4kp-lang:MachineReadableLanguage [ a owl:Restriction ; owl:onProperty api4kp-lang:hasGrammar ; owl:someValuesFrom [ a owl:Class ; owl:intersectionOf ( api4kp-lang:Serialization [ a owl:Restriction ; owl:onProperty api4kp:dependsOn ; owl:someValuesFrom api4kp-lang:MetaFormat ; ] ) ; ] ; ] ) ; ] ; skos:definition "machine readable, serializable language that has at least one concrete syntax that is based on a meta-format" ; skos:example "any language that supports an XML based serialization, such as BPMN or RuleML" ; . api4kp-lang:MetaSyntax a owl:Class ; rdfs:subClassOf api4kp-lang:FormalGrammar ; rdfs:label "meta-syntax" ; dct:source "https://en.wikipedia.org/wiki/Metasyntax" ; skos:definition "formal grammar used to define languages that are used in the expression of formal grammars" ; skos:example "The ANTLR meta-grammar" , "The Backus Naur Form" ; . api4kp-lang:OntologyLanguage a owl:Class ; rdfs:subClassOf dol:OMSLanguage , api4kp-lang:DedicatedLanguage ; rdfs:label "ontology language" ; skos:definition "formal language dedicated to the expression of ontologies and assertional knowledge bases" ; . api4kp-lang:ParsingStructure a owl:Class ; rdfs:subClassOf dol:LinguisticEntity , [ a owl:Restriction ; owl:onProperty api4kp:conveysFormalStructure ; owl:someValuesFrom dol:LinguisticEntity ; ] , [ a owl:Restriction ; owl:onProperty api4kp:dependsOn ; owl:someValuesFrom api4kp-lang:FormalGrammar ; ] ; rdfs:label "parsing structure" ; rdfs:seeAlso "https://www.omg.org/spec/ASTM/" ; skos:definition "an internal representation that formalizes an agent's perception of the structure of some expression, according to the rules of some grammar" ; skos:note "parsing structures are the (intermediary) product of lifting operations" ; skos:scopeNote "being mainly used for internal computation, parsing structures themselves are most often ASGs whose edges and nodes represent the structure of the target expression according to the grammatical rules. Nevertheless, parsing structures themselves could be materialized using an appropriate meta-language" ; . api4kp-lang:PrescriptiveGrammar a owl:Class ; rdfs:subClassOf api4kp-lang:Grammar ; rdfs:label "prescriptive grammar" ; dct:source "https://en.wikipedia.org/wiki/Linguistic_prescription" ; skos:definition "grammar that specificies how a language should be used correctly" ; . api4kp-lang:PresentationalMarkupLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:MarkupLanguage ; rdfs:label "presentational markup language" ; skos:definition "markup language that drives the manifestation of expressions in the embedded language" ; . api4kp-lang:ProceduralMarkupLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:MarkupLanguage ; rdfs:label "procedural markup language" ; skos:definition "markup language that is imperative in nature" ; . api4kp-lang:ProgrammingLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:DedicatedLanguage , api4kp-lang:MachineExecutableLanguage ; rdfs:label "programming language" ; skos:definition "formal, executable language used in the specification of information processing tasks" ; skos:note "from a knowledge representation perspective, programming languages are designed to express algorithms" , "programming languages are usually imperative" ; . api4kp-lang:RuleLanguage a owl:Class ; rdfs:subClassOf dol:OMSLanguage , api4kp-lang:DedicatedLanguage ; rdfs:label "rule language" ; skos:definition "formal language dedicated to the expression of rules, norms and policies" ; skos:note "rule languages can be further categorized depending on the nature of the rules they can express (e.g. production, vs inference, vs deontic, etc...)" ; . api4kp-lang:SchemaLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:DedicatedLanguage , api4kp-lang:KnowledgeRepresentationAndReasoningLanguage ; rdfs:label "schema language" ; skos:definition "formal language used in the specification of (formal) grammars, schemas and metamodels" ; skos:scopeNote "the term is broader than the common denotation of '(XML) schema language'" ; . api4kp-lang:Serialization a owl:Class ; rdfs:subClassOf api4kp-lang:FormalGrammar , [ a owl:Restriction ; owl:onProperty api4kp-lang:concretizes ; owl:someValuesFrom api4kp-lang:AbstractSyntax ; ] ; rdfs:label "serialization"@en ; skos:definition "formal grammar that includes at least one rule that impacts the structural aspects of the conformant sentences, but not the semantics" ; skos:note "In computer science, abstract syntaxes are used to construct Parsers and Lexers" ; cmns-av:synonym "concrete syntax" ; . api4kp-lang:StructuralMarkupLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:MarkupLanguage ; rdfs:label "structural markup language" ; skos:definition "markup language used to define the structure of expressions in the embedded language, making them decomposable" ; . api4kp-lang:SymbolSequence a owl:Class ; rdfs:subClassOf api4kp-lang:ParsingStructure ; rdfs:label "symbol sequence" ; skos:definition "sequence of symbols reconstructed from the inscriptions on an artifact" ; . api4kp-lang:TokenSequence a owl:Class ; rdfs:subClassOf api4kp-lang:SymbolSequence , [ a owl:Restriction ; owl:onProperty dol:formalizes ; owl:someValuesFrom api4kp:SerializedKnowledgeExpression ; ] ; rdfs:label "token sequence" ; skos:definition "sequence of characters that can be segmented into atomic groups with recognizable type, function and/or interpretation (lexemes or tokens)" ; . api4kp-lang:concretizes a owl:ObjectProperty ; rdfs:subPropertyOf dol:isLinguisticallyRelatedTo ; rdfs:label "concretizes" ; rdfs:domain api4kp-lang:Serialization ; rdfs:range api4kp-lang:AbstractSyntax ; skos:definition "provides the rules to serialize ASTs of a given language into forms that can be engraved on carrier artifacts" ; . api4kp-lang:hasDelegateSublanguage a owl:ObjectProperty ; rdfs:subPropertyOf api4kp-lang:hasSublanguage ; rdfs:label "has delegate sublanguage" ; skos:definition "has a sublanguage that supports aspects that would not otherwise be supported by this language" ; . api4kp-lang:hasGrammar a owl:ObjectProperty ; rdfs:subPropertyOf cmns-col:hasArrangement ; rdfs:label "has grammar" ; rdfs:domain lcc-lr:Language ; rdfs:range api4kp-lang:Grammar ; skos:definition "has an extension set of valid sentences that is defined by the rule of the target grammar" ; . api4kp-lang:hasSublanguage a owl:ObjectProperty ; rdfs:subPropertyOf dol:isLinguisticallyRelatedTo , cmns-col:hasPart ; rdfs:label "has sublanguage" ; rdfs:domain lcc-lr:Language ; rdfs:range lcc-lr:Language ; skos:definition "has a grammar with an identifiable, closed subset of rules that define the target sub-language" ; . api4kp-lang:hasWordstock a owl:ObjectProperty ; rdfs:label "has wordstock" ; rdfs:domain lcc-lr:Language ; rdfs:range api4kp-lang:Lexicon ; skos:definition "has a set of linguistic elements that can be formed into valid sentences of the language according to the language's grammar" ; . api4kp-lang:serializes a owl:ObjectProperty ; rdfs:subPropertyOf dol:isLinguisticallyRelatedTo ; rdfs:label "serializes"@en ; rdfs:domain api4kp-lang:Serialization ; rdfs:range dol:Language ; skos:definition "provides syntactical rules to manifest sentences of the target language in forms that can be engraved on a carrier" ; . api4kp-lang:supportsEmbeddedLanguage a owl:ObjectProperty ; rdfs:subPropertyOf dol:isLinguisticallyRelatedTo ; rdfs:label "supports embedded language" ; rdfs:domain lcc-lr:Language ; rdfs:range lcc-lr:Language ; skos:definition "allows expressions in the target language to be part of expressions in this language" ; . api4kp-lang:supportsFormat a owl:ObjectProperty ; rdfs:subPropertyOf dol:isLinguisticallyRelatedTo , api4kp-lang:hasGrammar ; rdfs:label "supports format" ; rdfs:domain dol:Language ; rdfs:range api4kp-lang:MetaFormat ; skos:definition "supports a serialization that 'relies on the rules of' (=uses) the given meta-format to arrange its terms" ; . api4kp-lang:supportsSerialization a owl:ObjectProperty ; rdfs:subPropertyOf api4kp-lang:hasGrammar ; rdfs:label "supports serialization" ; rdfs:domain dol:Language ; rdfs:range api4kp-lang:Serialization ; skos:definition "comprises expressions that can be arranged according to the given concrete syntax" ; . api4kp-lang:supportsSyntax a owl:ObjectProperty ; rdfs:subPropertyOf api4kp-lang:hasGrammar ; rdfs:label "supports syntax" ; rdfs:domain dol:Language ; rdfs:range api4kp-lang:AbstractSyntax ; skos:definition "can be formalized according to the rules of the target abstract syntax" ; skos:note "it is quite rare, but not impossible, for a language to have two distinct but isomorphic (abstract) grammars" ; skos:scopeNote "if a language L supports a syntax S, and S is concretized by a concrete syntax C, then L supports serialization C" ; . api4kp-lang:syntacticallyConforms a owl:ObjectProperty ; rdfs:subPropertyOf dol:isLinguisticallyRelatedTo ; rdfs:label "syntactically conforms" ; rdfs:range api4kp-lang:Grammar ; skos:definition "follows the rules of, and thus is valid according to, some grammar" ; . api4kp-lang:usesAlphabet a owl:ObjectProperty ; rdfs:subPropertyOf dol:isLinguisticallyRelatedTo ; rdfs:label "uses alphabet" ; rdfs:range api4kp-lang:Alphabet ; skos:definition "contains symbols drawn from a given alphabet" ; cmns-av:synonym "uses character set" ; . api4kp-lang:usesAnnotationLanguage a owl:ObjectProperty ; rdfs:subPropertyOf dol:usesLanguage ; rdfs:label "uses as annotation language" ; rdfs:domain api4kp:KnowledgeExpression ; rdfs:range lcc-lr:Language ; skos:definition "contains expression fragments that are annotations, and use an annotation language as primary language" ; . api4kp-lang:usesEncoding a owl:ObjectProperty ; rdfs:subPropertyOf dol:isLinguisticallyRelatedTo ; rdfs:label "uses encoding" ; rdfs:range api4kp-lang:Encoding ; skos:definition "contains symbols encoded using a given encoding scheme" ; . api4kp-lang:usesFormat a owl:ObjectProperty ; rdfs:subPropertyOf dol:isLinguisticallyRelatedTo ; rdfs:label "uses format" ; skos:definition "uses a serialization that depends on the target meta-format" ; . api4kp-lang:usesLexicon a owl:ObjectProperty ; rdfs:subPropertyOf dol:isLinguisticallyRelatedTo ; rdfs:label "uses lexicon" ; rdfs:range api4kp-lang:Lexicon ; owl:propertyChainAxiom ( dol:usesLanguage api4kp-lang:hasWordstock ) ; skos:definition "uses terms that are defined (linguistically and semantically) in the target lexicon" ; . api4kp-lang:usesPrimaryLanguage a owl:ObjectProperty ; rdfs:subPropertyOf dol:usesLanguage ; rdfs:label "uses as primary language" ; rdfs:domain api4kp:KnowledgeExpression ; rdfs:range lcc-lr:Language ; skos:definition "is or contains an expression that, when parsed, results in a (forest of) AST, and (at least one of) the AST is structured according to the syntax of the target language" ; skos:scopeNote "the primary language of an expression E can be a named language L, or a refinement/extension of a named language that embeds some other language S, in which case E uses S as a sub-language" ; . api4kp-lang:usesProfile a owl:ObjectProperty ; rdfs:subPropertyOf dol:usesLanguage ; rdfs:label "uses profile" ; skos:definition "is or contains an expression that is valid according to the rules of a given language profile" ; . api4kp-lang:usesSerialization a owl:ObjectProperty ; rdfs:subPropertyOf api4kp-lang:syntacticallyConforms ; rdfs:label "uses serialization" ; skos:definition "is or contains a concrete expression that is concretized according to the rules of a given concrete syntax" ; skos:note "if a resource uses a serialization of a given language, that resource must be consistent with using that language" ; . api4kp-lang:usesSublanguage a owl:ObjectProperty ; rdfs:subPropertyOf dol:usesLanguage ; rdfs:label "uses as sub-language" ; rdfs:domain api4kp:KnowledgeExpression ; rdfs:range lcc-lr:Language ; skos:definition "contains an expression in the target language that is proper part of an expression in a different language" ; skos:scopeNote "If a language L embeds another language S, every expression in L can potentially contain fragments in S (e.g. DMN vs FEEL). In other words, if an expression in L embeds a fragment in S, there exist at least one expression in L that uses S as a sub-language." ; . api4kp:AbstractKnowledgeExpression a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty api4kp-lang:syntacticallyConforms ; owl:someValuesFrom api4kp-lang:AbstractSyntax ; ] ; . api4kp:ConcreteKnowledgeExpression a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty api4kp-lang:syntacticallyConforms ; owl:someValuesFrom api4kp-lang:AbstractSyntax ; ] , [ a owl:Restriction ; owl:onProperty api4kp-lang:syntacticallyConforms ; owl:someValuesFrom api4kp-lang:Serialization ; ] ; . api4kp:EncodedKnowledgeExpression a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty api4kp-lang:syntacticallyConforms ; owl:someValuesFrom api4kp-lang:AbstractSyntax ; ] , [ a owl:Restriction ; owl:onProperty api4kp-lang:syntacticallyConforms ; owl:someValuesFrom api4kp-lang:Serialization ; ] , [ a owl:Restriction ; owl:onProperty api4kp-lang:usesAlphabet ; owl:someValuesFrom api4kp-lang:Alphabet ; ] , [ a owl:Restriction ; owl:onProperty api4kp-lang:usesEncoding ; owl:someValuesFrom api4kp-lang:Encoding ; ] ; . api4kp:SerializedKnowledgeExpression a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty api4kp-lang:syntacticallyConforms ; owl:someValuesFrom api4kp-lang:AbstractSyntax ; ] , [ a owl:Restriction ; owl:onProperty api4kp-lang:syntacticallyConforms ; owl:someValuesFrom api4kp-lang:Serialization ; ] , [ a owl:Restriction ; owl:onProperty api4kp-lang:usesAlphabet ; owl:someValuesFrom api4kp-lang:Alphabet ; ] ; . lcc-lr:ArtificialLanguage a owl:Class ; rdfs:subClassOf api4kp-lang:ConstructedLanguage ; . lcc-lr:Language a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty api4kp-lang:hasGrammar ; owl:someValuesFrom api4kp-lang:Grammar ; ] , [ a owl:Restriction ; owl:onProperty api4kp-lang:hasWordstock ; owl:someValuesFrom api4kp-lang:Lexicon ; ] ; skos:example "Contemporary Italian, as of 2017, as established by the Italian 'Accademia della Crusca'" , "The 2nd officially released version of the Ontology Web Language" ; skos:note "The extension of a language is the class of sentences that is defined by the grammar of the language, using the supported lexicon/a" ; skos:scopeNote "in API4KP languages are knowledge, to the extent that they can be learned and used by agents" ; .