2 research outputs found
Modeling of query languages and applications in code refactoring and code optimization
ΠΡΠΎΠ±Π»Π΅ΠΌ ΡΠ°Π΄ΡΠΆΠ°Π½ΠΎΡΡΠΈ ΡΠΏΠΈΡΠ° ΡΠ΅Π΄Π°Π½ ΡΠ΅ ΠΎΠ΄ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΡΠ°ΡΡΠ½Π°Ρ-
ΡΠΊΠΈΠΌ Π½Π°ΡΠΊΠ°ΠΌΠ°, ΠΈΠ½ΠΈΡΠΈΡΠ°Π»Π½ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ Π·Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π΅ ΡΠΏΠΈΡΠ΅. Π‘Π° ΡΠ°ΡΡΡΡΠΎΠΌ ΠΏΠΎΠΏΡΠ»Π°ΡΠ½ΠΎΡΡΡ
SPARQL ΡΠΏΠΈΡΠ½ΠΎΠ³ ΡΠ΅Π·ΠΈΠΊΠ°, ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΠΎΡΡΠ°ΡΠ΅ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ°Π½ ΠΈ Π°ΠΊΡΡΠ΅Π»Π°Π½ ΠΈ Ρ ΠΎΠ²ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ.
Π£ ΡΠ΅Π·ΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ΅Π½ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈ ΠΏΡΠΈΡΡΡΠΏ ΡΠ΅ΡΠ°Π²Π°ΡΡ ΠΎΠ²ΠΎΠ³ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΡΠ²ΠΎ-
ΡΠ΅ΡΡ Π½Π° Π·Π°Π΄ΠΎΠ²ΠΎΡΠΈΠ²ΠΎΡΡ Ρ Π»ΠΎΠ³ΠΈΡΠΈ ΠΏΡΠ²ΠΎΠ³ ΡΠ΅Π΄Π°. ΠΠΎΠ΄ΡΠΆΠ°Π½Π° ΡΠ΅ ΡΠ°Π΄ΡΠΆΠ°Π½ΠΎΡΡ ΡΠΏΠΈΡΠ° ΡΠ·ΠΈΠΌΠ°ΡΡΡΠΈ
Ρ ΠΎΠ±Π·ΠΈΡ RDF ΡΡ
Π΅ΠΌΡ, Π° ΡΠ°Π·ΠΌΠ°ΡΡΠ° ΡΠ΅ ΠΈ ΡΠ΅Π»Π°ΡΠΈΡΠ° ΡΡΠ°ΠΏΠ°ΡΠ°, ΠΊΠ°ΠΎ ΡΠ»Π°Π±ΠΈΡΠ° ΡΠΎΡΠΌΠ° ΡΠ°Π΄ΡΠΆΠ°Π½ΠΎΡΡΠΈ.
ΠΠΎΠΊΠ°Π·Π°Π½Π° ΡΠ΅ ΡΠ°Π³Π»Π°ΡΠ½ΠΎΡΡ ΠΈ ΠΏΠΎΡΠΏΡΠ½ΠΎΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎΠ³ ΠΏΡΠΈΡΡΡΠΏΠ° Π½Π° ΡΠΈΡΠΎΠΊΠΎΠΌ ΡΠΏΠ΅ΠΊΡΡΡ ΡΠ΅Π·ΠΈΡ-
ΠΊΠΈΡ
ΠΊΠΎΠ½ΡΡΡΡΠΊΠ°ΡΠ°. ΠΠΏΠΈΡΠ°Π½Π° ΡΠ΅ ΠΈ ΡΠ΅Π³ΠΎΠ²Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°, Ρ Π²ΠΈΠ΄Ρ ΡΠ΅ΡΠ°Π²Π°ΡΠ° SPECS, ΡΠΈΡΠΈ ΡΠ΅
ΠΊΓ΄Π΄ ΡΠ°Π²Π½ΠΎ Π΄ΠΎΡΡΡΠΏΠ°Π½. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΠ΅Π½ΠΈ ΡΡ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ Π΄Π΅ΡΠ°ΡΠ½Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Π°ΡΠ°Π»Π½Π΅ Π΅Π²Π°Π»ΡΠ°ΡΠΈΡΠ΅
Π½Π° ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΠΈΠΌ ΡΠΊΡΠΏΠΎΠ²ΠΈΠΌΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΡΠΈ ΠΏΠΎΠΊΠ°Π·ΡΡΡ Π΄Π° ΡΠ΅ SPECS Π΅ΡΠΈΠΊΠ°ΡΠ°Π½,
ΠΈ Π΄Π° Ρ ΠΏΠΎΡΠ΅ΡΠ΅ΡΡ ΡΠ° ΠΎΡΡΠ°Π»ΠΈΠΌ ΡΠ°Π²ΡΠ΅ΠΌΠ΅Π½ΠΈΠΌ ΡΠ΅ΡΠ°Π²Π°ΡΠΈΠΌΠ° ΠΈΡΡΠΎΠ³ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π΄Π°ΡΠ΅ ΠΏΡΠ΅ΡΠΈΠ·Π½ΠΈΡΠ΅ ΡΠ΅-
Π·ΡΠ»ΡΠ°ΡΠ΅ Ρ ΠΊΡΠ°ΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Ρ, ΡΠ· Π±ΠΎΡΡ ΠΏΠΎΠΊΡΠΈΠ²Π΅Π½ΠΎΡΡ ΡΠ΅Π·ΠΈΡΠΊΠΈΡ
ΠΊΠΎΠ½ΡΡΡΡΠΊΠ°ΡΠ°. ΠΠ΅Π΄Π½Π° ΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅Π½Π°
ΠΌΠΎΠ΄Π΅Π»ΠΎΠ²Π°ΡΠ° ΡΠΏΠΈΡΠ½ΠΈΡ
ΡΠ΅Π·ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅ Π±ΠΈΡΠΈ ΠΈ ΠΏΡΠΈ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΠ°ΡΡ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΊΠΎΡΠ΅ ΠΏΡΠΈΡΡΡ-
ΠΏΠ°ΡΡ Π±Π°Π·Π°ΠΌΠ° ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ°. Π£ ΡΠ°ΠΊΠ²ΠΈΠΌ ΡΠΈΡΡΠ°ΡΠΈΡΠ°ΠΌΠ°, Π²ΡΠ»ΠΎ ΡΡ ΡΠ΅ΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅ ΠΊΠΎΡΠΈΠΌΠ° ΡΠ΅ ΠΌΠ΅ΡΠ°ΡΡ
ΠΈ ΡΠΏΠΈΡΠΈ ΠΈ ΠΊΓ΄Π΄ Π½Π° ΡΠ΅Π·ΠΈΠΊΡ Ρ ΠΊΠΎΠΌΠ΅ ΡΠ΅ ΠΎΠ½ΠΈ ΠΏΠΎΠ·ΠΈΠ²Π°ΡΡ. Π’Π°ΠΊΠ²Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅ ΠΌΠΎΠ³Ρ ΡΠ°ΡΡΠ²Π°ΡΠΈ ΡΠΊΡΠΏΠ½Ρ
Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡ ΠΊΠΎΠ΄Π°, Π΄ΠΎΠΊ Π½Π° Π½ΠΈΠ²ΠΎΡ ΠΏΠΎΡΠ΅Π΄ΠΈΠ½Π°ΡΠ½ΠΈΡ
Π΄Π΅Π»ΠΎΠ²Π° Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡ Π½Π΅ ΠΌΠΎΡΠ° Π±ΠΈΡΠΈ
ΠΎΠ΄ΡΠΆΠ°Π½Π°. ΠΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π°Π»Π°ΡΠ° Π·Π° Π°ΡΡΠΎΠΌΠ°ΡΡΠΊΡ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈ-
ΡΠ°Π½ΠΎΠ³ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄Γ’ Π³Π°ΡΠ°Π½ΡΠΈΡΡ Π·Π°Π΄ΡΠΆΠ°Π²Π°ΡΠ° ΠΏΠΎΠ½Π°ΡΠ°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΈ ΠΎΠ΄ ΡΡΡΡΠΈΠ½ΡΠΊΠΎΠ³ ΡΠ΅
Π·Π½Π°ΡΠ°ΡΠ° Π·Π° ΠΏΠΎΡΠ·Π΄Π°Π½ ΡΠ°Π·Π²ΠΎΡ ΡΠΎΡΡΠ²Π΅ΡΠ°. Π‘Π° ΡΠΎΠΌ ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΡΠΎΠΌ, Ρ ΡΠ΅Π·ΠΈ ΡΠ΅ ΡΠ°Π·ΠΌΠ°ΡΡΠ° ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΎ-
Π²Π°ΡΠ΅ SQL ΡΠΏΠΈΡΠ° Ρ ΡΠ΅ΠΎΡΠΈΡΠ°ΠΌΠ° Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΏΡΠ²ΠΎΠ³ ΡΠ΅Π΄Π°, ΠΊΠΎΡΠΈΠΌ ΡΠ΅ ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π° Π°ΡΡΠΎΠΌΠ°ΡΡΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠ°
Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΠΈ C/C++ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΡΠ° ΡΠ³ΡΠ°ΡΠ΅Π½ΠΈΠΌ SQL-ΠΎΠΌ, ΡΡΠΎ ΡΠ΅ ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΎ Ρ
Π²ΠΈΠ΄Ρ ΡΠ°Π²Π½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ Π°Π»Π°ΡΠ° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΎΠ³ ΠΊΠΎΠ΄Π° SQLAV.The query containment problem is a very important computer science problem,
originally defined for relational queries. With the growing popularity of the SPARQL query
language, it became relevant and important in this new context, too. This thesis introduces
a new approach for solving this problem, based on a reduction to satisfiability in first order
logic. The approach covers containment under RDF SCHEMA entailment regime, and it can
deal with the subsumption relation, as a weaker form of containment. The thesis proves
soundness and completeness of the approach for a wide range of language constructs. It also
describes an implementation of the approach as an open source solver SPECS. The experimental
evaluation on relevant benchmarks shows that SPECS is efficient and comparing to
state-of-the-art solvers, it gives more precise results in a shorter amount of time, while supporting
a larger fragment of SPARQL constructs. An application of query language modeling can
be useful also along refactoring of database driven applications, where simultaneous changes
that include both a query and a host language code are very common. These changes can
preserve the overall equivalence, without preserving equivalence of these two parts considered
separately. Because of the ability to guarantee the absence of differences in behavior between
two versions of the code, tools that automatically verify code equivalence have great benefits
for reliable software development. With this motivation, a custom first-order logic modeling
of SQL queries is developed and described in the thesis. It enables an automated approach
for reasoning about equivalence of C/C++ programs with embedded SQL. The approach is
implemented within a publicly available and open source framework SQLAV
Generating SPARQL query containment benchmarks using the SQCFramework
In this demo paper, we present the interface of the SQCFramework [8], a SPARQL query containment benchmark generation framework. SQCFramework is able to generate customized SPARQL containment benchmarks from real SPARQL query logs. To this end, the framework makes use of different clustering techniques. It is flexible enough to generate benchmarks of varying sizes and complexities according to user-defined criteria on important SPARQL features for query containment benchmarking. We evaluate the usability of the interface by using the standard system usability scale questionnaire. Our overall usability score of 82.33 suggests that the online interface is consistent, easy to use, and the various functions of the system are well integrated