I am searching tutorials and wikipedias to understand what is the differnece between OWLs, RDFs, TTLs. As I have understood all these are metadata (or ontologies) but what exactly is the essential difference between them? Thanks...
https://www.w3.org/RDF/
https://en.wikipedia.org/wiki/Web_Ontology_Language
OWL and RDF are knowledge representation languages, TTL, or Turtle, is simply one syntax to express OWL or RDF ontologies (i.e., sets of axioms) in a text file.
Roughly speaking, the main difference between OWL and RDF is that OWL has more constructs to express logical axioms. OWL is also layered with multiple complexity levels, depending on which ones of the constructs you use. As a consequence of this layering, automatic reasoning in OWL has different performance implications than reasoning in RDF.
The semantics of RDF is largely contained in the semantics of OWL (indeed, most RDF constructs are included in OWL) but not all of RDF is included in all the OWL (and the more elaborate OWL 2) layers.
Related
I'm working on a model-to-model transformation with UML activity diagram model as a target model. For this reason I'm looking for a activity diagram metamodel. However, my search wasn't really successful. I read a lot of OMG specifications and I'm still confused about the model hierarchy.
I get that the MOF is the metametamodel, but what exactly is the metamodel? Does every UML diagram has the same metamodel?
It's like your grammar book from school: it describes the language you use in the language you use. Kind of a recursive definition. So in order to describe what class, sequence, activity, etc. diagrams (and the concepts behind) mean, it uses exactly those concepts - plus quite some natural text which makes it a bit easier for humans to understand it. In fact, the model itself would (should?) suffice as declarative. But since we are humans and not computers the authors of UML have put lots and lots of plain English text around it.
What is the difference between 'semantic' in nlp and 'semantic' in ontology accessed through an api such as jena??
As you can find from a quick search, semantics is
the branch of linguistics and logic concerned with meaning. The two main areas are logical semantics, concerned with matters such as sense and reference and presupposition and implication, and lexical semantics, concerned with the analysis of word meanings and relations between them.
This is the correct definition for NLP semantics. For Semantic Web, semantics is specifically the semantics of logical languages defined for the Semantic Web, i.e., RDF, RDFS, OWL (1 and 2). The main difference between the semantics of these languages and that of other languages (logical and not) is the restrictions that are applied to RDF/S and OWL (1/2) DL to make them machine understandable; this means that, in these languages, all implications can be made explicit in finite time.
You can find a lot of material on RDFS and OWL on the W3C pages:
http://www.w3.org/TR/owl2-overview/
I am interested in the filed on Computational Linguistics and NLP. I read a lot about Grammatical Framework (GF), which is divided into abstract syntax and concrete syntax. And I know a little bit about OWL, RDF and WordNet. I am confused about the differences between the 2 technologies.
Can we use GF rather than OWL as syntax builders?
Can we eliminate Parser by using GF?
Does GF contains all terms so we don't need to use WordNet?
One of the formal definitions of Grammatical Framework is:
Grammatical Framework (GF), grammaticalframework.org, is a multilingual grammar formalism based on the idea of a shared abstract syntax and mappings between the abstract syntax and concrete languages. GF has hundreds of users all over the world.
The way GF is connected to the Semantic Web is through lemon:
Lemon is a proposed model for modeling lexicon and machine-readable dictionaries and linked to the Semantic Web and the Linked Data cloud.It was designed to meet the following challenges:
RDF-native form to enable leverage of existing Semantic Web technologies (SPARQL, OWL, RIF etc.).
Linguistically sound structure based on LMF to enable conversion to existing offline formats.
Separation of the lexicon and ontology layers, to ensure compatability with existing OWL models.
Linking to data categories, in order to allow for arbitrarily complex linguistic description.
So to answer your first question, GF and OWL complement each other. GF is essentially a set of grammatical rules that can be mapped between languages, but depending on the task at hand, you can use GF to develop powerful Semantic Web tools. For example, GF can be used to verbalise ontologies, as it has been demonstrated in lemon papers.
For the second question, yes. Since the intermediate level of GF is a set of logical rules, you don't need a parser anymore. The morphology and basic syntax mapping can be enough (again, what is your goal? As the definition says, GF covers basic syntax.)
As for WordNet:
WordNet® is a large lexical database of English. Nouns, verbs, adjectives and adverbs are grouped into sets of cognitive synonyms (synsets), each expressing a distinct concept. Synsets are interlinked by means of conceptual-semantic and lexical relations.
WordNet can be perceived as an ontology, but it is not. It cannot even be called a linguistic ontology. Having hypernym and hyponym relations does not make a dataset into an ontology.
What lemon or ontolex are trying to achieve is to create an ontology that can be used for linguistic purposes. This purpose could be annotation, corpus study, modelling dictionaries, and etc. However, the power of WordNet lies within its synsets (Words from the same lexical category that are roughly synonymous are grouped into synsets.); but the power of RDF/OWL lies within inference.
In the 4 years since this question was first asked, there have been some updates in GF. Most importantly, we now have a WordNet ported into GF, currently for 13 languages, with full inflection tables. You can find the repository in https://github.com/GrammaticalFramework/gf-wordnet#readme and a multilingual web interface in http://www.grammaticalframework.org/~krasimir/gf-wordnet.html. Some examples how to use the interface:
English inflection table:
Finnish inflection table:
I'm learning software engineering at school and right now we're focusing on data diagrams. That is, Objec Classes, associations (and multiplicities), Ternary (or in general N-ary) assocciations, aggregation classes and so on.
I've been taught that we are using the UML standard, but as far as I can see, most UML editors I've found don't even support (or do it very poorly) the UML concepts I am using, I find myself using text labels all over the diagram to express almost anything, and I can't even define an N-ary association properly. I can draw a diamond from the flow-chart drawing part and draw some arrows, then define multiplicities with labels, but I find that unprofessional.
So, I've got two questions: Is UML what I've been taught? Does it have a more specific name (I was told they were called data diagrams).
How can I check that I am using the correct tool and that it is really UML what I study?
n-ary associations are UML. But they are not so often used really. Most of associations are one-or two-directional binary ones.
DATA diagrams are NOT UML. But the standard allows to use class diagrams for showing tables and their relationships. If you use class diagrams, it is UML, if data diagrams, it is not.
Multiplicities are UML. You should define them as attributes of association.
As for arrows, UML standard allows not to show them. But of course, they should be again set as attributes of association.
It seems that you use diagramming tool without UML class diagrams support. And youu need rather a modelling tool. Try VP-UML - it has free community license, including all types of UML diagrams. Or if you can install Eclipse, it has many UML plugins. The largest are EMF or Papyrus. They are free. Green UML is for starters.
I understand your troubles - many "UML" courses do not teach real UML. Many widely used tools have errors in UML realization. Some of them (IBM) are very far from the standard. The best place to check if you are on the right way, is the OMG UML 2.5 standard. It is beta2, but the content is virtually equal to the current 2.4.1, and is more easy to understand. (the current change has merely to simplify the documentation)
I am asking if it is necessary or useful to have semantic variances in UML. Would it not be more useful when it was more formal and therefore verifiable or even used for rapid prototyping. What is the benefit of the variance? Can you give some examples?
I would prefer to get rid of the semantic variation points of the UML. A typical example that causes confusion when I model diagrams is the multiple classification semantic variation point. When modeling generalizations in a class diagram, you can choose to assume that the diagram admits multiple classification (an object can be instance of two or more classes not related by a subtype relationship) or not.
Usually designers with a background programming implicitly assume that this is not possible while at the conceptual level many of us tend to implicitly assume that this is possible. You can imagine the result.