Organizing notes with XML

I

Ian Rastall

I've been Googling for a couple days on this, without hitting the
mark, and I'm wondering if anyone can help. I'm interested in
building a personal knowledge base with XML (although "knowledge
base" may not be the right term). For example, if I'm at a site
about tea, and I want to briefly note down the history of Russian
Caravan tea, and then cross-reference it with other notes, how
would I go about doing that? I've been reading about mind mapping,
on the one hand, and topic mapping/RDF/OWL on the other. It looks
as if neither approach has the right granularity. The first seems
to connect concepts, and the second seems to connect documents.
I'm thinking more along the lines of snippets of a couple
paragraphs ... to write down the information, describe it, and
link it to related information.

Are there any XML-based markup languages designed for this sort of
thing?

Ian
 
S

Stefan Ram

Ian Rastall said:
I've been reading about mind mapping, on the one hand, and
topic mapping/RDF/OWL on the other. It looks as if neither
approach has the right granularity. The first seems to connect
concepts, and the second seems to connect documents. I'm
thinking more along the lines of snippets of a couple
paragraphs ... to write down the information, describe it, and
link it to related information.

You might create a note - or a "snippet" - and assign a URI to
it. The you can use RDF to make all sorts of assertions about
it, connecting it to either concepts or other documents.

Is there anything you are still missing with such an approach?
Are there any XML-based markup languages designed for this sort
of thing?

XHTML might be used to write the snippets and the
meta-elements and link-elements in the head-element of an
XHTML document can contain all sorts of information about how
this document is related to concepts and other documents.

Is there anything you need and can't implement in this way?
 
I

Ian Rastall

You might create a note - or a "snippet" - and assign a URI to
it. The you can use RDF to make all sorts of assertions about
it, connecting it to either concepts or other documents.

Is there anything you are still missing with such an approach?

I'll keep that approach in mind, as I may go that route.
XHTML might be used to write the snippets and the
meta-elements and link-elements in the head-element of an
XHTML document can contain all sorts of information about how
this document is related to concepts and other documents.

Is there anything you need and can't implement in this way?

An entire document is too much code for a note. I may be looking
at a database, which I wanted to avoid, as I don't know the first
thing about them. (Granted, I don't know much about XML. :))
There is software out there that does this sort of thing, but I
like the idea of being able to put this web of notes on the WWW.
To put each note on a separate page would be wasteful. I suppose a
database *is* what I'm thinking of. <sigh>

Ian
 
I

Ian Rastall

I'm thinking more along the lines of snippets of a couple
paragraphs ... to write down the information, describe it, and
link it to related information.

Are there any XML-based markup languages designed for this sort of
thing?

I'm sorry for being vague. From what I understand of the semantic
web concept, it's a way of linking web pages together by way of
their concepts, as well as chunks of information inside those
pages. What I'm wondering is, what if *all you have* are chunks of
information? What if you want to organize them according to some
grand taxonomy, like the Dewey Decimal system. I'm talking about a
markup language for note-taking that catalogues knowledge in a
well-defined system. I'm just not sure how to do it, and since I'm
just starting out with XML, I don't know what route to take in my
learning to accomplish this goal. Not to mention that, as I learn,
I want to be able to catalogue that process, so even if I don't
know exactly how to mark up those chunks of information, I should
at least have an idea of the general system I'll be using.

I was hoping there was already a system like that in place, since
it doesn't seem like an original idea. The problem with Google is
I don't know what terms to search under. "Knowledge mapping",
"mind mapping", "information systems", "conceptual mapping", and
"knowledge base" all turn up similar systems, but nothing exactly
like what I'm looking for. If anyone has any ideas on the subject,
I'd be very grateful.

Ian
 
S

Stefan Ram

Ian Rastall said:
I'm talking about a markup language for note-taking that
catalogues knowledge in a well-defined system. (...) If anyone
has any ideas on the subject, I'd be very grateful.

It is too early to say much about my system, i.e., the
documentation is not yet finished, so I can neither offer
links to the documentation (because it's not yet finished),
nor write all about it here (because that would take too
long.)

But I can offer a partially working example.

Assume, I observed a resource offering a real-time schedule
for the suburban public traffic system in Berlin and I want to
make a note about it, so that I can find it later.

I am linking it to a description "Echtzeit-Fahrplan der BVG",
i.e., "real-time schedule of the BVG ('BVG' is the name of a
transportation service provider)", I am linking it to its URI,
and I am linking it to the notion "schedule for berlin".

Then I have a tool to publish this on the web, which happens
to be already working, so you can see the output here:

http://purl.net/stefan_ram/garnoo/n!steralog!resource!BVG'20in'20Echtzeit

(This system is experimental and therefore the URI is
temporary and might not work in several weeks from now.)

How do I find that note again, when I need it later?

I might have forgotten the name of the service, so I start
at the concept "Berlin":

http://purl.net/stefan_ram/garnoo/n!steralog!notion!Berlin

There I find an arrow to a notion "Fahrplan für Berlin"
("schedule for Berlin"), which "is-for-location" Berlin, i.e.,
something that is localized for the location Berlin.

(Actually its funny how Englisch and German is mixed on these
pages: local notions are given in the local language.)

I might now go to that notion "traffic schedule for Berlin":

http://purl.net/stefan_ram/garnoo/n!steralog!notion!Fahrplan'20f'fcr'20Berlin

And there I find the resource "BVG in Echtzeit", which happens
to be ("isa") such a schedule.

I might as well have started at the concept of "traffic
schedule"

http://purl.net/stefan_ram/garnoo/n!steralog!notion!Fahrplan

to find the real-time public transportation time schedule for
Berlin.

This was more of a "bookmark" than a "note", but because
arbitrary text can be contained, it might have been a note
about anything else, like an idea or a book:

http://purl.net/stefan_ram/garnoo/n!steralog!resource!Accelerated'20C'2b'2b

Now, one might ask, how such a note is entered into that
system? I am using a plain text editor with a special language
and that language - unfortunately - is a part of the system,
which is not yet documented and also in a preliminary status
and still subject to change. So I can not say much about it
here - a year later from now on, I might be able to link to a
web page describing it in more detail.

The information system given above also contains only some
test data - so while one is free to browse it, not much can be
found there. Most of the information contained are charters
for certain german language newsgroups. A year later from now
on possibly more information can be found there and it might
be possible to find information about it (when URIs have
changed) by its name "Garnoo".

And, as a universal information system, Garnoo is designed to
be/include its own documentation/description: A part of this
which already is working: You can activate links on one of the
above Garnoo page to find a small description of a notion,
e.g., activate the link "outset" to find a short description
of the meaning of "outset" in Garnoo.

OK, a minor part already /is/ documented, it is the language
"Garpagal" used as an intermediate language to produce the
above web pages from the data base. That documentation is
here:

http://www.purl.org/stefan_ram/pub/garpagal

NB: Garpagal is an /output/ language of the system, not an
input language. I.e., it is not the language used to enter
information into the database.

And, I am using a modified version of XML called "Unotal" as a
syntactical framework, which is also not yet documented
properly. In a few words: An element in Unotal has the form

<&type name=value body>

instead of the XML-form

<type name=value>body</type>

Here are some notes about Unotal:

http://www.purl.org/stefan_ram/pub/unotal_en
 
S

Stefan Ram

Ian Rastall said:
An entire document is too much code for a note.

An XHTML-document might look like this "<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html
xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
<head><title></title></head><body><p></p></body></html>"

So it needs at least about 200 characters, which is not that
much.

For storage purposes, it might be stored abbreviated as
"<html><head><title></title></head><body></body></html>", the
doctype declaration and other parts can be inserted upon
delivery of the document to an external client. This is about
one line overhead per document (or "note").

XHTML documents might be stored within a database. So the
choice of XHTML as a language does not decide on the storage
system (filesystem or database). Mutiple XML documents might
even be stored within a single file, but this makes it harder
to refer to one of them. For the purpose of being refered
to, an XHTML document should have its own URI.
There is software out there that does this sort of thing, but I
like the idea of being able to put this web of notes on the WWW.
To put each note on a separate page would be wasteful.

What is wasted this way?

Putting multiple notes in a single document makes sense when
they share properties - which then can be given as meta- and
link-elements in the head element. Thus, an XHTML document
might be dedicated to a topic and collect notes about that
topic.
 
I

Ian Rastall

It is too early to say much about my system, i.e., the documentation
is not yet finished [...] But I can offer a partially working example.

Thanks, Stefan. That's the kind of thing I'm thinking of, so I'll
definitely keep up on its progress.

As I mentioned, my main concern right now is how to represent a
chunk, rather than a document ... since browsers are designed for
documents. There are no "concept browsers", AFAIK (and I wouldn't
even know what one looked like.) So to view the knowledge base
with a browser, the notes would have to be grouped together on
pages, or the page would have to be dynamic and call up entries
from a database. I'm thinking of this as one way of teaching
people online ... like teaching HTML, where it's possible at any
time to veer off in a different direction, say to go from
"paragraph tags" to "CSS text formatting" to "history of CSS" ...
or to go from HTML to networking to hardware ... to learn, IOW, in
whatever fashion suits the mind of the learner, rather than having
the path laid out for them. As far as what I myself could do to
further this idea, all I could really do is codify all the chunks
of knowledge that I pick up along the way. If I could find a
simple way to do it, perhaps with PHP or Perl, then it would be as
simple as taking regular notes, but they would be automatically
organized in such a way that they become re-usable ... not just
for me, but for anyone.

Anyway, after talking a bit on here about it, I think the idea is
clearer now. Thanks for your thoughts on the matter.

Ian
 
I

Ian Rastall

XHTML documents might be stored within a database. So the
choice of XHTML as a language does not decide on the storage
system (filesystem or database).

I hadn't considered that. It's a good idea.

Ian
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,534
Members
45,008
Latest member
Rahul737

Latest Threads

Top