Main

 
Interactive Fiction Relational Links version 1.0
IFMI Working Draft

Interactive Fiction Relational Links version 1.0
IFLink 1.0 Specification

Working Draft 20 February 2006

Current Version:
http://purl.org/int-fiction/metadata/iflink/1.0
Available in HTML, RDF-Schema, and XML-Schema
This Version:
http://purl.org/int-fiction/metadata/2006/WD-iflink10-20060220
Previous Version:
http://purl.org/int-fiction/metadata/2005/WD-iflink10-20051202.html
Date Issued:
2006-02-20
Publisher:
Interactive Fiction Metadata Initiative
Editor:
M.D. Dollahite <master.ryukage @gmail.com>
Contributors:
Andreas Sewe, IF enthusiast
Andrew Hunter, Developer Zoom Z-Code Interpreter
M.D. Dollahite, Founder IFMI, Developer Bookwyrm IF Collection Manager
Document Status:
This is an Interactive Fiction Metadata Initiative Working Draft

Abstract

This document lists a set of property elements that describe the relationship between an Interactive Fiction game and other resources. This vocabulary is meant to be used in conjunction with the Interactive Fiction Metadata Element Set, to allow automated discovery of dependencies, alternate versions, and supplementary resources.

Status of this Document

This section describes the status of this document at the time of publication. Other documents may supercede this document.

This document is currently in the Working Draft stage of development. As such, is should not be considered a definitive reference, nor an official standard. Early adopters may begin implementing the described vocabulary, but should be prepared for incompatible changes as the specification develops. In software development terms, this is an "alpha" quality release.

It is important to note that this is not a standard in the same way as a W3C, ISO, or IETF Recommendation. The IFMI does not have the authority of those bodies to set standards. IFMI standards are offered as a service to those communities that appreciate the need for interoperable standards in Interactive Fiction metadata and choose to recognize IFMI as a supplier of such standards.

Table of Contents

  1. 1 About the IFLink Specification
    1. 1.1 Document Organization
    2. 1.2 Definitions
    3. 1.3 Document Conventions
  2. 2 Interactive Fiction Relationships
    1. 2.1 The IFLink Elements
      1. 2.1.1 Game Components
      2. 2.1.2 Game Variations
      3. 2.1.3 Game Categorization
      4. 2.1.4 Platforms and Runtimes
      5. 2.1.5 Other Elements
    2. 2.2 Other Recommended Elements
  3. Appendix A: Schemas
    1. A.1 Schema for RDF
    2. A.2 Schema for XML
  4. Changes
  5. References
    1. Normative References
    2. Informative References

1 About the IFLink Specification

This section is Informative except where otherwise noted.

1.1 Document Organization

This document contains one major section, divided into the following two subsections:

Section 2.1: The IFLink Elements
This section is the normative reference for linking elements defined by this specification. This subsection is further divided into logical groups of related elements.
Section 2.2: Other Recommended Elements
This section gives normative recommendations for the usage of linking elements defined by other normative specifications.

1.2 Definitions

This subsection is Normative.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119. When those words are not in capital letters they MUST NOT be interpreted as described in RFC 2119 [RFC2119].

This document uses the following terms and definitions.

