So thanks for coming to my talk. I'm really happy to be here at EuroPython and just share some Python-y things with you. So my name is Hailey Dunbraver and I'm a web developer. I think I became a developer because deep inside my heart, I'm a nerd.  And I live in San Diego. So Scotland is an experience. In San Diego, it's nice, about 99% of the year. And I'm a big fan of nature and of hiking. If it's so nice outdoors, you should get outdoors. And just things like that. It's all amazing and beautiful from the little water ripples where the ocean meets the beach to the waves out in the distance. It all has a similar sense of wonder. So at my job, I work primarily with Python using Django. The best part of my job involves training great non-technical employees to learn Python and Django and to join our dev team. And recently, we've had them use the Python Turtle module for some exercises. It allows them to draw with code and it's pretty cool. And here's their finished work. They are signed, placed on the fridge, and these are drawings of Pusheen the cat. And it was super fun. So now you know a bit about me, but you've also been introduced to our topic, which is namely recursion, fractals, and the Python Turtle module. So wait, we've been introduced to those. Well, let's break it down a little bit. And we'll tackle recursion first. So side note, I just added this yesterday. You can go see a visual representation of recursion at the camera obscura attraction near the castle. Using mirrors, they created this ladder that apparently tunnels through the earth all the way to Australia, but you use it at your own risk.  So inside each part of this description is a description of itself and down and down and down. You can think of it a little bit like this picture of the Russian nesting dolls. So what is recursion? Well, according to my very favorite learn to code resource, which is called how to think like a computer scientist, recursion is a method of solving problems that involves breaking a problem down into smaller and smaller sub problems until it can be solved trivially. The recursion we'll look at involves a function calling itself. It's a problem within a problem within a problem. So it's probably easiest to get the sense of recursion by looking at an example. And we're going to look at a recursive function to solve factorials. So brief explanation review of math and factorial is going to be equal to the product of all positive integers less than or equal to itself. So here we have five factorial and that's going to equal five times four times three times two times one, which happens to be 120. But inside five factorial is four factorial and inside that is three factorial and then two factorial and then one factorial. And you can see by the color coding on this slide, it helps you see how this is kind of like the Russian nesting dolls, right? So we're going to dig down to the trivial problem, which is going to be one factorial and then we're going to resurface easily solving problems along the way. Here is some sample code to solve the factorial problem. And it's written recursively. Now, a recursive function has three features that we're going to explore. First is the recursive case, which you can see here is where I have if num is greater than one. Now, in the recursive case, the function calls itself. We see here we're returning num times recursion factorial of num minus one. Now, secondly, we have the base case. The base case here is our else statement where we're returning one. Now, this part of the function will not call itself. It's the trivial problem of one factorial. It's the tiniest doll in the nesting set won't call the function. It's there because if it's not, this program will just keep running and then we all die. And so we have to make sure it's in place or else it's just it's not usable. So the third feature that I want to talk about is the third feature is going to move toward the base case. So you can see this here where recursion factorial is called, but it's called for one less than it was previously called. And so it's going to move us closer and closer to being equal to one. So by the way, anything you can program recursively, you can also write a program that won't use recursion. So here's an example of what the factorial problem might look like solved not recursively. It will work. It works fine. It's maybe a little less elegant than the recursive function. All right. So that's recursion. And let's talk about fractals. Fractals are a phenomenon in both math and nature. A fractal is a never-ending pattern with self-similarity across scales. So this is a gif of a caulk snowflake. And no matter how much we zoom, it's going to look the same. It may be at 10x scale. It may be at 1x scale. It may be at .1x scale. We don't know. And they all look the same. And so this is an example of a mathematical fractal. But we see them all around us in nature too. It's kind of like how I mentioned that in San Diego, the waves out in the ocean had a similar beauty to the water ripples where the ocean meets the sand. Other examples could include lightning. See the bolts there where the little tributaries look very much the same as the main branch. These broccoli, which I think are really cool. Each little prick will look generally the same as the full head of broccoli. And of course, real snowflakes, not just caulk snowflakes. And just as an aside, I spent a few days in London before making my way here. And I found this example of a fractal in the Baker Street Underground Station.  One could imagine that the tiny silhouettes are also made out of tinier silhouettes and on and on and on. All right. So we have recursion and we have fractals. But how are these connected? Well, fractals can be described with recursive functions. Yep. And that's cool. But can we experience this in our real lives? Well, I'm going to introduce you to my favorite Python friend, the Python Turtle Module. So what is the Turtle Module? It's a cool, it's a cool bit of code included in the standard library. Before the concept was used in, before it was used in Python, it was used in the logo programming language and this dates back to 1966. So it's been around a long, long time. And what we're going to do is we're going to imagine that a turtle is placed on a big canvas. Its tail has been dipped in paint. And when the turtle moves around the canvas, it draws a line. The turtle is also perfectly trained. So you, the programmer, can tell the turtle, okay, move forward 20 steps, rotate to the left, 90 degrees, et cetera, et cetera. And with just simple instructions, we can create really interesting patterns. So we're going to draw, I like to call this a spirograph. I don't know if European people had those toys growing up. Yeah. So it's very similar to that. And we're going to instantiate a turtle. And it's going to execute some code that's in a loop. And so you'll see it draw a triangle, rotate, and then repeat the process. So let's pull that up. So we're watching it go. Now it's kind of fun about this. I've sped it up so it's kind of a turtle on coffee. But that way we can see it easy. So what's fun about this is you might be teaching someone to code and they don't really understand the concept of a loop. Maybe you're covering that. Well, if you have them program a turtle, you can actually see it execute. And it helps take kind of out their spacey ideas and gives them a concrete shape and form that people can relate to. All right. Going to pull up the slides again. All right. So that's basically the feel of the Python turtle module. But what the really exciting thing we're going to do is, is to draw a fractal with the Python turtle module. So we're going to, let's see. So we're going to draw this triangle. It's called the Sierpinski triangle. And you can see what our turtle drawing is basically going to look like when we're finished. And I'm going to show you the code first and we can talk about it a little. And then we'll watch the turtle run. So I want to draw your attention to a couple of interesting things in this code. And the first of those being that it's necessary to specify how many layers deep we want to go with this triangle. If I had a sharp enough pencil and a lot of patience, I could just keep drawing triangles. You know, just making this finer and finer and finer. But we don't really want to write a program that'll do that. We want to give it a base case basically. We're going to specify how many layers deep to go and then that way we'll hit the base case and the recursion will stop. Now second, if I were drawing this by hand, I would probably follow reasoning similar to the GIF here where I draw one big triangle and then draw little triangles in basically this pattern. However, this is not how the turtle is going to do this. You can see in the code, it calls the Sierpinski function three times. And the way you can kind of think about that is if you had those Russian nesting dolls and you opened one of them, instead of finding just another Russian nesting doll that has nested dolls inside of it, you would find two or three Russian nesting dolls inside this Russian nesting doll. And each of those three would have other dolls inside of them and on and on. So you don't necessarily go layer by layer, but you dig down to the very bottom of one of the nesting dolls, resolve it, and then move back up. And then you move back down through a different nesting doll. And we're going to see that as the code executes. So I'm going to pull that up again. Hold tight. All right, are you guys ready? Let's go. Now this one is super sped up, but you can see it went down to the very bottom, the base level, and executed completely before coming back up and addressing some of the other triangles. And we're going to show you a schematic that'll kind of hopefully make that make a little bit more sense. So here's our code. And here's the final product. And I've color coded some of the levels so you can get an idea of the recursive function calling itself and then calling itself, right? So the little orange triangle is the smallest and is the base case, and the larger ones are a couple levels up. Now, what have we learned? Well, we've learned that recursion is awesome because it's recursive, which is awesome. And we've learned that pythons and turtles are friends. We've also learned that fractals can be mind-blowing even when you're entirely sober. So what can you do with this info? Well, first, if there's someone in your life that wants to learn to code, might be a child, a niece, nephew, son, daughter in your life. It might even be you if you're fairly new to the Python scene. If there's someone in your life who wants to learn to code, this is an awesome resource, and I highly recommend the Python Turtles. I think it's your answer to learning to code. At least a good introduction.  Maybe refactor something that you already wrote and make it recursive, or solve a problem on projectoiler.net recursively, or even attempt a fractal. It could be this Serpinski triangle, the Cox snowflake we saw earlier. I also have an example of a fractal tree on my GitHub, and the link will be included in the slides if you want to see that. And maybe you're not up for recursion, but I would still encourage you to give the Python Turtles a try, because it's refreshing to have fun with code, and I 100% certify that using the turtle module is fun. And if you do draw something, please tweet me a screenshot. I'll retweet it, retweet is a hard word. I'll retweet it and rate it out of 10. I use the dog rating method for evaluating Python Turtle creations. This method is where all will score above 10 out of 10, because just like all dogs are awesome, all Python Turtle creations are amazing. You can find me on Twitter here at haleydenby. And I guess that's a wrap. Relevant links will be tweeted, and I will share my slides with the EuroPython people. The slides have links to sources and to relevant information. You'll find them here. Just to give you more info on recursion, fractals, and the Python Turtle module. Thank you so much for listening, and you're all 14 out of 10, and I know I said no questions, but we can do questions. It changed my mind. We can rerun the turtles, too. Oh, we can definitely do pretty pictures. I appreciate a pretty picture. But if we leave that up, there will be a short break before the afternoon keynote that's back in here.  And that's that.  Yeah, there's a link to my GitHub repo on the slides, which I'm sharing with EuroPython, and I'm tweeting out from my Twitter, Haileydenby. Thanks, everyone.


