/* ; EDI_semantics.wsml ; ; Terms needed for ontologizing semantics of EDI systems ; ; douglas foxvog ; October 2006 */ wsmlVariant _"http://www.wsmo.org/wsml/wsml-syntax/wsml-rule" namespace {_"http://tripcom.org/ontologies/EDI/EDI_Semantics#", edis _"http://tripcom.org/ontologies/EDI/EDI_Semantics#", edi _"http://tripcom.org/ontologies/EDI/EDI_Format#", scp _"http://tripcom.org/ontologies/EDI/SubcomponentPosition#", dc _"http://purl.org/dc/elements/1.1#" } ontology _"http://tripcom.org/ontologies/EDI/EDI_Semantics" nonFunctionalProperties dc#title hasValue "EDI_semantics.wsml" dc#subject hasValue "Ontologizing semantics of EDI systems" dc#description hasValue "Terms needed for ontologizing semantics of EDI systems" dc#contributor hasValue { _"http://foxvog.org/doug"} dc#date hasValue "2007-04-18" dc#type hasValue _"http://www.wsmo.org/2004/d2/v1.0/#ontologies" dc#format hasValue "text/plain" dc#language hasValue "en-US" dc#rights hasValue _"http://www.deri.org/privacy.html" version hasValue "$Revision: 1.13 $" endNonFunctionalProperties importsOntology _"http://tripcom.org/ontologies/EDI/EDI_Format" concept ComponentTemplate // subConceptOf {cyc#StructuredInformationSource, cyc#ProgramObject} nonFunctionalProperties dc#description hasValue "The collection of all templates for StructuredInformationSources." endNonFunctionalProperties concept ComponentTemplate_Matching subConceptOf ComponentTemplate nonFunctionalProperties dc#description hasValue "The collection of all templates for StructuredInformationSources for which the generated assertion must match one already in the knowledge base. For example, if the generated assertion is (customerNumber CUSTOMER STRING1) and the statement (customerNumber WilliamGates STRING1) is in the database, then CUSTOMER is treated as equivalent to William Gates." endNonFunctionalProperties relation componentOfType /2 nonFunctionalProperties dc#description hasValue "componentOfType(STRUCTURE, CONCEPT) means that instantiations of STRUCTURE [an instance of edi#DataStructure] represent instances of the concept CONCEPT." dc#relation hasValue componentOfTypeRange endNonFunctionalProperties axiom componentOfTypeRange definedBy componentOfType(?STRUCTURE, ?TYPE) implies ?STRUCTURE memberOf edi#DataStructure. relation subComponentOfType /3 nonFunctionalProperties dc#description hasValue "subComponentOfType(STRUCTURE, N, CONCEPT) means that instantiations of the Nth component of STRUCTURE [an instance of edi#DataStructure] represent instances of the concept CONCEPT." dc#relation hasValue subComponentOfTypeRange endNonFunctionalProperties axiom subComponentOfTypeRange definedBy subComponentOfType(?STRUCTURE, ?NUM, ?TYPE) implies ?STRUCTURE memberOf edi#DataStructure and ?NUM memberOf _integer. relation componentOfSubtype /2 nonFunctionalProperties dc#description hasValue "componentOfSubtype(STRUCTURE, CONCEPT) means that instantiations of STRUCTURE [an instance of edi#DataStructure] represent subconcepts of the concept CONCEPT." dc#relation hasValue componentOfSubtypeRange endNonFunctionalProperties axiom componentOfSubtypeRange definedBy componentOfSubType(?STRUCTURE, ?TYPE) implies ?STRUCTURE memberOf edi#DataStructure. relation subComponentOfSubtype /3 nonFunctionalProperties dc#description hasValue "subComponentOfSubtype(STRUCTURE, N, CONCEPT) means that instantiations of the Nth component of STRUCTURE [an instance of edi#DataStructure] represent subconcepts of the concept CONCEPT." dc#relation hasValue subComponentOfSubtypeRange endNonFunctionalProperties axiom subComponentOfSubtypeRange definedBy subComponentOfSubtype(?STRUCTURE, ?NUM, ?TYPE) implies ?STRUCTURE memberOf edi#DataStructure and ?NUM memberOf _integer. relation componentOfEncodedType ( ofType edi#DataStructure, ofType _integer) nonFunctionalProperties dc#description hasValue "componentOfEncodedType(STRUCTURE, N) means that instantiations of STRUCTURE [an instance of edi#DataStructure] represent instances of the concept encoded in its Nth component." endNonFunctionalProperties relation subComponentRelationArity ( ofType edi#DataStructure, ofType _integer, ofType _integer) nonFunctionalProperties dc#description hasValue "subComponentRelationArity (STRUCTURE, N, ARITY) means that instantiations of the Nth subcomponent of STRUCTURE [an instance of edi#DataStructure] represent relations of arity N." endNonFunctionalProperties relation subComponentSubrelationOf /3 // ( ofType edi#DataStructure, ofType _integer, ofType cyc#Predicate) nonFunctionalProperties dc#description hasValue "subComponentSubrelationOf (STRUCTURE, N, RELATION) means that instantiations of the Nth subcomponent STRUCTURE [an instance of edi#DataStructure] represent relations which are subrelations of RELATION." dc#relation hasValue subComponentSubrelationOfRange endNonFunctionalProperties axiom subComponentSubrelationOfRange definedBy componentSubrelationOf (?STRUCTURE, ?N, ?RELATION) implies ?STRUCTURE memberOf edi#DataStructure // and // ?RELATION memberOf cyc#Predicate // Not valid for WSML. and ?N memberOf _integer and N > 0. concept ComponentTemplate nonFunctionalProperties dc#relation hasValue {templateRelation, templateArg1, templateArg2, templateArg3, templateSubcomponentMustBeOfType, templateSubcomponentMustBeOfSubType } endNonFunctionalProperties templateForComponent ofType edi#DataStructure nonFunctionalProperties dc#description hasValue "``templateForComponent hasValue INFO'' means that the current ComponentTemplate is the template for the edi#DataStructure INFO." endNonFunctionalProperties // INFO should also be allowed to be an instance of InformationBearingThing templateForNthInstance ofType _integer nonFunctionalProperties dc#description hasValue "``templateForNthInstance hasValue N'' means that the current ComponentTemplate is only applicable for the Nth instance (within the smallest subsuming data structure) of the component to which it is applied." endNonFunctionalProperties relation templateRelation /2 nonFunctionalProperties dc#description hasValue "templateRelation(TEMPLATE, PREDICATE) means that an instantiation of the ComponentTemplate TEMPLATE expresses a statement which can be expressed with PREDICATE as its attribute or relation." dc#relation hasValue templateRelation_Range endNonFunctionalProperties axiom templateRelation_Range definedBy templateRelation(?TEMPLATE, ?PREDICATE) implies // ?PREDICATE memberOf cyc#Predicate // Not valid for WSML. // and ?TEMPLATE memberOf ComponentTemplate. concept ComponentTemplate templateRelationEncoded ofType scp#FormulaArgPosition nonFunctionalProperties dc#description hasValue "``templateRelationEncoded hasValue POSITION'' means that the current ComponentTemplate expresses a statement which can be expressed with the predicate encoded in the specified POSITION as its attribute or relation." endNonFunctionalProperties templateArg1Encoded ofType scp#FormulaArgPosition nonFunctionalProperties dc#description hasValue "``templateArg1Encoded hasValue POSITION'' means that the an instantiation of ComponentTemplate expresses a statement which can be expressed with a predicate specified using templateRelation and its first argument being encoded in the specified position of the data structure." endNonFunctionalProperties templateArg2Encoded ofType scp#FormulaArgPosition templateArg3Encoded ofType scp#FormulaArgPosition templateArg1Value ofType scp#FormulaArgPosition nonFunctionalProperties dc#description hasValue "``templateArg1Value hasValue POSITION'' means that the an instantiation of ComponentTemplate expresses a statement which can be expressed with a predicate specified using templateRelation and its first argument being the value present in the specified position of the data structure." endNonFunctionalProperties templateArg2Value ofType scp#FormulaArgPosition templateArg3Value ofType scp#FormulaArgPosition templateSubcomponentMustBeRelation ofType _integer nonFunctionalProperties dc#description hasValue "``templateSubcomponentMustBeRelation hasValue N'' means that for the ComponentTemplate TEMPLATE to be used, the Nth slot of its component must be a relation." endNonFunctionalProperties relation templateArg1 /2 nonFunctionalProperties dc#description hasValue "templateArg1(TEMPLATE, VALUE) means that an instantiation of the ComponentTemplate TEMPLATE expresses a statement which can be expressed with the relation specified using templateRelation and with VALUE as its first argument." dc#relation hasValue templateArg1_Range endNonFunctionalProperties axiom templateArg1_Range definedBy templateArg1(?TEMPLATE, ?VALUE) implies ?TEMPLATE memberOf ComponentTemplate. relation templateArg2 /2 nonFunctionalProperties dc#description hasValue "templateArg2(TEMPLATE, VALUE) means that an instantiation of the ComponentTemplate TEMPLATE expresses a statement which can be expressed with the relation specified using templateRelation and with VALUE as its second argument." dc#relation hasValue templateArg2_Range endNonFunctionalProperties axiom templateArg2_Range definedBy templateArg2(?TEMPLATE, ?VALUE) implies ?TEMPLATE memberOf ComponentTemplate. relation templateArg3 /2 nonFunctionalProperties dc#description hasValue "(templateArg3(TEMPLATE, VALUE) means that an instantiation of the ComponentTemplate TEMPLATE expresses a statement which can be expressed with the relation specified using templateRelation and with VALUE as its third argument." dc#relation hasValue templateArg3_Range endNonFunctionalProperties axiom templateArg3_Range definedBy templateArg3(?TEMPLATE, ?VALUE) implies ?TEMPLATE memberOf ComponentTemplate. relation templateSubcomponentMustBeOfType /3 nonFunctionalProperties dc#description hasValue "(templateSubcomponentMustBeOfType(TEMPLATE, N, TYPE) means that for the ComponentTemplate TEMPLATE to be used, the Nth slot of its component must be an instance of the concept, TYPE." dc#relation hasValue templateSubcomponentMustBeOfType_Range endNonFunctionalProperties axiom templateSubcomponentMustBeOfType_Range definedBy templateSubcomponentMustBeOfType(?TEMPLATE, ?N, ?TYPE) implies ?TEMPLATE memberOf ComponentTemplate. relation templateSubcomponentMustBeOfSubType /3 nonFunctionalProperties dc#description hasValue "(templateSubcomponentMustBeOfSubType(TEMPLATE, N, TYPE) means that for the ComponentTemplate TEMPLATE to be used, the Nth slot of its component must be a subConcept of the concept, TYPE." dc#relation hasValue templateSubcomponentMustBeOfSubType_Range endNonFunctionalProperties axiom templateSubcomponentMustBeOfSubType_Range definedBy templateSubcomponentMustBeOfSubType(?TEMPLATE, ?N, ?TYPE) implies ?TEMPLATE memberOf ComponentTemplate. relation directlyEncoded (ofType edi#DataStructure, ofType _integer) nonFunctionalProperties dc#description hasValue "directlyEncoded(STRUCTURE, N) means that the meaning of the Nth term of an instantiation of the referenced data structure is taken to be the meaning of the component which fills that term. This is the normal case. Other possibilities exist: for example, if the meaning of the filling component is a class, the meaning of the term filled by the component could be an instance of that class or if the meaning of the filling component is a text string, the meaning of the term filled by the component could be an individual which has that string as its name." endNonFunctionalProperties relation hasSameMeaningAs (ofType edi#DataStructure, ofType scp#FormulaArgPosition, ofType scp#FormulaArgPosition) nonFunctionalProperties dc#description hasValue "hasSameMeaningAs(TEMPLATE, POSITION1, POSITION2) means that the meaning of the term in the first indicated position of an instantition of the current data structure is identical with the meaning of the term in the second indicated position. The output of the template should use the same term for both." endNonFunctionalProperties concept CodeSet // subConceptOf cyc#IndexedInformationSource nonFunctionalProperties dc#description hasValue "The collection of all code sets which are mappings for the meanings of codes." endNonFunctionalProperties relation encodedAs/3 nonFunctionalProperties dc#relation hasValue encodedAs_Arg2Range dc#description hasValue "encodedAs(TERM, CODESET, CODE) means that the specified term is encoded in the specified codeset as CODE. This allows WSML to handle owlSameAs for concepts and relations." endNonFunctionalProperties axiom encodedAs_Arg2Range definedBy encodedAs(?TERM, ?CODESET, ?VALUE) implies ?CODESET memberOf CodeSet. relation encodedAsInverse/3 nonFunctionalProperties dc#relation hasValue encodedAsInverse_Arg2Range dc#description hasValue "encodedAsInverse(RELATION, CODESET, CODE) means that the inverse of the specified binary relation is encoded in the specified codeset as CODE. The arguments should be reversed when a statement is generated from the template." endNonFunctionalProperties /* !! The following argument restriction cannot be expressed in WSML: axiom encodedAsInverse_Arg1Range definedBy encodedAsInverse(?RELATION, ?CODESET, ?VALUE) implies ?RELATION memberOf cyc#BinaryRelation. */ axiom encodedAsInverse_Arg2Range definedBy encodedAs(?RELATION, ?CODESET, ?VALUE) implies ?CODESET memberOf CodeSet. concept MultiCodeSet subConceptOf CodeSet nonFunctionalProperties dc#description hasValue "The collection of all code sets which are mappings for the meanings of different parts of a code. The different parts of the code may be of fixed or variable length, may use different characters (e.g., letters vs. numbers), or may be separated by special characters. For example a MultiCodeSet for fonts might have an alphabetic part designating the font style, and a numeric part designating the size. A MultiCodeSet may have the first few characters indicate the code set which is used to determine the meaning of the other part of the code." endNonFunctionalProperties multiCodeSetSeparator ofType _string // should be of type Character, but it isn't a datatype nonFunctionalProperties dc#description hasValue "``multiCodeSetSeparator hasValue CHAR'' means that a separator between codes in the current MultiCodeSet is the character CHAR." endNonFunctionalProperties concept edi#DataStructure componentIsBinaryPredicate ofType _boolean nonFunctionalProperties dc#description hasValue "``componentIsBinaryPredicate hasValue true'' means that the meaning of the component is a binary predicate." endNonFunctionalProperties usesCodeSet ofType CodeSet nonFunctionalProperties dc#description hasValue "``usesCodeSet hasValue CODE_SET'' means that information in the current edi#DataStructure is encoded according to the mappings specified in CODE_SET, an instance of CodeSet." endNonFunctionalProperties usesMultiCodeSet ofType MultiCodeSet nonFunctionalProperties dc#description hasValue "``usesMultiCodeSet hasValue MULTI_CODE_SET'' means that information in the current edi#DataStructure is encoded according to the mappings specified in MULTI_CODE_SET, an instance of MultiCodeSet." dc#relation hasValue nthSubCodeSet dc#relation hasValue nthSubCodeSetCharacterType endNonFunctionalProperties stringValuedComponent ofType _boolean nonFunctionalProperties dc#description hasValue "``stringValuedComponent hasValue true'' means that the value of the component is a text string." endNonFunctionalProperties componentIsBinaryPredicate ofType _boolean nonFunctionalProperties dc#description hasValue "``componentIsBinaryPredicate hasValue true'' means that the value of the component is a binary predicate." endNonFunctionalProperties integerValuedComponent ofType _boolean nonFunctionalProperties dc#description hasValue "``integerValuedComponent hasValue true'' means that the value of the component is an integer." endNonFunctionalProperties decimalValuedComponent ofType _boolean nonFunctionalProperties dc#description hasValue "``decimalValuedComponent hasValue true'' means that the value of the component is a decimal number." endNonFunctionalProperties stringValuedSubcomponent ofType _integer nonFunctionalProperties dc#description hasValue "``stringValuedSubcomponent hasValue N'' means that the value of the Nth subcomponent is a text string." endNonFunctionalProperties integerValuedSubcomponent ofType _integer nonFunctionalProperties dc#description hasValue "``integerValuedSubcomponent hasValue N'' means that the value of the Nth subcomponent is an integer." endNonFunctionalProperties decimalValuedSubcomponent ofType _integer nonFunctionalProperties dc#description hasValue "``decimalValuedSubcomponent hasValue N'' means that the value of the Nth subcomponent is a decimal number." endNonFunctionalProperties relation subcomponentUsesCodeSet (ofType edi#DataStructure, ofType PositiveInteger, ofType CodeSet) nonFunctionalProperties dc#description hasValue "subcomponentUsesCodeSet (STRUCTURE ,N, CODE_SET) means that information in Nth subcomponent of the edi#DataStructure, STRUCTURE) is encoded according to the mappings specified in CODE_SET, an instance of CodeSet." endNonFunctionalProperties relation subcomponentUsesEncodedCodeSet (ofType edi#DataStructure, ofType PositiveInteger, ofType PositiveInteger) nonFunctionalProperties dc#description hasValue "subcomponentUsesEncodedCodeSet (STRUCTURE, N1, N2) means that information in N1st subcomponent of the edi#DataStructure, STRUCTURE) is encoded according to the mappings specified in the CodeSet encoded by the N2nd subcomponent of the data structure. Codes from this code set are examined first. Only if the code at this point in the structure is not in the specified code set, is the default code set(s) for this component used." endNonFunctionalProperties // ??? should there be an EXCLUSIVE version of this? I.e., one that would reject any codes not specified by the encoded code set (if specified)? relation nthSubCodeSet (ofType MultiCodeSet, ofType _integer, ofType CodeSet) nonFunctionalProperties dc#description hasValue "nthSubCodeSet (MULTI_CODE_SET, N ,CODE_SET) means that the Nth part of the multi-code in the current edi#DataStructure is a code from the specified instance of CodeSet." endNonFunctionalProperties relation nthCodeSetCharacterType (ofType MultiCodeSet, ofType _integer, ofType edi#CharacterType) nonFunctionalProperties dc#description hasValue "nthCodeSetCharacterType (MULTI_CODE_SET, N, CHAR_TYPE) means that the Nth code in MULTI_CODE_SET, an instance of #$MultiCodeSet, are restricted to codes formed from characters of CHAR_TYPE. Typical values of CHAR_TYPE are Numeral, UpperCaseLetter, and Letter-Alphabetic." endNonFunctionalProperties relation functionalPredicateEncodes /3 nonFunctionalProperties dc#description hasValue "functionalPredicateEncodes(DATA_STRUCTURE, FA_POSITION, PRED) means that if an instantition of the given argument position of DATA_STRUCTURE stores the data value VAL and (PRED THING VAL) then the value encoded by the instantiation is THING." dc#relation hasValue {functionalPredicateEncodesRange, functionalPredicateEncodesRange2} endNonFunctionalProperties axiom functionalPredicateEncodesRange definedBy functionalPredicateEncodes(?DS, ?FAP, ?PRED) implies ?DS memberOf edi#DataStructure. axiom functionalPredicateEncodesRange2 definedBy functionalPredicateEncodes(?DS, ?FAP, ?PRED) implies ?FAP memberOf scp#FormulaArgPosition.