Skip to page content or skip to Accesskey List.
Search evolt.org
evolt.org login: or register

Work

Main Page Content

Introduction to XFML Core concepts.

Rated 3.45 (Ratings: 5) (Add your rating)

Log in to add a comment
(4 comments so far)

Want more?

 
Picture of pedrito

peter van dijck

Member info | Full bio

User since: October 22, 1999

Last login: August 30, 2005

Articles written: 23

XFML is an XML language to share hierarchical faceted metadata. The spec for XFML Core (aka XFML version 1.0) is here: http://www.xfml.org/spec/1.0.html It also describes why XFML is different. The spec contains a conceptual model, a description of the XML specification and processing instructions.

Even for experienced metadata practitioners, some of the concepts in XFML can be a bit weird. An XFML map consists of a number of facets (containers), that each have trees of topics in them. It also contains a list of pages with occurrences of topics on those pages.

Before we start, note that XFML doesn't try to syndicate all your metadata. Only the metadata that is expressible as categories in facets. It doesn't try to replace RDF or XTM (Topicmaps) or other metadata formats: XFML is a very specific, focused format, much like RSS.

Topics

In XFML, metadata consists of topics. Topics are categories, and are organized in hierarchies (trees). Anything you can think of can be a topic. "Norway" could be a topic. Or "Betrayal". Or "That dog that is barking outside my window right now". Which topics to choose only depends on your website: how do you want to present or organize the information in it. (Topic concept explained in the spec)

<topic id="bogota" facetid="place_to_go" parentTopicid="colombia">
  <name>Bogota</name>
  </topic>

Facets.

Facets are containers that contain hierarchies of topics. The special thing about facets is that they are mutually exclusive containers: "Places", "Things to do" and "People" are mutually exclusive because something cannot be a place and a thing to do at the same time. So they make good facets.

Why organize topic trees in facets? Because it makes categorizing, browsing and searching a lot easier by combining facets. There is a long history of library science research behind this, here is a good overview. Just remember: organizing topic trees in facets makes life easier. There are several good interfaces available that let you try out browsing a faceted classification: Facetmap and Teapot Server (by bpallen technologies) are two good examples that are also XFML compatible. (Facet concept explained in the spec)

&lt;facet id=&quot;thing_to_do&quot;&gt;things to do&lt;/facet&gt;

Pages.

Adding pages to an XFML document means you are sharing your indexing efforts. Indexing means assigning topics to pages (or the other way round). Quality indexing takes a lot of work, and XFML makes it possible to share your indexing so other people can reuse it.

<page url="http://poorbuthappy.com/colombia">
  <title>Guide to Colombia</title>
  <description>A website about Colombia</description>
  <occurrence topicid="diving"/>
  <occurrence topicid="bogota" strength="5"/>
  </page>

Since in XFML pages are indexed with topics in the same map, if you want to reuse other people's indexing, you need to know what their topics mean in your map. (Read this sentence twice)

You need to indicate to your application: "My topic A equals this other maps' topic X". You can publish these connections with the connect element. An alternative way of indicating what a topic means is to use a Published Subject Indicator or psi. IF you are familiar with Topicmaps you will know what these are: a psi is a url that points to a webpage that explains what the topic is. So the topic "White house" could have a psi pointing to http://www.whitehouse.gov Psi's are useful for automatic discovery of equal topics. The idea is that, if two topics in different maps have the same psi, an application will know for sure they are the same.

<topic id="colombia" facetid="place_to_go">
  <name>Colombia</name>
  <connect>http://othersite.com/xfml.xml#18753</connect>
  <psi>http://www.cia.gov/cia/publications/factbook/geos/co.html</psi>
  <psi>http://poorbuthappy.com/colombia</psi>
  <description>Colombia, the country</description>
  </topic>

Publishing maps.

You can simply put your map on your website as an XML document (http://www.yourdomain.com/maps/xfml.xml), in the same way you would publish an RSS feed for example. Once published, other people can take your map and generate links to your website, or maybe reuse parts of the organization scheme you created.

Conclusion.

So in short: XFML lets you share metadata. That's important because creating metadata vocabularies is really hard, and indexing lots of pages is even harder. Sharing these efforts is made possible by using <connect> and <psi>. XFML Core is a frozen standard: you can safely implement it - it won't change. Work on XFML 2.0 has started, but that is a long way off, and it will be a language with a different purpose than XFML Core. Tool support is taking off: overview of XFML compatible tools.

Peter Van Dijck is an Information Architect with an interest in localization, accessibility, content management systems and metadata.
  • poorbuthappy.com/ease Weblog
  • petervandijck.net Portfolio
  • Easytopicmaps.com
  • liga1.com Accessibility and localization
  • Disclosure

    Submitted by pedrito on October 16, 2002 - 08:39.

    Not sure if this is needed but just to make sure: the author of this article (me) is also the author of XFML Core.

    login or register to post comments

    Trying to understand

    Submitted by ghurtado on October 21, 2002 - 09:37.

    I guess I am still trying to get my arms around this whole thing. The main question I have is: what is the advantage to having facets be exclusive containers? I would seem to me as though flexibilitity could be improved by allowing a certain object to be categorized as both a Capital and a Vacationing Spot (to cite a silly example) What is lost by making facets be non-exclusive?

    login or register to post comments

    exclusive containers

    Submitted by pedrito on October 21, 2002 - 13:53.

    An object can indeed be categorized as a combination of any amount of topics. Facets need to be exclusive from a creation-of-topics point of view. In your example, vacationingspot and capital would be two topics in the TypeOfPlace facet. An object can belong to both. What you can't do is create another facet that could also contain those two topics. The reason for this is, if you do that, interfaces like facetmap.com loose their effectiveness. Hope that made sense...

    login or register to post comments

    I understand now

    Submitted by ghurtado on October 21, 2002 - 15:00.

    Thanks for the explanation, Pedrito

    login or register to post comments

    The access keys for this page are: ALT (Control on a Mac) plus:

    evolt.orgEvolt.org is an all-volunteer resource for web developers made up of a discussion list, a browser archive, and member-submitted articles. This article is the property of its author, please do not redistribute or use elsewhere without checking with the author.