Application
Application of IFLink: An application is a particular usage or implementation of IFLink metadata.
Element
A single property identifier.
Feelies
Physical or digital objects included or associated with a game. The practice of including feelies with a game probably originated as an attempt to lend more visual appeal to text games by giving players real-life copies of some of the objects that appeared in the game; the practice continues today as a promotional gimmick—even some graphical games have included feelies.
Game
A single executable or interpreted Interactive Fiction program. Not necessarily a game in the conventional sense—some IF has little actual gameplay—but for purposes of this document all programs described by IFMES are considered to be games.
Implementation
Implementation of IFLink: An implementation is a method of representing metadata, such as a serialization format. Examples of implementations are the RDF Schema and XML Schemas in Appendix A.
Informative
Provides additional information that may be helpful to understanding of the specification, but are not requirements of the specification.
Interactive Fiction (IF)
The genre of computer programs IFLink is intended to describe. As with most artistic genres, there is no rigorous definition of what is and is not IF, only a vague set of qualities with subjective interpretations.
Metadata
Data that describes other data, usually a resource. Care should be taken that some resources might have multiple representations. In such cases the metadata describing the resource must be a valid description of each representation.
Metadata Catalog
A large collection of metadata describing several games, usually intended for browsing and searching by users and user agents.
Metadata Consumer
A user or user agent.
Metadata Producer
An entity that creates and/or makes available metadata.
Metadata Provider
A metadata provider is an entity, typically a website, where metadata can be found.
Normative
Describes how features and requirements of the specification MUST work in compliant implementations.
Resource
In general, a resource is anything that has a unique identity. More specifically, it is an entity that can be referred to and/or located with a uniform string identifier. Examples of uniform string identifers include RFC 3986 [RFC3986] URIs and RFC 3987 [RFC3987] IRIs.
User
A human consumer of metadata.
User Agent
Any entity that collects, consumes, and/or interprets metadata on behalf of one or more Users or other User Agents. A "smart" user agent is capable of analyzing, interpreting, and distilling metadata to some degree without human interaction; for example, tracing relationship links to determine the most relevant resource from a set of related resources, or checking dependency information to locate all components of a game.

1.3 Document Conventions

Most of this document is a list of terms that comprise the IF Metadata Element Set. The reference information for each term begins with a header giving the term's human-readable label. This is followed by a table with data about the term. Below the table is a short comment describing of what the element represents and how to use it. The table contains the following information:

URI
The full cannonical URI identifying the term.
Refines
The Dublin Core term the element is derived from. This row is present but blank on elements that do not refine a more general element. For types, this gives the superclass that the class inherits from.
Inverse
An element that has an inverse relationship with the element. An inverse relationship means that if ResourceA is related to ResourceB by PropA, and PropB is an inverse of PropA, then ResourceB is related to ResourceA by PropB.
Domain
The type of resource the link may point from, identified by URI.
Range
The type of resource the link may point to, identified by URI.

References are enclosed in square brackets ([]) and colored red; these are linked to the references section at the end of the document. Hyperlinks to external resources are enclosed in angle brackets (<>), except in the metadata header at the top and the references section at the bottom, which are all external links. External links will use your default link colors. All other hyperlinks are internal links to other sections of this document. Internal links to terms defined in this document are colored green, internal links to sections are blue and italicized. (This paragraph applies to standards-compliant web browsers. Browsers that do not comply with standards may not render hyperlink styles correctly.)

2 Interactive Fiction Relationships

This section is Normative.

Interactive Fiction games do not exist by themselves. They are created by people, entered in competitions, and related to other software and documentation. The Interactive Fiction Metadata Element Set describes many properties of a game, but does not provide any way to connect these resources together. IFLink provides a set of elements, both from existing vocabularies and new ones defined here, to describe these relationships. Unlike the human-readable elements defined by the Interactive Fiction Metadata Element Set [IFMES], these elements are mainly for machine use; they are essential for catalogs meant to be used with "smart" user agents that can interpret and utilize these relationships. Most of these elements point to or from resources of the types defined in the Interactive Fiction Type Vocabulary [IFTYPE].

2.1 The IFLink Elements

This document is the Normative definition of the elements in this subsection, as well as the use and interpretation of these elements in an Interactive Fiction Metadata context.

2.1.1 Game Components

Some games require multiple parts to work properly, such as multimedia resources and dynamically-linked components. These elements allow a user agent to locate the various parts of the game and determine their role.

Has Component
URI: http://purl.org/int-fiction/metadata/iflink/1.0/hasComponent
Refines: http://purl.org/dc/terms/requires
Inverse: http://purl.org/int-fiction/metadata/iflink/1.0/isComponentOf
Domain: http://purl.org/int-fiction/metadata/iftype/Game
Range: http://www.w3.org/2000/01/rdf-schema#Resource

Indicates other resources required to run the game, not including the interpreter. Examples include multimedia bundles, graphics, sound files, etc. Sometimes only one of a group of resources is needed—for example, some games provide both low-quality, small filesize and high-quality, large filesize versions of their media bundles to accommodate people with different bandwidth requirements—in which case the hasComponent element should point to a collective resource from which one member should be selected. In local scope this MAY be a local path literal instead of a resource.

