 our speaker, he's Lucas, he's a sparkle magician, I'm told, and he will introduce you to his favorite querying language, sparkle, and give you a little introduction. And in the second part, he will do some live coding, which is always really interesting and funny, and you can give him some things that he's querying for you, and I'm sure we'll have lots of fun and interesting learning stuff here. Now give a warm round of applause to Lucas. Is this better? Aha, it's a bit too loud, so I'll just talk a bit until they have figured it out. Yeah, so this is going to be kind of two parts, but not really that separate, but in the second part, I'm basically going to write the queries that you suggest, so if you see what I'm going to do here and then think, oh, I have a great idea for something we could perhaps query, then just remember that and we'll get back to that, hopefully. Because otherwise, the second half is going to be really short if I don't get any ideas from you. But yeah, so this is about querying linked data, which allows you to do all kinds of crazy things and answer all kinds of crazy questions, such as I think I had on the slide something like, what are the largest cities with a female mayor, and if you wanted to find that out traditionally, you could go through Wikipedia and try to find all the largest cities and see which ones have a female mayor and which ones don't, or perhaps there's a category with all the cities with a female mayor, but then you have to sort them by population and it's a whole mess. And with linked data, you can find that out much more easily and also all kinds of other things. But let's start with some simple fantasy linked data. So this is a tiny snippet of linked data, some data graph. It's just composed of a load of nodes which are these ovals and rectangles here and they're connected with arrows. And each of these forms kind of a triple consisting of the start node and then the arrow and then the end node. And that's how we represent all the information we have in this linked database. So for example, we can read this as this talk right now happens in Eszema or the dining room, which is the name of this stage here and it's going to be followed by the live querying session, which also happens in Eszema and the live querying session in turn follows this talk again. And the Eszema, the dining room is next to the kitchen, the kitchen, and the kitchen is next to the dining room again. And both of them are part of the Wikipedia which is part of 3603 and the talk happens right now. And at the same time there's also some talk about how state elections or climate elections or something in the cows' west stage starts at the same time. Cows' west stage is part of the cows' west assembly, which is part of 3603 as well. And so this graph has a few important properties. For example, there's some redundant connections here. You could say if this talk is followed by the live querying then you don't really need to know that live querying follows this talk. It's kind of redundant information. You already know it, but it doesn't hurt to have it and it often makes your life easier if you have a little bit of redundancy in your graph and then if you find that one-half of this connection is missing, for example, you can still investigate what's going on. And also in here we have a kind of bi-directional connection. So Eszema is next to Kirche, which is next to Eszema, but this is two separate arrows and it could also be that only one of them is there, so you don't have arrows which go in both directions at once in this data model. If you want something like this you have to have two separate arrows because that keeps the data model very simple. You just have subject, predicate, object and that's everything you have. And then to query this graph you kind of select a tiny part of it and then you remove some part that you don't know about. For example, we know that this talk is followed by live querying and if we remove the live querying part then we can ask something like oh, okay, I did it the other way around, never mind, this way. This talk is followed by which talk and then you have a question because you've left out this part and then if you ask this question to a query service it can kind of, you can think of this like a, down, I only know the German word for this one, template, so you put this over the graph and this has to match the existing arrow and then you see which nodes can you put in here and in this case that's only the live querying or the other way around which talk follows this one. So you can have the beginning of the triple can be a variable like this one or the end of the triple can be a variable like in this case and you can also have more complicated patterns like, no, there's not a more complicated pattern, this is the same pattern. You have the question which talk happens in Estima and you have two answers, this talk happens in Estima and live querying happens in Estima but you can also combine more graph nodes like this, for example, which talk happens in some room which is part of the Wikipedia, so we have one free part here and one free part here but we know that these two have to be connected with happens in and then this has to be connected with is part of to the Wikipedia and you can kind of construct, if you can phrase your question as a kind of graph like this where some parts are predetermined that you already know about and the other parts that you want to find, those are these kind of variables which are here indicated with dashed lines and then you can ask that question to the graph and find the matching results. In this case you have these two matches, this talk happens in Estima as part of Wikipedia and live querying happens in Estima as part of Wikipedia and then if we had more information in this graph here we might also have other rooms, for example, there's this library over there which also is going to have some talks if we had the whole schedule in here we would find those as well and we could also adapt the query so that we don't even make the Wikipedia part fixed we could ask for anything that happens in 33C3 so that would be some variable happens in some room is part of some assembly is part of 36C3 and then we would find this thing as well because if it's the same kind of pattern happens in is part of 36C3. Does that make sense? Hopefully. I'm seeing a lot of nodding hands. That's great. So then we can try to move ahead to actually ask some of these questions to a real query system because in reality you're not going to actually draw these graphs but you have some kind of language where you phrase them instead which looks a bit like this so you have the part select anything where this is kind of like SQL everything else is not like SQL, forget SQL I hear this is easier to understand if you don't know SQL I didn't know SQL that much when I learned Sparkle I think it helped me apparently but what you write down here is this is this kind of description of the graph and these dashed parts which are the variables which you don't yet know those are marked with a question mark because that's kind of what you use to ask a question in this case I've just called it talk but it could be any name basically and then instead of happens in as two words I've just written happens in as one and then with the prefix 3063 and it happens in the 3063 S-simmer because I don't really have a separate dining room at home but a lot of people do so if we just wrote it happens in S-simmer that would be pretty ambiguous and no one would know which dining room you're talking about and by adding this prefix we know we're talking about just the dining room in this at 3063 I think I assume there's no other assembly that has something called the dining room if it does then we would have to add something else here to make it clear and I've used the same prefix for happens in to make it clear which kind of happens in relation we're talking about that it's one specific to congress events and then you could ask this to a career service that has this example graph in it and you might get the response that it's these two talks and at the end you have this period here because if you read the whole thing it's kind of like a sentence again because the talk happens in S-simmer and if you have two sentences then you have two periods so the talk happens in some room and this room is part of the Wikipedia and because we've used the same variable name here down here this has to be the same room and it couldn't just be two different things so if we use two different variable names here room and something else then we would just get all the combinations of talks happening somewhere and rooms being part of Wikipedia without them being connected anyway but because they use the same variable name they have to be connected like this and then you would get these results we've seen earlier what you can also do is leave out the room so when I translate this into English I could say the talk happens in the room and the room is part of Wikipedia or I could also say the talk happens in some room which is part of the Wikipedia as kind of a, I don't know what that's called in English kind of a relative sentence sub-something clause where we don't really talk about the room in itself just as a part of this larger sentence and you can write that in Sparkler as well and then it looks like this and these square brackets kind of describe what the room looks like without giving it a name so in this case you can only select the talk up here and we don't have a room variable but if you don't care about what the room is then that can be very useful I've also changed something else here I've replaced the 3063 in is part of with schema which is another prefix and schema is kind of this collection this collection of useful prefixes and other nodes that you can reuse for example if you're describing things you have on your website you might say you have an article with a schema title and a schema publication date so this was mainly introduced by Google and some other search engines but we can use the same vocabulary to talk about our talks because is part of, is one of these standard terms we can use for that and what else do I have? okay, the next thing I have is actual queries so I think I'm just going to I'm almost going to switch to wikidata so I should talk a bit about wikidata so all these examples here were just on some example graph which I made up here and threw on a slide with a lot of probably over-engineered titsets Latter is magic which I shouldn't have wasted that much time about but it looks nice but if we want to write real queries we could load this thing into a query service but it wouldn't be that interesting because it's kind of small but there are a lot of real data graphs out there that you can query with this query language Sparkle and one of the coolest ones, at least in my opinion is called wikidata or wikidata there's some kind of discussion about how it's pronounced and it's kind of a free database of anything that's relevant and it's part of the same family project as wikipedia and wikimedia commons and other things and it's also maintained by the same community of volunteers and you can find all kinds of really interesting and cool and funny data there so all these example queries which I have here we're just going to ask to wikidata but first I would just give you one or two minutes to try to imagine what this question would look like either in the graph format or in the Sparkle format just try to figure out how you would formulate which software is written in Bash as a kind of this kind of graph query and then we can see what we can come up with so I didn't think this through I need some waiting loop music now well does anyone have a kind of idea of what the graph looks like because I'm going to uncover it now and then you can compare if it looks the same way so it would look like this at least using the wikidata terminology so instead of is written in the property is called programming language and this could also, this could be called Bash or born again shell or GNU Bash or something doesn't really matter and in Sparkle it looks like this which is a lot less readable unfortunately because one of the things about wikidata is that it's multilingual so instead of saying programming language we say p277 and I think that's beautiful no but this is a property ID and you can look up what this property is called in English or in German or in any other language so if we look at wikidata.org and look for, I think I forgot to zoom in there we go I hope that's readable property p277 that is the property programming language at least in, okay you can read that there we go at least in English, in German it's programmiersprache and it has tons of other languages too so you can use wikidata in any language you want which is very nice I could also show this page in a different language and then all of this would look different the downside is that the Sparkle query is not quite as readable because you have to use all these numeric identifiers but you don't have to memorize them at least so let's, oops try to write this query select anything where and we have the software which is, which has the programming language bash and then we have to add these prefixes first so bash is going to be a wikidata item so we have reviewed it with WD and that's the prefix and then if I press control space or I think on max command space works as well then it searches for bash and shows me these suggestions and then I can just select the right one in this case blue bash and then there I have the ID and if I move the mouse over it again then I can see what this ID refers to so it's not quite as bad as so on the PDF slides you just see the ID actually on the query.wikidata.org website let me make that a bit larger so you can all see it and if you want to try that out on your laptop here it's a bit more readable and for the programming language we use a slightly different prefix which is WDT which stands for truthy so we're only interested in truthy information and not all the information and then we find this property p277 and if we run this query with control enter or with this button here then we get a collection of other IDs yeah, does anyone want to guess software which is written in bash this one has a very low ID that is going to be loading there we go, auto package some package management system that I haven't even heard of but it's written in bash so wait so here you can see all these statements and programming language new bash is the one we looked for and unfortunately, so this is not a very useful list so one thing we can do in the wikidata query service which is pretty specific to wikidata is to add the so-called label service which is basically magic that you don't need to understand but you write something like serve or service and then with control space again auto completion and it suggests you this thing and you just keep that in your query at all times basically and then you say I would like to have not just the software but also the software label and then we get down here the label of the software and I can also add the software description and then we also see what is described, at least if it has the description and then the query results are already a lot more usable and I'm just going to rename this to item and then we can edit this query however we want in the variable name we will always kind of match because the next query won't be about software anymore so it will be confusing if we just still call it software but there is some software here like Apache Yetus Ruby version manager wikidata missing pictures, pyhole, all written in bash okay I have several more example queries here which are kind of simple should I skip ahead or is it good if I do a few more simple examples skip ahead, is that okay okay then that's so who was born at sea is not all that interesting just place of birth at sea, we have a special value for that it's not a very interesting list I think a few results just 5 or so because most people are going to have place of birth Atlantic Ocean or something which places are located on the White Elstor just something for the Leipzig people and where does never ending story take place, this is actually kind of cute, let's do that also this is a bit interesting because in this case the variable is in the last place and not the first one so that then we have the never ending story in the beginning in a rate of location and then the item is at the end at the beginning of a triple and it works just as well except that a lot of these don't have a label in English, so let's add German as a fallback language and then we get all of these places which someone added to Wikipedia at some point let's see if there's any useful information about them so they all have IDs in the same range so it looks like they're all created at the same time because the IDs are just increasing all the time so the Gelichterland is a place from the never ending story, it's a fictional country it has a capsule which is this fictional place it's located on the this terrain feature, it's present in the never ending story and it depicts horror fiction I'm not sure about that but let's leave it alone for now and skip to a slightly more interesting query which is this one, which popes had children so what is the graph going to look like for this, how many how many triples are we going to have so a triple is an arrow and another note, how many triples would you need for Pope as a child let's do a raising hands who thinks you need zero triples okay, who thinks you need one triple who thinks you need two triples that's more people does anyone think you need three triples no, okay so mostly two but some people think one so the people who think it might need one triple perhaps are thinking of something like the Pope which is the leader of the world by catholic church has a child this child or it's called item but that's not going to have any results or it could be the other way around and you could say that let's just comment this out the item has a father the Pope and that doesn't work because the children are not directly connected to the item for the office of the Pope instead it's going to be two levels it's going to say the child has the father some person and then the person has the office Pope or has the position Pope or is a Pope or something so you need this level of indirection so in the graph that looks either like this or to be the other way around so either child has a father Pope which has position held Pope or the Pope has a child and also position held so that's kind of an example of the redundancy I mentioned earlier we have the two directions child and also father mother so you can ask your query in two ways and it doesn't really make that much of a difference assuming that the data is complete and I think someone occasionally runs queries to check if any of these circles are missing so let's try one of them let's just stay with this one so the item does not have Pope as father it has some Pope and then this Pope has position held Pope that's at the Pope level and Pope level is enough and then we get 24 results so we have a Duke of Parma who was the son of Paul III Paul III had three children that saw by this wow, Alexander VI was very busy and some of them just have we have duplicates Giovanni Borgia and Giovanni Borgia should I demonstrate wiki data editing or do we just ignore this so someone imported a lot of information from this peerage database and apparently we have some duplicate items here let's just leave those alone for now in fact I think this and this also looks suspiciously similar to Giovanni Borgia unless he had two children of that name I mean he could have so this we have a date of birth 1470s 1498, no that might actually be different children not a very creative father in the names yeah and wait, that's a Pope who's a child of another Pope very interesting and another one, and another one we have three Popes for children of other Popes let's search for those so we would also need for that that the item has position held and I could copy paste this but just do this so the item should have a father Pope and the item should have position held Pope and the Pope should also have position held Pope and in this case it would probably be less confusing to call these child and father because this is also a Pope now but variable names one of the three hardest problems in the future yeah, we have three children who are three Popes for children of other Popes, wow I'm actually going to save this query Popes who were children of other Popes but actually we can future prove this a little bit because right now we've only said that a father should be a Pope but in case there's ever a female Pope let's just switch this around and say that the Pope should have the child item and then it's going to work even if the Pope happens to be female and is a mother instead of a father there we go, same three results okay and let's keep that and open a new tab for next queries yeah which Microsoft software runs on Linux okay, that's not that funny so perhaps you can just skip it I don't know Joe kind of ran out of steam a while ago basically looks like this and it's like visual studio code and three other programs what are some compositions for orgers this isn't funny at all but I just find it very nice it's just an awesome sound and so that would be the composition has the instrumentation organ and also orchestra which we can write as item label composition instrumentation this one orchestra and also composition organ and then yeah, this should be item and also I forgot to add the label service there we go and we have 12 results which is nice if you want to listen to any of those we could also check if any of them have an audio file on commons let's see one, okay I think we've heard this one already so but one thing that's kind of annoying here I should have mentioned this in the last query I think so I had to repeat the item and the property ID which is a bit annoying and makes it pretty difficult to read and what you can do is leave that out and you can also do this in the previous case so let's actually go one slide back so here I didn't write twice that it's the software which should have the developer and also the operating system I just wrote the software has developer Microsoft and also with a semi-colon at the end instead of a period it has operating system Linux so if you read this as English it's just one sentence where you don't repeat the subject twice software has developer Microsoft and operating system Linux instead of software has developer Microsoft and software has operating system Linux and if the property here is also the same thing then you can even leave that out and add a comma at the end and just list the two values and you don't even have to repeat the instrumentation so let's do that here and abbreviate this query and it has the exact same 12 results just slightly more convenient to read and to write at least hopefully also to read I don't know but you don't use the comma that much the semi-colon is pretty useful like we could have written this as the Pope has the child and also position held like this means exactly the same but you can immediately see that both of these refer to the Pope because there's just a bunch of blank space here yeah so then we have this one, this isn't funny at all but there are a lot of people who used to be in the Nazi party during World War II and then who later just went back into civil life and even reserved the Bundesverdienstkreuz the Order of Merit of the Federal Republic of Germany and you can find those in this case I've done it with three triples which is the person was a member of this political party and received this award and also I've added that they're instance of human because we also have a lot of fictional data on WikiData, you already saw that with the never ending story stuff earlier so there might also be a fictional character who was member of this political party and who received the award and we're not really interested in those so we add instance of human and then we're certain that we only get real results and not fictional results and it doesn't really cost us anything because the queer service can optimize it pretty well so let's write that actually let's do that here so the item should be instance of human which is Q5 item and member of political party and you can see I can search by the German abbreviation and find this even though it's not available because there are search aliases and also award received the Undersverdienstkreuz because I can't be bothered to type in the whole English name there we go and we find I think how many results? 11 results yeah and this actually isn't quite correct because in theory you don't get this order this order has like 11 parts or something you can get the grand cross with distinction or you can get the star or whatever I think it's listed somewhere here you can get the grand cross special class you can get the grand cross special issue you can get grand cross first class blah blah blah and so in theory any of these people should have one of these awards and not just order of merit but I think when I checked all of the results just had directly order of merit but actually no we can try to search for the correct ones instead so it would not be part of this directly it would be award received would be some award such as this one and then this award is part of the order of merit so award part of let's see if that finds any results oh oh oh dear yeah that that's a lot of results Herbert von Karian that's depressing okay yeah okay so I think when I tried this out and didn't find any results I just did something wrong because this way we find a lot more results and if we so we don't actually select the award here because we don't care what kind of award they got so we could also use this abbreviation again like this so we just say they got some award which is part of the order of merit and in this case we could even abbreviate that further and say we put a slash here and then that kind of describes a path that you have to take from this item to this item and you have to first get to some award received and then that has to be part of something else and you can add as many elements here as you want and then we get the exact same 802 results and a lot of well-known names here and if we want to find the original 11 ones that directly had the order of merit as the award received we can add a question mark here which is just like in a regular expression it says this part is optional they can have directly received this award or they can have received some award which is part of the order of merit and then we should get 813 yeah 813 results so 802 plus the 11 from earlier and I'm starting this with the instance of human which and the cruise service is going to reorder this because searching for all the humans and then filtering for the ones who were in this political party and so on wouldn't be efficient so I don't have to worry about that I could write it in this order I could shuffle it around doesn't make any difference the cruise service already knows in which order to do these things so you don't have to worry about that you can just start with is a human and then add everything else yeah I think I have one more complicated query here yeah so that's one of the examples I mentioned earlier the largest cities by population with a female mayor so the graph for that is I think the largest one I prepared for the slides except the one in the beginning and it looks like this we should have a city which is a city instead of city and it has a certain population and it has so for the mayor we use the same property as for head of government and if you don't know that you could look at some city like Berlin and maybe you know what the mayor of Berlin is called what was it something Miller I think yep and then you can see aha the property for the mayor is head of government or you could also search for the city should have the mayor and then you still find head of government the right property that mayor should be a human and she should have the gender female oops there's a question mark there for no reason at all that's not a variable that should be the fixed value sorry so let's put that there we have a city which is instance of city and it also has a population which we're going to use later and it also has head of government nope that's wrong not the office held by head of government the head of government itself which we call the mayor and then the mayor is an instance of human and gender should be female come on female and let's select the city, city label mayor label and also the population and then we find some 83 results that's not yet the largest cities with a female mayor that's just all of them and in wikidata we know about 83 apparently and if your local hometown has a female mayor just go ahead and add it to wikidata and it's probably relevant so the relevance criteria are not as strict as on wikipedia fortunately but if we want just the most populist ones we can go a bit back into sql them and say we want to order by the population and in sql you would write desk afterwards and in sparkle it's different you write desk of population I think it's nicer that way but perhaps it would have been nicer to just stick with the sql syntax I don't know and you want to limit this to just the 10 most populist cities for example and here we go tokyo is currently the biggest one then hong kong, bakdat, surabaya, rom, yeah and oh this doesn't make that much sense karakas has two mayors anyone yeah exactly so we're only supposed to get the current mayor head of government yeah does anyone know which one is the current one or we could just check wikipedia karakas which hopefully doesn't get the information from wikidata yet so it's not circular and the mayor is karlina karlina gestari I don't know okay so let's add a new one ah doesn't have an item yet is that the mayor or is chief of government something else doesn't occur anywhere else on the page local government mayor no okay so let's just I don't know doesn't she have a wikipedia article just occurs in some lists and she doesn't have a wikidata item yet no then we'll do some live wikidata editing wasn't part of this talk but let's just do it karlina gestari what country is that venezuelan venezuelan politician and that sounds like a female name so I'm just going to guess and check that after the talk so she's definitely a human and gender is female and that is going to be enough for our query do this search again, there we go and set this to preferred rank so that's how the query service knows that this is the current value and it should only return this one and ideally one of the head of government values should have this preferred rank to mark it as the correct current value and then all the other ones are additional data that you can use if you want but it's not the main value and we're not going to get it in a simple query and then there's an error because kalakas isn't some kind of political territory entity and it should have a start time, I don't care right now okay so we run this query again and hopefully get just one result for kalakas this time no we have to wait a bit until the query service is updated because it's kind of it just keeps watching for changes and eventually it will get the new data but okay it might take a bit longer anyways that's how that query works does that make kind of sense, okay great yeah I think this is almost exactly what I wrote here except with some labels in the label service yeah there is one problem here which is for example I happen to know that Mexico City is a very large city with a population of population almost 9 million so it should be right after Tokyo in front of Hong Kong and the head of government is a Claudia Schimbbaum or something which sounds like a woman so we should get this result in the query the reason we don't is that Mexico City is an instance of big city and we've searched for instance of city and there's some debate about does this class even make sense at all, I think this is actually the German classification of a big city is one with 100,000 inhabitants and in other languages or countries a big city might be something else but for now the data is what it is fortunately what we have here is the information a big city is a subclass of a city slash town which is a subclass of locality which is a subclass of wait we should arrive at city at some point but I think we've already gone past that it's also an instance of capital let's go down that instead a capital is a subclass of city there we go can tell the query service to follow these subclass connections then we should find these cities and one way to do that to make it work for Mexico City would be to say it has the instance of some with the path again subclass of city and then we would find Mexico City but we would not find all the we would still find Tokyo because it's still a capital I guess but we've missed a lot of other cities I think which we used to have yeah Rome for example is gone because it's that's just an instance of city directly and we've now made the subclass mandatory what we should do is make it optional or even better we should say there can be any number of this element so there it can be an instance of city or it can be an instance of a subclass of city it can be an instance of a subclass of city it can follow any number of elements that was this that's what this star means just like in a regular expression and then we probably have to say we only want the distinct ones because there are like five different ways to go through the subclass tree until you found city and we're not interested in different ways but now we should get Tokyo and Mexico City and Rome is also here and Caracas is completely gone because we've found enough other cities which we were missing earlier so we kind of have to watch out and sometimes use elements like this subclass of tree is pretty common or with something order of merit we had to use this part of you have to watch out if the results are plausible or ideally you know some item that should be in the results and then you check is it there, why is it not there and investigate like that but that's a fixed version of the query and yeah if we were not interested in mayor we could do the same trick again but yeah doesn't make that much of a difference and I think yeah that was almost the only difference except that I removed the population so you can order by a variable that you don't select in the end if you want and I think I am out of slides so yeah if you want to see more queries you can look at these twitter or social media accounts there's a huge list of example queries on wiki data which is so big that it's getting too big for a wiki page and people had to move some queries out there and it's kind of just grown since 2015 or something and there's a lot of garbage there but also a lot of useful queries if you want to look at that and I had two more queries in the talk description which we haven't talked about yet and I think we have the time I can just try to open these which films start more than one future head of government does that work it doesn't can I copy the URL here yeah copy me get this so that's a kind of longer query which is why it didn't really fit on one slide but the important film is you have some film instance of or subclass of film it has a publication date and a cast member which is the head of government and the head of government held some position some head of government some subclass of head of government and that should be after the film was published and then you get a bunch of results I think this takes like 11 seconds or something and you get like films with Schwarzenegger and one other actor who became US governor I don't remember the name and you also get a lot of or several films from World War 2 with future French heads of government which is really cool so like a film that was shot about the liberation of Paris where it's kind of a stretch to call them cast members but they're definitely in the film and if we get the result then I can tell you what the film is called it might be busy right now so you get up to 60 seconds in the career service and then in the end your career is killed if it takes longer than that so sometimes it can be a bit of struggle to make the career work within 60 seconds there we go 50 seconds that was close so there's the liberation of Paris with Charles de Gaulle who was president of the council and president of the provisional government and also Georges Bidot who was prime minister and president of the council and other stuff we have several Indian films with people who went on to become chief ministers and then down here there's some Canadian politicians apparently and then here's Arnold Schwarzenegger and Jesse Ventura who both became governors and also starred in several films and the other thing was we have a lot of data about the British government because a lot of volunteers have just been slaving away at that data and adding more information I think they have all the parliaments complete with party affiliations and everything for at least the last 100 years and some partial data for a lot more than that because they have a very long parliamentary history and then you can do queries like how many people named John are there in Parliament and you can see when the women were finally more than just the men who were named John and it's kind of an amusing graph or not so amusing it takes a while as well I hope it doesn't take 50 seconds but it looks like the career service might be busy at the moment but I think it was something like in 1991 or so is the crossover point oh yeah and I should mention anyway so everything we saw right now is just a lot of tables but you can also show results in different ways such as a line chart there we go so in 1992 this was the first parliament which had more women than Johns and then the Johns have slightly declined and the women have gone up to 220 how many people are in the House of Commons in total does anyone know no so I don't know what percentage this is this was the latest election from 12 December already in there yeah what? so the query looks like this so this one is broken into several parts we first find all the members of parliament so there should be a human again no fictional people and then they should have some position held which is a subclass of member of parliament in the House of Commons and then there should also be a parliamentary term on that so that we know which parliament it is and when it starts and then down here we import all those MPs and filter for just the ones with the given name John and then we filter for just the ones with gender female and there's an optional subclass often here because currently the data model is that there is a separate item for transgender female and someone can have a gender transgender female which is a subclass of female and there is a discussion right now to get rid of that and have a separate property for that instead and then all the trans people just have gender the right gender and you don't have to mess with subclass but right now we still well we need it in theory I don't think there are any MPs in practice but you know we can just keep it in there and then we import the results and get them here either as a line chart or as a table if you want to sort it by the time the data starts in 1990 apparently so we have exactly 100 years of history there you can also show it as a bar chart if that makes more sense no it doesn't, that makes no sense line chart is the right one oh right but if you show the line chart again that it breaks for some reason there's some bug there so let's just show it again there we go that's the right chart yeah and I guess oh wow it's only 10 minutes so I guess this is the point where we start moving to the live querying part and I was told I should make at least a short break for the stream so the angels know where to cut between but we could also take a 10 minutes break and then start the next talk on time does that sound okay or is 10 minutes too long if you're going to stay here which will be very nice then please think of some example queries that you think we could write and then I can try to write them because otherwise I'm not going to have much to do but yeah let's do a 10 minute break and see you then, thank you so far