Wikivoyage:RDF Expedition

The RDF Expedition is an expedition to develop new ways to use RDF in Wikivoyage.

Rationale
We have an extension on Wikivoyage that lets users put RDF information into each article, using Turtle syntax. This is very powerful; any user can make important statements about a place, a person, a thing, an article with Turtle. We can also create Mediawiki templates with parameters so that users don't even have to know Turtle to make statements.

RDF is very expressive, but it depends on people making similar statements in the same way. Especially if computer software, like the Wikivoyage user interface, is supposed to do something based on knowledge about a place or page, the statements have to be consistent.

This Expedition can help us organize our ideas about expressing knowledge in RDF and using that knowledge for the Wikivoyage Web site.

Goals

 * 1) To define a process for describing problems that can be addressed with RDF, defining RDF models, writing MediaWiki templates to express them, and (possibly) using them in Wikivoyage code.
 * 2) To incubate new projects until they're ready for everyone to use.
 * 3) To find common expressions particular to Wikivoyage and bring them together into one user-edited RDF schema.

Projects

 * Project:RDF Expedition/Tags -- loose categorization of places, articles, and attractions
 * Project:RDF Expedition/Description -- give an abstract or summary of an article
 * Project:RDF Expedition/Multilicensing -- marking up pages and images so that can have more than one license.
 * Project:RDF Expedition/Derived works -- make notes about where images and texts come from, who wrote them, and what the original work's license was
 * Project:RDF Expedition/Article status -- Express Article status in RDF so that software can read it
 * Project:RDF Expedition/Article type -- Define types of articles (destination guides, itineraries, travel topics)
 * Project:RDF Expedition/Image type -- Define types of images (maps, photos, diagrams, others)
 * Project:RDF Expedition/Place type -- Define types of place in the geographical hierarchy
 * Project:RDF Expedition/Geographic relationships -- borders, directions, "nearby" destinations
 * Project:RDF Expedition/RSS -- ways to do community-programmable RSS feeds
 * Project:RDF Expedition/Language -- Define a relationship between a place and the language(s) spoken there

Process
New ideas for working with Wikivoyage RDF should work as follows:


 * For the new idea, start a new sub-page of Project:RDF Expedition, like Project:RDF Expedition/New idea . Use the Project:RDF Expedition/Template as a source for the page.
 * Describe the idea's goals. What kind of knowledge do we need to express? How could that knowledge be used?
 * Look for existing RDF vocabularies (either from other Wikivoyage projects, or elsewhere on the Web) that would support the knowledge. If they don't exist, or if they need to be refined for our needs, consider adding to the Wikivoyage RDF schema (see below).
 * Make some examples of statements. Add them to existing pages, and test that they work with the Special:Rdf tool.
 * Create one or more MediaWiki templates so that making the statements are easier.
 * If the new idea should have some effect on the user interface of the site (add a menu item, automated links, color changes, wording changes) add a feature request to get the effect coded.
 * After the UI is coded, the templates are designed, and everything else is ready for "regular" users to start using the feature, create a help page to explain the feature.

No one person has to do all these steps. As with anything on Wikivoyage, it's best to Project:Plunge forward and get something started. It's OK to just start with an idea, and let other people more interested in knowledge representation and coding work on the rest.

Wikivoyage schema
Some data representations are going to be particular to Wikivoyage. For example, our article status designations aren't used by other organizations.

One nice thing about Turtle RDF is that we can create new RDF schemas in it. So we can use the same wiki technique to develop our schemas.

We can create a schema on the shared Wikivoyage site, which would be available at Shared:Wikivoyage:Schema. Elements from the schema would be accessible with the namespace "wvs:" (Wikivoyage schema) in Turtle.

RDF limitations
A couple of things worth noting here:


 * We currently don't have a way to identify attractions within a destination. You need URIs to identify things in RDF world. Places are defined by the URL of their destination page, but attractions aren't directly addressable.
 * The RDF extension currently reads RDF for one page at a time. So uses like "find all pages that have property X" aren't (currently) very practical.

Both of these should be fixed in the near(-ish) future.

Existing implementations
These are some problem domains that have existing implementations on Wikivoyage; they may be a good model for future problems.


 * Project:Breadcrumb navigation
 * Project:Geocoding

RDF vocabularies
These are some good vocabularies, many of which apply to our problem domain.


 * Dublin Core -- the "granddaddy" of semantic data.
 * Creative Commons -- some refinements on the Dublin Core metadata specifically for Web documents and licensing.
 * Friend-of-a-Friend (FOAF) -- A project for describing people and their relationships to projects, ideas, places, and other people