This ontology aims to describe institutions of higher education from the viewpoint of what and how people teach and learn. The focus is therefore on the kinds of things that people teach (e.g., works, places, topics, and objects) and what tools they use in their teaching (e.g., texts, software, online spaces, devices). It also provides a basic way to model teachers and departments, as well as requirements for graduation.
| Behind the name, 'Amiatinus' | 2008-05-01 02:32 |
| Improving the scrapers, trying new displays | 2008-04-29 17:35 |
| Cheers to Lora Anneken | 2008-04-25 14:44 |
| Talk about semantic web and university ontology, plus using Exhibit to browse ontologies | 2008-03-25 14:31 |
| Revisions to University Ontology | 2008-02-10 20:10 |
| Moving toward a university ontology | 2008-01-16 19:05 |
Background
In my position as Instructional Technology Specialist at the University of Mary Washington, I have been involved in a number of projects that called for a systematic organization of information about courses and the tools used for teaching and learning. That's been especially true as more and more faculty become interested in blogging, social sites, and repositories of content.
At the same time, I have been connected to a variety of conversations and committees addressing, implicitly or explicitly, the needs for campus-wide information sharing. This ontology is intended as a first step toward using RDF to pull these converging needs and interests together.
Approach
Other ontologies for describing universities exist. The thing that, I hope, distinguishes this one is its emphasis on the tools used in the classroom. That way, the ontology should be able to model relationships between members of a university based not on the university's administrative organization, but rather on the concrete things that make up a teaching and learning environment. For example, by modeling the books used by a course, I hope that applications will more easily let faculty discover others who are teaching the same book, especially across departments. A real example of this was my surprise to discover that a course taught in the chemistry department was reading Frankenstein--but how would faculty in the literature department know about that interesting connection?
Goals
This project will, of necessity, come together in fits and starts, and will certainly be shaped in-process by the emerging projects throughout the university. That said, here is a sketch of what I hope to accomplish:
- Develop the ontology itself, especially to bring it into conformity with Semantic Web best practices and to be as complete a model as possible for the faculty needs.
- Develop small applications to facilitate data-gathering with the ontology:
- Help faculty capture information about their teaching with Zotero, then upload that information to share it.
- (Possibly) use emerging modules for Drupal and Wordpress to capture similar information.
- Capture SIOC data from blogs and other online spaces.
- Push the data out, either through a home-grown interface or through a content management system like Drupal
You can download the current version of the RDF file below
| Attachment | Size |
|---|---|
| univ-ont.rdf | 22.73 KB |
| univont-cleaned-2008-03-07.n3 | 15.99 KB |
| univ-ont-2008-03-10.rdf | 28.97 KB |
where can you download the file, i look all over. can I download it. I hope to use the vocabulary in a school project.
thanks
Lora
Lora,
I'm hoping to wrap up another small revision to the ontology in the next few days, and in a week or so I hope to get some feedback after I present it to some people, so there should be lots of changes coming up soon.
And...I'd love to hear about the project...is there info online about it?
Patrick
Hi sorry wasn't sure if you would remember or not but I've been on your site
before (posted on your older page):
http://www.patrickgmj.net/blog/moving-toward-a-university-ontology
I am still basically researching Semantic Web technologies and try to create an RDF
model based on my university's class data (well a subset - the following fall semester and trying to limit to certain attributes that would be interesting for students who would be searching over the data).
I am trying right now to pull together data I got from school in comma-delimited files (since for security reasons, access to the school's Oracle database wasn't possible). Probably try to recreate into a database of my own. And then possibly using D2R http://www4.wiwiss.fu-berlin.de/bizer/d2rmap/D2Rmap.htm to match up relational database data into a RDF model (which I am writing in Jena).
I was recommended very early on to reuse an existing ontology to help SW grow I suppose and your ontology was one I came across early on and have kept in mind ever since. Since I am still early in creating my rdf model I will be back to check for your updated version.
Thanks
Lora
Lora,
Ah! I should have remembered! I'm very interested in the attributes you mention. This ontology is really in early stages (but hopefully still useful!) to try to discover what kinds of class data it can and cannot model. The attributes you come up with might be very helpful to add in.
Good luck,
Patrick
I remembered that before you mentioned that you wrote some PHP scripts doing SPARQL queries - how did you figure out how to do that (could you send me examples)? and are the SPARQL queries running against a RDF triplestore or a relational database?
("I have some PHP scripts doing SPARQL queries and producing the JSON for Exhibit."-old post)
As far as the attributes, basics like when the class meets (time), name, credits, taughtBy, etc that I plan to try to use from your ontology. Some I might add myself are 'CRN' -code use to indentify classes at my school, 'maxEnrol' - how many people can register for a 'course instance', similarly 'waitCap' - number of people can be on a waiting list to register for a 'course instance', 'meetTimeOfDay' indicates if 'course instance' is a morning, afternoon, or evening course, and there are others that also go with specific ways my university stores class data.
right now I am a little stumped if I should create a RDF model and work off that alone or create a RDF model that is abstracted over a relational database which will convert SPARQL queries to SQL queries on the fly (using D2RQ and D2R server possibly).
thanks for all your replies,
Lora
In the past, I've mostly used RAP (RDF API for PHP) to set up a triplestore in a MYSQL database. It includes scripts that do all the setup--following the example has it up and running in less than 5 or 10 minutes. RAP also includes classes for doing the sparql queries. Basically, you create what RAP calls a MemModel (basically, an RDF graph in memory), write the SPARQL query string. So to make a subgraph of univ:CourseInstances with type and their titles:
$queryString = "
PREFIX rdf <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dc <http://purl.org/dc/elements/1.1/>
PREFIX univ <http://www.ravendesk.org/univ-ont#>
CONSTRUCT {
?courseinst rdf:type univ:CourseInstance .
?courseinst dc:title ?title
}
WHERE {
?courseinst rdf:type univ:CourseInstance .
?courseinst dc:title ?title
}
";
$result = $model->query($queryString);
Then do what you will with the result. RAPs documentation here walks you through it.
I've also started to use the ARC2 PHP classes. SPARQLing with it works similarly, though I think so far it only supports querying against a store (i.e., not against an in-memory graph).
$result = $store->query($queryString);
See this for examples.
ARC2 is nice for being lighter weight, so less likely to hit memory problems, and if you are doing AJAXy things it serializes graphs to JSON for you.
On the abstraction question--sorry to say I can't offer much advice, having never used D2RQ or D2R. Since I don't have direct access to the database, I've just been scraping the data from the web page listing all the courses and info using SIMILE's Solvent, then pouring that data into either the RAP or the ARC2 store and running from there. If it is okay for your data to be a little out-of-date (depending on how often you re-scrape the page), this might be more straightforward. It's possible that our schools will be spitting out similar web pages, so if you email me at pgosetti-at-umw.edu I'll email you the script to see if it'll be helpful to use as a starting point.
And thanks for the info about attributes you'll use! That's exactly the kind of thing I'm curious about in how people might use this -- especially the waitCap and maxEnrol. In the latest version, I've split about univ:meetTime into univ:meetStart and univ:meetEnd -- you might be able to use those to derive the morning/afternoon/evening info if it is not explicit in your source data. Last note, and this might be crucial--our school also lists by CRN #'s. When I checked with our database people, it turned out that our CRNs are unique _within_ a semester, but not overall. That is, they're no good for creating unique URIs for different univ:CourseInstances (unless your model will be restricted to only one semester).
Good luck!
Patrick
Ooops! Many apologies--you should be able to download it now.
Post new comment