Is Component Of
URI: http://purl.org/int-fiction/metadata/iflink/1.0/isComponentOf
Refines: http://purl.org/dc/terms/isRequiredBy
Inverse: http://purl.org/int-fiction/metadata/iflink/1.0/hasComponent
Domain: http://www.w3.org/2000/01/rdf-schema#Resource
Range: http://purl.org/int-fiction/metadata/iftype/Game

The resource is a component required to run the referenced game, or a member of a set of alternatives of which at least one member is required to run the referenced game. The resource may be a graphic, sound, multimedia bundle, or other component used by the game while executing.

Master Component
URI: http://purl.org/int-fiction/metadata/iflink/1.0/masterComponent
Refines: http://purl.org/int-fiction/metadata/iflink/1.0/hasComponent
Domain: http://purl.org/int-fiction/metadata/iftype/Game
Content: http://www.w3.org/2000/01/rdf-schema#Resource

Indicates the game's main file, that is the file that contains the entrypoint of the executable code. This is usually the game resource itself. In local scope this MAY be a local path literal instead of a resource.

2.1.2 Game Variations

Some games are variations of another, such as ports to a new platform or translations to a new language. These elements connect games that have these types of relationships. See dcterms:hasVersion and dcterms:isVersionOf for linking revisions of the same variant.

Has Port
URI: http://purl.org/int-fiction/metadata/iflink/1.0/hasPort
Refines: http://purl.org/dc/terms/hasFormat
Inverse: http://purl.org/int-fiction/metadata/iflink/1.0/isPortOf
Domain: http://purl.org/int-fiction/metadata/iftype/Game
Range: http://purl.org/int-fiction/metadata/iftype/Game

A reference to another game that is a port of this game. Porting can mean conversion from one operating system to another, from one interpreter to another, or from one hardware architecture to another.

Has Translation
URI: http://purl.org/int-fiction/metadata/iflink/1.0/hasTranslation
Refines: http://purl.org/dc/terms/hasVersion
Inverse: http://purl.org/int-fiction/metadata/iflink/1.0/isTranslationOf
Domain: http://purl.org/int-fiction/metadata/iftype/Game
Range: http://purl.org/int-fiction/metadata/iftype/Game

A reference to another game that is a translation or localization of this game. Translation means changing the text output from one human language to another human language. A similar concept is localization, which means to not only translate the language but also to adapt for cultural and colloquial differences. In the problem domain addressed by this specification there is little reason to differentiate these two concepts, therefore the same element is used to mean either.

Is Port Of
URI: http://purl.org/int-fiction/metadata/iflink/1.0/isPortOf
Refines: http://purl.org/dc/terms/isFormatOf
Inverse: http://purl.org/int-fiction/metadata/iflink/1.0/hasPort
Domain: http://purl.org/int-fiction/metadata/iftype/Game
Range: http://purl.org/int-fiction/metadata/iftype/Game

A reference to another game of which this game is a port. Porting can mean conversion from one operating system to another, from one interpreter to another, or from one hardware architecture to another.

Is Translation Of
URI: http://purl.org/int-fiction/metadata/iflink/1.0/isTranslationOf
Refines: http://purl.org/dc/terms/isVersionOf
Inverse: http://purl.org/int-fiction/metadata/iflink/1.0/hasTranslation
Domain: http://purl.org/int-fiction/metadata/iftype/Game
Range: http://purl.org/int-fiction/metadata/iftype/Game

A reference to another game of which this game is a translation or localization. Translation means changing the text output from one human language to another human language. A similar concept is localization, which means to not only translate the language but also to adapt for cultural and colloquial differences. In the problem domain addressed by this specification there is little reason to differentiate these two concepts, therefore the same element is used to mean either.

2.1.3 Game Categorization

These elements help to group games into manageable categories and classifications.

Genre
URI: http://purl.org/int-fiction/metadata/iflink/1.0/genre
Refines: http://purl.org/dc/elements/1.1/relation
Domain: http://purl.org/int-fiction/metadata/iftype/Game
Range: http://purl.org/int-fiction/metadata/iftype/Genre

