ontology icon indicating copy to clipboard operation
ontology copied to clipboard

Individuals without definition

Open l-emele opened this issue 3 years ago • 16 comments

Description of the issue

We have in oeo-model a lot of individuals without definition (sorted by types):

  • analytical approach #1147
  • boolean variable #1148
  • data format and file format #1149
  • solver #1150
Type Individual Updated Definition
methodical focus econometric
methodical focus monte carlo
methodical focus spreadsheet
modus active
modus inactive
modus passive
software framework c++ #1869
software framework fortran #1869
software framework gams #1889
software framework gnu
software framework java #1869
software framework math prog
software framework matlab #1869
software framework modelica
software framework ms_excel
software framework php #1869
software framework python #1869
software framework r #1869
software framework ruby #1869
software framework vba #1869
uncertainty approach deterministic
uncertainty approach stochastic

At least some of them are not unambiguous without a definition. Just three examples:

  • Does csv only include comma-separated values or does csv any character-separated values?
  • What is the difference between passive and inactive?
  • Why is spreadsheet a methodical focus and not a data format or a software framework?

Ideas of solution

If you already have ideas for the solution describe them here

Workflow checklist

  • [x] I discussed the issue with someone else than me before working on a solution
  • [x] I already read the latest version of the workflow for this repository
  • [x] The goal of this ontology is clear to me

I am aware that

  • [x] every entry in the ontology should have a definition
  • [x] classes should arise from concepts rather than from words

l-emele avatar Sep 08 '21 14:09 l-emele

@christian-rli : I assigned you to this issue as most of the individuals are related to software and data.

l-emele avatar Sep 15 '21 12:09 l-emele

@christian-rli @Ludee : Do you already have some ideas for this issue?

l-emele avatar Nov 19 '21 09:11 l-emele

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.

christian-rli avatar Nov 23 '21 08:11 christian-rli

@Ludee : I assigned this issue now to you. Do you already have some proposals for definitions of these individuals?

l-emele avatar Feb 08 '22 07:02 l-emele

@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...

l-emele avatar Mar 25 '22 09:03 l-emele

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.

l-emele avatar May 05 '22 06:05 l-emele

I will start collecting good definitions now. Not sure how to proceed with the import from IAO.

Ludee avatar May 10 '22 07:05 Ludee

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.

Ludee avatar May 10 '22 17:05 Ludee

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): .tbd
      • microsoft 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_file

Regarding 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.
  • Similar changes to the other solvers...

Oops, that is now a very long comment. Maybe it is worth to create a separate issue for

  1. the data/file (format)s
  2. the solvers

l-emele avatar May 11 '22 08:05 l-emele

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.

Ludee avatar May 11 '22 11:05 Ludee

I'll remove the release milestone from the meta issue, as the sub-issues are tracked and discussions are still ongoing.

chrwm avatar Sep 19 '22 16:09 chrwm

In my view the following are not instances of software framework but programming languages

  • c++
  • fortran
  • java
  • php
  • python
  • r
  • ruby
  • vba

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:

  • Rename the existing 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.
  • Add an individual: 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.

l-emele avatar Sep 26 '23 07:09 l-emele

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.

l-emele avatar Jun 27 '24 06:06 l-emele

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

stap-m avatar Jun 28 '24 07:06 stap-m

I updated the table in the issue start for the individuals we already updated.

Regarding the remaining:

  • class 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. => #1885
  • gams: 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)
  • class uncertainty approach with individuals deterministic and stochastic => Sounds like qualities of models, I'll open a separate issue for that. => #1886

l-emele avatar Jul 02 '24 12:07 l-emele

No one reacted yet, but as my gams proposal is the same pattern as with what we've done with matlab in interpret "no reaction" as "no objection" and will implement this to move forward.

l-emele avatar Jul 10 '24 08:07 l-emele