Below I present my proposal for a human definition-specification language. It's target is anyone interested in ontology and existential psychology. My profession is computer science (dr's degree) and my experience in specification languages includes creation of OSL (Object Specification Language), invented as universal tool for formal description of any object (e.g. banking account, human ...). One can take it for further development upon condition that source will be shown. |
Język HSL ma być próbą sformalizowania opisu człowieka w wielu
aspektach (ogólnym, psychologicznym, medycznym itp.), co może nastąpić
przy współudziale odpowiednich specjalistów. Docelowo, posiadając
odpowiedni materiał analityczny (wyniki badań, wywiady, ankiety...)
oraz procesor przetwarzania języka HSL, możliwe wydaje się generowanie
tzw. czynników globalnych, charakteryzujących daną jednostkę (np. pod
względem osobowości, potencjału twórczego, stanu zdrowia itp.). Po zdefiniowaniu zwrotów języka będzie pora na techniczną "obudowę" w postaci schematu danych (np. jako XMLSchema - dtd lub xsd) oraz zaprogramowanie procesora. W oparciu o schemat danych zbudować można bazę danych dla osób, które dobrowolnie będą chciały poddać się badaniom inicjującym oraz aktualizującym. Dzięki anglojęzycznej składni HSL baza danych nosi charakter międzynarodowy. Budowana moze być jako baza globalna lub lokalna w ramach organizacji, firm lub krajów, a jednym z jej celów może być wyszukiwanie osób spełniających określone kryteria. Definicja człowieka nie jest prostą sprawą, o czym świadczyć mogą np. liczne teorie osobowości - " Functional autonomy" Allporta, "trait theory", "16 Personality Factors", "9 Enneagram types ", "Myers-Briggs Type Indicator" etc. Wydaje się, że można je prosto "włożyć" do opisu w HSL, zapewniając dzięki temu jakby wspólną bazę porównawczą, a w następnym kroku próbować ją ujednolicić wg wspólnych kryteriów. Ale to jest zadanie dla psychologów a nie dla informatyka, który daje tylko narzędzie. Several psychologists and writers have (G. Lindzey, 1974; D. Schultz, 1986; R. Corsini, 1977, Atwood and Tomkins, 1976) stated that the several major theories on personality “are inevitably colored by subjective factors determined not only by certain empirical facts which are generally agreed upon, but also by a whole range of idiosyncratic factors and motivations affecting each theorist as an individual”. |
|
HSL - Human Specification Language - basic notation - ver.
0.3
HSL
is a subset of OSL (Object Specification Language)
dedicated to define ontological objects. Ontological object
is independent (self-contained)
object having at least its own name, identifier, properties (traits),
behaviour and "history". Object class includes various types of objects
(concrete and abstract, existent and non-existent, real and ideal,
independent and dependent). |
<! ... > | <! comment > |
<xxxxxx> | <! container e.g. <key-word> means key-words collection. > |
<spec specification-name > | <! specification start - first line of specification> |
</spec > | <! specification end > |
<def name > | <! start of definition > |
</def> | <! end of definition > |
descr | <! tekstual description of element >. |
layout | <! layout of element >. |
:= | <! type assignment >. |
xxxxxx := [<component1,...>] | <! [ ....]structure assignment of xxxxxx> |
= | <! value assignment > |
: | <! attribute,trait assignment > |
:: | ( ., ., ., ..)<! elements of list belong to> |
= = | <! equivalency > |
{.....} | <! delimiters > |
(.,.,..) | <! list > |
<x>+ | <! can occur more than "x" > |
/ | <! or > |
" ' | <!delimiters of string & note> |
( ./ ./ ./ ./ ) | <! only one value / element of list may exist > |
& | <! and > |
XXXXX | <! ontological object > |
YYYYYY.XXXXXX | <! qualified name of Ontological object > |
XXXXXX.type | <! type of Ontological object > |
name | <! non-ontological ex. executive/operational object > |
NAME(x) | <! instance of ontological object > |
name(x) | <! instance of non-ontological OBJECT > |
name:a | <!attribute of object e.g. HUMAN:biological means: biological needs of HUMAN - see need :: (list)> |
name[a,b,c,d] | <! structure of object - simplified method of definition > |
id = | <! object identifier for a given instance of OBJECT e.g. Tom Smith, "id" may be written also as HUMAN="Tom Smith" or HUMAN(Tom Smith)> |
id := [format id] | <!structure of id:=[name, unique-code] > |
OBJECT.type := | (OBJECT, elOBJECT, socialOBJECT)<! type of ontological object> |
elOBJECT :: |
(HUMAN, ANIMAL, ...) <! - elementary atomic object >
|
socialOBJECT :: | ( COUPLE, socialGROUP :=( FRIENDS,WORKTEAM, PROFESSIONALS, NEIGHBOURS), NATION) |
object.type := | (i-object, v-object, d-object)<! type of nonontological object > |
i-object :: | <! informational object e.g. birth statement > |
v-object :: | <! virtual object > |
d-object :: | (event, action, process, behaviour)<! dynamic object e.g. (action) > |
Environment == | ENV |
ENV.scope := |
(UNIVERSE, CONTINENT, COUNTRY, REGION, SITE) |
ENV.type := |
(BIOPHYSICAL, GEOGR, CULTURAL, SOCIAL, LEGAL)
|
ENV.LEGAL := |
<! Legal acts, resolutions, decisions etc.> |
ENV.CULTURAL := | (tradition, history, education, religion, ideology, art, radio-tv) |
ENV.BIOPHYSICAL := | (Homosapiens, Animals ...) |
ENV.GEOGR := |
(<homeaddress>, COMPANY, SCHOOL ) homeaddress :: (SITE,STREET,HOUSE,FLAT) |
keywords := (OBJECT, object, subject, type, scope, spec, def, descr, note, status, state, place, space, behaviour, process, action, event, trigger, drive, ....<relation>, ) |
a small example of specification |
<HSL> <spec> (beta) <def subject HUMAN(Zygmunt Ryznar)> sex :: male family :: (married, parent of 3, grandfather of 4) state := (retired, active) status := real cluster.self = average ability :: (openMinded, creative, fast, abstracted ) need :: psychological.self-actualization temperament :: (emotional, sensitive, introversive, tense, reserved) cluster.happiness = good+ |
NOTACJA JĘZYKA OSL(po polsku - in Polish)<! komentarz> <! w nawiasach ostrych <> podawane są tylko głowne frazy strukturalne: def, spec oraz komentarze, nazwy obiektów i predefiniowane słowa kluczowe pisane są dużymi literami, obiekty niebiznesowe pisane są małymi literami> <def nazwa obiektu> <!początek definicji obiektu> </def> <!koniec definicji obiektu> <spec nazwa specyfikacji> <!początek specyfikacji> </spec > <!koniec specyfikacji> ::= <!przypisanie typu (np. klasy, obiektu) > := <!przypisanie do listy> = <!przypisanie wartości czyli podstawienie > : <!przypisanie obiektowi atrybutu> :: <!przynależność> = = <!ekwiwalentność> {.....} <!ograniczniki frazy specyfikacyjnej> (x,y,..) <!lista> YYYYYY.UUUUU(XXXXXX) <!kwalifikowana nazwa obiektu > [name] <!obiekt wykonawczo-operacyjny> (XXXX)<!obiekt podstawowy> keywords <!kluczowe słowa specyfikacyjne, są dziedziczone przez obiekty niższego rzędu> Można założyć hipotetycznie, iż w przypadku komputerowej implementacji języka, pisanie specyfikacji byłoby wspomagane przez specjalizowany edytor (m.i. poprzez gotowe "formatki" ze zwrotami), generacje opisu poszczególnych obiektów byłyby utrzymywane w bibliotece specyfikacji, zaś specyfikacja całości tworzona będzie automatycznie w wyniku konsolidacji zmian. Język OSL (Object Specification Language) składa się ze zwrotów standardowych, niezależnych od rodzaju biznesu, służących do definiowania obiektów oraz słów kluczowych specyfikowanych do używania w lokalnym obszarze (AREA) lub globalnie w ramach tzw. świata (UNIVERSE). Opis dokonywany jest w imieniu głównego podmiotu (SUBJECT). UNIVERSE, AREA i SUBJECT są więc jakby superklasami. Klasy w ramach AREA mogą być definiowane swobodnie (user-defined} zgodnie z potrzebami głównego podmiotu. W OSL wyróżnia się również tzw. obiekty wykonawczo-operacyjne, którymi są pracownicy podmiotu obsługujący klasy (np. lekarz naczelny,, lekarz chorego, itp.) oraz infrastruktura techniczna (w tym serwery, bazy danych itp.) i organizacyjna. Środowisko (ENV) w jakim działa aplikacja opisywane jest następująco: ENV:=(REGULATIONS, INFRASTRUCTURE) ENV.REGULATIONS:=(Akty prawne, regulaminy, zarządzenia) ENV.INFRASTRUCTURE:=( ServeryDanych, SystemyOperacyjne, Transakcyjne BazyDanych, HurtownieDanych , SystemZarządzaniaSiecią, Struktura organizacyjna firmy) Specyfikacja obiektu obejmuje takie elementy jak: -id <!identyfikator obiektu> -infoWindow <!"okno na świat " - informacje uzewnętrzniane przez obiekt> -dataTable <!tablica danych.> -typ obiektu ObjectTypes : (eOBJECT<!obiekt elementarny np. klient> -rola obiektu (ROLE) -historia życia ( OLH -Object Life History ) -relacje (RELATIONS) -charakterystyka dynamiki(poprzez procesy, transakcje, zdarzenia; sposób ich inicjowania itp.) -tryb wykonania (EXECUTION_MODE:= modeRT <!real time>,modeBAT<!batch> modeOND <!on demand>) -przepływ danych (DATA_FLOW) -przepływ sterowania (CONTROL_FLOW) Poniżej wymienimy niektóre elementy (szczególnie te, których nie udało się użyć w przykładzie). ROLE :=(commander <! obiekt sterujący procesem, odpowiedzialny>, trigger <!obiekt inicjujący/uruchamiający proces, zdarzenie>, generator <!obiekt generujący np. zdarzenia, cash flow>, agent <!reprezentuje usługę np. agent w call-center >, integrator <!obiekt integrujący obiekty> monitor <!śledzi wykonanie/przebieg procesu>, executor <! obiektwykonawczy>, participator <!obiekt uczestniczący>, stakeholder :=(owner, stockholder, customer, supplier; partner, employee) component <!składnik> performance center <!obiekt będący miejscem wykonania> ) RELATIONS:=((activated by / activates, activated when/if, appearence depends on <! np.pojawienie się dziecka zależy od istnienia rodziców> assisted by, belongs to /is owned by , built from , calls <obiekt> (xxx,yyy) <!xxx elementy przekazywane., yyy elementy zwracane> consists of <parts> , contained in/contains, controlled by / controls,derived from, driven by OPERATION,driven by product ,driven by banking regulations, driven by customer, driven by date, driven by schedule,driven by frequency existence depends on <!np. istnienie obiektu zależy od .... > exists when/in/for, evaluated as critical/most wanted , included in , linked to ...by / links, matched/matches <! np. uzgodnić operacje> refers to <!bezpośrednie odniesienie> relates to, related by affinity, represented by / represents , involved in, shared by / shares, used by / uses) STATE := (active,inactive,dormant,suspended,aborted,idle, lost) STATUS := (generic, real, virtual) dOBJECT<! obiekt dynamiczny np. operacja> iOBJECT<!obiekt informacyjny np. informacje o chorym> vOBJECT<! obiekt wirtualny np. symulacja rozwoju choroby>. dOBJECT ::= ZDARZENIE,OPERACJA,AKCJA,PROCES) == (EVENT,OPERATION,ACTION,PROCESS) <!przykład równoważnego definiowania dwujęzycznego> <!ZDARZENIE jest to elementarny niepodzielny fakt, czyn, działanie lub zaniechanie spodziewanego działania > <!OPERACJA jest to sekwencja zdarzeń > <!AKCJA jest to złożone działanie , składajace się z kilku operacji> <!PROCES jest to ciąg akcji i zdarzeń posiadający wspólne zadanie inicjowany przez zdarzenie inicjujące i kończony przez zdarzenie końcowe ) > {CONTROL_FLOW repetition :=( iteration, single spiral, multiband spiral <!spirala znajduje zastosowanie w procesie uczącym się i od iteracji różni się tym, iż każdy jej zwój posiada inne mechanizmy i treść >) activated .... BY ...with <initial-value> AT <time-point > WHEN .. finished AT < > with <value> WHEN ...} { DATA FLOW <.> from (<.>) <!lista danych przychodzących od...> <.> to (<.>) <!lista danych wysyłanych do> <> dataGeneration Method <nazwa> <>dataEncoding Method <nazwa> <>dataCompressing Method <nazwa> } {BODY ::= ( Contents, Script, Metadata) contents <!zawartość ciała np. treść dokumentu, kod programu> script <!lista operacji generowanych wewnątrz obiektu odpowiednio do jego zachowania się np. oczekiwanie na dostęp do danych, zawieszenie się> metadata <! np. w XML- opis struktury ciała obiektu >} |