Identifies a resource representing one of the artistic genres the game is classified with. Whereas the basic IFMES genre element merely gives the genre by name, the IFLink version can provide additional information through the resource's metadata.

Series
URI: http://purl.org/int-fiction/metadata/iflink/1.0/series
Refines: http://purl.org/dc/terms/isPartOf
Domain: http://purl.org/int-fiction/metadata/iftype/Game
Range: http://purl.org/int-fiction/metadata/iftype/Series

Identifies a series the game belongs to. Metadata for the series will normally provide a collective name and allow other games in the same series to be discovered.

2.1.4 Platforms and Runtimes

Games require some form of lower-level runtime environment to operate under. These elements are used in the description of these runtime environments.

Has Implementation
URI: http://purl.org/int-fiction/metadata/iflink/1.0/hasImplementation
Refines: http://purl.org/dc/elements/1.1/relation
Inverse: http://purl.org/int-fiction/metadata/iflink/1.0/implements
Domain: http://purl.org/int-fiction/metadata/iftype/Platform
Range: http://purl.org/dc/dcmitype/Software

An implementation of a platform. This might be a particular version of an operating system, an implementation of a VM, or even an emulator for running the platform on a different platform. Implementations are not necessarily interchangeable with one another; some may represent different and incompatible versions of the platform, or may implement only a subset of the platform's features.

Implements
URI: http://purl.org/int-fiction/metadata/iflink/1.0/implements
Refines: http://purl.org/dc/elements/1.1/relation
Inverse: http://purl.org/int-fiction/metadata/iflink/1.0/hasImplementation
Domain: http://purl.org/dc/dcmitype/Software
Range: http://purl.org/int-fiction/metadata/iftype/Platform

The resource is an implementation of the given platform. Software requiring the platform may run using this implementation.

Platform
URI: http://purl.org/int-fiction/metadata/iflink/1.0/platform
Refines: http://purl.org/dc/terms/requires
Domain: http://purl.org/dc/dcmitype/Software
Range: http://purl.org/int-fiction/metadata/iftype/Platform

Identifies the operating environment required to run the software. This may be a virtual machine model, an operating system, or other low-level computing environment. The RECOMMENDED best practice is to select from a controlled vocabulary.

2.1.5 Other Elements

Additional elements that don't fit in other categories.

Documentation
URI: http://purl.org/int-fiction/metadata/iflink/1.0/documentation
Refines: http://purl.org/dc/elements/1.1/relation
Domain: http://purl.org/dc/dcmitype/Software
Range: http://www.w3.org/2000/01/rdf-schema#Resource

The documentation element references a resource from which a game's documentation may be retrieved. This may be a website about the game, a readme file, or other instructional document.

Icon
URI: http://purl.org/int-fiction/metadata/iflink/1.0/icon
Refines: http://purl.org/dc/elements/1.1/relation
Domain: http://purl.org/dc/dcmitype/Software
Range: http://www.w3.org/2000/01/rdf-schema#Resource

The icon element references an image which provides iconic visual identification for the game. The image SHOULD have an aspect ratio of one (horizontal) to one (vertical), and SHOULD be suitable for presentation at a small size. Multiple icons in different formats MAY be specified, user agents SHOULD choose the format most suitable for their purposes.

2.2 Other Recommended Elements

This document is not the normative definition of the elements described in this subsection; however, this is the Normative recommendation for the use and interpretation of these elements in an Interactive Fiction context.

Relation
URI: http://purl.org/dc/elements/1.1/relation

A catch-all generic relationship link, for any relationship that doesn't have a more specific identifier. It is almost never appropriate to use this property, a more specific relationship type is always preferable. However, this may be used when there is simply no other appropriate link element available.

Has Version
URI: http://purl.org/dc/terms/hasVersion
Refines: http://purl.org/dc/elements/1.1/relation
Inverse: http://purl.org/dc/terms/isVersionOf

Connects a game with a later version of itself. User Agents may use this element to find the most recent version of a game.

