• Aucun résultat trouvé

SPARQL Aggregate Queries Made Easy with Diagrammatic Query Language ViziQuer

N/A
N/A
Protected

Academic year: 2022

Partager "SPARQL Aggregate Queries Made Easy with Diagrammatic Query Language ViziQuer"

Copied!
4
0
0

Texte intégral

(1)

SPARQL Aggregate Queries made easy with Diagrammatic Query Language ViziQuer

Kārlis Čerāns1, Jūlija Ovčiņņikova, Mārtiņš Zviedris

karlis.cerans@lumii.lv, julija.ovcinnikova@lumii.lv, martins.zviedris@lumii.lv Institute of Mathematics and Computer Science, University of Latvia

Raina blvd. 29, Riga, LV-1459, Latvia

Abstract. We present a novel way to draw SPARQL aggregate queries via diagrammatic query language – ViziQuer. Since the introduction of SPARQL different graphical languages have been proposed to make SPARQL more user- friendly. In SPARQL 1.1 aggregate queries were introduced that are key to meaningful query formulation. However, diagrammatic query languages lacked this important end-user feature to make the diagrammatic SPARQL extensions powerful enough.

Keywords: Visual query creation, SPARQL, RDF, Aggregate queries

1 Introduction

SPARQL [1] is de facto query language for RDF [2] databases. Semantic RDF/SPARQL technologies offer a higher-level view on data compared to the classical relational databases (RDB) with SQL query language. Thus, semantic technologies enable more direct involvement of various domain experts in data set definition, exploration and analysis. Still, the textual form of SPARQL queries hinders its direct usage for IT professionals and non-professionals alike.

The diagrammatic query languages introduced to help formulating SPARQL queries, for instance, an earlier version of ViziQuer [3], or Optique VQS [4], do not support aggregate query formulation that is available in SPARQL 1.1. In a real-case scenario [5] it was identified that users could formulate basic SPARQL queries via graphical notation and that they were satisfied with the diagrammatic solution for very basic queries. Still they lacked expressive power to calculate different aggregated data.

The demonstration will show creation of aggregate SPARQL queries in the ViziQuer notation that is the main novelty of this paper. An extended outline of the design of the visual aggregate queries appears as [6]. This demo and paper present a novel and more refined SPARQL query generation algorithm that relies on explicit distinctness list notion for aggregate queries thus allowing correctly capturing a wider range of intuitive queries within the diagrammatic notation.

1 Supported, in part, by Latvian State Research program NexIT project No.1 “Technologies of ontologies, semantic web and security”.

(2)

2 Basic Query Notation

The visual/diagrammatic query definition is based on the data schema definition as OWL ontology or RDF Schema. We use the following example mini-University onto- logy that is presented in Figure 1 in graphical OWLGrEd ontology editor notation [7].

Fig. 1. A mini-University ontology fragment in the OWLGrEd notation (cf. owlgred.lumii.lv)

A query in ViziQuer is a graph of class instance nodes connected with links corresponding to triples connecting these instances. Each node shows the instance class name (e.g. Registration, Student in Fig.2), possibly an explicit instance reference (e.g.

R and S), as well as conditions (e.g. mark>=4) and selection instances and attributes (e.g. R and mark for Registration class). One of the classes in the query is marked as the main query class (shown as orange round rectangle) while all other classes (shown as violet rectangles) are called condition classes [8]. The semantics of a basic query is to find all instance graphs matching the pattern defined by the query and list the selection instances and/or attributes for each instance graph. The order by, limit and offset clauses for the query can be marked within the main query class, as well.

There can be affirmative (black solid line), optional (blue/light dashed line) or negation (red line with stereotype {not}) links within the query. The default interpretation of optional or negation link is to mark the entire subgraph placed behind the link (from the viewpoint of main query class) as optional or negated respectively.

A negation link with {condition} stereotype is interpreted as the non-existence of the respective link between its end instances (the query graph is required to have a spanning tree consisting of all its non-condition links).

Fig. 2. Basic query examples Student

studentNam e personID

AcademicProgram

program Nam e Course

courseNam e courseCredits :integer

Registration

m ark:integer

Nationality

nCode

includes course 1 enrolled 1

nationality 0..1

takes student 1

Registration

R

mark>=4 R mark

Course

courseCredits>=6 cn=courseName

Student

sn=studentName

Student

S

n=studentName optional p=personID

For all registrations with mark at least 4 for courses with at least 6 credit points list registration instance URI, as well as corresponding mark, student name and course name.

PREFIX ont: <http://lumii.lv/ontologies /UnivExample.owl#>

