Open l-emele opened 2 years ago
@christian-rli : I assigned you to this issue as most of the individuals are related to software and data.
@christian-rli @Ludee : Do you already have some ideas for this issue?
We haven't gotten into this yet @l-emele . As @Ludee is getting into ontology deveopment now however, I think that this might be a good issue to begin with. I put it on our internal agenda.
@Ludee : I assigned this issue now to you. Do you already have some proposals for definitions of these individuals?
@OpenEnergyPlatform/oeo-domain-expert-energy-modelling @OpenEnergyPlatform/oeo-domain-expert-linked-open-data : Any suggestions for definitions? Maybe at least for some of these individuals? We do not necessarily have to implement all at once...
I think, that some of the individuals have the wrong type. I would describe c++
, fortran
, php
, python
etc not as software framework
[^1] but as programming language
[^2]:
[^1]: A software framework is a Software that is generic and can be adapted to a specific application. [^2]: IAO_0000025: A language in which source code is written that is intended to be executed/run by a software interpreter. Programming languages are ways to write instructions that specify what to do, and sometimes, how to do it. (Not yet imported from IAO into OEO.
I will start collecting good definitions now. Not sure how to proceed with the import from IAO.
Thanks for the help @l-emele.
I rushed in the implementation because I thought individuals
are not the same as classes
.
I added a copy of the definitions in the table above.
Another good option would be separate issues for each type.
Thank you very much for your proposals. They are a great start for discussion. Some comments:
abc is an analytical approach and a system design approach that xyz: These definitions break mono-hierarchy. As we dont't have system design approach
in the OEO, I suggest to shorten these definitions to abc is an analytical approach that xyz. Apart from that, I like the definitions of the analytical approach
individuals, as they also show the relations to other things. However, I am asking myself whether these individuals in fact subclasses. @stap-m @jannahastings , what do you think?
The individuals true
and false
are fine to me.
When thinking about the data formats, I am asking myself whether we have here more like a subclass hierarchy. Also I think, we have to distinguish between a data format
and a file
. And then something like file 'has data format' some 'data format'
and `' csv file' 'has data format' some 'csv file format'. What about introducing the following subclass structure:
data format
: A data format is a data descriptor that describes in which format the data is encoded. (As it is currently implemented._
file format
: A file format is a data format that describes in which format data is encoded in a file. text file format
: A text file format is a file format that is structured as a sequence of lines of electronic text.
delimiter separated file format
: A delimiter separated file format is a text file format that uses delimiter-separated values (also DSV) to store two-dimensional arrays of data by separating the values in each row with specific delimiter characters.comma separated file format
: A comma separated file format is a delimiter separated file format that uses comma (,) as delimiter.binary file format
: A binary file format is a file format that is not a text format. [^1]
GAMS data exchange format
: A GAMS data exchange format is a binary file format used by General Algebraic Modeling System (GAMS).microsoft excel workbook (xls)
: .tbdmicrosoft excel workbook (xlsx)
: tbd
The file
classes than can be implemented as equivalent classes, e.g. A character separated value file is a file that has a character separated file format with the axiom: 'comma separated value file' 'Equivalent To' some (file and 'has data format' some 'comma separated file format'
. However, for that we need to define or import a general file
class.
Additionally I suggest csv file
as alternative term to comma separated file
and csv
as alternative term to both comma separated file
and comma separated file format
[^1]: Derived from https://en.wikipedia.org/wiki/Binary_fileRegarding the solvers: I like the definition of gurobi
: Gurobi is a solver to solve numerical programming tasks. ...
Others need some refinement:
coin-or lp
: COIN-OR LP (CLP) is an open-source linear programming solver written in C++. ... What about: COIN-OR LP (CLP) is a solver that is written in C++ and has an open source license. This a) explicitly names the precise class solver
and b) shows the relation to open source
.ibm ilog cplex optimiser
: IBM ILOG CPLEX opimiser (CPLES) is a ~popular~ solver with an API for several programming languages, and also has a modelling language and works with AIMMS, AMPL, GAMS, MPL, OpenOpt, OPL Development Studio, and TOMLAB. Free for academic use.Oops, that is now a very long comment. Maybe it is worth to create a separate issue for
Hi Lukas, thank you for this detailed comment. I had the same thoughts on the data formats and your suggestion includes and combines everything very nicely. Let's discuss them in separate issues.
I'll remove the release milestone from the meta issue, as the sub-issues are tracked and discussions are still ongoing.
In my view the following are not instances of software framework
but programming languages
To me, it is hard to define, what differentiates each of these programming languages. But maybe it is enough, do specify where these programming languages come from. Also as the individuals are proper nouns or abbreviations I suggest to capitalise the labels. So here are some proposals for definitions:
C++
: C++ is a programming languages designed by Bjarne Stroustrup and standardised by ISO/IEC.Fortran
: Fortran is a programming language designed by John Backus, developed by IBM and standardised by ISO/IEC.Java
: Java is a programming language designed by James Gosling and developed by Oracle.PHP:
PHP is a programming language designed by Rasmus Lerdorf.Python
: Python is a programming language designed by Guido van Rossum and developed by the Python Software Foundation.R
: R is a programming language designed by Ross Ihaka and Robert Gentleman and the R Core Team.Ruby
: Ruby is a programming language designed by Yukihiro Matsumoto.VBA
: VBA is a programming language based on Visual Basic and developed by Microsoft for use within the Microsoft Office software package.Matlab is a special case, I think there are two entities to differentiate: A software framework and the programming language the software framework uses; Wikipedia describes it as: MATLAB (an abbreviation of "MATrix LABoratory" is a proprietary programming language and numeric computing environment developed by MathWorks. So I suggest two individuals:
matlab
to Matlab software framework
and define it as: The Matlab software framework is a proprietary software framework developed by MathWorks that uses the Matlab programming language.Matlab programming language
: The Matlab programming language is a programming language developed by MathWorks for use in the Matlab software framework.Both individuals could get the alternative label Matlab
. The reason to split Matlab into two is that users of the OEO can then differentiate. Also there is third-party that can use code written in the Matlab programming language, for example GNU Octave. R
might be a similar case, but I do not now enough about that programming language.
Sources: Wikipedia pages of the respective programming languages.
For almost a year, no one reacted and especially no one objected to my proposals above. So I will implement the definitions for the programming languages now.
SWO unfortunately has no nice definitions for their classes, but contails classes for plenty of languages. We should map them, once we introduced the "skos:close to" annotation, see PR #1874
I updated the table in the issue start for the individuals we already updated.
Regarding the remaining:
methodological focus
with individuals monte carlo
, econometric
and spreadsheet
=> I think this whole concept needs a restart, I'll open a separate issue for that. => #1885gams
: Like with Matlab, I think we need to differentiate here between the software framework and the programming language.
General Algebraic Modeling System
: The General Algebraic Modeling System (GAMS) is a proprietary software framework developed by GAMS Development Corp. that uses the GAMS programming language. (Alternative label: GAMS
)GAMS programming language
: The GAMS programming language is a programming language developed by GAMS Development Corp. for use in the General Algebraic Modeling System. (Alternative label: GAMS
)uncertainty approach
with individuals deterministic
and stochastic
=> Sounds like qualities of models, I'll open a separate issue for that. => #1886
Description of the issue
We have in oeo-model a lot of individuals without definition (sorted by types):
At least some of them are not unambiguous without a definition. Just three examples:
csv
only include comma-separated values or doescsv
any character-separated values?passive
andinactive
?spreadsheet
amethodical focus
and not adata format
or asoftware framework
?Ideas of solution
If you already have ideas for the solution describe them here
Workflow checklist
I am aware that