Is Version Of
URI: http://purl.org/dc/terms/isVersionOf
Refines: http://purl.org/dc/elements/1.1/relation
Inverse: http://purl.org/dc/terms/hasVersion

Connects a game with a previous version of itself. User Agents may use this element to locate older versions of a game.

License
URI: http://purl.org/dc/terms/license
Refines: http://purl.org/dc/elements/1.1/rights

While the IFMES license element SHOULD be used for most licensing links, it insists that the referenced resource be a human-readable (or at least laywer-readable) document. The dcterms:license element is less picky, and can be used for machine-readable licenses. Human-readable license documents that are also described by machine-readable metadata SHOULD still use the IFMES license element; fall back to dcterms:license SHOULD occur only for purely machine-readable licenses with no human-readable equivalent.

Made
URI: http://xmlns.com/foaf/0.1/made
Inverse: http://xmlns.com/foaf/0.1/maker
Domain: http://xmlns.com/foaf/0.1/Agent
Range: http://www.w3.org/2002/07/owl#Thing

Connects an agent to a resource that agent created. A foaf:Person is a subclass of foaf:Agent. This can be used to link an author to the games he or she has written.

Maker
URI: http://xmlns.com/foaf/0.1/maker
Inverse: http://xmlns.com/foaf/0.1/made
Domain: http://www.w3.org/2002/07/owl#Thing
Range: http://xmlns.com/foaf/0.1/Agent

Connects a resource to the person who created it. This link can be used to supplement the IFMES author property by linking to metadata about the author. In FOAF, Person resources are not identified by URI, but by the inverse functional property foaf:mbox_sha1sum, which contains the hexadecimal-encoded SHA-1 checksum of one of the person's email addresses, including the "mailto:" prefix. Therefore this element SHOULD point to an anonymous foaf:Person resource with at least one foaf:mbox_sha1sum property to identify it. Other important properties may also be included in case the actual FOAF profile is unavailable. An rdfs:seeAlso property MAY be included to tell the user agent where to find the file containing the full FOAF profile.

See Also
URI: http://www.w3.org/2000/01/rdf-schema#seeAlso
Domain: http://www.w3.org/2000/01/rdf-schema#Resource
Range: http://www.w3.org/2000/01/rdf-schema#Resource

Indicates another resource that may be of interest to entities interested in the current resource. It may be used to reference additional sources of metadata that should be examined for more information about the resource. This allows large catalogs to be split up into smaller parts to conserve bandwidth and/or distribute maintenance work.

Appendix A: Schemas

The following RDF schemas are normative parts of this specification.

A.1 Schema for RDF

The latest version of the IF Link RDF Schema/OWL Ontology can be found at <http://purl.org/int-fiction/metadata/schemas/rdf/iflink10>. Its contents at the time of writing are shown below, and are also embedded within the source of this page.

<?xml version='1.0'?>
<?xml-stylesheet href="rdf.css" type="text/css" ?>
<!--
    The namespace document for this RDF Schema is an XHTML document with this
    schema embedded in a comment. User agents looking for a pure RDF/XML version
    may instead load <http://purl.org/int-fiction/metadata/schemas/rdf/iflink10>,
    which is a pure RDF/XML document.
 -->

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:owl="http://www.w3.org/2002/07/owl#"
         xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
         xmlns:dc="http://purl.org/dc/elements/1.1/">

<owl:Ontology rdf:about="http://purl.org/int-fiction/metadata/iflink/1.0/">
  <dc:title>Interactive Fiction Relational Links version 1.0</dc:title>
  <dc:description>Describes additional metadata fields to supplement the IF Metadata Element Set with links to related resources.</dc:description>
  <dc:date>2006-02-16</dc:date>
  <owl:versionInfo>1.0</owl:versionInfo>
