TPR4: Four Web Design Patterns for a Semantic Web in Higher Ed

Brian Panulla 
Independent Consultant, Panulla Information Systems


The audio for this podcast can be downloaded at

 

Brian Panulla: All right, good morning. Hopefully, I will not put you to sleep. Thankfully, you’re ahead of lunch and not after lunch. This thing would be deaf on a cracker if it was after lunch.

But, there will be code, not a lot of it. I will flash up slides of markup. It looks like XML, so if you’ve seen XML, it’s all right. I’ll be pointing to a few words on it but for the most part, we’re not going to be going into too much code. Anybody that wants to see how it actually works behind the seeds, if you are a developer, I’ll be happy to show it to you. At some point, most of it will wind up on GitHub once I extract out the parts that I’m not allowed to actually share with people like the data, in some cases. I’m still working on that.

The examples are all written in ColdFusion just because. Actually, ColdFusion is a Java-based application server and one of the best languages and platforms for working with the semantic Web happens to be Java. So, there’s actually some good reason and just not that.

So we’ll talk a little bit about the semantic Web and I’ll show you four common used cases. The idea here, I chose four design patterns, going to kind of walk you through a progression that I sort of dig conceptually as I ask the question, “How do I use this? What would I want to do with this stuff?” And hopefully the four will build the story until the last design pattern is a fully semantic Web application.

So, a little bit about me, I’m on Twitter @bpanulla first initial, last name. I work for Penn State University from Portland, Oregon. Yes, there’s some cognitive dissonance with that but I worked in Pennsylvania for 15 or so -ish years, and last year, I relocated to Portland and I’m doing some contract work back for some different units at Penn State.

02:04

So basically, you’ll see Panulla Information Services on the bio in the book and that’s just me. So you have to kind of register yourself to be able to do business but I’m just a developer like most of you guys.

So, why a new Web? All right, everybody's like “The Web 3.0 semantic Web, we need the new Web.” Well, since we’ve already got one, why do we need another Web? But it’s not another Web, it’s infrastructure.

Wow, that picture is really dark.

I liken the semantic Web to America's communications infrastructure. So, in the late 1800s, we laid railroad trucks all across the country to move people and goods, right? When the telegraph came along, where do they run the wires? They run the wires along the train trucks because those right of ways were already there. That right of way for us is HTTP.

Now, what we’re doing is we’re building infrastructure to move data in the same way that we're moving human readable pages. We're moving machine readable content and pages. And it builds very nicely on the API idea that the previous presenter was talking. So we don’t need to change anything to have a semantic Web. We have one now. It’s just a matter of changing some of the ways in which we present information to not have to scrape it out of really bad HMTL, right?

So, three things that the semantic Web is not and this is about as dogmatic as I’m going to get today but so, it is not semantic HTML. That’s the number one question I get is like “Yeah, oh yeah, I’m really to the semantic Web too. I’m all about the semantic HTML.” That’s not it, that's not the same thing. It’s just an accident of a collision of terminology and an unfortunate one because when we were all trying to relearn and retrain ourselves as Web developers… I love this book, Zeldman changed the way I was doing things. Even though I ironically been doing sort of this stuff since like 1994, somehow we gotten away, we lost the path of this semantic HTML idea.

04:22

But HTML is great for documents semantics. But that’s all it is. Anything more is over extending the metaphor. When you say “Well, this...”

All right, has anybody ever labored over a page layout or page template that said “Well, I got to get the markup just right for this. I need to get it….”

That’s agreement? Yeah.

So, list. I love lists and I use list for navigation like crazy. I’m a big fan of the DL with the DDs and the DETs for nested navigation. I’m kind of abusing the markup but that semantic HTML change the way we think and what we really want is clean markup and document semantics. But when we start talking about things that are not documents, we've strained the metaphor and we now need to start looking at ways to describe the semantics of the information in a way that it’s not just with HTML.

So, remember two things that it’s not is warmed-over artificial intelligence. Well, it kind of is. Most of this technology came out of the AI research in the 70s and in the 80s. The same doctoral thesis that drove where artificial intelligence didn’t actually go to resulted in some of the concepts that we have now. But it’s more a fundamental way of looking at information. So yes, it comes out of artificial intelligence, but don’t be worried about that. I frankly don’t care about this. I would like to have things that talk to me and machine that I can interact with, but I’m not worried about it. This stuff you can use now.

And finally, it’s not magic. OK?

Everything in computer science is a trade-off. So every time you make a decision to look at a problem one way, you close off looking at the problem in other ways, right?

