NULO Key Concepts

TMAP-TIR:An example in Linear Topic Map notation:
[AHatzis = "Athanassios I. Hatzis" @"http://athanassios.gr"]
Topic with ID=AHatzis represents a person.

TMAP-BIR:An example in Linear Topic Map notation:
[athanassios.gr = "athanassios.gr" %"http://athanassios.gr"]
Topic with ID=athanassios.gr represents a web page. It is a personal web page of that person.

More examples:
[Microsoft-Access = "The Microsoft Access Relational Database"
@"http://en.wikipedia.org/wiki/Microsoft_Access"]

[myCarDB = "My personal Car database built in Microsoft Access"
%"file://home/athanassios/cars.accdb"]


[EDI ="Electronic_data_interchange"
@"http://en.wikipedia.org/wiki/Electronic_data_interchange"]

[EDI_Tutorial ="EDI Tutorial 1: Before You Begin the Tutorial"
%"http://msdn.microsoft.com/en-us/biztalk/gg153503.aspx"]

A topic may represent an n-ary relation, in Topic Maps terminology it is named association, among other topics. For example, a quarternary relation (AGNT-act-annotate) that takes four arguments (AHatzis,comment123,Wikipedia,var145)

Example in Linear Topic Map notation:

AGNT-act-annotate  (AHatzis :AGNT-generic,
		    comment123 :INF-CONT-annotation,
		    Wikipedia  :TMAP-Topic,
		    var145 :INF-SDATA-time)

Topic may represent a role in the n-ary relation. AGNT-generic, INF-CONT-annotation, TMAP-Topic, and INF-SDATA-time are the roles that the four arguments of the AGNT-act-annotate play in the example above


A Topic may also represent an attribute that can be linked to other topics as occurrence type or as an association argument. In the first scenario, this is the well-known EAV(entity, attribute, value) model. Attributes in topic maps terminology are called occurrences. It is like you define a special type of association between the topic and the attribute. The value of the attribute is maintained internally and it is not exposed to other topics. A rule of a thumb is to use occurrence when you want to link a piece of data, an attribute, to a Topic that is not dependent from other Topics. For example, we can use occurrences to relate time stamps for events, e.g. create, modify. Example:

{TopicX, INF-CONT-created_on, "11/8/2012 8:11:56 pm"} /INF-SDATA-dateTime

In the second case we use attributes as arguments in a relation. A typical example of a sentence model can be the following: "Athanassios was 1m high at the age of four". In NULO we introduce the Variable topic as an enhancement to the existing Topic Map data model. Be aware of the distinction between attributes (occurrences) and relations (associations) because this is another great cause of semantic confusion. In LTM notation we have the following ascertion:

hasProperty(Athanassios:Agent, varinst223:Height, varinst554:Age)

Where varinst223 is of type Topic-VAR and takes a value e.g. "was 1m high".
Where varinst553 is of type Topic-VAR and takes a value e.g. "at the age of four"

Finally a rather difficult concept to grasp in topic maps that is not related to any usual concept in other software data models is that of scope. A topic may represent a scope e.g. a natural language or a definition according to some other ontology. Example :

{AHatzis, NAM-H-first, "Αθανάσιος"} /LANG-GR