<!--
  <owl:imports rdf:resource="http://www.w3.org/2000/01/rdf-schema" />
  <owl:imports rdf:resource="http://www.w3.org/2002/07/owl" />
 -->

  <!-- Reference complementary schemas -->
  <rdfs:seeAlso rdf:resource="http://xmlns.com/foaf/0.1/" />
  <rdfs:seeAlso rdf:resource="http://purl.org/dc/elements/1.1/" />

  <!-- This schema in pure RDF/XML -->
  <rdfs:seeAlso rdf:resource="http://purl.org/int-fiction/metadata/schemas/rdf/ifmes10" />

  <!-- The IF Typology Schema -->
  <owl:imports rdf:resource="http://purl.org/int-fiction/metadata/iftype/" />
  <rdfs:seeAlso rdf:resource="http://purl.org/int-fiction/metadata/schemas/rdf/iftype" />
</owl:Ontology>

<!-- ::::::: IFLink Properties ::::::: -->

<rdf:Property rdf:about="http://purl.org/int-fiction/metadata/iflink/1.0/hasComponent">
  <rdfs:label>Has Component</rdfs:label>
  <rdfs:comment>An additional resource needed to run the game.</rdfs:comment>
  <rdfs:domain rdf:resource="http://purl.org/int-fiction/metadata/iftype/Game" />
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource" />
  <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/requires" />
  <owl:inverseOf rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/isComponentOf" />
  <rdfs:isDefinedBy rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/" />
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty" />
</rdf:Property>

<rdf:Property rdf:about="http://purl.org/int-fiction/metadata/iflink/1.0/documentation">
  <rdfs:label>Documentation</rdfs:label>
  <rdfs:comment>A link to documentation of the game, such as the manual, readme, etc.</rdfs:comment>
  <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource" />
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource" />
  <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/relation" />
  <rdfs:isDefinedBy rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/" />
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty" />
</rdf:Property>

<rdf:Property rdf:about="http://purl.org/int-fiction/metadata/iflink/1.0/genre">
  <rdfs:label>Genre</rdfs:label>
  <rdfs:comment>The genre that the game falls under.</rdfs:comment>
  <rdfs:domain rdf:resource="http://purl.org/int-fiction/metadata/iftype/Game" />
  <rdfs:range rdf:resource="http://purl.org/int-fiction/metadata/iftype/Genre" />
  <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/type" />
  <rdfs:isDefinedBy rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/" />
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty" />
</rdf:Property>

<rdf:Property rdf:about="http://purl.org/int-fiction/metadata/iflink/1.0/hasPort">
  <rdfs:label>Has Port</rdfs:label>
  <rdfs:comment>A port derived from this game.</rdfs:comment>
  <rdfs:domain rdf:resource="http://purl.org/int-fiction/metadata/iftype/Game" />
  <rdfs:range rdf:resource="http://purl.org/int-fiction/metadata/iftype/Game" />
  <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/hasFormat" />
  <owl:inverseOf rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/isPortOf" />
  <rdfs:isDefinedBy rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/" />
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty" />
</rdf:Property>

<rdf:Property rdf:about="http://purl.org/int-fiction/metadata/iflink/1.0/hasTranslation">
  <rdfs:label>Has Translation</rdfs:label>
  <rdfs:comment>A translation of this game into another human language.</rdfs:comment>
  <rdfs:domain rdf:resource="http://purl.org/int-fiction/metadata/iftype/Game" />
  <rdfs:range rdf:resource="http://purl.org/int-fiction/metadata/iftype/Game" />
  <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/hasVersion" />
  <owl:inverseOf rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/isTranslationOf" />
  <rdfs:isDefinedBy rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/" />
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty" />
</rdf:Property>

<rdf:Property rdf:about="http://purl.org/int-fiction/metadata/iflink/1.0/icon">
  <rdfs:label>Icon</rdfs:label>
  <rdfs:comment>An icon that represents the game.</rdfs:comment>
  <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource" />
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource" />
  <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/relation" />
  <rdfs:isDefinedBy rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/" />
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty" />
</rdf:Property>

<rdf:Property rdf:about="http://purl.org/int-fiction/metadata/iflink/1.0/isComponentOf">
  <rdfs:label>Is Component Of</rdfs:label>
  <rdfs:comment>This resource is a component of the referenced game.</rdfs:comment>
  <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource" />
  <rdfs:range rdf:resource="http://purl.org/int-fiction/metadata/iftype/Game" />
  <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/isRequiredBy" />
  <owl:inverseOf rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/hasComponent" />
  <rdfs:isDefinedBy rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/" />
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty" />
</rdf:Property>

