Glossary

adaptor

adapts one interface into another that a client expects. An adaptor allows classes to work together that normally could not because of incompatible interfaces by wrapping its own interface around that of an already existing class or interface.

aspect

is a part of a program that cross-cuts its core concerns, therefore violating its separation of concerns.

AOP

(Aspect Oriented Programming) attempts to aid programmers in the separation of concerns, specifically cross-cutting concerns, as an advance in modularization.

behaviour

is a reusable block of computer code or script that, when applied to an object causes it to respond to input in meaningful patterns. In Elmo a behaviour is a class associated to a subject type.

chain

is a series of processing objects. Each processing object contains a set of logic that describes the types of command objects that it can handle, and how to pass off those that it cannot to the next processing object in the chain. Behaviours with the same signature are chained together until a value is returned.

cohesion

is an ordinal type of measurement. Modules with high cohesion tend to be preferable because high cohesion is associated with several desirable traits of software including robustness, reliability, re-usability, and understandability whereas low cohesion is associated with undesirable traits such as being difficult to maintain, difficult to test, difficult to reuse, and even difficult to understand.

complementOf

is analogous to logical negation: the class extension consists of those individuals that are NOT members of the class extension of the complement class.

component-oriented

is a field of study within software engineering. It claims that software components, like the idea of hardware components, used for example in telecommunications, can ultimately be made interchangeable and reliable.

composition

is a way and practise to combine simple objects or data types into more complex ones.

concept

is a description of supported operations on a type, including syntax and semantics. In Elmo the semantics specify the subject type and property predicates of a Java interface.

connection

allows client software to talk to repository server software, whether these exist on the same machine or not. A connection is required to send commands and receive answers, usually in the form of a result set. All JavaBean properties are stored and retrieved over a repository connection.

cross-cutting-concern

are aspects of a program which affect (crosscut) other concerns. These concerns often cannot be cleanly decomposed from the rest of the system in both the design and implementation, and result in either scattering or tangling of the program, or both.

data-type

is a constraint placed upon the interpretation of data in a type system in computer programming.

disjointWith

will assert that a subject that is being assigned to one type cannot simultaneously be an instance of a specified other type.

domain

indicates the relevant set of entities that are being dealt with by quantifiers.

domain-model

can be thought as a conceptual model of a system. A domain model will tell about the various entities involved and their relationships. The domain model is created to understand the key concept of the system and to familiarize with the vocabulary of the system.

ElmoManager

is a connection to a JavaBean pool. Concept properties are stored, retrieved and converted through an ElmoManager.

Entity

is any JavaBean returned from an ElmoManager.

entity

is a resource tracked by unique identity and not by its value.

equivalent

ties together a set of component ontologies as part of a another. It is frequently useful to indicate that a particular class or property in one ontology is equivalent to a class or property in a second ontology.

facade

is an object that provides a simplified interface to a larger body of code.

FOAF

(Friend of a Friend) is a project for machine-readable modelling of homepage-like profiles and social networks.

GEDCOM

(GEnealogical Data COMmunication) is a specification for exchanging genealogical data between different genealogy software.

groovy

is an object-oriented programming language for the Java Platform as an alternative to the Java programming language. It can be viewed as a scripting language for the Java Platform, as it has features similar to those of Python, Ruby, Perl, and Smalltalk.

hyperslices

encapsulate module concerns in dimensions other than the dominant one.

individual

is a single resource.

interceptor

is behaviour that can be inserted around a method invocation. It allows you to transparently apply cross-cutting behaviour, like logging and metrics, to an existing object model.

intersectionOf

describes a class for which the class extension contains precisely those individuals that are members of the class extension of all class descriptions in the list.

inverseOf

associates two properties with inverted subject and value. i.e. If a property, P1, is tagged as the inverseOf P2, then for all x and y: P1(x,y) iff P2(y,x)

inversion-of-control

is an object-oriented programming principle that can be used to reduce coupling inherent in computer programs it is also know as dependency injection.

JavaBean

is a reusable software component that can be manipulated visually in a builder tool.