SELECT ?sn ?cn ?R ?mark WHERE {?R ont:s tudent ?Student.

?Student a ont:Student. ?Student ont:s tudentName ?s n.

?R ont:cours e ?Cours e. ?Cours e a ont:Course.

?Course ont:cours eCredits ?courseCredits .

?Course ont:cours eNam e ?cn. FILTER (?courseCredits >=6) ?R a ont:Regis tration. ?R ont:mark ?mark. FILTER (?mark >=4)}

Registration

mark>=7

Nationality

nCode

Optional and negated links, optional attributes SELECT ?nCode ?n ?p WHERE { ?S a ont:Student.

?S ont:s tudentName ?n. OPTIONAL{?S ont:pers onID ?p.}

OPTIONAL{?S ont:nationality ?Nationality.

?Nationality ont:nCode ?nCode.

?Nationality a ont:Nationality.}

FILTER NOT EXISTS{?Regis tration ont:student ?S.

?Registration a ont:Regis tration.

?Registration ont:mark ?mark. FILTER(?mark >=7)}}

Student

S

S

AcademicProgram

P

Find all students taking all courses in the academic program they are enrolled in SELECT ?S WHERE {?S a ont:Student.

?P a ont:AcademicProgram. ?S ont:enrolled ?P.

FILTER NOT EXISTS{ ?C a ont:Course. ?P ont:includes ?C.

FILTER NOT EXISTS{ ?S ont:takes ?C.}}}

Course

C student

cours e

nationality

student {not}

enrolled

takes {not} {condition}

includes {not}

(3)

3 Introducing Aggregate Queries

The aggregation options can be included into the queries just by introducing into class instance attribute lists aggregate expressions where an SPARQL aggregate function (e.g. count, sum, avg) is applied to a non-aggregated (i.e. plain) attribute expression, for instance, as in sum(courseCredits) in Fig. 3.

The semantics idea is to compute aggregate values taking as the grouping set all non- aggregated attributes specified in the query. A direct implementation of this idea would, however, lead to counterintuitive results since the aggregated instance attribute value would be included into the aggregation as many times as the instance appears in some instance graph matching the query. We offer a more refined semantics that we explain for the case, if all aggregate attributes are placed within single class of the query, we call it aggregation class. In the case of aggregate attributes in different classes separate subqueries are to be made for each aggregation class with their results merged (cf. [6]).

The SPARQL query generation follows three steps: (i) the raw query with aggrega- tion function arguments (plain attributes) instead of aggregate attributes is generated;

(ii) the distinctness list for aggregation computation over the raw query is formed, consisting of all attributes (both non-aggregated and aggregated ones alike) and instances of so-called multiplicative classes. The multiplicative class set by default includes the main query class and the grouping class; the set can be extended by ascribing the <<all>> stereotype to a class in the query, a class can be excluded from the set by the <<exists>> stereotype; (iii) the aggregation over the distinctness-list selection from the raw query is formed by aggregating the aggregation attributes and grouping on all non-aggregated attributes.

Figure 3 depicts two variants of the natural language query “find all nationalities and the sum of credit points of courses taken by students of this nationality”. The first query counts every course once per nationality, while the second one - once per nationality and student, since the Student class is in the multiplicative class set for the query and therefore an extra ?S appears in the query distinctness list (leading possibly to counting credit points of a single course several times per nationality).

Fig. 3. Simple aggregation demonstration

The ViziQuer tool supports also explicit subquery introduction via {group}

stereotype on affirmative and optional links [6], useful both for more involved query formulation (e.g. “find all courses passed by at least 10 students with mean mark (over all passed courses) at least 7”) and for merging the results of aggregate queries with different multiplicative class sets.

Course

C

ss=sum (courseCredits)

Course

C

ss=sum (courseCredits)

Nationality

N

nCode

SELECT ?nCode ?ss WHERE{

{SELECT (SUM( ?courseCredits) as ?ss) ?nCode WHERE{

{SELECT DISTINCT ?N ?C ?nCode ?courseCredits WHERE{

?N a ont:Nationality. ?N ont:nCode ?nCode. ?S a ont:Student.

?S ont:nationality ?N. ?C a ont:Course. ?S ont:takes ?C.

?C ont:courseCredits ?courseCredits.}}} GROUP BY ?nCode}}

SELECT ?nCode ?ss WHERE{

{SELECT (SUM( ?courseCredits) as ?ss) ?nCode WHERE{

{SELECT DISTINCT ?N ?C ?S ?nCode ?courseCredits WHERE{

?N a ont:Nationality. ?N ont:nCode ?nCode. ?S a ont:Student.

?S ont:nationality ?N. ?C a ont:Course. ?S ont:takes ?C.

?C ont:courseCredits ?courseCredits.}}} GROUP BY ?nCode}}

Nationality

N