06:07

So there are ways to do the same sort of technical concepts. I’m going to show you today with relational databases in XML. And yes, you are arriving at the exact same sort of mental model of how you’re doing your problem solving. And in fact, those same ways of doing it drove the development of the standards. But what the semantic Web stuff I’m going to talk about today is they’re W3C standards.

So, yes, you can roll your own solution that models the same design principles in any particular programming language or platform you want. But these are standards that the W3C said, “Hey, this is a good idea and we’re going to lay it out in a spec and hopefully people are going to use it,” and now that’s starting to happen.

So who cares? Why do we care about the semantic Web?

How many times have you seen the slide today?

[Laughter]

Brian Panulla: I want to see the final count about how many people the slide decks just made it into.

OK, the stuff over here—no laser pointer—this is all the semantic Web. This is data. This is stuff that has semantics beyond with the documents in which it’s embedded.

And everybody knows this is not an easy problem solve and the fact that this thing, this cartoon, came out this year after many, many years of the same sort of issues at Higher Ed. Like how do we serve multiple masters with one website? Well, search maybe. Search might help us and if we have better semantically encoded information like events, course listings, emails, department course list—that’s what I was looking for—maps. So there’s a lot of help that the semantic Web can give us to help us separate out this information but at the same time make it more reusable and re-purposable.

08:01

All right, quick burn through information in semantics.

So when I say semantics, we’re talking about explicit meanings of words and concepts. So, we don’t want there be any misunderstanding that when I say PSU, I mean Penn State University and not Pittsburgh State University or Portland State University. As a resident now of Portland, I’m having a lot of fun with the fact that there are PSU signs everywhere there.  

But the meanings in the semantics become very useful when they shared, right? I can device my own vocabulary. I could learn to speak Klingon but if nobody else can speak Klingon, it’s not really going do me much good.

So, now, semantics differ from syntax, and this is very important. This is the thing why… This is where everybody says “Why can’t I use XML? What does an XML do for you?” XML is just syntax and structure and it’s not really semantics. So take the phrase “I love sushi.” Everybody probably already kind of processed that and have an idea of what I mean. Like change it to this – I heart sushi. Everybody still kind of knows what it is. I'd completely change the symbols but I’m still getting at the same semantic ideas.

I love sushi but not in "that" way.

Why do we have that phrase "but not in that way". That means “Wait a minute. No, you’re not getting my semantics. You’re misunderstanding what I’m saying.” And this statement makes no claims about who or what is sushi. You can kind of assume that it’s the fish but I capitalized the S, so maybe it’s a person named Sushi. We don’t know.

So, this is what we’re getting at. Now, a quick technology primer.

Well, everybody OK with where we’re going so far? All right.

So I don’t want to get too burdened in the technology because there are a lot of stuff you can get into and I want to get to the design patterns but I feel like we got to hit a little bit of this.

10:01

So RDF, Resource Description Framework is a W3C spec and standard. Standardized in 1999 and it’s really only sort of come on in the last year or two. And it’s a fundamental way of representing knowledge. Simple statements of fact is what it comes down to.

You got two things: resources and properties. So it’s sort of like database design. You’ll see a lot of stuff with this. The more you work with the semantic Web, you’ll see that it’s very much like object-oriented programming, and entity relationship modeling and relational databases. They’re all just generalizations and abstraction of the world. We’re all just trying to figure out how we model what we see around us in a way that the computer can understand it.

So, properties and resources. Resources are nouns; properties are sort of verbs. But it’s not quite that clear cut and dry.

So, what’s a resource? Everything's a resource. That’s what the R in URI or URL stands for and let’s see if you can hear this.

[Audio]

Speaker:  That was easy.

That was easy.

[Audio]

Brian Panulla:   Did that come through?

I just learned if you type "say" and then there was some string on the terminal prompt in Mac OS, it’s got a voice synthesizer.

So everything is a resource, even properties. As I said the R is the resource, in uniform resource, locator universe, uniform resource identifier. Again, there could probably be a whole pedantic talk on what the difference between the URL and URI are, but I’m not going to worry about that.

URI is use in the language of the semantic Web and it’s basically anything that can be used to specify a resource or concept. We just make URIs for things. Doesn't matter if you can pop it into a location bar in a browser and go there, right? So, that’s what makes the URL. If you can actually go and grab it, that’s a URL. But if it’s just the thing that looks like the URL but were making no claims that it is actually retrievable. That’s a URI.

12:04

