<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="xsl-for-template-specification.xsl"?>
<TemplateSpecification xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xml-schema-for-template-specification.xsd">
	<TemplateName>FunctionalMappingOf3ExpressReals</TemplateName>
	<defaultRdsId>RFA44A978EF284CD685BFBF1EA2ACA2E5</defaultRdsId>
	<Status>UPDATED MAR2023</Status>
	<TIPPredicate>equationWithThreeRealsInputs</TIPPredicate><Description><![CDATA[Equation with three instances of ExpressReal as inputs and one ExpressReal as result.
]]></Description>
	<Example>In the formula for mass liquid flow: m=C*A*sqrt(2*Density*(Pupstream-Pdownstream)) there are three variables, a Density of 1237 kg/m3, a Pupstream of 111.8 kPa, and a Pdownstream of 110.3 kPa, where the result m is 65.9 kg/s.</Example>
	<Notes>At instantiation of this template it is mandatory to add meta:valEffectiveDate with the dateTime that the represented information became effective.</Notes>
	<SubClassOf>TemplateForFunctionOfClass</SubClassOf><Definition>[hasInput1], [hasInput2] and [hasInput3] are mapped to [hasFunction] resulting in [hasResult]</Definition><ScopeNote>The inputs may come for query results. Actually this template defies the principle that ISO 15926 deals with facts only. Here the fact is being calculated instead of just recorded. Instead of this template use another one with the result only as instance of dm:Property or dm:IndirectProperty.</ScopeNote><AdminNote/><LiftedAndLoweredGraph>CL-FUNC-200-20220111.png</LiftedAndLoweredGraph>
	<LiftedTemplate>
	    	
	    	<LiftedTemplateElements><Ref>1</Ref>
	    		<URI>dm:ArithmeticNumber</URI>
	    	</LiftedTemplateElements>
	    	<LiftedTemplateElements><Ref>2</Ref>
	    		<URI>dm:ArithmeticNumber</URI>
	    	</LiftedTemplateElements><LiftedTemplateElements><Ref>3</Ref><URI>dm:ArithmeticNumber</URI></LiftedTemplateElements>
	<LiftedTemplateElements><Ref>4</Ref><URI>dm:ArithmeticNumber</URI></LiftedTemplateElements><LiftedTemplateElements><Ref>5</Ref><URI>dm:ClassOfFunctionalMapping</URI></LiftedTemplateElements><LiftedTemplateElements><Ref>6</Ref><URI>dm:MultidimensionalNumber</URI></LiftedTemplateElements><LiftedTemplateElements><Ref>7</Ref><URI>dm:FunctionalMapping</URI></LiftedTemplateElements><LiftedTemplateElements><Ref>8</Ref><URI>dm:Classification</URI></LiftedTemplateElements></LiftedTemplate>
	<PropertiesOfLoweredTemplate>
    		
    		
    		
  	<TemplateSignature><RoleNo>1</RoleNo><RoleName>hasInput1</RoleName><RoleObjectType>dm:ArithmeticNumber</RoleObjectType><RoleExample/></TemplateSignature><TemplateSignature><RoleNo>2</RoleNo><RoleName>hasInput2</RoleName><RoleObjectType>dm:ArithmeticNumber</RoleObjectType><RoleExample/></TemplateSignature><TemplateSignature><RoleNo>3</RoleNo><RoleName>hasInput3</RoleName><RoleObjectType>dm:ArithmeticNumber</RoleObjectType><RoleExample/></TemplateSignature><TemplateSignature><RoleNo>4</RoleNo><RoleName>hasResult</RoleName><RoleObjectType>dm:ArithmeticNumber</RoleObjectType><RoleExample>ID to be generated automatically</RoleExample></TemplateSignature><TemplateSignature><RoleNo>5</RoleNo><RoleName>hasFunction</RoleName><RoleObjectType>dm:ClassOfFunctionalMapping</RoleObjectType><RoleExample>use ID from RDL</RoleExample></TemplateSignature></PropertiesOfLoweredTemplate>
	<LoweredTemplateOWLcode>
    		<![CDATA[
		]]>
 	 </LoweredTemplateOWLcode>
	<LoweredTemplateFOLcode><![CDATA[FunctionalMappingOf3ExpressReals(hasInput1, hasInput2, hasInput3, hasResult, hasFunction) <-> 
ArithmeticNumber (hasInput1) &
ArithmeticNumber (hasInput2) &
ArithmeticNumber (hasInput3) &
ArithmeticNumber (hasResult) &
ClassOfFunctionalMapping(hasFunction) &
exists u1 exists u2(
      MultidimensionalNumber(u1) &
      hasElement1(u1, hasInput1) &
      hasElement2(u1, hasInput2) &
      hasElement3(u1, hasInput3) &
      FunctionalMappingTriple(u2, u1, hasResult) &
      ClassificationTemplate(u2, hasFunction)) .]]>
</LoweredTemplateFOLcode>

<LoweredTemplateInstanceListing>
<![CDATA[GENERIC DEFINITION

tpl:FunctionalMappingOf3ExpressReals
      rdfs:subClassOf dm:Template ;
      rdfs:isDefinedBy  tpl:CL-FUNC-200.xml ;
      tpl:hasInput1 xsd:decimal  ;
      tpl:hasInput2 xsd:decimal  ;
      tpl:hasInput3 xsd:decimal  ;
      tpl:hasResult xsd:decimal  ;
      tpl:hasFunction dm:ClassOfFunctionalMapping ;
      meta:valEffectiveDate xsd:dateTime .

# EXAMPLE - In the formula for mass liquid flow: m=C*A*sqrt(2*Density*(Pupstream-Pdownstream)) there are three variables, a Density of 1237 kg/m3, a Pupstream of 111.8 kPa, and a Pdownstream of 110.3 kPa, where the result m is 65.9 kg/s.

ex:70fe17ad-0e5c-4679-b129-e4a8e8143416
      rdf:type tpl:FunctionalMappingOf3ExpressReals ;
      tpl:hasInput1 "1237"^^xsd:decimal ;
      tpl:hasInput2 "111.8"^^xsd:decimal ;
      tpl:hasInput3 "110.3"^^xsd:decimal ;
      tpl:hasResult "65.9"^^xsd:decimal ;
      tpl:hasFunction rdl:RDS2228370 ; # MASS FLOW EQUATION
      meta:valEffectiveDate "2021-08-14T16:38:00Z"^^xsd:dateTime .
]]>
</LoweredTemplateInstanceListing>
</TemplateSpecification>
