The following document provides notes to assist translators in the task of converting method components to XML.
The new format for OPF Method Components has been devised as a formal XML vocabulary. The XML vocabulary will allow method components to be processed by a range of software tools, including transformations via XSL to XHTML for viewing in web browsers.
The format has also been designed to facilitate mantenance and also the expansion of the OPF by including a URN system that provides a global naming system that will support a network of OPF repositories that may provide a fixed home for class definitions and also instances of method components.
Finally, to allow the meta data in Method Components to be processed by external tools built to process standard web information, the RDF (Resource Description Framework) has been incorporated.
A URN (Uniform Resource Name) is a type of URI (Uniform Resource Indicator) that provides a globally-unique identifier for a resource on the web. Whereas a URL (Uniform Resource Locator) specifies (hard-codes) the location where the resource can be found on the Internet, the URN provides the name of the resource, and a tool must be developed to resolve the URN to a URL web address (or set of equivent web addresses such as mirrors etc.).
The URN format used by the OPFRO has the following form:
{scheme}:{namespace identifier}:{opf repository}:{resource type}:{resource identifier}
These parts are defined as follows:
Example OPFRO URNs include:
urn:opf:opfro:methodComponent:enterprise
urn:opf:opfro:methodComponent:systemArchitect
urn:opf:opfro:methodComponent:requirementsEngineering
urn:opf:opfro:image:requirementsEngineeringTasks
The URI identifier of a method component is the value of the ‘name’ attribute of a <methodComponent> root element. For example:
<methodComponent name="urn:opf:opfro:methodComponent:enterprise" ...>
The actual name of the Method Component is found in the first <term> element of the first <definition> element of the <definintions> section:
<definitions> <definition> <term>Enterprise</term> ... </definition> </definitions>
To support maintainability and minimize redundancy, file names will not be hard coded in hyperlinks. Instead, the actual file names of the method components will be stored in a list XML document. To indicate a link to another method component, the <mcItemRef> tag must be used as indicated in green below:
<definitions> <definition> <term>Enterprise</term> <meaning> The highest level <mcItemRef name="urn:opf:opfro:methodComponent:endeavor">endeavor</mcItemRef>, consisting of a collection of related <mcItemRef name="urn:opf:opfro:methodComponent:program">programs</mcItemRef> that are managed as a single unit </meaning> </definition> </definitions>
The XLS program will replace these mcItemRef elements with HTML anchors for display purposes.
These elements can appear with in the text for any method component section.
Like method components references, images may also be referred to via the <mcImageRef> tag, which must be used as indicated in green below:
<classification>
<type>Abstract</type>
<imageRef name="urn:opf:opfro:image:enterpriseInTaxonomy">Enterprise within the OPF
taxonomy of method components</imageRef>
...
</classification>
The XLS program will replace these imageRef elements with HTML image tags for display purposes.
These elements can appear within the text for any method component section.
The OPF XML Schema for OPF method components specifies the following common core sets of information that are inherited by all method components:
The following metatypes (subtypes) of method components are extended with additional sections of information:
See the XML schema or Method Component XML examples for the structure of each of these sections.
The Meta Data section is formated using RDF XML namespace and Dublin Core ontology. This mechanism will expose the meta data for each component to other tools on the Web that support these standards. The <metadata> element is shown below with the editable sections shown in green:
<metadata> <rdf:RDF xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#" xmlns:dc = "http://purl.org/dc/elements/1.1/" > <rdf:Description rdf:about="http://opfro.org/?urn:opf:opfro:methodComponent:enterprise" dc:title="OPF Method Component Class for Enterprise Producer" dc:description="The highest level endeavor, consisting of a collection of related programs that are managed as a single unit" dc:date="2005-07-17" dc:format="text/xml" dc:language="en" > <dc:publisher rdf:about="http://opfro.org/?urn:opf:opfro:organization:opfro"> Open Process Framework Repository Organsiation </dc:publisher> <dc:creator> <rdf:Bag> <rdf:li rdf:about="http://opfro.org/?urn:opf:opfro:person:donaldFiresmith"> Donald Firesmith </rdf:li> {add as needed} </rdf:Bag> </dc:creator> <dc:subject> <rdf:Bag> <rdf:li>enterprise</rdf:li> <rdf:li>endeavor</rdf:li> {add as needed} </rdf:Bag> </dc:subject> </rdf:Description> </rdf:RDF> </metadata>
You will notice the 'rdf:about' attributes contain a URL like "http://opfro.org/?urn:opf:opfro:person:donaldFiresmith". This tell rdf spiders that the subject of this element is Donald Firesmith, and this is where you can find more info on Donald. It is intended that the http://opfro.org/? part will point to a server side URN resolution tool that will redirect the http request to the appropriate web page. the 'resource identifier' part of all URNs should be writen as the name of the person formatted in camel case, with no spaces and a lower case initial character.
This should provide enough information to commence the translation exercise. Examples for each of the meta types can be found by following these links:
An full example XML file of a basic method component has been included below. The source for this is found here. The XML Schema can be found here.
<?xml version="1.0" encoding="ISO-8859-1"?> <methodComponent name="urn:opf:opfro:methodComponent:enterprise" xmlns="urn:opf:opfro:ns:2005" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:opf:opfro:ns:2005 http://opfro.org/schema/2005/opfMethodComponent.xsd" schemaVersion="1.0"> <definitions> <definition> <term>Enterprise</term> <meaning> The highest level <mcItemRef name="urn:opf:opfro:methodComponent:endeavor">endeavor</mcItemRef>, consisting of a collection of related <mcItemRef name="urn:opf:opfro:methodComponent:program">programs</mcItemRef> that are managed as a single unit </meaning> </definition> </definitions> <classification> <type>Abstract</type> <imageRef name="urn:opf:opfro:image:enterprise.001">Enterprise within the OPF taxonomy of method components</imageRef> <superclass> <mcItemRef name="urn:opf:opfro:methodComponent:endeavor">Endeavor</mcItemRef> </superclass> <subclasses> <subclass>Corporation</subclass> <subclass>Profit and Loss (P&L) Center</subclass> <subclass>Business Unit</subclass> </subclasses> </classification> <responsibilities> <responsibility>Elimininate unnecessary redundancies (e.g., duplicate effort and costs) between related programs of projects.</responsibility> <responsibility>Ensure standardization (e.g., development process, technology, platforms, and legacy integration) across related programs.</responsibility> <responsibility>Improve reuse (e.g., of work products, developer training) across related programs.</responsibility> <responsibility>Improve effort, schedule, and cost estimation across related programs.</responsibility> <responsibility>Minimize development and maintainance costs across multiple related applications produced by multiple related programs.</responsibility> </responsibilities> <guidelines> <guideline>Enterprises are rarely modeled unless entprises produce standard methods.</guideline> </guidelines> <metadata> <rdf:RDF xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#" xmlns:dc = "http://purl.org/dc/elements/1.1/" > <rdf:Description rdf:about="http://opfro.org/?urn:opf:opfro:methodComponent:enterprise" dc:title="OPF Method Component Class for Enterprise Producer" dc:description="The highest level endeavor, consisting of a collection of related programs that are managed as a single unit" dc:date="2005-07-17" dc:format="text/xml" dc:language="en" > <dc:publisher rdf:about="http://opfro.org/?urn:opf:opfro:organization:opfro"> Open Process Framework Repository Organsiation </dc:publisher> <dc:creator> <rdf:Bag> <rdf:li rdf:about="http://opfro.org/?urn:opf:opfro:person:donaldFiresmith">Donald Firesmith</rdf:li> </rdf:Bag> </dc:creator> <dc:subject> <rdf:Bag> <rdf:li>enterprise</rdf:li> <rdf:li>endeavor</rdf:li> </rdf:Bag> </dc:subject> </rdf:Description> </rdf:RDF> </metadata> </methodComponent>