So, here are just a couple of examples of things that might be URIs. So, I’m sure everybody in the room can parse this and see, “OK, there’s a protocol. There’s a host. Here’s the path and here’s an ID and this is some piece of the document.” A College of IST is something inside the rest of the document, right?

So, we also have URIs in our Doctypes. That is literally the a…

Wow, OK. I cut off the URI.

[Laughter]

Brian Panulla: Good slide.

Audience 1: Is it heading towards HTML5 perhaps?

Brian Panulla:  Yes. So the Doctype's some place over there in Indiana.

All right, so we've got this URI. So everything that we want to talk about, we give a URI too. And we now make the simple statements of fact. A something, an an object or a… We make the statements that contain a subject, a predicate, and an object. So, any English nerds out there will know that normally the predicate does contain the object but this was designed by computer science people.

So, the predicate is the verb. It’s the connector, right? So we take two objects:  the predicate – a subject and the object are resources, and then we can use a property to describe the relationship between them. So Portland State is a university or object-oriented need concept could say Portland State is an instance of the class university or is a type of university. Those are the same sorts of language that we use here.

So another example instead of just declaring type, I’m putting a little bit more semantic. So, I’m saying that Brian Panulla presented at HighEdWeb 10. HighEdWeb 10 we’re assuming is some sort of resource that we want to talk about. We all know it’s a conference, right? I’m a person but these are two resources that we’re linking with the semantic relationship presented at. Okay? Pretty simple.

14:12

It gets crazy when you throw a whole lot of this relationship into a single graph, right? If you’re not familiar with this usage of the word "graph", this is sort of a mathematical concept, the graph theory. That’s all about nodes and lines that connect them. Not like Excel graph.

Because we have these nice simple relationships, we can throw a bunch of those relationships into database and then sort of walk around the graph and discover how things are link to other things. And that’s really fundamental to how the semantic Web technologies work.

So, just look at that slide on the post at once. I don’t want to go over too much, but it’s all about states and countries and things.

So, the O word, ontology, gets no end of abuse and hilarity every time I bring this up in front of a new group of people. And people who've had philosophy backgrounds are like, “What are you talking about? That’s not ontology,” or they start making high digger jokes like I don’t know.

If you’re familiar with the database schema, when you create a database, you will generally create a schema that describes how the database is structured. An ontology is a semantic schema in this context. The philosophy friends of mine like me to call this Web ontologies to at least say that, “Yes, this an artifact of the computer science brain and not necessarily anything that arises out of the real world.”

But we have these ways of building the structures called ontologies. An OWL, the Web Ontology Language, is the W3C spec written in RDF to describe ontologies. So, not only can we use RDF to describe data. We also use a specific vocabulary of RDF called OWL to describe the data itself and how they relate to one another.

16:16

So, everything… You’ve heard externals all the way down, it’s RDF all the way up. So, we’ll see some more concrete examples there, but what OWL adds is things like set theory. So, if you know the Venn diagram, you want to see how things are disjoint or make unions of sets, OWL adds those sort of a very descriptive capabilities.

I’ll show a few simple examples of this later, but, say, we’ve got a property that would… The property "presented at" that I showed earlier, that "Brian Panulla presented at HighEdWeb 2010". We can declare that as a property and we can also declare a secondary property called “has presentors” and declared that as inverse property. And suddenly, our data has just doubled and the numbers of ways that we can walk around that graph had doubled because we have ways of describing going multiple directions on the path. But I have an example of that a bit.

Wow, sometimes it gets really loud. I apologize for that.

How many people are regular users or at least thinkers about of designed patterns? Anybody? Yeah, a couple, yes.

So, this is kind of big in the object-oriented world community or object-oriented community, ways of sharing common design principles. So, I’m not going to go down to the level of like singletons and facades and things for those of you that are design pattern folks. This is more like MVC. So I’m trying to make a way for normal Web professionals to look at “How am I going to apply this technology?” So we’ll walk through them in sort of high level conceptual areas, but there definite patterns that I see in the semantic Web community and these are the ways people are building applications.

18:16

So, everybody OK with all that stuff? On to the fun stuff, the example.

So, Linked Data. This is the first pattern. This is the thing that made me sort of wake up and realize what the semantic Web could really be. So, what do we want to do? We want to publish or syndicate data sets. So, we’re sitting on some interesting set of data and we want to share it either among our organization or among applications. Where I first came head to head with this concept, but I didn’t have the semantic Web to try to solve it, was building an application that lets faculty members grade class work.