This is Orson Welles speaking from London. Here in the glimstone structure on the Thames, which houses Scruff and Yard, is a warehouse of homicide, where everyday objects, an ink bottle, a child's raincoat, a sofa pillow, all are touched by murder. Here's an open-hand wrench. It's a familiar object. If you own an automobile, you own one of these. At least you've seen a mechanic use one. The steel shaft, about eight inches long. The shaft bulging into a curved shape like a horseshoe, which fits a bolt exactly. Simple tool, almost beautiful in its slim efficiency. Well made, isn't it, Inspector? We are familiar with these things, Doctor. They are quite common in the weapon. Yes, of course. One skull could be cracked rather efficaciously if this were brought down hard on it. Today, this open-hand wrench can be seen in the Black Museum. All of the Criminal Investigation Department of the London Police, we bring you the dramatic stories of the crimes recorded by the objects in Scotland Yard's Gallery of Death, the Black Museum. Here lies death. Here in Silent Rose is the ordered catalogue of the violence wreaked by man on fellow man. Here's an empty cardboard match cover. Perhaps you've talked one into your own wastebasket this very moment, but not like this. Let's hope. No, from this one, they sulfur-headed matches were ripped to start a fire. A woman died in the burning building. Later, a man died. The end of a rope, trapped by the printed advertisement on this match cover. Ah, yes, here we are. Here's the open-hand wrench. It's a common tool among mechanics, even among non-mechanical types. Bookkeepers, clerks, teachers, no time of violence or death upon it, merely a bit of shaped, patterned steel produced for use in the manufacturing repair of modern machines. Look at it in ordinary circumstances, and it'll evoke no thought of tragedy in you. Or even in the motorist who traveled an English highway one quiet spring morning. Going at a normal speed, enjoying the fresh sunlight, the new clean green of fields and rising hills, the road curved ahead, white-posed smart the edge of the embankment, the road healed slightly turning to the left. Ah, quite a view. Gee, God, it's a nasty curve. It's not awake. That fence. There's a car down there. It's only until he's back in his own car, speeding toward the nearest town, toward the nearest police station. There. There's a wreck on the curve about a mile south of here. You have anything to do with it, Mr. Oh, no, no, no, of course not. I noted the broken fence and for the car down the hill. Ah, I say there seems to be a woman in it. Look, you better come and bring help. The doctor who was also the local columnar needed little time to determine which of his functions would call for at the wreck.  Must have gone off the road during the night. I've notified the superintendent about the accident, doctor. Yes, well, you fellows will want to trace the car. Any identification on the body? Nothing in the woman's purse, sir. It ought to be laundry or dry cleaners, Mark. It's pretty hard to identify these days, doctor. Yes, of course. You can tell the ambulance men to take it to the hospital. Hospital, sir? Or topsy. I can't just sign the certificate, accidental death, you know, Constable? Yes, sir, very well, sir. The ambulance drove off to the local hospital. Dr. Mason followed in his own car. At the wreck, the constable saluted a newcomer. Good morning, sir. Good morning, Johnson. Sir, I'm turtle, I see. Yes, sir. This is the man who discovered the wreck, sir. Mr. Frisbee, superintendent Foster. How do you do, sir? Mr. Frisbee, yes. You, uh, left your name and address? Well, with the constable, sir. Um, if I may, I have a business appointment.  We'll send for you if we need you for the inquiry. Oh, thank you, sir. Well, just let me know if you want me. I'll be available any time, sir. Anything extraordinary, Johnson? Nothing, sir. As far as we've seen, no fire, no, sir. I'll have a look at it. Very good, sir. Superintendent Foster poked around in the twisted metal, and point caught his attention. Johnson, any idea of which way she was traveling? Downgrade, sir. There are rather clear tar marks on the roadway, leading to the break and offensive. Downgrade. Strange. The gear shift lever is in second position. Second gear, sir? Apparently. That grade isn't that steep. Just a point. Well, a woman driver, strange road at night. She wasn't in the driver's seat, sir. Oh? Tossed over as the car fell? Can't say, sir. I'd have expected, sir, that she'd have been pinned behind the steering wheel. Yeah. You may be right about that. Well, they'll leave things as they are. The insurance people usually want to see these wrecks. Open end wrench, sir. Probably from the air scuntable. I was going to say the toolbox, sir. The toolbox was locked. No other tools around. Well, bring it along to the station house. No sense leaving it out here to rust. And usual routine. Place the registration of the car. Locate the owner or the next of kin. And check if it was the woman's car. Another auto accident. Another careless or sleepy driver. The usual telegrams were sent. The usual telephone calls were made. The same afternoon, Constable Johnston reported to a superintendent. Here's Johnston. Papers on the accident, sir. Yeah, yeah. I see. Owner, Martin Beach. Avan Mules London. Has he been notified? Yes, sir. He's on his way down. The woman was his wife, sir. Must have been a shock. I took the call, sir. He kept saying he couldn't understand what she was doing all the way out here. Well, we'll deal gently with him. Dr. Mason reported yet? No, sir. Nothing on the autopsies yet. Taking him a long time? Well, let's see. Get me Dr. Mason, please. At the hospital. Did you make certain on the tire tracks, Johnston? We did, sir. They matched perfectly. The car was coming down, sir, on the side of the road away from the fence. It seems to have swerved suddenly, just above the curve, and made rather a beeline for the edge. Are you suggesting she went over purposefully, Johnston? No, sir. It seemed like a point, sir. Most cars at least tried to follow the road, sir. I notice you keep referring to the car, and not to the woman. She wasn't in the driver's seat, sir, when we found her. Stickler for detail, aren't you, Gunstable? Get in. Ah, you're both here, Johnston. I just put a call to you, doctor. Yes. Yes, thank you. Yes, he's just arrived. Well, what did you find, doctor?  Just a deduction. You don't usually take this long time on these jobs. I didn't expect to, until I found alcohol in her stomach. Oh, drunken driver. Oh, I wouldn't know about that. In any case, she wasn't driving when the car went through that fence. Johnston has been suggesting that rather stubbornly. He couldn't be more right faster. Why not? The dead don't drive. Hello? Anything else? Quite a bit. In the first place, death was not caused by the accident. She was dead well before the car went over. You told us that? You know how? Stangulation. Choked. Probably unconscious at the time. Well, what do you base that conclusion on? Four bruises. Hey, the neck. I just heard, so I thought the accident. Well, the dead don't drive, and they don't bruise, Constable. Those marks were made while she was still alive. I see. Definitely murder, doctor. Definitely. I'd like to see the body. Come along, Constable. Three men enter the morgue at the small country hospital. Three grim faces betray no emotion as they view the woman's body. The doctor says, You'll notice the marks, the strangest thumbs made there. The obvious bruise is here. Just below her hairline, on her forehead. Superintendent of police says, I see. Interesting the shape of that bruise. Almost like a small horseshoe. Differently, the Constable clears his throat, inquiring grants from his superintendent. The young officer says, We might try for actual size, sir. That kind of mark could have been made by that open-end wrench. And today, that open-end wrench has to be seen in the black museum. The doctor placed the bulged end of the tool against the woman's forehead. The three men stood there silently a moment. The Constable spoke. No question about it, sir. Not as far as I can see. Johnson, when this beach fellow arrives, say nothing about any of this. And I shall want a trunk called placed immediately. I want to speak with Inspector Hall at Scotland Yard. The ponderous, inevitable joggernaut that is, police work began to move. Gain momentum. A fast car brought Inspector Hall and Sergeant Williams from the yard before train connections permitted the arrival of Martin Beach. The inspector listened intently as Superintendent Foster outlined the details. Then, finally, no fuss, no newspaper headlines. Detectives were dispatched to run a check. Shortly thereafter, a grief-stricken husband arrived at the station house in the company of Dr. Mason. There's no question about my identification, Superintendent. Dr. Mason will bear me out. I knew her the moment that that is... Doctor, yes, it's Mrs. Beach. I can't understand it. I simply can't. She was a good driver better than I. How did it happen that she was out alone? We live at a quiet life. Even Moose is in the suburb of London, really. She'd often take the car for a drive. I'd go to sleep. I had to get up early. I'd go to sleep in the city. She said she wanted some fresh air last night. I didn't miss her until I woke this morning. I can't understand it. Why, could you be so... A simple story, quite commonplace, quite honest. One question seemed to puzzle a husband more than it disturbed him. Liquor? Whiskey, you mean? No, an occasional drink at a friend's place. That was all. Why? Are you suggesting Louise was a drunken driver? No, they were suggesting nothing, merely asking a routine question. Yes, they would release the body shortly. We had no relations, no one. We had only each other. I shall have to notify our friends. Yes, the police agreed sympathetically, and Superintendent Foster and Dr. Mason escorted him to his London train. Meanwhile, on the Middlebury Road. Your name, Carey? Yes, sir. My name's William, CID. My identification. Yes, Sergeant? Something go wrong? You heard of the accident down the hill? Yes, of course. How late do you keep this petrol station open? 12, one o'clock, depends on your traffic. And last night? I closed up about one. Locked the tanks and... Any customers around that time? Well, there was a dark sedan, man or woman. You got a good look at the woman? He was driving, bought five gathers. She was asleep at the front seat. Any sign of whiskey?  Seemed it an hour or two. Now, look, this photo mean anything to you? Yes, it looks a little... Sergeant, tell it tonight that the light's bad. Is she sleeping there in the picture? No. She's dead. They call it backtracking. They try to trace the car along the road it traveled. The gas station's first. In this case, where whiskey was present, the taverns and the inns were checked as well. You're the landlord here? Yes, sir. My wife said you're the police. Yes. They're trying to trace the men and the woman. Does picture mean anything to you? Yes, sir. She was here last night till closing time. Had a bit too much, I'm afraid, sir. No. Alone? No, sir. No, with a shortish veller. Dark, quiet, in a nervous sort of way. I remember, because, well, he wanted to buy a bottle, but I'd never spare. I rather thought what was driving and all, they'd already had enough. That evening, Sergeant Williams gave the inspector his own reports from that of the men assigned to the railroad portion of the inquiry. They routed the conductor out of his bed. He remembers the fellow all right, bought his ticket on the train. Complete stranger, shortish and dark. Yes, she was with a man all right. Seems to me we'd better break the news to Beach. Hmm, it won't be pleasant. It wasn't pleasant. Martin Beach took it quietly, but it would all be a shock. Louise, with another man, Inspector, you can't be serious. I'm afraid I am. Your wife's picture has been tentatively identified by a petrol station owner, by an innkeeper on the Middlebury Road. They'll be taken out of the hospital to check tomorrow. And she was with the man. No, it's not possible. No one could have been that secretive. Why? We just lived for each other. Well, it's an old story to us, Mr. Beach. You're a busy man. Your wife was alone a good deal. How? You told us yourself. She used the car, alone, and quite often at night. If I could get my hands on him, what fools we mortal to be? We want him to, Mr. Beach. Now, will you help us? Of course, anything. Anything at all. Then maybe search your wife's affix? Of course, Inspector. Search the whole house. They were quite thorough, of course, and very quickly they were successful. I found these in the stocking box at the rear of the Bureau drawer, Inspector. I see. Let it. Mr. Beach, do you know of Fred Hennessy? No. May I see the letters? Right. Well, I... I think you'd rather not. And we'll be checking them for fingerprints, of course. They're all addressed to your wife. The last one makes the arrangements for the meeting place with the car. Is there... is there a return address, Inspector? There is. Good luck, Inspector. Inspector and Sergeant Williams had luck. However, it was not exactly. Good luck. Fred Hennessy? No. There's no Hennessy living here. Well, now perhaps they use another name, a shortish darkfellow with a flare for letter writing. No. Haven't there any shortish men staying here in months? Well, there is 346. Greenville Street, isn't it? Well, there's nowhere else, Inspector. Once more, I don't have any letter writers here. Every one of my men's roomers, except one, works at the car factory. They're a tough crowd, Inspector, but they're nice enough to me. I take good care of them, I do. And the one who doesn't build automobiles? I don't even constably is. And a big disappointment. Still, the machinery ground on. The reports came in to the small bear office at the behind. Here we are. Fingerprint reports, Inspector. Now, the prints on the letters match those they found on the gear shift lever in the wrecked car. The ridge patterns conform to the smudges on the wrench, too, sir. The conclusion is obvious. At the very least, it placed the maker of those fingerprints in contact in the motor car with the motor weapon. It looks so, as if he pulled off the road, did the job, then started the car downgrade and jumped. Eh, it's probably. The unlocked door on the driver's side would indicate that. For what about those prints I told to try and get? We have them, sir. Listed them neatly. I was saving that for the last, sir. You see? They match. Probably was clever. All murder's usual in amateurs' crime isn't it, Sergeant? What about the men to identify him? They'll be in London in the morning, sir. To Sergeant Williams, the case seemed complete. The Inspector was still somewhat cautious. It will stick, sir. In any court. I'll feel better if we have the motive, Sergeant. I like a complete case. Identifications have been upset before. And even fingerprints. Given a good motive, we'll hang the gentlemen. In fact, we may be able to see he hung himself with his own cleverness. Inspector Hall here. Hmm? I see. Very good, Davis. No. No, just keep your eye on the place. Williams will now be along directly.  Very good, sir. Our quarrel's gone and calling him a lady. And so are we. The police car stared silently through the London streets out to a pleasant suburb. He dropped to the curb near a small house detached from its neighbors, surrounded by a hedge and trees. A man stepped out of the shadow and spoke softly to the Inspector. He remained at the car as the Inspector and the Sergeant walked to the front door of the house and rang the bell. Yes? Miss Jeffrey? Miss Dorothy Jeffrey? My name is Hall. It's the ID. My identification. May we come in? Right here. By now. Thank you. What can I do for you? Well, as a matter of fact, Miss Jeffrey, we stopped by to see your caller. A Mr. Marchin Beach, I believe? Inspector. Well, this is a pleasure to see you all the way out here. Is it, Mr. Beach? Of course. You know why they heard, don't you? You want me to come by? Wait a minute. What's going on here?  I know the ID. Inspector's dust. Don't drop in or come by. Martin, have you been up to something?  I'm not stay out of it. If we're to be married, I'd be right to know. We stopped by to tell Mr. Beach about his wife. Wife? You never mentioned a wife, Martin. You're not arresting me, Inspector. I was home and asleep when she was killed. I'm not going to let you know now. So, as a conductor of the train, you talk back to London for Middlebury. I say, you're not taking me in.   Hey, Inspector, there are French doors into the garden. Your house is well-covered from back, Miss Jeffrey. You won't get far. That's his warning. He'll stop running now. This is not the expected way to break an engagement to be married. Yes, I understand, Miss. First, you all get over it. This manner of ending a relationship is far less permanent than the one your fiancee used to gain his freedom from his wife. You know, Miss, the chances are quite good. They've got a way with it. If you hadn't written some fake love letters and forgotten behind a certain open-end wrench... And today, the open-end wrench can be seen in its special place in the Black Museum. Carson Wells will be back with you in just a moment. It's an old garage, of course. It may have worked many times. Commit a murder, rack an automobile to cover its traces. It might have worked this time. If Martin Beach had known that dead bodies do not bruise... If he'd been really clever and had succeeded in burning the car and the body. If... If... If he'd been really clever, his cleverness failed him. Failed him at 8 o'clock one morning in Dartmoor Prison. As for Dorothy Jaffrey, she disappeared when she had come into the great Anna Mimedy, which is London. And so until next time, do we meet in the same place for another story about the Black Museum. I remain as always obediently yours.


