Principles and design patterns for the design of ontologies [closed] - ontology

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I'm studying ontology in Semantic Web and I tried creating my own ontology by using Protégé after following these steps to create the ontology of Pizzas.
I just had a feeling that it seems to be similar to software design such as defining classes, relationships, ... A very basic question comes to my mind that: What are Ontology Design Principles?

The Ontology Design Patterns wiki is an open repository of ontology engineering design patterns analogous to software engineering design patterns. There is an accompanying book, linked from the site.
There is an older site here that doesn't seem to be updated, but is still a valuable resource.
A more detailed answer may depend somewhat on the kind of ontology your building and what your use cases are. Ontology building encompasses everything from lightweight schema-type ontologies through to large biomedical ontologies. These may required different engineering approaches. The former may not require much more than RDFS. The latter typically uses more of the expressive power of OWL. The kinds of engineering approaches will vary.
If your use cases tend more towards the latter then a very good place to start would be some of the papers by Alan Rector (e.g. on Google Scholar). In my opinion these give a very good engineering-oriented perspective, in particular for effective use of description logics. But there are other books that cover ontology building from other perspectives than engineering ones, e.g. Building ontologies with BFO.

Related

Any advice for Beginner Programmer studying Deep Learning? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
Thanks for making it this far on my post!
I am studying engineering, yet have a passion for programming and wish to implement computer science knowledge into my own research.
My question is pertaining to any resources that this community has available and any advice you all are willing to give regarding getting started in this broad field.
I’m mainly confused about ‘neural networks’ in relation to Deep Learning as well as implementation of algorithms.
I have slight Python and R knowledge.
Note: one of the subfora of StackExchange is probably a better fit for this question.
In any case, for ML you can do just fine with basic Python/R. Most of the research and work done on ML is based on TensorFlow and similar frameworks currently (2018). To use the frameworks you don't really need a strong programming background to setup and train models on them (although it certainly helps). Actually, math/statistics will help you more, specially if you want to get to the bottom of it (i.e. reading the latest articles/papers, etc.).
Mainly I’m confused about ‘neural networks’ in relation to Deep Learning
"Deep Learning" is basically taking advantage of modern computing capabilities to train complex models (e.g. neural networks with many hidden layers) which a few years ago (e.g. 10 years ago) were unfeasible. Informally speaking, the more complex your network is, the more interesting are the things that it can learn.
as well as implementation of algorithms.
Typically, you will use an existing framework -- you won't implement the algorithms yourself. Although, of course, implementing a MultiLayer Perceptron by yourself is always a good and fun learning exercise.

Machine Learning on financial big data [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
Disclaimer: although I know some things about big data and am currently learning some other things about machine learning, the specific area that I wish to study is vague, or at least appears vague to me now. I'll do my best to describe it, but this question could still be categorised as too vague or not really a question. Hopefully, I'll be able to reword it more precisely once I get a reaction.
So,
I have some experience with Hadoop and the Hadoop stack (gained via using CDH), and I'm reading a book about Mahout, which is a collection of machine learning libraries. I also think I know enough statistics to be able to comprehend the math behind the machine learning algorithms, and I have some experience with R.
My ultimate goal is making a setup that would make trading predictions and deal with financial data in real time.
I wonder if there're any materials that I can further read to help me understand ways of managing that problem; books, video tutorials and exercises with example datasets are all welcome.
Take ML course on coursera. It is a good introductery into ML algorithms which will tell you what ML could do\some general approaches:
https://www.coursera.org/course/ml
Also to get a broader picture I suggest coursera's DataSciense course:
https://www.coursera.org/course/datasci
Finally a good book is Mahout in action - it is more about solving practical matters with mahout and has lots of examples and case-studies.
I beleive after that you will have a better understanding of what you want to do next.

Modeling software for network serialization protocol design [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I am currently designing a low level network serialization protocol (in fact, a refinement of an existing protocol).
As the work progress, pen and paper documents start to show their limits: i have tons of papers, new and outdated merged together, etc... And i can't show anything to anyone since i describe the protocol using my own notation (a mix of flow chart & C structures).
I need a software that would help me to design a network protocol. I should be able to create structures, fields, their sizes, their layout, etc... and the software would generate some nice UMLish diagrams.
Sorry to say, everything I've seen so far (various serial protocols for embedded devices/networks) has used Word documents, with plain old tables showing allocations of fields to the bytes in the message. Alternatively, I've seen it done in Excel documents! It works, and people can read it.
Unfortunately, that's not helpful for automatic code generation, unless you have a very strict format in e.g. an Excel doc that you can then parse with a tool to generate some code. It would be good to have a notation that can be easily machine parsed, as well as human readable.
For showing message handshaking and sequences, a UML sequence diagram is good of course. There are lots of tools readily available to help you with that part of it.

What is Evidence-Based Software Engineering? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
It looks like some new fancy methodology named EBSE is coming upon us in 2010.
Can someone explain it to me, please?
From the official website, "EBSE is concerned with determining what works, when and where, in terms of software engineering practice, tools and standards".
Basically, EBSE is inspired in medical practice and other professions with similar trajectories, and tries to apply their empirical, down-to-earth approach to the often chaotic world of software development.
The EBSE stands for Evidence-based software engineering. The concept tries to bring evidence to decisions made in the software engineering.
The main instrument of EBSE is the systematic literature review (SLR). The concept is derived from medicine and was adapted by Kitchenham in 2004 in the paper Procedures for perfoming systematic reviews. The idea behind the SLR is to obtain accurate data by analyzing other primary studies, eliminating possible bias that this studies may suffer.
Since 2004 multiple authors proposed changes to Kitchenham's procedure, but Kitchenham remains as the ultimate authority in SLRs in software engineering.
Some popular SLR papers are Empirical studies of agile software development: A systematic review and Lessons from applying the systematic literature review process
within the software engineering domain
I don't see that evidence based software engineering is any different from empirical or experimental software engineering. (ESE) They all have the intention of replacing opinion with a scientific epistemology for the creation of knowledge about how software is/can be created. The International Conference of Software Engineering (http://www.icse-conferences.org/) always has papers on this topic.
Do you mean evidence-based scheduling? The basic gist is that estimates for features in development should be based on statistics gathered about how long previously completed features took.

Programming methodology diagram? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
There are a lot of programing languages these days. Fine. Not interesting for this question.
There are quite a few programming methodologies, like modular programming, Object Oriented, Agile, etc. Now, is there somewhere a good diagram on the Internet that shows how these methodologies are related to one another? Preferably something with a timeline showing when the methodology started to appear?
(Thus, not the programming languages but the methodologies...)
you can find one here for programming languages. this one looks at paradigms
and here is a timeline of developement methodologies:
Structured Programming, Object Oriented Design, Functional programming - all of these are the way code can be written.
WaterFall, Agile - is the process by which development can be done. Development is not the only thing when it comes to software development. Programming is one of the mandatory component of the process. The process can have design/testing/refactoring/maintenance.
And both of the above are complementary to each other (i.e. one can do structured programming and be modular and use some of the agile principles).
I don't know as to when it started (and I guess it should not matter).
You might come up with your own style of process, which can work better in your own scenario.
EDIT: In summary, people started with structured programming, used it very well. It had its own limitations & things became object oriented. OO has its own limitations, as some gurus say and they see functional programming as the way to fix it.
It all depends on what suits your scenario & what serves you better.
There is no silver bullet, as experts say.

Resources