So, when a faculty member would sign in to our system, we needed to build a list of the class that they teach. And we didn’t have a good API enterprise-wide at Penn State to go and grab that I could talk to because their very walls walls up around everything. But why is the course catalog behind a login. It’s already been produced as HTML pages. If I wanted to, I can spend the summer and scrape it and make an actually semantic data sets out of that but it’s already been generated by a database. Could you just like make another little ColdFusion page to spit out RDF, please? All I wanted was a dropdown that had the list of courses in it and nothing like that existed. 

So, when we want to share those sorts of data sets, we look at a linked data concept. Now, the nice thing is because the properties have the semantics when we declared those properties, we’re actually embedding the schema in the data. So this line between data and metadata really blurs. So, what is the data, what is the structure is a hard to answer question.

20:09

But when you publish these data sets, you're also publishing them with the semantics of how you implied that they’re going to be used and not just structure that people have to parse.

So you want to have a minimal impact on how you're already serving Web data and you may be able to dynamically or statically generate or serve these things. This is sort of the way of looking at this problem.

So, first example of a good linked data provider is Geonames.org. Anybody use this at all? Stumbled upon this?

It's seriously heaven for geography nerds. They've taken the concept of administrative areas, states, countries—well, not states—countries and cities and indexed all the publicly available data that they could have in this very structured, very semantic relationship.

So on the map here is the page from Geonames.org. The screen is the map of Cincinnati from Geonames.org. So when you go to a page on geonames, they have a link in it.

Actually I'll pull the browser up so you can see this part.

OK. Alternate type application, RDF plus XML, RDF version and URL. So they have dropped into every page on this website a link to the pure data representation of the object described on this page. So all you had to do is edit the code that's generating the header of this application and then write some code to generate the RDF expression of the concept.

So back to the browser page. They also provide a nice little link right here so if you play around with Geonames.org, you can click on that and get the RDF representation.

22:06

So they describe this thing called a class called a feature. They're very abstract, very general, because they don't want to make any assumptions about what you're talking about, right? And it has different properties like a name, an official name, a feature class, country code, administrative districts, parent countries. So they've made this tremendous graph of useful information.

So by grabbing this document about Cincinnati, if you know their ontology, you can crawl back up to the descriptor of the United States. You could crawl all around the country that we’re in and basically walk that graph of relationships to discover whatever information you really want.  

DBPedia. Anybody worked with DBPedia at all? This is the best kept secret of the semantic web community. They had taken Wikipedia, got in the full multi-gigabyte dump of Wikipedia and generated as much high quality semantic information out of it as possible.

So there are some annotations. You can't really necessarily infer semantic relationships from text in the pages on Wikipedia but all those nice looking info boxes over on the right hand side that like list the people who were previously head coaches of the Cincinnati Bengals and are all the way back a few times. All the nice little blocks of information, those are semantically coded and they generated huge sets of RDF that describe in an abstract sense everything in Wikipedia – everything that they could.

So here is the dump. I hope you're not bored of seeing like everything about Cincinnati but it keeps me from using these slides. So this is the dump I've searched on Cincinnati, Ohio in DBPedia and it's just a list of all the things that relate or have relationships to Cincinnati.

24:06

I searched for the string, Cincinnati Ohio, so anybody that's ever done a Google Search and gotten something quite unexpected, this should make sense.

It looked for any place that Cincinnati, Ohio existed, in a string context. So I found some links to US Route 25, box of US Routes, so apparently they've mapped the entire US highway system. Kind of funny.

But again, this is all available as RDF. So, I'm actually happening to show an HTML presentation of this information, but if you want to start using this and manipulating this, you need a true RDF data set with the schema.

And yeah, there's the example of this. So some of the relationships that they've modeled is that there's a birthplace predicate, so they can relate a city with a person. So the person was born here. Right?

Birthplace, description, headquarters of Centinel of the Northwest Territory, which I'm assuming is a probably a newspaper or something. Does anybody know?

Yeah. Yeah. Well could be. Considering if the something Northwest is related to Cincinnati, it’s probably an antiquated concept to you.

So here’s a little example a little closer to my heart and this is a project that I'm working on right now and what really gave me a reason to try and implement some things with the semantic web and this is a model for rubrics.

How many of you are familiar with rubric in educational context? OK, good number of you.

So we're modeling rubrics as a way to make them transportable and shareable. Most rubrics you search for on the Web are Excel spreadsheets, Word docs, PDFs and they're  all presentational formats which makes them very hard to move from LMS to LNS except as documents.