Hello, thank you for coming. I'll be presenting It's like the second or third time. I'm presenting this project So it's a very new one even though it's something we've been its ideas We've been telling you around over many years So if you go to the website, you'll find the link for at the end of the presentation. You'll see code. It's Free software you'll be able to download it to run it But it's not a fully set projects yet like Others so there is not a full-featured website and everything so it's something new I'm presenting to you today I'll be describing Our ideas for a browser for the web of data Here is the problem. The problem is you have the internet which is a Network of computers that are using TCP IP and the DNS and the DNS is a way to name the computers on top of that You have URLs HTTP and HTML that provide A network of documents so on top of the network of computers using the names of the computers the DNS You can base on the DNS name the documents and have a network of documents That's the web, you know, right? so What you have to browse that web of documents is the web browser The one you use either Chrome Firefox Opera, whatever the question becomes When you Extend the web and do not only publish documents which are mainly text, but you start publishing data Let's say for example just a simple comma separated value file That's data that you can easily parse with a program and extract the information you want from and reuse So when you start to publish data and here you have a network of data instead of a network of documents What do you use to browse? that data So that's the main question the project comes from Since there is only one web a single web on which you publish both the documents and the data The idea and you can have links that are you awareness that link from Documents to documents from document to data from data to data from data to document an Answer you can give to that question is we want the web browser To be able to browse and to display both documents and data So we want the web browser to be able to display both type of information and To have the display and the the interactions Depend on the type of the data. So if you don't have to display HTML That's the common case you know and use daily and if you want to display data That's described using the doubling core vocabulary or the sco's vocabulary or the foaf or Frbr all those vocabularies you want the browser to be able to display the data on the screen on the page We decided to explore what we would have by Implementing this idea as a web extension that you could install in all the browsers if you go to the catalog of Extensions for Firefox you'll see a page for a cubic web and you can just click and install that Extension you have the same thing on the chrome store. So let's see quick demo So you go to Did you start yep? so you have a Browser here with a new profile So I just go to the store Look for the extension click on install. I accept the permissions and There I have my extensions my extension that's installed right The so that's the first step which is the installation the second step would be the configuration of the extension The kind of configuration information you'll be providing is how you want to display specific type of data So for a specific type of information you get as data from the web server how you want to turn that into HTML that's displayed by the browser So the configuration is about providing ways to turn data into HTML That's what we will be doing now by going to the preferences and here you have the sources of Configuration so here we just go to a website This website is providing views views that turn data into HTML and there is a link here you click on the link and it should so here you have a HTML document that describes what are the views published but that website and what kind of data The views can turn into HTML and after you click on the link you'll have the Okay, so in this layer in this case, I just copy and paste the link to the configuration space here So we'll be adding that source of views to my extension in my browser configuration Okay, so this is done and if you go to the list Here you can ask the extension. What is the list of the views that are registered and as you can see here We have a view to display rdf triples We have a view to display a book to display a conference to display a conference talk a conference track and to display a person So these are all the views all the transforms that at this point my extension knows about now if I move to the Okay to the website of the conference our first browse the website the usual way So my client my browser is making a request to the server. It's getting back html and it's displaying the html first will do the Will go over the pages of the web server receiving and displaying html as a second step will do will go over the same track But getting data and turning data into html so first common browsing we just see a List of conferences which is one So we click on the link we display a conference after that as you can see we get html after that will be clicking on the link to a Track for the track will have the list of all the presentations if we click on a link for a presentation We'll get the page of a presentation. We move to the page of the offer and And Okay, just going back So we go to the conference and we do the same thing but getting the data from the server Instead of getting a document an html document As you can see we have here at the top right We have the icon of the extension that that's lit up because the extension detected that The web server is able to send both html and row data So the by clicking on the extension will get to row data from the server instead of gating html So there you go. So that's html, but generated within the browser from the data that we got from the server and We have the page for the conference well, as you can see this is in this case it's RDF serialized as XML so it's the XML format for RDF and This is the actual file that was sent by the server and the extension turned this into into the html that was displayed So we click on the link again and there we have the information for the track as you can see there is a Little delay during which the extension will be downloading all the the data for the different session for the different talks And after it get the talks it will display them Okay, so now we have the title of the talks there. I will click on one One talk and it's the view for displaying a talk that will be used to generate the html There I will click on the author And as you can see this view that's displaying a person As a link here for all the persons that this person know So this is me and I'm pretending that I know Claude Debussy. He's dead, but whatever So I'll be clicking on the link here and by clicking on this link I'm going to another visualization Another piece of data that was downloaded from the server and turned into html As you can see it's the same function that turns data into views into html for person that was used So the same view the same function Transform data into html both for myself in the first case and in this case for Claude Debussy There is one important change though in the first case The data was sent by the website of the same web pro conference And in this case the data is sent as you can see here in the URL by dbpedia So same web pro and dbpedia are able to describe persons using the same vocabulary So they are sending that data in the same format in the same data model that data model here Is called fof as friend of a friend So similar pro is sending fof my browser as a function that turns fof into html I click on the link. I get to another piece of data Sent by dbpedia. So dbpedia sent me fof and I turned fof into html again So I'm browsing from one server to the next as I would do Moving from one server to a next to the next when clicking on the link in an html document Except here the link I followed is a link in the data So I got data from one server with a link to data on another server I clicked on that link got the data from the other server and displayed it again So I'm browsing a web of data as I would do for a web of html documents And if I continue here in that case I have a photograph. I have more links And I so this would be an a link to another piece of data on dbpedia and Here if I display The same thing I can the same data. I can choose a different view. So that's The row data if you want so the same information I can choose different views to display it and the last thing If I go back to the person view There I will go to another type of information which is the description of the work So as you can see I'm moving from one piece of data to the next and choosing how I display the data I got from the server now if I go back to the slides For this to work it requires the servers to collaborate we need Because the extension has to know that it can get data from the server instead of html and The extension has to make sure that when it gets the information The the the whole HTTP protocol is followed and it knows what type of information it gets So what do we have today to make this work? We have HTTP content negotiation for example the browser in this case the extension can in the HTTP request say I would like application rdf instead of html or it could say I want text turtle and there are other mine types that would work for sending data from in like this Other means to do the same thing you can add a link header in the HTTP response Like the server can say you can have this information in html or you can have alternate representations In rdf for example, but the server has to be set up for that You could have a content type correctly set in the HTTP header There are some servers that would serve rdf, but without the proper content type in that case the extension cannot Cannot behave properly because it doesn't know what is the information it gets You can have in html in the header you can put link relationships to alternate representations and in the end another one making all the Internet specifications, so this proves that it can that that it can work and We'll see if more people start Publishing the information like this and setting up servers correctly and maybe the standards will evolve at some point Important points about the html views of the rdf data as you could see there are distinct from the web extension So there is one thing which is installing the extension and another thing which is configuring the extension with views Which means anyone can publish views and you don't have to make your views public You could have your views in your intranet for example It's each user is choosing how to configure his extension So what views will be displaying what type of data? It's usable on any website. I'm not part of the team that's making dbpedia So for the demonstration it just worked with a public website already The views are functions that you develop in JavaScript or in TypeScript if you want There are simple to publish it as you saw on the website where I got the Configuration that was only static page a static page and a static file that would be imported in the browser And the conclusion is let's read decentralized the web Thank you Yes Yes I So there are many different ones many different catalogs for this is building on the standards of the semantic web The semantic web started in the mid 90s. So it's already more than 20 years ago Projects like dbpedia started more than 10 years ago And you have many catalogs where you can look for data models like this There are standard for a specific type of information like for for describing persons for describing books for describing genes for many things one is The love linked open data vocabulary So it's love dot okfn Dot I don't remember maybe or or something But you can look on so also on websites you can look at The w3c on the wiki where you would get more Lengths to catalogs. So it's something that already started 10 years ago So you can do a way. Yeah, you can do a web search. You can do you can go on portals that publish open data and So the question was how do you find Models for a specific topic, right and Okay, so the first First place you can have a look to is the linked open vocabulary catalog. So it's love dot okfn You can look for that one There is also a site linked data dot org and There is a beta there is a search engine from Google that's in beta right now. That's called data search Where you can type some word and it will show you the kind of data model and data sets That correspond to the word and there is also one site You might want to take a look at which is schema org which was made by the different search engines to Help people publish data Aside html


