Zim

Be Semantic: support forms for specific page types

Bug #363978 reported by Josh
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Zim
Confirmed
Wishlist
Unassigned

Bug Description

Similar to Semantic MediaWiki, allow Zim's wiki pages to encode semantics, thus making it possible to use a Zim wiki as a custom database system, or to use it for many other purposes.

Zim would thus have to allow the user to define RDF schemae. These would be rdfs:Class. When using the semantic wiki features of Zim, an object (resource) being modeled will be represented by a single wiki-page/RDF-file pair. The associated RDF file would then be able to serve as an instance or resource of an rdfs:Class.

Within the Zim GUI, semantic data would be displayed alongside the page itself in its own panel. The semantic information would be represented as a form, as in the MediaWiki Semantic Forms extension (http://www.mediawiki.org/wiki/Extension:Semantic_Forms). In the backend, the semantic data would be encoded in an RDF file whose base file name is identical to that of the .txt file. If no RDF file exists, then the page does not encode any semantic data.

Revision history for this message
Jaap Karssenberg (jaap.karssenberg) wrote :

Uhm, maybe you can give a practical example / use case how this would work ?

To my mind "semantic" as a term relating to the web in general and to wikis in particular is a bit of a vague term that is used to describe very different concepts. Therefore I prefer a description in terms of what it is what you want to be able to do in zim.

Revision history for this message
Josh (joshhansen) wrote :

This is the example I had in mind:
For a few years I have been using a spreadsheet to keep a list of events, participants, and notes on the events and the participants. I started working on transferring this into a database, but I then thought that I would much rather be able to put all of the information into Zim. The advantage of putting it in Zim would be all of the advantages of a wiki -- in a spreadsheet or database I cannot so easily link between different people or events, nor can I so nicely integrate images and web links and different formatting of text. My notes on Event 5 could link to a previous, related event (Event 2) and to the participants (Person A and Person E) and also contain a photo of the event. Also, Zim notebooks can be easily tracked within a revision control system.

However, in its current form, the Zim version of this event/participant data would lack certain useful features of a spreadsheet or database, including structuring the data into separate fields and being able to automatically generate lists of people or events and sort them by criteria (date of event, or location of person). A spreadsheet or a database also allow fairly easy export of data for use in other applications. So, if I was in Zim able to define a Person schema and an Event schema, and have wiki pages acting as instances of those schemae, and export it all by means of RDF to be used in other situations, such as to be queried using SPARQL, it would basically eliminate any disadvantage of using Zim for this data.

In more general terms, as wiki systems like Zim and MediaWiki and so on are used to organize more and more of the world's data, it increasingly makes sense to enable these systems to encode metadata and other semantics to increase the usefulness of the data. But I'm sure you developers all know that already :-)

Revision history for this message
Jaap Karssenberg (jaap.karssenberg) wrote :

OK, this is an idea similar to what I have in my brainstorm notes already. My use case would be organizing my book collection by having one page per book and have special fields for the title, author etc.

Seems to me this request can be split up in several smaller pieces
1) Turn certain pages into "forms" consisting of special fields + general text area
    a) Configure customizable templates for this - e.g. per namespace
    b) Allow fields to link to another page - e.g. "Author" -> page about that person
       This could work be having a text entry with a "follow link" icon next to it
2) Allow pages to have a "type", so a page using the template for a book would also be labeled with the type "Book" and a page for a person would have the type "Person"
3) Allow links to have a "type" - e.g. the link between a book and a person could have the type "Author" detailing the relation
4) Have a plugin to export a notebook to e.g. rdf containing the link structure and the special fields for each page

Items 1, 2 & 3 are things that have been on my brainstorm list for a long time and I will definitely work on those when time permits. For example the python redesign already has fields in it's internal page index to store page an link types.

Item 4 is of less interest for me personally but should not be to difficult to hack once the rest is realized. It would basically be a script that extracts a list of pages and links by doing an SQL query and write out XML.

Changed in zim:
importance: Undecided → Wishlist
status: New → Incomplete
summary: - Be Semantic
+ Be Semantic: support forms for specific page types
Changed in zim:
status: Incomplete → Confirmed
Revision history for this message
Jaap Karssenberg (jaap.karssenberg) wrote :

Also see bug #333204 for more discussion

Revision history for this message
Jaap Karssenberg (jaap.karssenberg) wrote :

Also see bug #942605 comment #3 for some details and further brainstorming

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.