26:00

So I created an ontology for describing the pieces of a rubric. So we got a rubric class. There were criteria that go in the rubric. Those are the rows in the rubric and then the levels which are the columns. So these are our little GIFfy document of this.

But I've created this anthology for rubrics and I've modeled it in… So these are bunch of rubrics in a repository system really kind of… I forgot to make this disclaimer, I'm not a designer. So I apologized if anything is really, really horrendous. I have not used comic sense anywhere in my applications. There are a just the bare, bare minimum, enough CSS to put nice tables around the examples unlike this one. That's just like the default one. But yeah, I'm really worried about making sure the information flows places but when this application actually go out in the public, they get a little more cleaned up.

But this rubric… That's not a good one.

Audience 3: Is this public yet or just sort of behind log in?

Brian Panulla: This is behind log in right now. It will be public before the end of the year.

There's a better example. So that is an RDF document that describes the rubric that I clicked on, so lots of blah, blah, blah, XML blah, blah, unprintable character blah, blah, blah. The resource material that I got from these had funky bullet characters in it so all I could do was try to escape them and hope it didn’t blow up the application.

But when you click on it in—not the editor—the view that same document generates this nice grid that you can click on and use to hopefully grade student assignments. So the main goal was to make this useful representation of a rubric that is outside of any application that might use them. Because there are a lot of rubric builders out there now but they're all proprietary and have their own little databases and they're all more interested in making money and not necessarily in sharing. I was taught to share.

28:08

So this slide, have anybody seen a slide like this before? If you're in my talk last year here, you've saw the previous version. This just got revved last month or earlier this month. This is called the Linked Data Cloud. This is the set of publicly available well-used ontologies. So every little circle on that describes a way of describing a particular set of semantic data.

So if you go on linkeddata.org, click on that link to the latest version from the slides. You'll see included things like Music Brains which is a descriptor of bands, the classic FOAF or Friend-of-a-Friend—the horribly named, fantastically useful ontology. DBPedia winds up being the core because everybody tends to link to it, because it's Wikipedia semantified.

The diversity of all of the different ontologies that are commonly used is fantastic. So the nice thing is there's probably an ontology for what you want to talk about. But as in my case for rubrics, there wasn't. There was some kind of way of describing the rubric but nobody ever got to the point of trying to make a digital representation of that.  So by all means, try to reuse stuff as much as possible but if you have to, you can just go and create stuff. But then you can leverage the properties from these other ontologies.

So this linked data concept, the weaknesses are that there's some access control issues. So if you're looking at student data, you probably want to look very, very carefully at what you're sharing and maybe a link data set of RDF is not the best way to share class list. Because then you have to secure the whole set of set of data and doing ECLs within a set of file is very difficult. So maybe you're talking more about an API that spits out little bits of RDF, if you're going to use RDF as the transfer mechanism.

30:08

But for things that are public already and don't need to be behind an access wall, linked data makes a great way to do it.

Is that ten minutes left? Am I talking really slow?

So another place where linked data doesn’t really apply is if you're intellectual property is your key asset. So I worked, I did some work with higheredjobs.com and that's a job posting site for higher education and they're not that interested in syndicating out their contents. So it doesn't make that much sense for them.

But work that I've done for car dealer websites, they do want to syndicate the content because you still have to go to them to buy the car. So there's good questions to answer there.

Alternatives are the ones that we're already familiar with, like XML, JSON, and microdata, which I will hit next.

And I'll blow through this pretty quickly. Is everybody familiar with microformats?

Audience 4: Yes.

Brian Panulla : Yeah. So there's an RDF version of the microformat kind of concept and that's called RDFa, RDF and Attributes.

So Best Buy and Overstock.com have started tagging all of their products and some of their stores and information like that in RDFa. So you can go and have pricing information and vendor information and models available in a semantic way for search engines. The goal is to hopefully have this impact search results and help people find products that are at a certain price point. So there's a lot of active e-commerce research on this right now.

So XHTML is the only place you can do the RDFa and have your pages validate right now. They're still working on an HTML5 and an HTML4 spec or DTD that will allow validation, But for the most part, it will work. If you’re just not worried about validation, you could throw anything in a page, really. But for HTML5, there are also some examples of microdata which is… It seems like an also ran. I'm not quite sure why they're pushing that but that's an alternative as is the data attributes, data dash in HTML5 so you can put little seeds of data in your code that might be used by Javascript.

32:31