nCode

<<all>>

Student

S

Student

S takes

nationality

nationality

takes

(4)

4 Discussion and Conclusions

The demonstrated ViziQuer tool is freely available online at viziquer.lumii.lv and the users are welcome to download it, import their ontologies/RDF schemas and start creating visually their own SPARQL queries. The introduced notation raises a hope of introducing a wider range of specialists to direct use of RDF/SPARQL-organized data as the ViziQuer tool will assist in creating complex statistical queries (the need for ini- tial user training is foreseen). The potential usage scenarios for the ViziQuer tool invol- ve both exploring SPARQL endpoints [3] and re-engineering relational databases [9].

There is an important practical query pattern “find all x with their related most common y” (e.g. find all courses with the most often received marks in them) that can be expressed in a slightly extended diagrammatical query notation, still queries of this kind cannot be naturally expressed in SPARQL. A practical workaround to this problem would be either to re-formulate such queries to return larger result sets from which the needed results can be obtained e.g. in a spreadsheet, or to translate visual queries directly into SQL, if there is a relational database behind the SPARQL endpoint.

The use cases have also shown the possibility of attribute expression creation and translation. Still, the standard SPARQL functions [1] appear insufficient for practical queries e.g. concerning duration calculation. Notably, the Virtuoso RDF data store [10]

supports the extensions allowing the necessary date and interval value handling.

References

1. SPARQL 1.1 Overview. W3C Recommendation 21 March 2013 [WWW]

http://www.w3.org/TR/sparql11-overview/

2. Resource Description Framework (RDF), http://www.w3.org/RDF/

3. Zviedris, M.; Barzdins, G.: ViziQuer: A Tool to Explore and Query SPARQL Endpoints.

In: The Semantic Web: Research and Applications, LNCS, 2011, Volume 6644/2011, pp.

441-445

4. Soylu, A.; Giese, M.; Jiménez-Ruiz, E.; Kharlamov, E.; Zheleznyakov, D.; Horrocks, I.:

OptiqueVQS: Towards an Ontology based Visual Query System for Big Data. In: MEDES.

2013.

5. Barzdins, G.; Liepins, E.; Veilande M.; Zviedris M.: Semantic Latvia Approach in the Medical Domain. In Proc. of 8th International Baltic Conference on Databases and Information Systems. H.M.Haav, A.Kalja (eds.), TUT Press, pp. 89-102. (2008).

6. Cerans, K.; Ovcinnikova, J.; Zviedris, M.: Towards Graphical Query Notation for Semantic Databases. In Proc. of BIR’2015, LNBIP, Springer 2015, vol. 229.

7. Barzdins, J.; Cerans, K.; Liepins, R.; Sprogis, A.: UML Style Graphical Notation and Editor for OWL 2. In Proc. of BIR’2010, LNBIP, Springer 2010, vol. 64, p. 102-113.

8. Zviedris, M.; Liepins, R.: Readability of a diagrammatic query language. In VL/HCC 2014 IEEE Symposium on, S. 227–228. IEEE, 2014.

9. Cerans, K.; Barzdins, G.; Bumans, G.; Ovcinnikova, J.; Rikacovs, S.; Romane, A.; Zviedris, M.: A Relational Database Semantic Re-Engineering Technology and Tools. In Baltic Journal of Modern Computing (BJMC), Vol. 3 (2014), No. 3, pp. 183-198.

10. Blakeley, C.: RDF Views of SQL Data (Declarative SQL Schema to RDF Mapping), OpenLink Software, 2007.

Références

Documents relatifs

ou n on. On a testé sept absorbants phoniques. Changements d’ITS causés par les changements de masse totale des parois par unité de surface. La cloison de base comporte des poteaux

This framework, called Lattice Based View Access (LBVA), allows the classi- fication of SPARQL query results into a concept lattice, referred to as a view, for data

It is in this context that various works have looked at version- ing in the context of RDF/SPARQL [25,23,7,8,12], with recent works proposing RDF archives [5,3,2,6,20] that manage

SPARQL/T Triple Patterns (TPs) are of two kinds: the NLP ones, that extracts snippets of text and URIs from the document and its annotations, and the RDF ones, that exactly as in

Research Challenge: How should academics and system designers model and optimise search performance based on information needs and not a single query.. Method

Since the new query functionality offered by SPARQL-LD (allowing to query any HTTP resource containing RDF data) can lead to queries with large num- ber of service patterns which

Although SPARQL is a stan- dardized query language for searching Linked Open Data and there are many Web APIs, called SPARQL endpoints, that accept SPARQL queries, a user may

We describe here the ViziQuer notation and tool for data analysis query definition and translation into SPARQL 1.1, involving data aggregation facilities and rich