Grafiski-tekstuālu modeļu redaktoru saskarne

Download Report

Transcript Grafiski-tekstuālu modeļu redaktoru saskarne

Grafiski-tekstuālu modeļu
redaktoru saskarne
Autore:
Jūlija Ovčiņņikova
Vadītājs:
Prof. Kārlis Čerāns
Ontoloģijas
• Ontoloģija ir apraksts par jēdzieniem un attiecībām,
kas var pastāvēt noteiktiem objektiem.
• Ontoloģijas sastāv no indivīdiem, klasēm, atribūtiem
un attiecībām.
• Ontoloģiju attēlošanas valodas:
–
–
–
–
OWL 2 (Web Ontology Language)
KIF (Knowledge Interchange Format)
CL (Common logic)
F-logic (frame logic)
Ontoloģiju attēlošanas rīki
OWLGrEd redaktors
• UML tipa grafiskais
redaktors priekš
OWL 2 valodas
Thing{owl}
{d is jo int}
•
•
•
•
•
Klases
Asociācijas
Atribūti
Objekti
Vispārināšanas
Person
personName:s tr ing
Student
Teacher
isTakenBy
isTaughtBy
takes
teaches
Course
cours eName:s tr ing
Declaration(Class(:Course))
DisjointClasses(:Course :Person)
Declaration(Class(:Person))
DisjointClasses(:Person :Course)
Declaration(Class(:Student))
SubClassOf(:Student :Person)
Declaration(Class(:Teacher))
SubClassOf(:Teacher :Person)
Declaration(Class(owl:Thing))
InverseObjectProperties(:takes :isTakenBy)
ObjectPropertyDomain(:isTakenBy :Course)
ObjectPropertyRange(:isTakenBy :Student)
Declaration(ObjectProperty(:isTaughtBy))
InverseObjectProperties(:isTaughtBy :teaches)
ObjectPropertyDomain(:isTaughtBy :Course)
ObjectPropertyRange(:isTaughtBy :Teacher)
Declaration(ObjectProperty(:takes))
InverseObjectProperties(:takes :isTakenBy)
ObjectPropertyDomain(:takes :Student)
ObjectPropertyRange(:takes :Course)
DisjointObjectProperties(:takes :teaches)
InverseObjectProperties(:isTaughtBy :teaches)
ObjectPropertyDomain(:teaches :Teacher)
ObjectPropertyRange(:teaches :Course)
DisjointObjectProperties(:teaches :takes)
Declaration(DataProperty(:courseName))
DataPropertyDomain(:courseName :Course)
DataPropertyRange(:courseName xsd:string)
Declaration(DataProperty(:personName))
DataPropertyDomain(:personName :Person)
DataPropertyRange(:personName xsd:string)
OWLGrEd redaktors
Lietotāja definētu lauku mehānisms
• Iespēja, kā ērti un vienkārši papildināt OWLGrEd
redaktora notāciju klāstu un vizualizēt domēnu
specifiskus anotāciju apgalvojumus.
Person
personName:string{{DB: [[Student]].
SName},{DB: [[Teacher]].TName}}
• Galvenās komponentes:
– Profili
– Lauki
– Izvēles vienumi
– Skatījumi
– Semantika
Student
Teacher
{DB: XStudent}
<(Assistant or Associate_
Professor or Professor)
{DB: XTeacher}
isTakenBy {DB: =>XRegistration->}
{DB: =>} isTaughtBy
takes
{<>teaches}
teaches
{<>takes}
Course
<(Mandatory_Course or Optional_Course)
{DB: XCourse}
courseName:string{{DB: CName}}
• AnnotationAssertion(A:isImportant A:Course "true")
• AnnotationAssertion(A:DBExpr A:Student "XStudent")
• AnnotationAssertion(A:DBExpr A:isTaughtBy "=>")
Spraudņi TDA platformā
Spraudņi dod iespēju:
• Pielikt rīkam kodu, kas apstrādās specifiskās
transformācijas, notikumus un paplašinājuma
punktus;
• Papildināt metamodeli ar klasēm, instancēm;
• Pielikt Lietotāja lauku profilu, kuru apstrādās
lietotāja lauku spraudnis;
• Pielikt citus metamodeļa papildinājumus, kas
pielāgo rīka vizuālo izskatu (papildus pogas,
izvēlnes vienumi, u.c.),
Datubāzes piesaistes
anotāciju uzdošana
• RDB2OWL valoda (G.Būmans) ir augsta līmeņa
deklaratīva valoda, kas izmanto ontoloģijas struktūru kā
pamatu attēlošanas struktūrai, glabājot datubāzes
piesaistes informāciju ontoloģijas klašu, asociāciju lomu
un atribūtu anotācijās, ka arī pašas ontoloģijas anotācijās.
Thing
{disjoint}
Person ID
IDValue:String
personID
Person
0..1
person personName:String
enrolled
Academic
Program
0..1
belongsTo
programName:String
Teacher
{disjoint}
Assistant
Student
isTaughtBy
{complete}
Associate Professor
Professor
includes
isTakenBy
takes {<>teaches}
Course
teaches {<>takes} courseName:String
{complete}
{disjoint}
Mandatory Course
< isTaughtBy only Professor
Optional Course
Spraudnis RDB2OWL izteiksmju
attēlošanai OWLGrEd redaktorā
Thing
PersonID
IDValue:s tring{DB: [[T]].IDCode}{DB: [[S]].
IDCode}
{DB: T=XTeacher {uri=('Pers onID',IDCode)}}}
{DB: S=XStudent {uri=('PersonID',IDCode)}}}
{disjoint}
Person
{DB:[[Teacher]][AutoID->[[T]]} pers onID
{DB:[[Student]][AutoID->[[S]]}
pers onName:s tring{DB: [
[Teacher]].TName}{DB: [
pers on 0..1 [Student]].SName}
Teacher
Student
{DB: XTeacher}
{DB: XStudent}
isTaughtBy
AcademicProgram
enrolled programName:string
{DB:->} {DB: PName}
{DB: XProgram}
isTakenBy
{DB:=>XRegistration->}
Course
takes {<>teacher} courseName:string{DB: CName}
{DB:=>} {DB: XCourse}
teaches {<>takes}
{disjoint}
{disjoint}
Assistant
{DB: [[Teacher]],
Level='Assistant'}
{complete}
{complete}
AssociateProfessor
{DB: [[Teacher]],Level='
As socProf'}
Proffessor
{DB: [[Teacher]],
Level='Profes sor'}
OptionalCourse
{DB: [[Course]],
isRequired=0}
MandatoryCourse
<isTaughtBy only Professor
{DB: [[Course]], isRequired=1}
<<DBExpr>>
"DBRef(
dbname=miniUniversity,
connection_string='jdbc:sqlserver://server_name:1433;databaseName=miniUniversity;user=sa;password=abcd',
schema='dbo',
jdbc_driver='com.microsoft.sqlserver.jdbc.SQLServerDriver'
)"
OBIS
• OBIS (OntologyBased Information
System, A.Romāne)
ir rīks, kas
automātiski ģenerē
pilnībā funkcionālu
datu glabāšanas un
ieguves
informācijas
sistēmu, balstoties
uz dotās
ontoloģijas RDFS
shēmu.
OBIS spraudnis
OWLGrEd redaktoram
<<EnumClass>>
Person
Course
/personName:string
Pattern:[P1=]{courseCode} ({courseName})
view Name@all
courseName:string
/relates
ReportName
RuleName{disable}=Content
• defaultOrder automātiska
rēķināšana,
• noklusētās kardinalitātes
0..1 pievienošana
atribūtiem.
CNL (controlled natural language)
• CNL ir veidotas kā dabisko valodu apakškopa ar
precīzi formulētiem gramatikas, leksikas un stila
ierobežojumiem.
• LUMII ir izveidots risinājumu, kas ontoloģijai,
kas ir attēlota ar UML klašu diagrammu, uzliek
CNL verbalizācijas slāni. Šis risinājums ļauj radīt
OWL ontoloģijas domēnu ekspertiem, bez
nepieciešamības būt par ekspertiem OWL
ontoloģiju notācijās un semantikā.
Valodu lauku spraudnis
OWLGrEd redaktoram
Persona
Kurss
Course
Universitāte
Person
Personas vārds
University
ņem
1..*
darbavieta
0..1
ir ņemts ar *
Students
Pasniedzējs
Student
Teacher
strādā 1..*
Kurss
Persona
Universitāte
Course
Person
Personas vārds(personName)
University
ņem(takes)
1..*
darbavieta
(workplace)
0..1
ir ņemts ar *
(isTakenBy)
Students
Pasniedzējs
Student
Teacher
strādā(works) 1..*
Disjoint to fork spraudnis
SuperClass
SuperClass
SubClass1
SubClass2
<<disjoint>>
SubClass1
SubClass2
SubClass3
SubClass4
SubClass3
SubClass4
<<disjoint>>
SuperClass
SuperClass
{disjoint}
{disjoint}
SubClass1
SubClass2
SubClass1
SubClass2
Priekšā-teicēji
• Programmatūras izstrādes vides:
• Ietvari domēna specifisku valodu attīstībai:
Uz gramatikām balstīts
priekšā-teicējs
• Paplašina gramatikas likumus ar priekšāteikšanas funkcionalitāti.
• Var tikt pielietots jaunam vai eksistējošam
gramatikām
• Tika izmantots Lua valodas LPeg.re modulis
Lua Lpeg.re
Nonterminal symbols
Pattern
Rule
Terminal symbols
Ordered choices
Repetition counters
Aritmētisko izteiksmju gramatika
Lua LPeg.re sintaksē
local grammar = re.compile([[
gMain <- Exp !.
Exp <- (Factor (FactorOp Factor)*)
Factor <- (Term (TermOp Term)*)
Term <- (Number / Variable / ("(" Exp ")"))
FactorOp <- "-" / "+"
TermOp <- "*" / "/"
Number <- [0-9]+
Variable <- (([A-Za-z]/"_")
([A-Za-z]/"_"/[0-9])*)
]])
Paplašināt gramatiku (1)
• Visi gramatikas ceļi, kas atbilst ievadītājām
teksta fragmentam ir apmeklēti.
local grammar = re.compile([[
gMain <- (Exp !. %parse_fail)
…
]], {
parse_fail = function (…) return false end
})
Paplašināt gramatiku (2)
• Priekšā-teicēja likumi termināliem simboliem
local grammar = re.compile([[
gMain <- (Exp !. %parse_fail)
Exp <- (Factor (FactorOp Factor)*)
Factor <- (Term (TermOp Term)*)
Term <- (Number / Variable /
(%parse_bracketO "(" Exp %parse_bracketC ")"))
FactorOp <- %parse_minus "-" / %parse_plus "+"
TermOp <- %parse_mul "*" / %parse_div "/"
Number <- [0-9]+
Variable <- (([A-Za-z]/"_") ([A-Za-z]/"_" /[0-9])*)
]],{
parse_fail = function (continuation,cur_pos)
add_continuation(continuations,cur_pos,"",90) return false end,
parse_minus = create_parse_fn("-", 90),
parse_plus = create_parse_fn("+", 90),
…
})
Priekšā-teicēja likumi netermināliem simboliem
local grammar = re.compile([[
gMain <- (Exp !. %parse_fail)
Exp <- (Factor (FactorOp Factor)*)
Factor <- (Term (TermOp Term)*)
Term <- (%parse_number Number / %parse_variable Variable /
(%parse_bracketO "(" Exp %parse_bracketC ")"))
FactorOp <- %parse_minus "-" / %parse_plus "+"
TermOp <- %parse_mul "*" / %parse_dev "/"
Number <- [0-9]+
Variable <- (([A-Za-z]/"_") ([A-Za-z]/"_"/[0-9])*)
]],{
…
parse_number = function (continuations,cur_pos)
local numbers = collectNumbers()
for _,number in pairs(numbers) do
add_continuation(continuations,cur_pos,number,80)
end
return cur_pos end,
parse_variable = function (continuations,cur_pos)
local variableNames =
{"divisor","dividend","multiplier","addend", "subtrahend","result"}
for _,variable in pairs(variableNames) do
add_continuation(continuations,cur_pos,variable,80)
end
return cur_pos end
})
Aritmētisko izteiksmju gramatika
piemērs: “5+addend”
Turpinājumu tabula uz
“5+ad” ievadi
continuations = {
[3] = {
["addend"] = 80,
},
[5] = {
["+"] = 90,
["-"] = 90,
["/"] = 90,
["*"] = 90,
}
}
Priekšā-teicēja formas
PAM programmēšanas valoda
local pamGrammar = re.compile([[
progr <- (series space) -> {}
series <- stmt space (';' space stmt space)*
stmt <- declaration / input_stmt / output_stmt / assign_stmt /
cond_stmt / loop
input_stmt <- 'read' space varlist
output_stmt <- 'write' space varlist
assign_stmt <- VARNAME space ':=' space expr
cond_stmt <- 'if' space compar 'then' space series
('else' space series)? 'fi' space
loop <- 'while' space compar 'do' space series 'end' space
declaration <- ("variable" space {VARNAME})
compar <- expr RELATION space expr
varlist <- VARNAME (',' space VARNAME space)*
expr <- term (WEAKOP space term)*
term <- elem space (STRONGOP space elem space)*
elem <- NUMBER / VARNAME / ( '(' expr ')')
WEAKOP <- '-' / '+'
STRONGOP <- '*' / '/'
RELATION <- '<>' / '=<' / '>='/ '=' / '<' / '>'
NUMBER <- [1-9][0-9]* space
VARNAME <- ([A-Za-z] / '_') ([A-Za-z] / '_')* space
space <- ((' ' / %nl))*
]])
PAM valodas priekšā-teicējs
• Viena gramatika tiek
lietota priekšāteikšanai un analīzei
• Visi mainīgo vārdi,
kas tiek nodefinēti
teksta fragmentā, tiek
izmatoti priekšāteikšanai kā
turpinājumi
JAVA application
Citi lietojumi
OWL Mančestra sintakse
RBD2OWL valoda
Tālākais darbs
• Izpētīt vai izvirzītie priekšā-teicēja veidošanas principi
ir pareizi un precīzi;
• Izpētīt kā var izvirzītus likumus pielāgot citām, līdzīga
veida gramatikām;
• Izpētīt gramatiku pārserus;
• Izskatīt citas priekša-teicēju metodes;
• Izveidot metodi, kas ļautu automātiski papildināt
gramatikas ar pamata funkcionalitāti priekšā-teikšanas
nodrošināšanai.
• Attīstīt vizuālo stilu uzdošanas likumu sistēmu un
vispārināto stereotipu uzdošanas elementus.
• Izdarīt nepieciešamu analīzi, lai noteiktu, kas
nepieciešams, lai pārnestu dotas metodes uz citām
izstrādes vidēm.
Publikācijas
•
•
•
•
•
•
K.Čerāns, J.Ovčiņņikova, R.Liepiņš, A.Sproģis, Advanced OWL 2.0 Ontology
Visualization in OWLGrEd // A.Caplinskas, G.Dzemyda, A.Lupeikiene,
O.Vasilecas (eds.), Databases and Information Systems VII, IOS Press, Frontiers in
Artificial Intelligence and Applications, Vol 249, 2013, pp.41-54 [SCOPUS
datubāze]
K.Cerans, G.Barzdins, R.Liepins, J.Ovcinnikova, S.Rikacovs and A.Sprogis,
Graphical Schema Editing for Stardog OWL/RDF Databases using OWLGrEd/S //
Proc. of OWLED 2012, Heraklion, Greece, May 27-28, 2012. CEUR-WS Vol. 849,
8pp. [SCOPUS datubāze]
K.Cerans, R.Liepins, A.Sprogis, J.Ovcinnikova, G.Barzdins. Domain-Specific
OWL Ontology Visualization with OWLGrEd, Demonstration at ESWC 2012
conference.
K.Čerāns, G.Bārzdinš, G.Būmans, J.Ovčiņņikova, S.Rikačovs, A.Romāne, On
Semantic Re-Engineering of Relational Databases. // H.-M. Haav, A.Kalja and
T.Robal (eds.), Databases and Information Systems, TUT Press, 2014, pp.349-360.
K.Čerāns, G.Bārzdinš, G.Būmans, J.Ovčiņņikova, S.Rikačovs, A.Romāne, A
Relational Database Semantic Re-Engineering Technology and Tools. Selected for
post-conference publishing in Baltic Journal of Modern Computing (BJMC)
(Vol.2(2014), No. 3).
J.Ovčiņņikova, K.Čerāns, R.Liepiņš. Grammar based content completion method
using Lua LPeg.re module.//Proc. Of 2014 IEEE 2nd Workshop on Advances in
Information, Electronic and Electrical Engineering (AIEEE), Vilnius, Lithuania,
November 28-29, IEEE Xplore Digital Library, 2014.
Uzstāšanās ar referātiem
• „ The 2nd IEEE Workshop on Advances in Information,
Electronic and Electrical Engineering AIEEE’14 ” ar
referātu „ Grammar based content completion method
using Lua LPeg.re module”
• „The 11th International Baltic Conference on DB and
IS, DB&IS2014” ar referātu „On Semantic ReEngineering of Relational Databases”.
• „Tenth International Baltic Conference Databases &
Information Systems” ar referātu „Advanced OWL 2.0
Ontology Visualization in OWLGrEd”.
Paldies par uzmanību!