The new Twitter uses this HTML5 data attributes. I stumbled upon them, like "What is that?" and kind of dig through it to find the standard.

So another simple use case is the consumer. And this is a great way to start, if you don't have linked data you want to share but somebody else has some data that you want to consume, then you can look at pulling RDF into a user interface So, either through a Flash Javascript or on the service side doing some sort of encapsulation, you can grab this data and generate data that's presented to the user through this.

So a quick example is a Flash based—now this is my actual current project—and that's the builder for the rubric. Because yeah, it's really nice to talk about information in an abstract but the people have to hand code rubric RDF, yeah, that's not going to happen.

So we have a builder that's built in Adobe Flex and so it's just a Flash app but when I click that I open a rubric RDF document from a server. So it just downloaded it and this app is running in the browser but it is in a server, pulled the RDF document and built it into an editor that I can edit the content.

So the consumer problems, RDF tends to be heavier than JSON or XML. Especially more than JSON, maybe not lesser than XML, but you wind up having better semantics. So if the client's end is going to be processing the semantics that's OK. If the server is doing your processing and these semantics and answering your questions, then maybe you do want to bake it into JSON or XML.

34:22

The client libraries are still maturing so it's still a work in progress. Classic alternatives are AJAX, AHAH and JSON. So the stuff we're doing now, it's not necessarily a compelling use case. But if your data's already in RDF, you can retrieve and parse at the same way you'll be doing AJAX.

So semantic Web applications. Now, this is sort of the top of that pyramid where we got a data model that has very rich semantics and we're storing it natively in RDF. This is very good in places where your information domain describes relationships. So places like social networks or where if you have a strong taxonomy of objects, the semantic web mapping works very well.

It's very much similar to graph databases. If you're familiar with the "No SQL" movement, a lot of things that use graph databases—not like your CouchDB or MongoDB but Neo4J. Voldemort, I think is the LinkedIn product. Those sort of systems are very similar to have that semantic Web models links, especially in places where you have inferencing or inheritance, where you have sets and subsets.

So when you start building a semantic Web application, you're going to need a triplestore. And this is another little bit of jargon that I want to make sure I threw at you, and that's just a database that's tuned for storing things in subject-object-predicate form, OK?

36:00

So most of the very simple triple stores are implemented as one table databases and everything is just a whole bunch of funky indexes. So we're still using relational databases behind the scene to do all this but the information is stored in a native RDF form.

So the stuff I most work with is Jena. These are all open-sourced products, AllegroGraph, Virtuoso. There's plenty more depending on what your platform is, there's usually something. Flash is about the only one that doesn't have a useful one at the moment.

So I created an ontology of jobs and…

Yeah, I think I'm probably going to run out of time so I'm going to skip over that one. But it was for HigherEdJobs as a way of describing the job categories.

And SPARQL is the query language for querying these graphs. So I’ll show you an example of the SPARQL document. This looks a lot like SQL right? This is going to go and grab all of the subjects, predicates and objects for my job category database.

So hopefully if it runs. This is way alpha code that I built. So it's just a bunch of URIs and you can see that there are 3,700 items in this graph, but if I want just the job categories….

Here’s a better example. I took the Carnegie Classification of Institutions of Higher Education and built an ontology and a linkable data set for it. So I built a very simple Web application that lets you go through the data set browsing by state. So for all the other world, looks like it could very well be backed by relational database and it's actually using some fairly decent semantics in the background,

The Carnegie Classification, the data sheet comes as a giant Excel spreadsheet and it has just the city and the state as a two-letter abbreviation. So from Geonames, I've grabbed a list of the administrative districts of the United States which corresponds to our states.

38:22

And when you click on the link for the institutions, it’s actually pulling the full name of the state and it's doing that by fusing the RDF between the Geonames data set and between the Carnegie class data set by saying that these two predicates actually represent the same information.

So here’s where the question comes. What better examples can we have in higher education?

I would really love to see a class list with prerequisites modeled as a graph. Imagine if your students could say, "What classes should I take that only require the prerequisites of the classes that I've had and don't involve Math?" I could see that search being very popular and it’s extremely easy to write a query to do that with a nice interface.

So if you have ideas, come talk to me too. I'm kind of curious to see what people are thinking about.

So I hope that I've given you some more ways to look at how these applications can be built. And like I said, come talk to me. I'm happy to show you the code. I'm here till Wednesday so I can show you examples on how I'm actually using these triplestores, how I'm extracting the information and just browsing from page to page.

So I hope you've learned something and thank you for listening.

[Applause]