<rdf:Property rdf:about="http://purl.org/int-fiction/metadata/iflink/1.0/isPortOf">
  <rdfs:label>Is Port Of</rdfs:label>
  <rdfs:comment>This game is a port of the referenced game.</rdfs:comment>
  <rdfs:domain rdf:resource="http://purl.org/int-fiction/metadata/iftype/Game" />
  <rdfs:range rdf:resource="http://purl.org/int-fiction/metadata/iftype/Game" />
  <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/isFormatOf" />
  <owl:inverseOf rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/hasPort" />
  <rdfs:isDefinedBy rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/" />
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty" />
</rdf:Property>

<rdf:Property rdf:about="http://purl.org/int-fiction/metadata/iflink/1.0/isTranslationOf">
  <rdfs:label>Is Translation Of</rdfs:label>
  <rdfs:comment>This game is a translation of the referenced game.</rdfs:comment>
  <rdfs:domain rdf:resource="http://purl.org/int-fiction/metadata/iftype/Game" />
  <rdfs:range rdf:resource="http://purl.org/int-fiction/metadata/iftype/Game" />
  <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/isVersionOf" />
  <owl:inverseOf rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/hasTranslation" />
  <rdfs:isDefinedBy rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/" />
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty" />
</rdf:Property>

<rdf:Property rdf:about="http://purl.org/int-fiction/metadata/iflink/1.0/masterComponent">
  <rdfs:label>Master Component</rdfs:label>
  <rdfs:comment>The primary file that should be executed or opened to begin the game.</rdfs:comment>
  <rdfs:domain rdf:resource="http://purl.org/int-fiction/metadata/iftype/Game" />
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource" />
  <rdfs:subPropertyOf rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/hasComponent" />
  <rdfs:isDefinedBy rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/" />
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty" />
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty" />
</rdf:Property>

<rdf:Property rdf:about="http://purl.org/int-fiction/metadata/iflink/1.0/platform">
  <rdfs:label>Platform</rdfs:label>
  <rdfs:comment>The platform required to run the game.</rdfs:comment>
  <rdfs:domain rdf:resource="http://purl.org/dc/dcmitype/Software" />
  <rdfs:range rdf:resource="http://purl.org/int-fiction/metadata/iftype/Platform" />
  <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/requires" />
  <rdfs:isDefinedBy rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/" />
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty" />
</rdf:Property>

<rdf:Property rdf:about="http://purl.org/int-fiction/metadata/iflink/1.0/hasImplementation">
  <rdfs:label>Has Implementation</rdfs:label>
  <rdfs:comment>The identified resource is an implementation of this platform.</rdfs:comment>
  <rdfs:domain rdf:resource="http://purl.org/dc/dcmitype/Platform" />
  <rdfs:range rdf:resource="http://purl.org/dc/dcmitype/Software" />
  <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/relation" />
  <owl:inverseOf rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/isImplementationOf" />
  <rdfs:isDefinedBy rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/" />
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty" />
</rdf:Property>

<rdf:Property rdf:about="http://purl.org/int-fiction/metadata/iflink/1.0/isImplementationOf">
  <rdfs:label>Is Implementation Of</rdfs:label>
  <rdfs:comment>This software resource is an implementation of the identifed platform.</rdfs:comment>
  <rdfs:domain rdf:resource="http://purl.org/dc/dcmitype/Software" />
  <rdfs:range rdf:resource="http://purl.org/dc/dcmitype/Platform" />
  <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/relation" />
  <owl:inverseOf rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/hasImplementation" />
  <rdfs:isDefinedBy rdf:resource="http://purl.org/int-fiction/metadata/iflink/1.0/" />
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty" />
</rdf:Property>

</rdf:RDF>

A.2 Schema for XML

The latest version of the IF Link XML Schema can be found at <http://purl.org/int-fiction/metadata/schemas/xml/iflink10>. Its contents at the time of writing are shown below. This schema is meant for representing IFLink as plain XML; RDF/XML documents are not expected to validate against this schema.