Recently, Pikeville Police Department attempted to locate a missing person within the city who was eventually found frozen to death. The individual was believed to be homeless at the time and it is unclear if they attempted to seek shelter at a warming station. Mountaintop News spoke with Pikeville Police Chief Michael Riddle to hear more details. On January 15th, the department had received a call to be on the lookout for an individual that's family had last had contact with him on January 10th. He's from out of state but he had been in the area for a little bit. The officers were somewhat familiar with this individual and they knew the area that he had frequented so they went to that area looking around places that they thought he might be, places he might get in out of the cold and they went and did ultimately find him deceased. He was under a bridge and it is believed that the brutal cold temperature was definitely a factor in his and his death. Appalachian Wireless just can't stop themselves. Give the iPhone 13 128 gig for a penny with a two year contract on the mix and match or unlimited plan. New or renewed line. While supplies last, one penny for an iPhone 13. We are you. We are Appalachian Wireless. The city of Pikeville currently has a few operating warming stations for those in need. Myers Tower and the West Care Perry Klein Shelter are accepting anyone who needs to get in from the cold. Brutal cold temperatures is, I mean, no one can survive out there in this brutal cold, but the city is working with Popple City Housing to provide a warming station and currently that is over here at Myers Towers right next to the Popple Police Department right off of Haley Boulevard and if for some reason that exceeds its capacity then they're also going to open up the fire training center and allow that to be used as a warming station also. Because we don't want people out in the cold and we want to make sure they've got a one place to go if they need to go and we want to make sure that they know that that's available. Reporting from Outant Top News, I'm Nick Colum.