join-point

is a point in the control flow of a program, like a method call.

label

is the string value of a literal.

literal

is the most primitive value type represented in RDF, typically a string of characters. The content of a literal is not interpreted by RDF itself and may contain additional XML markup. Literals are distinguished from Resources in that the RDF model does not permit literals to be the subject of a statement (a subject, predicate, value triple).

localization

is the adaptation of an object to a locality. In Elmo only String localization is supported.

mixin

programming is a style of software development where units of functionality are created in a class and then mixed in with other classes.

module

is a self-contained component of a system, which has a well-defined interface to the other components.

object-oriented

programming (OOP) is a programming paradigm that uses "objects" to design applications and computer programs.

observer

is to observe the state of an object in a program.

oneOf

is a restriction on a property value that must be one of the listed values.

ontology

is a data model that represents a set of concepts within a domain and the relationships between those concepts. It is used to reason about the objects within that domain.

OWL

(Web Ontology Language) is a language for defining and instantiating Web ontologies. An OWL ontology may include descriptions of classes, along with their related properties and instances. OWL is designed for use by applications that need to process the content of information instead of just presenting information to humans.

point-cut

is a set of join points. Whenever the program execution reaches one of the join points described in the pointcut, a piece of code associated with the pointcut (called advice) is executed.

predicate

is a trait or aspect about that resource that is being described. In Elmo every persistent property has a predicate.

program-slice

consists of the parts of a program that (potentially) affect the values computed at some point of interest, referred to as a slicing criterion.

qualified-name

is an unambiguous name that specifies specifically which object, function, or variable a call refers to absolutely.

RDF

(Resource Description Framework) is a family of World Wide Web Consortium (W3C) specifications originally designed as a metadata model using XML but which has come to be used as a general method of modelling knowledge, through a variety of syntax formats (XML and non-XML).

RDFS

or RDF Schema is an extensible knowledge representation language, providing basic elements for the description of ontologies, otherwise called RDF vocabularies, intended to structure RDF resources.

reasoner

performs the act of using reason to derive a conclusion from certain premises, using a given methodology.

repository

is a central place where data is stored and maintained.

role

is a concept, behaviour, interface of a behaviour, or interceptor that an entity can be a composition of.

RSS

is a family of web feed formats used to publish frequently updated digital content, such as blogs, news feeds or pod-casts.

semantic-web

is an evolution of the World Wide Web in which information is machine processable (rather than being only human oriented), thus permitting browsers or other software agents to find, share and combine information more easily.

semi-structured

is a database model. In this model, there is no separation between the data and the schema, and the amount of structure used depends on the purpose.

separation-of-concerns

(SoC) is the process of breaking a program into distinct features that overlap in functionality as little as possible.

Sesame

is an open source Java framework for storing, querying and reasoning with RDF and RDF Schema. It can be used as a database for RDF and RDF Schema, or as a Java library for applications that need to work with RDF internally.

strategy

pattern whereby algorithms can be selected on-the-fly at run-time.

subject-oriented

programming is a method of computer program composition that supports building object-oriented systems as compositions of subjects, extending systems by composing them with new subjects, and integrating systems by composing them with one another.

triple

is an n-tuple with n being 3. A triple is a sequence of three elements. It is not a set of three elements, as the ordering of the elements matters, and an element can be present more than once in the same triple.

tuple

is a finite sequence (also known as an "ordered list") of objects, each of a specified type. A tuple containing n objects is known as an "n-tuple".

URI

(Uniform Resource Identifier) is a compact string of characters used to identify or name a resource. The main purpose of this identification is to enable interaction with representations of the resource over a network.

URL

is a Uniform Resource Locator, a uniform syntax for global identifiers of network-retrievable documents.

URN

is a Uniform Resource Identifier (URI) that uses the urn scheme, and does not imply availability of the identified resource. Both URNs (names) and URLs (locators) are URIs, and a particular URI may be a name and a locator at the same time.

XML-Schema

was published as a W3C Recommendation in May 2001, is one of several XML schema languages.