<?xml version="1.0"?>
<!-- http://purl.org/int-fiction/metadata/schemas/xml/iflink10 -->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://purl.org/int-fiction/metadata/iflink/1.0/"
            xmlns="http://purl.org/int-fiction/metadata/iflink/1.0/"
            elementFormDefault="qualified">

<xsd:group name="IFLINK-SoftwareProperties">
  <xsd:choice>
    <xsd:element name="documentation" type="xsd:anyURI" />
    <xsd:element name="icon" type="xsd:anyURI" />
    <xsd:element name="implements" type="xsd:anyURI" />
    <xsd:element name="platform" type="xsd:anyURI" />
  </xsd:choice>
</xsd:group>

<xsd:group name="IFLINK-GameProperties">
  <xsd:choice>
    <xsd:group ref="IFLINK-SoftwareProperties" />
    <xsd:element name="hasComponent" type="xsd:anyURI" />
    <xsd:element name="genre" type="xsd:anyURI" />
    <xsd:element name="hasPort" type="xsd:anyURI" />
    <xsd:element name="hasTranslation" type="xsd:anyURI" />
    <xsd:element name="isPortOf" type="xsd:anyURI" />
    <xsd:element name="isTranslationOf" type="xsd:anyURI" />
    <xsd:element name="masterComponent" type="xsd:anyURI" />
    <xsd:element name="series" type="xsd:anyURI" />
  </xsd:choice>
</xsd:group>

<xsd:element name="hasImplementation" type="xsd:anyURI" />
<xsd:element name="isComponentOf" type="xsd:anyURI" />

</xsd:schema>

Changes

  • [2006-02-16] Changed headers and TOC entries for third-party elements to human-readable labels.
  • [2006-02-15] Removed the option of using rdfs:seeAlso as anything other than a aggregation pointer. dc:relation should be sufficient for everything else.
  • [2006-02-12] Removed dc:rights element from extra elements, as the DCMI probably intended it for copyright statement literals, not resource links.
  • [2005-12-01] Cleaned up schemas for publication.
  • [2005-11-17] Corrected some typoes. Clarified the purpose of the XML schema.
  • [2005-10-30] Clarified the definition of a Resource. Removed section 3 and merged the information into IFTYPE specification.
  • [2005-10-29] Gave all elements human-language labels instead of just using the last part of the URI.
  • [2005-09-30] Separated the IFLink Vocabulary from the IFMES specification. IFMES now describes only the simple constant elements that can be filled in by the author at the time of the game's release, while IFLink adds nonconstant elements connecting games together that must be continually checked and updated.

References

For dated references, subsequent amendments to or revisions of the publication do not apply. However, implementors of IFType are encouraged to investigate the possibility of applying the most recent editions of the normative documents indicated below. For undated references, the latest edition of the normative document referred to applies.

Normative References

[DCES]
Dublin Core Metadata Element Set, Version 1.1: Reference Description, 20 December 2004
http://dublincore.org/documents/dces/
[DCTERMS]
DCMI Metadata Terms, 13 June 2005
http://dublincore.org/documents/dcmi-terms/
[FOAF]
FOAF Vocabulary Specification
http://xmlns.com/foaf/0.1/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels, BCP 14, Internet RFC 2119
http://www.ietf.org/rfc/rfc2119.txt
[RFC3986]
Uniform Resource Identifiers (URI): Generic Syntax, Internet RFC 3986.
http://www.ietf.org/rfc/rfc3986.txt
[RFC3987]
Internationalized Resource Identifiers (IRI): Generic Syntax, Internet RFC 3987.
http://www.ietf.org/rfc/rfc3987.txt

Informative References

[IFMES]
The Interactive Fiction Metadata Element Set, version 1.1
http://purl.org/int-fiction/metadata/2006/WD-ifmes11-20060203
Latest Version: http://purl.org/int-fiction/metadata/1.1
[IFTYPE]
Interactive Fiction Type Vocabulary
http://purl.org/int-fiction/metadata/2006/WD-iftype-20060217
Latest Version: http://purl.org/int-fiction/metadata/iftype