Knowledge representation model

From cosmopool meta
Jump to navigation Jump to search

Knowledge can be represented in manyfold ways, see representation wikipedia article and knowledge representation wikipedia category. For more theory see these links.

Criteria for choosing the representation

For our purposes the following aspects are important:

  • Querying the knowledge should be fast.
  • The knowledge should be represented in a modular way, i.e. composed of rather independent components, but allowing for links (along which can be searched, too).
  • The knowledge we want to represent is serial knowledge (i.e. lots of similar structures), i.e. the kind of knowledge with which computers can work best. (With other kinds of knowledge humans can deal better.)
  • The knowledge should be distributable among several nodes with a comparably slow connection between them.
  • We do not need lots of inference, or computer aided reasoning; the users should be able to understand and control what the machines do.

Discussion of alternatives

We just want to represent entities of knowledge and their relations. We don't have knowledge which is highly interlinked, nor do we have a heavy emphasis on logical relationships.

Best suited representation: Ontology

The representation suited best for our purposes is an ontology consisting of:

  • Individuals: the basic or "ground level" objects
  • Classes: sets, collections, or types of objects
  • Attributes: properties, features, characteristics, or parameters that objects can have and share
  • Relations: ways that objects can be related to one another

Our goal is thus to create an easy-to-use ontology editor.

Quality criteria for the representation language

(Compare the German wikipedia article on knowledge representation.)

correctness
How is correct syntax and semantics guaranteed?
expressivity
Does the language represent the required portions of the knowledge uniquely and is it flexible enough?
efficiency
How efficient is querying/reasoning?
complexity
What does the learning curve for representing and querying knowledge look like?
interoperability
Can the syntax be translated inother formats or languages?

We think that for our purpose an ontology is best suited.

Which ontology language (or compatible data model) do we need?

If we want to do some limited reasoning in the future, then we must choose a data model which is compatible with an appropriate ontology language. There is one popular language for ontologies: Web Ontology Language (OWL) It has 3 important sublanguages:

  • OWL Lite
  • OWL DL
  • OWL Full

For our purposes OWL DL should in any case be enough, cf. wikipedia on description logic.