| Optimization Services general Language (OSgL) Click to see or download the OSgL XML Schema -> OSgL.xsd [stable]  
 OSgL (general) contains definitions of general elements and data types used by all other OSxL schemas. Thus OSgL is usually included in  the beginning of another OSxL schema through the  statement:  <xs:include schemaLocation="OSgL.xsd"/>  For  example, the following figure shows the <intVector> data type in OSgL that is used in  OSiL for defining a vector of row or column indexes.  
 <xs:complexType name="intVector"> <xs:choice>
 <xs:element name="base64BinaryData" type="base64BinaryData"/>
 <xs:element name="el" maxOccurs="unbounded">
 <xs:complexType>
 <xs:simpleContent>
 <xs:extension base="xs: int  ">
 <xs:attribute name="mult" type="xs:positiveInteger" use="optional" default="1"/>
 <xs:attribute name="incr" type="xs:int" use="optional" default="0"/>
 </xs:extension>
 </xs:simpleContent>
 </xs:complexType>
 </xs:element>
 </xs:choice>
 </xs:complexType>
 An <intVector> may have one or more <el> children or a <base64BinaryData> child if the data in the <el> elements are compressed. The  compression is explained in detail in the LPFML paper. Each <el> element has a mult attribute (for multiplicity) with a  default value 1 and an incr attribute (for increment) with a default value 0. For example  <el>0</el><el>0</el><el>0</el><el>0</el><el>0</el>  and  <el>0</el><el>1</el><el>2</el><el>3</el><el>4</el> is more concisely expressed as  <el mult="5">0</el> and <el mult="5" incr="1">0</el> There is also a similar <doubleVector> data type defined in OSgL. In the following table, we list some common data types defined in OSgL.  
    
      | Type Name | Brief Description  |  
      | intVector | vector of integers |  
      | doubleVector | vector of doubles |  
      | elType | el element with a name and a value attribute and a description    text |  
      | mapType | a sequence of  el elements (name-value pairs) |  
      | base64Binary | compression of a sequence of data usually expressed    in el elements; see the LPFML paper [53] |  
      | sparseVector | sparse vector with an idx    array and a nonz value array |  
      | listMatrix       | typical sparse matrix storage type with a start array, a choice of rowIdx    or colIdx array, and a nonzero value    array |  
      | mpsMatrix | MPS style sparse matrix storage with a sequence of col (or row) elements; each col (or row) element is in turn a    sequence of row (or col) elements |  
      | matrixMarket | common sparse matrix storage used in linear algebra    with a sequence of el elements; each element is a double value (for a matrix entry) with a row and  a col attribute (for matrix indexes) |  
      | xmlData
 | a sequence of any data |  In The following table, we list typical function-related elements. Many of  these functions are distribution functions. All the distribution functions can  have an optional cdf boolean attribute which is false by default. If true, the distribution  function is a cumulative distribution function. If false, the distribution is a  probability distribution function (pdf, for continuous distributions) or  probability mass function (pmf, for discrete distributions). Many of these  functions have parameters which are expressed as element attributes. The  distribution functions are widely used in the OSiL extension to stochastic  programming.  
    
      | Function Name | Brief Description  |  
      | userFunctions | a sequence of userFunction    elements; each userFunction element contains one OSnLNode    as an expression tree root for expressing a function |  
      | userVariables | a sequence of userVariable    elements; each userVariable element contains one OSnLNode    as an expression tree root for expressing a user defined variable |  
      | discreteUniform | Discrete Uniform function with a parameter N  |  
      | bernoulli  | Bernoulli function with a parameter p  |  
      | binomial | Binomial function with parameters N, p  |  
      | hypergeometric | Hypergeometric function with parameters N, M, n  |  
      | poisson | Poisson function with a parameter lamda  |  
      | geometric | Geometric function with a parameter p  |  
      | negativeBinomial | Negative Binomial function with a parameter p, r  |  
      | empiricalDiscrete | Empirical Discrete function with a sequence of el elements; each el element is    a double value and has a prob attribute |  
      | empiricalContinuous | Empirical Continuous function with a sequence of el elements; each el element    contains one OSnLNode as an expression tree root for expressing a function    and a from and a to attribute    for the function domain |  
      | uniform | Uniform function with parameters a, b  |  
      | normal  | Normal function with parameters mu, sigma  |  
      | stdNormal | Standard normal function |  
      | exponential | Exponential function with a parameter lamda  |  
      | weibull | Weibull function with parameters location, scale, shape  |  
      | erlang | Erlang function with parameters lamda, n  |  
      | gamma | Gamma function with parameters location, scale, shape  |  
      | beta | Beta function with parameters degree1, degree2  |  
      | betaGeneral | General Beta function with parameters degree1, degree2, min, max  |  
      | lognormal | Lognormal function with parameters mu, sigma  |  
      | cauchy | Cauchy function with parameters location, scale  |  
      | t  | Student T function with a parameter degree  |  
      | chiSquare | Chi Square function with a parameter degree  |  
      | f | F function with parameters degree1, degree2  |  
      | logistic  | Logistic function with parameters mu and beta  |  
      | logLogistic | Log Logistic function with parameters mu and beta  |  
      | logarithmic | Logarithmic function with parameters a, b  |  
      | pareto | Pareto function with parameters shape and scale  |  
      | rayleigh | Rayleigh function with a parameter beta  |  
      | pert | Pert function with parameters a, c, b  |  
      | triangular | Triangular function with parameters a, c, b  |  
      | multivariateDiscrete | Multivariate Discrete function with a sequence of 2    or more scenario elements; each scenario is a sequence of 2 or more el elements of double values |  
      | multinomial | Multinomial function with a parameter N and a sequence of el    elements of probability values  |  
      | bivariateNormal | Bivariate Normal function    with parameters mu1, sigma1, mu2, sigma2, rho  |  
      | multivariateNormal | Multivariate Normal function with a sequence of 3 or more mu    elements and a covariance matrix of matrixMarket    type |  
      | linearTransformation | Linear transformation function with a numberRows and a numberColumns    attribute; it contains one constants element of    type doubleVector, one matrix    element of type matrixMarket, and a randomVariables    element  to indicate a multivariate    distribution |  Elements of similar types can be  grouped and referenced together. For example the discreteDistributionGroup group shown in the following figure is used to group all the discrete distribution  functions in the above table. 
 <xs:group name="discreteDistributionGroup"> <xs:choice>
 <xs:element ref="empiricalDiscrete"/>
 <xs:element ref="discreteUniform"/>
 <xs:element ref="bernoulli"/>
 <xs:element ref="binomial"/>
 <xs:element ref="hypergeometric"/>
 <xs:element ref="poisson"/>
 <xs:element ref="geometric"/>
 <xs:element ref="negativeBinomial"/>
 </xs:choice>
 </xs:group>
 A continuousDistributionGroup is similarly defined. The more  general distributionGroup is a group of discreteDistributionGroup  and continuousDistributionGroup as shown in the following figure.  
 <xs:group name="distributionGroup"> <xs:choice>
 <xs:group ref="discreteDistributionGroup"/>
 <xs:group ref="continuousDistributionGroup"/>
 </xs:choice>
 </xs:group>
   
 Links: Click to see or download the OSgL XML Schema -> OSgL.xsd  
 |