Index: ruby/trunk/CHANGELOG
===================================================================
--- ruby/trunk/CHANGELOG	(revision 290)
+++ ruby/trunk/CHANGELOG	(revision 291)
@@ -1,2 +1,4 @@
+2009/08/28 Moving from Test::Unit to Rspec
+2009/08/04 branch 0.5 adjust on rails
 2009/07/22 Almost half of the specifications of the openEHR
            are implemented
Index: ruby/trunk/COPYING
===================================================================
--- ruby/trunk/COPYING	(revision 290)
+++ ruby/trunk/COPYING	(revision 291)
@@ -1,3 +1,10 @@
 openEHR Open Source Software License
 
-The openEHR Foundation uses the Mozilla Tri-license 1.1 on all software copyrighted to the Foundation. This licence essentially provides the user a choice of licence conditions under which to operate with any given piece of software, being: the Mozilla Public licence (MPL), and the Free Software Foundation GNU General Public Licence (GPL) and Lesser GNU Public Licence (LGPL). See the Mozilla relicensing FAQ for details of this license. This in no way constrains the way in which software created by other organisations is licenced. 
+The openEHR Foundation uses the Mozilla Tri-license 1.1 on all software
+copyrighted to the Foundation. This licence essentially provides the user
+a choice of licence conditions under which to operate with any given piece
+of software, being: the Mozilla Public licence (MPL), and the Free Software
+Foundation GNU General Public Licence (GPL) and Lesser GNU Public Licence
+(LGPL). See the Mozilla relicensing FAQ for details of this license.
+This in no way constrains the way in which software created by other
+organisations is licenced. 
Index: ruby/trunk/app/controllers/application.rb
===================================================================
--- ruby/trunk/app/controllers/application.rb	(revision 291)
+++ ruby/trunk/app/controllers/application.rb	(revision 291)
@@ -0,0 +1,15 @@
+# Filters added to this controller apply to all controllers in the application.
+# Likewise, all the methods added will be available for all controllers.
+
+class ApplicationController < ActionController::Base
+  helper :all # include all helpers, all the time
+
+  # See ActionController::RequestForgeryProtection for details
+  # Uncomment the :secret if you're not using the cookie session store
+  protect_from_forgery # :secret => 'dae0f1d0aa66bc5a354be9b4211bf67a'
+  
+  # See ActionController::Base for details 
+  # Uncomment this to filter the contents of submitted sensitive data parameters
+  # from your application log (in this case, all fields with names like "password"). 
+  # filter_parameter_logging :password
+end
Index: ruby/trunk/app/controllers/terminology_controller.rb
===================================================================
--- ruby/trunk/app/controllers/terminology_controller.rb	(revision 291)
+++ ruby/trunk/app/controllers/terminology_controller.rb	(revision 291)
@@ -0,0 +1,14 @@
+class TerminologyController < ApplicationController
+  def show
+    @terminology = Terminology.find(:first,:conditions => {
+                                           :name => params[:name],
+                                           :lang => params[:lang],
+                                           :code => params[:code]})
+    if @terminology.nil?
+      render :text => '404 not found.', :status => 404
+    else
+      render :xml => @terminology.to_xml(
+                           :skip_types => true, :only => [:rubric])
+    end
+  end
+end
Index: ruby/trunk/app/helpers/application_helper.rb
===================================================================
--- ruby/trunk/app/helpers/application_helper.rb	(revision 291)
+++ ruby/trunk/app/helpers/application_helper.rb	(revision 291)
@@ -0,0 +1,3 @@
+# Methods added to this helper will be available to all templates in the application.
+module ApplicationHelper
+end
Index: ruby/trunk/app/helpers/terminology_helper.rb
===================================================================
--- ruby/trunk/app/helpers/terminology_helper.rb	(revision 291)
+++ ruby/trunk/app/helpers/terminology_helper.rb	(revision 291)
@@ -0,0 +1,2 @@
+module TerminologyHelper
+end
Index: ruby/trunk/app/models/terminology.rb
===================================================================
--- ruby/trunk/app/models/terminology.rb	(revision 291)
+++ ruby/trunk/app/models/terminology.rb	(revision 291)
@@ -0,0 +1,2 @@
+class Terminology < ActiveRecord::Base
+end
Index: ruby/trunk/app/views/terminology/show.html.erb
===================================================================
--- ruby/trunk/app/views/terminology/show.html.erb	(revision 291)
+++ ruby/trunk/app/views/terminology/show.html.erb	(revision 291)
@@ -0,0 +1,5 @@
+<%= link_to "Terminology",
+    :controller => "terminology",
+    :action => "show",
+    :name => "name",
+    :id => "openehr_id" %>
Index: ruby/trunk/bin/adl_validator.rb
===================================================================
--- ruby/trunk/bin/adl_validator.rb	(revision 290)
+++ ruby/trunk/bin/adl_validator.rb	(revision 291)
@@ -6,5 +6,5 @@
 require 'net/http'
 
-module OpenEHR
+module OpenEhr
   module CommandLine
     class Arguments < Hash
@@ -39,5 +39,5 @@
             when /\A(http:\/\/.*)/
               name = $1
-              input = case response = Net::HTTP.get_response(URI.parse($1))
+              input = case response = Net::HTTP.get_response(Uri.parse($1))
                       when Net::HTTPSuccess   
                         response.body
@@ -73,6 +73,6 @@
 if __FILE__ == $0
   begin
-    arguments = OpenEHR::CommandLine::Arguments.new(ARGV)
-    validator = OpenEHR::CommandLine::ADLValidator.new(arguments)
+    arguments = OpenEhr::CommandLine::Arguments.new(ARGV)
+    validator = OpenEhr::CommandLine::ADLValidator.new(arguments)
     validator.run
   end
Index: ruby/trunk/config/boot.rb
===================================================================
--- ruby/trunk/config/boot.rb	(revision 291)
+++ ruby/trunk/config/boot.rb	(revision 291)
@@ -0,0 +1,109 @@
+# Don't change this file!
+# Configure your app in config/environment.rb and config/environments/*.rb
+
+RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
+
+module Rails
+  class << self
+    def boot!
+      unless booted?
+        preinitialize
+        pick_boot.run
+      end
+    end
+
+    def booted?
+      defined? Rails::Initializer
+    end
+
+    def pick_boot
+      (vendor_rails? ? VendorBoot : GemBoot).new
+    end
+
+    def vendor_rails?
+      File.exist?("#{RAILS_ROOT}/vendor/rails")
+    end
+
+    def preinitialize
+      load(preinitializer_path) if File.exist?(preinitializer_path)
+    end
+
+    def preinitializer_path
+      "#{RAILS_ROOT}/config/preinitializer.rb"
+    end
+  end
+
+  class Boot
+    def run
+      load_initializer
+      Rails::Initializer.run(:set_load_path)
+    end
+  end
+
+  class VendorBoot < Boot
+    def load_initializer
+      require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
+      Rails::Initializer.run(:install_gem_spec_stubs)
+    end
+  end
+
+  class GemBoot < Boot
+    def load_initializer
+      self.class.load_rubygems
+      load_rails_gem
+      require 'initializer'
+    end
+
+    def load_rails_gem
+      if version = self.class.gem_version
+        gem 'rails', version
+      else
+        gem 'rails'
+      end
+    rescue Gem::LoadError => load_error
+      $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
+      exit 1
+    end
+
+    class << self
+      def rubygems_version
+        Gem::RubyGemsVersion if defined? Gem::RubyGemsVersion
+      end
+
+      def gem_version
+        if defined? RAILS_GEM_VERSION
+          RAILS_GEM_VERSION
+        elsif ENV.include?('RAILS_GEM_VERSION')
+          ENV['RAILS_GEM_VERSION']
+        else
+          parse_gem_version(read_environment_rb)
+        end
+      end
+
+      def load_rubygems
+        require 'rubygems'
+
+        unless rubygems_version >= '0.9.4'
+          $stderr.puts %(Rails requires RubyGems >= 0.9.4 (you have #{rubygems_version}). Please `gem update --system` and try again.)
+          exit 1
+        end
+
+      rescue LoadError
+        $stderr.puts %(Rails requires RubyGems >= 0.9.4. Please install RubyGems and try again: http://rubygems.rubyforge.org)
+        exit 1
+      end
+
+      def parse_gem_version(text)
+        $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
+      end
+
+      private
+        def read_environment_rb
+          File.read("#{RAILS_ROOT}/config/environment.rb")
+        end
+    end
+  end
+end
+
+# All that for this:
+Rails.boot!
Index: ruby/trunk/config/database.yml
===================================================================
--- ruby/trunk/config/database.yml	(revision 291)
+++ ruby/trunk/config/database.yml	(revision 291)
@@ -0,0 +1,19 @@
+# SQLite version 3.x
+#   gem install sqlite3-ruby (not necessary on OS X Leopard)
+development:
+  adapter: sqlite3
+  database: db/development.sqlite3
+  timeout: 5000
+
+# Warning: The database defined as "test" will be erased and
+# re-generated from your development database when you run "rake".
+# Do not set this db to the same as development or production.
+test:
+  adapter: sqlite3
+  database: db/test.sqlite3
+  timeout: 5000
+
+production:
+  adapter: sqlite3
+  database: db/production.sqlite3
+  timeout: 5000
Index: ruby/trunk/config/environment.rb
===================================================================
--- ruby/trunk/config/environment.rb	(revision 291)
+++ ruby/trunk/config/environment.rb	(revision 291)
@@ -0,0 +1,67 @@
+# Be sure to restart your server when you modify this file
+
+# Uncomment below to force Rails into production mode when
+# you don't control web/app server and can't set it the proper way
+# ENV['RAILS_ENV'] ||= 'production'
+
+# Specifies gem version of Rails to use when vendor/rails is not present
+RAILS_GEM_VERSION = '2.1.0' unless defined? RAILS_GEM_VERSION
+
+# Bootstrap the Rails environment, frameworks, and default configuration
+require File.join(File.dirname(__FILE__), 'boot')
+
+Rails::Initializer.run do |config|
+  # Settings in config/environments/* take precedence over those specified here.
+  # Application configuration should go into files in config/initializers
+  # -- all .rb files in that directory are automatically loaded.
+  # See Rails::Configuration for more options.
+
+  # Skip frameworks you're not going to use. To use Rails without a database
+  # you must remove the Active Record framework.
+  # config.frameworks -= [ :active_record, :active_resource, :action_mailer ]
+
+  # Specify gems that this application depends on. 
+  # They can then be installed with "rake gems:install" on new installations.
+  # config.gem "bj"
+  # config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net"
+  # config.gem "aws-s3", :lib => "aws/s3"
+
+  # Only load the plugins named here, in the order given. By default, all plugins 
+  # in vendor/plugins are loaded in alphabetical order.
+  # :all can be used as a placeholder for all plugins not explicitly named
+  # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
+
+  # Add additional load paths for your own custom dirs
+  # config.load_paths += %W( #{RAILS_ROOT}/extras )
+
+  # Force all environments to use the same logger level
+  # (by default production uses :info, the others :debug)
+  # config.log_level = :debug
+
+  # Make Time.zone default to the specified zone, and make Active Record store time values
+  # in the database in UTC, and return them converted to the specified local zone.
+  # Run "rake -D time" for a list of tasks for finding time zone names. Uncomment to use default local time.
+  config.time_zone = 'UTC'
+
+  # Your secret key for verifying cookie session data integrity.
+  # If you change this key, all old sessions will become invalid!
+  # Make sure the secret is at least 30 characters and all random, 
+  # no regular words or you'll be exposed to dictionary attacks.
+  config.action_controller.session = {
+    :session_key => '_terminology_session',
+    :secret      => '1ea0f287b0aff2a17c7118ce51c923ba7dbbb864484499aefa03b79b57488265f13445ba44b6c0d1abe411f7bc2c8417edabadd611190532e7051a1a7319b707'
+  }
+
+  # Use the database for sessions instead of the cookie-based default,
+  # which shouldn't be used to store highly confidential information
+  # (create the session table with "rake db:sessions:create")
+  # config.action_controller.session_store = :active_record_store
+
+  # Use SQL instead of Active Record's schema dumper when creating the test database.
+  # This is necessary if your schema can't be completely dumped by the schema dumper,
+  # like if you have constraints or database-specific column types
+  # config.active_record.schema_format = :sql
+
+  # Activate observers that should always be running
+  # config.active_record.observers = :cacher, :garbage_collector
+end
Index: ruby/trunk/config/environments/development.rb
===================================================================
--- ruby/trunk/config/environments/development.rb	(revision 291)
+++ ruby/trunk/config/environments/development.rb	(revision 291)
@@ -0,0 +1,17 @@
+# Settings specified here will take precedence over those in config/environment.rb
+
+# In the development environment your application's code is reloaded on
+# every request.  This slows down response time but is perfect for development
+# since you don't have to restart the webserver when you make code changes.
+config.cache_classes = false
+
+# Log error messages when you accidentally call methods on nil.
+config.whiny_nils = true
+
+# Show full error reports and disable caching
+config.action_controller.consider_all_requests_local = true
+config.action_view.debug_rjs                         = true
+config.action_controller.perform_caching             = false
+
+# Don't care if the mailer can't send
+config.action_mailer.raise_delivery_errors = false
Index: ruby/trunk/config/environments/production.rb
===================================================================
--- ruby/trunk/config/environments/production.rb	(revision 291)
+++ ruby/trunk/config/environments/production.rb	(revision 291)
@@ -0,0 +1,22 @@
+# Settings specified here will take precedence over those in config/environment.rb
+
+# The production environment is meant for finished, "live" apps.
+# Code is not reloaded between requests
+config.cache_classes = true
+
+# Use a different logger for distributed setups
+# config.logger = SyslogLogger.new
+
+# Full error reports are disabled and caching is turned on
+config.action_controller.consider_all_requests_local = false
+config.action_controller.perform_caching             = true
+config.action_view.cache_template_loading            = true
+
+# Use a different cache store in production
+# config.cache_store = :mem_cache_store
+
+# Enable serving of images, stylesheets, and javascripts from an asset server
+# config.action_controller.asset_host                  = "http://assets.example.com"
+
+# Disable delivery errors, bad email addresses will be ignored
+# config.action_mailer.raise_delivery_errors = false
Index: ruby/trunk/config/environments/test.rb
===================================================================
--- ruby/trunk/config/environments/test.rb	(revision 291)
+++ ruby/trunk/config/environments/test.rb	(revision 291)
@@ -0,0 +1,22 @@
+# Settings specified here will take precedence over those in config/environment.rb
+
+# The test environment is used exclusively to run your application's
+# test suite.  You never need to work with it otherwise.  Remember that
+# your test database is "scratch space" for the test suite and is wiped
+# and recreated between test runs.  Don't rely on the data there!
+config.cache_classes = true
+
+# Log error messages when you accidentally call methods on nil.
+config.whiny_nils = true
+
+# Show full error reports and disable caching
+config.action_controller.consider_all_requests_local = true
+config.action_controller.perform_caching             = false
+
+# Disable request forgery protection in test environment
+config.action_controller.allow_forgery_protection    = false
+
+# Tell Action Mailer not to deliver emails to the real world.
+# The :test delivery method accumulates sent emails in the
+# ActionMailer::Base.deliveries array.
+config.action_mailer.delivery_method = :test
Index: ruby/trunk/config/initializers/inflections.rb
===================================================================
--- ruby/trunk/config/initializers/inflections.rb	(revision 291)
+++ ruby/trunk/config/initializers/inflections.rb	(revision 291)
@@ -0,0 +1,10 @@
+# Be sure to restart your server when you modify this file.
+
+# Add new inflection rules using the following format 
+# (all these examples are active by default):
+# Inflector.inflections do |inflect|
+#   inflect.plural /^(ox)$/i, '\1en'
+#   inflect.singular /^(ox)en/i, '\1'
+#   inflect.irregular 'person', 'people'
+#   inflect.uncountable %w( fish sheep )
+# end
Index: ruby/trunk/config/initializers/mime_types.rb
===================================================================
--- ruby/trunk/config/initializers/mime_types.rb	(revision 291)
+++ ruby/trunk/config/initializers/mime_types.rb	(revision 291)
@@ -0,0 +1,5 @@
+# Be sure to restart your server when you modify this file.
+
+# Add new mime types for use in respond_to blocks:
+# Mime::Type.register "text/richtext", :rtf
+# Mime::Type.register_alias "text/html", :iphone
Index: ruby/trunk/config/initializers/new_rails_defaults.rb
===================================================================
--- ruby/trunk/config/initializers/new_rails_defaults.rb	(revision 291)
+++ ruby/trunk/config/initializers/new_rails_defaults.rb	(revision 291)
@@ -0,0 +1,15 @@
+# These settings change the behavior of Rails 2 apps and will be defaults
+# for Rails 3. You can remove this initializer when Rails 3 is released.
+
+# Include Active Record class name as root for JSON serialized output.
+ActiveRecord::Base.include_root_in_json = true
+
+# Store the full class name (including module namespace) in STI type column.
+ActiveRecord::Base.store_full_sti_class = true
+
+# Use ISO 8601 format for JSON serialized times and dates.
+ActiveSupport.use_standard_json_time_format = true
+
+# Don't escape HTML entities in JSON, leave that for the #json_escape helper.
+# if you're including raw json in an HTML page.
+ActiveSupport.escape_html_entities_in_json = false
Index: ruby/trunk/config/routes.rb
===================================================================
--- ruby/trunk/config/routes.rb	(revision 291)
+++ ruby/trunk/config/routes.rb	(revision 291)
@@ -0,0 +1,47 @@
+ActionController::Routing::Routes.draw do |map|
+  # The priority is based upon order of creation: first created -> highest priority.
+
+  # Sample of regular route:
+  #   map.connect 'products/:id', :controller => 'catalog', :action => 'view'
+  # Keep in mind you can assign values other than :controller and :action
+
+  # Sample of named route:
+  #   map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
+  # This route can be invoked with purchase_url(:id => product.id)
+
+  # Sample resource route (maps HTTP verbs to controller actions automatically):
+  #   map.resources :products
+
+  # Sample resource route with options:
+  #   map.resources :products, :member => { :short => :get, :toggle => :post }, :collection => { :sold => :get }
+
+  # Sample resource route with sub-resources:
+  #   map.resources :products, :has_many => [ :comments, :sales ], :has_one => :seller
+  
+  # Sample resource route with more complex sub-resources
+  #   map.resources :products do |products|
+  #     products.resources :comments
+  #     products.resources :sales, :collection => { :recent => :get }
+  #   end
+
+  # Sample resource route within a namespace:
+  #   map.namespace :admin do |admin|
+  #     # Directs /admin/products/* to Admin::ProductsController (app/controllers/admin/products_controller.rb)
+  #     admin.resources :products
+  #   end
+
+  # You can have the root of your site routed with map.root -- just remember to delete public/index.html.
+  # map.root :controller => "welcome"
+
+  # See how all your routes lay out with "rake routes"
+  # RESTful terminology interface
+  #  map.resources :terminology
+  map.terminology 'terminology/:name/:lang/:code',
+                  :controller => 'terminology',
+                  :action => 'show'
+
+  # Install the default routes as the lowest priority.
+  map.connect ':controller/:action/:id'
+  map.connect ':controller/:action/:id.:format'
+
+end
Index: ruby/trunk/db/migrate/20090725052538_create_terminologies.rb
===================================================================
--- ruby/trunk/db/migrate/20090725052538_create_terminologies.rb	(revision 291)
+++ ruby/trunk/db/migrate/20090725052538_create_terminologies.rb	(revision 291)
@@ -0,0 +1,18 @@
+class CreateTerminologies < ActiveRecord::Migration
+  def self.up
+    create_table :terminologies do |t|
+      t.integer :id
+      t.string :code
+      t.string :name
+      t.string :lang
+      t.text :group
+      t.string :rubric
+      t.text :description
+      t.string :mappings
+    end
+  end
+
+  def self.down
+    drop_table :terminologies
+  end
+end
Index: ruby/trunk/db/schema.rb
===================================================================
--- ruby/trunk/db/schema.rb	(revision 291)
+++ ruby/trunk/db/schema.rb	(revision 291)
@@ -0,0 +1,24 @@
+# This file is auto-generated from the current state of the database. Instead of editing this file, 
+# please use the migrations feature of Active Record to incrementally modify your database, and
+# then regenerate this schema definition.
+#
+# Note that this schema.rb definition is the authoritative source for your database schema. If you need
+# to create the application database on another system, you should be using db:schema:load, not running
+# all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
+# you'll amass, the slower it'll run and the greater likelihood for issues).
+#
+# It's strongly recommended to check this file into your version control system.
+
+ActiveRecord::Schema.define(:version => 20090725052538) do
+
+  create_table "terminologies", :force => true do |t|
+    t.string "code"
+    t.string "name"
+    t.string "lang"
+    t.text   "group"
+    t.string "rubric"
+    t.text   "description"
+    t.string "mappings"
+  end
+
+end
Index: ruby/trunk/doc/README_FOR_APP
===================================================================
--- ruby/trunk/doc/README_FOR_APP	(revision 291)
+++ ruby/trunk/doc/README_FOR_APP	(revision 291)
@@ -0,0 +1,2 @@
+Use this README file to introduce your application and point to useful places in the API for learning more.
+Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries.
Index: ruby/trunk/doc/api
===================================================================
--- ruby/trunk/doc/api	(revision 291)
+++ ruby/trunk/doc/api	(revision 291)
@@ -0,0 +1,1 @@
+link /usr/share/doc/rails/html
Index: ruby/trunk/doc/open_ehr/Common_RM.ntriple
===================================================================
--- ruby/trunk/doc/open_ehr/Common_RM.ntriple	(revision 291)
+++ ruby/trunk/doc/open_ehr/Common_RM.ntriple	(revision 291)
@@ -0,0 +1,254 @@
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#ISO_OID> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#UID> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#ISO_OID> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA15 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA15 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA15 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#domain_concept> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#participations> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#participations> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#ATTESTATION> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#participations> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTICIPATION> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#links> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#links> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LINK> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#links> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#value> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_ID> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#value> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#value> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#value> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#function> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTICIPATION> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#function> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#function> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#function> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+_:AX5fXX3aXX40XX5fXX3aXA24 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#proof> .
+_:AX5fXX3aXX40XX5fXX3aXA24 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA24 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#version_id> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_ID> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#version_id> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#version_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA4 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA4 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#name> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#status> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#ATTESTATION> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#status> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#status> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#status> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#specialisation> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#HIER_OBJECT_ID> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#specialisation> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#specialisation> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#specialisation> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#performer> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTICIPATION> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#performer> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTY_REF> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#performer> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#performer> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA16 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA16 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#qualified_rm_entity> .
+_:AX5fXX3aXX40XX5fXX3aXA16 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA25 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA25 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#status> .
+_:AX5fXX3aXX40XX5fXX3aXA25 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_ID> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_ID> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA19 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_ID> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://www.w3.org/2002/07/owl#Thing> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_ID> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA18 .
+_:AX5fXX3aXX40XX5fXX3aXA5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA5 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#id> .
+_:AX5fXX3aXX40XX5fXX3aXA5 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#name> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#name> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#name> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#name> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#ARCHETYPED> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA17 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA17 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#specialisation> .
+_:AX5fXX3aXX40XX5fXX3aXA17 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_name> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#HIER_OBJECT_ID> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_name> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_name> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_name> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#archetype_details> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#ARCHETYPED> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#archetype_details> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#archetype_details> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+_:AX5fXX3aXX40XX5fXX3aXA26 <http://www.w3.org/2002/07/owl#minCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA26 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA26 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#participations> .
+_:AX5fXX3aXX40XX5fXX3aXA6 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA6 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#relationship> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#relationship> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#relationship> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#relationship> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#RELATED_PARTY> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#SET_DV_EHR_URI> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#SET_DV_EHR_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#SET_T> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#SET_DV_EHR_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA6 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#meaning> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#meaning> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#meaning> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#meaning> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_entity> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_entity> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_entity> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_entity> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#HIER_OBJECT_ID> .
+_:AX5fXX3aXX40XX5fXX3aXA18 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA18 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#version_id> .
+_:AX5fXX3aXX40XX5fXX3aXA18 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#mode> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#mode> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTICIPATION> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#mode> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#mode> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#id> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_REF> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#id> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_ID> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#LINK> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#VERSION_AUDIT> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#VERSION_AUDIT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#AUDIT_DETAILS> .
+_:AX5fXX3aXX40XX5fXX3aXA27 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA28 .
+_:AX5fXX3aXX40XX5fXX3aXA27 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl> <http://www.w3.org/2002/07/owl#imports> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl> .
+_:AX5fXX3aXX40XX5fXX3aXA7 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA7 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#time> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#UUID> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#UUID> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#UID> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#ACCESS_GROUP_REF> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#ACCESS_GROUP_REF> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_REF> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTY_REF> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTY_REF> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_REF> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#ARCHETYPE_ID> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#ARCHETYPE_ID> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_ID> .
+_:AX5fXX3aXX40XX5fXX3aXA19 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA19 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA19 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#domain_concept> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#HIER_OBJECT_ID> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#domain_concept> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#domain_concept> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#domain_concept> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA28 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#ATTESTATION> .
+_:AX5fXX3aXX40XX5fXX3aXA28 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA29 .
+_:AX5fXX3aXX40XX5fXX3aXA8 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#mode> .
+_:AX5fXX3aXX40XX5fXX3aXA8 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA8 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#HIER_OBJECT_ID> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA17 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#HIER_OBJECT_ID> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA16 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#HIER_OBJECT_ID> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA15 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#HIER_OBJECT_ID> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA14 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#HIER_OBJECT_ID> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA13 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#HIER_OBJECT_ID> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_ID> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#HIER_OBJECT_ID> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA12 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#HIER_OBJECT_ID> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#qualified_rm_entity> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#qualified_rm_entity> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#qualified_rm_entity> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#qualified_rm_entity> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#HIER_OBJECT_ID> .
+_:AX5fXX3aXX40XX5fXX3aXA10 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA10 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA10 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#function> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#feeder_audit> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#feeder_audit> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#feeder_audit> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#FEEDER_AUDIT> .
+_:AX5fXX3aXX40XX5fXX3aXA29 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTICIPATION> .
+_:AX5fXX3aXX40XX5fXX3aXA29 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA9 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA9 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA9 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#time> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#SET_DV_EHR_URI> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#ATTESTATION> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#items> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#items> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#namespace> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_REF> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#namespace> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#namespace> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#namespace> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#uid> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_ID> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#uid> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#uid> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA11 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA11 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#performer> .
+_:AX5fXX3aXX40XX5fXX3aXA11 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#AUDIT_DETAILS> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_originator> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#HIER_OBJECT_ID> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_originator> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_originator> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_originator> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA20 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#relationship> .
+_:AX5fXX3aXX40XX5fXX3aXA20 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA20 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA0 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA0 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#feeder_audit> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#ATTESTATION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#ATTESTATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA26 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#ATTESTATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA25 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#ATTESTATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA24 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#ATTESTATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA23 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#ATTESTATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA22 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#ATTESTATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://www.w3.org/2002/07/owl#Thing> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#proof> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#ATTESTATION> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#proof> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#proof> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#RELATED_PARTY> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#RELATED_PARTY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://www.w3.org/2002/07/owl#Thing> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#RELATED_PARTY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA21 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#RELATED_PARTY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA20 .
+_:AX5fXX3aXX40XX5fXX3aXA12 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_originator> .
+_:AX5fXX3aXX40XX5fXX3aXA12 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA12 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#time> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#time> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#time> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#time> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA27 .
+_:AX5fXX3aXX40XX5fXX3aXA21 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA21 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA21 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#party> .
+_:AX5fXX3aXX40XX5fXX3aXA1 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#meaning> .
+_:AX5fXX3aXX40XX5fXX3aXA1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTICIPATION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTICIPATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA11 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTICIPATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA10 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTICIPATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA9 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTICIPATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA8 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTICIPATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA7 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTICIPATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://www.w3.org/2002/07/owl#Thing> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#type> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#type> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_REF> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#InverseFunctionalProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#party> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#RELATED_PARTY> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#party> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTY_REF> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#party> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA13 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA13 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA13 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_name> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#CONTRIBUTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#AUDIT_DETAILS> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#CONTRIBUTION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA22 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA22 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA22 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#time> .
+_:AX5fXX3aXX40XX5fXX3aXA2 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#archetype_details> .
+_:AX5fXX3aXX40XX5fXX3aXA2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#TERMINOLOGY_ID> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#TERMINOLOGY_ID> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_ID> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://www.w3.org/2002/07/owl#Thing> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA4 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA0 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#FEEDER_AUDIT> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_REF> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA5 .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_REF> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://www.w3.org/2002/07/owl#Thing> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#OBJECT_REF> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA14 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#rm_entity> .
+_:AX5fXX3aXX40XX5fXX3aXA14 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA14 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#VERSION_REPOSITORY_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA23 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#items> .
+_:AX5fXX3aXX40XX5fXX3aXA23 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA23 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#uid> .
+_:AX5fXX3aXX40XX5fXX3aXA3 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#UID> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
Index: ruby/trunk/doc/open_ehr/Data_Structures_RM.ntriple
===================================================================
--- ruby/trunk/doc/open_ehr/Data_Structures_RM.ntriple	(revision 291)
+++ ruby/trunk/doc/open_ehr/Data_Structures_RM.ntriple	(revision 291)
@@ -0,0 +1,344 @@
+_:AX5fXX3aXX40XX5fXX3aXA649 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA649 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA649 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA613 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA613 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#origin> .
+_:AX5fXX3aXX40XX5fXX3aXA613 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA658 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#EVENT_SERIES_T> .
+_:AX5fXX3aXX40XX5fXX3aXA658 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA659 .
+_:AX5fXX3aXX40XX5fXX3aXA622 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#items> .
+_:AX5fXX3aXX40XX5fXX3aXA622 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA622 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#math_function> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#math_function> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#math_function> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_EVENT_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#duration> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#duration> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#duration> <http://www.w3.org/2000/01/rdf-schema#label> "duracion"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#duration> <http://www.w3.org/2000/01/rdf-schema#label> "duration"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#LIST_ITEM> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA612 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#LIST_ITEM> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#LIST_ITEM> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA631 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA631 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#representation> .
+_:AX5fXX3aXX40XX5fXX3aXA631 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#row_count> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TABLE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#row_count> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#row_count> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#integer> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA644 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "the abstract parent of COMPOUND and ELEMENT representation classes"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "n/a"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_HIERARCHICAL_ITEM"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> <http://www.w3.org/2000/01/rdf-schema#label> "item"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> <http://www.w3.org/2000/01/rdf-schema#label> "item"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> <http://www.w3.org/2002/07/owl#equivalentClass> _:AX5fXX3aXX40XX5fXX3aXA645 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> <http://protege.stanford.edu/plugins/owl/protege#abstract> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "Item"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> "COAS::Observation"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA640 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#period> .
+_:AX5fXX3aXX40XX5fXX3aXA640 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA640 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA623 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_HIERARCHICAL_GROUP"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "ClusterOCC"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "The grouping variant of ITEM, which may contain ffurther instances of ITEM, in an ordered list"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "Compound class"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA622 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Act_context"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> "COAS::CompositeObservation"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA614 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA615 .
+_:AX5fXX3aXX40XX5fXX3aXA614 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_HIERARCHICAL_VALUE"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA627 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "DataItem"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA628 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA629 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "Element"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "The leaf variant of ITEM, to which a DATA_VALUE instance is attached."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Act"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> "COAS::AtomicObservation"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA659 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> .
+_:AX5fXX3aXX40XX5fXX3aXA659 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA623 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA623 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#items> .
+_:AX5fXX3aXX40XX5fXX3aXA623 <http://www.w3.org/2002/07/owl#minCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#is_periodic> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#is_periodic> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#is_periodic> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#EVENT_SERIES_T> .
+_:AX5fXX3aXX40XX5fXX3aXA632 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> .
+_:AX5fXX3aXX40XX5fXX3aXA632 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA632 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#representation> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#MisUse> "Not to be used for time-based lists, which should be represented with the proper termporal class"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA621 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA619 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used to represent any data which is logically a list of values, \nsuch as blood presure, most protocols, many blood tests etc...\n"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA618 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA620 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Logical list data structure, where each item has a value and can be referred to by a name and a positional index in the list"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA617 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_LIST_PROPOSITION"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_STRUCTURE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "CDA List Entry"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#column_count> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#integer> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#column_count> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#column_count> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TABLE> .
+_:AX5fXX3aXX40XX5fXX3aXA641 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA641 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#EVENT_T> .
+_:AX5fXX3aXX40XX5fXX3aXA641 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#items> .
+_:AX5fXX3aXX40XX5fXX3aXA615 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#SINGLE_EVENT_T> .
+_:AX5fXX3aXX40XX5fXX3aXA615 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA616 .
+_:AX5fXX3aXX40XX5fXX3aXA650 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA650 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#representation> .
+_:AX5fXX3aXX40XX5fXX3aXA650 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> .
+_:AX5fXX3aXX40XX5fXX3aXA624 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA624 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_EVENT_T> .
+_:AX5fXX3aXX40XX5fXX3aXA624 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> <http://protege.stanford.edu/plugins/owl/protege#abstract> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Abstract parent class of all spatial data types"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "CDA Structure"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA631 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> <http://www.w3.org/2000/01/rdf-schema#label> "structure"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> <http://www.w3.org/2000/01/rdf-schema#label> "estructura"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA630 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_HIERARCHICAL_PROPOSITION"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA633 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA633 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#math_function> .
+_:AX5fXX3aXX40XX5fXX3aXA633 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA642 <http://www.w3.org/2002/07/owl#minCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA642 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA642 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#items> .
+_:AX5fXX3aXX40XX5fXX3aXA616 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#EVENT_SERIES_T> .
+_:AX5fXX3aXX40XX5fXX3aXA616 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA651 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA651 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> .
+_:AX5fXX3aXX40XX5fXX3aXA651 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA625 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#duration> .
+_:AX5fXX3aXX40XX5fXX3aXA625 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA625 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> <http://protege.stanford.edu/plugins/owl/protege#abstract> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> <http://www.w3.org/2000/01/rdf-schema#label> "estructura de historia"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> <http://www.w3.org/2002/07/owl#equivalentClass> _:AX5fXX3aXX40XX5fXX3aXA614 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> <http://www.w3.org/2000/01/rdf-schema#label> "history structure"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA613 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "The abstract parent class of various concrete historical structures,\ncurrently including discrete series and series of states, either\nof chich may be periodic."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "Time was encoded as part of the G1_HIERARCHICAL_PROPOSITION structure"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "The data type Histori HIST_T is equivalent in intention"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Time was encoded as part of the Item structure"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA634 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#width> .
+_:AX5fXX3aXX40XX5fXX3aXA634 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA634 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#is_instantaneous> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#is_instantaneous> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_EVENT_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#is_instantaneous> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+_:AX5fXX3aXX40XX5fXX3aXA643 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA643 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#is_periodic> .
+_:AX5fXX3aXX40XX5fXX3aXA643 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA617 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA617 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#names> .
+_:AX5fXX3aXX40XX5fXX3aXA617 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#displayed> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#displayed> <http://www.w3.org/2000/01/rdf-schema#comment> "Indicates whether this item should be displayed"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#displayed> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#displayed> <http://www.w3.org/2000/01/rdf-schema#label> "displayed"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#displayed> <http://www.w3.org/2000/01/rdf-schema#label> "mostrable"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#displayed> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA652 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA653 .
+_:AX5fXX3aXX40XX5fXX3aXA652 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA626 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA626 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA626 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA635 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA635 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA635 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#item> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#period> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#period> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#period> <http://www.w3.org/2000/01/rdf-schema#comment> "period between samples in this segment if periodic"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#period> <http://www.w3.org/2000/01/rdf-schema#label> "period"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#period> <http://www.w3.org/2000/01/rdf-schema#label> "periodo"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#representation> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#representation> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#representation> <http://www.w3.org/2000/01/rdf-schema#label> "representation"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#representation> <http://www.w3.org/2000/01/rdf-schema#label> "representacion"@es .
+_:AX5fXX3aXX40XX5fXX3aXA644 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#displayed> .
+_:AX5fXX3aXX40XX5fXX3aXA644 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA644 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#item> <http://www.w3.org/2000/01/rdf-schema#label> "item"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#item> <http://www.w3.org/2000/01/rdf-schema#label> "item"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#item> <http://www.w3.org/2000/01/rdf-schema#comment> "The data of this event"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#item> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#item> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA652 .
+_:AX5fXX3aXX40XX5fXX3aXA618 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA618 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#item_count> .
+_:AX5fXX3aXX40XX5fXX3aXA618 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA653 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA654 .
+_:AX5fXX3aXX40XX5fXX3aXA653 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#SINGLE_EVENT_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl> <http://www.w3.org/2002/07/owl#imports> <http://trajano.us.es/~isabel/EHR/Common_RM.owl> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl> <http://www.w3.org/2002/07/owl#imports> <http://protege.stanford.edu/plugins/owl/protege> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl> <http://www.w3.org/2000/01/rdf-schema#comment> "This ontology is based on the openEHR Data Structures Reference Model Revision: 1.4 written in owl by Isabel Roman in July 2004"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
+_:AX5fXX3aXX40XX5fXX3aXA627 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA627 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#null_flavor> .
+_:AX5fXX3aXX40XX5fXX3aXA627 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA636 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#representation> .
+_:AX5fXX3aXX40XX5fXX3aXA636 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> .
+_:AX5fXX3aXX40XX5fXX3aXA636 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#null_flavor> <http://www.w3.org/2000/01/rdf-schema#label> "motivo de valor nulo"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#null_flavor> <http://www.w3.org/2000/01/rdf-schema#label> "null flavor"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#null_flavor> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#null_flavor> <http://www.w3.org/2000/01/rdf-schema#comment> "Flavour of null value, e.g. indeterminate, not asked etc"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#null_flavor> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#null_flavor> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#origin> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#origin> <http://www.w3.org/2000/01/rdf-schema#label> "origen"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#origin> <http://www.w3.org/2000/01/rdf-schema#label> "origin"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#origin> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#origin> <http://www.w3.org/2000/01/rdf-schema#comment> "Time origin of this event history. The first event is not necessarily at the origin point."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#origin> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA645 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA645 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA646 .
+_:AX5fXX3aXX40XX5fXX3aXA619 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA619 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#items> .
+_:AX5fXX3aXX40XX5fXX3aXA619 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#items> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#label> "items"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#label> "items"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA656 .
+_:AX5fXX3aXX40XX5fXX3aXA654 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA655 .
+_:AX5fXX3aXX40XX5fXX3aXA654 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_EVENT_T> .
+_:AX5fXX3aXX40XX5fXX3aXA628 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA628 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA628 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#value> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#item_count> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#item_count> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#integer> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#item_count> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> .
+_:AX5fXX3aXX40XX5fXX3aXA637 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA637 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA637 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#row_count> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_STRUCTURE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_STRUCTURE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA632 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_STRUCTURE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_STRUCTURE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "CDA Structure"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_STRUCTURE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Abstract parent class of all spatial dta types\n"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_STRUCTURE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_HIERARCHICAL_PROPOSITION"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#names> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_LIST> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#names> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#LIST_EVENT_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#LIST_EVENT_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#LIST_EVENT_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA624 .
+_:AX5fXX3aXX40XX5fXX3aXA646 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> .
+_:AX5fXX3aXX40XX5fXX3aXA646 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA647 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#row_names> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#row_names> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TABLE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#row_names> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#is_null> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#is_null> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#is_null> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+_:AX5fXX3aXX40XX5fXX3aXA655 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_SINGLE> .
+_:AX5fXX3aXX40XX5fXX3aXA655 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#offset> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#offset> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#offset> <http://www.w3.org/2000/01/rdf-schema#label> "offset"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#offset> <http://www.w3.org/2000/01/rdf-schema#label> "offset"@en .
+_:AX5fXX3aXX40XX5fXX3aXA629 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA629 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA629 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#is_null> .
+_:AX5fXX3aXX40XX5fXX3aXA638 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA638 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA638 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#column_count> .
+_:AX5fXX3aXX40XX5fXX3aXA647 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA647 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#value> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ELEMENT> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#value> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#value> <http://www.w3.org/2000/01/rdf-schema#label> "valor"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#value> <http://www.w3.org/2000/01/rdf-schema#label> "value"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#value> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#value> <http://www.w3.org/2000/01/rdf-schema#comment> "Data value of this leaf"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA656 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA656 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA657 .
+_:AX5fXX3aXX40XX5fXX3aXA620 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#items> .
+_:AX5fXX3aXX40XX5fXX3aXA620 <http://www.w3.org/2002/07/owl#minCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA620 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#column_names> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TABLE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#column_names> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#column_names> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#EVENT_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA648 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#EVENT_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_EVENT_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#EVENT_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_SINGLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA651 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_SINGLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_STRUCTURE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_SINGLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA650 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_SINGLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA649 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_SINGLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used to represent any data which is logically a single value, suc as a person\u00B4s height or weight"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_SINGLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "CDA Item"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_SINGLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Logical single value data structure"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_SINGLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_SIMPLE_PROPOSITION"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_SINGLE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA639 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> .
+_:AX5fXX3aXX40XX5fXX3aXA639 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#representation> .
+_:AX5fXX3aXX40XX5fXX3aXA639 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TREE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA636 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TREE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_STRUCTURE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TREE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TREE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Logicla tree data structure"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TREE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "List"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TREE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_TREE_PROPOSITION"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TREE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "cluster"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TREE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used to represent data which are logically a tree such as audiotology results, microbilogy results, biochemistry results..."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#EVENT_SERIES_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#EVENT_SERIES_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA643 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#EVENT_SERIES_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#EVENT_SERIES_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA642 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#EVENT_SERIES_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA641 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#EVENT_SERIES_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA640 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#EVENT_SERIES_T> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Defines the semantics of a time segment which consists of events\nwhich occur at known instants of time, and which may be\nperiodically spaced. This class is generic, allowing types to be\ngenerated which are locked to particular structure types, such as\nEVENT_SERIES_LIST_S"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA648 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#offset> .
+_:AX5fXX3aXX40XX5fXX3aXA648 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA648 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA612 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA612 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM> .
+_:AX5fXX3aXX40XX5fXX3aXA612 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_EVENT_T> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Defines the time point corrsponding to a single event in a series.\nThis class is generic, allowing types to be generated which are locked to\nparticular spatial types, such as EVENT_LIST_S. In cases where samples\nare missing, ther will corerespondingly be missing EVENT instances.\nEvery EVENT instance that is supplied must have an item."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_EVENT_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA635 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_EVENT_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA634 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_EVENT_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA633 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_EVENT_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_EVENT_T> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "The data type HistoryItem HXIT_T is close to EVENT_T"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA657 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA658 .
+_:AX5fXX3aXX40XX5fXX3aXA657 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> .
+_:AX5fXX3aXX40XX5fXX3aXA621 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#CLUSTER> .
+_:AX5fXX3aXX40XX5fXX3aXA621 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#representation> .
+_:AX5fXX3aXX40XX5fXX3aXA621 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#width> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#width> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#width> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_EVENT_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#SINGLE_EVENT_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA626 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#SINGLE_EVENT_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_EVENT_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#SINGLE_EVENT_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA625 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#SINGLE_EVENT_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#SINGLE_EVENT_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#SINGLE_EVENT_T> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "a subtype of HISTORY_T catering for the very common case of single events. \nThe motivation for this class is to reduce the number of temporal\nobjects associtaed with a datum to one"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA630 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#representation> .
+_:AX5fXX3aXX40XX5fXX3aXA630 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA630 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA639 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TABLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "RIM Table_structure, Table_cell, Table..."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_STRUCTURE> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA637 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TABLE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA638 .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TABLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used to representa nay data which is logically a table of values, such as blood pressure, most protocols, many blood tests etc."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TABLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#MisUse> "Not used for time-based data, which should be represented with te temporal class JISTORY"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TABLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_TABLE_PROPOSITON, G1_MATRIX_PROPOSITION"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#ITEM_TABLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Logical table data structure, in which columns are named and ordered. Some columns may be designated 'key' columns, containing key data for each row, in the manner of relational tables. This allows row-naming, where each row represents a body site, ablood antige etc... all values in a column have the same data type"^^<http://www.w3.org/2001/XMLSchema#string> .
Index: ruby/trunk/doc/open_ehr/Data_Types_RM.ntriple
===================================================================
--- ruby/trunk/doc/open_ehr/Data_Types_RM.ntriple	(revision 291)
+++ ruby/trunk/doc/open_ehr/Data_Types_RM.ntriple	(revision 291)
@@ -0,0 +1,1664 @@
+_:AX5fXX3aXX40XX5fXX3aXA1514 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1515 .
+_:AX5fXX3aXX40XX5fXX3aXA1514 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "12"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1180 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1180 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_GENERAL_TIME_SPECIFICATION> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1486 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> <http://www.w3.org/2000/01/rdf-schema#label> "valor"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> <http://www.w3.org/2000/01/rdf-schema#label> "value"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#period> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#period> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#period> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PERIODIC_TIME_SPECIFICATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1241 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1241 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#uri> .
+_:AX5fXX3aXX40XX5fXX3aXA1241 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1302 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1303 .
+_:AX5fXX3aXX40XX5fXX3aXA1302 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "17"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1199 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1199 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#magnitude> .
+_:AX5fXX3aXX40XX5fXX3aXA1199 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#event_alignment> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#event_alignment> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1412 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#event_alignment> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_section> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_section> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_section> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1296 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1297 .
+_:AX5fXX3aXX40XX5fXX3aXA1296 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "11"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1357 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "30"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1357 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1358 .
+_:AX5fXX3aXX40XX5fXX3aXA1418 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1418 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#CODE_PHRASE> .
+_:AX5fXX3aXX40XX5fXX3aXA1145 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1146 .
+_:AX5fXX3aXX40XX5fXX3aXA1145 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_WORLD_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1393 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "5"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1393 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1394 .
+_:AX5fXX3aXX40XX5fXX3aXA1206 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#units> .
+_:AX5fXX3aXX40XX5fXX3aXA1206 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1206 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1454 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "32"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1454 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1455 .
+_:AX5fXX3aXX40XX5fXX3aXA1515 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1516 .
+_:AX5fXX3aXX40XX5fXX3aXA1515 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "13"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1242 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#media_type> .
+_:AX5fXX3aXX40XX5fXX3aXA1242 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1242 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1181 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1181 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1181 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1490 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1491 .
+_:AX5fXX3aXX40XX5fXX3aXA1490 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> .
+_:AX5fXX3aXX40XX5fXX3aXA1303 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1304 .
+_:AX5fXX3aXX40XX5fXX3aXA1303 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "18"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1400 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1400 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "12"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1297 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "12"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1297 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1298 .
+_:AX5fXX3aXX40XX5fXX3aXA1358 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1359 .
+_:AX5fXX3aXX40XX5fXX3aXA1358 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "31"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1419 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1420 .
+_:AX5fXX3aXX40XX5fXX3aXA1419 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PERIODIC_TIME_SPECIFICATION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PERIODIC_TIME_SPECIFICATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Specifies periodic points in time, linked to the calendar (phase-linked), \nor a real world event, such as 'breakfast'. Based on the HL7v3 data types\nPIVL<T> and EIVL<T>"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PERIODIC_TIME_SPECIFICATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "PIVL<T>, EIVL<T>"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PERIODIC_TIME_SPECIFICATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PERIODIC_TIME_SPECIFICATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.9"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PERIODIC_TIME_SPECIFICATION> <http://www.w3.org/2000/01/rdf-schema#label> "ESPECIFICACION DE INSTANTES PERIODICOS"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PERIODIC_TIME_SPECIFICATION> <http://www.w3.org/2000/01/rdf-schema#label> "PERIODIC TIME SPECIFICATION"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PERIODIC_TIME_SPECIFICATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "The Duration data value class privdes for the specification of time \nintervals, and also for a simple string description of the periodicity"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PERIODIC_TIME_SPECIFICATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used in therapeutic prescriptions, expressed as INSTRUCTIONS \nin the openEHR"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MEASURABLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "QTY"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MEASURABLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "unit"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MEASURABLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Abcstract class defining the concept of true quantified values. \nValues which are not only ordered, but whose magnitude is \nmeaningful as well. Units were inspired by the Unified Code for \nUnits of Measure"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MEASURABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1206 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MEASURABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MEASURABLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "Attributes in the Quantity class for unit and accuracy"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MEASURABLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> "COAS::Measurements"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MEASURABLE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1394 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "6"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1394 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1395 .
+_:AX5fXX3aXX40XX5fXX3aXA1146 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> .
+_:AX5fXX3aXX40XX5fXX3aXA1146 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1147 .
+_:AX5fXX3aXX40XX5fXX3aXA1207 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1207 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#charset> .
+_:AX5fXX3aXX40XX5fXX3aXA1207 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1455 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1456 .
+_:AX5fXX3aXX40XX5fXX3aXA1455 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "33"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1516 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "14"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1516 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1517 .
+_:AX5fXX3aXX40XX5fXX3aXA1491 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1492 .
+_:AX5fXX3aXX40XX5fXX3aXA1491 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> .
+_:AX5fXX3aXX40XX5fXX3aXA1182 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1182 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#accuracy_is_percent> .
+_:AX5fXX3aXX40XX5fXX3aXA1182 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1243 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1243 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minute> .
+_:AX5fXX3aXX40XX5fXX3aXA1243 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1304 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "19"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1304 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1305 .
+_:AX5fXX3aXX40XX5fXX3aXA1340 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1341 .
+_:AX5fXX3aXX40XX5fXX3aXA1340 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "13"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1401 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1401 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1402 .
+_:AX5fXX3aXX40XX5fXX3aXA1298 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "13"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1298 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1299 .
+_:AX5fXX3aXX40XX5fXX3aXA1359 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1360 .
+_:AX5fXX3aXX40XX5fXX3aXA1359 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "32"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#symbol> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDINAL> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#symbol> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#symbol> <http://www.w3.org/2000/01/rdf-schema#comment> "Coded textual representation of this value in the enumaration, which may be strings made from \"+\" symbols, or other enumerations of the terms such as \"mild\", \"moderate\", \"sever\", or even the same number series as the values"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#symbol> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Roughly equivalent to CWE (coded with extensions)-e.e. tesxt value which may optionally be coded."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1154 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "the Text data value class can contain either plain text or a term taken from a terminology system"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "A plain text item, which may contain any amount of legal characters arranged as e.g. words, sentences etc. Any DV_TEXT may be coded by adding mappings to it"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#label> "TEXT"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1156 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 2.6, 2.9"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1157 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1155 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1158 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1159 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Fragments of text, whether coded or not are used on their own as values, or to make up larger gtracts of text which may be marked up in some way, eventually going to make up paragraphs."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1152 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#label> "TEXTO"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1153 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Represents a partially known time. All partial time have an unknown second, \nby definition, else they would be reprsented as normal times. The minute_known\nflag indictes whether the minute is also unknown."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_TIME> <http://www.w3.org/2000/01/rdf-schema#label> "HORA PARCIAL"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_TIME> <http://www.w3.org/2000/01/rdf-schema#label> "PARTIAL TIME"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_TIME> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1205 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1208 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#size> .
+_:AX5fXX3aXX40XX5fXX3aXA1208 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1208 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#day> <http://www.w3.org/2000/01/rdf-schema#range> _:AX5fXX3aXX40XX5fXX3aXA1286 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#day> <http://www.w3.org/2000/01/rdf-schema#label> "day"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#day> <http://www.w3.org/2000/01/rdf-schema#label> "dia"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#day> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1317 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#day> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1147 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1147 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1395 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1396 .
+_:AX5fXX3aXX40XX5fXX3aXA1395 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "7"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1456 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "34"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1456 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1457 .
+_:AX5fXX3aXX40XX5fXX3aXA1517 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "15"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1517 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1518 .
+_:AX5fXX3aXX40XX5fXX3aXA1305 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1306 .
+_:AX5fXX3aXX40XX5fXX3aXA1305 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "20"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1183 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1183 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1183 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#accuracy> .
+_:AX5fXX3aXX40XX5fXX3aXA1244 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1244 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1244 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#diff_type> .
+_:AX5fXX3aXX40XX5fXX3aXA1492 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1493 .
+_:AX5fXX3aXX40XX5fXX3aXA1492 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> .
+_:AX5fXX3aXX40XX5fXX3aXA1280 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1280 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1281 .
+_:AX5fXX3aXX40XX5fXX3aXA1341 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "14"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1341 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1342 .
+_:AX5fXX3aXX40XX5fXX3aXA1402 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1403 .
+_:AX5fXX3aXX40XX5fXX3aXA1402 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1299 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1300 .
+_:AX5fXX3aXX40XX5fXX3aXA1299 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "14"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1396 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "8"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1396 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1397 .
+_:AX5fXX3aXX40XX5fXX3aXA1209 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1209 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1209 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#language> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#reference_ranges> <http://www.w3.org/2000/01/rdf-schema#label> "reference ranges"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#reference_ranges> <http://www.w3.org/2000/01/rdf-schema#label> "rangos de referencia"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#reference_ranges> <http://www.w3.org/2000/01/rdf-schema#comment> "Optional tagged ranges for this value in its particular measurement context"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#reference_ranges> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#LIST_REFERENCE_RANGE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#reference_ranges> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#reference_ranges> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> .
+_:AX5fXX3aXX40XX5fXX3aXA1148 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1148 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1148 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#formalism> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> "COAS::Multimedia"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> <http://www.w3.org/2000/01/rdf-schema#label> "ENCAPSULATED"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "TBD"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1207 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Abstract class defining the common meta-data of all types \nof encapsulated data"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1208 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> <http://protege.stanford.edu/plugins/owl/protege#abstract> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Encapsulated_data (ED)"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> <http://www.w3.org/2000/01/rdf-schema#label> "ENCAPSULADOS"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 2.6"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> <http://www.w3.org/2002/07/owl#equivalentClass> _:AX5fXX3aXX40XX5fXX3aXA1210 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1209 .
+_:AX5fXX3aXX40XX5fXX3aXA1457 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "35"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1457 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1458 .
+_:AX5fXX3aXX40XX5fXX3aXA1518 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1519 .
+_:AX5fXX3aXX40XX5fXX3aXA1518 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "16"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1493 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDINAL> .
+_:AX5fXX3aXX40XX5fXX3aXA1493 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1494 .
+_:AX5fXX3aXX40XX5fXX3aXA1184 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> .
+_:AX5fXX3aXX40XX5fXX3aXA1184 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1184 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#diff_type> .
+_:AX5fXX3aXX40XX5fXX3aXA1245 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#second> .
+_:AX5fXX3aXX40XX5fXX3aXA1245 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1245 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1306 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "21"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1306 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1307 .
+_:AX5fXX3aXX40XX5fXX3aXA1281 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#COORDINATED_TERM> .
+_:AX5fXX3aXX40XX5fXX3aXA1281 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1282 .
+_:AX5fXX3aXX40XX5fXX3aXA1342 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1343 .
+_:AX5fXX3aXX40XX5fXX3aXA1342 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "15"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1403 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1403 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_transaction> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_transaction> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1130 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1130 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1130 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1519 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "17"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1519 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1520 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "TOCD choice Quantifiable Observation Data ITem"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1223 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_WORLD_TIME> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_DATE_TIME"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "DTValue attribute of DateTime"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1226 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> "COAS::DateTime"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#label> "FECHA Y HORA"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.7, 3.10"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1229 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used for recording a precise point in real world time"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Represents an aboslute point in time, specified to the second. \nIn canonical form"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1231 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1225 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1228 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#label> "DATE TIME"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1230 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1224 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1227 .
+_:AX5fXX3aXX40XX5fXX3aXA1500 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1500 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1501 .
+_:AX5fXX3aXX40XX5fXX3aXA1149 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1149 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1149 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1397 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1398 .
+_:AX5fXX3aXX40XX5fXX3aXA1397 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "9"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1458 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1459 .
+_:AX5fXX3aXX40XX5fXX3aXA1458 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "36"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#query> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#query> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#query> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1185 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1185 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1186 .
+_:AX5fXX3aXX40XX5fXX3aXA1494 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1494 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARSABLE> .
+_:AX5fXX3aXX40XX5fXX3aXA1246 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1246 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#fractional_second> .
+_:AX5fXX3aXX40XX5fXX3aXA1246 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1307 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "22"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1307 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1308 .
+_:AX5fXX3aXX40XX5fXX3aXA1282 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#CODE_PHRASE> .
+_:AX5fXX3aXX40XX5fXX3aXA1282 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1343 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1344 .
+_:AX5fXX3aXX40XX5fXX3aXA1343 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "16"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1404 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1405 .
+_:AX5fXX3aXX40XX5fXX3aXA1404 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1131 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> .
+_:AX5fXX3aXX40XX5fXX3aXA1131 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1131 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1440 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "18"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1440 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1441 .
+_:AX5fXX3aXX40XX5fXX3aXA1501 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1501 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1398 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1399 .
+_:AX5fXX3aXX40XX5fXX3aXA1398 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "10"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1459 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "37"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1459 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1460 .
+_:AX5fXX3aXX40XX5fXX3aXA1308 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1309 .
+_:AX5fXX3aXX40XX5fXX3aXA1308 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "23"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1186 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CUSTOMARY_QUANTITY> .
+_:AX5fXX3aXX40XX5fXX3aXA1186 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1187 .
+_:AX5fXX3aXX40XX5fXX3aXA1247 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hour> .
+_:AX5fXX3aXX40XX5fXX3aXA1247 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1247 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1495 <http://www.w3.org/2002/07/owl#oneOf> _:AX5fXX3aXX40XX5fXX3aXA1496 .
+_:AX5fXX3aXX40XX5fXX3aXA1495 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DataRange> .
+_:AX5fXX3aXX40XX5fXX3aXA1283 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1284 .
+_:AX5fXX3aXX40XX5fXX3aXA1283 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1344 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1345 .
+_:AX5fXX3aXX40XX5fXX3aXA1344 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "17"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1405 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1405 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1406 .
+_:AX5fXX3aXX40XX5fXX3aXA1132 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1132 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1132 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#denominator> .
+_:AX5fXX3aXX40XX5fXX3aXA1380 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "53"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1380 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1381 .
+_:AX5fXX3aXX40XX5fXX3aXA1441 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1442 .
+_:AX5fXX3aXX40XX5fXX3aXA1441 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "19"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1502 <http://www.w3.org/2002/07/owl#oneOf> _:AX5fXX3aXX40XX5fXX3aXA1503 .
+_:AX5fXX3aXX40XX5fXX3aXA1502 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DataRange> .
+_:AX5fXX3aXX40XX5fXX3aXA1399 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "11"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1399 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1400 .
+_:AX5fXX3aXX40XX5fXX3aXA1309 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "24"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1309 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1310 .
+_:AX5fXX3aXX40XX5fXX3aXA1187 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> .
+_:AX5fXX3aXX40XX5fXX3aXA1187 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1248 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1248 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1249 .
+_:AX5fXX3aXX40XX5fXX3aXA1496 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> ">"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1496 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1497 .
+_:AX5fXX3aXX40XX5fXX3aXA1284 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1285 .
+_:AX5fXX3aXX40XX5fXX3aXA1284 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> .
+_:AX5fXX3aXX40XX5fXX3aXA1345 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "18"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1345 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1346 .
+_:AX5fXX3aXX40XX5fXX3aXA1406 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1407 .
+_:AX5fXX3aXX40XX5fXX3aXA1406 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_WORLD_TIME> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_WORLD_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used for recording dates and/or times in real world time"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_WORLD_TIME> <http://www.w3.org/2002/07/owl#equivalentClass> _:AX5fXX3aXX40XX5fXX3aXA1248 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_WORLD_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CUSTOMARY_QUANTITY> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_WORLD_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1251 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_WORLD_TIME> <http://www.w3.org/2000/01/rdf-schema#label> "WORLD TIME"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_WORLD_TIME> <http://www.w3.org/2000/01/rdf-schema#label> "HORA MUNDIAL"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_WORLD_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Abstract concept of time on the real world timeline. All dates assumed\nto be  in the Gregorian calendar"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_WORLD_TIME> <http://protege.stanford.edu/plugins/owl/protege#abstract> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1133 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#numerator> .
+_:AX5fXX3aXX40XX5fXX3aXA1133 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1133 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1381 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1382 .
+_:AX5fXX3aXX40XX5fXX3aXA1381 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "54"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1442 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "20"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1442 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1443 .
+_:AX5fXX3aXX40XX5fXX3aXA1503 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1503 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1504 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#CODE_PHRASE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1268 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target> <http://www.w3.org/2000/01/rdf-schema#label> "target"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target> <http://www.w3.org/2000/01/rdf-schema#label> "objetivo"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Serves as a common ancestor of all data value types in openEHR models"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> <http://www.w3.org/2002/07/owl#equivalentClass> _:AX5fXX3aXX40XX5fXX3aXA1161 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.1-3.13"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> <http://www.w3.org/2000/01/rdf-schema#label> "VALOR DE DATO"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> <http://protege.stanford.edu/plugins/owl/protege#abstract> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "The Data_Item class in CEN is a mixture of DATA_VALUE and ELEMENT in openEHR"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> <http://www.w3.org/2000/01/rdf-schema#label> "DATA_VALUE"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> "COAS::ObservationValue"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "DataValue"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1230 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#year> .
+_:AX5fXX3aXX40XX5fXX3aXA1230 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1230 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1188 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1188 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_entry> .
+_:AX5fXX3aXX40XX5fXX3aXA1188 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1181 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "An abstract class of which all timing specifications are\nspecialisations. Specifies points in time, possibly linked to the calendar,\nor a real world repeating event, suc as \"breakfast\""^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.9"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1177 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> <http://www.w3.org/2000/01/rdf-schema#label> "ESPECIFICACION DE HORA"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> <http://www.w3.org/2002/07/owl#equivalentClass> _:AX5fXX3aXX40XX5fXX3aXA1178 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> <http://protege.stanford.edu/plugins/owl/protege#abstract> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> <http://www.w3.org/2000/01/rdf-schema#label> "TIME SPECIFICATION"@en .
+_:AX5fXX3aXX40XX5fXX3aXA1249 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1250 .
+_:AX5fXX3aXX40XX5fXX3aXA1249 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1497 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "="^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1497 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1498 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_composition> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_composition> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_composition> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+_:AX5fXX3aXX40XX5fXX3aXA1285 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1285 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+_:AX5fXX3aXX40XX5fXX3aXA1346 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1347 .
+_:AX5fXX3aXX40XX5fXX3aXA1346 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "19"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1407 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1407 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#range> <http://www.w3.org/2000/01/rdf-schema#label> "rango"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#range> <http://www.w3.org/2000/01/rdf-schema#label> "range"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#range> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#range> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#range> <http://www.w3.org/2000/01/rdf-schema#comment> "The data range for this meaning"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#range> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#REFERENCE_RANGE_T> .
+_:AX5fXX3aXX40XX5fXX3aXA1134 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#magnitude> .
+_:AX5fXX3aXX40XX5fXX3aXA1134 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1134 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1382 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "55"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1382 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1383 .
+_:AX5fXX3aXX40XX5fXX3aXA1443 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "21"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1443 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1444 .
+_:AX5fXX3aXX40XX5fXX3aXA1504 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1504 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1505 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#month_known> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_DATE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#month_known> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#month_known> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#month_known> <http://www.w3.org/2000/01/rdf-schema#label> "month known"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#month_known> <http://www.w3.org/2000/01/rdf-schema#label> "mes conocido"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1190 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1188 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1192 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1193 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1189 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1194 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> <http://www.w3.org/2000/01/rdf-schema#label> "EHR_URI"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> <http://www.w3.org/2000/01/rdf-schema#label> "EHR_URI"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1195 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1191 .
+_:AX5fXX3aXX40XX5fXX3aXA1170 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1171 .
+_:AX5fXX3aXX40XX5fXX3aXA1170 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> .
+_:AX5fXX3aXX40XX5fXX3aXA1231 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1231 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#month> .
+_:AX5fXX3aXX40XX5fXX3aXA1231 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1189 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1189 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1189 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_ehr> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hyperlink> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hyperlink> <http://www.w3.org/2000/01/rdf-schema#comment> "Optional link sitting behind a section of plain text or coded term item"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hyperlink> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hyperlink> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hyperlink> <http://www.w3.org/2000/01/rdf-schema#label> "hipervinculo"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hyperlink> <http://www.w3.org/2000/01/rdf-schema#label> "hyperlink"@en .
+_:AX5fXX3aXX40XX5fXX3aXA1498 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1499 .
+_:AX5fXX3aXX40XX5fXX3aXA1498 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "<"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#accuracy> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#float> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#accuracy> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#accuracy> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1286 <http://www.w3.org/2002/07/owl#oneOf> _:AX5fXX3aXX40XX5fXX3aXA1287 .
+_:AX5fXX3aXX40XX5fXX3aXA1286 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DataRange> .
+_:AX5fXX3aXX40XX5fXX3aXA1347 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1348 .
+_:AX5fXX3aXX40XX5fXX3aXA1347 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "20"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1408 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1409 .
+_:AX5fXX3aXX40XX5fXX3aXA1408 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#data> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#data> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1135 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1135 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#sign> .
+_:AX5fXX3aXX40XX5fXX3aXA1135 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1505 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1506 .
+_:AX5fXX3aXX40XX5fXX3aXA1505 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "3"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1383 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "56"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1383 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1384 .
+_:AX5fXX3aXX40XX5fXX3aXA1444 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "22"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1444 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1445 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#formatting> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#formatting> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#formatting> <http://www.w3.org/2000/01/rdf-schema#label> "formatting"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#formatting> <http://www.w3.org/2000/01/rdf-schema#label> "cadena formateada"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#formatting> <http://www.w3.org/2000/01/rdf-schema#comment> "A format string of the form \"name:value; name:value...\"Values taken from W3C CSS2 properties lists"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#formatting> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+_:AX5fXX3aXX40XX5fXX3aXA1171 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARAGRAPH> .
+_:AX5fXX3aXX40XX5fXX3aXA1171 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1172 .
+_:AX5fXX3aXX40XX5fXX3aXA1232 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1232 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://www.w3.org/2001/XMLSchema#boolean> .
+_:AX5fXX3aXX40XX5fXX3aXA1232 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1480 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1481 .
+_:AX5fXX3aXX40XX5fXX3aXA1480 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "58"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1499 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1499 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "?"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1287 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1288 .
+_:AX5fXX3aXX40XX5fXX3aXA1287 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1348 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1349 .
+_:AX5fXX3aXX40XX5fXX3aXA1348 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "21"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1409 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_COUNT> .
+_:AX5fXX3aXX40XX5fXX3aXA1409 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1410 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#scheme> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#scheme> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#scheme> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> .
+_:AX5fXX3aXX40XX5fXX3aXA1136 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1136 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1136 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minutes> .
+_:AX5fXX3aXX40XX5fXX3aXA1384 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1385 .
+_:AX5fXX3aXX40XX5fXX3aXA1384 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "57"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1445 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "23"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1445 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1446 .
+_:AX5fXX3aXX40XX5fXX3aXA1506 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "4"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1506 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1507 .
+_:AX5fXX3aXX40XX5fXX3aXA1172 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> .
+_:AX5fXX3aXX40XX5fXX3aXA1172 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1233 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1233 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1233 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1481 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1482 .
+_:AX5fXX3aXX40XX5fXX3aXA1481 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "59"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#thumbnail> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#thumbnail> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#thumbnail> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> .
+_:AX5fXX3aXX40XX5fXX3aXA1330 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1331 .
+_:AX5fXX3aXX40XX5fXX3aXA1330 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "3"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1288 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1289 .
+_:AX5fXX3aXX40XX5fXX3aXA1288 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1349 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "22"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1349 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1350 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARAGRAPH> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "is the standrad way for constructing longer text items in summaries, reports and so on"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARAGRAPH> <http://www.w3.org/2000/01/rdf-schema#label> "PARAGRAPH"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARAGRAPH> <http://www.w3.org/2000/01/rdf-schema#label> "PARRAFO"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARAGRAPH> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "A logical composite text value consisting of a series of DV_TEXTs, i.e. plain text potentially with simple formatting, to form a larger tract of prose, which may be interpreted for display purposes as a pargraph."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARAGRAPH> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 2.6"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARAGRAPH> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_PARAGRAPH"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARAGRAPH> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1143 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARAGRAPH> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARAGRAPH> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#fragment_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#fragment_id> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#fragment_id> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#uri> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#uri> <http://www.w3.org/2000/01/rdf-schema#label> "uri"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#uri> <http://www.w3.org/2000/01/rdf-schema#label> "uri"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#uri> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#uri> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1137 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1137 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#diff_type> .
+_:AX5fXX3aXX40XX5fXX3aXA1137 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1385 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "58"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1385 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1386 .
+_:AX5fXX3aXX40XX5fXX3aXA1446 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1447 .
+_:AX5fXX3aXX40XX5fXX3aXA1446 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "24"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1507 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1508 .
+_:AX5fXX3aXX40XX5fXX3aXA1507 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "5"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1173 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1173 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1173 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#code_string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "A text item whose value must be a rubric drawn from a controlled terminology, the key of which is the definition attribute"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> "COAS::CodedElement,, LooselyCodedElement"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1160 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> <http://www.w3.org/2000/01/rdf-schema#label> "TEXTO CODIFICADO"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "CD,CV,CS"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 4.1,4.2,4.3"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_TERM_TEXT"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> <http://www.w3.org/2000/01/rdf-schema#label> "CODED TEXT"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Text"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Can be used in place of DV_TEXT, effectively allowing the type DV_TEXT to mean a text item, which may optionally be coded."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "Text"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1234 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1234 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#compression_algorithm> .
+_:AX5fXX3aXX40XX5fXX3aXA1234 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1482 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1482 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "0"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#terminology_id> <http://www.w3.org/2000/01/rdf-schema#comment> "Identifier of the distinct terminology from which the code_string was extracted\nRange must be added in the common_RM because terminology_ID is defined there"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#terminology_id> <http://www.w3.org/2000/01/rdf-schema#label> "identificador de terminologia"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#terminology_id> <http://www.w3.org/2000/01/rdf-schema#label> "terminology id"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#terminology_id> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1280 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#terminology_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1270 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> .
+_:AX5fXX3aXX40XX5fXX3aXA1270 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1202 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1201 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE> <http://www.w3.org/2000/01/rdf-schema#label> "INTERVALO DE FECHA"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE> <http://www.w3.org/2000/01/rdf-schema#label> "INTERVAL DATE"@en .
+_:AX5fXX3aXX40XX5fXX3aXA1331 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1332 .
+_:AX5fXX3aXX40XX5fXX3aXA1331 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "4"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#COORDINATED_TERM> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 4.2"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#COORDINATED_TERM> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#COORDINATED_TERM> <http://www.w3.org/2000/01/rdf-schema#label> "COORDINATED TERM"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#COORDINATED_TERM> <http://www.w3.org/2000/01/rdf-schema#label> "TERMINO COORDINADO"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#COORDINATED_TERM> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "A fully coordinated term from a terminology service"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#COORDINATED_TERM> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1174 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#COORDINATED_TERM> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1173 .
+_:AX5fXX3aXX40XX5fXX3aXA1289 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1290 .
+_:AX5fXX3aXX40XX5fXX3aXA1289 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "3"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_ehr> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_ehr> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_ehr> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> .
+_:AX5fXX3aXX40XX5fXX3aXA1138 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1138 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1138 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hours> .
+_:AX5fXX3aXX40XX5fXX3aXA1386 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1387 .
+_:AX5fXX3aXX40XX5fXX3aXA1386 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "59"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1447 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1448 .
+_:AX5fXX3aXX40XX5fXX3aXA1447 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "25"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1508 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1509 .
+_:AX5fXX3aXX40XX5fXX3aXA1508 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "6"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1174 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1174 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#terminology_id> .
+_:AX5fXX3aXX40XX5fXX3aXA1174 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#CODE_PHRASE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 4.2"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#CODE_PHRASE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1142 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#CODE_PHRASE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#CODE_PHRASE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "A fully coordinated term from a terminology service"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1235 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1235 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1235 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#size> .
+_:AX5fXX3aXX40XX5fXX3aXA1483 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1484 .
+_:AX5fXX3aXX40XX5fXX3aXA1483 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1271 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1272 .
+_:AX5fXX3aXX40XX5fXX3aXA1271 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1332 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1333 .
+_:AX5fXX3aXX40XX5fXX3aXA1332 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "5"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1139 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1139 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#fractional_second> .
+_:AX5fXX3aXX40XX5fXX3aXA1139 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1387 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "0"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1387 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1448 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "26"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1448 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1449 .
+_:AX5fXX3aXX40XX5fXX3aXA1509 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1510 .
+_:AX5fXX3aXX40XX5fXX3aXA1509 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "7"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#section_id> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#section_id> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#section_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1175 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1175 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+_:AX5fXX3aXX40XX5fXX3aXA1175 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA1236 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1236 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#integrity_check> .
+_:AX5fXX3aXX40XX5fXX3aXA1236 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1484 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1484 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1485 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#LIST_DV_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#comment> "Items making up the paragraph, each of which is a text item"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#items> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#label> "elementos"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#label> "items"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARAGRAPH> .
+_:AX5fXX3aXX40XX5fXX3aXA1272 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_WORLD_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1272 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1333 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1334 .
+_:AX5fXX3aXX40XX5fXX3aXA1333 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "6"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARSABLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used ofr representing values which are formal textural representations (e.g. guidelines)"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARSABLE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARSABLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Encapsulated data expressed as a parsable STRING. The internal \nmodel of the data item is not described in the openEHR model in \ncommon with other encapsulated types, but in this case, the form \nof the data is assumed to be plaintext, rather than compressed or \nother types or large binary data"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARSABLE> <http://www.w3.org/2000/01/rdf-schema#label> "MANEJABLE"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARSABLE> <http://www.w3.org/2000/01/rdf-schema#label> "PARSABLE"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARSABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1150 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARSABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1149 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARSABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1148 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARSABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> .
+_:AX5fXX3aXX40XX5fXX3aXA1430 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1431 .
+_:AX5fXX3aXX40XX5fXX3aXA1430 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "8"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1388 <http://www.w3.org/2002/07/owl#oneOf> _:AX5fXX3aXX40XX5fXX3aXA1389 .
+_:AX5fXX3aXX40XX5fXX3aXA1388 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DataRange> .
+_:AX5fXX3aXX40XX5fXX3aXA1449 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1450 .
+_:AX5fXX3aXX40XX5fXX3aXA1449 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "27"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1176 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#month_known> .
+_:AX5fXX3aXX40XX5fXX3aXA1176 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1176 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1237 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#thumbnail> .
+_:AX5fXX3aXX40XX5fXX3aXA1237 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1237 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1485 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> .
+_:AX5fXX3aXX40XX5fXX3aXA1485 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#LIST_TERM_MAPPING> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#LIST_TERM_MAPPING> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1222 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#LIST_TERM_MAPPING> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1273 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1273 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1274 .
+_:AX5fXX3aXX40XX5fXX3aXA1334 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1335 .
+_:AX5fXX3aXX40XX5fXX3aXA1334 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "7"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#size> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#size> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#integer> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#size> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#size> <http://www.w3.org/2000/01/rdf-schema#label> "tama\u00F1o"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#size> <http://www.w3.org/2000/01/rdf-schema#label> "size"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#path> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#path> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#path> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> .
+_:AX5fXX3aXX40XX5fXX3aXA1370 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "43"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1370 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1371 .
+_:AX5fXX3aXX40XX5fXX3aXA1431 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1432 .
+_:AX5fXX3aXX40XX5fXX3aXA1431 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "9"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1389 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1389 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1390 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#purpose> <http://www.w3.org/2000/01/rdf-schema#label> "purpose"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#purpose> <http://www.w3.org/2000/01/rdf-schema#label> "proposito"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#purpose> <http://www.w3.org/2000/01/rdf-schema#comment> "Purpose of the mapping. e.g. automated data mining, billing, interoperability..."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#purpose> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#purpose> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#TERM_MAPPING> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#purpose> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1177 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARSABLE> .
+_:AX5fXX3aXX40XX5fXX3aXA1177 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1177 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1238 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#alternate_text> .
+_:AX5fXX3aXX40XX5fXX3aXA1238 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1238 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1486 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1486 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1487 .
+_:AX5fXX3aXX40XX5fXX3aXA1274 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1275 .
+_:AX5fXX3aXX40XX5fXX3aXA1274 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> .
+_:AX5fXX3aXX40XX5fXX3aXA1335 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1336 .
+_:AX5fXX3aXX40XX5fXX3aXA1335 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "8"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1371 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1372 .
+_:AX5fXX3aXX40XX5fXX3aXA1371 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "44"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1432 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "10"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1432 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1433 .
+_:AX5fXX3aXX40XX5fXX3aXA1220 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1220 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_COUNT> .
+_:AX5fXX3aXX40XX5fXX3aXA1220 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#diff_type> .
+_:AX5fXX3aXX40XX5fXX3aXA1178 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1179 .
+_:AX5fXX3aXX40XX5fXX3aXA1178 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1239 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1239 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1239 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#integrity_check_algorithm> .
+_:AX5fXX3aXX40XX5fXX3aXA1487 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1487 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1488 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#is_simple> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1320 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#is_simple> <http://www.w3.org/2000/01/rdf-schema#comment> "True if this quantity has no reference ranges, or accuracy"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#is_simple> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#is_simple> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1275 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+_:AX5fXX3aXX40XX5fXX3aXA1275 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1336 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1337 .
+_:AX5fXX3aXX40XX5fXX3aXA1336 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "9"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#month> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1401 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#month> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#month> <http://www.w3.org/2000/01/rdf-schema#range> _:AX5fXX3aXX40XX5fXX3aXA1388 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#month> <http://www.w3.org/2000/01/rdf-schema#label> "month"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#month> <http://www.w3.org/2000/01/rdf-schema#label> "mes"@es .
+_:AX5fXX3aXX40XX5fXX3aXA1372 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "45"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1372 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1373 .
+_:AX5fXX3aXX40XX5fXX3aXA1433 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1434 .
+_:AX5fXX3aXX40XX5fXX3aXA1433 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "11"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#year> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#year> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#integer> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#year> <http://www.w3.org/2000/01/rdf-schema#label> ""@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#year> <http://www.w3.org/2000/01/rdf-schema#label> "year"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#year> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1483 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#is_normal> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#is_normal> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#is_normal> <http://www.w3.org/2000/01/rdf-schema#comment> "Value is in the normal range if ther is one, otherwise True"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#is_normal> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1322 .
+_:AX5fXX3aXX40XX5fXX3aXA1221 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA1221 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+_:AX5fXX3aXX40XX5fXX3aXA1221 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1160 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#defining_code> .
+_:AX5fXX3aXX40XX5fXX3aXA1160 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1160 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1179 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PERIODIC_TIME_SPECIFICATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1179 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1180 .
+_:AX5fXX3aXX40XX5fXX3aXA1530 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1531 .
+_:AX5fXX3aXX40XX5fXX3aXA1530 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#seconds> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#seconds> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#seconds> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#seconds> <http://www.w3.org/2000/01/rdf-schema#label> "segundos"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#seconds> <http://www.w3.org/2000/01/rdf-schema#label> "seconds"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#institution_specified> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1500 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#institution_specified> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#institution_specified> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+_:AX5fXX3aXX40XX5fXX3aXA1488 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1489 .
+_:AX5fXX3aXX40XX5fXX3aXA1488 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_BOOLEAN> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#code_string> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#code_string> <http://www.w3.org/2000/01/rdf-schema#label> "cadena codificada"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#code_string> <http://www.w3.org/2000/01/rdf-schema#label> "code string"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#code_string> <http://www.w3.org/2000/01/rdf-schema#comment> "The key used by the terminology service to identify a concept or coordination of concepts. Is most likely parsable inside the terminology service, but nothing can be assumed about its syntax outside that context."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#code_string> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1416 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#code_string> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1276 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1277 .
+_:AX5fXX3aXX40XX5fXX3aXA1276 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1337 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1338 .
+_:AX5fXX3aXX40XX5fXX3aXA1337 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "10"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PHYSICAL_DATA> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PHYSICAL_DATA> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#SET_DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1175 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#SET_DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#SET_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#SET_DV_TEXT> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1373 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1374 .
+_:AX5fXX3aXX40XX5fXX3aXA1373 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "46"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1434 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "12"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1434 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1435 .
+_:AX5fXX3aXX40XX5fXX3aXA1161 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1161 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1162 .
+_:AX5fXX3aXX40XX5fXX3aXA1222 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#TERM_MAPPING> .
+_:AX5fXX3aXX40XX5fXX3aXA1222 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1222 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA1470 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1471 .
+_:AX5fXX3aXX40XX5fXX3aXA1470 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "48"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1531 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MEASURABLE> .
+_:AX5fXX3aXX40XX5fXX3aXA1531 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1532 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> <http://protege.stanford.edu/plugins/owl/protege#abstract> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Abstract class defining the concept of ordered values, which includes ordinals as well as true quantities. It defines the functions less_tan and is_strictly_comparable_to, the latter of which must evaluate to True for isntances being compared with the less_than function, or used as limits in the DV_INTERVAL_T"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> <http://www.w3.org/2000/01/rdf-schema#label> "VALORES DE ORDEN"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> <http://www.w3.org/2000/01/rdf-schema#label> "ORDERED"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> <http://www.w3.org/2002/07/owl#equivalentClass> _:AX5fXX3aXX40XX5fXX3aXA1261 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1260 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Data value types which are to be used as limits in the DV_INTERVAL_T\nclass must inherit from this class, and implement the function \nis_strictly_comparable_to to ensure that instances compare meaningfully."^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1489 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1490 .
+_:AX5fXX3aXX40XX5fXX3aXA1489 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1243 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://www.w3.org/2000/01/rdf-schema#label> "HORA"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1244 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used ofr recording real world times, rather than scientically measured fine amounts of time"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "TS"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.7, 3.10"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_WORLD_TIME> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1245 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "DTValue attribute of DateTime"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1246 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Represents an aboslute point in time from an origin usually interpreted\nas meaning the start of the cuyrrent day, specified to the second"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1247 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "TOCD choice Quantifiable Observation Data Item"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> <http://www.w3.org/2000/01/rdf-schema#label> "TIME"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#defining_code> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#CODE_PHRASE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#defining_code> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#defining_code> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CODED_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#defining_code> <http://www.w3.org/2000/01/rdf-schema#comment> "The term which the value attribute is the textual rendition of"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#defining_code> <http://www.w3.org/2000/01/rdf-schema#label> "definicion"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#defining_code> <http://www.w3.org/2000/01/rdf-schema#label> "definition"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_BOOLEAN> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "For such data, it is important to devise the meanings (usually questions in subjective data) carefully, so that the only allowed results are in fact true or false"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_BOOLEAN> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "BL"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_BOOLEAN> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Items which are truly boolean data, such as true/false of yes/no answers"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_BOOLEAN> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "A special use of the Numeric class is defined to represent the Boolean data type, limiting the permitted values to zero or one."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_BOOLEAN> <http://www.w3.org/2000/01/rdf-schema#label> "LOGICO"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_BOOLEAN> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1232 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_BOOLEAN> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1233 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_BOOLEAN> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Not provided as a subtype of Data Item"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_BOOLEAN> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#MisUse> "Should not be used as a replacement for naively modelled enumerated types such as male/female etc... Such values whould be coded, and in any case the enumeration often has more than two values."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_BOOLEAN> <http://www.w3.org/2000/01/rdf-schema#label> "BOOLEAN"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_BOOLEAN> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_BOOLEAN> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1277 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1278 .
+_:AX5fXX3aXX40XX5fXX3aXA1277 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_COUNT> .
+_:AX5fXX3aXX40XX5fXX3aXA1338 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "11"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1338 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1339 .
+_:AX5fXX3aXX40XX5fXX3aXA1126 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1126 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1126 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#match> .
+_:AX5fXX3aXX40XX5fXX3aXA1374 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "47"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1374 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1375 .
+_:AX5fXX3aXX40XX5fXX3aXA1435 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "13"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1435 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1436 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#integrity_check> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#integrity_check> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#integrity_check> <http://www.w3.org/2000/01/rdf-schema#label> "chequeo de integridad"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#integrity_check> <http://www.w3.org/2000/01/rdf-schema#label> "integrity check"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#LIST_DV_TEXT> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#LIST_DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#LIST_DV_TEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1221 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#organiser_id> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#organiser_id> <http://www.w3.org/2000/01/rdf-schema#label> "organiser_id"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#organiser_id> <http://www.w3.org/2000/01/rdf-schema#label> "id de organizador"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#organiser_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1162 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> .
+_:AX5fXX3aXX40XX5fXX3aXA1162 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1163 .
+_:AX5fXX3aXX40XX5fXX3aXA1223 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1223 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1223 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hour> .
+_:AX5fXX3aXX40XX5fXX3aXA1471 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "49"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1471 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1472 .
+_:AX5fXX3aXX40XX5fXX3aXA1532 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1532 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#LIST_REFERENCE_RANGE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#LIST_REFERENCE_RANGE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1151 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#LIST_REFERENCE_RANGE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1320 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1321 .
+_:AX5fXX3aXX40XX5fXX3aXA1320 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1278 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> .
+_:AX5fXX3aXX40XX5fXX3aXA1278 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1279 .
+_:AX5fXX3aXX40XX5fXX3aXA1339 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "12"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1339 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1340 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#accuracy_is_percent> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#accuracy_is_percent> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#accuracy_is_percent> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CUSTOMARY_QUANTITY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Abstract parent class of quantity types which are expressed in a form other than the estandrad scientific"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CUSTOMARY_QUANTITY> <http://www.w3.org/2000/01/rdf-schema#label> "CANTIDAD PERSONALIZADA"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CUSTOMARY_QUANTITY> <http://www.w3.org/2000/01/rdf-schema#label> "CUSTOMARY QUANTITY"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CUSTOMARY_QUANTITY> <http://www.w3.org/2002/07/owl#equivalentClass> _:AX5fXX3aXX40XX5fXX3aXA1144 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CUSTOMARY_QUANTITY> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CUSTOMARY_QUANTITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MEASURABLE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CUSTOMARY_QUANTITY> <http://protege.stanford.edu/plugins/owl/protege#abstract> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1127 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#purpose> .
+_:AX5fXX3aXX40XX5fXX3aXA1127 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1127 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1375 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1376 .
+_:AX5fXX3aXX40XX5fXX3aXA1375 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "48"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1436 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "14"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1436 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1437 .
+_:AX5fXX3aXX40XX5fXX3aXA1163 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1164 .
+_:AX5fXX3aXX40XX5fXX3aXA1163 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> .
+_:AX5fXX3aXX40XX5fXX3aXA1224 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1224 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1224 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#day> .
+_:AX5fXX3aXX40XX5fXX3aXA1472 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1473 .
+_:AX5fXX3aXX40XX5fXX3aXA1472 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "50"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1260 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1260 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1260 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#reference_ranges> .
+_:AX5fXX3aXX40XX5fXX3aXA1321 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> .
+_:AX5fXX3aXX40XX5fXX3aXA1321 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1279 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1279 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_DATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1176 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_DATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_DATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used for approximate birth dates, dates of death, etc..."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_DATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Represents a partially known date. All partial dates have an unknown day,\nby definition, else they would be represented as normal dates. The mont_known\nflag indicates whether the month is also unknown"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_DATE> <http://www.w3.org/2000/01/rdf-schema#label> "PARTIAL DATE"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_DATE> <http://www.w3.org/2000/01/rdf-schema#label> "FECHA PARCIAL"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_DATE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_DATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.8"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_DATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "DateTime.FromDate"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1128 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1128 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target> .
+_:AX5fXX3aXX40XX5fXX3aXA1128 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1376 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "49"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1376 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1377 .
+_:AX5fXX3aXX40XX5fXX3aXA1437 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1438 .
+_:AX5fXX3aXX40XX5fXX3aXA1437 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "15"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1164 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_BOOLEAN> .
+_:AX5fXX3aXX40XX5fXX3aXA1164 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1165 .
+_:AX5fXX3aXX40XX5fXX3aXA1225 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1225 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1225 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#diff_type> .
+_:AX5fXX3aXX40XX5fXX3aXA1473 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "51"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1473 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1474 .
+_:AX5fXX3aXX40XX5fXX3aXA1261 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1261 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1262 .
+_:AX5fXX3aXX40XX5fXX3aXA1322 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1323 .
+_:AX5fXX3aXX40XX5fXX3aXA1322 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDINAL> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDINAL> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1253 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDINAL> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "QTY"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDINAL> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.2"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDINAL> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1252 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDINAL> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "for recording any clinical datum which is customarily recorded using symbolic values. e.g. the results on a urinalysis strip ^neg, trace, +, ++,++++ are used for leucocytes, protein, nitrites etc..."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDINAL> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDINAL> <http://www.w3.org/2000/01/rdf-schema#label> "ORDINAL"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDINAL> <http://www.w3.org/2000/01/rdf-schema#label> "ORDINAL"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDINAL> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Models rankings and scores, e.g. pain, Apgar values, etc"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1129 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1129 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#is_terminal> .
+_:AX5fXX3aXX40XX5fXX3aXA1129 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1377 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1378 .
+_:AX5fXX3aXX40XX5fXX3aXA1377 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "50"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1438 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1439 .
+_:AX5fXX3aXX40XX5fXX3aXA1438 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "16"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#language> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#language> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1283 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#language> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#CODE_PHRASE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#language> <http://www.w3.org/2000/01/rdf-schema#label> "idioma"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#language> <http://www.w3.org/2000/01/rdf-schema#label> "language"@en .
+_:AX5fXX3aXX40XX5fXX3aXA1165 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1166 .
+_:AX5fXX3aXX40XX5fXX3aXA1165 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> .
+_:AX5fXX3aXX40XX5fXX3aXA1226 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1226 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#second> .
+_:AX5fXX3aXX40XX5fXX3aXA1226 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1474 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1475 .
+_:AX5fXX3aXX40XX5fXX3aXA1474 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "52"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE_TIME> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#label> "INTERVAL DATE TIME"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#label> "INTERVALO DE FECHA Y HORA"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1204 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE_TIME> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1203 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#days> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#days> <http://www.w3.org/2000/01/rdf-schema#label> ""@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#days> <http://www.w3.org/2000/01/rdf-schema#label> "days"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#days> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#days> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1262 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> .
+_:AX5fXX3aXX40XX5fXX3aXA1262 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1263 .
+_:AX5fXX3aXX40XX5fXX3aXA1323 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1323 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> .
+_:AX5fXX3aXX40XX5fXX3aXA1420 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1421 .
+_:AX5fXX3aXX40XX5fXX3aXA1420 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1439 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "17"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1439 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1440 .
+_:AX5fXX3aXX40XX5fXX3aXA1378 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1379 .
+_:AX5fXX3aXX40XX5fXX3aXA1378 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "51"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#match> <http://www.w3.org/2000/01/rdf-schema#comment> "The relative match of the target term with respect to the mapped text item. Result meanings\n+1: mapping is to a broader ter\n0: mapping is to a equivalent to the original item\n-1:the mapping is to a narrower term"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#match> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#match> <http://www.w3.org/2000/01/rdf-schema#range> _:AX5fXX3aXX40XX5fXX3aXA1495 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#match> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#TERM_MAPPING> .
+_:AX5fXX3aXX40XX5fXX3aXA1166 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+_:AX5fXX3aXX40XX5fXX3aXA1166 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1167 .
+_:AX5fXX3aXX40XX5fXX3aXA1227 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#magnitude> .
+_:AX5fXX3aXX40XX5fXX3aXA1227 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1227 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1475 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1476 .
+_:AX5fXX3aXX40XX5fXX3aXA1475 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "53"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1263 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDINAL> .
+_:AX5fXX3aXX40XX5fXX3aXA1263 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1324 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1324 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1325 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#formalism> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARSABLE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#formalism> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#formalism> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#formalism> <http://www.w3.org/2000/01/rdf-schema#label> "formato"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#formalism> <http://www.w3.org/2000/01/rdf-schema#label> "formalism"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1131 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "The component Annotation Life Cycle was intended to permit architectural components to include a reference to this aspect of state."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "For representing state values which obey a defined state machine, such as a variable representing the states of an instruction or care process"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1129 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1130 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> <http://www.w3.org/2000/01/rdf-schema#label> "STATE"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "The element class includes an attribute LifeCycle to indicate the lifecycle of an instruction or action, with permitted values taken from the ENV13606-2 Domain Termlist Component Annotation of the same name"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Is expressed as a string but its values are driven by archetype-defined state machines. This provides a powerful way of capturing stateful complex processes in simple data"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> <http://www.w3.org/2000/01/rdf-schema#label> "ESTADO"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1360 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "33"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1360 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1361 .
+_:AX5fXX3aXX40XX5fXX3aXA1421 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1421 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1379 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "52"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1379 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1380 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1234 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_MULTIMEDIA_DATA"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.1"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "A specialisation of DV_ENCAPSULATED for audiviosual and biosignal \ntypes. Includes further metadata relating to multimedia types which are\nnot applicalbe ot other subtypes of DV_ENCAPSULATED"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1239 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1240 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1241 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "The Bulky Data class provides for the representation and storage of all binary data classified by its MIME type"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1235 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1237 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1236 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://www.w3.org/2000/01/rdf-schema#label> "MULTIMEDIA"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://www.w3.org/2000/01/rdf-schema#label> "MULTIMEDIA"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1238 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1242 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "ED"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ENCAPSULATED> .
+_:AX5fXX3aXX40XX5fXX3aXA1167 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1168 .
+_:AX5fXX3aXX40XX5fXX3aXA1167 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> .
+_:AX5fXX3aXX40XX5fXX3aXA1228 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1228 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1228 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#fractional_second> .
+_:AX5fXX3aXX40XX5fXX3aXA1476 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1477 .
+_:AX5fXX3aXX40XX5fXX3aXA1476 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "54"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#meaning> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#REFERENCE_RANGE_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#meaning> <http://www.w3.org/2000/01/rdf-schema#comment> "Term whose value indicates the meaning of this range (normal, critical, therapeutic...)"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#meaning> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#meaning> <http://www.w3.org/2000/01/rdf-schema#label> "significado"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#meaning> <http://www.w3.org/2000/01/rdf-schema#label> "meaning"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#meaning> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+_:AX5fXX3aXX40XX5fXX3aXA1264 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1264 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#range> .
+_:AX5fXX3aXX40XX5fXX3aXA1264 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#denominator> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#denominator> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#denominator> <http://www.w3.org/2000/01/rdf-schema#label> "denominador"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#denominator> <http://www.w3.org/2000/01/rdf-schema#label> "denominator"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#denominator> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1325 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1325 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1326 .
+_:AX5fXX3aXX40XX5fXX3aXA1361 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1362 .
+_:AX5fXX3aXX40XX5fXX3aXA1361 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "34"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1422 <http://www.w3.org/2002/07/owl#oneOf> _:AX5fXX3aXX40XX5fXX3aXA1423 .
+_:AX5fXX3aXX40XX5fXX3aXA1422 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DataRange> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#magnitude> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1408 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#magnitude> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#magnitude> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#double> .
+_:AX5fXX3aXX40XX5fXX3aXA1210 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1211 .
+_:AX5fXX3aXX40XX5fXX3aXA1210 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hours> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#integer> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hours> <http://www.w3.org/2000/01/rdf-schema#label> "horas"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hours> <http://www.w3.org/2000/01/rdf-schema#label> "hours"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hours> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hours> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1168 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1168 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1169 .
+_:AX5fXX3aXX40XX5fXX3aXA1229 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1229 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1229 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minute> .
+_:AX5fXX3aXX40XX5fXX3aXA1477 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "55"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1477 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1478 .
+_:AX5fXX3aXX40XX5fXX3aXA1265 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1265 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1265 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#meaning> .
+_:AX5fXX3aXX40XX5fXX3aXA1326 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1326 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1362 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "35"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1362 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1363 .
+_:AX5fXX3aXX40XX5fXX3aXA1423 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1423 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1424 .
+_:AX5fXX3aXX40XX5fXX3aXA1150 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1150 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1150 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+_:AX5fXX3aXX40XX5fXX3aXA1211 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1212 .
+_:AX5fXX3aXX40XX5fXX3aXA1211 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> .
+_:AX5fXX3aXX40XX5fXX3aXA1169 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1170 .
+_:AX5fXX3aXX40XX5fXX3aXA1169 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PHYSICAL_DATA> .
+_:AX5fXX3aXX40XX5fXX3aXA1520 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1521 .
+_:AX5fXX3aXX40XX5fXX3aXA1520 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "18"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1478 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1479 .
+_:AX5fXX3aXX40XX5fXX3aXA1478 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "56"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#composition_id> <http://www.w3.org/2000/01/rdf-schema#label> "id de transaccion"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#composition_id> <http://www.w3.org/2000/01/rdf-schema#label> "transaction id"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#composition_id> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#composition_id> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#composition_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1266 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#lower> .
+_:AX5fXX3aXX40XX5fXX3aXA1266 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1266 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> .
+_:AX5fXX3aXX40XX5fXX3aXA1327 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DataRange> .
+_:AX5fXX3aXX40XX5fXX3aXA1327 <http://www.w3.org/2002/07/owl#oneOf> _:AX5fXX3aXX40XX5fXX3aXA1328 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minute> <http://www.w3.org/2000/01/rdf-schema#range> _:AX5fXX3aXX40XX5fXX3aXA1422 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minute> <http://www.w3.org/2000/01/rdf-schema#label> "minuto"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minute> <http://www.w3.org/2000/01/rdf-schema#label> "minute"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minute> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1419 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minute> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1363 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1364 .
+_:AX5fXX3aXX40XX5fXX3aXA1363 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "36"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1424 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1425 .
+_:AX5fXX3aXX40XX5fXX3aXA1424 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_entry> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_entry> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_entry> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> .
+_:AX5fXX3aXX40XX5fXX3aXA1460 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1461 .
+_:AX5fXX3aXX40XX5fXX3aXA1460 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "38"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1151 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#REFERENCE_RANGE_T> .
+_:AX5fXX3aXX40XX5fXX3aXA1151 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA1151 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1212 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1212 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARSABLE> .
+_:AX5fXX3aXX40XX5fXX3aXA1521 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1522 .
+_:AX5fXX3aXX40XX5fXX3aXA1521 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "19"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#alternate_text> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#alternate_text> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#alternate_text> <http://www.w3.org/2000/01/rdf-schema#label> "texto alternativo"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#alternate_text> <http://www.w3.org/2000/01/rdf-schema#label> "alternate text"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#alternate_text> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#fractional_second> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1404 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#fractional_second> <http://www.w3.org/2000/01/rdf-schema#label> "fractional second"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#fractional_second> <http://www.w3.org/2000/01/rdf-schema#label> "fraccion de segundo"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#fractional_second> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#fractional_second> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#double> .
+_:AX5fXX3aXX40XX5fXX3aXA1479 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1480 .
+_:AX5fXX3aXX40XX5fXX3aXA1479 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "57"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1267 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#upper> .
+_:AX5fXX3aXX40XX5fXX3aXA1267 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1267 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> .
+_:AX5fXX3aXX40XX5fXX3aXA1328 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1328 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1329 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#calendar_alignment> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#calendar_alignment> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1414 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#calendar_alignment> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1364 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1365 .
+_:AX5fXX3aXX40XX5fXX3aXA1364 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "37"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1425 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1426 .
+_:AX5fXX3aXX40XX5fXX3aXA1425 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "3"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#mappings> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#mappings> <http://www.w3.org/2000/01/rdf-schema#label> "mappings"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#mappings> <http://www.w3.org/2000/01/rdf-schema#label> "mapeos"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#mappings> <http://www.w3.org/2000/01/rdf-schema#comment> "terms from other terminologis most closely matching this term, typically used where the originator of information uses a local terminology but also supplies one or more equivalents from well-know terminologies"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#mappings> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#LIST_TERM_MAPPING> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#mappings> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> <http://www.w3.org/2000/01/rdf-schema#label> "RAZON DE CANTIDADES"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Models a ratio of quantities"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used for recording specified administration dosages (e.g. 5mg/100ml),\ndrug amounts based on body weight (e.g. 1 tabledt/10kg),\nand titers (e.g. 1:128)\nNote that the units representation in sigle QUANTITYs caters for any ratio\nin which the units are expressible in unitary form.\nSo a QUANTITY_RATIO of 2g/250ml could be expressed as a \nQUANTITY of 8g/l"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> "COAS::Ratio"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1132 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1133 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#MisUse> "Should not be used to represent thigs like blood pressure\nwhich are often written using a '/' character, giving the misleading\nimpression that the item is a ratio, when in fact it is a structured value."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_QUANTITY_RATIO"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Ratio (RTO)"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> <http://www.w3.org/2000/01/rdf-schema#label> "QUANTITY RATIO"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.6"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "Numeric"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1152 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#language> .
+_:AX5fXX3aXX40XX5fXX3aXA1152 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1152 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#CODE_PHRASE> .
+_:AX5fXX3aXX40XX5fXX3aXA1213 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1213 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1213 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+_:AX5fXX3aXX40XX5fXX3aXA1461 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "39"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1461 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1462 .
+_:AX5fXX3aXX40XX5fXX3aXA1522 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1523 .
+_:AX5fXX3aXX40XX5fXX3aXA1522 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "20"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1310 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "25"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1310 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1311 .
+_:AX5fXX3aXX40XX5fXX3aXA1268 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1268 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1269 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#REFERENCE_RANGE_T> <http://www.w3.org/2000/01/rdf-schema#label> "RANGO DE REFERENCIA"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#REFERENCE_RANGE_T> <http://www.w3.org/2000/01/rdf-schema#label> "REFERENCE RANGE"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#REFERENCE_RANGE_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1265 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#REFERENCE_RANGE_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1264 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#REFERENCE_RANGE_T> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Defines a named range to be associate with any ORDERED datum Each such range is particular to the patient and context, and any other factor which affects ranges "^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#REFERENCE_RANGE_T> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "May be used to represent normal, therapeutic, dangerous, critical etc ranges"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#REFERENCE_RANGE_T> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.13"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#REFERENCE_RANGE_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1329 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1330 .
+_:AX5fXX3aXX40XX5fXX3aXA1329 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1365 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "38"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1365 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1366 .
+_:AX5fXX3aXX40XX5fXX3aXA1426 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "4"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1426 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1427 .
+_:AX5fXX3aXX40XX5fXX3aXA1153 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hyperlink> .
+_:AX5fXX3aXX40XX5fXX3aXA1153 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1153 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1523 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "21"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1523 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1524 .
+_:AX5fXX3aXX40XX5fXX3aXA1214 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1214 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1214 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1462 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1463 .
+_:AX5fXX3aXX40XX5fXX3aXA1462 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "40"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#charset> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#charset> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#CODE_PHRASE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#charset> <http://www.w3.org/2000/01/rdf-schema#label> "charset"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#charset> <http://www.w3.org/2000/01/rdf-schema#label> ""@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#charset> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1273 .
+_:AX5fXX3aXX40XX5fXX3aXA1250 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1250 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1311 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1312 .
+_:AX5fXX3aXX40XX5fXX3aXA1311 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "26"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1269 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#TERM_MAPPING> .
+_:AX5fXX3aXX40XX5fXX3aXA1269 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1270 .
+_:AX5fXX3aXX40XX5fXX3aXA1366 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1367 .
+_:AX5fXX3aXX40XX5fXX3aXA1366 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "39"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1427 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1428 .
+_:AX5fXX3aXX40XX5fXX3aXA1427 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "5"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1154 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1154 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1154 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#language> .
+_:AX5fXX3aXX40XX5fXX3aXA1215 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1215 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#scheme> .
+_:AX5fXX3aXX40XX5fXX3aXA1215 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1463 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "41"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1463 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1464 .
+_:AX5fXX3aXX40XX5fXX3aXA1524 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "22"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1524 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1525 .
+_:AX5fXX3aXX40XX5fXX3aXA1190 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1190 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_composition> .
+_:AX5fXX3aXX40XX5fXX3aXA1190 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1251 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1251 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#timezone> .
+_:AX5fXX3aXX40XX5fXX3aXA1251 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1312 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1313 .
+_:AX5fXX3aXX40XX5fXX3aXA1312 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "27"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_COUNT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1220 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_COUNT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1219 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_COUNT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_COUNT> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_COUNT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "INT"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_COUNT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.2-3.4"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_COUNT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#MisUse> "Not used for amounts of physical entities (which all have units)"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_COUNT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Countable quantities"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_COUNT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used for countable types such as pregnancies and steps (taken by a physiotherapy patient), number of cigarettes smoded in a day"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1367 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1368 .
+_:AX5fXX3aXX40XX5fXX3aXA1367 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "40"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1428 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "6"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1428 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1429 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.13"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_QUANTITY_RANGE"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> <http://www.w3.org/2000/01/rdf-schema#label> "INTERVALO DE T"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1266 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Generic class defining an interval of a comparable type.\nan interval is a contiguous subrange of a comparable base type"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1267 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTERVAL_T> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "QuantityRange+ability to specify if the range is incusive or exclusive separately of the maximun and minimum values"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "IVL<T:QTY>"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Time Interval"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> <http://www.w3.org/2000/01/rdf-schema#label> "INTERVAL T"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_T> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used to define intervals"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1155 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1155 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1155 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1216 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#query> .
+_:AX5fXX3aXX40XX5fXX3aXA1216 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1216 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1464 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1465 .
+_:AX5fXX3aXX40XX5fXX3aXA1464 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "42"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1525 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1526 .
+_:AX5fXX3aXX40XX5fXX3aXA1525 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "23"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#media_type> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#media_type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#media_type> <http://www.w3.org/2000/01/rdf-schema#label> "media type"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#media_type> <http://www.w3.org/2000/01/rdf-schema#label> "tipo de medio"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#media_type> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#CODE_PHRASE> .
+_:AX5fXX3aXX40XX5fXX3aXA1313 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "28"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1313 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1314 .
+_:AX5fXX3aXX40XX5fXX3aXA1191 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1191 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1191 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#entry_id> .
+_:AX5fXX3aXX40XX5fXX3aXA1252 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1252 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1252 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl> <http://www.w3.org/2002/07/owl#imports> <http://protege.stanford.edu/plugins/owl/protege> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl> <http://www.w3.org/2002/07/owl#imports> <http://trajano.us.es/~isabel/EHR/Support_RM.owl> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl> <http://www.w3.org/2000/01/rdf-schema#comment> "The openEHR Data Types Reference Model\nBased on the Revision 1.7.3\nWritten in OWL by Isabel Rom\u00E1n\nNovember 2003"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
+_:AX5fXX3aXX40XX5fXX3aXA1410 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1411 .
+_:AX5fXX3aXX40XX5fXX3aXA1410 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> .
+_:AX5fXX3aXX40XX5fXX3aXA1368 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "41"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1368 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1369 .
+_:AX5fXX3aXX40XX5fXX3aXA1429 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "7"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1429 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1430 .
+_:AX5fXX3aXX40XX5fXX3aXA1156 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1156 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#mappings> .
+_:AX5fXX3aXX40XX5fXX3aXA1156 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1217 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#fragment_id> .
+_:AX5fXX3aXX40XX5fXX3aXA1217 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1217 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1465 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "43"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1465 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1466 .
+_:AX5fXX3aXX40XX5fXX3aXA1526 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1526 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "24"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1192 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1192 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#composition_id> .
+_:AX5fXX3aXX40XX5fXX3aXA1192 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1253 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1253 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1253 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1314 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "29"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1314 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1315 .
+_:AX5fXX3aXX40XX5fXX3aXA1350 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1351 .
+_:AX5fXX3aXX40XX5fXX3aXA1350 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "23"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1411 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1411 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> .
+_:AX5fXX3aXX40XX5fXX3aXA1369 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "42"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1369 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1370 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#numerator> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#numerator> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY_RATIO> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#numerator> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#numerator> <http://www.w3.org/2000/01/rdf-schema#label> "numerator"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#numerator> <http://www.w3.org/2000/01/rdf-schema#label> "numerador"@es .
+_:AX5fXX3aXX40XX5fXX3aXA1157 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#formatting> .
+_:AX5fXX3aXX40XX5fXX3aXA1157 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1157 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1218 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1218 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1218 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#path> .
+_:AX5fXX3aXX40XX5fXX3aXA1466 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1467 .
+_:AX5fXX3aXX40XX5fXX3aXA1466 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "44"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1527 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1527 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1528 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#sign> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#sign> <http://www.w3.org/2000/01/rdf-schema#comment> "direction of duration with respect to a notional reference point"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#sign> <http://www.w3.org/2000/01/rdf-schema#label> "sentido"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#sign> <http://www.w3.org/2000/01/rdf-schema#label> "sign"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#sign> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#integer> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#sign> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1193 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1193 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#target_is_transaction> .
+_:AX5fXX3aXX40XX5fXX3aXA1193 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1254 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1254 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1254 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#magnitude> .
+_:AX5fXX3aXX40XX5fXX3aXA1315 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1316 .
+_:AX5fXX3aXX40XX5fXX3aXA1315 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "30"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1290 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1291 .
+_:AX5fXX3aXX40XX5fXX3aXA1290 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "4"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1351 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "24"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1351 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1352 .
+_:AX5fXX3aXX40XX5fXX3aXA1412 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1413 .
+_:AX5fXX3aXX40XX5fXX3aXA1412 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#units> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#units> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#units> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1530 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#units> <http://www.w3.org/2000/01/rdf-schema#comment> "stringified units, expressed in UCUM unit syntax, e.g. dg/m2, km/h..."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#units> <http://www.w3.org/2000/01/rdf-schema#label> "unidades"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#units> <http://www.w3.org/2000/01/rdf-schema#label> "units"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#timezone> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#timezone> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1271 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#timezone> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#timezone> <http://www.w3.org/2000/01/rdf-schema#comment> "offset from Universal Coordinated Time, in the range -1200 +1200"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1200 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1200 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#day> .
+_:AX5fXX3aXX40XX5fXX3aXA1200 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1158 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#charset> .
+_:AX5fXX3aXX40XX5fXX3aXA1158 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1158 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1219 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1219 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#magnitude> .
+_:AX5fXX3aXX40XX5fXX3aXA1219 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1467 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "45"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1467 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1468 .
+_:AX5fXX3aXX40XX5fXX3aXA1528 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1529 .
+_:AX5fXX3aXX40XX5fXX3aXA1528 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1194 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1194 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1194 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#ehr_id> .
+_:AX5fXX3aXX40XX5fXX3aXA1255 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1255 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1255 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#precision> .
+_:AX5fXX3aXX40XX5fXX3aXA1316 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1316 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "31"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> <http://protege.stanford.edu/plugins/owl/protege#abstract> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1183 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Abstract class defining the concept  of true quantified\nvalues, e.e. values which are not only ordered, but whose \nmagnitude is meaningful as well. The defining characteristic of the\ntype is the attribute property - what is being quantified, and that the \ndifference operation is defined."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> <http://www.w3.org/2000/01/rdf-schema#label> "QUANTIFIED"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1184 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> <http://www.w3.org/2002/07/owl#equivalentClass> _:AX5fXX3aXX40XX5fXX3aXA1185 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1182 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDERED> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "Attributes in the Quantity class for unit and accuracy"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> "COAS::Measurement"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "QTY"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> <http://www.w3.org/2000/01/rdf-schema#label> "CUANTIFICADO"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTIFIED> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "unit exists as ann attribute of the measurement data value class, but there is no representation of accuracy"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1291 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "5"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1291 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1292 .
+_:AX5fXX3aXX40XX5fXX3aXA1352 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1353 .
+_:AX5fXX3aXX40XX5fXX3aXA1352 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "25"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1413 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1413 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1510 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1511 .
+_:AX5fXX3aXX40XX5fXX3aXA1510 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "8"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1140 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#days> .
+_:AX5fXX3aXX40XX5fXX3aXA1140 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1140 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minute_known> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minute_known> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_PARTIAL_TIME> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minute_known> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minute_known> <http://www.w3.org/2000/01/rdf-schema#label> "minute known"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minute_known> <http://www.w3.org/2000/01/rdf-schema#label> "minuto conocido"@es .
+_:AX5fXX3aXX40XX5fXX3aXA1201 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#upper> .
+_:AX5fXX3aXX40XX5fXX3aXA1201 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> .
+_:AX5fXX3aXX40XX5fXX3aXA1201 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1159 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1159 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1159 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "PhysicalQuantity (PQ)"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://www.w3.org/2000/01/rdf-schema#label> "QUANTITY"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.2-3.4"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1259 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Can be used for time durations, where it is more convenient to treat these\nas simply a number of seconds rather than days, months, years."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "Quantity"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_QUANTITY"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://www.w3.org/2000/01/rdf-schema#label> "CANTIDAD"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> "COAS::Numeric"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MEASURABLE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1254 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1258 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Concrete type representing scientific quantities, i.e. quentities expressed\nas a single value and a single, optional units."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Quantifiable Data Item; Measurement data value class"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1256 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1257 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1255 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#integrity_check_algorithm> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#integrity_check_algorithm> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#CODE_PHRASE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#integrity_check_algorithm> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#integrity_check_algorithm> <http://www.w3.org/2000/01/rdf-schema#label> "integrity check algorithm"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#integrity_check_algorithm> <http://www.w3.org/2000/01/rdf-schema#label> "chequeo de comprobacion de integridad"@es .
+_:AX5fXX3aXX40XX5fXX3aXA1468 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1469 .
+_:AX5fXX3aXX40XX5fXX3aXA1468 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "46"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1529 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1529 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1317 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1317 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1318 .
+_:AX5fXX3aXX40XX5fXX3aXA1195 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1195 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1195 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#organiser_id> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#is_terminal> <http://www.w3.org/2000/01/rdf-schema#label> "es terminal"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#is_terminal> <http://www.w3.org/2000/01/rdf-schema#label> "is terminal"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#is_terminal> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#is_terminal> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#is_terminal> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+_:AX5fXX3aXX40XX5fXX3aXA1256 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1256 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1256 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#units> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#TERM_MAPPING> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#TERM_MAPPING> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1128 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#TERM_MAPPING> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1127 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#TERM_MAPPING> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1126 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#TERM_MAPPING> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 4.5"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#TERM_MAPPING> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used for adding classification terms, or mapping into equivalents in other terminologies"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#TERM_MAPPING> <http://www.w3.org/2000/01/rdf-schema#label> "TERM MAPPING"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#TERM_MAPPING> <http://www.w3.org/2000/01/rdf-schema#label> "TERMINO MAPEADO"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#TERM_MAPPING> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Represents a coded term mapped to a DV_TEXT. and the relative match of the target term with respect to the maped item."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#entry_id> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#entry_id> <http://www.w3.org/2000/01/rdf-schema#label> "entry id"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#entry_id> <http://www.w3.org/2000/01/rdf-schema#label> "id de entrada"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#entry_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#entry_id> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> .
+_:AX5fXX3aXX40XX5fXX3aXA1292 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1293 .
+_:AX5fXX3aXX40XX5fXX3aXA1292 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "6"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1353 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1354 .
+_:AX5fXX3aXX40XX5fXX3aXA1353 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "26"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_GENERAL_TIME_SPECIFICATION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_GENERAL_TIME_SPECIFICATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_GENERAL_TIME_SPECIFICATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "The Duration data value class provides for the specification of time intervals, and also for a simple string description of the priodicity"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_GENERAL_TIME_SPECIFICATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.9"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_GENERAL_TIME_SPECIFICATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "GTS"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_GENERAL_TIME_SPECIFICATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Specifies points in time in a general syntax. Based on the HL7v3 \nGTS data type"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_GENERAL_TIME_SPECIFICATION> <http://www.w3.org/2000/01/rdf-schema#label> "GENERAL TIME SPECIFICATION"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_GENERAL_TIME_SPECIFICATION> <http://www.w3.org/2000/01/rdf-schema#label> "ESPECIFICACION GENERAL DE TIEMPO"@es .
+_:AX5fXX3aXX40XX5fXX3aXA1414 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1415 .
+_:AX5fXX3aXX40XX5fXX3aXA1414 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1141 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#seconds> .
+_:AX5fXX3aXX40XX5fXX3aXA1141 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1141 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1202 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> .
+_:AX5fXX3aXX40XX5fXX3aXA1202 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#lower> .
+_:AX5fXX3aXX40XX5fXX3aXA1202 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1450 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1451 .
+_:AX5fXX3aXX40XX5fXX3aXA1450 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "28"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1511 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "9"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1511 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1512 .
+_:AX5fXX3aXX40XX5fXX3aXA1469 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "47"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1469 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1470 .
+_:AX5fXX3aXX40XX5fXX3aXA1196 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1196 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1196 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#year> .
+_:AX5fXX3aXX40XX5fXX3aXA1257 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#NUMERIC> .
+_:AX5fXX3aXX40XX5fXX3aXA1257 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1257 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1318 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1319 .
+_:AX5fXX3aXX40XX5fXX3aXA1318 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hour> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hour> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1527 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hour> <http://www.w3.org/2000/01/rdf-schema#label> "hora"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hour> <http://www.w3.org/2000/01/rdf-schema#label> "hour"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#hour> <http://www.w3.org/2000/01/rdf-schema#range> _:AX5fXX3aXX40XX5fXX3aXA1502 .
+_:AX5fXX3aXX40XX5fXX3aXA1293 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "7"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1293 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1294 .
+_:AX5fXX3aXX40XX5fXX3aXA1354 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "27"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1354 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1355 .
+_:AX5fXX3aXX40XX5fXX3aXA1415 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1415 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TIME_SPECIFICATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1390 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1391 .
+_:AX5fXX3aXX40XX5fXX3aXA1390 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1137 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CUSTOMARY_QUANTITY> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1134 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://www.w3.org/2000/01/rdf-schema#label> "DURATION"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1140 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1135 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1138 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "IVL<TS>"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.10"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_DATE_TIME_DURATION"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1139 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Represents a period of time with respect to a notional point in time, \nwhich is not specified. A sign my be used to indicate the duration is\n'backwards' in time rather than forwards"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1141 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1136 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#MisUse> "Durations cannot be used to represent points in time, or intervals of time"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Time Interval or Date Range or text description"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://www.w3.org/2000/01/rdf-schema#label> "DURACION"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used ofr recording the duration of something in the real world, particularly\nwhen there is a need:\nto represent the duration in customary format (days, hours, minutes...)\nif it will be used in computational operations with date/time quantities"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#compression_algorithm> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#CODE_PHRASE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#compression_algorithm> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_MULTIMEDIA> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#compression_algorithm> <http://www.w3.org/2000/01/rdf-schema#label> "algoritmo de compresion"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#compression_algorithm> <http://www.w3.org/2000/01/rdf-schema#label> "compression algorithm"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#compression_algorithm> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1142 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1142 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#terminology_id> .
+_:AX5fXX3aXX40XX5fXX3aXA1142 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1203 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1203 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#lower> .
+_:AX5fXX3aXX40XX5fXX3aXA1203 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1451 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "29"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1451 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1452 .
+_:AX5fXX3aXX40XX5fXX3aXA1512 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1513 .
+_:AX5fXX3aXX40XX5fXX3aXA1512 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "10"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_CUSTOMARY_QUANTITY> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1197 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://www.w3.org/2000/01/rdf-schema#label> "FECHA"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://www.w3.org/2000/01/rdf-schema#label> "DATE"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1196 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_DATE"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1200 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Represents an absolute point in time, as measured on the Gregorian\ncalendar, and specified only to the day"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> "STR 3.7"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "DTValue attribute of DateTime class"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1199 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used ofr recording dates in real world time"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1198 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "TS"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "TOCD choice Quantifiable Observation Data Item"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1300 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1301 .
+_:AX5fXX3aXX40XX5fXX3aXA1300 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "15"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1197 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1197 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#diff_type> .
+_:AX5fXX3aXX40XX5fXX3aXA1197 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1258 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1258 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1258 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA1319 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE> .
+_:AX5fXX3aXX40XX5fXX3aXA1319 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#diff_type> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1276 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#diff_type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1294 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1295 .
+_:AX5fXX3aXX40XX5fXX3aXA1294 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "8"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minutes> <http://www.w3.org/2000/01/rdf-schema#label> "minutos"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minutes> <http://www.w3.org/2000/01/rdf-schema#label> "minutes"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minutes> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#integer> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minutes> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minutes> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DURATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1355 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "28"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1355 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1356 .
+_:AX5fXX3aXX40XX5fXX3aXA1416 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1417 .
+_:AX5fXX3aXX40XX5fXX3aXA1416 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1391 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1392 .
+_:AX5fXX3aXX40XX5fXX3aXA1391 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "3"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1143 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1143 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#items> .
+_:AX5fXX3aXX40XX5fXX3aXA1143 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#precision> <http://www.w3.org/2000/01/rdf-schema#comment> "precision to which the value of the quantity is expressed, in terms of number of significant figures. 0 implies no precision"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#precision> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#precision> <http://www.w3.org/2000/01/rdf-schema#label> "precision"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#precision> <http://www.w3.org/2000/01/rdf-schema#label> "precision"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#precision> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#precision> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#integer> .
+_:AX5fXX3aXX40XX5fXX3aXA1204 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+_:AX5fXX3aXX40XX5fXX3aXA1204 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1204 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#upper> .
+_:AX5fXX3aXX40XX5fXX3aXA1452 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1453 .
+_:AX5fXX3aXX40XX5fXX3aXA1452 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "30"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1513 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "11"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1513 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1514 .
+_:AX5fXX3aXX40XX5fXX3aXA1240 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#data> .
+_:AX5fXX3aXX40XX5fXX3aXA1240 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1240 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1301 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1302 .
+_:AX5fXX3aXX40XX5fXX3aXA1301 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "16"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1198 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1198 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1198 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#month> .
+_:AX5fXX3aXX40XX5fXX3aXA1259 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1259 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#diff_type> .
+_:AX5fXX3aXX40XX5fXX3aXA1259 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_QUANTITY> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#second> <http://www.w3.org/2000/01/rdf-schema#range> _:AX5fXX3aXX40XX5fXX3aXA1327 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#second> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1324 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#second> <http://www.w3.org/2000/01/rdf-schema#label> "second"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#second> <http://www.w3.org/2000/01/rdf-schema#label> "segundo"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#second> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1295 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "10"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1295 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1296 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#ehr_id> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#ehr_id> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#ehr_id> <http://www.w3.org/2000/01/rdf-schema#label> "ehr_id"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#ehr_id> <http://www.w3.org/2000/01/rdf-schema#label> "id de ehr"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#ehr_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA1356 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1357 .
+_:AX5fXX3aXX40XX5fXX3aXA1356 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "29"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1417 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1418 .
+_:AX5fXX3aXX40XX5fXX3aXA1417 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#COORDINATED_TERM> .
+_:AX5fXX3aXX40XX5fXX3aXA1453 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1454 .
+_:AX5fXX3aXX40XX5fXX3aXA1453 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "31"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1144 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1145 .
+_:AX5fXX3aXX40XX5fXX3aXA1144 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1392 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1393 .
+_:AX5fXX3aXX40XX5fXX3aXA1392 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "4"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1205 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1205 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#minute_known> .
+_:AX5fXX3aXX40XX5fXX3aXA1205 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1216 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1217 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1215 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> "COAS::TechnologyInstanceLocator"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DATA_VALUE> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1214 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "A reference to an object which conforms to the Universal Resource\nIdentifier (URI) standarad, as defined by W3C RFC 2936"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "TBD"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1218 .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> <http://www.w3.org/2000/01/rdf-schema#label> "URI"@es .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> <http://www.w3.org/2000/01/rdf-schema#label> "URI"@en .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Enables external resources to be referenced from within the \ncontent of the EHR. A number of functions return the logical\nsubparts of the URI string"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_URI> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1213 .
Index: ruby/trunk/doc/open_ehr/Demographic_RM.ntriple
===================================================================
--- ruby/trunk/doc/open_ehr/Demographic_RM.ntriple	(revision 291)
+++ ruby/trunk/doc/open_ehr/Demographic_RM.ntriple	(revision 291)
@@ -0,0 +1,343 @@
+_:AX5fXX3aXX40XX5fXX3aXA1595 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1595 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1596 .
+_:AX5fXX3aXX40XX5fXX3aXA1569 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1569 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#target> .
+_:AX5fXX3aXX40XX5fXX3aXA1569 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#reverse_relationships> <http://www.w3.org/2002/07/owl#inverseOf> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#target> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#reverse_relationships> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#reverse_relationships> <http://www.w3.org/2000/01/rdf-schema#comment> "Relationships in which this role takes part as target"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#reverse_relationships> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#reverse_relationships> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#reverse_relationships> <http://www.w3.org/2000/01/rdf-schema#label> "target relationship"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#reverse_relationships> <http://www.w3.org/2000/01/rdf-schema#label> "relacion como destino"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ADDRESS> <http://www.w3.org/2000/01/rdf-schema#label> "DIRECCION"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ADDRESS> <http://www.w3.org/2000/01/rdf-schema#label> "ADDRESS"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ADDRESS> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ADDRESS> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Address (AD) (data type)"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ADDRESS> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Address of contact, which may be electronic or geographic"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ADDRESS> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ADDRESS> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1562 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ADDRESS> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Address (data type)"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1578 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#AGENT> .
+_:AX5fXX3aXX40XX5fXX3aXA1578 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1579 .
+_:AX5fXX3aXX40XX5fXX3aXA1607 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1608 .
+_:AX5fXX3aXX40XX5fXX3aXA1607 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> .
+_:AX5fXX3aXX40XX5fXX3aXA1587 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#addresses> .
+_:AX5fXX3aXX40XX5fXX3aXA1587 <http://www.w3.org/2002/07/owl#minCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1587 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_PARTY_IDENTITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1589 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_PARTY_IDENTITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#SET_T> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_PARTY_IDENTITY> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1583 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Generic description of  a role performed by an actor. The role \ncorresponds to a competency of the party. Roles are used to define \nthe responsibalities undertaken by a party for a purpose. \nRoles should have credential qualifying the performer to perform \nthe role."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1584 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> <http://www.w3.org/2000/01/rdf-schema#label> "ROL"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Healthcare agent in context"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> <http://www.w3.org/2000/01/rdf-schema#label> "ROLE"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Roles correspond to concepts like \"general parctitioner\", \"nurse\" and so on"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "ROLE"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1596 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1597 .
+_:AX5fXX3aXX40XX5fXX3aXA1596 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> <http://protege.stanford.edu/plugins/owl/protege#abstract> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1567 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> <http://www.w3.org/2000/01/rdf-schema#label> "ENTIDAD"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "healthcare agent"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1568 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> <http://www.w3.org/2002/07/owl#equivalentClass> _:AX5fXX3aXX40XX5fXX3aXA1564 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Entity"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> <http://www.w3.org/2000/01/rdf-schema#label> "PARTY"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Ancestor of all party types, including real world entities and their roles.\nA party is any entity which can participate in an activity. The meaning \nattribute inherited from LOCATABLE is used to indicate the actual type \nof party"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#roles> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#roles> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#roles> <http://www.w3.org/2000/01/rdf-schema#label> "roles"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#roles> <http://www.w3.org/2000/01/rdf-schema#label> "roles"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#roles> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#roles> <http://www.w3.org/2000/01/rdf-schema#comment> "roles played by this party"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#AGENT> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#AGENT> <http://www.w3.org/2000/01/rdf-schema#label> "AGENTE"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#AGENT> <http://www.w3.org/2000/01/rdf-schema#label> "AGENT"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#AGENT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#AGENT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Healthcare software, healthcare device"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#AGENT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "DEVICE"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#AGENT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Generic concepto of any kind of agent including devices, software \nsystems, but not humas or organisations."^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1579 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ORGANISATION> .
+_:AX5fXX3aXX40XX5fXX3aXA1579 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1580 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_PARTY_RELATIONSHIP> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1588 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_PARTY_RELATIONSHIP> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#SET_T> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_PARTY_RELATIONSHIP> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1588 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1588 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA1588 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> .
+_:AX5fXX3aXX40XX5fXX3aXA1608 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> .
+_:AX5fXX3aXX40XX5fXX3aXA1608 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1609 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#capabilities> <http://www.w3.org/2000/01/rdf-schema#label> "capabilities"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#capabilities> <http://www.w3.org/2000/01/rdf-schema#label> "capacidades"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#capabilities> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#capabilities> <http://www.w3.org/2000/01/rdf-schema#comment> "The capabilities of this role"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#capabilities> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CAPABILITY> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#capabilities> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#addresses> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#addresses> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ADDRESS> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#addresses> <http://www.w3.org/2000/01/rdf-schema#comment> "A set of address alternatives for this purpose and time validity"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#addresses> <http://www.w3.org/2000/01/rdf-schema#label> "addresses"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#addresses> <http://www.w3.org/2000/01/rdf-schema#label> "direcciones"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#addresses> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CONTACT> .
+_:AX5fXX3aXX40XX5fXX3aXA1597 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> .
+_:AX5fXX3aXX40XX5fXX3aXA1597 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1570 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#type> .
+_:AX5fXX3aXX40XX5fXX3aXA1570 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1570 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#relationships> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#relationships> <http://www.w3.org/2002/07/owl#inverseOf> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#source> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#relationships> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#relationships> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#relationships> <http://www.w3.org/2000/01/rdf-schema#label> "relacion como origen"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#relationships> <http://www.w3.org/2000/01/rdf-schema#label> "source relationship"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#relationships> <http://www.w3.org/2000/01/rdf-schema#comment> "Relationships in hich this role takes part as source"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1609 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CAPABILITY> .
+_:AX5fXX3aXX40XX5fXX3aXA1609 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1610 .
+_:AX5fXX3aXX40XX5fXX3aXA1589 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA1589 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> .
+_:AX5fXX3aXX40XX5fXX3aXA1589 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#languages> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#languages> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#languages> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#languages> <http://www.w3.org/2000/01/rdf-schema#comment> "Languages which can be used to communicate with this actor"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#source> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#source> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#source> <http://www.w3.org/2002/07/owl#inverseOf> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#relationships> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#source> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#source> <http://www.w3.org/2000/01/rdf-schema#comment> "Source of relationship"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#source> <http://www.w3.org/2000/01/rdf-schema#label> "origen"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#source> <http://www.w3.org/2000/01/rdf-schema#label> "source"@en .
+_:AX5fXX3aXX40XX5fXX3aXA1598 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1599 .
+_:AX5fXX3aXX40XX5fXX3aXA1598 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1562 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#details> .
+_:AX5fXX3aXX40XX5fXX3aXA1562 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1562 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1571 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#details> .
+_:AX5fXX3aXX40XX5fXX3aXA1571 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1571 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#credentials> <http://www.w3.org/2000/01/rdf-schema#label> "credentials"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#credentials> <http://www.w3.org/2000/01/rdf-schema#label> "credenciales"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#credentials> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#credentials> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CAPABILITY> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#credentials> <http://www.w3.org/2000/01/rdf-schema#comment> "the qualifications of the performer of the role for this capability. This might include professional qualifications and official identifications such as provider numbers etc..."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#credentials> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> <http://www.w3.org/2000/01/rdf-schema#label> "RELACION ENTRE ENTIDADES"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1569 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1570 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1572 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> <http://www.w3.org/2000/01/rdf-schema#label> "PARTY RELATIONSHIP"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1571 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "RELATIONSHIP_LINK"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "generic description of a relationship between parties"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1600 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> .
+_:AX5fXX3aXX40XX5fXX3aXA1600 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1601 .
+_:AX5fXX3aXX40XX5fXX3aXA1580 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1580 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#GROUP> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#identities> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#identities> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#identities> <http://www.w3.org/2000/01/rdf-schema#label> "identities"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#identities> <http://www.w3.org/2000/01/rdf-schema#label> "identidades"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#identities> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#identities> <http://www.w3.org/2000/01/rdf-schema#comment> "Identities used by the party to identify itself, such as legal name, stage names, aliases, nicknames and so on"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1599 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> .
+_:AX5fXX3aXX40XX5fXX3aXA1599 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1600 .
+_:AX5fXX3aXX40XX5fXX3aXA1563 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA1563 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> .
+_:AX5fXX3aXX40XX5fXX3aXA1563 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1572 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#time_validity> .
+_:AX5fXX3aXX40XX5fXX3aXA1572 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1572 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1601 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> .
+_:AX5fXX3aXX40XX5fXX3aXA1601 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1602 .
+_:AX5fXX3aXX40XX5fXX3aXA1581 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#credentials> .
+_:AX5fXX3aXX40XX5fXX3aXA1581 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1581 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1590 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ADDRESS> .
+_:AX5fXX3aXX40XX5fXX3aXA1590 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1590 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA1610 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CONTACT> .
+_:AX5fXX3aXX40XX5fXX3aXA1610 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CAPABILITY> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CAPABILITY> <http://www.w3.org/2000/01/rdf-schema#label> "CAPACIDADES"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CAPABILITY> <http://www.w3.org/2000/01/rdf-schema#label> "CAPABILITY"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CAPABILITY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Capability of a role, such as \"ehr modifier\", \"health care provider\". \nCapability should be backed up by credentials."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CAPABILITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1582 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CAPABILITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CAPABILITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1581 .
+_:AX5fXX3aXX40XX5fXX3aXA1564 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1564 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1565 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#time_validity> <http://www.w3.org/2000/01/rdf-schema#label> "time validity"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#time_validity> <http://www.w3.org/2000/01/rdf-schema#label> "intervalo de validez"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#time_validity> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#time_validity> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#time_validity> <http://www.w3.org/2000/01/rdf-schema#comment> "Valid time interval fot this relationship"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#time_validity> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1606 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#LIST_CAPABILITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1573 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#LIST_CAPABILITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#LIST_CAPABILITY> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1573 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1573 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA1573 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CAPABILITY> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_PARTY> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_PARTY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1563 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_PARTY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#SET_T> .
+_:AX5fXX3aXX40XX5fXX3aXA1602 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1602 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ADDRESS> .
+_:AX5fXX3aXX40XX5fXX3aXA1582 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1582 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1582 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#time_validity> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_ROLE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_ROLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#SET_T> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_ROLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1574 .
+_:AX5fXX3aXX40XX5fXX3aXA1591 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1591 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#as_string> .
+_:AX5fXX3aXX40XX5fXX3aXA1591 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1565 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> .
+_:AX5fXX3aXX40XX5fXX3aXA1565 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1566 .
+_:AX5fXX3aXX40XX5fXX3aXA1574 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA1574 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1574 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#perfomer> <http://www.w3.org/2000/01/rdf-schema#comment> "Actor playing the role"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#perfomer> <http://www.w3.org/2000/01/rdf-schema#label> "interprete"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#perfomer> <http://www.w3.org/2000/01/rdf-schema#label> "performer"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#perfomer> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#perfomer> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#perfomer> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl> <http://www.w3.org/2000/01/rdf-schema#comment> "Ontology based in the openEHR Demographic Reference Model\nRevision:1.4.1\nWritten in owl by Isabel Rom\u00E1n"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl> <http://www.w3.org/2002/07/owl#imports> <http://protege.stanford.edu/plugins/owl/protege> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl> <http://www.w3.org/2002/07/owl#imports> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#purpose> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#purpose> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1603 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#purpose> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#purpose> <http://www.w3.org/2000/01/rdf-schema#comment> "Purpose of identity, e.g. \"legal\", \"stagename\", \"nickname\", \"tibal name\"... taken from value of inherited name attribute."^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1603 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1603 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1604 .
+_:AX5fXX3aXX40XX5fXX3aXA1583 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1583 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#perfomer> .
+_:AX5fXX3aXX40XX5fXX3aXA1583 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_CONTACT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1594 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_CONTACT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#SET_T> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_CONTACT> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#details> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1598 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#details> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#details> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> .
+_:AX5fXX3aXX40XX5fXX3aXA1592 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#details> .
+_:AX5fXX3aXX40XX5fXX3aXA1592 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1592 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1566 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1566 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ROLE> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#GROUP> <http://www.w3.org/2000/01/rdf-schema#label> "GROUP"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#GROUP> <http://www.w3.org/2000/01/rdf-schema#label> "GRUPO"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#GROUP> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#GROUP> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "A group is a real world group of parties which is created by another \nparty, usually an organisation, for some specific purpose. A typical \nclinical example is that of the specialist care tea, e.g. \"cardilogy team\". \nThe members of the group usually work together."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#GROUP> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1575 <http://www.w3.org/2002/07/owl#minCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1575 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1575 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#languages> .
+_:AX5fXX3aXX40XX5fXX3aXA1604 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1605 .
+_:AX5fXX3aXX40XX5fXX3aXA1604 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CONTACT> .
+_:AX5fXX3aXX40XX5fXX3aXA1584 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#time_validity> .
+_:AX5fXX3aXX40XX5fXX3aXA1584 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA1584 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> <http://www.w3.org/2000/01/rdf-schema#label> "ACTOR"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> <http://www.w3.org/2000/01/rdf-schema#label> "ACTOR"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Entity"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> <http://www.w3.org/2002/07/owl#equivalentClass> _:AX5fXX3aXX40XX5fXX3aXA1576 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> <http://protege.stanford.edu/plugins/owl/protege#abstract> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Ancestor of all real-world types, including people and organisations. \nAn actor is any real-world entity capable of taking on a role"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Healthcare party"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1575 .
+_:AX5fXX3aXX40XX5fXX3aXA1593 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#as_string> .
+_:AX5fXX3aXX40XX5fXX3aXA1593 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+_:AX5fXX3aXX40XX5fXX3aXA1593 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PERSON> <http://www.w3.org/2000/01/rdf-schema#label> "PERSON"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PERSON> <http://www.w3.org/2000/01/rdf-schema#label> "PERSONA"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PERSON> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_PERSON"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PERSON> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "healthcare person"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PERSON> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PERSON> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Generic description of persons. Provides a dedicated type to which\nPerson archetypes can be targeted"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PERSON> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Person"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PERSON> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> .
+_:AX5fXX3aXX40XX5fXX3aXA1567 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1567 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#details> .
+_:AX5fXX3aXX40XX5fXX3aXA1567 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#LIST_ADDRESS> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#LIST_ADDRESS> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1590 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#LIST_ADDRESS> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> .
+_:AX5fXX3aXX40XX5fXX3aXA1576 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1577 .
+_:AX5fXX3aXX40XX5fXX3aXA1576 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#target> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_RELATIONSHIP> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#target> <http://www.w3.org/2000/01/rdf-schema#comment> "Target of relationship"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#target> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#target> <http://www.w3.org/2000/01/rdf-schema#label> "destino"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#target> <http://www.w3.org/2000/01/rdf-schema#label> "target"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#target> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#target> <http://www.w3.org/2002/07/owl#inverseOf> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#reverse_relationships> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#type> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA1595 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#type> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+_:AX5fXX3aXX40XX5fXX3aXA1605 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> .
+_:AX5fXX3aXX40XX5fXX3aXA1605 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA1585 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1585 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#purpose> .
+_:AX5fXX3aXX40XX5fXX3aXA1585 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#as_string> <http://www.w3.org/2000/01/rdf-schema#comment> "Identity in the form of a single string"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#as_string> <http://www.w3.org/2000/01/rdf-schema#label> "como cadena"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#as_string> <http://www.w3.org/2000/01/rdf-schema#label> "as string"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#as_string> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#as_string> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> .
+_:AX5fXX3aXX40XX5fXX3aXA1594 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA1594 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CONTACT> .
+_:AX5fXX3aXX40XX5fXX3aXA1594 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CONTACT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Description of a means of contact of a party. \nActual structure is archetyped."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CONTACT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1587 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CONTACT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1586 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CONTACT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1585 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CONTACT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CONTACT> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1568 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1568 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#identities> .
+_:AX5fXX3aXX40XX5fXX3aXA1568 <http://www.w3.org/2002/07/owl#minCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#contacts> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#contacts> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#CONTACT> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#contacts> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#contacts> <http://www.w3.org/2000/01/rdf-schema#label> "contacts"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#contacts> <http://www.w3.org/2000/01/rdf-schema#label> "contactos"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#contacts> <http://www.w3.org/2000/01/rdf-schema#comment> "Contacts for this party"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA1577 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA1578 .
+_:AX5fXX3aXX40XX5fXX3aXA1577 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PERSON> .
+_:AX5fXX3aXX40XX5fXX3aXA1606 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA1607 .
+_:AX5fXX3aXX40XX5fXX3aXA1606 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA1586 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#time_validity> .
+_:AX5fXX3aXX40XX5fXX3aXA1586 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA1586 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Person Name (PN) (data type)"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1593 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> <http://www.w3.org/2000/01/rdf-schema#label> "IDENTIDAD DE LA ENTIDAD"@es .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1592 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA1591 .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "An identity \"owned\" by a PARTY, such as a person name or company \nname, and which is used by the party to identify itself. Actual structure \nis archetyped."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Person Name (data type)"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#PARTY_IDENTITY> <http://www.w3.org/2000/01/rdf-schema#label> "PARTY IDENTITY"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ORGANISATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "ORGANIZATION"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ORGANISATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_HCF"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ORGANISATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "healthcare organisation"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ORGANISATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Generic description of organisations. \nAn organisation is a legally constituted body whose existence \n(in general) outlives the existence of parties considered to be part of it."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ORGANISATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ACTOR> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ORGANISATION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ORGANISATION> <http://www.w3.org/2000/01/rdf-schema#label> "ORGANISATION"@en .
+<http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#ORGANISATION> <http://www.w3.org/2000/01/rdf-schema#label> "ORGANISMO"@es .
Index: ruby/trunk/doc/open_ehr/EHR_EXTRACT_RM.ntriple
===================================================================
--- ruby/trunk/doc/open_ehr/EHR_EXTRACT_RM.ntriple	(revision 291)
+++ ruby/trunk/doc/open_ehr/EHR_EXTRACT_RM.ntriple	(revision 291)
@@ -0,0 +1,329 @@
+_:AX5fXX3aXX40XX5fXX3aXA2141 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2141 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#receiver> .
+_:AX5fXX3aXX40XX5fXX3aXA2141 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE_CONTENT> <http://www.w3.org/2000/01/rdf-schema#label> "MESSAGE_CONTENT"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE_CONTENT> <http://www.w3.org/2000/01/rdf-schema#label> "CONTENIDO DEL MENSAJE"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE_CONTENT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE_CONTENT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> ""^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE_CONTENT> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA2150 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2150 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#is_primary> .
+_:AX5fXX3aXX40XX5fXX3aXA2150 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl> <http://www.w3.org/2002/07/owl#imports> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl> <http://www.w3.org/2002/07/owl#imports> <http://protege.stanford.edu/plugins/owl/protege> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl> <http://www.w3.org/2000/01/rdf-schema#comment> "Ontology based in the openEHR EHR_EXTRACT Reference model\nRevision: 1.3.2\nWritten in owl by Isabel Roman"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA2133 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2133 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#details> .
+_:AX5fXX3aXX40XX5fXX3aXA2133 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#sender_node> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#sender_node> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#sender_node> <http://www.w3.org/2000/01/rdf-schema#label> ""@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#sender_node> <http://www.w3.org/2000/01/rdf-schema#label> "sender node"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#sender_node> <http://www.w3.org/2000/01/rdf-schema#comment> "EHR node from which the message is sent"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#sender_node> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTY_REF> .
+_:AX5fXX3aXX40XX5fXX3aXA2142 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2142 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2142 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#parties> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#follow_links> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#follow_links> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#follow_links> <http://www.w3.org/2000/01/rdf-schema#label> "follow links"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#follow_links> <http://www.w3.org/2000/01/rdf-schema#label> "siguientes enlaces"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#follow_links> <http://www.w3.org/2000/01/rdf-schema#comment> "Degree of link following DV_LINKS emanating from Transactions originally determined to be required for the extract . All transactions at the target end of followed links are also included in the extract.\n0 don\u00B4t follow\n1 follow first degree links\n2 follow second degree links...\nnfollow nth degree links"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#follow_links> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER> .
+_:AX5fXX3aXX40XX5fXX3aXA2151 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2151 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2151 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#original_path> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#terminology> <http://www.w3.org/2000/01/rdf-schema#comment> "List of full terminology identification details for all terms used in transactions appearing in this extract"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#terminology> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#terminology> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_TERMINOLOGY> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#terminology> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> .
+_:AX5fXX3aXX40XX5fXX3aXA2125 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA2125 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_TRANSACTION> .
+_:AX5fXX3aXX40XX5fXX3aXA2125 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#subject_of_care> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#subject_of_care> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTY_REF> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#subject_of_care> <http://www.w3.org/2000/01/rdf-schema#comment> "Id of the subject of care to whom the extract relates."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#subject_of_care> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#subject_of_care> <http://www.w3.org/2000/01/rdf-schema#label> "sujeto de cuidados"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#subject_of_care> <http://www.w3.org/2000/01/rdf-schema#label> "subject of care"@en .
+_:AX5fXX3aXX40XX5fXX3aXA2134 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#details> .
+_:AX5fXX3aXX40XX5fXX3aXA2134 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2134 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_FOLDER> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_FOLDER> <http://www.w3.org/2000/01/rdf-schema#label> "X FOLDER"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_FOLDER> <http://www.w3.org/2000/01/rdf-schema#label> "X CARPETA"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_FOLDER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_FOLDER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2136 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_FOLDER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2135 .
+_:AX5fXX3aXX40XX5fXX3aXA2143 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#senders_reference> .
+_:AX5fXX3aXX40XX5fXX3aXA2143 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2143 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#time_sent> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#time_sent> <http://www.w3.org/2000/01/rdf-schema#label> "time sent"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#time_sent> <http://www.w3.org/2000/01/rdf-schema#label> "instante del envio"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#time_sent> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#time_sent> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#time_sent> <http://www.w3.org/2000/01/rdf-schema#comment> "Date/time the message was sent"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA2152 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_FOLDER> .
+_:AX5fXX3aXX40XX5fXX3aXA2152 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA2152 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2126 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2126 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#ehr_id> .
+_:AX5fXX3aXX40XX5fXX3aXA2126 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2135 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2135 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#folders> .
+_:AX5fXX3aXX40XX5fXX3aXA2135 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_DEMOGRAPHICS> <http://www.w3.org/2000/01/rdf-schema#label> "X DEMOGRAPHICS"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_DEMOGRAPHICS> <http://www.w3.org/2000/01/rdf-schema#label> "X DATOS DEMOGRAFICOS"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_DEMOGRAPHICS> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Container class for all demographic data required in an EHR Extract. \nThe list of Parties must be supplied except in the case when an EHR \nextract is sent within the one environment, and the receiver system has\naccess to the same demographic server as the sender."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_DEMOGRAPHICS> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2134 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_DEMOGRAPHICS> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "The message envelope for an extract, indicating the sender and the\nreceiver details, time and any other details required."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2140 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2146 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Various messages classes"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2143 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2137 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2147 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2144 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2141 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2145 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/2000/01/rdf-schema#label> "MENSAJE"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2148 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2142 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2138 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "MESSAGE"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2139 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> <http://www.w3.org/2000/01/rdf-schema#label> "MESSAGE"@en .
+_:AX5fXX3aXX40XX5fXX3aXA2144 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2144 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#receiver_node> .
+_:AX5fXX3aXX40XX5fXX3aXA2144 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2153 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA2154 .
+_:AX5fXX3aXX40XX5fXX3aXA2153 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#receiver_node> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#receiver_node> <http://www.w3.org/2000/01/rdf-schema#comment> "EHR node receiving the message"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#receiver_node> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#receiver_node> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTY_REF> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#receiver_node> <http://www.w3.org/2000/01/rdf-schema#label> "nodo receptor"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#receiver_node> <http://www.w3.org/2000/01/rdf-schema#label> "receiver node"@en .
+_:AX5fXX3aXX40XX5fXX3aXA2127 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#subject_of_care> .
+_:AX5fXX3aXX40XX5fXX3aXA2127 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2127 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#other_participations> <http://www.w3.org/2000/01/rdf-schema#label> "otros participantes"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#other_participations> <http://www.w3.org/2000/01/rdf-schema#label> "other participations"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#other_participations> <http://www.w3.org/2000/01/rdf-schema#comment> "Any other participations in the extract creation process"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#other_participations> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#other_participations> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#groups> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_ACCESS_CONTROL> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#groups> <http://www.w3.org/2000/01/rdf-schema#label> "grupos"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#groups> <http://www.w3.org/2000/01/rdf-schema#label> "groups"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#groups> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#groups> <http://www.w3.org/2000/01/rdf-schema#comment> "Access groups referred to in this extract"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA2136 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2136 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2136 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#transactions> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_ACCESS_CONTROL> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_ACCESS_CONTROL> <http://www.w3.org/2000/01/rdf-schema#label> "X CONTROL DE ACCESO"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_ACCESS_CONTROL> <http://www.w3.org/2000/01/rdf-schema#label> "X ACCESS CONTROL"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_ACCESS_CONTROL> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "continer class for all access control data required in an EHR Extract. \nThe list of access groups must be supplied except in the case when \nan EHR extract is sent within the one environment, and the receiver \nsystem has access to the same acces control server as the sender."^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA2145 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#signature> .
+_:AX5fXX3aXX40XX5fXX3aXA2145 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2145 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#urgency> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#urgency> <http://www.w3.org/2000/01/rdf-schema#comment> "Urgency with which receiver should deal with message"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#urgency> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_ORDINAL> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#urgency> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#urgency> <http://www.w3.org/2000/01/rdf-schema#label> "urgencia"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#urgency> <http://www.w3.org/2000/01/rdf-schema#label> "urgency"@en .
+_:AX5fXX3aXX40XX5fXX3aXA2154 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_ACCESS_CONTROL> .
+_:AX5fXX3aXX40XX5fXX3aXA2154 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA2155 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#include_multimedia> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#include_multimedia> <http://www.w3.org/2000/01/rdf-schema#label> "include multimedia"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#include_multimedia> <http://www.w3.org/2000/01/rdf-schema#label> "incluye multimedia"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#include_multimedia> <http://www.w3.org/2000/01/rdf-schema#comment> "Indicates hether multimedia content referred to by instances of DV_MULTIMEDIA is included or not"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#include_multimedia> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#include_multimedia> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_TRANSACTION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2151 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2150 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2149 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_TRANSACTION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Container for Transaction in extract. Indicates whether it was part of the \nprimary set and what it\u00B4s original path was"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#originator> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTY_REF> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#originator> <http://www.w3.org/2000/01/rdf-schema#comment> "Health care agent authorising the extract to be created and sent"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#originator> <http://www.w3.org/2000/01/rdf-schema#label> "autorizador"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#originator> <http://www.w3.org/2000/01/rdf-schema#label> "originator"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#originator> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#originator> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#is_primary> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_TRANSACTION> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#is_primary> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#is_primary> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#is_primary> <http://www.w3.org/2000/01/rdf-schema#comment> "True if the transaction in this conatiner was part of the primary set for the extract, i.e. not added due to link-following"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#is_primary> <http://www.w3.org/2000/01/rdf-schema#label> "is primary"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#is_primary> <http://www.w3.org/2000/01/rdf-schema#label> ""@es .
+_:AX5fXX3aXX40XX5fXX3aXA2128 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2128 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#time_created> .
+_:AX5fXX3aXX40XX5fXX3aXA2128 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#initiator> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#initiator> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#initiator> <http://www.w3.org/2000/01/rdf-schema#comment> "Indicates which party- sender or receiver\ncaused the message to be created\nand sent. If the receiver (initiator =\"R\"), htere was an EHR_REQUEST. If the sender (niiator=\"S\"), there is no request, and the extract is being sent unsolicited."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#initiator> <http://www.w3.org/2000/01/rdf-schema#label> "initiator"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#initiator> <http://www.w3.org/2000/01/rdf-schema#label> "iniciador"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#initiator> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+_:AX5fXX3aXX40XX5fXX3aXA2137 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#initiator> .
+_:AX5fXX3aXX40XX5fXX3aXA2137 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2137 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#demographis> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#demographis> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_DEMOGRAPHICS> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#demographis> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#demographis> <http://www.w3.org/2000/01/rdf-schema#comment> "List of snapshots of all demographic entities reference from the transactions in this extract."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#signature> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#signature> <http://www.w3.org/2000/01/rdf-schema#label> "signature"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#signature> <http://www.w3.org/2000/01/rdf-schema#label> "firma"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#signature> <http://www.w3.org/2000/01/rdf-schema#comment> "Signature of message content"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#signature> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#ATTESTATION> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#signature> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA2146 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2146 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2146 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#sender_node> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#content> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE_CONTENT> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#content> <http://www.w3.org/2000/01/rdf-schema#label> "contenido"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#content> <http://www.w3.org/2000/01/rdf-schema#label> "content"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#content> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#content> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#content> <http://www.w3.org/2000/01/rdf-schema#comment> "The content of the message"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA2155 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_DEMOGRAPHICS> .
+_:AX5fXX3aXX40XX5fXX3aXA2155 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA2156 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#sender> <http://www.w3.org/2000/01/rdf-schema#label> "emisor"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#sender> <http://www.w3.org/2000/01/rdf-schema#label> "sender"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#sender> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTY_REF> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#sender> <http://www.w3.org/2000/01/rdf-schema#comment> "Party sending the extract"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#sender> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#sender> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> .
+_:AX5fXX3aXX40XX5fXX3aXA2129 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2129 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#originator> .
+_:AX5fXX3aXX40XX5fXX3aXA2129 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#parties> <http://www.w3.org/2000/01/rdf-schema#label> "partes"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#parties> <http://www.w3.org/2000/01/rdf-schema#label> "parties"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#parties> <http://www.w3.org/2000/01/rdf-schema#comment> "Parties referred to by all PARTY_REF and ATTESTATION instances in this message instance"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#parties> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA2157 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#parties> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#senders_reference> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#senders_reference> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#senders_reference> <http://www.w3.org/2000/01/rdf-schema#label> "referencia en el emisor"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#senders_reference> <http://www.w3.org/2000/01/rdf-schema#label> "senders reference"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#senders_reference> <http://www.w3.org/2000/01/rdf-schema#comment> "Identification of message at sender\u00B4s end"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#senders_reference> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#transaction> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_TRANSACTION> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#transaction> <http://www.w3.org/2000/01/rdf-schema#comment> "The transaction content"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#transaction> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#transaction> <http://www.w3.org/2000/01/rdf-schema#label> "transaccion"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#transaction> <http://www.w3.org/2000/01/rdf-schema#label> "transaction"@en .
+_:AX5fXX3aXX40XX5fXX3aXA2138 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#urgency> .
+_:AX5fXX3aXX40XX5fXX3aXA2138 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2138 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#details> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA2153 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#details> <http://www.w3.org/2000/01/rdf-schema#label> "detalles"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#details> <http://www.w3.org/2000/01/rdf-schema#label> "details"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#details> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#details> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> .
+_:AX5fXX3aXX40XX5fXX3aXA2147 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#time_sent> .
+_:AX5fXX3aXX40XX5fXX3aXA2147 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2147 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2156 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_TERMINOLOGY> .
+_:AX5fXX3aXX40XX5fXX3aXA2156 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA2139 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2139 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#parties> .
+_:AX5fXX3aXX40XX5fXX3aXA2139 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl#SET_PARTY> .
+_:AX5fXX3aXX40XX5fXX3aXA2148 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2148 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#content> .
+_:AX5fXX3aXX40XX5fXX3aXA2148 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#LIST_X_FOLDER> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#LIST_X_FOLDER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#LIST_X_FOLDER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2152 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#transactions> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#transactions> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_FOLDER> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#transactions> <http://www.w3.org/2000/01/rdf-schema#label> "transacciones"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#transactions> <http://www.w3.org/2000/01/rdf-schema#label> "transactions"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#transactions> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#LIST_X_TRANSACTION> .
+_:AX5fXX3aXX40XX5fXX3aXA2157 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA2158 .
+_:AX5fXX3aXX40XX5fXX3aXA2157 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_TERMINOLOGY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> ""^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_TERMINOLOGY> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_TERMINOLOGY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2133 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#access_control> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#access_control> <http://www.w3.org/2000/01/rdf-schema#comment> "List of all access_control settings relevant to the Transactions in this extract"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#access_control> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#access_control> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_ACCESS_CONTROL> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://www.w3.org/2000/01/rdf-schema#label> "EXTRACTO DE HISTORIA CLINICA"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2130 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_EHR_EXTRACT"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2127 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE_CONTENT> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "The outer package for information extracted from an EHR by another \nEHR system"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2126 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2132 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2129 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "EHCR_EXTRACT"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2131 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2128 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "TBD"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> <http://www.w3.org/2000/01/rdf-schema#label> "EHR EXTRACT"@en .
+_:AX5fXX3aXX40XX5fXX3aXA2130 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2130 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#follow_links> .
+_:AX5fXX3aXX40XX5fXX3aXA2130 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2149 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#transaction> .
+_:AX5fXX3aXX40XX5fXX3aXA2149 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSION_TRANSACTION> .
+_:AX5fXX3aXX40XX5fXX3aXA2149 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#receiver> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#receiver> <http://www.w3.org/2000/01/rdf-schema#label> "receiver"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#receiver> <http://www.w3.org/2000/01/rdf-schema#label> ""@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#receiver> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#receiver> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTY_REF> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#receiver> <http://www.w3.org/2000/01/rdf-schema#comment> "Party the extract is sent to"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA2158 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_DEMOGRAPHICS> .
+_:AX5fXX3aXX40XX5fXX3aXA2158 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA2159 .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#folders> <http://www.w3.org/2000/01/rdf-schema#comment> "sub-folders of this folder, including distinct folder trees, which may be separately archetyped"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#folders> <http://www.w3.org/2000/01/rdf-schema#label> "carpetas"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#folders> <http://www.w3.org/2000/01/rdf-schema#label> "folders"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#folders> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#folders> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#LIST_X_FOLDER> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#folders> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_FOLDER> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#original_path> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_EHR_URI> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#original_path> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_TRANSACTION> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#original_path> <http://www.w3.org/2000/01/rdf-schema#label> "camino origen"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#original_path> <http://www.w3.org/2000/01/rdf-schema#label> "original path"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#original_path> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#original_path> <http://www.w3.org/2000/01/rdf-schema#comment> "The original path of the transaction in the cource EHR, used for matching transactions in the receiver\u00B4s EHR"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#time_created> <http://www.w3.org/2000/01/rdf-schema#label> "instante de creacion"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#time_created> <http://www.w3.org/2000/01/rdf-schema#label> "time created"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#time_created> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#time_created> <http://www.w3.org/2000/01/rdf-schema#comment> "Date/time the extract was created"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#time_created> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#time_created> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA2131 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2131 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2131 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#other_participations> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#ehr_id> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#ehr_id> <http://www.w3.org/2000/01/rdf-schema#comment> "Id of the EHR from which the extract was created"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#ehr_id> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#ehr_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#ehr_id> <http://www.w3.org/2000/01/rdf-schema#label> ""@es .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#ehr_id> <http://www.w3.org/2000/01/rdf-schema#label> "ehr id"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#LIST_X_TRANSACTION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#LIST_X_TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#LIST_X_TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2125 .
+_:AX5fXX3aXX40XX5fXX3aXA2140 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#sender> .
+_:AX5fXX3aXX40XX5fXX3aXA2140 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2140 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2159 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#MESSAGE> .
+_:AX5fXX3aXX40XX5fXX3aXA2159 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#directory> <http://www.w3.org/2000/01/rdf-schema#comment> "Directory structure of this extract, in shich transactions are contained"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#directory> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#directory> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#EHR_EXTRACT> .
+<http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#directory> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#X_FOLDER> .
+_:AX5fXX3aXX40XX5fXX3aXA2132 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_EXTRACT_RM.owl#include_multimedia> .
+_:AX5fXX3aXX40XX5fXX3aXA2132 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2132 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
Index: ruby/trunk/doc/open_ehr/EHR_RM.ntriple
===================================================================
--- ruby/trunk/doc/open_ehr/EHR_RM.ntriple	(revision 291)
+++ ruby/trunk/doc/open_ehr/EHR_RM.ntriple	(revision 291)
@@ -0,0 +1,452 @@
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#LIST_CONTENT_ITEM> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#LIST_CONTENT_ITEM> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2814 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#LIST_CONTENT_ITEM> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA2821 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> .
+_:AX5fXX3aXX40XX5fXX3aXA2821 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSION_REPOSITORY_TRANSACTION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSION_REPOSITORY_TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#VERSION_REPOSITORY_T> .
+_:AX5fXX3aXX40XX5fXX3aXA2804 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA2804 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#OBSERVATION> .
+_:AX5fXX3aXX40XX5fXX3aXA2784 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#context> .
+_:AX5fXX3aXX40XX5fXX3aXA2784 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2784 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2813 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#data> .
+_:AX5fXX3aXX40XX5fXX3aXA2813 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2813 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> .
+_:AX5fXX3aXX40XX5fXX3aXA2793 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2793 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#HISTORY_T_STRUCTURE> .
+_:AX5fXX3aXX40XX5fXX3aXA2793 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#data> .
+_:AX5fXX3aXX40XX5fXX3aXA2822 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA2822 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA2823 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#HISTORY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#HISTORY> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA2776 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#action> .
+_:AX5fXX3aXX40XX5fXX3aXA2776 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2776 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#time_created> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_DATE_TIME> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#time_created> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#time_created> <http://www.w3.org/2000/01/rdf-schema#label> "time created"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#time_created> <http://www.w3.org/2000/01/rdf-schema#label> "instante de creacion"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#time_created> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#time_created> <http://www.w3.org/2000/01/rdf-schema#comment> "time of creation of the repository"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CONTENT_ITEM> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CONTENT_ITEM> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+_:AX5fXX3aXX40XX5fXX3aXA2785 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2785 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2785 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#is_persistent> .
+_:AX5fXX3aXX40XX5fXX3aXA2805 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2805 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2805 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#time> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#participations> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#participations> <http://www.w3.org/2000/01/rdf-schema#comment> "Parties involved in the clinical session. These would normally include the physician and often the patient (but not the latter if the clincal session is a pathology test for example)"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#participations> <http://www.w3.org/2000/01/rdf-schema#label> "participations"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#participations> <http://www.w3.org/2000/01/rdf-schema#label> "participantes"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#participations> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LIST_PARTICIPATION> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#participations> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2784 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "Composition class"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "One version in a VERSIONED_TRANSACTION. A transaction is \nconsidered the unit of modification of the record, the unit of \ntransmission in record extracts, and the unit of attestation by \nauthorising clinicians. In this latter sense, it may be considered \nequivalent to a signed document."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2783 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Composition"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#label> "TRANSACCION"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#label> "TRANSACTION"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "CDA DOCUMENT"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2782 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_TRANSACTION_VERSION"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2785 .
+_:AX5fXX3aXX40XX5fXX3aXA2814 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+_:AX5fXX3aXX40XX5fXX3aXA2814 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CONTENT_ITEM> .
+_:AX5fXX3aXX40XX5fXX3aXA2814 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2794 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2794 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#CONTRIBUTION> .
+_:AX5fXX3aXX40XX5fXX3aXA2794 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSIONED_TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#label> "TRANSACCION VERSIONADA"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSIONED_TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#label> "VERSIONED TRANSACTION"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSIONED_TRANSACTION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_VERSIONED_TRANSACTION"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSIONED_TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2811 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSIONED_TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSION_REPOSITORY_TRANSACTION> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSIONED_TRANSACTION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSIONED_TRANSACTION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Version-controlled transaction abstraction, defined\nby inheriting VERSION_REPOSITORY_TRANSACTION"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EVALUATION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EVALUATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Cluster"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EVALUATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#MisUse> "Should not be used for actionable statements such as medication \norders these are represented with the INSTRUCTION type"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EVALUATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Observation"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EVALUATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_SUBJECTIVE_CONTENT"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EVALUATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used for all kinds of statements which evaluate other information, \nsuch as interpretations of observations, diagnoses, differential \ndiagnoses, hypotheses, problem assessments and plans"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EVALUATION> <http://www.w3.org/2000/01/rdf-schema#label> "EVALUATION"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EVALUATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2813 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EVALUATION> <http://www.w3.org/2000/01/rdf-schema#label> "EVALUACION"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EVALUATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2812 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EVALUATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EVALUATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Entry type for evaluation statements"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2808 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> <http://www.w3.org/2000/01/rdf-schema#label> "CLINICAL CONTEXT"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Documents the clinical context of the clinical session (or encounter).\nThe context information recorded here are independent of the \nattributes recorded in the version audit, which document the \n\"system interaction\" context, i.e. the context of a user interacting with \nthe health record system. Clinical sessions include patient contacts, \nand any other business activity, such aas pathology investigations \nwhich take place on behalf of the patient"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2809 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2810 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "Composition"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2805 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2807 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2806 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> <http://www.w3.org/2000/01/rdf-schema#label> "CONTEXTO CLINICO"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "TBD"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA2823 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA2824 .
+_:AX5fXX3aXX40XX5fXX3aXA2823 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#LIST_PARTICIPATION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#context> <http://www.w3.org/2000/01/rdf-schema#comment> "The clinical session context of this\ntransaction, i.e. the contextual attributes \nof the clinical session"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#context> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#context> <http://www.w3.org/2000/01/rdf-schema#label> "context"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#context> <http://www.w3.org/2000/01/rdf-schema#label> "contexto"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#context> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#context> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#folders> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#folders> <http://www.w3.org/2000/01/rdf-schema#comment> "Sub-folders of this FOLDER"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#folders> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#FOLDER> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#folders> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#LIST_FOLDER> .
+_:AX5fXX3aXX40XX5fXX3aXA2777 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2777 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2777 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#profile> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#FOLDER> <http://www.w3.org/2000/01/rdf-schema#label> "FOLDER"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#FOLDER> <http://www.w3.org/2000/01/rdf-schema#label> "CARPETA"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#FOLDER> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "RecordFolder"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#FOLDER> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#FOLDER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#FOLDER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2816 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#FOLDER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2815 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#FOLDER> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "FOLDER"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#FOLDER> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "The concept of a named folder"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#other_participations> <http://www.w3.org/2000/01/rdf-schema#comment> "Other participations at ENTRY level-archetypable"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#other_participations> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#other_participations> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#other_participations> <http://www.w3.org/2000/01/rdf-schema#label> "other participations"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#other_participations> <http://www.w3.org/2000/01/rdf-schema#label> "otras participaciones"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#other_participations> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LIST_PARTICIPATION> .
+_:AX5fXX3aXX40XX5fXX3aXA2806 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2806 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#other_context> .
+_:AX5fXX3aXX40XX5fXX3aXA2806 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2786 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2786 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2786 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#contributions> .
+_:AX5fXX3aXX40XX5fXX3aXA2815 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2815 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2815 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#transactions> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#act_id> <http://www.w3.org/2000/01/rdf-schema#comment> "Optional act identifier used by e.g. a\nworkflow system for an act to\nwhich this ENTRY correspondes in\nsome way. This identifier might\nhave internal syntax and meaning to an external\nprocessor."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#act_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#act_id> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#act_id> <http://www.w3.org/2000/01/rdf-schema#label> "act id"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#act_id> <http://www.w3.org/2000/01/rdf-schema#label> "id del acto"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#act_id> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+_:AX5fXX3aXX40XX5fXX3aXA2795 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2795 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#provider> .
+_:AX5fXX3aXX40XX5fXX3aXA2795 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#protocol> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#protocol> <http://www.w3.org/2000/01/rdf-schema#comment> "Description of how and/or why th\ninformation in this entry was arrived\nat. For OBSERVATIONS, this is a description\nof the method or instrument used.\nFor EVALUATIONS, how the evaluation\nwas arrived at. For INSTRUCTIONS, how\nto execute the instruction. This may\ntake the form of references to guidelines,\nincluding manually folowed and executable;\nknoledge references such as paper in Medline;\nclinical reasons within a largercare process"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#protocol> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#protocol> <http://www.w3.org/2000/01/rdf-schema#label> "protocol"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#protocol> <http://www.w3.org/2000/01/rdf-schema#label> "protocolo"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#protocol> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> .
+_:AX5fXX3aXX40XX5fXX3aXA2824 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSIONED_TRANSACTION> .
+_:AX5fXX3aXX40XX5fXX3aXA2824 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA2778 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2778 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2778 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#state> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#subject> <http://www.w3.org/2000/01/rdf-schema#label> "sujeto"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#subject> <http://www.w3.org/2000/01/rdf-schema#label> "subject"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#subject> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA2819 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#subject> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#feeder_audit> <http://www.w3.org/2000/01/rdf-schema#comment> "Audit trail from non-openEHR system of\noriginal commit of information ofrming the\ncontent of the current item."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#feeder_audit> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#feeder_audit> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#feeder_audit> <http://www.w3.org/2000/01/rdf-schema#label> "auditor origen"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#feeder_audit> <http://www.w3.org/2000/01/rdf-schema#label> "feeder audit"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#feeder_audit> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#VERSION_AUDIT> .
+_:AX5fXX3aXX40XX5fXX3aXA2807 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2807 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#participations> .
+_:AX5fXX3aXX40XX5fXX3aXA2807 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2787 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2787 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2787 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#subject> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSION_REPOSITORY_FOLDER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#VERSION_REPOSITORY_T> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSION_REPOSITORY_FOLDER> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA2816 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2816 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2816 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#folders> .
+_:AX5fXX3aXX40XX5fXX3aXA2796 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2796 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2796 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#protocol> .
+_:AX5fXX3aXX40XX5fXX3aXA2825 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA2826 .
+_:AX5fXX3aXX40XX5fXX3aXA2825 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA2779 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> .
+_:AX5fXX3aXX40XX5fXX3aXA2779 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#data> .
+_:AX5fXX3aXX40XX5fXX3aXA2779 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2808 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2808 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2808 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#practice_setting> .
+_:AX5fXX3aXX40XX5fXX3aXA2788 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTY_REF> .
+_:AX5fXX3aXX40XX5fXX3aXA2788 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#subject> .
+_:AX5fXX3aXX40XX5fXX3aXA2788 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#LIST_FOLDER> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#LIST_FOLDER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2817 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#LIST_FOLDER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#action> <http://www.w3.org/2000/01/rdf-schema#comment> "description of the action to be executed"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#action> <http://www.w3.org/2000/01/rdf-schema#label> "action"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#action> <http://www.w3.org/2000/01/rdf-schema#label> "accion"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#action> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#action> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#action> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> .
+_:AX5fXX3aXX40XX5fXX3aXA2817 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#FOLDER> .
+_:AX5fXX3aXX40XX5fXX3aXA2817 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2817 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#contributions> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#contributions> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#LIST_CONTRIBUTION> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#contributions> <http://www.w3.org/2000/01/rdf-schema#label> "contribuciones"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#contributions> <http://www.w3.org/2000/01/rdf-schema#label> "contributions"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#contributions> <http://www.w3.org/2000/01/rdf-schema#comment> "List of contributions causing changes to this EHR.\nEach contribution contains a list of versions, which may\ninclude paths pointing\nto any number of VERSIONABLE items\nitems of type TRANSACTION and FOLDER_TREE"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#contributions> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> .
+_:AX5fXX3aXX40XX5fXX3aXA2797 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#RELATED_PARTY> .
+_:AX5fXX3aXX40XX5fXX3aXA2797 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2797 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#subject> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#LIST_CONTRIBUTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2794 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#LIST_CONTRIBUTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#LIST_CONTRIBUTION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#health_care_facility> <http://www.w3.org/2000/01/rdf-schema#label> "health care facility"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#health_care_facility> <http://www.w3.org/2000/01/rdf-schema#label> "servicio del sistema sanitario"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#health_care_facility> <http://www.w3.org/2000/01/rdf-schema#comment> "The HCF in the health system which took\npart in the encounter; usually, this\nis where the encounter physically took place, but\nnot in the case of patinet home visits, internet\ncontacts or emergency care."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#health_care_facility> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTY_REF> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#health_care_facility> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#health_care_facility> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ORGANISER> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> "COAS::CompositeObservation"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ORGANISER> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Headed_section"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ORGANISER> <http://www.w3.org/2000/01/rdf-schema#label> "ORGANISER"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ORGANISER> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Created according to archetyped structures for typical headings \nsuch as SOAP, physical examination, but also pathology result heading \nstructures"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ORGANISER> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ORGANISER> <http://www.w3.org/2000/01/rdf-schema#label> "ORGANIZADOR"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ORGANISER> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#MisUse> "Should not be used instead of ENTRY hierarchical structures."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ORGANISER> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Represents a heading in a heading structure, or \"organiser tree\""^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ORGANISER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CONTENT_ITEM> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ORGANISER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2818 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#provider> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#PARTICIPATION> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#provider> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#provider> <http://www.w3.org/2000/01/rdf-schema#comment> "Id of provider of statement in this ENTRY,\nwhich might be:\nthe patient\na patient agent (parent, guardian...)\nthe clinician\na device or software"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#provider> <http://www.w3.org/2000/01/rdf-schema#label> "proveedor"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#provider> <http://www.w3.org/2000/01/rdf-schema#label> "provider"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#provider> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA2826 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> .
+_:AX5fXX3aXX40XX5fXX3aXA2826 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA2827 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGDTF> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Property> .
+_:AX5fXX3aXX40XX5fXX3aXA2789 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#directory> .
+_:AX5fXX3aXX40XX5fXX3aXA2789 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2789 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2809 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2809 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2809 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#location> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#profile> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#profile> <http://www.w3.org/2000/01/rdf-schema#comment> "configuration data mappings from archetyped model of action"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#profile> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#profile> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#profile> <http://www.w3.org/2000/01/rdf-schema#label> "perfil"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#profile> <http://www.w3.org/2000/01/rdf-schema#label> "profile"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSION_TRANSACTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#VERSION_T> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSION_TRANSACTION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA2818 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2818 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#items> .
+_:AX5fXX3aXX40XX5fXX3aXA2818 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2798 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2798 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#act_id> .
+_:AX5fXX3aXX40XX5fXX3aXA2798 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "The Item class is the clossest match for Entry as described here"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2797 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://protege.stanford.edu/plugins/owl/protege#abstract> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://www.w3.org/2000/01/rdf-schema#label> "ENTRADA"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> "COAS::HealthRecordEntry and COAS::ObservationQualifier, a generic\nclass which is used to represent context attributes which are \nconcretely modelled here\n"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://www.w3.org/2002/07/owl#equivalentClass> _:AX5fXX3aXX40XX5fXX3aXA2801 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://www.w3.org/2000/01/rdf-schema#label> "ENTRY"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2800 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGDTF> "COAS::HealthRecordEntry and COAS::ObservationQualifier"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CONTENT_ITEM> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "*_CONTENT"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2795 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2798 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Act"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2799 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "The abstract parent of all ENTRY subtypes. An ENTRY is the root of a \nlogical item of \"hard\" clinical information created in the \"clinical \nstatement\" context. It is also the minimal unit of information any query \nshould return."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2796 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "ClusterOCC"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#data> <http://www.w3.org/2000/01/rdf-schema#label> "datos"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#data> <http://www.w3.org/2000/01/rdf-schema#label> "data"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#data> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA2825 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#data> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#guideline_id> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#OBJECT_REF> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#guideline_id> <http://www.w3.org/2000/01/rdf-schema#comment> "Identifier guideline creating this action if relevant"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#guideline_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#guideline_id> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#guideline_id> <http://www.w3.org/2000/01/rdf-schema#label> "guideline id"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#guideline_id> <http://www.w3.org/2000/01/rdf-schema#label> "identificador de la guia (protocolo)"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#practice_setting> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#practice_setting> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_TEXT> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#practice_setting> <http://www.w3.org/2000/01/rdf-schema#comment> "The practice setting, e.g. \"outpatient facility\", \"hospital unit\", \"general practice\" etc, which may be optionally coded. HL7 PracticeSetting domain may be useful for this."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#practice_setting> <http://www.w3.org/2000/01/rdf-schema#label> "catacteristicas practicas"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#practice_setting> <http://www.w3.org/2000/01/rdf-schema#label> "practice setting"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#practice_setting> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2779 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_INSTRUCTION"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2781 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "Used for any actionable statement such as medication and therapeutic \norders, monitoring, recall and review. Enoug details must be provided \nfor the specification to be excuted by an actor."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2778 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2780 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2777 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://www.w3.org/2000/01/rdf-schema#label> "INSTRUCTION"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2776 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "n/a"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Act subtype Substance_adminsitration, any Act type which is really an \naction specification (cf and Act in the past)"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://www.w3.org/2000/01/rdf-schema#label> "INSTRUCCION"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "The root of an action specification"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#MisUse> "Not to be used for plan items which are only specified in general terms, \ne.g. \"comence bronchodilator\""^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA2827 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA2828 .
+_:AX5fXX3aXX40XX5fXX3aXA2827 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EVALUATION> .
+_:AX5fXX3aXX40XX5fXX3aXA2800 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2800 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2800 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#other_participations> .
+_:AX5fXX3aXX40XX5fXX3aXA2780 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#data> .
+_:AX5fXX3aXX40XX5fXX3aXA2780 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2780 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2819 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA2819 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA2820 .
+_:AX5fXX3aXX40XX5fXX3aXA2799 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2799 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#subject> .
+_:AX5fXX3aXX40XX5fXX3aXA2799 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2828 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#OBSERVATION> .
+_:AX5fXX3aXX40XX5fXX3aXA2828 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#comment> "Ordered list of content items under this organiser, which may include:\nmore ORGANISERs\nENTRYs"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#label> "content items"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#label> "elementos contenidos"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#items> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ORGANISER> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#items> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#LIST_CONTENT_ITEM> .
+_:AX5fXX3aXX40XX5fXX3aXA2801 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA2801 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA2802 .
+_:AX5fXX3aXX40XX5fXX3aXA2781 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2781 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#guideline_id> .
+_:AX5fXX3aXX40XX5fXX3aXA2781 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2788 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "The EHR class is the centre node of the EHR \"repository\" \nfor a subject of care"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> <http://www.w3.org/2000/01/rdf-schema#label> "ehr"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> <http://www.w3.org/2000/01/rdf-schema#label> "ehr"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2789 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> "RecordFolder class"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "EHCR"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2790 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_EHR"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2786 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2787 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2791 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Common_RM.owl#LOCATABLE> .
+_:AX5fXX3aXX40XX5fXX3aXA2810 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2810 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2810 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#health_care_facility> .
+_:AX5fXX3aXX40XX5fXX3aXA2790 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2790 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#all_transactions> .
+_:AX5fXX3aXX40XX5fXX3aXA2790 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#time> <http://www.w3.org/2000/01/rdf-schema#label> "intervalo de la sesion"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#time> <http://www.w3.org/2000/01/rdf-schema#label> "session time"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#time> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#time> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_INTERVAL_DV_DATE_TIME> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#time> <http://www.w3.org/2000/01/rdf-schema#comment> "Start and endd times of the clinical sesion"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#time> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#OBSERVATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2793 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#OBSERVATION> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#OBSERVATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> "G1_OBSERVATION_CONTENT, G1_SUBJECTIVE_CONTENT"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#OBSERVATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> "Entry subtype for all clinical data in the past or present, i.e. which\n(by the time it is recorded) has already ocurred. OBSERVATION data\nis expressed using the class HISTORY_T, which guarantees that\nit is situated in time."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#OBSERVATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> "Cluster"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#OBSERVATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ENTRY> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#OBSERVATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> "OBSERVATION is used for all notional objective (i.e. measured in some\nway) observations of phenomenena as well as all statements or\nopinios (i.e. subjective data) about things in the past.\n"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#OBSERVATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#MisUse> "not used for future statements of any kind, including instructions, \nintentions, plans etc..."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#OBSERVATION> <http://www.w3.org/2000/01/rdf-schema#label> "OBSERVACION"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#OBSERVATION> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> "Observation"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#OBSERVATION> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA2792 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#OBSERVATION> <http://www.w3.org/2000/01/rdf-schema#label> "OBSERVATION"@en .
+<http://trajano.us.es/~isabel/EHR/Common_RM.owl#VERSION_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl> <http://www.w3.org/2002/07/owl#imports> <http://protege.stanford.edu/plugins/owl/protege> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl> <http://www.w3.org/2002/07/owl#imports> <http://trajano.us.es/~isabel/EHR/Demographic_RM.owl> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl> <http://www.w3.org/2000/01/rdf-schema#comment> "Ontology based on the openEHR EHR Reference Model\nRevision: 4.3.2\nWritten in owl by Isabel Roman"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#location> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#location> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#location> <http://www.w3.org/2000/01/rdf-schema#label> "location"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#location> <http://www.w3.org/2000/01/rdf-schema#label> "localizacion"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#location> <http://www.w3.org/2000/01/rdf-schema#comment> "The actual location where the session occurred, e.g. \"microbiol lab 2\", \"home\", \"ward A3\" and so on"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#location> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#other_context> <http://www.w3.org/2000/01/rdf-schema#label> "other context"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#other_context> <http://www.w3.org/2000/01/rdf-schema#label> "otros contextos"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#other_context> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Structures_RM.owl#DATA_STRUCTURE> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#other_context> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#CLINICAL_CONTEXT> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#other_context> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#other_context> <http://www.w3.org/2000/01/rdf-schema#comment> "Other optional context which will be archetyped."^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA2802 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> .
+_:AX5fXX3aXX40XX5fXX3aXA2802 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA2803 .
+_:AX5fXX3aXX40XX5fXX3aXA2782 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#content> .
+_:AX5fXX3aXX40XX5fXX3aXA2782 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2782 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2811 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#is_persistent> .
+_:AX5fXX3aXX40XX5fXX3aXA2811 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2811 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2791 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2791 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#time_created> .
+_:AX5fXX3aXX40XX5fXX3aXA2791 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#is_persistent> <http://www.w3.org/2000/01/rdf-schema#label> "is persistent"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#is_persistent> <http://www.w3.org/2000/01/rdf-schema#label> "es persistente"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#is_persistent> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#is_persistent> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#is_persistent> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA2822 .
+_:AX5fXX3aXX40XX5fXX3aXA2820 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> .
+_:AX5fXX3aXX40XX5fXX3aXA2820 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA2821 .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#content> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#content> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#TRANSACTION> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#content> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#ORGANISER> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#content> <http://www.w3.org/2000/01/rdf-schema#label> "content"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#content> <http://www.w3.org/2000/01/rdf-schema#label> "contenido"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#content> <http://www.w3.org/2000/01/rdf-schema#comment> "The clinical session content\nof this transaction, i.e. the\ninformation generated in the clinical session"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_OBJECT_ID> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA2803 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA2804 .
+_:AX5fXX3aXX40XX5fXX3aXA2803 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EVALUATION> .
+_:AX5fXX3aXX40XX5fXX3aXA2783 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2783 <http://www.w3.org/2002/07/owl#maxCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2783 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#feeder_audit> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#all_transactions> <http://www.w3.org/2000/01/rdf-schema#label> "all transactions"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#all_transactions> <http://www.w3.org/2000/01/rdf-schema#label> "todas las transacciones"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#all_transactions> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_OBJECT_ID> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#all_transactions> <http://www.w3.org/2000/01/rdf-schema#comment> "Master list of all transaction references in this EHR"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#all_transactions> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#all_transactions> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#directory> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#EHR> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#directory> <http://www.w3.org/2000/01/rdf-schema#comment> "Optional directory structure for this EHR"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#directory> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#directory> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#VERSION_REPOSITORY_FOLDER> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#directory> <http://www.w3.org/2000/01/rdf-schema#label> "directory"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#directory> <http://www.w3.org/2000/01/rdf-schema#label> "directorio"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#transactions> <http://www.w3.org/2000/01/rdf-schema#label> "transacciones"@es .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#transactions> <http://www.w3.org/2000/01/rdf-schema#label> "transactions"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#transactions> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#FOLDER> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#transactions> <http://www.w3.org/2000/01/rdf-schema#comment> "The list of references to versioned\ntransactions in this folder. Since more\nthan one folder can\ninclude the same transaction, this\nrelationship is an association."^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#transactions> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#transactions> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_OBJECT_ID> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#state> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#state> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Data_Types_RM.owl#DV_STATE> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#state> <http://www.w3.org/2000/01/rdf-schema#comment> "current state of the action in a state machine description"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#state> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#INSTRUCTION> .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#state> <http://www.w3.org/2000/01/rdf-schema#label> "state"@en .
+<http://trajano.us.es/~isabel/EHR/EHR_RM.owl#state> <http://www.w3.org/2000/01/rdf-schema#label> "estado"@es .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#OBJECT_REF> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA2812 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2812 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#data> .
+_:AX5fXX3aXX40XX5fXX3aXA2812 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA2792 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/EHR_RM.owl#data> .
+_:AX5fXX3aXX40XX5fXX3aXA2792 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA2792 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
Index: ruby/trunk/doc/open_ehr/Support_RM.ntriple
===================================================================
--- ruby/trunk/doc/open_ehr/Support_RM.ntriple	(revision 291)
+++ ruby/trunk/doc/open_ehr/Support_RM.ntriple	(revision 291)
@@ -0,0 +1,226 @@
+_:AX5fXX3aXX40XX5fXX3aXA3403 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#upper_unbounded> .
+_:AX5fXX3aXX40XX5fXX3aXA3403 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3403 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#SET_T> <http://www.w3.org/2000/01/rdf-schema#comment> "Asumed types"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#SET_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CONTAINER_T> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#SET_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#AnnotationProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#OMGHDTF> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER.value> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER.value> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER_64> <http://www.w3.org/2000/01/rdf-schema#comment> "Asumed types"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER_64> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER_64> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3413 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER_64> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#NUMERIC> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER_64> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3412 .
+_:AX5fXX3aXX40XX5fXX3aXA3412 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA3412 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3412 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA3392 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://www.w3.org/2001/XMLSchema#float> .
+_:AX5fXX3aXX40XX5fXX3aXA3392 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3392 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#local_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#local_id> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#CHARACTER> <http://www.w3.org/2000/01/rdf-schema#comment> "Asumed types"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#CHARACTER> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#CHARACTER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Any> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#BAG_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#BAG_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CONTAINER_T> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#COMPARABLE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#COMPARABLE> <http://www.w3.org/2000/01/rdf-schema#comment> "abstract notional parent class of comparable types, which are types which have the '<' defined"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#COMPARABLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Any> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#CODE_SET_INTERFACE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#CODE_SET_INTERFACE> <http://www.w3.org/2000/01/rdf-schema#comment> "Defines an object provindg proxy access to a code_set"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#rm_originator> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#rm_originator> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+_:AX5fXX3aXX40XX5fXX3aXA3404 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA3404 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#lower_unbounded> .
+_:AX5fXX3aXX40XX5fXX3aXA3404 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3393 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA3393 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3393 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA3413 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA3413 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA3413 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#AnnotationProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#HL7> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#namespace> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#namespace> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#TERMINOLOGY_INTERFACE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#TERMINOLOGY_INTERFACE> <http://www.w3.org/2000/01/rdf-schema#comment> "Defines an object providing proxy access to a terminology"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA3405 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3405 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA3405 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#KB_051479_Slot_2> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#NUMERIC> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Any> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#NUMERIC> <http://www.w3.org/2000/01/rdf-schema#comment> "Asumed types"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#NUMERIC> <http://protege.stanford.edu/plugins/owl/protege#abstract> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#NUMERIC> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#NUMERIC> <http://www.w3.org/2002/07/owl#equivalentClass> _:AX5fXX3aXX40XX5fXX3aXA3394 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#DOUBLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3400 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#DOUBLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3399 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#DOUBLE> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#NUMERIC> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#DOUBLE> <http://www.w3.org/2000/01/rdf-schema#comment> "Asumed types"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#DOUBLE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA3414 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA3414 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA3415 .
+_:AX5fXX3aXX40XX5fXX3aXA3394 <http://www.w3.org/2002/07/owl#unionOf> _:AX5fXX3aXX40XX5fXX3aXA3395 .
+_:AX5fXX3aXX40XX5fXX3aXA3394 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTERVAL_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3404 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTERVAL_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Any> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTERVAL_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3403 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTERVAL_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3402 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTERVAL_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3401 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTERVAL_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA3406 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA3406 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3406 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#rm_concept> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#rm_concept> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+_:AX5fXX3aXX40XX5fXX3aXA3415 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CHARACTER> .
+_:AX5fXX3aXX40XX5fXX3aXA3415 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA3416 .
+_:AX5fXX3aXX40XX5fXX3aXA3395 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER> .
+_:AX5fXX3aXX40XX5fXX3aXA3395 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA3396 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#AnnotationProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#CEN> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#AnnotationProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#Use> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#specialisation> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#specialisation> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#ARRAY_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CONTAINER_T> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#ARRAY_T> <http://www.w3.org/2000/01/rdf-schema#comment> "Asumed types"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#ARRAY_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#AnnotationProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#Synapses> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CONTAINER_T> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#upper_unbounded> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#upper_unbounded> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTERVAL_T> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#upper_unbounded> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> .
+_:AX5fXX3aXX40XX5fXX3aXA3407 <http://www.w3.org/2002/07/owl#oneOf> _:AX5fXX3aXX40XX5fXX3aXA3408 .
+_:AX5fXX3aXX40XX5fXX3aXA3407 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#lower> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#lower> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTERVAL_T> .
+_:AX5fXX3aXX40XX5fXX3aXA3416 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> .
+_:AX5fXX3aXX40XX5fXX3aXA3416 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA3417 .
+_:AX5fXX3aXX40XX5fXX3aXA3396 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA3396 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#REAL> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#upper> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#upper> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTERVAL_T> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> <http://www.w3.org/2000/01/rdf-schema#domain> _:AX5fXX3aXX40XX5fXX3aXA3414 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#FALSE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#FALSE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> "false"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl> <http://www.w3.org/2002/07/owl#imports> <http://protege.stanford.edu/plugins/owl/protege> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl> <http://www.w3.org/2000/01/rdf-schema#comment> "Based on Revision 1.1. 11 Mar 2004\nChanges made on Jul 14 2004\nPacket e"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#TRUE> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#TRUE> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> "true"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#NUMERIC> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3406 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3405 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER> <http://www.w3.org/2000/01/rdf-schema#comment> "Asumed types"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA3408 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#FALSE> .
+_:AX5fXX3aXX40XX5fXX3aXA3408 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA3409 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#MisUse> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#MisUse> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#AnnotationProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#MisUse> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#type> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#concept> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#concept> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA3417 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER> .
+_:AX5fXX3aXX40XX5fXX3aXA3417 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA3418 .
+_:AX5fXX3aXX40XX5fXX3aXA3397 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3397 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA3397 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#rm_id> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#rm_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#AnnotationProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#Purpose> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA3409 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:AX5fXX3aXX40XX5fXX3aXA3409 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#TRUE> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#AnnotationProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#ISO18308> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#CONTAINER_T> <http://www.w3.org/2000/01/rdf-schema#comment> "Asumed types"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#CONTAINER_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3398 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#CONTAINER_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Any> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#CONTAINER_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#CONTAINER_T> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#LIST_T> <http://www.w3.org/2000/01/rdf-schema#comment> "Asumed types"^^<http://www.w3.org/2001/XMLSchema#string> .
+_:AX5fXX3aXX40XX5fXX3aXA3418 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#DOUBLE> .
+_:AX5fXX3aXX40XX5fXX3aXA3418 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA3419 .
+_:AX5fXX3aXX40XX5fXX3aXA3398 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3398 <http://www.w3.org/2002/07/owl#minCardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA3398 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#item> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#REAL> <http://www.w3.org/2000/01/rdf-schema#comment> "Asumed types"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#REAL> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#REAL> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#NUMERIC> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#REAL> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3393 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#REAL> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3392 .
+_:AX5fXX3aXX40XX5fXX3aXA3400 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3400 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> .
+_:AX5fXX3aXX40XX5fXX3aXA3400 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://www.w3.org/2001/XMLSchema#float> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3397 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Any> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> <http://www.w3.org/2000/01/rdf-schema#comment> "Asumed types"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#REAL.value> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#REAL.value> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#float> .
+_:AX5fXX3aXX40XX5fXX3aXA3419 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTEGER_64> .
+_:AX5fXX3aXX40XX5fXX3aXA3419 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:AX5fXX3aXX40XX5fXX3aXA3420 .
+_:AX5fXX3aXX40XX5fXX3aXA3399 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3399 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA3399 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#Boolean.value> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#Boolean.value> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#MEASUREMENT_SERVICE_ACCESS> <http://www.w3.org/2000/01/rdf-schema#comment> "Defines an object providing proxy access to a measurment information service"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#MEASUREMENT_SERVICE_ACCESS> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA3401 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#lower> .
+_:AX5fXX3aXX40XX5fXX3aXA3401 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3401 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#lower_unbounded> <http://www.w3.org/2000/01/rdf-schema#domain> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#INTERVAL_T> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#lower_unbounded> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#lower_unbounded> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#TERMINOLOGY_SERVICE_ACCESS> <http://www.w3.org/2000/01/rdf-schema#comment> "Defines an object providing proxy access to a terminology service"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#TERMINOLOGY_SERVICE_ACCESS> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA3410 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3410 <http://www.w3.org/2002/07/owl#allValuesFrom> <http://www.w3.org/2001/XMLSchema#boolean> .
+_:AX5fXX3aXX40XX5fXX3aXA3410 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#AnnotationProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#GEHR> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#String.value> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#String.value> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#version_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#version_id> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#context_id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:AX5fXX3aXX40XX5fXX3aXA3402 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#upper> .
+_:AX5fXX3aXX40XX5fXX3aXA3402 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3402 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA3411 <http://www.w3.org/2002/07/owl#cardinality> "1"^^<http://www.w3.org/2001/XMLSchema#int> .
+_:AX5fXX3aXX40XX5fXX3aXA3411 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:AX5fXX3aXX40XX5fXX3aXA3411 <http://www.w3.org/2002/07/owl#onProperty> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#value> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3411 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> <http://www.w3.org/2000/01/rdf-schema#subClassOf> _:AX5fXX3aXX40XX5fXX3aXA3410 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#Any> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> <http://www.w3.org/2002/07/owl#equivalentClass> _:AX5fXX3aXX40XX5fXX3aXA3407 .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#BOOLEAN> <http://www.w3.org/2000/01/rdf-schema#comment> "Asumed types"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#name> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#name> <http://www.w3.org/2000/01/rdf-schema#range> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#Any> <http://www.w3.org/2000/01/rdf-schema#comment> "All types"^^<http://www.w3.org/2001/XMLSchema#string> .
+<http://trajano.us.es/~isabel/EHR/Support_RM.owl#Any> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+_:AX5fXX3aXX40XX5fXX3aXA3420 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://trajano.us.es/~isabel/EHR/Support_RM.owl#STRING> .
+_:AX5fXX3aXX40XX5fXX3aXA3420 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
Index: ruby/trunk/doc/open_ehr/adl.bnf
===================================================================
--- ruby/trunk/doc/open_ehr/adl.bnf	(revision 291)
+++ ruby/trunk/doc/open_ehr/adl.bnf	(revision 291)
@@ -0,0 +1,65 @@
+%token <STRING> V_IDENTIFIER
+%token <STRING> V_ARCHETYPE_ID
+%token <STRING> V_LOCAL_TERM_CODE_REF
+%token <STRING> V_DADL_TEXT V_CADL_TEXT V_ASSERTION_TEXT
+%token <STRING> V_VERSION_STRING
+
+%token SYM_ARCHETYPE SYM_CONCEPT SYM_SPECIALIZE
+%token SYM_DEFINITION SYM_LANGUAGE
+%token SYM_DESCRIPTION SYM_ONTOLOGY SYM_INVARIANT
+%token SYM_ADL_VERSION SYM_IS_CONTROLLED
+
+%%
+
+input: archetype	
+	| error
+
+archetype: arch_identification 
+	   	arch_specialisation 
+		arch_concept 
+		arch_language 
+		arch_description 
+		arch_definition 
+		arch_invariant
+		arch_ontology
+
+
+arch_identification: arch_head V_ARCHETYPE_ID 
+	| SYM_ARCHETYPE error
+
+arch_head: SYM_ARCHETYPE 
+	| SYM_ARCHETYPE arch_meta_data
+
+arch_meta_data: '(' arch_meta_data_items ')'
+
+arch_meta_data_items: arch_meta_data_item
+	| arch_meta_data_items ';' arch_meta_data_item
+
+arch_meta_data_item: SYM_ADL_VERSION '=' V_VERSION_STRING
+	| SYM_IS_CONTROLLED
+
+arch_specialisation: -- empty is ok
+	| SYM_SPECIALIZE V_ARCHETYPE_ID 
+	| SYM_SPECIALIZE error
+
+arch_concept: SYM_CONCEPT V_LOCAL_TERM_CODE_REF 
+	| SYM_CONCEPT error
+
+arch_language: -- empty is ok for ADL 1.4 tools
+	| SYM_LANGUAGE V_DADL_TEXT
+	| SYM_LANGUAGE error
+
+arch_description: -- no meta-data ok
+	| SYM_DESCRIPTION V_DADL_TEXT 
+	| SYM_DESCRIPTION error
+
+arch_definition:	SYM_DEFINITION V_CADL_TEXT	
+	| SYM_DEFINITION error
+
+arch_invariant: -- no invariant ok
+	| SYM_INVARIANT V_ASSERTION_TEXT
+	| SYM_INVARIANT error
+
+arch_ontology: SYM_ONTOLOGY V_DADL_TEXT
+	| SYM_ONTOLOGY error
+
Index: ruby/trunk/doc/open_ehr/dadl.bnf
===================================================================
--- ruby/trunk/doc/open_ehr/dadl.bnf	(revision 291)
+++ ruby/trunk/doc/open_ehr/dadl.bnf	(revision 291)
@@ -0,0 +1,240 @@
+
+input: attr_vals	-- anonymous object
+	| complex_object_block
+	| error
+
+---------------------- body ---------------------
+
+attr_vals: attr_val
+	| attr_vals attr_val
+	| attr_vals ';' attr_val
+
+
+attr_val: attr_id SYM_EQ object_block -- could be a single or multiple attr
+
+attr_id: V_ATTRIBUTE_IDENTIFIER
+	| V_ATTRIBUTE_IDENTIFIER error
+
+--
+-- An object_block is any block enclosed in <> with optional leading type name
+--
+object_block: complex_object_block
+	| primitive_object_block
+
+complex_object_block: single_attr_object_block
+	| multiple_attr_object_block
+
+--
+-- --------------------------- multiple attr objects -------------------------------
+--
+multiple_attr_object_block: untyped_multiple_attr_object_block 
+	| type_identifier untyped_multiple_attr_object_block
+
+untyped_multiple_attr_object_block: multiple_attr_object_block_head keyed_objects SYM_END_DBLOCK
+
+multiple_attr_object_block_head: SYM_START_DBLOCK
+
+keyed_objects: keyed_object
+	| keyed_objects keyed_object
+
+keyed_object: object_key SYM_EQ object_block
+
+object_key: '[' simple_value ']'
+
+--
+-- --------------------------- single attr objects -------------------------------
+--
+
+single_attr_object_block: untyped_single_attr_object_block
+	| type_identifier untyped_single_attr_object_block
+
+--
+-- An untyped_single_attr_object_block is any block of the form:
+--	<
+--		attr1 = <...>
+--		attr2 = <...>
+--		attrN = <...>
+--	>
+--
+untyped_single_attr_object_block: single_attr_object_complex_head SYM_END_DBLOCK
+	| single_attr_object_complex_head attr_vals SYM_END_DBLOCK
+	;
+
+single_attr_object_complex_head: SYM_START_DBLOCK
+
+
+--
+-- ------------------------- primitive objects ---------------------
+--
+primitive_object_block: untyped_primitive_object_block
+	| type_identifier untyped_primitive_object_block
+
+untyped_primitive_object_block: SYM_START_DBLOCK primitive_object_value SYM_END_DBLOCK
+
+primitive_object_value: simple_value
+	| simple_list_value
+	| simple_interval_value
+	| term_code
+	| term_code_list_value
+
+simple_value: string_value
+	| integer_value
+	| real_value
+	| boolean_value
+	| character_value
+	| date_value
+	| time_value
+	| date_time_value
+	| duration_value
+	| uri_value
+
+simple_list_value: string_list_value
+	| integer_list_value
+	| real_list_value
+	| boolean_list_value
+	| character_list_value
+	| date_list_value
+	| time_list_value
+	| date_time_list_value
+	| duration_list_value
+
+simple_interval_value: integer_interval_value
+	| real_interval_value
+	| date_interval_value
+	| time_interval_value
+	| date_time_interval_value
+	| duration_interval_value
+
+---------------------- BASIC DATA VALUES -----------------------
+
+type_identifier: V_TYPE_IDENTIFIER
+	| V_GENERIC_TYPE_IDENTIFIER
+
+string_value: V_STRING
+
+string_list_value: V_STRING ',' V_STRING
+	| string_list_value ',' V_STRING
+	| V_STRING ',' SYM_LIST_CONTINUE
+
+integer_value: V_INTEGER {
+	| '+' V_INTEGER {
+	| '-' V_INTEGER {
+
+integer_list_value: integer_value ',' integer_value
+	| integer_list_value ',' integer_value
+	| integer_value ',' SYM_LIST_CONTINUE
+
+integer_interval_value: SYM_INTERVAL_DELIM integer_value SYM_ELLIPSIS integer_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT integer_value SYM_ELLIPSIS integer_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM integer_value SYM_ELLIPSIS SYM_LT integer_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT integer_value SYM_ELLIPSIS SYM_LT integer_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_LT integer_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_LE integer_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT integer_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GE integer_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM integer_value SYM_INTERVAL_DELIM
+
+real_value: V_REAL 
+	| '+' V_REAL 
+	| '-' V_REAL 
+
+real_list_value: real_value ',' real_value
+	| real_list_value ',' real_value
+	| real_value ',' SYM_LIST_CONTINUE
+
+real_interval_value: SYM_INTERVAL_DELIM real_value SYM_ELLIPSIS real_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT real_value SYM_ELLIPSIS real_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM real_value SYM_ELLIPSIS SYM_LT real_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT real_value SYM_ELLIPSIS SYM_LT real_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_LT real_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_LE real_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT real_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GE real_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM real_value SYM_INTERVAL_DELIM
+
+boolean_value: SYM_TRUE
+	| SYM_FALSE
+
+boolean_list_value: boolean_value ',' boolean_value
+	| boolean_list_value ',' boolean_value
+	| boolean_value ',' SYM_LIST_CONTINUE
+
+character_value: V_CHARACTER
+
+character_list_value: character_value ',' character_value
+	| character_list_value ',' character_value
+	| character_value ',' SYM_LIST_CONTINUE
+
+date_value: V_ISO8601_EXTENDED_DATE -- in ISO8601 form yyyy-MM-dd
+
+date_list_value: date_value ',' date_value
+	| date_list_value ',' date_value
+	| date_value ',' SYM_LIST_CONTINUE
+
+date_interval_value: SYM_INTERVAL_DELIM date_value SYM_ELLIPSIS date_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT date_value SYM_ELLIPSIS date_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM date_value SYM_ELLIPSIS SYM_LT date_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT date_value SYM_ELLIPSIS SYM_LT date_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_LT date_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_LE date_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT date_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GE date_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM date_value SYM_INTERVAL_DELIM
+
+time_value: V_ISO8601_EXTENDED_TIME
+
+time_list_value: time_value ',' time_value
+	| time_list_value ',' time_value
+	| time_value ',' SYM_LIST_CONTINUE
+
+time_interval_value: SYM_INTERVAL_DELIM time_value SYM_ELLIPSIS time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT time_value SYM_ELLIPSIS time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM time_value SYM_ELLIPSIS SYM_LT time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT time_value SYM_ELLIPSIS SYM_LT time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_LT time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_LE time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GE time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM time_value SYM_INTERVAL_DELIM
+
+date_time_value: V_ISO8601_EXTENDED_DATE_TIME
+
+date_time_list_value: date_time_value ',' date_time_value
+	| date_time_list_value ',' date_time_value
+	| date_time_value ',' SYM_LIST_CONTINUE
+
+date_time_interval_value: SYM_INTERVAL_DELIM date_time_value SYM_ELLIPSIS date_time_value  SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT date_time_value SYM_ELLIPSIS date_time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM date_time_value SYM_ELLIPSIS SYM_LT date_time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT date_time_value SYM_ELLIPSIS SYM_LT date_time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_LT date_time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_LE date_time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT date_time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GE date_time_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM date_time_value SYM_INTERVAL_DELIM
+
+duration_value: V_ISO8601_DURATION
+
+duration_list_value: duration_value ',' duration_value
+	| duration_list_value ',' duration_value
+	| duration_value ',' SYM_LIST_CONTINUE
+
+duration_interval_value: SYM_INTERVAL_DELIM duration_value SYM_ELLIPSIS duration_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT duration_value SYM_ELLIPSIS duration_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM duration_value SYM_ELLIPSIS SYM_LT duration_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT duration_value SYM_ELLIPSIS SYM_LT duration_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_LT duration_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_LE duration_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GT duration_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM SYM_GE duration_value SYM_INTERVAL_DELIM
+	| SYM_INTERVAL_DELIM duration_value SYM_INTERVAL_DELIM
+
+term_code: V_QUALIFIED_TERM_CODE_REF
+	| ERR_V_QUALIFIED_TERM_CODE_REF
+
+term_code_list_value: term_code ',' term_code
+	| term_code_list_value ',' term_code
+	| term_code ',' SYM_LIST_CONTINUE
+
+uri_value: V_URI
+
Index: ruby/trunk/doc/open_ehr/openehr_terminology.csv
===================================================================
--- ruby/trunk/doc/open_ehr/openehr_terminology.csv	(revision 291)
+++ ruby/trunk/doc/open_ehr/openehr_terminology.csv	(revision 291)
@@ -0,0 +1,192 @@
+1,0,openehr,en,subject relationship,self,The party is the subject of EHR ,HL7_RoleCode:: CEN: 
+2,3,openehr,en,subject relationship,foetus,The party is a foetus ,HL7: CEN: 
+3,6,openehr,en,subject relationship,donor,The party is a donor of organs or other body products to the EHR subject. ,HL7: CEN: 
+4,7,openehr,en,subject relationship,maternal grandmother,Relationship of maternal grandmother to subject of EHR ,HL7: CEN: 
+5,8,openehr,en,subject relationship,maternal grandfather,Relationship of maternal grandfather to subject of EHR ,HL7: CEN: 
+6,9,openehr,en,subject relationship,father,The party is the father of the subject of the EHR ,HL7: CEN: 
+7,10,openehr,en,subject relationship,mother,The party is the mother of the subject of EHR ,HL7: CEN: 
+8,22,openehr,en,subject relationship,partner/spouse,The husband or wife or life partner of the subject of EHR ,HL7: CEN: 
+9,23,openehr,en,subject relationship,brother,Relationship of brother to subject of EHR ,HL7: CEN: 
+10,24,openehr,en,subject relationship,sister,Relationship of sister to subject of EHR ,HL7: CEN: 
+11,25,openehr,en,subject relationship,step or half brother,Relationship of step or half brother to subject of EHR ,HL7: CEN: 
+12,26,openehr,en,subject relationship,step or half sister,Relationship of step or half sister to subject of EHR ,HL7: CEN: 
+13,27,openehr,en,subject relationship,sibling,Relationship of sibling to subject of EHR ,HL7: CEN: 
+14,28,openehr,en,subject relationship,child,Relationship of child to subject of EHR ,HL7: CEN: 
+15,29,openehr,en,subject relationship,daughter,Relationship of daughter to subject of EHR ,HL7: CEN: 
+16,31,openehr,en,subject relationship,son,Relationship of son to subject of EHR ,HL7: CEN: 
+17,36,openehr,en,subject relationship,paternal grandfather,Relationship of aternal grandfather to subject of EHR ,HL7: CEN: 
+18,37,openehr,en,subject relationship,paternal grandmother,Relationship of paternal grandmother to subject of EHR ,HL7: CEN: 
+19,38,openehr,en,subject relationship,maternal uncle,Relationship of maternal uncle to subject of EHR ,HL7: CEN: 
+20,39,openehr,en,subject relationship,maternal aunt,Relationship of maternal aunt to subject of EHR ,HL7: CEN: 
+21,40,openehr,en,subject relationship,paternal uncle,Relationship of paternal uncle to subject of EHR ,HL7: CEN: 
+22,41,openehr,en,subject relationship,paternal aunt,Relationship of paternal aunt to subject of EHR ,HL7: CEN: 
+23,45,openehr,en,event math function,minimum,Value of the interval-event is the minimum value of the discrete events which the interval-event summarises. ,
+24,121,openehr,en,property,Energy ,,
+25,122,openehr,en,property,Length ,,
+26,123,openehr,en,property,Loudness ,,
+27,124,openehr,en,property,Mass ,,
+28,125,openehr,en,property,Pressure ,,
+29,126,openehr,en,property,Flow rate  volume ,,
+30,127,openehr,en,property,Temperature ,,
+31,128,openehr,en,property,Time ,,
+32,129,openehr,en,property,Volume ,,
+33,130,openehr,en,property,Work ,,
+34,144,openehr,en,event math function,maximum,Value of the interval-event is the maximum value of the discrete events which the interval-event summarises. ,
+35,146,openehr,en,event math function,mean,Value of the interval-event is the average value of the discrete events which the interval-event summarises. ,
+36,147,openehr,en,event math function,change,Value of the interval-event is the net change over the period which the interval-event summarises. ,
+37,148,openehr,en,event math function,total,Value of the interval-event is the sum of the values of the discrete events which the interval-event summarises (typically differential flow measurements  e.g. blood loss). ,
+38,149,openehr,en,event math function,variation,Value of the interval-event is difference between the point maximum and point minimum over the period  in other words the value band into which all sample during a period fit. Useful for specifying a maximal allowed variation in a datum to still be considered the same (approximate) value. ,
+39,166,openehr,en,Instruction transitions,cancel,Cancel a planned Instruction  before it is booked or started. ,
+40,189,openehr,en,subject relationship,neonate,Relationship of neonate to subject of EHR ,HL7: CEN: 
+41,193,openehr,en,participation mode,not specified,Mode of participation is not specified; use only for legacy data. ,
+42,194,openehr,en,participation mode,asynchronous audiovisual; recorded video,Audio-visual communication that is not live ,
+43,195,openehr,en,participation mode,live audiovisual; videoconference; videophone,Any audio-visual communication in real time ,
+44,196,openehr,en,participation mode,recorded video,Recorded video or video mail ,
+45,197,openehr,en,participation mode,videophone,Live audio-visual communication ,
+46,198,openehr,en,participation mode,videoconferencing,Live audio-visual communication over videoconferencing or other similar equipment. ,HL7_ParticipationMode::16548 
+47,199,openehr,en,participation mode,asynchronous audio-only; dictated; voice mail,Audio-only communication that is not live. ,
+48,200,openehr,en,participation mode,dictated,Non-interactive audio-only information recorded on some medium  such as cassette tape. ,HL7_ParticipationMode::16547 
+49,201,openehr,en,participation mode,voice-mail,Audio messaging system ,
+50,202,openehr,en,participation mode,live audio-only; telephone; internet phone; teleconference,Any live audio-only communication. ,HL7_ParticipationMode::V16544 (includes live) 
+51,203,openehr,en,participation mode,teleconference,Live verbal communication over teleconference ,HL7_ParticipationMode::16546 
+52,204,openehr,en,participation mode,internet telephone,Live verbal communication over a the internet. ,HL7_ParticipationMode::16546 
+53,205,openehr,en,participation mode,telephone,Live verbal communication over a telephone. ,HL7_ParticipationMode::16546 
+54,206,openehr,en,participation mode,asynchronous text; email; fax; letter; handwritten note; SMS message,Any text-only communication including email  written text  SMS message etc. ,HL7_ParticipationMode::V16549 
+55,207,openehr,en,participation mode,email,Written communication by email. ,HL7_ParticipationMode::16553 [ inlcude HL7_ParticipationMode::16554 (electronic data)] 
+56,208,openehr,en,participation mode,facsimile/telefax,Non-interactive written communication using a fax machine. ,HL7_ParticipationMode::16552 
+57,209,openehr,en,participation mode,SMS message,Messages sent via mobile/cell phone ,
+58,210,openehr,en,participation mode,printed/typed letter,Written communication by typewritten document. ,HL7_ParticipationMode::16551 
+59,211,openehr,en,participation mode,handwritten note,Written communication by handwritten document. ,HL7_ParticipationMode::16550 
+60,212,openehr,en,participation mode,live text-only; internet chat; SMS chat; interactive written note,Any live text-only communication ,
+61,213,openehr,en,participation mode,internet chat,Live text-only communication over the internet ,
+62,214,openehr,en,participation mode,SMS chat,Live text-only chat over mobile/cell phone ,
+63,215,openehr,en,participation mode,interactive written note,Live text-only communication using written notes ,HL7_ParticipationMode::16550 
+64,216,openehr,en,participation mode,face-to-face communication,Face to face communications between parties in the same room. ,HL7_ParticipationMode::16545 
+65,217,openehr,en,participation mode,signing (face-toface),Live face-to-face communication using a recognised sign language. ,
+66,218,openehr,en,participation mode,signing over video,Live video communication using sign language. ,
+67,219,openehr,en,participation mode,physically present,Participation by actions  where the participant is physically present. ,HL7_ParticipationMode::16556 
+68,220,openehr,en,participation mode,physically remote,Participation by actions  where the participant is not physically present  and the actions are transmitted by electronic means. ,HL7_ParticipationMode::16557 
+69,221,openehr,en,participation mode,translated text,Non-interactive written communication requiring translation ,HL7_ParticipationMode::V16549 
+70,222,openehr,en,participation mode,interpreted audio-only,Any live audio-only communication using an interpreter. ,HL7_ParticipationMode::V16544 (includes live) 
+71,223,openehr,en,participation mode,interpreted face-toface communication,Face to face communications between parties in the same room with an interpreter ,HL7_ParticipationMode::16545 
+72,224,openehr,en,participation mode,interpreted video communication,Live audio-visual communication involving an interpreter ,
+73,240,openehr,en,attestation reason,signed,The attested information has been signed by its signatory. ,HL7_ParticipationSignature::10284 
+74,245,openehr,en,Instruction transitions,active,The instruction is currently being carried out ,
+75,249,openehr,en,audit change type,creation,Change type was creation. ,HL7_CDA: CEN: 
+76,250,openehr,en,audit change type,amendment,Change type was amendment i.e. correction of the previous version. ,HL7_CDA: CEN: 
+77,251,openehr,en,audit change type,modification,Change type was update of the previous version. ,HL7_CDA: CEN: 
+78,252,openehr,en,audit change type,synthesis,Change type was creation synthesis of data due to conversion process  typically a data importer. ,HL7_CDA: CEN: 
+79,253,openehr,en,null flavours,unknown,A possible value exists but is not provided. ,HL7_NullFlavor::V10612 
+80,254,openehr,en,subject relationship,parent,Relationship of parent to subject of EHR ,HL7: CEN: 
+81,255,openehr,en,subject relationship,biological mother,Relationship of biological mother to subject of EHR ,HL7: CEN: 
+82,256,openehr,en,subject relationship,biological father,Relationship of biological father to subject of EHR ,HL7: CEN: 
+83,257,openehr,en,subject relationship,cousin,Relationship of cousin to subject of EHR ,HL7: CEN: 
+84,258,openehr,en,subject relationship,adoptive mother,Relationship of adoptive mother to subject of EHR ,HL7: CEN: 
+85,259,openehr,en,subject relationship,adoptive father,Relationship of adoptive father to subject of EHR ,HL7: CEN: 
+86,260,openehr,en,subject relationship,adopted son,Relationship of adopted son to subject of EHR ,HL7: CEN: 
+87,261,openehr,en,subject relationship,adopted daughter,Relationship of adopted daughter to subject of EHR ,HL7: CEN: 
+88,262,openehr,en,subject relationship,step mother,Relationship of step mother to subject of EHR ,HL7: CEN: 
+89,263,openehr,en,subject relationship,step father,Relationship of step father to subject of EHR ,HL7: CEN: 
+90,264,openehr,en,subject relationship,guardian,Relationship of guardianto subject of EHR ,HL7: CEN: 
+91,265,openehr,en,subject relationship,cohabitee,Lives with the subject of EHR ,HL7: CEN: 
+92,267,openehr,en,event math function,mode,Value of the interval-event is the modal (most common) value of the discrete events which the interval-event summarises. ,
+93,268,openehr,en,event math function,median,Value of the interval-event is the median (centre value in sorted series) value of the discrete events which the interval-event summarises. ,
+94,271,openehr,en,null flavours,no information,No information provided; nothing can be inferred as to the reason why  including whether there might be a possible applicable value or not. ,HL7_NullFlavor::V10610 
+95,272,openehr,en,null flavours,masked,The value has not been provided due to privacy settings. ,HL7_NullFlavor::17932 
+96,273,openehr,en,null flavours,not applicable,No valid value exists for this data item. ,HL7_NullFlavor::10611 
+97,334,openehr,en,property,Electrical current ,,
+98,335,openehr,en,property,Area ,,
+99,336,openehr,en,property,Specific volume ,,
+100,337,openehr,en,property,Specific surface ,,
+101,338,openehr,en,property,Velocity ,,
+102,339,openehr,en,property,Acceleration ,,
+103,340,openehr,en,property,Momentum ,,
+104,341,openehr,en,property,Velocity  angular ,,
+105,342,openehr,en,property,Acceleration  angular ,,
+106,343,openehr,en,property,Momentum  angular ,,
+107,344,openehr,en,property,Moment inertia  area ,,
+108,345,openehr,en,property,Moment inertia  mass ,,
+109,346,openehr,en,property,Momentum  flow rate ,,
+110,347,openehr,en,property,Flow rate  mass ,,
+111,348,openehr,en,property,Flux  mass ,,
+112,349,openehr,en,property,Mass per area ,,
+113,350,openehr,en,property,Density ,,
+114,351,openehr,en,property,Flow rate  mass/volume ,,
+115,352,openehr,en,property,Flow rate  mass/force ,,
+116,355,openehr,en,property,Force ,,
+117,356,openehr,en,property,Surface tension ,,
+118,357,openehr,en,property,Force  body ,,
+119,360,openehr,en,property,Velocity  dynamic ,,
+120,361,openehr,en,property,Velocity  kinematic ,,
+121,362,openehr,en,property,Diffusion coefficient ,,
+122,365,openehr,en,property,Energy per area ,,
+123,366,openehr,en,property,Energy density ,,
+124,367,openehr,en,property,Power  linear ,,
+125,368,openehr,en,property,Power flux ,,
+126,369,openehr,en,property,Power density ,,
+127,370,openehr,en,property,Specific energy ,,
+128,371,openehr,en,property,Specific heat  gas content ,,
+129,373,openehr,en,property,Heat transfer coefficient ,,
+130,374,openehr,en,property,Voltage  electrical ,,
+131,375,openehr,en,property,Resistance ,,
+132,377,openehr,en,property,Electrical field strength ,,
+133,378,openehr,en,property,Magnetic flux ,,
+134,379,openehr,en,property,Inductance ,,
+135,380,openehr,en,property,Qualified real ,This is a number with an arithmetic qualification (which may be no units  103 etc) allowing integers to be expressed as reals raised to a nominated power  or for real numbers alone. ,
+136,381,openehr,en,property,Amount (Eq) ,,
+137,382,openehr,en,property,Frequency ,,
+138,384,openehr,en,property,Amount (mole) ,,
+139,385,openehr,en,property,Mass (IU) ,,
+140,431,openehr,en,composition category,persistent,This Composition contains information which remains valid for (more or less) the life of the EHR. Typical persistent Compositions include family history” problem list” current medications”  and vaccination history”. The usual change type when creating a new version of a persistent composition is modification”. ,
+141,433,openehr,en,composition category,event,This composition pertains to a point in time or brief episode. Change types may usually be modificationor  ,
+142,497,openehr,en,property,Angle  plane ,,
+143,498,openehr,en,property,Electrical charge ,,
+144,499,openehr,en,property,Light intensity ,,
+145,500,openehr,en,property,Angle  solid ,,
+146,501,openehr,en,property,Electrical capacitance ,,
+147,502,openehr,en,property,Electrical conductance ,,
+148,503,openehr,en,property,Magnetic flux density ,,
+149,504,openehr,en,property,Luminous flux ,,
+150,505,openehr,en,property,Illuminance ,,
+151,506,openehr,en,property,Radioactivity ,,
+152,507,openehr,en,property,Proportion ,,
+153,508,openehr,en,property,Energy dose ,,
+154,521,openehr,en,event math function,decrease,This is a change - as in 147 - except indicates that the value  while a positive number  is actually a negative change. Typically used for negative changes like weight loss: 5kgor blood pressure postural drop of 10 mm[Hg]”. ,
+155,522,openehr,en,event math function,increase,This is also a change  but is only a positive change and cannot be expressed as a negative. This can be used for positive changes like Weight gain: 2.5kg”. ,
+156,523,openehr,en,version lifecycle state,deleted,Item has been logically deleted. ,
+157,523,openehr,en,audit change type,deleted,Change type was logical deletion. ,HL7_CDA: CEN: 
+158,524,openehr,en,Instruction transitions,initial,The instruction is recorded but no state is determined ,
+159,526,openehr,en,Instruction transitions,planned,The instruction is planned ,
+160,527,openehr,en,Instruction transitions,postponed,The instruction has been posponed - it had not be commenced ,
+161,528,openehr,en,Instruction transitions,cancelled,The instruction has been cancelled - it had not been commenced and will not commence in the future ,
+162,529,openehr,en,Instruction transitions,scheduled,The instruction has been scheduled to be carried out at a particular time ,
+163,530,openehr,en,Instruction transitions,suspended,The instruction is suspended  it has been activated but is not active at present. It could be active again in the future. ,
+164,531,openehr,en,Instruction transitions,aborted,The instruction is aborted  it has been activated but ceased before it has been completed and will not be restarted in the future. ,
+165,532,openehr,en,version lifecycle state,complete,Item is complete at time of committal. ,
+166,532,openehr,en,Instruction transitions,completed,The instruction has been completed ,
+167,533,openehr,en,Instruction transitions,expired,The instruction has expired  timed out - and assumed to have either been cancelled  aborted or completed ,
+168,535,openehr,en,Instruction transitions,initiate,Initiate the planning of the Instruction. ,
+169,536,openehr,en,Instruction transitions,plan step,Any step in the planned state of the Instruction  e.g. signing  approving. ,
+170,537,openehr,en,Instruction transitions,postpone,Put a planned Instruction on hold  while still in the planning stage  i.e. before it has been booked or started. ,
+171,538,openehr,en,Instruction transitions,restore,Restore a previously postponed Instruction back to the planned state. ,
+172,539,openehr,en,Instruction transitions,schedule,Where booking is required  book the activities in the Instruction in a scheduling system. ,
+173,540,openehr,en,Instruction transitions,start,Start executing the activities in the Instruction  e.g. commence drug administration course. ,
+174,540,openehr,en,Instruction transitions,notify aborted,Occurs when notification of Instruction having been aborted is received after expiry. ,
+175,541,openehr,en,Instruction transitions,do,Do the activities in the Instruction in one go  taking the state machine directly from the planned to the completed state. Used for Instructions whose activities are instantaneous in the practical sense  e.g. a single vaccination  single tablet. ,
+176,542,openehr,en,Instruction transitions,postponed step,Any step in the postponed state of the Instruction. ,
+177,543,openehr,en,Instruction transitions,active step,Any step taken during the active phase of the Instruction  e.g. nurse’s observation  adjustment of dose. ,
+178,544,openehr,en,Instruction transitions,suspend,Suspend the activities from the active phase  with the possibility of later resumption. ,
+179,545,openehr,en,Instruction transitions,suspended step,Any step taken in the suspended state  e.g. nurse’s observation  pathology test to determine if the Instruction should be resumed  remain suspended or aborted. ,
+180,546,openehr,en,Instruction transitions,resume,Resume the Instruction from the suspended state. ,
+181,547,openehr,en,Instruction transitions,abort,Abort the Instruction  i.e. stop its execution permanently after it has started. ,
+182,548,openehr,en,Instruction transitions,finish,Finish performing the Instruction  taking it to the completed state. ,
+183,549,openehr,en,Instruction transitions,time out,Time out has occurred  taking the Instruction from some pervious state into the expired state. ,
+184,551,openehr,en,Instruction transitions,notify completed,Occurs when notification of Instruction having been completed is received after expiry. ,
+185,552,openehr,en,Instruction transitions,notify cancelled,Occurs when notification of Instruction having been cancelled is received after expiry. ,
+186,553,openehr,en,version lifecycle state,incomplete,Item is incomplete at time of committal  in the view of the author. Further editing or review needed before its status will be set to finished”. ,
+187,640,openehr,en,event math function,actual,Value of the datum was the value indicated during the entire time of the event  i.e. it is not an averaged or other computed value. ,
+188,648,openehr,en,attestation reason,witnessed,This attested information has been witnessed by the signatory. ,
+189,666,openehr,en,audit change type,attestation,Existing data were attested. ,HL7_CDA: CEN: 
+190,669,openehr,en,term mapping purpose,public health,Public health related term mapping. ,
+191,670,openehr,en,term mapping purpose,reimbursement,Reimbrusement / billing related term mapping. ,
+192,671,openehr,en,term mapping purpose,research study,Term mapping.for research study ,
Index: ruby/trunk/doc/openehr_terminology.csv
===================================================================
--- ruby/trunk/doc/openehr_terminology.csv	(revision 291)
+++ ruby/trunk/doc/openehr_terminology.csv	(revision 291)
@@ -0,0 +1,192 @@
+1,0,openehr,en,subject relationship,self,The party is the subject of EHR ,HL7_RoleCode:: CEN: 
+2,3,openehr,en,subject relationship,foetus,The party is a foetus ,HL7: CEN: 
+3,6,openehr,en,subject relationship,donor,The party is a donor of organs or other body products to the EHR subject. ,HL7: CEN: 
+4,7,openehr,en,subject relationship,maternal grandmother,Relationship of maternal grandmother to subject of EHR ,HL7: CEN: 
+5,8,openehr,en,subject relationship,maternal grandfather,Relationship of maternal grandfather to subject of EHR ,HL7: CEN: 
+6,9,openehr,en,subject relationship,father,The party is the father of the subject of the EHR ,HL7: CEN: 
+7,10,openehr,en,subject relationship,mother,The party is the mother of the subject of EHR ,HL7: CEN: 
+8,22,openehr,en,subject relationship,partner/spouse,The husband or wife or life partner of the subject of EHR ,HL7: CEN: 
+9,23,openehr,en,subject relationship,brother,Relationship of brother to subject of EHR ,HL7: CEN: 
+10,24,openehr,en,subject relationship,sister,Relationship of sister to subject of EHR ,HL7: CEN: 
+11,25,openehr,en,subject relationship,step or half brother,Relationship of step or half brother to subject of EHR ,HL7: CEN: 
+12,26,openehr,en,subject relationship,step or half sister,Relationship of step or half sister to subject of EHR ,HL7: CEN: 
+13,27,openehr,en,subject relationship,sibling,Relationship of sibling to subject of EHR ,HL7: CEN: 
+14,28,openehr,en,subject relationship,child,Relationship of child to subject of EHR ,HL7: CEN: 
+15,29,openehr,en,subject relationship,daughter,Relationship of daughter to subject of EHR ,HL7: CEN: 
+16,31,openehr,en,subject relationship,son,Relationship of son to subject of EHR ,HL7: CEN: 
+17,36,openehr,en,subject relationship,paternal grandfather,Relationship of aternal grandfather to subject of EHR ,HL7: CEN: 
+18,37,openehr,en,subject relationship,paternal grandmother,Relationship of paternal grandmother to subject of EHR ,HL7: CEN: 
+19,38,openehr,en,subject relationship,maternal uncle,Relationship of maternal uncle to subject of EHR ,HL7: CEN: 
+20,39,openehr,en,subject relationship,maternal aunt,Relationship of maternal aunt to subject of EHR ,HL7: CEN: 
+21,40,openehr,en,subject relationship,paternal uncle,Relationship of paternal uncle to subject of EHR ,HL7: CEN: 
+22,41,openehr,en,subject relationship,paternal aunt,Relationship of paternal aunt to subject of EHR ,HL7: CEN: 
+23,45,openehr,en,event math function,minimum,Value of the interval-event is the minimum value of the discrete events which the interval-event summarises. ,
+24,121,openehr,en,property,Energy ,,
+25,122,openehr,en,property,Length ,,
+26,123,openehr,en,property,Loudness ,,
+27,124,openehr,en,property,Mass ,,
+28,125,openehr,en,property,Pressure ,,
+29,126,openehr,en,property,Flow rate  volume ,,
+30,127,openehr,en,property,Temperature ,,
+31,128,openehr,en,property,Time ,,
+32,129,openehr,en,property,Volume ,,
+33,130,openehr,en,property,Work ,,
+34,144,openehr,en,event math function,maximum,Value of the interval-event is the maximum value of the discrete events which the interval-event summarises. ,
+35,146,openehr,en,event math function,mean,Value of the interval-event is the average value of the discrete events which the interval-event summarises. ,
+36,147,openehr,en,event math function,change,Value of the interval-event is the net change over the period which the interval-event summarises. ,
+37,148,openehr,en,event math function,total,Value of the interval-event is the sum of the values of the discrete events which the interval-event summarises (typically differential flow measurements  e.g. blood loss). ,
+38,149,openehr,en,event math function,variation,Value of the interval-event is difference between the point maximum and point minimum over the period  in other words the value band into which all sample during a period fit. Useful for specifying a maximal allowed variation in a datum to still be considered the same (approximate) value. ,
+39,166,openehr,en,Instruction transitions,cancel,Cancel a planned Instruction  before it is booked or started. ,
+40,189,openehr,en,subject relationship,neonate,Relationship of neonate to subject of EHR ,HL7: CEN: 
+41,193,openehr,en,participation mode,not specified,Mode of participation is not specified; use only for legacy data. ,
+42,194,openehr,en,participation mode,asynchronous audiovisual; recorded video,Audio-visual communication that is not live ,
+43,195,openehr,en,participation mode,live audiovisual; videoconference; videophone,Any audio-visual communication in real time ,
+44,196,openehr,en,participation mode,recorded video,Recorded video or video mail ,
+45,197,openehr,en,participation mode,videophone,Live audio-visual communication ,
+46,198,openehr,en,participation mode,videoconferencing,Live audio-visual communication over videoconferencing or other similar equipment. ,HL7_ParticipationMode::16548 
+47,199,openehr,en,participation mode,asynchronous audio-only; dictated; voice mail,Audio-only communication that is not live. ,
+48,200,openehr,en,participation mode,dictated,Non-interactive audio-only information recorded on some medium  such as cassette tape. ,HL7_ParticipationMode::16547 
+49,201,openehr,en,participation mode,voice-mail,Audio messaging system ,
+50,202,openehr,en,participation mode,live audio-only; telephone; internet phone; teleconference,Any live audio-only communication. ,HL7_ParticipationMode::V16544 (includes live) 
+51,203,openehr,en,participation mode,teleconference,Live verbal communication over teleconference ,HL7_ParticipationMode::16546 
+52,204,openehr,en,participation mode,internet telephone,Live verbal communication over a the internet. ,HL7_ParticipationMode::16546 
+53,205,openehr,en,participation mode,telephone,Live verbal communication over a telephone. ,HL7_ParticipationMode::16546 
+54,206,openehr,en,participation mode,asynchronous text; email; fax; letter; handwritten note; SMS message,Any text-only communication including email  written text  SMS message etc. ,HL7_ParticipationMode::V16549 
+55,207,openehr,en,participation mode,email,Written communication by email. ,HL7_ParticipationMode::16553 [ inlcude HL7_ParticipationMode::16554 (electronic data)] 
+56,208,openehr,en,participation mode,facsimile/telefax,Non-interactive written communication using a fax machine. ,HL7_ParticipationMode::16552 
+57,209,openehr,en,participation mode,SMS message,Messages sent via mobile/cell phone ,
+58,210,openehr,en,participation mode,printed/typed letter,Written communication by typewritten document. ,HL7_ParticipationMode::16551 
+59,211,openehr,en,participation mode,handwritten note,Written communication by handwritten document. ,HL7_ParticipationMode::16550 
+60,212,openehr,en,participation mode,live text-only; internet chat; SMS chat; interactive written note,Any live text-only communication ,
+61,213,openehr,en,participation mode,internet chat,Live text-only communication over the internet ,
+62,214,openehr,en,participation mode,SMS chat,Live text-only chat over mobile/cell phone ,
+63,215,openehr,en,participation mode,interactive written note,Live text-only communication using written notes ,HL7_ParticipationMode::16550 
+64,216,openehr,en,participation mode,face-to-face communication,Face to face communications between parties in the same room. ,HL7_ParticipationMode::16545 
+65,217,openehr,en,participation mode,signing (face-toface),Live face-to-face communication using a recognised sign language. ,
+66,218,openehr,en,participation mode,signing over video,Live video communication using sign language. ,
+67,219,openehr,en,participation mode,physically present,Participation by actions  where the participant is physically present. ,HL7_ParticipationMode::16556 
+68,220,openehr,en,participation mode,physically remote,Participation by actions  where the participant is not physically present  and the actions are transmitted by electronic means. ,HL7_ParticipationMode::16557 
+69,221,openehr,en,participation mode,translated text,Non-interactive written communication requiring translation ,HL7_ParticipationMode::V16549 
+70,222,openehr,en,participation mode,interpreted audio-only,Any live audio-only communication using an interpreter. ,HL7_ParticipationMode::V16544 (includes live) 
+71,223,openehr,en,participation mode,interpreted face-toface communication,Face to face communications between parties in the same room with an interpreter ,HL7_ParticipationMode::16545 
+72,224,openehr,en,participation mode,interpreted video communication,Live audio-visual communication involving an interpreter ,
+73,240,openehr,en,attestation reason,signed,The attested information has been signed by its signatory. ,HL7_ParticipationSignature::10284 
+74,245,openehr,en,Instruction transitions,active,The instruction is currently being carried out ,
+75,249,openehr,en,audit change type,creation,Change type was creation. ,HL7_CDA: CEN: 
+76,250,openehr,en,audit change type,amendment,Change type was amendment i.e. correction of the previous version. ,HL7_CDA: CEN: 
+77,251,openehr,en,audit change type,modification,Change type was update of the previous version. ,HL7_CDA: CEN: 
+78,252,openehr,en,audit change type,synthesis,Change type was creation synthesis of data due to conversion process  typically a data importer. ,HL7_CDA: CEN: 
+79,253,openehr,en,null flavours,unknown,A possible value exists but is not provided. ,HL7_NullFlavor::V10612 
+80,254,openehr,en,subject relationship,parent,Relationship of parent to subject of EHR ,HL7: CEN: 
+81,255,openehr,en,subject relationship,biological mother,Relationship of biological mother to subject of EHR ,HL7: CEN: 
+82,256,openehr,en,subject relationship,biological father,Relationship of biological father to subject of EHR ,HL7: CEN: 
+83,257,openehr,en,subject relationship,cousin,Relationship of cousin to subject of EHR ,HL7: CEN: 
+84,258,openehr,en,subject relationship,adoptive mother,Relationship of adoptive mother to subject of EHR ,HL7: CEN: 
+85,259,openehr,en,subject relationship,adoptive father,Relationship of adoptive father to subject of EHR ,HL7: CEN: 
+86,260,openehr,en,subject relationship,adopted son,Relationship of adopted son to subject of EHR ,HL7: CEN: 
+87,261,openehr,en,subject relationship,adopted daughter,Relationship of adopted daughter to subject of EHR ,HL7: CEN: 
+88,262,openehr,en,subject relationship,step mother,Relationship of step mother to subject of EHR ,HL7: CEN: 
+89,263,openehr,en,subject relationship,step father,Relationship of step father to subject of EHR ,HL7: CEN: 
+90,264,openehr,en,subject relationship,guardian,Relationship of guardianto subject of EHR ,HL7: CEN: 
+91,265,openehr,en,subject relationship,cohabitee,Lives with the subject of EHR ,HL7: CEN: 
+92,267,openehr,en,event math function,mode,Value of the interval-event is the modal (most common) value of the discrete events which the interval-event summarises. ,
+93,268,openehr,en,event math function,median,Value of the interval-event is the median (centre value in sorted series) value of the discrete events which the interval-event summarises. ,
+94,271,openehr,en,null flavours,no information,No information provided; nothing can be inferred as to the reason why  including whether there might be a possible applicable value or not. ,HL7_NullFlavor::V10610 
+95,272,openehr,en,null flavours,masked,The value has not been provided due to privacy settings. ,HL7_NullFlavor::17932 
+96,273,openehr,en,null flavours,not applicable,No valid value exists for this data item. ,HL7_NullFlavor::10611 
+97,334,openehr,en,property,Electrical current ,,
+98,335,openehr,en,property,Area ,,
+99,336,openehr,en,property,Specific volume ,,
+100,337,openehr,en,property,Specific surface ,,
+101,338,openehr,en,property,Velocity ,,
+102,339,openehr,en,property,Acceleration ,,
+103,340,openehr,en,property,Momentum ,,
+104,341,openehr,en,property,Velocity  angular ,,
+105,342,openehr,en,property,Acceleration  angular ,,
+106,343,openehr,en,property,Momentum  angular ,,
+107,344,openehr,en,property,Moment inertia  area ,,
+108,345,openehr,en,property,Moment inertia  mass ,,
+109,346,openehr,en,property,Momentum  flow rate ,,
+110,347,openehr,en,property,Flow rate  mass ,,
+111,348,openehr,en,property,Flux  mass ,,
+112,349,openehr,en,property,Mass per area ,,
+113,350,openehr,en,property,Density ,,
+114,351,openehr,en,property,Flow rate  mass/volume ,,
+115,352,openehr,en,property,Flow rate  mass/force ,,
+116,355,openehr,en,property,Force ,,
+117,356,openehr,en,property,Surface tension ,,
+118,357,openehr,en,property,Force  body ,,
+119,360,openehr,en,property,Velocity  dynamic ,,
+120,361,openehr,en,property,Velocity  kinematic ,,
+121,362,openehr,en,property,Diffusion coefficient ,,
+122,365,openehr,en,property,Energy per area ,,
+123,366,openehr,en,property,Energy density ,,
+124,367,openehr,en,property,Power  linear ,,
+125,368,openehr,en,property,Power flux ,,
+126,369,openehr,en,property,Power density ,,
+127,370,openehr,en,property,Specific energy ,,
+128,371,openehr,en,property,Specific heat  gas content ,,
+129,373,openehr,en,property,Heat transfer coefficient ,,
+130,374,openehr,en,property,Voltage  electrical ,,
+131,375,openehr,en,property,Resistance ,,
+132,377,openehr,en,property,Electrical field strength ,,
+133,378,openehr,en,property,Magnetic flux ,,
+134,379,openehr,en,property,Inductance ,,
+135,380,openehr,en,property,Qualified real ,This is a number with an arithmetic qualification (which may be no units  103 etc) allowing integers to be expressed as reals raised to a nominated power  or for real numbers alone. ,
+136,381,openehr,en,property,Amount (Eq) ,,
+137,382,openehr,en,property,Frequency ,,
+138,384,openehr,en,property,Amount (mole) ,,
+139,385,openehr,en,property,Mass (IU) ,,
+140,431,openehr,en,composition category,persistent,This Composition contains information which remains valid for (more or less) the life of the EHR. Typical persistent Compositions include family history” problem list” current medications”  and vaccination history”. The usual change type when creating a new version of a persistent composition is modification”. ,
+141,433,openehr,en,composition category,event,This composition pertains to a point in time or brief episode. Change types may usually be modificationor  ,
+142,497,openehr,en,property,Angle  plane ,,
+143,498,openehr,en,property,Electrical charge ,,
+144,499,openehr,en,property,Light intensity ,,
+145,500,openehr,en,property,Angle  solid ,,
+146,501,openehr,en,property,Electrical capacitance ,,
+147,502,openehr,en,property,Electrical conductance ,,
+148,503,openehr,en,property,Magnetic flux density ,,
+149,504,openehr,en,property,Luminous flux ,,
+150,505,openehr,en,property,Illuminance ,,
+151,506,openehr,en,property,Radioactivity ,,
+152,507,openehr,en,property,Proportion ,,
+153,508,openehr,en,property,Energy dose ,,
+154,521,openehr,en,event math function,decrease,This is a change - as in 147 - except indicates that the value  while a positive number  is actually a negative change. Typically used for negative changes like weight loss: 5kgor blood pressure postural drop of 10 mm[Hg]”. ,
+155,522,openehr,en,event math function,increase,This is also a change  but is only a positive change and cannot be expressed as a negative. This can be used for positive changes like Weight gain: 2.5kg”. ,
+156,523,openehr,en,version lifecycle state,deleted,Item has been logically deleted. ,
+157,523,openehr,en,audit change type,deleted,Change type was logical deletion. ,HL7_CDA: CEN: 
+158,524,openehr,en,Instruction transitions,initial,The instruction is recorded but no state is determined ,
+159,526,openehr,en,Instruction transitions,planned,The instruction is planned ,
+160,527,openehr,en,Instruction transitions,postponed,The instruction has been posponed - it had not be commenced ,
+161,528,openehr,en,Instruction transitions,cancelled,The instruction has been cancelled - it had not been commenced and will not commence in the future ,
+162,529,openehr,en,Instruction transitions,scheduled,The instruction has been scheduled to be carried out at a particular time ,
+163,530,openehr,en,Instruction transitions,suspended,The instruction is suspended  it has been activated but is not active at present. It could be active again in the future. ,
+164,531,openehr,en,Instruction transitions,aborted,The instruction is aborted  it has been activated but ceased before it has been completed and will not be restarted in the future. ,
+165,532,openehr,en,version lifecycle state,complete,Item is complete at time of committal. ,
+166,532,openehr,en,Instruction transitions,completed,The instruction has been completed ,
+167,533,openehr,en,Instruction transitions,expired,The instruction has expired  timed out - and assumed to have either been cancelled  aborted or completed ,
+168,535,openehr,en,Instruction transitions,initiate,Initiate the planning of the Instruction. ,
+169,536,openehr,en,Instruction transitions,plan step,Any step in the planned state of the Instruction  e.g. signing  approving. ,
+170,537,openehr,en,Instruction transitions,postpone,Put a planned Instruction on hold  while still in the planning stage  i.e. before it has been booked or started. ,
+171,538,openehr,en,Instruction transitions,restore,Restore a previously postponed Instruction back to the planned state. ,
+172,539,openehr,en,Instruction transitions,schedule,Where booking is required  book the activities in the Instruction in a scheduling system. ,
+173,540,openehr,en,Instruction transitions,start,Start executing the activities in the Instruction  e.g. commence drug administration course. ,
+174,540,openehr,en,Instruction transitions,notify aborted,Occurs when notification of Instruction having been aborted is received after expiry. ,
+175,541,openehr,en,Instruction transitions,do,Do the activities in the Instruction in one go  taking the state machine directly from the planned to the completed state. Used for Instructions whose activities are instantaneous in the practical sense  e.g. a single vaccination  single tablet. ,
+176,542,openehr,en,Instruction transitions,postponed step,Any step in the postponed state of the Instruction. ,
+177,543,openehr,en,Instruction transitions,active step,Any step taken during the active phase of the Instruction  e.g. nurse’s observation  adjustment of dose. ,
+178,544,openehr,en,Instruction transitions,suspend,Suspend the activities from the active phase  with the possibility of later resumption. ,
+179,545,openehr,en,Instruction transitions,suspended step,Any step taken in the suspended state  e.g. nurse’s observation  pathology test to determine if the Instruction should be resumed  remain suspended or aborted. ,
+180,546,openehr,en,Instruction transitions,resume,Resume the Instruction from the suspended state. ,
+181,547,openehr,en,Instruction transitions,abort,Abort the Instruction  i.e. stop its execution permanently after it has started. ,
+182,548,openehr,en,Instruction transitions,finish,Finish performing the Instruction  taking it to the completed state. ,
+183,549,openehr,en,Instruction transitions,time out,Time out has occurred  taking the Instruction from some pervious state into the expired state. ,
+184,551,openehr,en,Instruction transitions,notify completed,Occurs when notification of Instruction having been completed is received after expiry. ,
+185,552,openehr,en,Instruction transitions,notify cancelled,Occurs when notification of Instruction having been cancelled is received after expiry. ,
+186,553,openehr,en,version lifecycle state,incomplete,Item is incomplete at time of committal  in the view of the author. Further editing or review needed before its status will be set to finished”. ,
+187,640,openehr,en,event math function,actual,Value of the datum was the value indicated during the entire time of the event  i.e. it is not an averaged or other computed value. ,
+188,648,openehr,en,attestation reason,witnessed,This attested information has been witnessed by the signatory. ,
+189,666,openehr,en,audit change type,attestation,Existing data were attested. ,HL7_CDA: CEN: 
+190,669,openehr,en,term mapping purpose,public health,Public health related term mapping. ,
+191,670,openehr,en,term mapping purpose,reimbursement,Reimbrusement / billing related term mapping. ,
+192,671,openehr,en,term mapping purpose,research study,Term mapping.for research study ,
Index: ruby/trunk/lib/adl_parser/lib/adl_parser.rb
===================================================================
--- ruby/trunk/lib/adl_parser/lib/adl_parser.rb	(revision 290)
+++ ruby/trunk/lib/adl_parser/lib/adl_parser.rb	(revision 291)
@@ -11,5 +11,5 @@
 require 'adl_exception.rb'
 
-module OpenEHR
+module OpenEhr
 
   if $DEBUG
Index: ruby/trunk/lib/adl_parser/lib/parser.rb
===================================================================
--- ruby/trunk/lib/adl_parser/lib/parser.rb	(revision 290)
+++ ruby/trunk/lib/adl_parser/lib/parser.rb	(revision 291)
@@ -20,5 +20,5 @@
 
 
-module OpenEHR
+module OpenEhr
   module ADL
     class Parser < Racc::Parser
Index: ruby/trunk/lib/adl_parser/lib/shell.rb
===================================================================
--- ruby/trunk/lib/adl_parser/lib/shell.rb	(revision 290)
+++ ruby/trunk/lib/adl_parser/lib/shell.rb	(revision 291)
@@ -3,5 +3,5 @@
 require 'stringio'
 
-module OpenEHR
+module OpenEhr
   module Application
     class Shell
Index: ruby/trunk/lib/adl_parser/lib/validator.rb
===================================================================
--- ruby/trunk/lib/adl_parser/lib/validator.rb	(revision 290)
+++ ruby/trunk/lib/adl_parser/lib/validator.rb	(revision 291)
@@ -3,5 +3,5 @@
 
 
-module OpenEHR
+module OpenEhr
   module ADL
 
Index: ruby/trunk/lib/models/am.rb
===================================================================
--- ruby/trunk/lib/models/am.rb	(revision 290)
+++ 	(revision )
@@ -1,57 +1,0 @@
-#! /usr/bin/env ruby
-# component: openEHR Ruby reference implementation
-# description: This file includes Archetype 
-#      class that contains Archetype values.
-#      Main concept is based on Java ref impl.
-#      We should make refactoring to suit for Ruby way.
-# keywords: archetype
-# author: Akimichi TATSUKAWA, Shinji KOBAYASHI
-# support: openEHR.jp
-# license: openEHR open source license
-#
-
-$:.unshift File.join(File.dirname(__FILE__))
-require 'rm/common/resource.rb'
-#require 'rm/support/terminology/openehr_code_set_identifier.rb'
-module OpenEHR
-  module AM
-    module Archetype
-      autoload :ARCHETYPE, "am/archetype/archetype.rb"
-      autoload :Constraint_Model, "am/archetype/constraint_model/archetype_constraint.rb"
-      autoload :Ontology, "am/archetype/ontology.rb"
-      
-      module Archetype_Description
-        autoload :ARCHETYPE_DESCRIPTION, "am/archetype/archetype_description/archetype_description.rb"
-      end
-
-      module Constraint_Model
-        autoload :ARCHETYPE_CONSTRAINT, "am/archetype/constraint_model/archetype_constraint.rb"
-        autoload :ARCHETYPE_SLOT, "am/archetype/constraint_model/archetype_constraint.rb"
-        autoload :Primitive, "am/archetype/constraint_model/primitive.rb"
-      end #end of ConstraintModel
-
-      module Assertion
-        autoload :ASSERTION, "am/archetype/constraint_model/assertion.rb"
-      end
-
-    end # of Archetype
-
-    module OpenEHR_Profile
-      module Data_Types
-        module Basic
-          autoload :C_DV_STATE, "am/openehr_profile/data_types/basic.rb"
-        end
-
-        module Text
-          autoload :C_CODE_PHASE, "am/openehr_profile/data_types/text.rb"
-        end
-
-        module Quantity
-          autoload :C_DV_QUANTITY, "am/openehr_profile/data_types/quantity.rb"
-          autoload :C_DV_ORDINAL, "am/openehr_profile/data_types/quantity.rb"
-          autoload :C_QUANTITY_ITEM, "am/openehr_profile/data_types/quantity.rb"
-        end
-      end
-    end
-  end # of AM
-end # of OpenEHR
Index: ruby/trunk/lib/models/assumed_library_types.rb
===================================================================
--- ruby/trunk/lib/models/assumed_library_types.rb	(revision 290)
+++ 	(revision )
@@ -1,563 +1,0 @@
-# This module is related to the ticket #36
-require 'date'
-require 'time'
-
-module OpenEHR
-  module Assumed_Library_Types
-    class Any < Object
-      
-    end # of Any
-
-    class Interval < Any
-      attr_reader :lower, :upper
-      
-      def initialize(lower, upper, 
-                     lower_included = nil, upper_included = nil)
-        check_lower_upper(lower, upper)
-        self.lower_included = lower_included
-        self.upper_included = upper_included
-      end
-
-      def lower=(lower)
-        check_lower_upper(lower, @upper)
-      end
-
-      def upper=(upper)
-        check_lower_upper(@lower, upper)
-      end
-
-      def lower_included?
-        return @lower_included
-      end
-
-      def lower_included=(lower_included)
-        if (lower == nil) && (lower_included != nil)
-          raise ArgumentError, "lower is not set"
-        end
-        @lower_included = lower_included
-      end
-      
-      def lower_unbounded?
-        return @lower.nil?
-      end
-
-      def upper_included?
-        return @upper_included
-      end
-
-      def upper_included=(upper_included)
-        if (upper == nil) && (upper_included != nil)
-          raise ArgumentError, "upper is not set"
-        end
-        @upper_included = upper_included
-      end
-
-      def upper_unbounded?
-        return @upper.nil?
-      end
-
-      def has?(value)
-        if ((@lower < value) && (value < @upper) ||
-            (@lower_included == true) && (@lower == value) ||
-            (@upper_included == true) && (@upper == value))
-          true
-        else
-          false
-        end
-      end
-
-      private
-
-      def check_lower_upper(lower, upper)
-        if (lower == nil) && (upper == nil)
-          raise ArgumentError, "Either lower or upper must be assigned"
-        end
-        unless (lower.nil? || upper.nil?)
-          if lower > upper
-            raise ArgumentError, "Upper must be larger than lower."
-          end
-        end
-        @lower = lower
-        @upper = upper
-      end
-    end # end of Interval
-  
-    class TIME_DEFINITIONS < Any
-      DAYS_IN_LEAP_YEAR = 366
-      DAYS_IN_WEEK = 7
-      DAYS_IN_YEAR = 365
-      HOURS_IN_DAY = 24
-      MAX_DAYS_IN_MONTH = 31
-      MAX_DAYS_IN_YEAR = 366
-      MINUTES_IN_HOUR = 60
-      MONTH_IN_YEAR = 12
-      NOMINAL_DAYS_IN_MONTH = 30.42
-      NOMINAL_DAYS_IN_YEAR = 365.24
-      SECONDS_IN_MINUTE = 60
-
-      def self.valid_year?(year)
-        year >= 0
-      end
-
-      def self.valid_day?(y, m, d)
-        Date.valid_date?(y,m,d) and valid_year? y
-      end
-
-      def self.valid_hour?(h,m = nil, s = nil)
-        if !m.nil? and !valid_minute?(m)
-          return false
-        end
-        if !s.nil? and (!m.nil? and !valid_second?(s))
-          return false
-        end
-        (h >= 0 and h < HOURS_IN_DAY) or (h == HOURS_IN_DAY and m == 0 and s == 0)
-      end
-      def self.valid_minute?(mi)
-        mi >= 0 and mi < MINUTES_IN_HOUR
-      end
-      def self.valid_second?(s)
-        s >= 0 and s < SECONDS_IN_MINUTE
-      end
-      def self.valid_month?(mo)
-        mo >= 1 and mo <= MONTH_IN_YEAR
-      end
-    end # end of TIME_DEFINITIONS
-
-    module ISO8601_DATE_MODULE
-      attr_reader :year, :month, :day
-      def year=(year)
-        raise ArgumentError, "Year is not valid" unless ISO8601_DATE.valid_year?(year)
-        @year = year
-      end
-      def month=(month)
-        raise ArgumentError, "Month is not valid" unless month.nil? or ISO8601_DATE.valid_month?(month)
-        @month = month
-      end
-
-      def day=(day)
-        raise ArgumentError, "Day is not valid" unless day.nil? or ISO8601_DATE.valid_day?(@year, @month, day)
-        @day = day
-      end
-
-      def as_string
-        if (!@year.nil? and !@month.nil? and !@day.nil?)
-          Date.new(@year, @month, @day).to_s
-        elsif (!@year.nil? and !@month.nil? and @day.nil?)
-          Date.new(@year, @month).to_s[0,7]
-        elsif (!@year.nil? and @month.nil? and @day.nil?)
-          Date.new(@year).to_s[0,4]
-        end          
-      end
-
-      def month_unknown?
-        @month.nil?
-      end
-
-      def day_unknown?
-        @day.nil?
-      end
-
-      def is_extended?
-        true
-      end
-
-      def is_partial?
-        month_unknown? or day_unknown?
-      end
-
-      protected
-      def leapyear?(year)
-        case
-        when year % 400 == 0: true
-        when year % 100 == 0: false
-        else year % 4 == 0
-        end
-      end
-    end
-
-    class ISO8601_DATE < TIME_DEFINITIONS
-      include ISO8601_DATE_MODULE
-      def initialize(string)
-        /(\d{4})(?:-(\d{2})(?:-(\d{2})?)?)?/ =~ string
-        if $1.nil?
-          raise ArgumentError, 'data invalid'
-        else
-          self.year = $1.to_i
-        end
-        if $2.nil?
-          self.month = nil
-        else
-          self.month = $2.to_i
-        end
-        if $3.nil?
-          self.day = nil
-        else
-          self.day = $3.to_i
-        end
-      end
-
-      def self.valid_iso8601_date?(string)
-        begin
-          Date.parse(string)
-        rescue
-          return false
-        end
-        true
-      end
-    end # end of ISO8601_DATE
-
-    module ISO8601_TIME_MODULE
-      attr_reader :hour, :minute, :second, :fractional_second, :timezone
-
-      def hour=(hour)
-        raise ArgumentError, "hour is not valid" if !ISO8601_TIME.valid_hour?(hour, @minute, @second)
-        @hour = hour
-      end
-
-      def minute_unknown?
-        @minute.nil?
-      end
-
-      def minute=(minute)
-        raise ArgumentError, "minute is not valid" if !minute.nil? and !ISO8601_TIME.valid_minute?(minute)
-        @minute = minute
-      end
-
-      def second_unknown?
-        @second.nil?
-      end
-
-      def second=(second)
-        raise ArgumentError, "minute not defined" if @minute.nil? and !second.nil?
-        raise ArgumentError, "second is not valid" if !second.nil? and !ISO8601_TIME.valid_second?(second)
-        @second = second
-      end
-
-      def fractional_second=(fractional_second)
-        raise ArgumentError, "minute not defined" if minute_unknown? and !fractional_second.nil?
-        raise ArgumentError, "second not defined" if second_unknown? and !fractional_second.nil?
-        raise ArgumentError, "fractional second should be lower than 1.0" if !fractional_second.nil? and fractional_second >= 1.0
-        @fractional_second = fractional_second
-      end
-
-      def has_fractional_second?
-        if @fractional_second.nil?
-          return false
-        else
-          return true
-        end
-      end
-
-      def timezone=(timezone)
-        unless timezone.nil? or timezone == 'Z'
-          if /[+-](\d{2}):?(\d{2})/ =~ timezone
-            @timezone = timezone
-          else
-            raise ArgumentError, "timezone invalid"
-          end
-        else
-          @timezone = nil
-        end
-      end
-
-      def is_decimal_sign_comma?
-        false
-      end
-
-      def is_extended?
-        true
-      end
-
-      def is_partial?
-        second_unknown? or minute_unknown?
-      end
-
-      def as_string
-        s = sprintf("%02d", @hour)
-        if !@minute.nil?
-          s += ":" + sprintf("%02d",@minute)
-          if !@second.nil?
-            s += ":" + sprintf("%02d", @second)
-            if !@fractional_second.nil?
-              s += "." + @fractional_second.to_s[2..-1]
-              if !@timezone.nil?
-                s += @timezone
-              end
-            end
-          end
-        end
-        return s
-      end
-    end
-
-    class ISO8601_TIME < TIME_DEFINITIONS
-      include ISO8601_TIME_MODULE
-      def initialize(string)
-        /(\d{2}):?(\d{2})?(:?)(\d{2})?((\.|,)(\d+))?(Z|([+-](\d{2}):?(\d{2})))?/ =~ string
-        if $2.nil?
-          self.minute = nil
-        else
-          self.minute = $2.to_i
-        end
-        if $4.nil?
-          self.second = nil
-        else
-          self.second = $4.to_i
-        end
-        if $1.nil?
-          raise ArgumentError, 'data invalid'
-        else
-          self.hour = $1.to_i
-        end
-        if $7.nil?
-          self.fractional_second = nil
-        else
-          self.fractional_second = ("0." + $7).to_f
-        end
-        if $8.nil?
-          self.timezone = nil
-        else
-          self.timezone = $8
-        end
-      end
-      def self.valid_iso8601_time?(s)
-        if /(\d{2}):?(\d{2})?(:?)(\d{2})?((\.|,)(\d+))?(Z|([+-](\d{2}):?(\d{2})))?/ =~ s
-# ISO 8601 regular expression by H. Yuki
-#  http://digit.que.ne.jp/work/wiki.cgi?Perl%E3%83%A1%E3%83%A2%2FW3C%E5%BD%A2%E5%BC%8F%E3%81%AE%E6%97%A5%E6%99%82%E3%81%AE%E8%A7%A3%E6%9E%90
-# (\d{4})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d))?)?(Z|([+-]\d{2}):(\d{2}))?)?)?)?
-          hh = $1; mm = $2; ss = $4; msec = $7; tz = $8
-          if hh.to_i == HOURS_IN_DAY and (mm.nil? or mm.to_i == 0) and (ss.nil? or ss.to_i == 0) and (msec.nil? or msec.to_i==0)
-            return true
-          end
-          if hh.nil? or (hh.to_i < 0 or hh.to_i >= HOURS_IN_DAY)
-            return false
-          end
-          if !mm.nil? 
-            if !self.valid_minute?(mm.to_i)
-              return false
-            end
-          end
-          if !ss.nil? 
-            if !self.valid_second?(ss.to_i)
-              return false
-            end
-          end
-          if !tz.nil? and tz != "Z"
-            if /[+-](\d{2}):?(\d{2})/ =~ tz
-              h = $1; m = $2
-              if h.to_i < 0 or h.to_i >= HOURS_IN_DAY
-                return false
-              end
-              if m.to_i < 0 or m.to_i >= MINUTES_IN_HOUR
-                return false
-              end
-            else
-              return false
-            end
-          end
-          return true
-        else
-          return false
-        end
-      end
-    end # end of ISO8601_TIME
-
-    module ISO8601_DATE_TIME_MODULE
-      include ISO8601_DATE_MODULE, ISO8601_TIME_MODULE
-      def as_string
-        if (!@year.nil? and !@month.nil? and !@day.nil?)
-          s = Date.new(@year, @month, @day).to_s
-        elsif (!@year.nil? and !@month.nil? and @day.nil?)
-          return Date.new(@year, @month).to_s[0,7]
-        elsif (!@year.nil? and @month.nil? and @day.nil?)
-          return Date.new(@year).to_s[0,4]
-        end
-        unless hour.nil?
-          s += sprintf("T%02d", @hour)
-          unless @minute.nil?
-            s += ":" + sprintf("%02d",@minute)
-            unless @second.nil?
-              s += ":" + sprintf("%02d", @second)
-              unless @fractional_second.nil?
-                s += "." + @fractional_second.to_s[2..-1]
-                unless @timezone.nil?
-                  s += @timezone
-                end
-              end
-            end
-          end
-        end
-        return s
-      end
-    end
-
-    class ISO8601_DATE_TIME < ISO8601_DATE
-      include ISO8601_DATE_TIME_MODULE
-      def initialize(string)
-        /(\d{4})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d+))?)?(Z|([+-]\d{2}):?(\d{2}))?)?)?)?/ =~ string
-        if $1.empty?
-          raise ArgumentError, 'format invalid'
-        else
-          self.year = $1.to_i
-        end
-        if $2.nil?
-          self.month = nil
-        else
-          self.month = $2.to_i
-        end
-        if $3.nil?
-          self.day = nil
-        else
-          self.day = $3.to_i
-        end
-        if $5.nil?
-          self.minute = nil
-        else
-          self.minute = $5.to_i
-        end
-        if $6.nil?
-          self.second = nil
-        else
-          self.second = $6.to_i
-        end
-        if $4.nil?
-          self.hour = nil
-        else
-          self.hour = $4.to_i
-        end
-        if $7.nil? or $7.empty?
-          self.fractional_second = nil
-        else
-          self.fractional_second = ("0."+$7).to_f
-        end
-        if $8.nil?
-          self.timezone = nil
-        else
-          self.timezone = $9+$10
-        end
-      end
-    end
-  
-    class ISO8601_TIMEZONE
-      attr_accessor :sign, :hour, :minute
-
-      def is_gmt?
-        @sign == "+1" and @hour == 0 and @minute == 0
-      end
-
-      def as_string
-        if @sign == "+1"
-          s = "+"
-        elsif @sign == "-1"
-          s = "-"
-        end
-        sprintf("Z%s%02d%02d", s, @hour, @minute)
-      end
-    end # end of ISO8601_TIMEZONE
-
-    module ISO8601_DURATION_MODULE
-      attr_reader :years, :months, :weeks, :days
-      attr_reader :hours, :minutes, :seconds, :fractional_second
-
-      def years=(years)
-        unless years.nil? || years >= 0
-          raise ArgumentError, 'years must be above zero'
-        end
-        @years = years
-      end
-
-      def months=(months)
-        unless months.nil? || months >= 0
-          raise ArgumentError, 'months must be above zero'
-        end
-        @months = months
-      end
-
-      def weeks=(weeks)
-        unless weeks.nil? || weeks >= 0
-          raise ArgumentError, 'weeks must be above zero'
-        end
-        @weeks = weeks
-      end
-
-      def days=(days)
-        unless days.nil? || days >= 0
-          raise ArgumentError, 'days must be above zero'
-        end
-        @days = days
-      end
-
-      def hours=(hours)
-        unless hours.nil? || hours >= 0
-          raise ArgumentError, 'hours must be above zero'
-        end
-        @hours = hours
-      end
-
-      def minutes=(minutes)
-        unless minutes.nil? || minutes >= 0
-          raise ArgumentError, 'minutes must be above zero'
-        end
-        @minutes = minutes
-      end
-
-      def seconds=(seconds)
-        unless seconds.nil? || seconds >= 0
-          raise ArgumentError, 'seconds must be above zero'
-        end
-        @seconds = seconds
-      end
-
-      def fractional_second=(fractional_second)
-        unless fractional_second.nil? || (fractional_second >= 0 && fractional_second < 1.0)
-          raise ArgumentError, 'fractional_second must be between 0.0 and 1.0'
-        end
-        @fractional_second = fractional_second
-      end
-
-      def as_string
-        str = 'P'
-        unless @years.nil?
-          str += @years.to_s + 'Y'
-        end
-        unless @months.nil?
-          str += @months.to_s + 'M'
-        end
-        unless @weeks.nil?
-          str += @weeks.to_s + 'W'
-        end
-        unless @days.nil?
-          str += @days.to_s + 'D'
-        end
-        unless @hours.nil?
-          str += 'T' + @hours.to_s + 'H'
-          unless @minutes.nil?
-            str += @minutes.to_s + 'M'
-            unless @seconds.nil?
-              str += @seconds.to_s
-              unless @fractional_second.nil?
-                str += @fractional_second.to_s[1 .. -1]
-              end
-              str += 'S'
-            end
-          end
-        end
-        return str
-      end
-    end
-    class ISO8601_DURATION < TIME_DEFINITIONS
-      include ISO8601_DURATION_MODULE
-      def initialize(str)
-        /^P((\d+)Y)?((\d+)M)?((\d+)W)?((\d)D)?(T((\d+)H)?((\d+)M)?((\d+)(\.\d+)?S)?)?$/ =~ str
-        self.years = $2.to_i
-        self.months = $4.to_i
-        self.weeks = $6.to_i
-        self.days = $8.to_i
-        self.hours = $11.to_i
-        self.minutes = $13.to_i
-        self.seconds = $15.to_i
-        self.fractional_second = $16.to_f
-      end
-    end # end of ISO8601_DURATION
-  end # end of Assumed_Types
-end # end of OpenEHR
Index: ruby/trunk/lib/models/tests/rm/quantity/ts_date_time.rb
===================================================================
--- ruby/trunk/lib/models/tests/rm/quantity/ts_date_time.rb	(revision 290)
+++ ruby/trunk/lib/models/tests/rm/quantity/ts_date_time.rb	(revision 291)
@@ -1,26 +1,26 @@
 require 'test/unit'
 require 'rm'
-include OpenEHR::RM::Data_Types::Quantity::Date_Time
+include OpenEhr::RM::DataTypes::Quantity::DateTime
 
 class DateTimeTest < Test::Unit::TestCase
   def setup
     assert_nothing_raised(Exception){
-      @dv_temporal = DV_Temporal.new('2008')}
+      @dv_temporal = DvTemporal.new('2008')}
     assert_nothing_raised(Exception){
-      @dv_date = DV_Date.new('2009-06-29')}
+      @dv_date = DvDate.new('2009-06-29')}
     assert_nothing_raised(Exception){
-      @dv_time = DV_Time.new('12:34:56.78')}
+      @dv_time = DvTime.new('12:34:56.78')}
     assert_nothing_raised(Exception){
-      @dv_date_time = DV_Date_Time.new('2009-06-29T12:34:56.78')}
+      @dv_date_time = DvDateTime.new('2009-06-29T12:34:56.78')}
     assert_nothing_raised(Exception){
-      @dv_duration = DV_Duration.new('P1Y2M3W4DT5H6M7.8S')}
+      @dv_duration = DvDuration.new('P1Y2M3W4DT5H6M7.8S')}
   end
 
   def test_init
-    assert_instance_of DV_Temporal, @dv_temporal
-    assert_instance_of DV_Date, @dv_date
-    assert_instance_of DV_Time, @dv_time
-    assert_instance_of DV_Date_Time, @dv_date_time
-    assert_instance_of DV_Duration, @dv_duration
+    assert_instance_of DvTemporal, @dv_temporal
+    assert_instance_of DvDate, @dv_date
+    assert_instance_of DvTime, @dv_time
+    assert_instance_of DvDateTime, @dv_date_time
+    assert_instance_of DvDuration, @dv_duration
   end
 
@@ -36,13 +36,13 @@
     assert_equal 29, @dv_date.day
     assert_equal 733954, @dv_date.magnitude
-    date2 = DV_Date.new('2009-07-08')
+    date2 = DvDate.new('2009-07-08')
     assert_equal 'P0Y0M1W9D',@dv_date.diff(date2).value
-    date2 = DV_Date.new('2004-02-28')
-    date3 = DV_Date.new('2004-03-01')
+    date2 = DvDate.new('2004-02-28')
+    date3 = DvDate.new('2004-03-01')
     assert_equal 'P0Y0M0W2D', date2.diff(date3).value
-    date4 = DV_Date.new('2003-12-31')
+    date4 = DvDate.new('2003-12-31')
     assert_equal 'P0Y1M4W28D', date2.diff(date4).value
-    birthday = DV_Date.new('1970-04-19')
-    assert_equal 'P39Y2M1W11D', birthday.diff(DV_Date.new('2009-06-30')).value
+    birthday = DvDate.new('1970-04-19')
+    assert_equal 'P39Y2M1W11D', birthday.diff(DvDate.new('2009-06-30')).value
   end
 
@@ -54,5 +54,5 @@
     assert_equal 0.78, @dv_time.fractional_second
     assert_equal((12*60*60 + 34 * 60 + 56 + 0.78), @dv_time.magnitude)
-    dv_time2 = DV_Time.new('15:36:48.05')
+    dv_time2 = DvTime.new('15:36:48.05')
     assert_equal 'P0Y0M0W0DT3H1M51.27S', @dv_time.diff(dv_time2).value
   end
@@ -67,5 +67,5 @@
     assert_equal 56, @dv_date_time.second
     assert_equal 0.78, @dv_date_time.fractional_second
-    dv_date_time2 = DV_Date_Time.new('1970-04-19T13:55:30.12')
+    dv_date_time2 = DvDateTime.new('1970-04-19T13:55:30.12')
     assert_equal 'P39Y2M1W9DT22H39M26.66S', @dv_date_time.diff(dv_date_time2).value
   end
Index: ruby/trunk/lib/models/tests/rm/test_common.rb
===================================================================
--- ruby/trunk/lib/models/tests/rm/test_common.rb	(revision 290)
+++ ruby/trunk/lib/models/tests/rm/test_common.rb	(revision 291)
@@ -3,23 +3,23 @@
 require 'rm'
 
-include OpenEHR::RM::Data_Types::Text
-include OpenEHR::RM::Common::Resource
-include OpenEHR::RM::Common::Archetyped
-include OpenEHR::RM::Common::Generic
-include OpenEHR::RM::Common::Change_Control
-include OpenEHR::RM::Common::Directory
-include OpenEHR::RM::Support::Identification
-include OpenEHR::RM::Data_Types::Basic
-include OpenEHR::RM::Data_Types::Quantity
-include OpenEHR::RM::Data_Types::URI
+include OpenEhr::RM::DataTypes::Text
+include OpenEhr::RM::Common::Resource
+include OpenEhr::RM::Common::Archetyped
+include OpenEhr::RM::Common::Generic
+include OpenEhr::RM::Common::ChangeControl
+include OpenEhr::RM::Common::Directory
+include OpenEhr::RM::Support::Identification
+include OpenEhr::RM::DataTypes::Basic
+include OpenEhr::RM::DataTypes::Quantity
+include OpenEhr::RM::DataTypes::Uri
 
 class RM_Common_Resource_Test < Test::Unit::TestCase
   def setup
-    terminology_id = Terminology_ID.new('openehr')
-    code_phrase = Code_Phrase.new('ja', terminology_id)    
-    @translation_details = OpenEHR::RM::Common::Resource::Translation_Details.new(:language => code_phrase, :author => {'KOBAYASHI, Shinji', 'Ehime Univ'},
+    terminology_id = TerminologyId.new('openehr')
+    code_phrase = CodePhrase.new('ja', terminology_id)
+    @translation_details = OpenEhr::RM::Common::Resource::TranslationDetails.new(:language => code_phrase, :author => {'KOBAYASHI, Shinji', 'Ehime Univ'},
   :accreditation => 'jp', :other_details => {'ruby', 'test'})
-    @authored_resource = OpenEHR::RM::Common::Resource::Authored_Resource.new(:original_language => code_phrase, :translations => {'ja', @translation_details}, :description => "test")
-    @resource_description_item = OpenEHR::RM::Common::Resource::Resource_Description_Item.new(:language => code_phrase,
+    @authored_resource = OpenEhr::RM::Common::Resource::AuthoredResource.new(:original_language => code_phrase, :translations => {'ja', @translation_details}, :description => "test")
+    @resource_description_item = OpenEhr::RM::Common::Resource::ResourceDescriptionItem.new(:language => code_phrase,
               :purpose => 'test',
               :keywords => %w[test ruby],
@@ -29,5 +29,5 @@
               :original_resource_uri => {'issuer', 'http://openehr.jp/'},
               :other_details => {'samos', 'icicth7'})
-    @resource_description = OpenEHR::RM::Common::Resource::Resource_Description.new(:original_author => {'KOBAYASHI, Shinji' => 'Ehime University'},
+    @resource_description = OpenEhr::RM::Common::Resource::ResourceDescription.new(:original_author => {'KOBAYASHI, Shinji' => 'Ehime University'},
     :lifecycle_state => 'experimental',
     :details => {'ja', @resource_description_item},
@@ -36,12 +36,12 @@
     :other_details => {'ja', 'shikoku'},
     :parent_resource => @authored_resource)
-    @authored_resource = OpenEHR::RM::Common::Resource::Authored_Resource.new(:original_language => code_phrase, :translations => {'ja', @translation_details}, :description => @resource_description)
+    @authored_resource = OpenEhr::RM::Common::Resource::AuthoredResource.new(:original_language => code_phrase, :translations => {'ja', @translation_details}, :description => @resource_description)
   end
 
   def test_init
-    assert_instance_of OpenEHR::RM::Common::Resource::Authored_Resource, @authored_resource
-    assert_instance_of OpenEHR::RM::Common::Resource::Translation_Details, @translation_details
-    assert_instance_of OpenEHR::RM::Common::Resource::Resource_Description_Item, @resource_description_item
-    assert_instance_of OpenEHR::RM::Common::Resource::Resource_Description, @resource_description
+    assert_instance_of OpenEhr::RM::Common::Resource::AuthoredResource, @authored_resource
+    assert_instance_of OpenEhr::RM::Common::Resource::TranslationDetails, @translation_details
+    assert_instance_of OpenEhr::RM::Common::Resource::ResourceDescriptionItem, @resource_description_item
+    assert_instance_of OpenEhr::RM::Common::Resource::ResourceDescription, @resource_description
   end
 
@@ -86,4 +86,5 @@
 class RM_Common_Archetyped_Test < Test::Unit::TestCase
   def setup
+<<<<<<< .working
     @dv_text = OpenEHR::RM::Data_Types::Text::DV_Text.new('Test')
     @uid_based_id = OpenEHR::RM::Support::Identification::UID_Based_ID.new('rrip::0.0.5')
@@ -92,7 +93,15 @@
     assert_nothing_raised(Exception){@archetyped = OpenEHR::RM::Common::Archetyped::Archetyped.new(@archetype_id, '1.0.1')}
     assert_nothing_raised(Exception){@link = OpenEHR::RM::Common::Archetyped::Link.new(OpenEHR::RM::Data_Types::Text::DV_Text.new("generic"), OpenEHR::RM::Data_Types::URI::DV_EHR_URI.new("ehr://test/"),OpenEHR::RM::Data_Types::Text::DV_Text.new("problem"))}
-    assert_nothing_raised(Exception){
-      @pathable = OpenEHR::RM::Common::Archetyped::Pathable.new }
-    name = OpenEHR::RM::Data_Types::Text::DV_Text.new('blood')
+=======
+    @dv_text = OpenEhr::RM::DataTypes::Text::DvText.new('Test')
+    @uid_based_id = OpenEhr::RM::Support::Identification::UidBasedId.new('rrip::0.0.5')
+    @archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", "biochemistry result_cholesterol", "entry", "ehr_rm", "openehr","cholesterol","0.0.3")
+    @template_id = OpenEhr::RM::Support::Identification::TemplateId.new('1.0.1')
+    assert_nothing_raised(Exception){@archetyped = OpenEhr::RM::Common::Archetyped::Archetyped.new(@archetype_id, '1.0.1')}
+    assert_nothing_raised(Exception){@link = OpenEhr::RM::Common::Archetyped::Link.new(OpenEhr::RM::DataTypes::Text::DvText.new("generic"), OpenEhr::RM::DataTypes::Uri::DvEhrUri.new("ehr://test/"),OpenEhr::RM::DataTypes::Text::DvText.new("problem"))}
+>>>>>>> .merge-right.r168
+    assert_nothing_raised(Exception){
+      @pathable = OpenEhr::RM::Common::Archetyped::Pathable.new }
+    name = OpenEhr::RM::DataTypes::Text::DvText.new('blood')
     links = Set.new([@uid_based_id])
     assert_nothing_raised(Exception){
@@ -100,25 +109,25 @@
                                  :name => name,
                                  :links => links)}
-    provider = Party_Identified.new(:name => 'NERV')
-    location = Party_Identified.new(:name => 'GEOFRONT')
-    object_version_id = Object_Version_ID.new('ABC::DEF::1.3.4')
-    party_ref = Party_Ref.new('local', 'ORGANISATION', object_id)
-    assert_nothing_raised(Exception){
-      @feeder_audit_details = Feeder_Audit_Details.new(:system_id => 'MAGI',
+    provider = PartyIdentified.new(:name => 'NERV')
+    location = PartyIdentified.new(:name => 'GEOFRONT')
+    object_version_id = ObjectVersionId.new('ABC::DEF::1.3.4')
+    party_ref = PartyRef.new('local', 'ORGANISATION', object_id)
+    assert_nothing_raised(Exception){
+      @feeder_audit_details = FeederAuditDetails.new(:system_id => 'MAGI',
                                                        :provider => provider,
                                                        :location => location,
-                                                       :time => DV_Date_Time.new('2009-07-03T12:16:31'),
-                                                       :subject => Party_Proxy.new(:external_ref => party_ref),
+                                                       :time => DvDateTime.new('2009-07-03T12:16:31'),
+                                                       :subject => PartyProxy.new(:external_ref => party_ref),
                                                        :version_id => '0.0.4')}
-    feeder_audit_details = Feeder_Audit_Details.new(:system_id => 'AKAGI')
-    dv_identifier = DV_Identifier.new('NERV', 'MELCHIOR', 'RITSUKO', 'COMPUTER')
-    feeder_audit_details2 = Feeder_Audit_Details.new(:system_id => 'KATSURAGI')
-    dv_identifier2 = DV_Identifier.new('NERV', 'SHOGOUKI', 'MISATO', 'EVANGELION')
-    charset = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('UTF-8','character-sets')
-    language = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('ja', 'languages')
-
-    dv_encapsulated = OpenEHR::RM::Data_Types::Encapsulated::DV_Encapsulated.new(charset, language, 10)
-    assert_nothing_raised(Exception){
-      @feeder_audit = Feeder_Audit.new(:originating_system_audit => feeder_audit_details,
+    feeder_audit_details = FeederAuditDetails.new(:system_id => 'AKAGI')
+    dv_identifier = DvIdentifier.new('NERV', 'MELCHIOR', 'RITSUKO', 'COMPUTER')
+    feeder_audit_details2 = FeederAuditDetails.new(:system_id => 'KATSURAGI')
+    dv_identifier2 = DvIdentifier.new('NERV', 'SHOGOUKI', 'MISATO', 'EVANGELION')
+    charset = OpenEhr::RM::DataTypes::Text::CodePhrase.new('UTF-8','character-sets')
+    language = OpenEhr::RM::DataTypes::Text::CodePhrase.new('ja', 'languages')
+
+    dv_encapsulated = OpenEhr::RM::DataTypes::Encapsulated::DvEncapsulated.new(charset, language, 10)
+    assert_nothing_raised(Exception){
+      @feeder_audit = FeederAudit.new(:originating_system_audit => feeder_audit_details,
                                        :originating_system_item_ids => [dv_identifier],
                                        :feeder_system_audit => feeder_audit_details2,
@@ -128,10 +137,10 @@
 
   def test_init
-    assert_instance_of OpenEHR::RM::Common::Archetyped::Archetyped, @archetyped
-    assert_instance_of OpenEHR::RM::Common::Archetyped::Link, @link
-    assert_instance_of OpenEHR::RM::Common::Archetyped::Pathable, @pathable
-    assert_instance_of OpenEHR::RM::Common::Archetyped::Locatable, @locatable
-    assert_instance_of Feeder_Audit_Details, @feeder_audit_details
-    assert_instance_of Feeder_Audit, @feeder_audit
+    assert_instance_of OpenEhr::RM::Common::Archetyped::Archetyped, @archetyped
+    assert_instance_of OpenEhr::RM::Common::Archetyped::Link, @link
+    assert_instance_of OpenEhr::RM::Common::Archetyped::Pathable, @pathable
+    assert_instance_of OpenEhr::RM::Common::Archetyped::Locatable, @locatable
+    assert_instance_of FeederAuditDetails, @feeder_audit_details
+    assert_instance_of FeederAudit, @feeder_audit
   end
 
@@ -144,5 +153,9 @@
     assert_nothing_raised(Exception){@archetyped.template_id = @template_id}
     assert_equal @template_id, @archetyped.template_id
+<<<<<<< .working
     archetype_id2 = OpenEHR::RM::Support::Identification::Archetype_ID.new('openEHR-EHR-SECTION.physical_examination-prenatal.v2')
+=======
+    archetype_id2 = OpenEhr::RM::Support::Identification::ArchetypeId.new("1.0.2", "biochemistry result_cholesterol", "entry", "ehr_rm", "openehr","cholesterol","0.0.3")
+>>>>>>> .merge-right.r168
     assert_nothing_raised(ArgumentError){@archetyped.archetype_id = archetype_id2}
     assert_equal archetype_id2, @archetyped.archetype_id
@@ -157,13 +170,13 @@
     assert_equal 'problem', @link.type.value
     # test meaning
-    assert_nothing_raised(Exception){@link.meaning = OpenEHR::RM::Data_Types::Text::DV_Text.new('clinical')}
+    assert_nothing_raised(Exception){@link.meaning = OpenEhr::RM::DataTypes::Text::DvText.new('clinical')}
     assert_equal 'clinical', @link.meaning.value
     assert_raise(ArgumentError){@link.meaning = nil}
     # test target
-    assert_nothing_raised(Exception){@link.target = OpenEHR::RM::Data_Types::URI::DV_EHR_URI.new("ehr://try/")}
+    assert_nothing_raised(Exception){@link.target = OpenEhr::RM::DataTypes::Uri::DvEhrUri.new("ehr://try/")}
     assert_equal 'ehr://try/', @link.target.value
     assert_raise(ArgumentError){@link.target = nil}
     # test type
-    assert_nothing_raised(Exception){@link.type = OpenEHR::RM::Data_Types::Text::DV_Text.new("issue")}
+    assert_nothing_raised(Exception){@link.type = OpenEhr::RM::DataTypes::Text::DvText.new("issue")}
     assert_equal 'issue', @link.type.value
     assert_raise(ArgumentError){@link.type = nil}
@@ -190,35 +203,35 @@
 class RM_Common_Generic_Test < Test::Unit::TestCase
   def setup
-    assert_nothing_raised(Exception){party_proxy = Party_Proxy.new}
-    object_id = Object_ID.new('0.0.4')
-    party_ref = Party_Ref.new('unknown', 'ORGANISATION', object_id)
-    assert_nothing_raised(Exception){
-      @party_proxy = Party_Proxy.new(:external_ref => party_ref)}
-    assert_nothing_raised(Exception){party_self = Party_Self.new}
-    assert_nothing_raised(Exception){
-      @party_self = Party_Self.new(:external_ref => party_ref)}
+    assert_nothing_raised(Exception){party_proxy = PartyProxy.new}
+    object_id = ObjectId.new('0.0.4')
+    party_ref = PartyRef.new('unknown', 'ORGANISATION', object_id)
+    assert_nothing_raised(Exception){
+      @party_proxy = PartyProxy.new(:external_ref => party_ref)}
+    assert_nothing_raised(Exception){party_self = PartySelf.new}
+    assert_nothing_raised(Exception){
+      @party_self = PartySelf.new(:external_ref => party_ref)}
     assert_raise(ArgumentError){
-      party_identified = Party_Identified.new}
+      party_identified = PartyIdentified.new}
 
     identifiers = []
-    identifiers << DV_Identifier.new('NERV', 'MELCHIOR', 'GENDO', 'COMPUTER')
-    identifiers << DV_Identifier.new('NERV', 'CASPER', 'GENDO', 'COMPUTER')
-    identifiers << DV_Identifier.new('NERV', 'BALTHAZAR', 'GENDO', 'COMPUTER')
-    assert_nothing_raised(Exception){
-      @party_identified = Party_Identified.new(:name => 'NERV',
+    identifiers << DvIdentifier.new('NERV', 'MELCHIOR', 'GENDO', 'COMPUTER')
+    identifiers << DvIdentifier.new('NERV', 'CASPER', 'GENDO', 'COMPUTER')
+    identifiers << DvIdentifier.new('NERV', 'BALTHAZAR', 'GENDO', 'COMPUTER')
+    assert_nothing_raised(Exception){
+      @party_identified = PartyIdentified.new(:name => 'NERV',
                                                :external_ref => party_ref,
                                                :identifier => identifiers)}
 
-    terminology_id = Terminology_ID.new('test(0.04)')
-    code_phrase = Code_Phrase.new('self', terminology_id)
-    dv_coded_text = DV_Coded_Text.new('Seele',code_phrase)
-    assert_nothing_raised(Exception){
-      @party_related = Party_Related.new(:name => 'GEHIRN',
+    terminology_id = TerminologyId.new('test(0.04)')
+    code_phrase = CodePhrase.new('self', terminology_id)
+    dv_coded_text = DvCodedText.new('Seele',code_phrase)
+    assert_nothing_raised(Exception){
+      @party_related = PartyRelated.new(:name => 'GEHIRN',
                                          :relationship => dv_coded_text)}
-    dv_text = DV_Text.new('commiter')
-    dv_coded_text = DV_Coded_Text.new('present',terminology_id)
-    dv_date_time1 = DV_Date_Time.new('2009-07-04T16:30:00')
-    dv_date_time2 = DV_Date_Time.new('2009-07-14T00:00:00')
-    dv_interval = DV_Interval.new(dv_date_time1, dv_date_time2)
+    dv_text = DvText.new('commiter')
+    dv_coded_text = DvCodedText.new('present',terminology_id)
+    dv_date_time1 = DvDateTime.new('2009-07-04T16:30:00')
+    dv_date_time2 = DvDateTime.new('2009-07-14T00:00:00')
+    dv_interval = DvInterval.new(dv_date_time1, dv_date_time2)
     assert_nothing_raised(Exception){
       @participation = Participation.new(:performer => @party_proxy,
@@ -226,17 +239,17 @@
                                          :mode => dv_coded_text,
                                          :time => dv_interval)}
-    dv_date_time = DV_Date_Time.new('2009-07-04T18:56:00')
-    terminology_id = Terminology_ID.new('openehr(1.0.2)')
-    code_phrase = Code_Phrase.new('249', terminology_id)
-    dv_coded_text = DV_Coded_Text.new('creation', code_phrase)
-    dv_text = DV_Text.new('test environment')
-    assert_nothing_raised(Exception){
-      @audit_details = Audit_Details.new(:system_id => 'MAGI',
+    dv_date_time = DvDateTime.new('2009-07-04T18:56:00')
+    terminology_id = TerminologyId.new('openehr(1.0.2)')
+    code_phrase = CodePhrase.new('249', terminology_id)
+    dv_coded_text = DvCodedText.new('creation', code_phrase)
+    dv_text = DvText.new('test environment')
+    assert_nothing_raised(Exception){
+      @audit_details = AuditDetails.new(:system_id => 'MAGI',
                                          :committer => @party_proxy,
                                          :time_committed => dv_date_time,
                                          :change_type => dv_coded_text,
                                          :description => dv_text)}
-    dv_text = DV_Text.new('authorisation')
-    dv_ehr_uri = DV_EHR_URI.new('ehr://test/')
+    dv_text = DvText.new('authorisation')
+    dv_ehr_uri = DvEhrUri.new('ehr://test/')
     assert_nothing_raised(Exception){
       @attestation = Attestation.new(:system_id => 'NERV',
@@ -248,38 +261,38 @@
                                      :proof => 'hashedstring',
                                      :items => Set[dv_ehr_uri])}
-    object_version_id = Object_Version_ID.new('SHOGOUKI::NERV::1.1.1')
-    audit_details2 = Audit_Details.new(:system_id => 'MAGI',
+    object_version_id = ObjectVersionId.new('SHOGOUKI::NERV::1.1.1')
+    audit_details2 = AuditDetails.new(:system_id => 'MAGI',
                                        :committer => @party_proxy,
                                        :time_committed => dv_date_time2,
                                        :change_type => dv_coded_text)
     assert_nothing_raised(Exception){
-      @revision_history_item = Revision_History_Item.new(:audits => [@audit_details, audit_details2],
+      @revision_history_item = RevisionHistoryItem.new(:audits => [@audit_details, audit_details2],
                                                          :version_id => object_version_id)}
-    dv_date_time3 = DV_Date_Time.new('2009-07-14T12:00:00')
-    dv_date_time4 = DV_Date_Time.new('2009-07-15T00:00:00')
-    audit_details3 = Audit_Details.new(:system_id => 'MAGI',
+    dv_date_time3 = DvDateTime.new('2009-07-14T12:00:00')
+    dv_date_time4 = DvDateTime.new('2009-07-15T00:00:00')
+    audit_details3 = AuditDetails.new(:system_id => 'MAGI',
                                      :committer => @party_proxy,
                                      :time_committed => dv_date_time3,
                                      :change_type => dv_coded_text)
-    audit_details4 = Audit_Details.new(:system_id => 'MAGI',
+    audit_details4 = AuditDetails.new(:system_id => 'MAGI',
                                      :committer => @party_proxy,
                                      :time_committed => dv_date_time4,
                                      :change_type => dv_coded_text)
-    object_version_id = Object_Version_ID.new('NIGOUKI::NERV::2.2.2')
-    revision_history_item2 = Revision_History_Item.new(:audits => [audit_details3, audit_details4],
+    object_version_id = ObjectVersionId.new('NIGOUKI::NERV::2.2.2')
+    revision_history_item2 = RevisionHistoryItem.new(:audits => [audit_details3, audit_details4],
                                                       :version_id => object_version_id)
     assert_nothing_raised(Exception){
-      @revision_history = Revision_History.new([@revision_history_item, revision_history_item2])}
+      @revision_history = RevisionHistory.new([@revision_history_item, revision_history_item2])}
   end
 
   def test_init
-    assert_instance_of Party_Proxy, @party_proxy
-    assert_instance_of Party_Self, @party_self
-    assert_instance_of Party_Identified, @party_identified
+    assert_instance_of PartyProxy, @party_proxy
+    assert_instance_of PartySelf, @party_self
+    assert_instance_of PartyIdentified, @party_identified
     assert_instance_of Participation, @participation
-    assert_instance_of Audit_Details, @audit_details
+    assert_instance_of AuditDetails, @audit_details
     assert_instance_of Attestation, @attestation
-    assert_instance_of Revision_History_Item, @revision_history_item
-    assert_instance_of Revision_History, @revision_history
+    assert_instance_of RevisionHistoryItem, @revision_history_item
+    assert_instance_of RevisionHistory, @revision_history
   end
 
@@ -347,7 +360,7 @@
   def setup
     archetype_node_id = 'at0001'
-    name = DV_Text.new('folder_test')
-    object_id = Object_ID.new('1.1.1')
-    object_ref = Object_Ref.new('local', 'PARTY', object_id)
+    name = DvText.new('folder_test')
+    object_id = ObjectId.new('1.1.1')
+    object_ref = ObjectRef.new('local', 'PARTY', object_id)
     assert_nothing_raised(Exception){
       @folder = Folder.new(:archetype_node_id => archetype_node_id,
@@ -359,5 +372,5 @@
   
   def test_init
-    assert_instance_of OpenEHR::RM::Common::Directory::Folder, @folder
+    assert_instance_of OpenEhr::RM::Common::Directory::Folder, @folder
   end
 
@@ -370,22 +383,22 @@
 class RM_Common_Change_Control_Test < Test::Unit::TestCase
   def setup
-    object_version_id1 = Object_Version_ID.new('ABC::DEF::2.2.3')
-    object_version_id2 = Object_Version_ID.new('GHI::JKL::4.5.6')
-    object_id = Object_ID.new('ehr://uniqueid1020')
-    dv_date_time = DV_Date_Time.new('2009-07-06T21:10:12')
-    party_ref = Party_Ref.new('unknown', 'ORGANISATION', object_id)
-    party_proxy = Party_Proxy.new(:external_ref => party_ref)
-    terminology_id = Terminology_ID.new('openehr(1.0.2)')
-    code_phrase = Code_Phrase.new('249', terminology_id)
-    dv_coded_text = DV_Coded_Text.new('creation', code_phrase)
-    audit_details = Audit_Details.new(:system_id => 'MAGI',
+    object_version_id1 = ObjectVersionId.new('ABC::DEF::2.2.3')
+    object_version_id2 = ObjectVersionId.new('GHI::JKL::4.5.6')
+    object_id = ObjectId.new('ehr://uniqueid1020')
+    dv_date_time = DvDateTime.new('2009-07-06T21:10:12')
+    party_ref = PartyRef.new('unknown', 'ORGANISATION', object_id)
+    party_proxy = PartyProxy.new(:external_ref => party_ref)
+    terminology_id = TerminologyId.new('openehr(1.0.2)')
+    code_phrase = CodePhrase.new('249', terminology_id)
+    dv_coded_text = DvCodedText.new('creation', code_phrase)
+    audit_details = AuditDetails.new(:system_id => 'MAGI',
                                       :committer => party_proxy,
                                       :time_committed => dv_date_time,
                                       :change_type => dv_coded_text)
-    code_phrase = Code_Phrase.new('532', terminology_id)
-    dv_coded_text = DV_Coded_Text.new('complete', code_phrase)
-    object_id = Object_ID.new('ehr://test_location')
-    object_ref = Object_Ref.new('local', 'PARTY', object_id)
-    hier_object_id = Hier_Object_ID.new('ABC')
+    code_phrase = CodePhrase.new('532', terminology_id)
+    dv_coded_text = DvCodedText.new('complete', code_phrase)
+    object_id = ObjectId.new('ehr://test_location')
+    object_ref = ObjectRef.new('local', 'PARTY', object_id)
+    hier_object_id = HierObjectId.new('ABC')
     assert_nothing_raised(Exception){
       @version = Version.new(:uid => object_version_id1,
@@ -396,20 +409,20 @@
                              :signature => 'test_version',
                              :data => 'data')}
-    object_version_id3 = Object_Version_ID.new('MNO::PQR::7.8.9')
-    object_version_id4 = Object_Version_ID.new('STU::VWX::1.2.3')
-    code_phrase = Code_Phrase.new('240', terminology_id)
-    dv_coded_text2 = DV_Coded_Text.new('signed', code_phrase)
+    object_version_id3 = ObjectVersionId.new('MNO::PQR::7.8.9')
+    object_version_id4 = ObjectVersionId.new('STU::VWX::1.2.3')
+    code_phrase = CodePhrase.new('240', terminology_id)
+    dv_coded_text2 = DvCodedText.new('signed', code_phrase)
     attestation = Attestation.new(:system_id => 'NERV',
                                   :committer => party_proxy,
                                   :time_committed => dv_date_time,
                                   :change_type => dv_coded_text,
-                                  :reason => DV_Text.new('signed'))
-    dv_date_time = DV_Date_Time.new('2009-07-07T21:10:12')
-    audit_details = Audit_Details.new(:system_id => 'MAGI',
+                                  :reason => DvText.new('signed'))
+    dv_date_time = DvDateTime.new('2009-07-07T21:10:12')
+    audit_details = AuditDetails.new(:system_id => 'MAGI',
                                       :committer => party_proxy,
                                       :time_committed => dv_date_time,
                                       :change_type => dv_coded_text)
     assert_nothing_raised(Exception){
-      @original_version = Original_Version.new(:uid => object_version_id3,
+      @original_version = OriginalVersion.new(:uid => object_version_id3,
                                                :preceding_version_uid => object_version_id4,
                                                :other_input_version_uids => Set[object_version_id1, object_version_id2],
@@ -419,13 +432,13 @@
                                                :data => 'data',
                                                :lifecycle_state => dv_coded_text)}
-    dv_date_time = DV_Date_Time.new('2009-07-08T21:10:12')
-    audit_details = Audit_Details.new(:system_id => 'CASPER',
+    dv_date_time = DvDateTime.new('2009-07-08T21:10:12')
+    audit_details = AuditDetails.new(:system_id => 'CASPER',
                                       :committer => party_proxy,
                                       :time_committed => dv_date_time,
                                       :change_type => dv_coded_text,
                                       :description => 'for contribution')
-    object_ref = Object_Ref.new('unknown', 'PARTY', object_id)
-    assert_nothing_raised(Exception){
-      @imported_version = Imported_Version.new(:item => @original_version,
+    object_ref = ObjectRef.new('unknown', 'PARTY', object_id)
+    assert_nothing_raised(Exception){
+      @imported_version = ImportedVersion.new(:item => @original_version,
                                                :commit_audit => audit_details,
                                                :contribution => object_ref,
@@ -435,6 +448,6 @@
                                        :versions => Set[object_ref],
                                        :audit => audit_details)}
-    dv_date_time = DV_Date_Time.new('2009-07-08T18:10:12')
-    audit_details = Audit_Details.new(:system_id => 'MAGI',
+    dv_date_time = DvDateTime.new('2009-07-08T18:10:12')
+    audit_details = AuditDetails.new(:system_id => 'MAGI',
                                       :committer => party_proxy,
                                       :time_committed => dv_date_time,
@@ -446,5 +459,5 @@
                                 :change_type => dv_coded_text)
     assert_nothing_raised(Exception){
-      @versioned_object = Versioned_Object.new(:uid => hier_object_id,
+      @versioned_object = VersionedObject.new(:uid => hier_object_id,
                                                :owner_id => object_ref,
                                                :time_created => dv_date_time,
@@ -453,9 +466,9 @@
 
   def test_init
-    assert_instance_of OpenEHR::RM::Common::Change_Control::Version, @version
-    assert_instance_of Original_Version, @original_version
-    assert_instance_of Imported_Version, @imported_version
-    assert_instance_of OpenEHR::RM::Common::Change_Control::Contribution, @contribution
-    assert_instance_of Versioned_Object, @versioned_object
+    assert_instance_of OpenEhr::RM::Common::ChangeControl::Version, @version
+    assert_instance_of OriginalVersion, @original_version
+    assert_instance_of ImportedVersion, @imported_version
+    assert_instance_of OpenEhr::RM::Common::ChangeControl::Contribution, @contribution
+    assert_instance_of VersionedObject, @versioned_object
   end
 
@@ -505,5 +518,5 @@
     assert !@versioned_object.is_original_version?(@version.uid)
     assert @versioned_object.is_original_version?(@original_version.uid)
-    assert @versioned_object.has_version_at_time?(DV_Date_Time.new('2009-07-06T21:10:12'))
+    assert @versioned_object.has_version_at_time?(DvDateTime.new('2009-07-06T21:10:12'))
     assert_equal @version, @versioned_object.version_with_id(@version.uid)
     assert_equal @version, @versioned_object.version_at_time(@version.commit_audit.time_committed)
@@ -538,10 +551,10 @@
                                                 :item => @imported_version.item)}
     assert_equal 7, @versioned_object.version_count
-    dv_date_time = DV_Date_Time.new('2009-07-07T22:11:31')
+    dv_date_time = DvDateTime.new('2009-07-07T22:11:31')
     attestation = Attestation.new(:system_id => 'NERV2',
                                   :committer => @version.contribution,
                                   :time_committed => dv_date_time,
                                   :change_type => @original_version.commit_audit.change_type,
-                                  :reason => DV_Text.new('signed'))
+                                  :reason => DvText.new('signed'))
     assert_nothing_raised(Exception){
       @versioned_object.commit_attestation(:attestation => attestation,
Index: ruby/trunk/lib/models/tests/rm/test_data_structure.rb
===================================================================
--- ruby/trunk/lib/models/tests/rm/test_data_structure.rb	(revision 290)
+++ ruby/trunk/lib/models/tests/rm/test_data_structure.rb	(revision 291)
@@ -3,5 +3,10 @@
 require 'rm'
 
+<<<<<<< .working
 include OpenEHR::RM::Data_Structures
+=======
+include OpenEHR::RM::Data_Structures
+include OpenEHR::RM::Data_Structures::Item_Structure
+>>>>>>> .merge-right.r168
 
 class RmDataStructureTest < Test::Unit::TestCase
@@ -24,2 +29,12 @@
   end
 end
+
+class RmDataStructureItemStructureTest < Test::Unit::TestCase
+  def setup
+    assert_nothing_raised(Exception){
+      
+  end
+
+  def test_init
+  end
+end
Index: ruby/trunk/lib/models/tests/rm/test_data_types.rb
===================================================================
--- ruby/trunk/lib/models/tests/rm/test_data_types.rb	(revision 290)
+++ ruby/trunk/lib/models/tests/rm/test_data_types.rb	(revision 291)
@@ -6,21 +6,21 @@
 class RM_Data_Types_Basic_Test < Test::Unit::TestCase
   def setup
-    assert_nothing_raised(Exception){@dv_boolean = OpenEHR::RM::Data_Types::Basic::DV_Boolean.new("TRUE")}
-    @terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new('openEHR(1.0.2)')
-    @code_phrase = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('PROPOSED', @terminology_id)
-    @dv_coded_text = OpenEHR::RM::Data_Types::Text::DV_Coded_Text.new("Blood examination", @code_phrase)
-    assert_nothing_raised(Exception){@dv_state = OpenEHR::RM::Data_Types::Basic::DV_State.new(@dv_coded_text, false)}
-    assert_nothing_raised(Exception){@dv_identifier = OpenEHR::RM::Data_Types::Basic::DV_Identifier.new("Ruby Hospital","0123456-0", "Information office", "personal id")}
+    assert_nothing_raised(Exception){@dv_boolean = OpenEhr::RM::DataTypes::Basic::DvBoolean.new("TRUE")}
+    @terminology_id = OpenEhr::RM::Support::Identification::TerminologyId.new('openEHR(1.0.2)')
+    @code_phrase = OpenEhr::RM::DataTypes::Text::CodePhrase.new('PROPOSED', @terminology_id)
+    @dv_coded_text = OpenEhr::RM::DataTypes::Text::DvCodedText.new("Blood examination", @code_phrase)
+    assert_nothing_raised(Exception){@dv_state = OpenEhr::RM::DataTypes::Basic::DvState.new(@dv_coded_text, false)}
+    assert_nothing_raised(Exception){@dv_identifier = OpenEhr::RM::DataTypes::Basic::DvIdentifier.new("Ruby Hospital","0123456-0", "Information office", "personal id")}
   end
 
   def test_init
-    assert_instance_of OpenEHR::RM::Data_Types::Basic::DV_Boolean, @dv_boolean
-    assert_instance_of OpenEHR::RM::Data_Types::Basic::DV_State, @dv_state
-    assert_instance_of OpenEHR::RM::Data_Types::Basic::DV_Identifier, @dv_identifier
+    assert_instance_of OpenEhr::RM::DataTypes::Basic::DvBoolean, @dv_boolean
+    assert_instance_of OpenEhr::RM::DataTypes::Basic::DvState, @dv_state
+    assert_instance_of OpenEhr::RM::DataTypes::Basic::DvIdentifier, @dv_identifier
   end
 
   def test_constant
-    assert_equal("\r", OpenEHR::RM::Data_Types::Basic::Data_Value::CR)
-    assert_equal("\n", OpenEHR::RM::Data_Types::Basic::Data_Value::LF)
+    assert_equal("\r", OpenEhr::RM::DataTypes::Basic::DataValue::CR)
+    assert_equal("\n", OpenEhr::RM::DataTypes::Basic::DataValue::LF)
   end
 
@@ -31,5 +31,5 @@
     # inv: Value_exists
     assert_raise(ArgumentError){@dv_boolean.value=nil}
-    assert_raise(ArgumentError){OpenEHR::RM::Data_Types::Basic::DV_Boolean.new(nil)}
+    assert_raise(ArgumentError){OpenEhr::RM::DataTypes::Basic::DvBoolean.new(nil)}
   end
 
@@ -44,5 +44,5 @@
     assert_equal 'COMPLETED', @dv_state.value.defining_code.code_string
     assert @dv_state.is_terminal?
-    assert_raise(ArgumentError) {OpenEHR::RM::Data_Types::Basic::DV_State.new(nil,nil)}
+    assert_raise(ArgumentError) {OpenEhr::RM::DataTypes::Basic::DvState.new(nil,nil)}
     assert_raise(ArgumentError) {@dv_state.value=nil}
     assert_raise(ArgumentError) {@dv_state.is_terminal=nil}
@@ -62,5 +62,5 @@
     @dv_identifier.type = "test id"
     assert_equal("test id", @dv_identifier.type)
-    assert_raise(ArgumentError) {OpenEHR::RM::Data_Types::Basic::DV_Identifier.new(nil, nil, nil, nil)}
+    assert_raise(ArgumentError) {OpenEhr::RM::DataTypes::Basic::DvIdentifier.new(nil, nil, nil, nil)}
   end
 end
@@ -69,11 +69,11 @@
 class RM_Data_Types_URI_Test < Test::Unit::TestCase
   def setup
-    @dv_uri = OpenEHR::RM::Data_Types::URI::DV_URI.new("http://www.openehr.jp/changeset/test?cmd=93#file0")
-    @dv_ehr_uri = OpenEHR::RM::Data_Types::URI::DV_EHR_URI.new("ehr://1234567/87284370-2D4B-4e3d-A3F3-F303D2F4F34B@2005-08-02T04:30:00")
+    @dv_uri = OpenEhr::RM::DataTypes::Uri::DvUri.new("http://www.openehr.jp/changeset/test?cmd=93#file0")
+    @dv_ehr_uri = OpenEhr::RM::DataTypes::Uri::DvEhrUri.new("ehr://1234567/87284370-2D4B-4e3d-A3F3-F303D2F4F34B@2005-08-02T04:30:00")
   end
 
   def test_init
-    assert_instance_of OpenEHR::RM::Data_Types::URI::DV_URI, @dv_uri
-    assert_instance_of OpenEHR::RM::Data_Types::URI::DV_EHR_URI, @dv_ehr_uri    
+    assert_instance_of OpenEhr::RM::DataTypes::Uri::DvUri, @dv_uri
+    assert_instance_of OpenEhr::RM::DataTypes::Uri::DvEhrUri, @dv_ehr_uri
   end
 
@@ -98,18 +98,18 @@
 class RM_Data_Types_Text_Test < Test::Unit::TestCase
   def setup
-    assert_nothing_raised(Exception){@dv_text = OpenEHR::RM::Data_Types::Text::DV_Text.new("valid value")}
-    @terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new('ICD10')
+    assert_nothing_raised(Exception){@dv_text = OpenEhr::RM::DataTypes::Text::DvText.new("valid value")}
+    @terminology_id = OpenEhr::RM::Support::Identification::TerminologyId.new('ICD10')
     
-    assert_nothing_raised(Exception){@code_phrase = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('C92.0', @terminology_id)}
-    assert_nothing_raised(Exception){@dv_coded_text = OpenEHR::RM::Data_Types::Text::DV_Coded_Text.new("Acute Myeloid Leukemia", @code_phrase)}
-    @dv_paragraph = OpenEHR::RM::Data_Types::Text::DV_Paragraph.new(Set.new(["test1", "test2"]))
-    @term_mapping = OpenEHR::RM::Data_Types::Text::Term_Mapping.new('=',@dv_coded_text,"TEST")
+    assert_nothing_raised(Exception){@code_phrase = OpenEhr::RM::DataTypes::Text::CodePhrase.new('C92.0', @terminology_id)}
+    assert_nothing_raised(Exception){@dv_coded_text = OpenEhr::RM::DataTypes::Text::DvCodedText.new("Acute Myeloid Leukemia", @code_phrase)}
+    @dv_paragraph = OpenEhr::RM::DataTypes::Text::DvParagraph.new(Set.new(["test1", "test2"]))
+    @term_mapping = OpenEhr::RM::DataTypes::Text::TermMapping.new('=',@dv_coded_text,"TEST")
   end
 
   def test_init
-    assert_instance_of OpenEHR::RM::Data_Types::Text::DV_Text, @dv_text
-    assert_instance_of OpenEHR::RM::Data_Types::Text::Code_Phrase, @code_phrase
-    assert_instance_of OpenEHR::RM::Data_Types::Text::DV_Coded_Text, @dv_coded_text
-    assert_instance_of OpenEHR::RM::Data_Types::Text::Term_Mapping, @term_mapping
+    assert_instance_of OpenEhr::RM::DataTypes::Text::DvText, @dv_text
+    assert_instance_of OpenEhr::RM::DataTypes::Text::CodePhrase, @code_phrase
+    assert_instance_of OpenEhr::RM::DataTypes::Text::DvCodedText, @dv_coded_text
+    assert_instance_of OpenEhr::RM::DataTypes::Text::TermMapping, @term_mapping
   end
 
@@ -147,15 +147,15 @@
   def test_term_mapping
     assert_equal '=', @term_mapping.match
-    assert OpenEHR::RM::Data_Types::Text::Term_Mapping.is_valid_mach_code?('>')
-    assert OpenEHR::RM::Data_Types::Text::Term_Mapping.is_valid_mach_code?('=')
-    assert OpenEHR::RM::Data_Types::Text::Term_Mapping.is_valid_mach_code?('<')
-    assert OpenEHR::RM::Data_Types::Text::Term_Mapping.is_valid_mach_code?('?')
-    assert !OpenEHR::RM::Data_Types::Text::Term_Mapping.is_valid_mach_code?('!')
+    assert OpenEhr::RM::DataTypes::Text::TermMapping.is_valid_mach_code?('>')
+    assert OpenEhr::RM::DataTypes::Text::TermMapping.is_valid_mach_code?('=')
+    assert OpenEhr::RM::DataTypes::Text::TermMapping.is_valid_mach_code?('<')
+    assert OpenEhr::RM::DataTypes::Text::TermMapping.is_valid_mach_code?('?')
+    assert !OpenEhr::RM::DataTypes::Text::TermMapping.is_valid_mach_code?('!')
     assert_equal @dv_coded_text, @term_mapping.purpose
     assert_equal "TEST", @term_mapping.target
-    assert_raise(ArgumentError){OpenEHR::RM::Data_Types::Text::Term_Mapping.new}
-    assert_raise(ArgumentError){OpenEHR::RM::Data_Types::Text::Term_Mapping.new('!',@dv_coded_text, "invalid case")}
-    assert_raise(ArgumentError){OpenEHR::RM::Data_Types::Text::Term_Mapping.new('=',nil , "invalid case")}
-    assert_raise(ArgumentError){OpenEHR::RM::Data_Types::Text::Term_Mapping.new('=',@dv_coded_text, nil)}
+    assert_raise(ArgumentError){OpenEhr::RM::DataTypes::Text::TermMapping.new}
+    assert_raise(ArgumentError){OpenEhr::RM::DataTypes::Text::TermMapping.new('!',@dv_coded_text, "invalid case")}
+    assert_raise(ArgumentError){OpenEhr::RM::DataTypes::Text::TermMapping.new('=',nil , "invalid case")}
+    assert_raise(ArgumentError){OpenEhr::RM::DataTypes::Text::TermMapping.new('=',@dv_coded_text, nil)}
   end
 end
@@ -164,45 +164,45 @@
   def setup
     assert_nothing_raised(Exception){
-      @dv_ordered = OpenEHR::RM::Data_Types::Quantity::DV_Ordered.new }
-    assert_nothing_raised(Exception){
-      terminology = OpenEHR::RM::Support::Identification::Terminology_ID.new('urine')
-      code_phrase = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('protein',terminology)
-      urinary_protein = OpenEHR::RM::Data_Types::Text::DV_Coded_Text.new('+', code_phrase)
-      @dv_ordinal1 = OpenEHR::RM::Data_Types::Quantity::DV_Ordinal.new(1, urinary_protein)
-      code_phrase = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('protein',terminology)
-      urinary_protein = OpenEHR::RM::Data_Types::Text::DV_Coded_Text.new('+++', code_phrase)
-      @dv_ordinal2 = OpenEHR::RM::Data_Types::Quantity::DV_Ordinal.new(3, urinary_protein)}
-    assert_nothing_raised(Exception){
-      @dv_interval = OpenEHR::RM::Data_Types::Quantity::DV_Interval.new(@dv_ordinal1, @dv_ordinal2)}
-    meaning = OpenEHR::RM::Data_Types::Text::DV_Text.new('normal')
-    assert_nothing_raised(Exception){
-      @reference_range = OpenEHR::RM::Data_Types::Quantity::Reference_Range.new(meaning, @dv_interval)}
-    assert_nothing_raised(Exception){
-      @dv_quantified = OpenEHR::RM::Data_Types::Quantity::DV_Quantified.new(1,'=')}
-    assert_nothing_raised(Exception){
-      @dv_amount = OpenEHR::RM::Data_Types::Quantity::DV_Amount.new(2,'<')}
-    assert_nothing_raised(Exception){
-      @dv_quantity = OpenEHR::RM::Data_Types::Quantity::DV_Quantity.new(3, 'mg', '~')}
-    assert_nothing_raised(Exception){
-      @dv_count = OpenEHR::RM::Data_Types::Quantity::DV_Count.new(1)}
-    assert_nothing_raised(Exception){
-      @dv_proportion = OpenEHR::RM::Data_Types::Quantity::DV_Proportion.new(2,3,0)}
-    assert_nothing_raised(Exception){
-      @dv_absolute_quantity = OpenEHR::RM::Data_Types::Quantity::DV_Absolute_Quantity.new(7,'=')}
+      @dv_ordered = OpenEhr::RM::DataTypes::Quantity::DvOrdered.new }
+    assert_nothing_raised(Exception){
+      terminology = OpenEhr::RM::Support::Identification::TerminologyId.new('urine')
+      code_phrase = OpenEhr::RM::DataTypes::Text::CodePhrase.new('protein',terminology)
+      urinary_protein = OpenEhr::RM::DataTypes::Text::DvCodedText.new('+', code_phrase)
+      @dv_ordinal1 = OpenEhr::RM::DataTypes::Quantity::DvOrdinal.new(1, urinary_protein)
+      code_phrase = OpenEhr::RM::DataTypes::Text::CodePhrase.new('protein',terminology)
+      urinary_protein = OpenEhr::RM::DataTypes::Text::DvCodedText.new('+++', code_phrase)
+      @dv_ordinal2 = OpenEhr::RM::DataTypes::Quantity::DvOrdinal.new(3, urinary_protein)}
+    assert_nothing_raised(Exception){
+      @dv_interval = OpenEhr::RM::DataTypes::Quantity::DvInterval.new(@dv_ordinal1, @dv_ordinal2)}
+    meaning = OpenEhr::RM::DataTypes::Text::DvText.new('normal')
+    assert_nothing_raised(Exception){
+      @reference_range = OpenEhr::RM::DataTypes::Quantity::ReferenceRange.new(meaning, @dv_interval)}
+    assert_nothing_raised(Exception){
+      @dv_quantified = OpenEhr::RM::DataTypes::Quantity::DvQuantified.new(1,'=')}
+    assert_nothing_raised(Exception){
+      @dv_amount = OpenEhr::RM::DataTypes::Quantity::DvAmount.new(2,'<')}
+    assert_nothing_raised(Exception){
+      @dv_quantity = OpenEhr::RM::DataTypes::Quantity::DvQuantity.new(3, 'mg', '~')}
+    assert_nothing_raised(Exception){
+      @dv_count = OpenEhr::RM::DataTypes::Quantity::DvCount.new(1)}
+    assert_nothing_raised(Exception){
+      @dv_proportion = OpenEhr::RM::DataTypes::Quantity::DvProportion.new(2,3,0)}
+    assert_nothing_raised(Exception){
+      @dv_absolute_quantity = OpenEhr::RM::DataTypes::Quantity::DvAbsoluteQuantity.new(7,'=')}
    end
 
    def test_init
-     assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Ordered, @dv_ordered
-     assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Quantified, @dv_quantified
-     assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Interval, @dv_interval
-     assert_instance_of OpenEHR::RM::Data_Types::Quantity::Reference_Range, @reference_range
-     assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Ordinal, @dv_ordinal1
-     assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Ordinal, @dv_ordinal2
-     assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Quantified, @dv_quantified
-     assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Amount, @dv_amount
-     assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Quantity, @dv_quantity
-     assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Count, @dv_count
-     assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Proportion, @dv_proportion
-     assert_instance_of OpenEHR::RM::Data_Types::Quantity::DV_Absolute_Quantity, @dv_absolute_quantity
+     assert_instance_of OpenEhr::RM::DataTypes::Quantity::DvOrdered, @dv_ordered
+     assert_instance_of OpenEhr::RM::DataTypes::Quantity::DvQuantified, @dv_quantified
+     assert_instance_of OpenEhr::RM::DataTypes::Quantity::DvInterval, @dv_interval
+     assert_instance_of OpenEhr::RM::DataTypes::Quantity::ReferenceRange, @reference_range
+     assert_instance_of OpenEhr::RM::DataTypes::Quantity::DvOrdinal, @dv_ordinal1
+     assert_instance_of OpenEhr::RM::DataTypes::Quantity::DvOrdinal, @dv_ordinal2
+     assert_instance_of OpenEhr::RM::DataTypes::Quantity::DvQuantified, @dv_quantified
+     assert_instance_of OpenEhr::RM::DataTypes::Quantity::DvAmount, @dv_amount
+     assert_instance_of OpenEhr::RM::DataTypes::Quantity::DvQuantity, @dv_quantity
+     assert_instance_of OpenEhr::RM::DataTypes::Quantity::DvCount, @dv_count
+     assert_instance_of OpenEhr::RM::DataTypes::Quantity::DvProportion, @dv_proportion
+     assert_instance_of OpenEhr::RM::DataTypes::Quantity::DvAbsoluteQuantity, @dv_absolute_quantity
   end
 
@@ -214,11 +214,11 @@
     assert @dv_ordered.is_simple?
     assert_raise(NotImplementedError){@dv_ordered<=>1}
-    openehr_terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new('openEHR')
-    normal_code = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('N', openehr_terminology_id)
+    openehr_terminology_id = OpenEhr::RM::Support::Identification::TerminologyId.new('openEHR')
+    normal_code = OpenEhr::RM::DataTypes::Text::CodePhrase.new('N', openehr_terminology_id)
     assert_equal 'N', normal_code.code_string
     assert_nothing_raised(Exception){
       @dv_ordered.normal_status = normal_code }
     assert @dv_ordered.is_normal?
-    other = OpenEHR::RM::Data_Types::Quantity::DV_Ordered.new
+    other = OpenEhr::RM::DataTypes::Quantity::DvOrdered.new
     assert_raise(NotImplementedError){
       @dv_ordered.is_strictly_comparable_to?(other)}
@@ -232,8 +232,8 @@
     assert_equal 'normal', @reference_range.meaning.value
     assert_equal 1, @reference_range.range.lower.value
-    terminology = OpenEHR::RM::Support::Identification::Terminology_ID.new('urine')
-    code_phrase = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('protein',terminology)
-    urinary_protein = OpenEHR::RM::Data_Types::Text::DV_Coded_Text.new('++', code_phrase)
-    dv_ordinal = OpenEHR::RM::Data_Types::Quantity::DV_Ordinal.new(2, urinary_protein)
+    terminology = OpenEhr::RM::Support::Identification::TerminologyId.new('urine')
+    code_phrase = OpenEhr::RM::DataTypes::Text::CodePhrase.new('protein',terminology)
+    urinary_protein = OpenEhr::RM::DataTypes::Text::DvCodedText.new('++', code_phrase)
+    dv_ordinal = OpenEhr::RM::DataTypes::Quantity::DvOrdinal.new(2, urinary_protein)
     assert @reference_range.is_in_range?(dv_ordinal)
     dv_ordinal.value = 6
@@ -244,10 +244,10 @@
     assert_equal 1, @dv_quantified.magnitude
     assert_equal '=', @dv_quantified.magnitude_status
-    assert !OpenEHR::RM::Data_Types::Quantity::DV_Quantified.valid_magnitude_status?('*')
-    assert OpenEHR::RM::Data_Types::Quantity::DV_Quantified.valid_magnitude_status?('>')
-    assert OpenEHR::RM::Data_Types::Quantity::DV_Quantified.valid_magnitude_status?('<')
-    assert OpenEHR::RM::Data_Types::Quantity::DV_Quantified.valid_magnitude_status?('>=')
-    assert OpenEHR::RM::Data_Types::Quantity::DV_Quantified.valid_magnitude_status?('<=')
-    assert OpenEHR::RM::Data_Types::Quantity::DV_Quantified.valid_magnitude_status?('~')
+    assert !OpenEhr::RM::DataTypes::Quantity::DvQuantified.valid_magnitude_status?('*')
+    assert OpenEhr::RM::DataTypes::Quantity::DvQuantified.valid_magnitude_status?('>')
+    assert OpenEhr::RM::DataTypes::Quantity::DvQuantified.valid_magnitude_status?('<')
+    assert OpenEhr::RM::DataTypes::Quantity::DvQuantified.valid_magnitude_status?('>=')
+    assert OpenEhr::RM::DataTypes::Quantity::DvQuantified.valid_magnitude_status?('<=')
+    assert OpenEhr::RM::DataTypes::Quantity::DvQuantified.valid_magnitude_status?('~')
     assert_nothing_raised(Exception){@dv_quantified.magnitude = 0}
     assert_equal 0, @dv_quantified.magnitude
@@ -289,6 +289,6 @@
     assert @dv_ordinal1 > @dv_ordinal2
     assert_raise(ArgumentError){@dv_ordinal1.limits = @reference_range}
-    meaning = OpenEHR::RM::Data_Types::Text::DV_Text.new('limits')
-    limit_reference_range = OpenEHR::RM::Data_Types::Quantity::Reference_Range.new(meaning, @dv_interval)
+    meaning = OpenEhr::RM::DataTypes::Text::DvText.new('limits')
+    limit_reference_range = OpenEhr::RM::DataTypes::Quantity::ReferenceRange.new(meaning, @dv_interval)
     assert_nothing_raised(Exception){@dv_ordinal1.limits = limit_reference_range}
     assert_equal 'limits', @dv_ordinal1.limits.meaning.value
@@ -299,5 +299,5 @@
     assert_equal 'mg', @dv_quantity.units
     assert_equal '~', @dv_quantity.magnitude_status
-    dv_quantity2 = OpenEHR::RM::Data_Types::Quantity::DV_Quantity.new(4, 'mg', '~')
+    dv_quantity2 = OpenEhr::RM::DataTypes::Quantity::DvQuantity.new(4, 'mg', '~')
     assert_equal 'mg', dv_quantity2.units
     assert @dv_quantity.is_strictly_comparable_to?(dv_quantity2)
@@ -318,5 +318,5 @@
   def test_dv_count
     assert_equal 1, @dv_count.magnitude
-    dv_count2 = OpenEHR::RM::Data_Types::Quantity::DV_Count.new(2)
+    dv_count2 = OpenEhr::RM::DataTypes::Quantity::DvCount.new(2)
     dv_count3 = @dv_count + dv_count2
     assert 3, dv_count3.magnitude
@@ -326,13 +326,13 @@
 
   def test_proportion_kind
-    assert_equal 0, OpenEHR::RM::Data_Types::Quantity::Proportion_Kind::PK_RATIO
-    assert_equal 1, OpenEHR::RM::Data_Types::Quantity::Proportion_Kind::PK_UNITARY
-    assert_equal 2, OpenEHR::RM::Data_Types::Quantity::Proportion_Kind::PK_PERCENT
-    assert_equal 3, OpenEHR::RM::Data_Types::Quantity::Proportion_Kind::PK_FRACTION
-    assert_equal 4, OpenEHR::RM::Data_Types::Quantity::Proportion_Kind::PK_INTEGER_FRACTION
-    assert OpenEHR::RM::Data_Types::Quantity::Proportion_Kind.valid_proportion_kind?(0)
-    assert OpenEHR::RM::Data_Types::Quantity::Proportion_Kind.valid_proportion_kind?(4)
-    assert !OpenEHR::RM::Data_Types::Quantity::Proportion_Kind.valid_proportion_kind?(-1)
-    assert !OpenEHR::RM::Data_Types::Quantity::Proportion_Kind.valid_proportion_kind?(5)
+    assert_equal 0, OpenEhr::RM::DataTypes::Quantity::ProportionKind::PK_RATIO
+    assert_equal 1, OpenEhr::RM::DataTypes::Quantity::ProportionKind::PK_UNITARY
+    assert_equal 2, OpenEhr::RM::DataTypes::Quantity::ProportionKind::PK_PERCENT
+    assert_equal 3, OpenEhr::RM::DataTypes::Quantity::ProportionKind::PK_FRACTION
+    assert_equal 4, OpenEhr::RM::DataTypes::Quantity::ProportionKind::PK_INTEGER_FRACTION
+    assert OpenEhr::RM::DataTypes::Quantity::ProportionKind.valid_proportion_kind?(0)
+    assert OpenEhr::RM::DataTypes::Quantity::ProportionKind.valid_proportion_kind?(4)
+    assert !OpenEhr::RM::DataTypes::Quantity::ProportionKind.valid_proportion_kind?(-1)
+    assert !OpenEhr::RM::DataTypes::Quantity::ProportionKind.valid_proportion_kind?(5)
   end
 
@@ -343,18 +343,18 @@
     assert_equal 2.0/3.0, @dv_proportion.magnitude
     assert @dv_proportion.is_integral?
-    dv_proportion2 = OpenEHR::RM::Data_Types::Quantity::DV_Proportion.new(1,3,0)
+    dv_proportion2 = OpenEhr::RM::DataTypes::Quantity::DvProportion.new(1,3,0)
     assert @dv_proportion.is_strictly_comparable_to?(dv_proportion2)
-    dv_proportion2 = OpenEHR::RM::Data_Types::Quantity::DV_Proportion.new(1,3,4)
+    dv_proportion2 = OpenEhr::RM::DataTypes::Quantity::DvProportion.new(1,3,4)
     assert !@dv_proportion.is_strictly_comparable_to?(dv_proportion2)
     assert_raise(ArgumentError){
-      dv_proportion2 = OpenEHR::RM::Data_Types::Quantity::DV_Proportion.new(1.5,2.3,3)}
-    assert_raise(ArgumentError){
-      dv_proportion2 = OpenEHR::RM::Data_Types::Quantity::DV_Proportion.new(10,10,1)}
-    assert_nothing_raised(Exception){
-      dv_proportion2 = OpenEHR::RM::Data_Types::Quantity::DV_Proportion.new(10,1,1)}
-    assert_raise(ArgumentError){
-      dv_proportion2 = OpenEHR::RM::Data_Types::Quantity::DV_Proportion.new(10,10,2)}
-    assert_nothing_raised(Exception){
-      dv_proportion2 = OpenEHR::RM::Data_Types::Quantity::DV_Proportion.new(10,100,2)}
+      dv_proportion2 = OpenEhr::RM::DataTypes::Quantity::DvProportion.new(1.5,2.3,3)}
+    assert_raise(ArgumentError){
+      dv_proportion2 = OpenEhr::RM::DataTypes::Quantity::DvProportion.new(10,10,1)}
+    assert_nothing_raised(Exception){
+      dv_proportion2 = OpenEhr::RM::DataTypes::Quantity::DvProportion.new(10,1,1)}
+    assert_raise(ArgumentError){
+      dv_proportion2 = OpenEhr::RM::DataTypes::Quantity::DvProportion.new(10,10,2)}
+    assert_nothing_raised(Exception){
+      dv_proportion2 = OpenEhr::RM::DataTypes::Quantity::DvProportion.new(10,100,2)}
   end
 
@@ -363,20 +363,20 @@
 class EncapsulatedTest < Test::Unit::TestCase
   def setup
-    charset = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('UTF-8','character-sets')
-    language = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('ja', 'languages')
-    assert_nothing_raised(Exception){
-      @dv_encapsulated = OpenEHR::RM::Data_Types::Encapsulated::DV_Encapsulated.new(charset, language, 10)}
-    assert_nothing_raised(Exception){
-      @dv_parsable = OpenEHR::RM::Data_Types::Encapsulated::DV_Parsable.new(charset, language, 10, 'XML','<TEST>test</TEST>')}
-    media_type = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('text/html', 'media-types')
-    uri = OpenEHR::RM::Data_Types::URI::DV_URI.new("http://www.openehr.jp/changeset/test?cmd=93#file0")
-    assert_nothing_raised(Exception){
-      @dv_multimedia = OpenEHR::RM::Data_Types::Encapsulated::DV_Multimedia.new(charset, language, 10, media_type, uri)}
+    charset = OpenEhr::RM::DataTypes::Text::CodePhrase.new('UTF-8','character-sets')
+    language = OpenEhr::RM::DataTypes::Text::CodePhrase.new('ja', 'languages')
+    assert_nothing_raised(Exception){
+      @dv_encapsulated = OpenEhr::RM::DataTypes::Encapsulated::DvEncapsulated.new(charset, language, 10)}
+    assert_nothing_raised(Exception){
+      @dv_parsable = OpenEhr::RM::DataTypes::Encapsulated::DvParsable.new(charset, language, 10, 'XML','<TEST>test</TEST>')}
+    media_type = OpenEhr::RM::DataTypes::Text::CodePhrase.new('text/html', 'media-types')
+    uri = OpenEhr::RM::DataTypes::Uri::DvUri.new("http://www.openehr.jp/changeset/test?cmd=93#file0")
+    assert_nothing_raised(Exception){
+      @dv_multimedia = OpenEhr::RM::DataTypes::Encapsulated::DvMultimedia.new(charset, language, 10, media_type, uri)}
   end
 
   def test_init
-    assert_instance_of OpenEHR::RM::Data_Types::Encapsulated::DV_Encapsulated, @dv_encapsulated
-    assert_instance_of OpenEHR::RM::Data_Types::Encapsulated::DV_Parsable, @dv_parsable
-    assert_instance_of OpenEHR::RM::Data_Types::Encapsulated::DV_Multimedia, @dv_multimedia
+    assert_instance_of OpenEhr::RM::DataTypes::Encapsulated::DvEncapsulated, @dv_encapsulated
+    assert_instance_of OpenEhr::RM::DataTypes::Encapsulated::DvParsable, @dv_parsable
+    assert_instance_of OpenEhr::RM::DataTypes::Encapsulated::DvMultimedia, @dv_multimedia
   end
 
@@ -385,12 +385,12 @@
     assert_equal 'ja', @dv_encapsulated.language.code_string
     assert_equal 10, @dv_encapsulated.size
-    wrong_charset = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('USO8000', 'character-sets')
+    wrong_charset = OpenEhr::RM::DataTypes::Text::CodePhrase.new('USO8000', 'character-sets')
     assert_raise(ArgumentError){@dv_encapsulated.charset = wrong_charset}
-    charset = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('EUC-JP', 'character-sets')
+    charset = OpenEhr::RM::DataTypes::Text::CodePhrase.new('EUC-JP', 'character-sets')
     assert_nothing_raised(Exception){@dv_encapsulated.charset = charset}
     assert_equal 'EUC-JP', @dv_encapsulated.charset.code_string
-    wrong_language = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('jpg', 'language')
+    wrong_language = OpenEhr::RM::DataTypes::Text::CodePhrase.new('jpg', 'language')
     assert_raise(ArgumentError){@dv_encapsulated.language = wrong_language}
-    language = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('eng', 'language')
+    language = OpenEhr::RM::DataTypes::Text::CodePhrase.new('eng', 'language')
     assert_nothing_raised(Exception){@dv_encapsulated.language = language}
     assert_equal 'eng', @dv_encapsulated.language.code_string
@@ -429,12 +429,12 @@
 
 class TestDvTimeSpecification < Test::Unit::TestCase
-  include OpenEHR::RM::Data_Types::Time_Specification
-  include OpenEHR::RM::Data_Types::Encapsulated
-  def setup
-    charset = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('UTF-8','character-sets')
-    language = OpenEHR::RM::Data_Types::Text::Code_Phrase.new('ja', 'languages')
-    assert_nothing_raised(Exception){
-      dv_parsable = DV_Parsable.new(charset, language, 10, 'XML','<TEST>test</TEST>')
-      @dv_time_specification = DV_Time_Specification.new(dv_parsable)}
+  include OpenEhr::RM::DataTypes::TimeSpecification
+  include OpenEhr::RM::DataTypes::Encapsulated
+  def setup
+    charset = OpenEhr::RM::DataTypes::Text::CodePhrase.new('UTF-8','character-sets')
+    language = OpenEhr::RM::DataTypes::Text::CodePhrase.new('ja', 'languages')
+    assert_nothing_raised(Exception){
+      dv_parsable = DvParsable.new(charset, language, 10, 'XML','<TEST>test</TEST>')
+      @dv_time_specification = DvTimeSpecification.new(dv_parsable)}
 #    assert_nothing_raised(Exception){
 #      @dv_periodic_time_specification = DV_Periodic_Time_Specification.new('[200004181100;200004181110]/(7d)@DWIST', charset, language, 10, 'HL7:PIVL')}
@@ -442,5 +442,5 @@
 
   def test_init
-    assert_instance_of DV_Time_Specification, @dv_time_specification
+    assert_instance_of DvTimeSpecification, @dv_time_specification
   end
 
Index: ruby/trunk/lib/models/tests/rm/test_security.rb
===================================================================
--- ruby/trunk/lib/models/tests/rm/test_security.rb	(revision 290)
+++ ruby/trunk/lib/models/tests/rm/test_security.rb	(revision 291)
@@ -5,9 +5,9 @@
   def setup
     assert_nothing_raised(Exception){
-      @access_control_setting = OpenEHR::RM::Security::Access_Control_Settings.new}
+      @access_control_setting = OpenEhr::RM::Security::AccessControlSettings.new}
   end
 
   def test_init
-    assert_instance_of OpenEHR::RM::Security::Access_Control_Settings, @access_control_setting
+    assert_instance_of OpenEhr::RM::Security::AccessControlSettings, @access_control_setting
   end
 end
Index: ruby/trunk/lib/models/tests/rm/test_support.rb
===================================================================
--- ruby/trunk/lib/models/tests/rm/test_support.rb	(revision 290)
+++ ruby/trunk/lib/models/tests/rm/test_support.rb	(revision 291)
@@ -5,6 +5,6 @@
 class RM_Support_Definition_Test < Test::Unit::TestCase
     def test_constant
-    assert_equal("\r", OpenEHR::RM::Support::Definition::OpenEHR_Definitions::CR)
-    assert_equal("\n", OpenEHR::RM::Support::Definition::OpenEHR_Definitions::LF)
+    assert_equal("\r", OpenEhr::RM::Support::Definition::OpenEHRDefinitions::CR)
+    assert_equal("\n", OpenEhr::RM::Support::Definition::OpenEHRDefinitions::LF)
   end
 end
@@ -13,4 +13,5 @@
 class RM_Support_Identification_Test < Test::Unit::TestCase
   def setup
+<<<<<<< .working
     assert_nothing_raised(Exception){@object_id = OpenEHR::RM::Support::Identification::Object_ID.new("0.0.3")}
     assert_nothing_raised(Exception){@object_ref = OpenEHR::RM::Support::Identification::Object_Ref.new('local', 'ANY', @object_id)}
@@ -25,20 +26,34 @@
     assert_nothing_raised(Exception){@version_tree_id = OpenEHR::RM::Support::Identification::Version_Tree_ID.new('1.2.3')}
     assert_nothing_raised(Exception){@object_version_id = OpenEHR::RM::Support::Identification::Object_Version_ID.new('ABC::DEF::1.2.3')}
+=======
+    assert_nothing_raised(Exception){@object_id = OpenEhr::RM::Support::Identification::ObjectId.new("0.0.3")}
+    assert_nothing_raised(Exception){@object_ref = OpenEhr::RM::Support::Identification::ObjectRef.new('local', 'ANY', @object_id)}
+    assert_nothing_raised(Exception){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", "biochemistry result_cholesterol", "entry", "ehr_rm", "openehr","cholesterol","0.0.3")}
+    assert_nothing_raised(Exception){@terminology_id = OpenEhr::RM::Support::Identification::TerminologyId.new('ICD10(2003)')}
+    assert_nothing_raised(Exception){@generic_id = OpenEhr::RM::Support::Identification::GenericId.new("0.0.3", "openehr")}
+    assert_nothing_raised(Exception){@uid_based_id = OpenEhr::RM::Support::Identification::UidBasedId.new('rrip::0.0.3')}
+    assert_nothing_raised(Exception){@hier_object_id = OpenEhr::RM::Support::Identification::HierObjectId.new('0.0.4')}
+    assert_nothing_raised(Exception){@locatable_ref = OpenEhr::RM::Support::Identification::LocatableRef.new('unknown', 'PERSON', @uid_based_id, 'data/event[at0001, standing]')}
+    assert_nothing_raised(Exception){@party_ref = OpenEhr::RM::Support::Identification::PartyRef.new('unknown', 'ORGANISATION', @object_id)}
+    assert_nothing_raised(Exception){@access_group_ref = OpenEhr::RM::Support::Identification::AccessGroupRef.new('unknown', 'ACCESS_GROUP', @object_id)}
+    assert_nothing_raised(Exception){@version_tree_id = OpenEhr::RM::Support::Identification::VersionTreeId.new('1.2.3')}
+    assert_nothing_raised(Exception){@object_version_id = OpenEhr::RM::Support::Identification::ObjectVersionId.new('ABC::DEF::1.2.3')}
+>>>>>>> .merge-right.r168
   end
   
   def test_init
-    assert_instance_of OpenEHR::RM::Support::Identification::Object_ID, @object_id
-    assert_instance_of OpenEHR::RM::Support::Identification::Object_Ref, @object_ref
-    assert_instance_of OpenEHR::RM::Support::Identification::Archetype_ID, @archetype_id
-    assert_instance_of OpenEHR::RM::Support::Identification::Terminology_ID, @terminology_id
-    assert_instance_of OpenEHR::RM::Support::Identification::Object_ID, @object_id
-    assert_instance_of OpenEHR::RM::Support::Identification::Generic_ID, @generic_id
-    assert_instance_of OpenEHR::RM::Support::Identification::UID_Based_ID, @uid_based_id
-    assert_instance_of OpenEHR::RM::Support::Identification::Hier_Object_ID, @hier_object_id
-    assert_instance_of OpenEHR::RM::Support::Identification::Locatable_Ref, @locatable_ref
-    assert_instance_of OpenEHR::RM::Support::Identification::Party_Ref, @party_ref
-    assert_instance_of OpenEHR::RM::Support::Identification::Access_Group_Ref, @access_group_ref
-    assert_instance_of OpenEHR::RM::Support::Identification::Version_Tree_ID, @version_tree_id
-    assert_instance_of OpenEHR::RM::Support::Identification::Object_Version_ID, @object_version_id
+    assert_instance_of OpenEhr::RM::Support::Identification::ObjectId, @object_id
+    assert_instance_of OpenEhr::RM::Support::Identification::ObjectRef, @object_ref
+    assert_instance_of OpenEhr::RM::Support::Identification::ArchetypeId, @archetype_id
+    assert_instance_of OpenEhr::RM::Support::Identification::TerminologyId, @terminology_id
+    assert_instance_of OpenEhr::RM::Support::Identification::ObjectId, @object_id
+    assert_instance_of OpenEhr::RM::Support::Identification::GenericId, @generic_id
+    assert_instance_of OpenEhr::RM::Support::Identification::UidBasedId, @uid_based_id
+    assert_instance_of OpenEhr::RM::Support::Identification::HierObjectId, @hier_object_id
+    assert_instance_of OpenEhr::RM::Support::Identification::LocatableRef, @locatable_ref
+    assert_instance_of OpenEhr::RM::Support::Identification::PartyRef, @party_ref
+    assert_instance_of OpenEhr::RM::Support::Identification::AccessGroupRef, @access_group_ref
+    assert_instance_of OpenEhr::RM::Support::Identification::VersionTreeId, @version_tree_id
+    assert_instance_of OpenEhr::RM::Support::Identification::ObjectVersionId, @object_version_id
   end
 
@@ -49,8 +64,8 @@
     assert_raise(ArgumentError){@object_id.value=nil}
     assert_raise(ArgumentError){@object_id.value=""}
-    assert_raise(ArgumentError){@object_id = OpenEHR::RM::Support::Identification::Object_ID.new}
-    assert_raise(ArgumentError){@object_id = OpenEHR::RM::Support::Identification::Object_ID.new(nil)}
-    assert_raise(ArgumentError){@object_id = OpenEHR::RM::Support::Identification::Object_ID.new("")}
-    assert_equal @object_id, OpenEHR::RM::Support::Identification::Object_ID.new("0.0.4")
+    assert_raise(ArgumentError){@object_id = OpenEhr::RM::Support::Identification::ObjectId.new}
+    assert_raise(ArgumentError){@object_id = OpenEhr::RM::Support::Identification::ObjectId.new(nil)}
+    assert_raise(ArgumentError){@object_id = OpenEhr::RM::Support::Identification::ObjectId.new("")}
+    assert_equal @object_id, OpenEhr::RM::Support::Identification::ObjectId.new("0.0.4")
   end
 
@@ -60,10 +75,10 @@
     assert_equal @object_id, @object_ref.id
 
-    assert_raise(ArgumentError){@object_ref = OpenEHR::RM::Support::Identification::Archetype_ID.new}
-    assert_raise(ArgumentError){@object_ref = OpenEHR::RM::Support::Identification::Archetype_ID.new(nil, 'ANY', @object_id)}
-    assert_raise(ArgumentError){@object_ref = OpenEHR::RM::Support::Identification::Archetype_ID.new('', 'ANY', @object_id)}
-    assert_raise(ArgumentError){@object_ref = OpenEHR::RM::Support::Identification::Archetype_ID.new('local', nil, @object_id)}
-    assert_raise(ArgumentError){@object_ref = OpenEHR::RM::Support::Identification::Archetype_ID.new('local', '', @object_id)}
-    assert_raise(ArgumentError){@object_ref = OpenEHR::RM::Support::Identification::Archetype_ID.new('local', 'ANY', nil)}
+    assert_raise(ArgumentError){@object_ref = OpenEhr::RM::Support::Identification::ArchetypeId.new}
+    assert_raise(ArgumentError){@object_ref = OpenEhr::RM::Support::Identification::ArchetypeId.new(nil, 'ANY', @object_id)}
+    assert_raise(ArgumentError){@object_ref = OpenEhr::RM::Support::Identification::ArchetypeId.new('', 'ANY', @object_id)}
+    assert_raise(ArgumentError){@object_ref = OpenEhr::RM::Support::Identification::ArchetypeId.new('local', nil, @object_id)}
+    assert_raise(ArgumentError){@object_ref = OpenEhr::RM::Support::Identification::ArchetypeId.new('local', '', @object_id)}
+    assert_raise(ArgumentError){@object_ref = OpenEhr::RM::Support::Identification::ArchetypeId.new('local', 'ANY', nil)}
 
     assert_nothing_raised(Exception){@object_ref.namespace = 'terminology'}
@@ -79,10 +94,11 @@
     assert_raise(ArgumentError){@object_ref.type = ''}
 
-    assert_nothing_raised(Exception){@object_ref.id = OpenEHR::RM::Support::Identification::Object_ID.new("0.0.5")}
-    assert_equal OpenEHR::RM::Support::Identification::Object_ID.new("0.0.5"), @object_ref.id
+    assert_nothing_raised(Exception){@object_ref.id = OpenEhr::RM::Support::Identification::ObjectId.new("0.0.5")}
+    assert_equal OpenEhr::RM::Support::Identification::ObjectId.new("0.0.5"), @object_ref.id
     assert_raise(ArgumentError){@object_ref.id = nil}
   end
 
   def test_archetype_id
+<<<<<<< .working
     assert_equal 'openEHR-EHR-SECTION.physical_examination-prenatal.v2', @archetype_id.value
     assert_equal 'openEHR-EHR-SECTION', @archetype_id.qualified_rm_entity
@@ -93,4 +109,62 @@
     assert_equal 'prenatal', @archetype_id.specialisation
     assert_equal 'v2', @archetype_id.version_id
+=======
+    assert_equal "0.0.5", @archetype_id.value
+    assert_nothing_raised(Exception){@archetype_id.value = "0.0.6"}
+    assert_equal "0.0.6", @archetype_id.value
+    assert_raise(ArgumentError){@archetype_id.value=nil}
+    assert_raise(ArgumentError){@archetype_id.value=""}
+    assert_raise(ArgumentError){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new}
+    assert_raise(ArgumentError){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new(nil, "biochemistry result_cholesterol", "entry", "ehr_rm", "openehr","cholesterol","0.0.3")}
+    assert_raise(ArgumentError){@object_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("", "biochemistry result_cholesterol", "entry", "ehr_rm", "openehr","cholesterol","0.0.3")}
+    assert_raise(ArgumentError){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", nil, "entry", "ehr_rm", "openehr","cholesterol","0.0.3")}
+    assert_raise(ArgumentError){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", "", "entry", "ehr_rm", "openehr","cholesterol","0.0.3")}
+    assert_raise(ArgumentError){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", "biochemistry result_cholesterol", nil, "ehr_rm", "openehr","cholesterol","0.0.3")}
+    assert_raise(ArgumentError){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", "biochemistry result_cholesterol", "", "ehr_rm", "openehr","cholesterol","0.0.3")}
+    assert_raise(ArgumentError){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", "biochemistry result_cholesterol", "entry", nil, "openehr","cholesterol","0.0.3")}
+    assert_raise(ArgumentError){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", "biochemistry result_cholesterol", "entry", "", "openehr","cholesterol","0.0.3")}
+    assert_raise(ArgumentError){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", "biochemistry result_cholesterol", "entry", "ehr_rm", nil,"cholesterol","0.0.3")}
+    assert_raise(ArgumentError){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", "biochemistry result_cholesterol", "entry", "ehr_rm", "","cholesterol","0.0.3")}
+    assert_raise(ArgumentError){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", "biochemistry result_cholesterol", "entry", "ehr_rm", "openehr",nil ,"0.0.3")}
+    assert_raise(ArgumentError){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", "biochemistry result_cholesterol", "entry", "ehr_rm", "openehr","","0.0.3")}
+    assert_raise(ArgumentError){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", "biochemistry result_cholesterol", "entry", "ehr_rm", "openehr","cholesterol", nil)}
+    assert_raise(ArgumentError){@archetype_id = OpenEhr::RM::Support::Identification::ArchetypeId.new("0.0.5", "biochemistry result_cholesterol", "entry", "ehr_rm", "openehr","cholesterol","")}
+
+    assert_equal "biochemistry result_cholesterol", @archetype_id.domain_concept
+    assert_nothing_raised(Exception){(@archetype_id.domain_concept = "biochemistry result_triglyceride")}
+    assert_equal "biochemistry result_triglyceride", @archetype_id.domain_concept
+    assert_raise(ArgumentError){@archetype_id.domain_concept = nil}
+    assert_raise(ArgumentError){@archetype_id.domain_concept = ""}
+
+    assert_equal "entry", @archetype_id.rm_name
+    assert_nothing_raised(Exception){@archetype_id.rm_name = "section"}
+    assert_equal "section", @archetype_id.rm_name
+    assert_raise(ArgumentError){@archetype_id.rm_name = nil}
+    assert_raise(ArgumentError){@archetype_id.rm_name = ""}
+
+    assert_equal "ehr_rm", @archetype_id.rm_entity
+    assert_nothing_raised(Exception){@archetype_id.rm_entity = "13606"}
+    assert_equal "13606", @archetype_id.rm_entity
+    assert_raise(ArgumentError){@archetype_id.rm_entity = nil}
+    assert_raise(ArgumentError){@archetype_id.rm_entity = ""}
+
+    assert_equal "openehr", @archetype_id.rm_originator
+    assert_nothing_raised(Exception){@archetype_id.rm_originator = "cen"}
+    assert_equal "cen", @archetype_id.rm_originator
+    assert_raise(ArgumentError){@archetype_id.rm_originator = nil}
+    assert_raise(ArgumentError){@archetype_id.rm_originator = ""}
+
+    assert_equal "cholesterol", @archetype_id.specialisation
+    assert_nothing_raised(Exception){@archetype_id.specialisation = "triglyceride"}
+    assert_equal "triglyceride", @archetype_id.specialisation
+    assert_raise(ArgumentError){@archetype_id.specialisation = nil}
+    assert_raise(ArgumentError){@archetype_id.specialisation = ""}
+
+    assert_equal "0.0.3", @archetype_id.version_id
+    assert_nothing_raised(Exception){@archetype_id.version_id = "0.0.7"}
+    assert_equal "0.0.7", @archetype_id.version_id
+    assert_raise(ArgumentError){@archetype_id.version_id = nil}
+    assert_raise(ArgumentError){@archetype_id.version_id = ""}
+>>>>>>> .merge-right.r168
   end
 
@@ -103,9 +177,9 @@
     assert_raise(ArgumentError){@terminology_id.value = ""}
 
-    assert_raise(ArgumentError){@terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new}
-    assert_raise(ArgumentError){@terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new(nil,'2008')}
-    assert_raise(ArgumentError){@terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new('','02008')}
-    assert_raise(ArgumentError){@terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new("SNOMED", nil)}
-    assert_nothing_raised(Exception){@terminology_id = OpenEHR::RM::Support::Identification::Terminology_ID.new("SNOMED")}
+    assert_raise(ArgumentError){@terminology_id = OpenEhr::RM::Support::Identification::TerminologyId.new}
+    assert_raise(ArgumentError){@terminology_id = OpenEhr::RM::Support::Identification::TerminologyId.new(nil,'2008')}
+    assert_raise(ArgumentError){@terminology_id = OpenEhr::RM::Support::Identification::TerminologyId.new('','02008')}
+    assert_raise(ArgumentError){@terminology_id = OpenEhr::RM::Support::Identification::TerminologyId.new("SNOMED", nil)}
+    assert_nothing_raised(Exception){@terminology_id = OpenEhr::RM::Support::Identification::TerminologyId.new("SNOMED")}
 
     assert_equal "SNOMED", @terminology_id.name
@@ -127,8 +201,8 @@
     assert_equal "openehr", @generic_id.scheme
 
-    assert_raise(ArgumentError){@generic_id = OpenEHR::RM::Support::Identification::Generic_ID.new(nil, "openehr")}
-    assert_raise(ArgumentError){@generic_id = OpenEHR::RM::Support::Identification::Generic_ID.new("", "openehr")}
-    assert_raise(ArgumentError){@generic_id = OpenEHR::RM::Support::Identification::Generic_ID.new("0.0.3", nil)}
-    assert_raise(ArgumentError){@generic_id = OpenEHR::RM::Support::Identification::Generic_ID.new("0.0.3", "")}
+    assert_raise(ArgumentError){@generic_id = OpenEhr::RM::Support::Identification::GenericId.new(nil, "openehr")}
+    assert_raise(ArgumentError){@generic_id = OpenEhr::RM::Support::Identification::GenericId.new("", "openehr")}
+    assert_raise(ArgumentError){@generic_id = OpenEhr::RM::Support::Identification::GenericId.new("0.0.3", nil)}
+    assert_raise(ArgumentError){@generic_id = OpenEhr::RM::Support::Identification::GenericId.new("0.0.3", "")}
 
     assert_raise(ArgumentError){@generic_id.value = nil}
@@ -149,6 +223,6 @@
     assert @uid_based_id.has_extension?
 
-    assert_raise(ArgumentError){@uid_based_id = OpenEHR::RM::Support::Identification::UID_Based_ID.new(nil)}
-    assert_raise(ArgumentError){@uid_based_id = OpenEHR::RM::Support::Identification::UID_Based_ID.new('')}
+    assert_raise(ArgumentError){@uid_based_id = OpenEhr::RM::Support::Identification::UidBasedId.new(nil)}
+    assert_raise(ArgumentError){@uid_based_id = OpenEhr::RM::Support::Identification::UidBasedId.new('')}
     assert_raise(ArgumentError){@uid_based_id.value = nil}
     assert_raise(ArgumentError){@uid_based_id.value = ''}
Index: ruby/trunk/lib/models/tests/test_archetype_model.rb
===================================================================
--- ruby/trunk/lib/models/tests/test_archetype_model.rb	(revision 290)
+++ ruby/trunk/lib/models/tests/test_archetype_model.rb	(revision 291)
@@ -5,25 +5,25 @@
 class ArchetypeModelTest < Test::Unit::TestCase
   def setup
-    @archetype = OpenEHR::AM::Archetype::ARCHETYPE.new
-    @validity_kind = OpenEHR::AM::Archetype::VALIDITY_KIND.new
+    @archetype = OpenEhr::AM::Archetype::ARCHETYPE.new
+    @validity_kind = OpenEhr::AM::Archetype::VALIDITY_KIND.new
 
-    @archetype_description = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new
-    @archetype_description_item = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION_ITEM.new
+    @archetype_description = OpenEhr::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new
+    @archetype_description_item = OpenEhr::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION_ITEM.new
   end
   
   def test_init
-    assert_instance_of OpenEHR::AM::Archetype::ARCHETYPE, @archetype
-    assert_instance_of OpenEHR::AM::Archetype::VALIDITY_KIND, @validity_kind
-    assert_instance_of OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, @archetype_description
-    assert_instance_of OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION_ITEM, @archetype_description_item
-    assert_instance_of OpenEHR::AM::Archetype::ARCHETYPE, @archetype
+    assert_instance_of OpenEhr::AM::Archetype::ARCHETYPE, @archetype
+    assert_instance_of OpenEhr::AM::Archetype::VALIDITY_KIND, @validity_kind
+    assert_instance_of OpenEhr::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, @archetype_description
+    assert_instance_of OpenEhr::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION_ITEM, @archetype_description_item
+    assert_instance_of OpenEhr::AM::Archetype::ARCHETYPE, @archetype
   end
 
   def test_create
-    archetype_instance = OpenEHR::AM::Archetype::ARCHETYPE.create() do |archetype|
+    archetype_instance = OpenEhr::AM::Archetype::ARCHETYPE.create() do |archetype|
       archetype.adl_version = '1.4'
     end
 
-    assert_instance_of OpenEHR::AM::Archetype::ARCHETYPE, archetype_instance
+    assert_instance_of OpenEhr::AM::Archetype::ARCHETYPE, archetype_instance
   end
 end
@@ -31,49 +31,49 @@
 class ArchetypeModelConstraintTest < Test::Unit::TestCase
   def setup
-    @archetype_constraint = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT.new
-    @cardinality = OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY.new    
+    @archetype_constraint = OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT.new
+    @cardinality = OpenEhr::AM::Archetype::Constraint_Model::CARDINALITY.new
     
-    @archetype_constraint = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT.new
-    @c_object = OpenEHR::AM::Archetype::Constraint_Model::C_OBJECT.new
-    @c_defined_object = OpenEHR::AM::Archetype::Constraint_Model::C_DEFINED_OBJECT.new
-    @c_attribute = OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE.new
-    @c_single_attribute = OpenEHR::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE.new
-    @c_multiple_attribute = OpenEHR::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE.new(:rm_attribute_name => 'attribute_name', :cardinality => @cardinality)
-    @c_primitive_object = OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.new
-    @c_reference_object =  OpenEHR::AM::Archetype::Constraint_Model::C_REFERENCE_OBJECT.new
-    @archetype_internal_ref =  OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new
-    @archetype_slot = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new
-    @constraint_ref = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new
-    @c_domain_type = OpenEHR::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE.new
-    @c_complex_object = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => [@c_single_attribute])
+    @archetype_constraint = OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT.new
+    @c_object = OpenEhr::AM::Archetype::Constraint_Model::C_OBJECT.new
+    @c_defined_object = OpenEhr::AM::Archetype::Constraint_Model::C_DEFINED_OBJECT.new
+    @c_attribute = OpenEhr::AM::Archetype::Constraint_Model::C_ATTRIBUTE.new
+    @c_single_attribute = OpenEhr::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE.new
+    @c_multiple_attribute = OpenEhr::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE.new(:rm_attribute_name => 'attribute_name', :cardinality => @cardinality)
+    @c_primitive_object = OpenEhr::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.new
+    @c_reference_object =  OpenEhr::AM::Archetype::Constraint_Model::C_REFERENCE_OBJECT.new
+    @archetype_internal_ref =  OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new
+    @archetype_slot = OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new
+    @constraint_ref = OpenEhr::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new
+    @c_domain_type = OpenEhr::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE.new
+    @c_complex_object = OpenEhr::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => [@c_single_attribute])
   end
 
   def test_init
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT, @archetype_constraint
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_OBJECT, @c_object
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_DEFINED_OBJECT, @c_defined_object
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE, @c_attribute
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE, @c_single_attribute
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE, @c_multiple_attribute
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT, @archetype_constraint
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_OBJECT, @c_object
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_DEFINED_OBJECT, @c_defined_object
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_ATTRIBUTE, @c_attribute
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE, @c_single_attribute
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE, @c_multiple_attribute
     assert_equal 'attribute_name', @c_multiple_attribute.rm_attribute_name
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY, @c_multiple_attribute.cardinality
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT, @c_primitive_object
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_REFERENCE_OBJECT, @c_reference_object
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF, @archetype_internal_ref
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT, @archetype_slot
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF, @constraint_ref
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE, @c_domain_type
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, @c_complex_object
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::CARDINALITY, @c_multiple_attribute.cardinality
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT, @c_primitive_object
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_REFERENCE_OBJECT, @c_reference_object
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF, @archetype_internal_ref
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT, @archetype_slot
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::CONSTRAINT_REF, @constraint_ref
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE, @c_domain_type
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, @c_complex_object
     assert_instance_of Array, @c_complex_object.attributes
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT, @archetype_constraint
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY, @cardinality
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT, @archetype_constraint
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::CARDINALITY, @cardinality
   end
 
   def test_create
-    c_complex_object = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:node_id => 'test_node',
+    c_complex_object = OpenEhr::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:node_id => 'test_node',
                                                                                          :attributes => [1,2],
                                                                                          :assumed_value => Array
                                                                                          )
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, c_complex_object
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, c_complex_object
     assert_equal 'test_node', c_complex_object.node_id
   end
@@ -83,26 +83,26 @@
   def setup
     #@c_primitive = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE.new
-    @c_boolean = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true,
+    @c_boolean = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true,
                                                                                     :false_valid => true,
                                                                                     :assumed_value => true)
-    @c_string = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_STRING.new
-    @c_integer = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.new
-    @c_real = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_REAL.new
-    @c_time = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_TIME.new
-    @c_date = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE.new
-    @c_date_time = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME.new
-    @c_duration = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DURATION.new
+    @c_string = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_STRING.new
+    @c_integer = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.new
+    @c_real = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_REAL.new
+    @c_time = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_TIME.new
+    @c_date = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_DATE.new
+    @c_date_time = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME.new
+    @c_duration = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_DURATION.new
   end
 
   def test_init
     #assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE, @c_primitive
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN, @c_boolean
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_STRING, @c_string
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER, @c_integer
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_REAL, @c_real
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_TIME, @c_time
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE, @c_date
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME, @c_date_time
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DURATION, @c_duration
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN, @c_boolean
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_STRING, @c_string
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_INTEGER, @c_integer
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_REAL, @c_real
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_TIME, @c_time
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_DATE, @c_date
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME, @c_date_time
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_DURATION, @c_duration
   end
 
@@ -119,5 +119,5 @@
     end
     assert_raise(ArgumentError) do 
-      OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid =>false,
+      OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid =>false,
                                                                          :false_valid => false,
                                                                          :assumed_value => false)
@@ -129,11 +129,11 @@
 class ArchetypeModelOntologyTest < Test::Unit::TestCase
   def setup
-    @archetype_ontology = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new
-    @archetype_term = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_TERM.new(:code => '', :items => '')
+    @archetype_ontology = OpenEhr::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new
+    @archetype_term = OpenEhr::AM::Archetype::Ontology::ARCHETYPE_TERM.new(:code => '', :items => '')
   end
 
   def test_init
-    assert_instance_of OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY, @archetype_ontology
-    assert_instance_of OpenEHR::AM::Archetype::Ontology::ARCHETYPE_TERM, @archetype_term
+    assert_instance_of OpenEhr::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY, @archetype_ontology
+    assert_instance_of OpenEhr::AM::Archetype::Ontology::ARCHETYPE_TERM, @archetype_term
   end
 end
@@ -141,23 +141,23 @@
 class ArchetypeModelAssertionTest < Test::Unit::TestCase
   def setup
-    @assertion = OpenEHR::AM::Archetype::Assertion::ASSERTION.new
-    @assertion_variable = OpenEHR::AM::Archetype::Assertion::ASSERTION_VARIABLE.new
-    @operator_kind = OpenEHR::AM::Archetype::Assertion::OPERATOR_KIND.new
-    @expr_item = OpenEHR::AM::Archetype::Assertion::EXPR_ITEM.new
-    @expr_leaf = OpenEHR::AM::Archetype::Assertion::EXPR_LEAF.new
-    @expr_operator = OpenEHR::AM::Archetype::Assertion::EXPR_OPERATOR.new
-    @expr_unary_operator = OpenEHR::AM::Archetype::Assertion::EXPR_UNARY_OPERATOR.new
-    @expr_binary_operator = OpenEHR::AM::Archetype::Assertion::EXPR_BINARY_OPERATOR.new
+    @assertion = OpenEhr::AM::Archetype::Assertion::ASSERTION.new
+    @assertion_variable = OpenEhr::AM::Archetype::Assertion::ASSERTION_VARIABLE.new
+    @operator_kind = OpenEhr::AM::Archetype::Assertion::OPERATOR_KIND.new
+    @expr_item = OpenEhr::AM::Archetype::Assertion::EXPR_ITEM.new
+    @expr_leaf = OpenEhr::AM::Archetype::Assertion::EXPR_LEAF.new
+    @expr_operator = OpenEhr::AM::Archetype::Assertion::EXPR_OPERATOR.new
+    @expr_unary_operator = OpenEhr::AM::Archetype::Assertion::EXPR_UNARY_OPERATOR.new
+    @expr_binary_operator = OpenEhr::AM::Archetype::Assertion::EXPR_BINARY_OPERATOR.new
   end
 
   def test_init
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::ASSERTION, @assertion
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::ASSERTION_VARIABLE, @assertion_variable
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::OPERATOR_KIND, @operator_kind
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_ITEM, @expr_item
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_LEAF, @expr_leaf
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_OPERATOR, @expr_operator
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_UNARY_OPERATOR, @expr_unary_operator
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_BINARY_OPERATOR, @expr_binary_operator
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::ASSERTION, @assertion
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::ASSERTION_VARIABLE, @assertion_variable
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::OPERATOR_KIND, @operator_kind
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::EXPR_ITEM, @expr_item
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::EXPR_LEAF, @expr_leaf
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::EXPR_OPERATOR, @expr_operator
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::EXPR_UNARY_OPERATOR, @expr_unary_operator
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::EXPR_BINARY_OPERATOR, @expr_binary_operator
   end
 end
@@ -165,29 +165,29 @@
 class ArchetypeModelProfileTest < Test::Unit::TestCase
   def setup
-    @c_dv_state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::C_DV_STATE.new
-    @state_machine = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE_MACHINE.new
-    @state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE.new
-    @terminal_state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TERMINAL_STATE.new
-    @non_terminal_state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::NON_TERMINAL_STATE.new
-    @transition = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TRANSITION.new
+    @c_dv_state = OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::C_DV_STATE.new
+    @state_machine = OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::STATE_MACHINE.new
+    @state = OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::STATE.new
+    @terminal_state = OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::TERMINAL_STATE.new
+    @non_terminal_state = OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::NON_TERMINAL_STATE.new
+    @transition = OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::TRANSITION.new
 
-    @c_code_phase = OpenEHR::AM::OpenEHR_Profile::Data_Types::Text::C_CODE_PHASE.new
+    @c_code_phase = OpenEhr::AM::OpenEHR_Profile::DataTypes::Text::C_CODE_PHASE.new
 
-    @c_dv_quantity = OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_QUANTITY.new
-    @c_dv_ordinal = OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_ORDINAL.new
-    @c_quantity_item = OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_QUANTITY_ITEM.new
+    @c_dv_quantity = OpenEhr::AM::OpenEHR_Profile::DataTypes::Quantity::C_DV_QUANTITY.new
+    @c_dv_ordinal = OpenEhr::AM::OpenEHR_Profile::DataTypes::Quantity::C_DV_ORDINAL.new
+    @c_quantity_item = OpenEhr::AM::OpenEHR_Profile::DataTypes::Quantity::C_QUANTITY_ITEM.new
   end
 
   def test_init
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::C_DV_STATE, @c_dv_state
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE_MACHINE, @state_machine
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE, @state
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TERMINAL_STATE, @terminal_state
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::NON_TERMINAL_STATE, @non_terminal_state
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TRANSITION, @transition
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Text::C_CODE_PHASE, @c_code_phase
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_QUANTITY, @c_dv_quantity
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_ORDINAL, @c_dv_ordinal
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_QUANTITY_ITEM, @c_quantity_item
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::C_DV_STATE, @c_dv_state
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::STATE_MACHINE, @state_machine
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::STATE, @state
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::TERMINAL_STATE, @terminal_state
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::NON_TERMINAL_STATE, @non_terminal_state
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::TRANSITION, @transition
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Text::C_CODE_PHASE, @c_code_phase
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Quantity::C_DV_QUANTITY, @c_dv_quantity
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Quantity::C_DV_ORDINAL, @c_dv_ordinal
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Quantity::C_QUANTITY_ITEM, @c_quantity_item
   end
 end
Index: ruby/trunk/lib/models/tests/test_assumed_library_types.rb
===================================================================
--- ruby/trunk/lib/models/tests/test_assumed_library_types.rb	(revision 290)
+++ ruby/trunk/lib/models/tests/test_assumed_library_types.rb	(revision 291)
@@ -2,23 +2,23 @@
 require 'assumed_library_types.rb'
 
-include OpenEHR::Assumed_Library_Types
+include OpenEhr::AssumedLibraryTypes
 
 class Assumed_Library_Test < Test::Unit::TestCase
   def setup
-    assert_nothing_raised(Exception){@interval = OpenEHR::Assumed_Library_Types::Interval.new(1,2)}
-    assert_nothing_raised(Exception){@iso8601_date = OpenEHR::Assumed_Library_Types::ISO8601_DATE.new('2009-04-27')}
-    assert_nothing_raised(Exception){@iso8601_time = OpenEHR::Assumed_Library_Types::ISO8601_TIME.new('15:55:37.32+0900')}
-    assert_nothing_raised(Exception){@iso8601_date_time = OpenEHR::Assumed_Library_Types::ISO8601_DATE_TIME.new('2009-04-27T15:55:37.32+0900')}
-    assert_nothing_raised(Exception){@iso8601_duration = OpenEHR::Assumed_Library_Types::ISO8601_DURATION.new('P1Y2M3W4DT5H6M7.8S')}
-    assert_nothing_raised(Exception){@iso8601_timezone = OpenEHR::Assumed_Library_Types::ISO8601_TIMEZONE.new}
+    assert_nothing_raised(Exception){@interval = OpenEhr::AssumedLibraryTypes::Interval.new(1,2)}
+    assert_nothing_raised(Exception){@iso8601_date = OpenEhr::AssumedLibraryTypes::ISO8601_DATE.new('2009-04-27')}
+    assert_nothing_raised(Exception){@iso8601_time = OpenEhr::AssumedLibraryTypes::ISO8601_TIME.new('15:55:37.32+0900')}
+    assert_nothing_raised(Exception){@iso8601_date_time = OpenEhr::AssumedLibraryTypes::ISO8601_DATE_TIME.new('2009-04-27T15:55:37.32+0900')}
+    assert_nothing_raised(Exception){@iso8601_duration = OpenEhr::AssumedLibraryTypes::ISO8601_DURATION.new('P1Y2M3W4DT5H6M7.8S')}
+    assert_nothing_raised(Exception){@iso8601_timezone = OpenEhr::AssumedLibraryTypes::ISO8601_TIMEZONE.new}
   end
 
   def test_initialize
-    assert_instance_of OpenEHR::Assumed_Library_Types::Interval, @interval
-    assert_instance_of OpenEHR::Assumed_Library_Types::ISO8601_DATE, @iso8601_date
-    assert_instance_of OpenEHR::Assumed_Library_Types::ISO8601_TIME, @iso8601_time
-    assert_instance_of OpenEHR::Assumed_Library_Types::ISO8601_DATE_TIME, @iso8601_date_time
-    assert_instance_of OpenEHR::Assumed_Library_Types::ISO8601_DURATION, @iso8601_duration
-    assert_instance_of OpenEHR::Assumed_Library_Types::ISO8601_TIMEZONE, @iso8601_timezone
+    assert_instance_of OpenEhr::AssumedLibraryTypes::Interval, @interval
+    assert_instance_of OpenEhr::AssumedLibraryTypes::ISO8601_DATE, @iso8601_date
+    assert_instance_of OpenEhr::AssumedLibraryTypes::ISO8601_TIME, @iso8601_time
+    assert_instance_of OpenEhr::AssumedLibraryTypes::ISO8601_DATE_TIME, @iso8601_date_time
+    assert_instance_of OpenEhr::AssumedLibraryTypes::ISO8601_DURATION, @iso8601_duration
+    assert_instance_of OpenEhr::AssumedLibraryTypes::ISO8601_TIMEZONE, @iso8601_timezone
   end
 
@@ -58,114 +58,114 @@
 
   def test_time_definitions
-    assert_equal OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS::DAYS_IN_LEAP_YEAR, 366
-    assert_equal OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS::DAYS_IN_WEEK, 7
-    assert_equal OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS::DAYS_IN_YEAR, 365
-    assert_equal OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS::HOURS_IN_DAY, 24
-    assert_equal OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS::MAX_DAYS_IN_MONTH, 31
-    assert_equal OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS::MAX_DAYS_IN_YEAR, 366
-    assert_equal OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS::MINUTES_IN_HOUR, 60
-    assert_equal OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS::MONTH_IN_YEAR, 12
-    assert_equal OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS::NOMINAL_DAYS_IN_MONTH, 30.42
-    assert_equal OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS::NOMINAL_DAYS_IN_YEAR, 365.24
-    assert_equal OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS::SECONDS_IN_MINUTE, 60
+    assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::DAYS_IN_LEAP_YEAR, 366
+    assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::DAYS_IN_WEEK, 7
+    assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::DAYS_IN_YEAR, 365
+    assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::HOURS_IN_DAY, 24
+    assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::MAX_DAYS_IN_MONTH, 31
+    assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::MAX_DAYS_IN_YEAR, 366
+    assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::MINUTES_IN_HOUR, 60
+    assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::MONTH_IN_YEAR, 12
+    assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::NOMINAL_DAYS_IN_MONTH, 30.42
+    assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::NOMINAL_DAYS_IN_YEAR, 365.24
+    assert_equal OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS::SECONDS_IN_MINUTE, 60
   end
 
   def test_time_definition_validity
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_year?(2008)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_year?(-20)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_year?(0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_year?(2008)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_year?(-20)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_year?(0)
 # today
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,6,19)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,6,19)
 # test valid_day lower limit
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(0,0,0)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(0,1,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(-1,1,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(0,1,0)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(0,0,0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(0,1,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(-1,1,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(0,1,0)
 # test valid_day upper and lowerlimit of each month
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(0,0,1)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,1,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,1,0)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,0,1)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,1,31)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,1,32)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,2,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,2,0)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,2,31)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,3,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,3,0)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,3,31)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,3,32)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,4,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,4,0)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,4,30)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,4,31)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,5,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,5,0)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,5,31)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,5,32)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,6,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,6,0)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,6,30)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,6,31)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,7,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,7,0)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,7,31)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,7,32)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,8,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,8,0)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,8,31)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,8,32)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,9,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,9,0)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,9,30)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,9,31)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,10,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,10,0)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,10,31)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,10,32)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,11,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,11,0)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,11,30)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,11,31)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,12,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,12,0)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,12,31)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,12,32)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(0,0,1)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,1,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,1,0)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,0,1)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,1,31)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,1,32)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,2,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,2,0)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,2,31)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,3,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,3,0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,3,31)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,3,32)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,4,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,4,0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,4,30)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,4,31)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,5,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,5,0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,5,31)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,5,32)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,6,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,6,0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,6,30)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,6,31)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,7,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,7,0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,7,31)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,7,32)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,8,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,8,0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,8,31)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,8,32)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,9,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,9,0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,9,30)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,9,31)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,10,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,10,0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,10,31)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,10,32)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,11,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,11,0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,11,30)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,11,31)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,12,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,12,0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,12,31)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,12,32)
 # test valid_day leap year
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(1900,2,28)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(1900,2,29)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2000,2,29)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_day?(2008,2,29)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(1900,2,28)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(1900,2,29)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2000,2,29)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_day?(2008,2,29)
 # test valid_hour lower limit
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_hour?(0,0,0)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_hour?(-1,0,0)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_hour?(0,-1,0)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_hour?(0,0,-1)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(0,0,0)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(-1,0,0)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(0,-1,0)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(0,0,-1)
 # test valid_hour upper limit
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_hour?(0,59,0)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_hour?(0,60,0)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_hour?(0,0,59)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_hour?(0,0,60)
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_hour?(24,0,0)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_hour?(24,0,1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_hour?(24,1,0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(0,59,0)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(0,60,0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(0,0,59)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(0,0,60)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(24,0,0)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(24,0,1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_hour?(24,1,0)
 # test valid_minute method lower limit
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_minute?(0)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_minute?(-1)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_minute?(0)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_minute?(-1)
 # test valid_minute method upper limit
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_minute?(59)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_minute?(60)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_minute?(59)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_minute?(60)
 # test valid_second method lower limit
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_second?(0)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_second?(-1)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_second?(0)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_second?(-1)
 # test valid_second method upper limit
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_second?(59)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_second?(60)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_second?(59)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_second?(60)
 # test valid_month method lower limit
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_month?(1)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_month?(0)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_month?(1)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_month?(0)
 # test valid_month method upper limit
-    assert OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_month?(12)
-    assert !OpenEHR::Assumed_Library_Types::TIME_DEFINITIONS.valid_month?(13)
+    assert OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_month?(12)
+    assert !OpenEhr::AssumedLibraryTypes::TIME_DEFINITIONS.valid_month?(13)
   end
   def test_iso8601_date
@@ -173,5 +173,5 @@
     assert_equal 4,@iso8601_date.month
     assert_equal 27,@iso8601_date.day
-    assert_nothing_raised(Exception){@iso8601_date = OpenEHR::Assumed_Library_Types::ISO8601_DATE.new('2008')}
+    assert_nothing_raised(Exception){@iso8601_date = OpenEhr::AssumedLibraryTypes::ISO8601_DATE.new('2008')}
     assert @iso8601_date.day_unknown?
     assert @iso8601_date.month_unknown?
@@ -194,6 +194,6 @@
     assert !@iso8601_date.is_partial?
     assert_equal "2008-06-14", @iso8601_date.as_string
-    assert OpenEHR::Assumed_Library_Types::ISO8601_DATE.valid_iso8601_date?("2006-06-14")
-    assert !OpenEHR::Assumed_Library_Types::ISO8601_DATE.valid_iso8601_date?("ABCDEFG")
+    assert OpenEhr::AssumedLibraryTypes::ISO8601_DATE.valid_iso8601_date?("2006-06-14")
+    assert !OpenEhr::AssumedLibraryTypes::ISO8601_DATE.valid_iso8601_date?("ABCDEFG")
   end
 
@@ -207,5 +207,5 @@
 #    assert_nothing_raised(Exception){@iso8601_time = OpenEHR::Assumed_Library_Types::ISO8601_TIME.new('15:55:37.32+0900')}
 
-    assert_nothing_raised(Exception){@iso8601_time = OpenEHR::Assumed_Library_Types::ISO8601_TIME.new('01')}
+    assert_nothing_raised(Exception){@iso8601_time = OpenEhr::AssumedLibraryTypes::ISO8601_TIME.new('01')}
     assert_equal 1, @iso8601_time.hour
     assert @iso8601_time.is_partial?
@@ -253,11 +253,11 @@
     assert @iso8601_time.is_extended?
     assert !@iso8601_time.is_decimal_sign_comma?
-    assert OpenEHR::Assumed_Library_Types::ISO8601_TIME.valid_iso8601_time?("012345Z")
-    assert OpenEHR::Assumed_Library_Types::ISO8601_TIME.valid_iso8601_time?("012345.67+0900")
-    assert !OpenEHR::Assumed_Library_Types::ISO8601_TIME.valid_iso8601_time?("242345.67+0900")
-    assert !OpenEHR::Assumed_Library_Types::ISO8601_TIME.valid_iso8601_time?("242345.67+0900")
-    assert OpenEHR::Assumed_Library_Types::ISO8601_TIME.valid_iso8601_time?("240000")
-    assert OpenEHR::Assumed_Library_Types::ISO8601_TIME.valid_iso8601_time?("240000Z")
-    assert !OpenEHR::Assumed_Library_Types::ISO8601_TIME.valid_iso8601_time?("240000.011Z")
+    assert OpenEhr::AssumedLibraryTypes::ISO8601_TIME.valid_iso8601_time?("012345Z")
+    assert OpenEhr::AssumedLibraryTypes::ISO8601_TIME.valid_iso8601_time?("012345.67+0900")
+    assert !OpenEhr::AssumedLibraryTypes::ISO8601_TIME.valid_iso8601_time?("242345.67+0900")
+    assert !OpenEhr::AssumedLibraryTypes::ISO8601_TIME.valid_iso8601_time?("242345.67+0900")
+    assert OpenEhr::AssumedLibraryTypes::ISO8601_TIME.valid_iso8601_time?("240000")
+    assert OpenEhr::AssumedLibraryTypes::ISO8601_TIME.valid_iso8601_time?("240000Z")
+    assert !OpenEhr::AssumedLibraryTypes::ISO8601_TIME.valid_iso8601_time?("240000.011Z")
   end
 
Index: ruby/trunk/lib/open_ehr/am.rb
===================================================================
--- ruby/trunk/lib/open_ehr/am.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/am.rb	(revision 291)
@@ -0,0 +1,57 @@
+#! /usr/bin/env ruby
+# component: openEHR Ruby reference implementation
+# description: This file includes Archetype 
+#      class that contains Archetype values.
+#      Main concept is based on Java ref impl.
+#      We should make refactoring to suit for Ruby way.
+# keywords: archetype
+# author: Akimichi TATSUKAWA, Shinji KOBAYASHI
+# support: openEHR.jp
+# license: openEHR open source license
+#
+
+$:.unshift File.join(File.dirname(__FILE__))
+require 'rm/common/resource.rb'
+#require 'rm/support/terminology/openehr_code_set_identifier.rb'
+module OpenEhr
+  module AM
+    module Archetype
+      autoload :ARCHETYPE, "am/archetype/archetype.rb"
+      autoload :Constraint_Model, "am/archetype/constraint_model/archetype_constraint.rb"
+      autoload :Ontology, "am/archetype/ontology.rb"
+      
+      module Archetype_Description
+        autoload :ARCHETYPE_DESCRIPTION, "am/archetype/archetype_description/archetype_description.rb"
+      end
+
+      module Constraint_Model
+        autoload :ARCHETYPE_CONSTRAINT, "am/archetype/constraint_model/archetype_constraint.rb"
+        autoload :ARCHETYPE_SLOT, "am/archetype/constraint_model/archetype_constraint.rb"
+        autoload :Primitive, "am/archetype/constraint_model/primitive.rb"
+      end #end of ConstraintModel
+
+      module Assertion
+        autoload :ASSERTION, "am/archetype/constraint_model/assertion.rb"
+      end
+
+    end # of Archetype
+
+    module OpenEHR_Profile
+      module DataTypes
+        module Basic
+          autoload :C_DV_STATE, "am/openehr_profile/data_types/basic.rb"
+        end
+
+        module Text
+          autoload :C_CODE_PHASE, "am/openehr_profile/data_types/text.rb"
+        end
+
+        module Quantity
+          autoload :C_DV_QUANTITY, "am/openehr_profile/data_types/quantity.rb"
+          autoload :C_DV_ORDINAL, "am/openehr_profile/data_types/quantity.rb"
+          autoload :C_QUANTITY_ITEM, "am/openehr_profile/data_types/quantity.rb"
+        end
+      end
+    end
+  end # of AM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/am/archetype/archetype.rb
===================================================================
--- ruby/trunk/lib/open_ehr/am/archetype/archetype.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/am/archetype/archetype.rb	(revision 291)
@@ -0,0 +1,85 @@
+require 'rm/support/terminology.rb'
+
+module OpenEhr
+  module AM
+    module Archetype
+      module ADL_Definition
+#        include OpenEHR::RM::Support::Terminology::OpenEHR_Code_Set_Identifier
+        include OpenEhr::RM::Support::Terminology
+        CURRENT_ADL_VERSION = "1.4"
+      end
+
+      class ARCHETYPE < OpenEhr::RM::Common::Resource::AuthoredResource
+        include ADL_Definition
+        attr_accessor :archetype_id, :concept_code, :is_controlled, :original_language, :parent_archtype_id, :uid
+
+        attr_reader :parent_id,:concept, :definition, :ontology
+        attr_accessor :adl_version,:description,:original_language
+        attr_accessor :revision_history, :translation
+
+        def initialize(args = {})
+          @adl_version = args[:adl_version] if args[:adl_version]
+          @archetype_id = args[:archetype_id] ? args[:archetype_id] : nil
+          @parent_id = args[:parent_id] if args[:parent_id]
+          @concept = args[:concept] if args[:concept]
+          @is_controled = args[:is_controled] if args[:is_controled]
+          @definition = args[:definition] if args[:definition]
+          @ontology = args[:ontology] if args[:ontology]
+ #         loadMaps(definition)
+          super
+        end
+
+        def self.create(args ={}, &block)
+          archetype = new(args)
+          if block_given?
+            yield archetype
+          end
+          return archetype
+        end
+
+        def concept_name(a_lang)
+        end
+
+        def constraint_references_valid?
+        end
+
+        def internal_references_valid?
+        end
+
+        def is_specialised?
+        end
+
+        def is_valid?
+        end
+
+        def logical_paths(a_lang)          
+        end
+
+        def node_ids_vaild?
+        end
+
+        def physical_paths
+        end
+
+        def previous_version
+        end
+
+        def short_concept_name
+        end
+
+        def specialisation_depth
+        end
+        
+        def version
+        end
+      end # end of ARCHETYPE
+      # original file:
+      # ref_imple_eiffel/components/adl_parser/src/interface/adl_definition.e
+
+      class VALIDITY_KIND
+      end
+    end
+
+
+  end # end of AM
+end # end of OpenEHR
Index: ruby/trunk/lib/open_ehr/am/archetype/archetype_description/archetype_description.rb
===================================================================
--- ruby/trunk/lib/open_ehr/am/archetype/archetype_description/archetype_description.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/am/archetype/archetype_description/archetype_description.rb	(revision 291)
@@ -0,0 +1,21 @@
+
+module OpenEhr
+  module AM
+    module Archetype
+      module Archetype_Description
+        class ARCHETYPE_DESCRIPTION
+          attr_accessor :archetype_package_uri, :lifecycle_state, :original_author, :other_contributors, :other_details, :details
+          def initialize(args ={ })
+            @details = args[:details] ? args[:details] : []
+          end
+        end
+
+        class ARCHETYPE_DESCRIPTION_ITEM
+          attr_accessor :archetype_package_uri, :lifecycle_state, :original_author, :other_contributors, :other_details
+        end
+      end
+    end
+  end
+end
+
+
Index: ruby/trunk/lib/open_ehr/am/archetype/constraint_model/archetype_constraint.rb
===================================================================
--- ruby/trunk/lib/open_ehr/am/archetype/constraint_model/archetype_constraint.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/am/archetype/constraint_model/archetype_constraint.rb	(revision 291)
@@ -0,0 +1,144 @@
+
+module OpenEhr
+  module AM
+    module Archetype
+      module Constraint_Model
+        class ARCHETYPE_CONSTRAINT
+          
+        end
+
+        class CARDINALITY
+          attr_accessor :interval, :is_ordered, :is_unique
+
+          def initialize(args = { })
+            @interval = args[:interval]
+            @is_ordered = args[:is_ordered]
+            @is_unique = args[:is_unique]
+          end
+        end
+
+        class C_OBJECT < ARCHETYPE_CONSTRAINT
+          attr_accessor :node_id, :occurrences, :rm_type_name
+
+          def initialize(args = { })
+            @node_id = args[:node_id] if args[:node_id]
+            @occurrences = args[:occurrences] if args[:occurrences]
+            @rm_type_name = args[:rm_type_name] if args[:rm_type_name]
+          end
+
+          def self.create(args = { }, &block)
+            c_object = new(args)
+            if block_given?
+              yield c_object
+            end
+            return c_object
+          end
+        end
+
+        class C_ATTRIBUTE < ARCHETYPE_CONSTRAINT
+          attr_accessor :rm_attribute_name, :existence, :children
+
+          def initialize(args = { })
+            @rm_attribute_name = args[:rm_attribute_name] if args[:rm_attribute_name]
+            @existence = args[:existence] if args[:existence]
+            @children = args[:children] ? args[:children] : []
+            
+          end
+        end
+
+        class C_DEFINED_OBJECT < C_OBJECT
+          attr_accessor :assumed_value
+          
+          def initialize(args = { })
+            @assumed_value = args[:assumed_value] if args[:assumed_value]
+            super
+          end
+        end
+
+        class C_PRIMITIVE_OBJECT < C_DEFINED_OBJECT
+          attr_accessor :item
+
+          def initialize(args = { })
+            @attributes = args[:item] if args[:item]
+            super
+          end
+        end
+
+        class C_COMPLEX_OBJECT < C_DEFINED_OBJECT
+          attr_accessor :attributes, :attributes_valid
+
+          def initialize(args = { })
+            @attributes = args[:attributes] ? args[:attributes] : []
+            super
+          end
+
+          def self.create(args = { }, &block)
+            c_complex_object = new(args)
+            if block_given?
+              yield c_complex_object
+            end
+            return c_complex_object
+          end
+        end
+
+        class C_DOMAIN_TYPE < C_DEFINED_OBJECT
+          
+        end
+
+        class C_REFERENCE_OBJECT < C_OBJECT
+        end
+
+        class ARCHETYPE_INTERNAL_REF < C_REFERENCE_OBJECT
+          attr_accessor :target_path
+        end
+
+        class ARCHETYPE_SLOT < C_REFERENCE_OBJECT
+          attr_accessor :includes, :excludes
+
+          def self.create(args = { }, &block)
+            archetype_slot = new(args)
+            archetype_slot.includes = args[:includes]
+            archetype_slot.excludes = args[:excludes]
+            if block_given?
+              yield archetype_slot
+            end
+            return archetype_slot
+          end
+        end
+
+        class CONSTRAINT_REF < C_REFERENCE_OBJECT
+          attr_accessor :reference
+
+          def self.create(args = { }, &block)
+            constraint_ref = new(args)
+            constraint_ref.reference = args[:reference]
+            if block_given?
+              yield constraint_ref
+            end
+            return constraint_ref
+          end
+        end
+
+        class C_SINGLE_ATTRIBUTE < C_ATTRIBUTE
+          attr_accessor :alternatives
+
+          def initialize(args = { })
+            @alternatives = args[:alternatives] ? args[:alternatives] : []
+            super
+          end
+        end
+
+        class C_MULTIPLE_ATTRIBUTE < C_ATTRIBUTE
+          attr_accessor :members, :cardinality
+          
+          def initialize(args = { })
+            @members = args[:members] ? args[:members] : []
+            @cardinality = args[:cardinality] if args[:cardinality]
+            super
+          end
+        end
+      end
+    end
+  end
+end
+  
Index: ruby/trunk/lib/open_ehr/am/archetype/constraint_model/assertion.rb
===================================================================
--- ruby/trunk/lib/open_ehr/am/archetype/constraint_model/assertion.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/am/archetype/constraint_model/assertion.rb	(revision 291)
@@ -0,0 +1,31 @@
+module OpenEhr
+  module AM
+    module Archetype
+      module Assertion
+        class ASSERTION
+        end
+
+        class ASSERTION_VARIABLE
+        end
+
+        class OPERATOR_KIND
+        end
+
+        class EXPR_ITEM
+        end
+
+        class EXPR_LEAF < EXPR_ITEM
+        end
+
+        class EXPR_OPERATOR < EXPR_ITEM
+        end
+
+        class EXPR_UNARY_OPERATOR < EXPR_OPERATOR
+        end
+
+        class EXPR_BINARY_OPERATOR < EXPR_OPERATOR
+        end
+      end
+    end
+  end
+end
Index: ruby/trunk/lib/open_ehr/am/archetype/constraint_model/primitive.rb
===================================================================
--- ruby/trunk/lib/open_ehr/am/archetype/constraint_model/primitive.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/am/archetype/constraint_model/primitive.rb	(revision 291)
@@ -0,0 +1,150 @@
+module OpenEhr
+  module AM
+    module Archetype
+      module Constraint_Model
+
+        module Primitive
+
+          class C_PRIMITIVE
+
+            def initialize
+              raise "abstract class"
+            end
+
+            def self.create(args = {})
+              instance = new(args)
+
+              if block_given?
+                yield instance
+              end
+              return instance
+            end
+
+
+            def assumed_value
+              raise NotImplementedError, "assumed_value should be implemented"
+            end
+
+            def default_value
+              raise NotImplementedError, "assumed_value should be implemented"
+            end
+
+            def has_assumed_value?
+              assumed_value != nil
+            end
+
+            def valid_value?
+              raise NotImplementedError, "valid_value? should be implemented"
+            end
+          end
+
+          class C_BOOLEAN < C_PRIMITIVE
+            attr_reader :true_valid, :false_valid, :assumed_value
+
+            def initialize(args = { })
+              @true_valid = args[:true_valid] ? args[:true_valid] : false
+              @false_valid = args[:false_valid] ? args[:false_valid] : false
+              @assumed_value = args[:assumed_value] ? args[:assumed_value] : false
+              binary_consistency(@true_valid, @false_valid)
+            end
+
+            def true_valid=(true_valid)
+              binary_consistency(true_valid, @false_valid)
+              @true_valid = true_valid
+            end
+
+            def false_valid=(false_valid)
+              binary_consistency(@true_valid,false_valid)
+              @false_valid = false_valid 
+            end
+
+            def valid_value?
+              
+            end
+
+            def default_value(a_value = nil)
+              if a_value == nil
+                @true_valid
+              else
+                (a_value && @true_valid) || (!a_value && @false_valid) 
+              end
+            end
+
+            private 
+
+            def binary_consistency(true_valid, false_valid)
+              if !true_valid && !false_valid
+                raise ArgumentError, "Either true_valid or false_valid must be true"
+              end
+            end
+          end # of C_Boolean
+
+          class C_STRING < C_PRIMITIVE
+            attr_accessor :list, :assumed_value, :list_open, :pattern
+
+            def initialize(args = { })
+              @list, @assumed_value, @list_open, @pattern = args[:list], args[:assumed_value], args[:list_open], args[:pattern]
+            end
+          end
+
+          class C_INTEGER < C_PRIMITIVE
+            attr_accessor :list, :range, :assumed_value
+
+            def initialize(args = { })
+              @list, @range, @assumed_value = args[:list], args[:range], args[:assumed_value]
+            end
+
+            def self.create(args = {})
+              c_primitive = new(args)
+
+              if block_given?
+                yield c_primitive
+              end
+              return c_primitive
+            end
+          end
+
+          class C_REAL < C_PRIMITIVE
+            attr_accessor :list, :range, :assumed_value
+
+            def initialize(args = { })
+              @list, @range, @assumed_value = args[:list], args[:range], args[:assumed_value]
+            end
+          end
+
+          class C_TIME < C_PRIMITIVE
+            attr_accessor :assumed_value, :milli_second_validity, :minute_validity, :range, :second_validity, :timezone_validity
+            def initialize(args = { })
+              @assumed_value, @milli_second_validity, @minute_validity, @month_validity, @range, @second_validity, @timezone_validity = args[:assumed_value], args[:milli_second_validity], args[:minute_validity], args[:range], args[:second_validity], args[:timezone_validity]
+            end
+          end
+
+          class C_DATE < C_PRIMITIVE
+            attr_accessor :assumed_value, :day_validity, :hour_validity, :month_validity, :range, :timezone_validity
+            def initialize(args = { })
+              @assumed_value, @day_validity, @hour_validity,  @month_validity, @range,  @timezone_validity = args[:assumed_value], args[:day_validity], args[:hour_validity], args[:month_validity], args[:range], args[:timezone_validity]
+            end
+          end
+
+          class C_DATE_TIME < C_PRIMITIVE
+            attr_accessor :assumed_value, :day_validity, :hour_validity, :milli_second_validity, :minute_validity, :month_validity, :range, :second_validity, :timezone_validity
+            def initialize(args = { })
+              @assumed_value, @day_validity, @hour_validity, @milli_second_validity, @minute_validity, @month_validity, @range, @second_validity, @timezone_validity = args[:assumed_value], args[:day_validity], args[:hour_validity], args[:milli_second_validity], args[:minute_validity], args[:month_validity], args[:range], args[:second_validity], args[:timezone_validity]
+            end
+          end
+
+          class C_DURATION < C_PRIMITIVE
+            attr_accessor :years_allowed, :months_allowed, :weeks_allowed, :days_allowed, :hours_allowed, :minutes_allowed, :seconds_allowed, :fractional_seconds_allowed, :range, :assumed_value
+
+            def initialize(args = { })
+              @years_allowed, @months_allowed, @weeks_allowed, @days_allowed, @hours_allowed, @minutes_allowed, @seconds_allowed, @fractional_seconds_allowed, @range, @assumed_value = args[:years_allowed], args[:months_allowed], args[:weeks_allowed], args[:days_allowed], args[:hours_allowed], args[:minutes_allowed], args[:seconds_allowed], args[:fractional_seconds_allowed], args[:range], args[:assumed_value]
+            end
+          end
+
+
+
+        end # of Primitive
+      end # of Constraint_Model
+    end # of Archetype
+  end # of AM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/am/archetype/ontology.rb
===================================================================
--- ruby/trunk/lib/open_ehr/am/archetype/ontology.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/am/archetype/ontology.rb	(revision 291)
@@ -0,0 +1,54 @@
+module OpenEhr
+  module AM
+    module Archetype
+      module Ontology
+        class ARCHETYPE_ONTOLOGY
+          attr_accessor :constraint_codes, :specialisation_depth
+          attr_accessor :term_attribute_names, :term_codes
+          attr_accessor :terminologies_available
+
+          def constraint_binding(a_terminology, a_code)
+          end
+
+          def constraint_definition(a_lang, a_code)
+          end
+
+          def has_language?(a_lang)
+          end
+
+          def has_terminology?(a_terminology)
+          end
+
+          def term_binding(a_terminology, a_code)
+          end
+
+          def term_definition(a_lang, a_code)
+          end
+        end
+
+        class ARCHETYPE_TERM
+          attr_accessor :code, :items
+
+          def initialize(args = { })
+                         
+            @code = if args[:code]
+                      args[:code]
+                    else
+                      raise ArgumentError, "Code is empty"
+                    end
+            @items = if args[:items]
+                       args[:items]
+                     else
+                       raise ArgumentError, "Items is empty"
+                     end
+          end
+
+          def keys
+            @items.keys
+          end
+        end
+      end # end of Ontology
+    end # end of Archetype
+  end # end of AM
+end # end of OpenEHR
+
Index: ruby/trunk/lib/open_ehr/am/archetype/validity_kind.rb
===================================================================
--- ruby/trunk/lib/open_ehr/am/archetype/validity_kind.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/am/archetype/validity_kind.rb	(revision 291)
@@ -0,0 +1,20 @@
+module OpenEhr
+  module AM
+    module Archetype
+      class VALIDITY_KIND
+        attr_accessor :value
+        MANDATORY = 1001
+        OPTIONAL = 1002
+        DISALLOWED = 1003
+        
+        def initialize(arg)
+          @value = arg
+        end
+        
+        def valid_validity
+          
+        end
+      end
+    end # of Archetype
+  end # of AM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/am/open_ehr_profile/data_types/basic.rb
===================================================================
--- ruby/trunk/lib/open_ehr/am/open_ehr_profile/data_types/basic.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/am/open_ehr_profile/data_types/basic.rb	(revision 291)
@@ -0,0 +1,29 @@
+module OpenEhr
+  module AM
+    module OpenEHR_Profile
+      module DataTypes
+        module Basic
+          class C_DV_STATE
+          end
+
+          class STATE_MACHINE
+          end
+
+          class STATE
+          end
+
+          class TERMINAL_STATE < STATE
+          end
+
+          class NON_TERMINAL_STATE < STATE
+          end
+
+          class TRANSITION
+          end
+        end
+
+        
+      end # of Data_Types
+    end # of OpenEHR Profile
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/am/open_ehr_profile/data_types/quantity.rb
===================================================================
--- ruby/trunk/lib/open_ehr/am/open_ehr_profile/data_types/quantity.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/am/open_ehr_profile/data_types/quantity.rb	(revision 291)
@@ -0,0 +1,19 @@
+module OpenEhr
+  module AM
+    module OpenEHR_Profile
+      module DataTypes
+
+        module Quantity
+          class C_DV_QUANTITY < OpenEhr::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE
+          end
+          
+          class C_DV_ORDINAL < OpenEhr::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE
+          end
+
+          class C_QUANTITY_ITEM
+          end
+        end
+      end # of Data_Types
+    end # of OpenEHR Profile
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/am/open_ehr_profile/data_types/text.rb
===================================================================
--- ruby/trunk/lib/open_ehr/am/open_ehr_profile/data_types/text.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/am/open_ehr_profile/data_types/text.rb	(revision 291)
@@ -0,0 +1,12 @@
+module OpenEhr
+  module AM
+    module OpenEHR_Profile
+      module DataTypes
+        module Text
+          class C_CODE_PHASE < OpenEhr::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE
+          end
+        end
+      end # of Data_Types
+    end # of OpenEHR Profile
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/assumed_library_types.rb
===================================================================
--- ruby/trunk/lib/open_ehr/assumed_library_types.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/assumed_library_types.rb	(revision 291)
@@ -0,0 +1,563 @@
+# This module is related to the ticket #36
+require 'date'
+require 'time'
+
+module OpenEhr
+  module AssumedLibraryTypes
+    class Any < Object
+      
+    end # of Any
+
+    class Interval < Any
+      attr_reader :lower, :upper
+      
+      def initialize(lower, upper, 
+                     lower_included = nil, upper_included = nil)
+        check_lower_upper(lower, upper)
+        self.lower_included = lower_included
+        self.upper_included = upper_included
+      end
+
+      def lower=(lower)
+        check_lower_upper(lower, @upper)
+      end
+
+      def upper=(upper)
+        check_lower_upper(@lower, upper)
+      end
+
+      def lower_included?
+        return @lower_included
+      end
+
+      def lower_included=(lower_included)
+        if (lower == nil) && (lower_included != nil)
+          raise ArgumentError, "lower is not set"
+        end
+        @lower_included = lower_included
+      end
+      
+      def lower_unbounded?
+        return @lower.nil?
+      end
+
+      def upper_included?
+        return @upper_included
+      end
+
+      def upper_included=(upper_included)
+        if (upper == nil) && (upper_included != nil)
+          raise ArgumentError, "upper is not set"
+        end
+        @upper_included = upper_included
+      end
+
+      def upper_unbounded?
+        return @upper.nil?
+      end
+
+      def has?(value)
+        if ((@lower < value) && (value < @upper) ||
+            (@lower_included == true) && (@lower == value) ||
+            (@upper_included == true) && (@upper == value))
+          true
+        else
+          false
+        end
+      end
+
+      private
+
+      def check_lower_upper(lower, upper)
+        if (lower == nil) && (upper == nil)
+          raise ArgumentError, "Either lower or upper must be assigned"
+        end
+        unless (lower.nil? || upper.nil?)
+          if lower > upper
+            raise ArgumentError, "Upper must be larger than lower."
+          end
+        end
+        @lower = lower
+        @upper = upper
+      end
+    end # end of Interval
+  
+    class TIME_DEFINITIONS < Any
+      DAYS_IN_LEAP_YEAR = 366
+      DAYS_IN_WEEK = 7
+      DAYS_IN_YEAR = 365
+      HOURS_IN_DAY = 24
+      MAX_DAYS_IN_MONTH = 31
+      MAX_DAYS_IN_YEAR = 366
+      MINUTES_IN_HOUR = 60
+      MONTH_IN_YEAR = 12
+      NOMINAL_DAYS_IN_MONTH = 30.42
+      NOMINAL_DAYS_IN_YEAR = 365.24
+      SECONDS_IN_MINUTE = 60
+
+      def self.valid_year?(year)
+        year >= 0
+      end
+
+      def self.valid_day?(y, m, d)
+        Date.valid_date?(y,m,d) and valid_year? y
+      end
+
+      def self.valid_hour?(h,m = nil, s = nil)
+        if !m.nil? and !valid_minute?(m)
+          return false
+        end
+        if !s.nil? and (!m.nil? and !valid_second?(s))
+          return false
+        end
+        (h >= 0 and h < HOURS_IN_DAY) or (h == HOURS_IN_DAY and m == 0 and s == 0)
+      end
+      def self.valid_minute?(mi)
+        mi >= 0 and mi < MINUTES_IN_HOUR
+      end
+      def self.valid_second?(s)
+        s >= 0 and s < SECONDS_IN_MINUTE
+      end
+      def self.valid_month?(mo)
+        mo >= 1 and mo <= MONTH_IN_YEAR
+      end
+    end # end of TIME_DEFINITIONS
+
+    module ISO8601_DATE_MODULE
+      attr_reader :year, :month, :day
+      def year=(year)
+        raise ArgumentError, "Year is not valid" unless ISO8601_DATE.valid_year?(year)
+        @year = year
+      end
+      def month=(month)
+        raise ArgumentError, "Month is not valid" unless month.nil? or ISO8601_DATE.valid_month?(month)
+        @month = month
+      end
+
+      def day=(day)
+        raise ArgumentError, "Day is not valid" unless day.nil? or ISO8601_DATE.valid_day?(@year, @month, day)
+        @day = day
+      end
+
+      def as_string
+        if (!@year.nil? and !@month.nil? and !@day.nil?)
+          Date.new(@year, @month, @day).to_s
+        elsif (!@year.nil? and !@month.nil? and @day.nil?)
+          Date.new(@year, @month).to_s[0,7]
+        elsif (!@year.nil? and @month.nil? and @day.nil?)
+          Date.new(@year).to_s[0,4]
+        end          
+      end
+
+      def month_unknown?
+        @month.nil?
+      end
+
+      def day_unknown?
+        @day.nil?
+      end
+
+      def is_extended?
+        true
+      end
+
+      def is_partial?
+        month_unknown? or day_unknown?
+      end
+
+      protected
+      def leapyear?(year)
+        case
+        when year % 400 == 0: true
+        when year % 100 == 0: false
+        else year % 4 == 0
+        end
+      end
+    end
+
+    class ISO8601_DATE < TIME_DEFINITIONS
+      include ISO8601_DATE_MODULE
+      def initialize(string)
+        /(\d{4})(?:-(\d{2})(?:-(\d{2})?)?)?/ =~ string
+        if $1.nil?
+          raise ArgumentError, 'data invalid'
+        else
+          self.year = $1.to_i
+        end
+        if $2.nil?
+          self.month = nil
+        else
+          self.month = $2.to_i
+        end
+        if $3.nil?
+          self.day = nil
+        else
+          self.day = $3.to_i
+        end
+      end
+
+      def self.valid_iso8601_date?(string)
+        begin
+          Date.parse(string)
+        rescue
+          return false
+        end
+        true
+      end
+    end # end of ISO8601_DATE
+
+    module ISO8601_TIME_MODULE
+      attr_reader :hour, :minute, :second, :fractional_second, :timezone
+
+      def hour=(hour)
+        raise ArgumentError, "hour is not valid" if !ISO8601_TIME.valid_hour?(hour, @minute, @second)
+        @hour = hour
+      end
+
+      def minute_unknown?
+        @minute.nil?
+      end
+
+      def minute=(minute)
+        raise ArgumentError, "minute is not valid" if !minute.nil? and !ISO8601_TIME.valid_minute?(minute)
+        @minute = minute
+      end
+
+      def second_unknown?
+        @second.nil?
+      end
+
+      def second=(second)
+        raise ArgumentError, "minute not defined" if @minute.nil? and !second.nil?
+        raise ArgumentError, "second is not valid" if !second.nil? and !ISO8601_TIME.valid_second?(second)
+        @second = second
+      end
+
+      def fractional_second=(fractional_second)
+        raise ArgumentError, "minute not defined" if minute_unknown? and !fractional_second.nil?
+        raise ArgumentError, "second not defined" if second_unknown? and !fractional_second.nil?
+        raise ArgumentError, "fractional second should be lower than 1.0" if !fractional_second.nil? and fractional_second >= 1.0
+        @fractional_second = fractional_second
+      end
+
+      def has_fractional_second?
+        if @fractional_second.nil?
+          return false
+        else
+          return true
+        end
+      end
+
+      def timezone=(timezone)
+        unless timezone.nil? or timezone == 'Z'
+          if /[+-](\d{2}):?(\d{2})/ =~ timezone
+            @timezone = timezone
+          else
+            raise ArgumentError, "timezone invalid"
+          end
+        else
+          @timezone = nil
+        end
+      end
+
+      def is_decimal_sign_comma?
+        false
+      end
+
+      def is_extended?
+        true
+      end
+
+      def is_partial?
+        second_unknown? or minute_unknown?
+      end
+
+      def as_string
+        s = sprintf("%02d", @hour)
+        if !@minute.nil?
+          s += ":" + sprintf("%02d",@minute)
+          if !@second.nil?
+            s += ":" + sprintf("%02d", @second)
+            if !@fractional_second.nil?
+              s += "." + @fractional_second.to_s[2..-1]
+              if !@timezone.nil?
+                s += @timezone
+              end
+            end
+          end
+        end
+        return s
+      end
+    end
+
+    class ISO8601_TIME < TIME_DEFINITIONS
+      include ISO8601_TIME_MODULE
+      def initialize(string)
+        /(\d{2}):?(\d{2})?(:?)(\d{2})?((\.|,)(\d+))?(Z|([+-](\d{2}):?(\d{2})))?/ =~ string
+        if $2.nil?
+          self.minute = nil
+        else
+          self.minute = $2.to_i
+        end
+        if $4.nil?
+          self.second = nil
+        else
+          self.second = $4.to_i
+        end
+        if $1.nil?
+          raise ArgumentError, 'data invalid'
+        else
+          self.hour = $1.to_i
+        end
+        if $7.nil?
+          self.fractional_second = nil
+        else
+          self.fractional_second = ("0." + $7).to_f
+        end
+        if $8.nil?
+          self.timezone = nil
+        else
+          self.timezone = $8
+        end
+      end
+      def self.valid_iso8601_time?(s)
+        if /(\d{2}):?(\d{2})?(:?)(\d{2})?((\.|,)(\d+))?(Z|([+-](\d{2}):?(\d{2})))?/ =~ s
+# ISO 8601 regular expression by H. Yuki
+#  http://digit.que.ne.jp/work/wiki.cgi?Perl%E3%83%A1%E3%83%A2%2FW3C%E5%BD%A2%E5%BC%8F%E3%81%AE%E6%97%A5%E6%99%82%E3%81%AE%E8%A7%A3%E6%9E%90
+# (\d{4})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d))?)?(Z|([+-]\d{2}):(\d{2}))?)?)?)?
+          hh = $1; mm = $2; ss = $4; msec = $7; tz = $8
+          if hh.to_i == HOURS_IN_DAY and (mm.nil? or mm.to_i == 0) and (ss.nil? or ss.to_i == 0) and (msec.nil? or msec.to_i==0)
+            return true
+          end
+          if hh.nil? or (hh.to_i < 0 or hh.to_i >= HOURS_IN_DAY)
+            return false
+          end
+          if !mm.nil? 
+            if !self.valid_minute?(mm.to_i)
+              return false
+            end
+          end
+          if !ss.nil? 
+            if !self.valid_second?(ss.to_i)
+              return false
+            end
+          end
+          if !tz.nil? and tz != "Z"
+            if /[+-](\d{2}):?(\d{2})/ =~ tz
+              h = $1; m = $2
+              if h.to_i < 0 or h.to_i >= HOURS_IN_DAY
+                return false
+              end
+              if m.to_i < 0 or m.to_i >= MINUTES_IN_HOUR
+                return false
+              end
+            else
+              return false
+            end
+          end
+          return true
+        else
+          return false
+        end
+      end
+    end # end of ISO8601_TIME
+
+    module ISO8601_DATE_TIME_MODULE
+      include ISO8601_DATE_MODULE, ISO8601_TIME_MODULE
+      def as_string
+        if (!@year.nil? and !@month.nil? and !@day.nil?)
+          s = Date.new(@year, @month, @day).to_s
+        elsif (!@year.nil? and !@month.nil? and @day.nil?)
+          return Date.new(@year, @month).to_s[0,7]
+        elsif (!@year.nil? and @month.nil? and @day.nil?)
+          return Date.new(@year).to_s[0,4]
+        end
+        unless hour.nil?
+          s += sprintf("T%02d", @hour)
+          unless @minute.nil?
+            s += ":" + sprintf("%02d",@minute)
+            unless @second.nil?
+              s += ":" + sprintf("%02d", @second)
+              unless @fractional_second.nil?
+                s += "." + @fractional_second.to_s[2..-1]
+                unless @timezone.nil?
+                  s += @timezone
+                end
+              end
+            end
+          end
+        end
+        return s
+      end
+    end
+
+    class ISO8601_DATE_TIME < ISO8601_DATE
+      include ISO8601_DATE_TIME_MODULE
+      def initialize(string)
+        /(\d{4})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d+))?)?(Z|([+-]\d{2}):?(\d{2}))?)?)?)?/ =~ string
+        if $1.empty?
+          raise ArgumentError, 'format invalid'
+        else
+          self.year = $1.to_i
+        end
+        if $2.nil?
+          self.month = nil
+        else
+          self.month = $2.to_i
+        end
+        if $3.nil?
+          self.day = nil
+        else
+          self.day = $3.to_i
+        end
+        if $5.nil?
+          self.minute = nil
+        else
+          self.minute = $5.to_i
+        end
+        if $6.nil?
+          self.second = nil
+        else
+          self.second = $6.to_i
+        end
+        if $4.nil?
+          self.hour = nil
+        else
+          self.hour = $4.to_i
+        end
+        if $7.nil? or $7.empty?
+          self.fractional_second = nil
+        else
+          self.fractional_second = ("0."+$7).to_f
+        end
+        if $8.nil?
+          self.timezone = nil
+        else
+          self.timezone = $9+$10
+        end
+      end
+    end
+  
+    class ISO8601_TIMEZONE
+      attr_accessor :sign, :hour, :minute
+
+      def is_gmt?
+        @sign == "+1" and @hour == 0 and @minute == 0
+      end
+
+      def as_string
+        if @sign == "+1"
+          s = "+"
+        elsif @sign == "-1"
+          s = "-"
+        end
+        sprintf("Z%s%02d%02d", s, @hour, @minute)
+      end
+    end # end of ISO8601_TIMEZONE
+
+    module ISO8601_DURATION_MODULE
+      attr_reader :years, :months, :weeks, :days
+      attr_reader :hours, :minutes, :seconds, :fractional_second
+
+      def years=(years)
+        unless years.nil? || years >= 0
+          raise ArgumentError, 'years must be above zero'
+        end
+        @years = years
+      end
+
+      def months=(months)
+        unless months.nil? || months >= 0
+          raise ArgumentError, 'months must be above zero'
+        end
+        @months = months
+      end
+
+      def weeks=(weeks)
+        unless weeks.nil? || weeks >= 0
+          raise ArgumentError, 'weeks must be above zero'
+        end
+        @weeks = weeks
+      end
+
+      def days=(days)
+        unless days.nil? || days >= 0
+          raise ArgumentError, 'days must be above zero'
+        end
+        @days = days
+      end
+
+      def hours=(hours)
+        unless hours.nil? || hours >= 0
+          raise ArgumentError, 'hours must be above zero'
+        end
+        @hours = hours
+      end
+
+      def minutes=(minutes)
+        unless minutes.nil? || minutes >= 0
+          raise ArgumentError, 'minutes must be above zero'
+        end
+        @minutes = minutes
+      end
+
+      def seconds=(seconds)
+        unless seconds.nil? || seconds >= 0
+          raise ArgumentError, 'seconds must be above zero'
+        end
+        @seconds = seconds
+      end
+
+      def fractional_second=(fractional_second)
+        unless fractional_second.nil? || (fractional_second >= 0 && fractional_second < 1.0)
+          raise ArgumentError, 'fractional_second must be between 0.0 and 1.0'
+        end
+        @fractional_second = fractional_second
+      end
+
+      def as_string
+        str = 'P'
+        unless @years.nil?
+          str += @years.to_s + 'Y'
+        end
+        unless @months.nil?
+          str += @months.to_s + 'M'
+        end
+        unless @weeks.nil?
+          str += @weeks.to_s + 'W'
+        end
+        unless @days.nil?
+          str += @days.to_s + 'D'
+        end
+        unless @hours.nil?
+          str += 'T' + @hours.to_s + 'H'
+          unless @minutes.nil?
+            str += @minutes.to_s + 'M'
+            unless @seconds.nil?
+              str += @seconds.to_s
+              unless @fractional_second.nil?
+                str += @fractional_second.to_s[1 .. -1]
+              end
+              str += 'S'
+            end
+          end
+        end
+        return str
+      end
+    end
+    class ISO8601_DURATION < TIME_DEFINITIONS
+      include ISO8601_DURATION_MODULE
+      def initialize(str)
+        /^P((\d+)Y)?((\d+)M)?((\d+)W)?((\d)D)?(T((\d+)H)?((\d+)M)?((\d+)(\.\d+)?S)?)?$/ =~ str
+        self.years = $2.to_i
+        self.months = $4.to_i
+        self.weeks = $6.to_i
+        self.days = $8.to_i
+        self.hours = $11.to_i
+        self.minutes = $13.to_i
+        self.seconds = $15.to_i
+        self.fractional_second = $16.to_f
+      end
+    end # end of ISO8601_DURATION
+  end # end of Assumed_Types
+end # end of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm.rb	(revision 291)
@@ -0,0 +1,53 @@
+$:.unshift File.join(File.dirname(__FILE__))
+# component: openEHR Ruby reference implementation
+# description: This file contains rm.packages.domain classes
+# keywords: archetype
+# author: Shinji KOBAYASHI, Akimichi TATSUKAWA
+# support: openEHR.jp
+# license: openEHR open source license
+#
+
+# OpenEHR::RM
+module OpenEhr
+
+  autoload :Assumed_Library_Types, "assumed_library_types.rb"
+
+  module RM
+    autoload :Demographic, "rm/demographic.rb"
+    autoload :Security, "rm/security.rb"
+
+    module Common
+      autoload :Resource, "rm/common/resource.rb"
+      autoload :Archetyped, "rm/common/archetyped.rb"
+      autoload :Generic, "rm/common/generic.rb"
+      autoload :Directory, "rm/common/directory.rb"
+      autoload :Change_Control, "rm/common/change_control.rb"
+    end
+
+    module Support
+      autoload :Definition, "rm/support/definition.rb"
+      autoload :Identification, "rm/support/identification.rb"
+      autoload :Terminology, "rm/support/terminology.rb"
+    end
+
+    module DataTypes
+      autoload :Basic, "rm/data_types/basic.rb"
+      autoload :Text, "rm/data_types/text.rb"
+      autoload :URI, "rm/data_types/uri.rb"
+      autoload :Quantity, "rm/data_types/quantity.rb"
+      autoload :Encapsulated, "rm/data_types/encapsulated.rb"
+      autoload :Time_Specification, 'rm/data_types/time_specification.rb'
+    end
+
+    module DataStructures
+      autoload :Data_Structure, "rm/data_structure.rb"
+      autoload :History, 'rm/data_structures/history.rb'
+      autoload :Item_Structure, 'rm/data_structures/item_structure.rb'
+    end
+
+    module Security
+      autoload :Security, 'rm/security.rb'
+    end
+  end
+
+end
Index: ruby/trunk/lib/open_ehr/rm/common/archetyped.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/common/archetyped.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/common/archetyped.rb	(revision 291)
@@ -0,0 +1,182 @@
+# This module is based on the UML,
+# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109318114715_211173_0Report.html
+# Ticket refs #65
+module OpenEhr
+  module RM
+    module Common
+      module Archetyped
+        module LocaterConstants
+          CURRENT_TRANSACTION_ID = "current"
+          FRAGMENT_SEPARATOR = "#"
+          CONTENT_PATH_SEPARATOR = "|"
+          ORGANIZER_PATH_SEPARATOR = "/"
+          MULTIPART_ID_DELIMITER = "::"
+        end
+
+        class Pathable
+          attr_accessor :parent
+
+          def initialize(parent = nil)
+            @parent = parent
+          end
+
+          def item_at_path(path)
+            raise NotImplementError, "item_at_path must be implemented"
+          end
+
+          def items_at_path(path)
+            raise NotImplementError, "items_at_path must be implemented"
+          end
+
+          def path_exists?(path)
+            raise NotImplementError, "path_exists? must be implemented"
+          end
+
+          def path_of_item(item)
+            raise NotImplementError, "path_of_item must be implemented"
+          end
+
+          def path_unique(path)
+            raise NotImplementError, "path_unique must be implemented"
+          end
+        end
+
+        class Locatable < Pathable
+          include LocaterConstants
+          attr_reader :archetype_node_id, :name, :links
+          attr_accessor :uid, :archetype_details, :feeder_audit
+
+          def initialize(args = { })
+            super(args[:parent])
+            self.archetype_node_id = args[:archetype_node_id]
+            self.name = args[:name]
+            self.links = args[:links]
+            self.uid = args[:uid]
+            self.archetype_details = args[:archetype_details]
+            self.feeder_audit = args[:feeder_audit]
+          end
+          
+          def archetype_node_id=(archetype_node_id)
+            raise ArgumentError, 'archetype_node_id should not be nil' if archetype_node_id.nil?
+            @archetype_node_id = archetype_node_id
+          end
+
+          def name=(name)
+            raise ArgumentError, 'name should not be empty' if name.nil? or name.value.empty?
+            @name = name
+          end
+          def links=(links)
+            raise ArgumentError, "links shoud not be empty" if !links.nil? and links.empty?
+            @links = links
+          end
+
+          def item_at_path(path)
+            if !@path.nil?
+              if @path == ""
+                raise ArgumentError, "path is not valid"
+              end
+            end
+          end
+
+          def items_at_path(path)
+            raise NotImplementError, "items_at_path must be implemented"
+          end
+
+          def path_exists?
+            raise NotImplementError, "path_exists? must be implemented"
+          end
+
+          def path_unique
+            raise NotImplementError, "path_unique must be implemented"
+          end
+
+          def concept
+          end
+
+          def is_archetype_root?
+            !archetype_details.nil?
+          end
+        end
+
+        class Archetyped
+          attr_reader :archetype_id, :rm_version
+          attr_accessor :template_id
+          def initialize(archetype_id, rm_version, template_id = nil)            
+            self.archetype_id = archetype_id
+            self.rm_version = rm_version
+            self.template_id = template_id
+          end
+          def archetype_id=(archetype_id)
+            raise ArgumentError, "invalid archetype_id" if archetype_id.nil?
+            @archetype_id = archetype_id
+          end
+          def rm_version=(rm_version)
+            raise ArgumentError, "invalid rm_version" if rm_version.nil? or rm_version.empty?
+            @rm_version = rm_version
+          end
+        end
+
+        class Link
+          attr_reader :meaning, :target, :type
+          def initialize(meaning, target, type)
+            self.meaning = meaning
+            self.target = target
+            self.type = type
+          end
+          def meaning=(meaning)
+            raise ArgumentError, "meaning should not be nil" if meaning.nil?
+            @meaning = meaning
+          end
+          def target=(target)
+            raise ArgumentError, "target should not be nil" if target.nil?
+            @target = target
+          end
+          def type=(type)
+            raise ArgumentError, "type should not be nil" if type.nil?
+            @type = type
+          end
+        end # of Link
+
+        class FeederAudit
+          attr_reader :originating_system_audit
+          attr_accessor :originating_system_item_ids, :feeder_system_audit,
+                        :feeder_system_item_ids, :original_content
+
+          def initialize(args = { })
+            self.originating_system_audit = args[:originating_system_audit]
+            self.originating_system_item_ids = args[:originating_system_item_ids]
+            self.feeder_system_audit = args[:feeder_system_audit]
+            self.feeder_system_item_ids = args[:feeder_system_item_ids]
+            self.original_content = args[:original_content]
+          end
+
+          def originating_system_audit=(originating_system_audit)
+            if originating_system_audit.nil?
+              raise ArgumentError, 'originating_system_audit must be not nil'
+            end
+            @originating_system_audit = originating_system_audit
+          end
+        end # of FeederAudit
+
+        class FeederAuditDetails
+          attr_reader :system_id
+          attr_accessor :provider, :location, :time, :subject, :version_id
+
+          def initialize(args ={ })
+            self.system_id = args[:system_id]
+            self.provider = args[:provider]
+            self.location = args[:location]
+            self.time = args[:time]
+            self.subject = args[:subject]
+            self.version_id = args[:version_id]
+          end
+
+          def system_id=(system_id)
+            raise ArgumentError, 'system_id invalid' if system_id.nil? or system_id.empty?
+            @system_id = system_id
+          end
+        end # of FeederAudit_Details
+      end # of Archetyped
+    end # of Common
+  end # of RM
+end # OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/common/change_control.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/common/change_control.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/common/change_control.rb	(revision 291)
@@ -0,0 +1,324 @@
+# This module is based on the UML,
+# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109326589721_134411_997Report.html
+# Ticket refs #64
+
+module OpenEhr
+  module RM
+    module Common
+      module ChangeControl
+        class Contribution
+          attr_reader :uid, :versions, :audit
+
+          def initialize(args = { })
+            self.uid = args[:uid]
+            self.versions = args[:versions]
+            self.audit = args[:audit]
+          end
+
+          def uid=(uid)
+            if uid.nil?
+              raise ArgumentError, "uid should not be nil."
+            end
+            @uid = uid
+          end
+
+          def versions=(versions)
+            unless versions.nil?
+              if versions.empty?
+                raise ArgumentError, 'versions shoud not be nil or empty.'
+              end
+            end
+            @versions = versions
+          end
+
+          def audit=(audit)
+            if audit.nil?
+              raise ArgumentError, 'audit should not be nil.'
+            end
+            if audit.description.nil?
+              raise ArgumentError, 'audit.description should not be nil.'
+            end
+            @audit = audit
+          end
+        end
+
+        class Version
+          attr_reader :uid, :preceding_version_uid, :lifecycle_state,
+                      :commit_audit, :contribution
+          attr_accessor :data, :signature
+
+          def initialize(args = { })
+            self.uid = args[:uid]
+            self.preceding_version_uid = args[:preceding_version_uid]
+            self.data = args[:data]
+            self.lifcycle_state = args[:lifecycle_state]
+            self.commit_audit = args[:commit_audit]
+            self.contribution = args[:contribution]
+            self.signature = args[:signature]
+          end
+
+          def uid=(uid)
+            raise ArgumentError, "uid should not be nil" if uid.nil?
+            @uid = uid
+          end
+
+          def preceding_version_uid=(preceding_version_uid)
+            if (!preceding_version_uid.nil?) ==  @uid.version_tree_id.is_first?
+              raise ArgumentError, 'preceding version is invalid'
+            end
+            @preceding_version_uid = preceding_version_uid
+          end
+
+# remove hard coding of lifecycle
+          def lifcycle_state=(lifecycle_state)
+            if lifecycle_state.nil? ||
+                !%w[532 553 523].include?(
+                              lifecycle_state.defining_code.code_string)
+              raise ArgumentError, 'invalid lifecycle_state'
+            end
+            @lifecycle_state = lifecycle_state
+          end
+
+          def commit_audit=(commit_audit)
+            if commit_audit.nil?
+              raise ArgumentError,'commit_audit is mandatory'
+            end
+            @commit_audit = commit_audit
+          end
+
+          def contribution=(contribution)
+            raise ArgumentError, "contribution should not be nil" if contribution.nil? or contribution.type.empty?
+            @contribution = contribution
+          end
+
+          def owner_id
+            return HierObjectId.new(@uid.object_id.value)
+          end
+
+          def is_branch?
+            return @uid.is_branch?
+          end
+
+          def canonical_form
+            raise NotImplementedError, 'canonical form not implemented'
+          end
+        end
+
+        class ImportedVersion < Version
+          attr_reader :item
+
+          def initialize(args = { })
+            self.item = args[:item]
+            super(:uid => @item.uid,
+                  :preceding_version_uid => @item.preceding_version_uid,
+                  :data => @item.data, :commit_audit=> args[:commit_audit],
+                  :commit_audit => args[:commit_audit],
+                  :contribution => args[:contribution],
+                  :lifecycle_state => @item.lifecycle_state,
+                  :signature => args[:signature])
+                  
+          end
+
+          def item=(item)
+            raise ArgumentError, 'item is mandatory' if item.nil?
+            @item = item
+          end
+        end
+
+        class OriginalVersion < Version
+          attr_reader :attestations, :other_input_version_uids
+
+          def initialize(args = { })
+            super(args)
+            self.attestations = args[:attestations]
+            self.other_input_version_uids = args[:other_input_version_uids]
+          end
+
+          def attestations=(attestations)
+            if attestations.nil? || attestations.empty?
+              raise ArgumentError, 'attestations is mandatory'
+            end
+            @attestations = attestations
+          end
+
+          def other_input_version_uids=(other_input_version_uids)
+            if !other_input_version_uids.nil? && other_input_version_uids.empty?
+              raise ArgumentError, 'invaild other_input_version_uids'
+            end
+            @other_input_version_uids = other_input_version_uids
+          end
+
+          def is_merged?
+# Java implementation has is_merged attribute, Eiffel implementation does
+# nothing
+          end
+        end
+
+        class VersionedObject
+          attr_reader :uid, :owner_id, :time_created, :all_versions
+
+          def initialize(args = { })
+            self.uid = args[:uid]
+            self.owner_id = args[:owner_id]
+            self.time_created = args[:time_created]
+            self.all_versions = args[:all_versions]
+          end
+
+          def uid=(uid)
+            raise ArgumentError, 'uid is mandatory' if uid.nil?
+            @uid = uid
+          end
+
+          def owner_id=(owner_id)
+            raise ArgumentError, 'owner_id is mandatory' if owner_id.nil?
+            @owner_id = owner_id
+          end
+
+          def time_created=(time_created)
+            if time_created.nil?
+              raise ArgumentError, 'time_created is mandatory'
+            end
+            @time_created = time_created
+          end
+
+          def all_versions=(all_versions)
+            if all_versions.nil? || all_versions.size < 0
+              raise ArgumentError, 'version count invalid'
+            end
+            @all_versions = all_versions
+          end
+
+          def all_version_ids
+            ids = []
+            @all_versions.each{|id| ids << id.uid}
+            return ids
+          end
+
+          def version_count
+            return all_versions.size
+          end
+
+          def has_version_id?(a_ver_id)
+            raise ArgumentError, 'argument is mandatory' if a_ver_id.nil?
+            return self.all_version_ids.include?(a_ver_id)
+          end
+
+          def is_original_version?(a_ver_id)
+            if a_ver_id.nil? || !self.has_version_id?(a_ver_id)
+              raise ArgumentError, 'invalid a_ver_id'
+            end
+            return @all_versions[self.all_version_ids.index(a_ver_id)].instance_of? OriginalVersion
+          end
+
+          def has_version_at_time?(a_time)
+            raise ArgumentError, 'argument mandatory' if a_time.nil?
+            @all_versions.each do |ver|
+              if ver.commit_audit.time_committed == a_time
+                return true
+              end
+            end
+            return false
+          end
+
+          def version_with_id(a_ver_id)
+            if a_ver_id.nil? || !self.has_version_id?(a_ver_id)
+              raise ArgumentError, 'argument invalid'
+            end
+            return @all_versions[self.all_version_ids.index(a_ver_id)]
+          end
+
+          def version_at_time(a_time)
+            if a_time.nil? || !self.has_version_at_time?(a_time)
+              raise ArgumentError, 'argument invalid'
+            end
+            @all_versions.each do |ver|
+              if ver.commit_audit.time_committed == a_time
+                return ver
+              end
+            end
+          end
+
+          def latest_version
+            time_sorted_version = @all_versions.sort do |a,b|
+              a.commit_audit.time_committed <=> b.commit_audit.time_committed
+            end
+            return time_sorted_version.last
+          end
+
+          def latest_trunk_version
+            trunk_versions = [ ]
+            @all_versions.each do |ver|
+              if ver.uid.version_tree_id.trunk_version == '1'
+                trunk_versions << ver
+              end
+            end
+            sorted_trunk_version = trunk_versions.sort do |a,b|
+              a.commit_audit.time_committed <=> b.commit_audit.time_committed
+            end
+            return sorted_trunk_version.last
+          end
+
+          def trunk_lifecycle_state
+            return self.latest_trunk_version.lifecycle_state
+          end
+
+          def revision_history
+            revision_history_items = [ ]
+            @all_versions.each do |ver|
+              audits = [ ]
+              if ver.instance_of? OriginalVersion
+                audits << ver.attestations
+              end
+              audits << ver.commit_audit
+              revision_history_items << RevisionHistoryItem.new(
+                                          :audits => audits,
+                                          :version_id => ver.uid)
+            end
+            return RevisionHistory.new(revision_history_items)
+          end
+
+          def commit_original_version(args={ })
+            @all_versions << OriginalVersion.new(:uid => args[:uid],
+                                                  :preceding_version_uid => args[:preceding_version_uid],
+                                                  :contribution => args[:contribution],
+                                                  :commit_audit => args[:commit_audit],
+                                                  :lifecycle_state => args[:lifecycle_state],
+                                                  :data => args[:data],
+                                                  :attestations => args[:attestations],
+                                                  :signature => args[:signature])
+          end
+
+          def commit_original_merged_version(args = { })
+            @all_versions << OriginalVersion.new(:uid => args[:uid],
+                                                  :contribution => args[:contribution],
+                                              :preceding_version_uid => args[:preceding_version_uid],
+                                              :commit_audit => args[:commit_audit],
+                                              :lifecycle_state => args[:lifecycle_state],
+                                              :data => args[:data],
+                                              :attestations => args[:attestations],
+                                              :other_input_version_uids => args[:other_input_version_uids],
+                                              :signature => args[:signature])
+          end
+
+          def commit_imported_version(args = { })
+            @all_versions << ImportedVersion.new(:item => args[:item],
+                                                  :contribution => args[:contribution],
+                                                  :commit_audit => args[:commit_audit])
+          end
+
+          def commit_attestation(args = { })
+            if args[:attestation].nil?
+              raise ArgumentError, 'attestation is mandatory'
+            end
+            if self.has_version_id?(args[:uid]) && self.is_original_version?(args[:uid])
+              self.version_with_id(args[:uid]).attestations << args[:attestation]
+              self.version_with_id(args[:uid]).signature = args[:signature]
+            else
+              raise ArgumentError, 'uid invalid'
+            end
+          end
+        end
+      end # of ChangeControl
+    end # of Common
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/common/directory.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/common/directory.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/common/directory.rb	(revision 291)
@@ -0,0 +1,29 @@
+# This module is based on the UML,
+# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_5_1_76d0249_1140536622627_218703_7149Report.html
+# Ticket refs #63
+include OpenEhr::RM::DataTypes::Text
+module OpenEhr
+  module RM
+    module Common
+      module Directory
+        class Folder < OpenEhr::RM::Common::Archetyped::Locatable
+          attr_accessor :items
+          attr_reader :folders
+
+          def initialize(args = { })
+            super(args)
+            self.folders = args[:folders]
+            self.items = args[:items]
+          end
+
+          def folders=(folders)
+            raise ArgumentError, "empty subfolder" if !folders.nil? and folders.empty?
+            @folders = folders
+          end
+        end        
+        class VersionedFolder < OpenEhr::RM::Common::ChangeControl::VersionedObject
+        end
+      end # of Directory
+    end # of Common
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/common/generic.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/common/generic.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/common/generic.rb	(revision 291)
@@ -0,0 +1,195 @@
+# This module is a implementation of the bellow UML
+# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_5_1_76d0249_1140169202660_257304_813Report.html
+# Related to the ticket #62
+include OpenEhr::RM::Support::Identification
+include OpenEhr::RM::DataTypes::Basic
+module OpenEhr
+  module RM
+    module Common
+      module Generic
+        class AuditDetails
+          attr_reader :system_id, :committer, :time_committed, :change_type
+          attr_accessor :description
+
+          def initialize(args = { })
+            self.system_id = args[:system_id]
+            self.committer = args[:committer]
+            self.time_committed = args[:time_committed]
+            self.change_type = args[:change_type]
+            self.description = args[:description]
+          end
+
+          def system_id=(system_id)
+            if system_id.nil? or system_id.empty?
+              raise ArgumentError, 'system_id is mandatory'
+            end
+            @system_id = system_id
+          end
+
+          def committer=(committer)
+            raise ArgumentError, 'committer is mandatory' if committer.nil?
+            @committer = committer
+          end
+
+          def time_committed=(time_committed)
+            if time_committed.nil?
+              raise ArgumentError, 'time_commited is mandatory'
+            end
+            @time_committed = time_committed
+          end
+
+          def change_type=(change_type)
+            raise ArgumentError, 'change_type is mandatory' if change_type.nil?
+            @change_type = change_type
+          end
+        end
+
+        class RevisionHistory
+          attr_reader :items
+
+          def initialize(items)
+            self.items = items
+          end
+
+          def items=(items)
+            if items.nil? or items.empty?
+              raise ArgumentError, 'item(s) is/are mandatory'
+            end
+            @items  = items
+          end
+
+          def most_recent_version
+            return @items.last.version_id.value
+          end
+
+          def most_recent_version_time_committed
+            return @items.last.audits.first.time_committed.value
+          end
+        end # of RevisionHistory
+
+        class RevisionHistoryItem
+          attr_reader :version_id, :audits
+
+          def initialize(args = { })
+            self.version_id = args[:version_id]
+            self.audits = args[:audits]
+          end
+
+          def audits=(audits)
+            if audits.nil? or audits.empty?
+              raise ArgumentError, 'audits is mandatory'
+            end
+            @audits = audits
+          end
+
+          def version_id=(version_id)
+            raise ArgumentError, 'version_id is mandatory' if version_id.nil?
+            @version_id = version_id
+          end
+        end # of RevisionHistory_Item
+
+        class PartyProxy
+          attr_accessor :external_ref
+
+          def initialize(args = { })
+            self.external_ref = args[:external_ref]
+          end
+        end
+
+        class PartySelf < PartyProxy
+
+        end
+
+        class PartyIdentified < PartyProxy
+          attr_reader :name, :identifier
+          def initialize(args = { })
+            if args[:external_ref].nil? && args[:name].nil? &&
+                args[:identifier].nil?
+              raise ArgumentError, 'cannot identified'
+            end
+            super(:external_ref => args[:external_ref])
+            self.name = args[:name]
+            self.identifier = args[:identifier]
+          end
+
+          def name=(name)
+            if name.nil? && @external_ref.nil? && @identifier.nil?
+              raise ArgumentError, 'cannot identified'
+            end
+            raise ArgumentError, 'invaild name' unless name.nil? || !name.empty?
+            @name = name
+          end
+
+          def identifier=(identifier)
+            if @name.nil? && @external_ref.nil? && identifier.nil?
+              raise ArgumentError, 'cannot identified'
+            end
+            unless identifier.nil? || !identifier.empty?
+              raise ArgumentError, 'invaild identifier'
+            end
+            @identifier = identifier
+          end
+        end
+
+        class PartyRelated < PartyIdentified
+          attr_reader :relationship
+          def initialize(args = { })
+            super(args)
+            self.relationship = args[:relationship]
+          end
+
+          def relationship=(relationship)
+            if relationship.nil?
+              raise ArgumentError, 'relationship must not be nil'
+            end
+            @relationship = relationship
+          end
+        end
+
+        class Participation
+          attr_reader :performer, :function, :mode
+          attr_accessor :time
+
+          def initialize(args ={ })
+            self.performer = args[:performer]
+            self.function = args[:function]
+            self.mode = args[:mode]
+            self.time = args[:time]
+          end
+
+          def performer=(performer)
+            raise ArgumentError, 'performer is mandatory' if performer.nil?
+            @performer = performer
+          end
+
+          def function=(function)
+            raise ArgumentError, 'function is mandatory' if function.nil?
+            @function = function
+          end
+
+          def mode=(mode)
+            raise ArgumentError, 'mode is mandatory' if mode.nil?
+            @mode = mode
+          end
+        end
+
+        class Attestation < AuditDetails
+          attr_reader :reason
+          attr_accessor :proof, :items
+
+          def initialize(args = { })
+            super(args)
+            self.reason = args[:reason]
+            self.proof = args[:proof]
+            self.items = args[:items]
+          end
+
+          def reason=(reason)
+            raise ArgumentError, 'reason is mandatory' if reason.nil?
+            @reason = reason
+          end
+        end
+      end # of Generic
+    end # of Common
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/common/resource.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/common/resource.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/common/resource.rb	(revision 291)
@@ -0,0 +1,154 @@
+require 'set'
+module OpenEhr
+  module RM
+    module Common
+      module Resource
+        class AuthoredResource
+          attr_reader  :original_language, :translations
+          attr_accessor :description, :revision_history
+
+          def initialize(args = { })
+            self.original_language = args[:original_language]
+            self.translations = args[:translations]
+            self.revision_history = args[:revision_history]
+            self.description = args[:description]
+          end
+
+          def original_language=(original_language)
+            if original_language.nil?
+              raise ArgumentError, 'original language is mandatory'
+            end
+            @original_language = original_language
+          end
+
+          def translations=(translations)
+            if !translations.nil? && translations.empty?
+              raise ArgumentError, 'translation is empty'
+            end
+            @translations = translations
+          end
+
+          def current_version
+            @revision_history.most_recent_revision
+          end
+
+          def languages_available
+            return Set.new(@translations.keys)
+          end
+
+          def is_controlled?
+            return !@revision_history.nil?
+          end
+        end
+
+        class TranslationDetails
+          attr_reader :language, :author
+          attr_accessor :accreditation, :other_details
+
+          def initialize(args = {})
+            self.language = args[:language]
+            self.author = args[:author]
+            self.accreditation = args[:accreditation]
+            self.other_details = args[:other_details]
+          end
+
+          def language=(language)
+            raise ArgumentError, 'language is mandatory' if language.nil?
+            @language = language
+          end
+
+          def author=(author)
+            raise ArgumentError, 'author is mandatory' if author.nil?
+            @author = author
+          end
+        end
+
+        class ResourceDescription
+          attr_reader :original_author, :lifecycle_state, :details
+          attr_accessor :other_contributors, :resource_package_uri,
+                        :other_details, :parent_resource
+
+          def initialize(args = {})
+            self.original_author = args[:original_author]
+            self.lifecycle_state = args[:lifecycle_state]
+            self.details = args[:details]
+            self.other_contributors = args[:other_contributors]
+            self.resource_package_uri = args[:resource_package_uri]
+            self.other_details = args[:other_details]
+            self.parent_resource = args[:parent_resource]
+          end
+
+          def original_author=(original_author)
+            if original_author.nil? || original_author.empty?
+              raise ArgumentError, 'original_author is mandatory'
+            end
+            @original_author = original_author
+          end
+
+          def lifecycle_state=(lifecycle_state)
+            if lifecycle_state.nil? || lifecycle_state.empty?
+              raise ArgumentError, 'lifecycle_state is malformatted'
+            end
+            @lifecycle_state = lifecycle_state
+          end
+
+          def details=(details)
+            if details.nil? || details.empty?
+              raise ArgumentError, 'nil or empty details'
+            end
+            @details = details
+          end
+        end
+
+        class ResourceDescriptionItem
+          attr_reader :language, :purpose, :use, :misuse, :copyright
+          attr_accessor :keywords, :original_resource_uri, :other_details
+
+          def initialize(args = { })
+            self.language = args[:language]
+            self.purpose = args[:purpose]
+            self.keywords = args[:keywords]
+            self.use = args[:use]
+            self.misuse = args[:misuse]
+            self.copyright = args[:copyright]
+            self.original_resource_uri = args[:original_resource_uri]
+            self.other_details = args[:other_details]
+          end
+
+          def language=(language)
+            raise ArgumentError, 'language is mandatory' if language.nil?
+            @language = language
+          end
+
+          def purpose=(purpose)
+            if purpose.nil? || purpose.empty?
+              raise ArgumentError, 'purpose is mandatory'
+            end
+            @purpose = purpose
+          end
+
+          def use=(use)
+            if !use.nil? && use.empty?
+              raise ArgumentError, 'use is invalid'
+            end
+            @use = use
+          end
+
+          def misuse=(misuse)
+            if !misuse.nil? && misuse.empty?
+              raise ArgumentError, 'misuse is invalid'
+            end
+            @misuse = misuse
+          end
+
+          def copyright=(copyright)
+            if !copyright.nil? && copyright.empty?
+              raise ArgumentError, 'copyright is invalid'
+            end
+            @copyright = copyright
+          end
+        end
+      end # end of Resouce
+    end # end of module Common
+  end # end of module RM
+end # end of module OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/composition/content/entry.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/composition/content/entry.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/composition/content/entry.rb	(revision 291)
@@ -0,0 +1,23 @@
+module OpenEhr
+  module RM
+    module Content
+      module Entry
+        class Entry < Content_Item
+        end
+        class CareEntry < Entry
+        end
+        class Action < CareEntry
+          attr_accessor :description, :time
+          attr_accessor :ism_transition, :instruction_details
+          def initialize(description, time, ism_transition, instruction_details)
+            raise Exception.new("invalid argument") if description == nil || time == nil || ism_transition == nil
+            @description = description
+            @time = time
+            @ism_transition = ism_transition
+            @instruction_details = instruction_details if instruction_details != nil
+          end
+        end # end of Action
+      end # end of Entry
+    end # end of Content
+  end # end of RM
+end # end of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/data_structure.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/data_structure.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/data_structure.rb	(revision 291)
@@ -0,0 +1,20 @@
+# rm::data_structures
+# class DATA_STRUCTURE
+# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_5_1_76d0249_1140447518205_872539_864Report.html
+# refs #59
+
+module OpenEhr
+  module RM
+    module DataStructures
+      class DataStructure < OpenEhr::RM::Common::Archetyped::Locatable
+        def initialize(args = { })
+          super(args)
+        end
+
+        def as_hierarchy
+          raise NotImplementedError, "as_hirarchy must be implemented"
+        end
+      end
+    end # of Data_Structures
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/data_structures/item_structure/representation.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/data_structures/item_structure/representation.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/data_structures/item_structure/representation.rb	(revision 291)
@@ -0,0 +1,63 @@
+# rm::data_structures::item_structure::representation
+# representation module
+# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109066789167_738055_2581Report.html
+# refs #53
+module OpenEHR
+  module RM
+    module DataStructures
+      module ItemStructure
+        module Representation
+          class Item < OpenEHR::RM::Common::Archetyped::Locatable
+            def initialize(args = {})
+              super(args)
+            end
+          end
+
+          class Element < Item
+            attr_accessor :value
+            attr_reader :null_flavor
+            def initialize(args = {})
+              super(args)
+              self.value = args[:value]
+              self.null_flavor= args[:null_flavor]
+            end
+
+            def null_flavor=(null_flavor)
+              sr = nil
+              if !null_flavor.nil? and
+                  null_flavor.defining_code.terminology_id.name == 'openehr'
+                sr = Terminology.find(:first,                                  
+                                      :conditions => "code = '#{null_flavor.defining_code.code_string}'")
+              end
+              if null_flavor.nil? or (!sr.nil? and sr.group == 'null flavours')
+                @null_flavor = null_flavor
+              else
+                raise ArgumentError, 'null_flavor is invalid'
+              end
+            end
+
+            def is_null?
+              return @value.nil?
+            end
+          end
+
+          class Cluster < Item
+            attr_reader :items
+
+            def initialize(args = {})
+              super(args)
+              self.items = args[:items]
+            end
+
+            def items=(items)
+              if !items.nil? and items.empty?
+                raise ArgumentError, 'items should not empty'
+              end
+              @items = items
+            end
+          end
+        end # of Representation
+      end # of ItemStructure
+    end # of DataStructures
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/data_types/basic.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/data_types/basic.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/data_types/basic.rb	(revision 291)
@@ -0,0 +1,69 @@
+# This module is implemented from this UML:
+# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109067591791_562382_3151Report.html
+# Ticket refs #52
+module OpenEhr
+  module RM
+    module DataTypes
+      module Basic
+        module CanonicalFragment
+        end
+
+        class DataValue
+          include OpenEhr::RM::Support::Definition::BasicDefinition
+        end
+
+        class DvBoolean < DataValue
+          def initialize(value)
+            self.value = value
+          end
+          def value=(value)
+            raise ArgumentError, "value must not be nil" if value.nil?
+            if value == true or value =~ /TRUE/i
+              @value = true
+            else
+              @value = false
+            end
+          end
+          def value?
+            @value == true
+          end
+        end  # end of DvBoolean
+
+        class DvState < DataValue
+          attr_reader :value
+
+          def initialize(value, is_terminal)
+            self.value=value
+            self.is_terminal=is_terminal
+          end
+          def value=(v)
+            raise ArgumentError, "value should not be nil" if v.nil?
+            @value = v
+          end
+          def is_terminal?
+            @is_terminal
+          end
+          def is_terminal=(s)
+            raise ArgumentError, "terminal should not be nil" if s.nil?
+            @is_terminal = s
+          end
+        end # end of DvState
+
+        class DvIdentifier
+          attr_accessor :issuer, :assigner, :id, :type
+          def initialize(assigner, id, issuer, type)
+            if assigner.nil? or assigner.empty?\
+              or id.nil? or id.empty? or issuer.nil? or issuer.empty?\
+              or type.nil? or type.empty?
+              raise ArgumentError, "invalid argument"
+            end
+            @issuer = issuer
+            @assigner = assigner
+            @id = id
+            @type = type
+          end
+        end #end of DvIdentifier
+      end # end of Basic
+    end # end of DataTypes
+  end # end of RM
+end # end of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/data_types/charset.lst
===================================================================
--- ruby/trunk/lib/open_ehr/rm/data_types/charset.lst	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/data_types/charset.lst	(revision 291)
@@ -0,0 +1,818 @@
+ANSI_X3.4-1968
+iso-ir-6
+ANSI_X3.4-1986
+ISO_646.irv:1991
+ASCII
+ISO646-US
+US-ASCII
+us
+IBM367
+cp367
+csASCII
+ISO_8859-1:1987
+iso-ir-100
+ISO_8859-1
+ISO-8859-1
+latin1
+l1
+IBM819
+CP819
+csISOLatin1
+ISO_8859-2:1987
+iso-ir-101
+ISO_8859-2
+ISO-8859-2
+latin2
+l2
+csISOLatin2
+ISO_8859-3:1988
+iso-ir-109
+ISO_8859-3
+ISO-8859-3
+latin3
+l3
+csISOLatin3
+ISO_8859-4:1988
+iso-ir-110
+ISO_8859-4
+ISO-8859-4
+latin4
+l4
+csISOLatin4
+ISO_8859-5:1988
+iso-ir-144
+ISO_8859-5
+ISO-8859-5
+cyrillic
+csISOLatinCyrillic
+ISO_8859-6:1987
+iso-ir-127
+ISO_8859-6
+ISO-8859-6
+ECMA-114
+ASMO-708
+arabic
+csISOLatinArabic
+ISO_8859-7:1987
+iso-ir-126
+ISO_8859-7
+ISO-8859-7
+ELOT_928
+ECMA-118
+greek
+greek8
+csISOLatinGreek
+ISO_8859-8:1988
+iso-ir-138
+ISO_8859-8
+ISO-8859-8
+hebrew
+csISOLatinHebrew
+ISO_8859-9:1989
+iso-ir-148
+ISO_8859-9
+ISO-8859-9
+latin5
+l5
+csISOLatin5
+ISO-8859-10
+iso-ir-157
+l6
+ISO_8859-10:1992
+csISOLatin6
+latin6
+ISO_6937-2-add
+iso-ir-142
+csISOTextComm
+JIS_X0201
+X0201
+csHalfWidthKatakana
+JIS_Encoding
+csJISEncoding
+Shift_JIS
+MS_Kanji
+csShiftJIS
+Extended_UNIX_Code_Packed_Format_for_Japanese
+csEUCPkdFmtJapanese
+EUC-JP
+Extended_UNIX_Code_Fixed_Width_for_Japanese
+csEUCFixWidJapanese
+BS_4730
+iso-ir-4
+ISO646-GB
+gb
+uk
+csISO4UnitedKingdom
+SEN_850200_C
+iso-ir-11
+ISO646-SE2
+se2
+csISO11SwedishForNames
+IT
+iso-ir-15
+ISO646-IT
+csISO15Italian
+ES
+iso-ir-17
+ISO646-ES
+csISO17Spanish
+DIN_66003
+iso-ir-21
+de
+ISO646-DE
+csISO21German
+NS_4551-1
+iso-ir-60
+ISO646-NO
+no
+csISO60DanishNorwegian
+csISO60Norwegian1
+NF_Z_62-010
+iso-ir-69
+ISO646-FR
+fr
+csISO69French
+ISO-10646-UTF-1
+csISO10646UTF1
+ISO_646.basic:1983
+ref
+csISO646basic1983
+INVARIANT
+csINVARIANT
+ISO_646.irv:1983
+iso-ir-2
+irv
+csISO2IntlRefVersion
+NATS-SEFI
+iso-ir-8-1
+csNATSSEFI
+NATS-SEFI-ADD
+iso-ir-8-2
+csNATSSEFIADD
+NATS-DANO
+iso-ir-9-1
+csNATSDANO
+NATS-DANO-ADD
+iso-ir-9-2
+csNATSDANOADD
+SEN_850200_B
+iso-ir-10
+FI
+ISO646-FI
+ISO646-SE
+se
+csISO10Swedish
+KS_C_5601-1987
+iso-ir-149
+KS_C_5601-1989
+KSC_5601
+korean
+csKSC56011987
+ISO-2022-KR
+csISO2022KR
+EUC-KR
+csEUCKR
+ISO-2022-JP
+csISO2022JP
+ISO-2022-JP-2
+csISO2022JP2
+JIS_C6220-1969-jp
+JIS_C6220-1969
+iso-ir-13
+katakana
+x0201-7
+csISO13JISC6220jp
+JIS_C6220-1969-ro
+iso-ir-14
+jp
+ISO646-JP
+csISO14JISC6220ro
+PT
+iso-ir-16
+ISO646-PT
+csISO16Portuguese
+greek7-old
+iso-ir-18
+csISO18Greek7Old
+latin-greek
+iso-ir-19
+csISO19LatinGreek
+NF_Z_62-010_(1973)
+iso-ir-25
+ISO646-FR1
+csISO25French
+Latin-greek-1
+iso-ir-27
+csISO27LatinGreek1
+ISO_5427
+iso-ir-37
+csISO5427Cyrillic
+JIS_C6226-1978
+iso-ir-42
+csISO42JISC62261978
+BS_viewdata
+iso-ir-47
+csISO47BSViewdata
+INIS
+iso-ir-49
+csISO49INIS
+INIS-8
+iso-ir-50
+csISO50INIS8
+INIS-cyrillic
+iso-ir-51
+csISO51INISCyrillic
+ISO_5427:1981
+iso-ir-54
+ISO5427Cyrillic1981
+ISO_5428:1980
+iso-ir-55
+csISO5428Greek
+GB_1988-80
+iso-ir-57
+cn
+ISO646-CN
+csISO57GB1988
+GB_2312-80
+iso-ir-58
+chinese
+csISO58GB231280
+NS_4551-2
+ISO646-NO2
+iso-ir-61
+no2
+csISO61Norwegian2
+videotex-suppl
+iso-ir-70
+csISO70VideotexSupp1
+PT2
+iso-ir-84
+ISO646-PT2
+csISO84Portuguese2
+ES2
+iso-ir-85
+ISO646-ES2
+csISO85Spanish2
+MSZ_7795.3
+iso-ir-86
+ISO646-HU
+hu
+csISO86Hungarian
+JIS_C6226-1983
+iso-ir-87
+x0208
+JIS_X0208-1983
+csISO87JISX0208
+greek7
+iso-ir-88
+csISO88Greek7
+ASMO_449
+ISO_9036
+arabic7
+iso-ir-89
+csISO89ASMO449
+iso-ir-90
+csISO90
+JIS_C6229-1984-a
+iso-ir-91
+jp-ocr-a
+csISO91JISC62291984a
+JIS_C6229-1984-b
+iso-ir-92
+ISO646-JP-OCR-B
+jp-ocr-b
+csISO92JISC62991984b
+JIS_C6229-1984-b-add
+iso-ir-93
+jp-ocr-b-add
+csISO93JIS62291984badd
+JIS_C6229-1984-hand
+iso-ir-94
+jp-ocr-hand
+csISO94JIS62291984hand
+JIS_C6229-1984-hand-add
+iso-ir-95
+jp-ocr-hand-add
+csISO95JIS62291984handadd
+JIS_C6229-1984-kana
+iso-ir-96
+csISO96JISC62291984kana
+ISO_2033-1983
+iso-ir-98
+e13b
+csISO2033
+ANSI_X3.110-1983
+iso-ir-99
+CSA_T500-1983
+NAPLPS
+csISO99NAPLPS
+T.61-7bit
+iso-ir-102
+csISO102T617bit
+T.61-8bit
+T.61
+iso-ir-103
+csISO103T618bit
+ECMA-cyrillic
+iso-ir-111
+KOI8-E
+csISO111ECMACyrillic
+CSA_Z243.4-1985-1
+iso-ir-121
+ISO646-CA
+csa7-1
+ca
+csISO121Canadian1
+CSA_Z243.4-1985-2
+iso-ir-122
+ISO646-CA2
+csa7-2
+csISO122Canadian2
+CSA_Z243.4-1985-gr
+iso-ir-123
+csISO123CSAZ24341985gr
+ISO_8859-6-E
+csISO88596E
+ISO-8859-6-E
+ISO_8859-6-I
+csISO88596I
+ISO-8859-6-I
+T.101-G2
+iso-ir-128
+csISO128T101G2
+ISO_8859-8-E
+csISO88598E
+ISO-8859-8-E
+ISO_8859-8-I
+csISO88598I
+ISO-8859-8-I
+CSN_369103
+iso-ir-139
+csISO139CSN369103
+JUS_I.B1.002
+iso-ir-141
+ISO646-YU
+js
+yu
+csISO141JUSIB1002
+IEC_P27-1
+iso-ir-143
+csISO143IECP271
+JUS_I.B1.003-serb
+iso-ir-146
+serbian
+csISO146Serbian
+JUS_I.B1.003-mac
+macedonian
+iso-ir-147
+csISO147Macedonian
+greek-ccitt
+iso-ir-150
+csISO150
+csISO150GreekCCITT
+NC_NC00-10:81
+cuba
+iso-ir-151
+ISO646-CU
+csISO151Cuba
+ISO_6937-2-25
+iso-ir-152
+csISO6937Add
+GOST_19768-74
+ST_SEV_358-88
+iso-ir-153
+csISO153GOST1976874
+ISO_8859-supp
+iso-ir-154
+latin1-2-5
+csISO8859Supp
+ISO_10367-box
+iso-ir-155
+csISO10367Box
+latin-lap
+lap
+iso-ir-158
+csISO158Lap
+JIS_X0212-1990
+x0212
+iso-ir-159
+csISO159JISX02121990
+DS_2089
+DS2089
+ISO646-DK
+dk
+csISO646Danish
+us-dk
+csUSDK
+dk-us
+csDKUS
+KSC5636
+ISO646-KR
+csKSC5636
+UNICODE-1-1-UTF-7
+csUnicode11UTF7
+ISO-2022-CN
+ISO-2022-CN-EXT
+UTF-8
+ISO-8859-13
+ISO-8859-14
+iso-ir-199
+ISO_8859-14:1998
+ISO_8859-14
+latin8
+iso-celtic
+l8
+ISO-8859-15
+ISO_8859-15
+Latin-9
+ISO-8859-16
+iso-ir-226
+ISO_8859-16:2001
+ISO_8859-16
+latin10
+l10
+GBK
+CP936
+MS936
+windows-936
+GB18030
+ISO-11548-1
+ISO_11548-1
+ISO_TR_11548-1
+csISO115481
+KZ-1048
+STRK1048-2002
+RK1048
+csKZ1048
+ISO-10646-UCS-2
+csUnicode
+ISO-10646-UCS-4
+csUCS4
+ISO-10646-UCS-Basic
+csUnicodeASCII
+ISO-10646-Unicode-Latin1
+csUnicodeLatin1
+ISO-10646
+ISO-10646-J-1
+ISO-Unicode-IBM-1261
+csUnicodeIBM1261
+ISO-Unicode-IBM-1268
+csUnicodeIBM1268
+ISO-Unicode-IBM-1276
+csUnicodeIBM1276
+ISO-Unicode-IBM-1264
+csUnicodeIBM1264
+ISO-Unicode-IBM-1265
+csUnicodeIBM1265
+UNICODE-1-1
+csUnicode11
+SCSU
+UTF-7
+UTF-16BE
+UTF-16LE
+UTF-16
+CESU-8
+csCESU-8
+UTF-32
+UTF-32BE
+UTF-32LE
+BOCU-1
+csBOCU-1
+ISO-8859-1-Windows-3.0-Latin-1
+csWindows30Latin1
+ISO-8859-1-Windows-3.1-Latin-1
+csWindows31Latin1
+ISO-8859-2-Windows-Latin-2
+csWindows31Latin2
+ISO-8859-9-Windows-Latin-5
+csWindows31Latin5
+hp-roman8
+roman8
+r8
+csHPRoman8
+Adobe-Standard-Encoding
+csAdobeStandardEncoding
+Ventura-US
+csVenturaUS
+Ventura-International
+csVenturaInternational
+DEC-MCS
+dec
+csDECMCS
+IBM850
+cp850
+850
+csPC850Multilingual
+PC8-Danish-Norwegian
+csPC8DanishNorwegian
+IBM862
+cp862
+862
+csPC862LatinHebrew
+PC8-Turkish
+csPC8Turkish
+IBM-Symbols
+csIBMSymbols
+IBM-Thai
+csIBMThai
+HP-Legal
+csHPLegal
+HP-Pi-font
+csHPPiFont
+HP-Math8
+csHPMath8
+Adobe-Symbol-Encoding
+csHPPSMath
+HP-DeskTop
+csHPDesktop
+Ventura-Math
+csVenturaMath
+Microsoft-Publishing
+csMicrosoftPublishing
+Windows-31J
+csWindows31J
+GB2312
+csGB2312
+Big5
+csBig5
+macintosh
+mac
+csMacintosh
+IBM037
+cp037
+ebcdic-cp-us
+ebcdic-cp-ca
+ebcdic-cp-wt
+ebcdic-cp-nl
+csIBM037
+IBM038
+EBCDIC-INT
+cp038
+csIBM038
+IBM273
+CP273
+csIBM273
+IBM274
+EBCDIC-BE
+CP274
+csIBM274
+IBM275
+EBCDIC-BR
+cp275
+csIBM275
+IBM277
+EBCDIC-CP-DK
+EBCDIC-CP-NO
+csIBM277
+IBM278
+CP278
+ebcdic-cp-fi
+ebcdic-cp-se
+csIBM278
+IBM280
+CP280
+ebcdic-cp-it
+csIBM280
+IBM281
+EBCDIC-JP-E
+cp281
+csIBM281
+IBM284
+CP284
+ebcdic-cp-es
+csIBM284
+IBM285
+CP285
+ebcdic-cp-gb
+csIBM285
+IBM290
+cp290
+EBCDIC-JP-kana
+csIBM290
+IBM297
+cp297
+ebcdic-cp-fr
+csIBM297
+IBM420
+cp420
+ebcdic-cp-ar1
+csIBM420
+IBM423
+cp423
+ebcdic-cp-gr
+csIBM423
+IBM424
+cp424
+ebcdic-cp-he
+csIBM424
+IBM437
+cp437
+437
+csPC8CodePage437
+IBM500
+CP500
+ebcdic-cp-be
+ebcdic-cp-ch
+csIBM500
+IBM851
+cp851
+851
+csIBM851
+IBM852
+cp852
+852
+csPCp852
+IBM855
+cp855
+855
+csIBM855
+IBM857
+cp857
+857
+csIBM857
+IBM860
+cp860
+860
+csIBM860
+IBM861
+cp861
+861
+cp-is
+csIBM861
+IBM863
+cp863
+863
+csIBM863
+IBM864
+cp864
+csIBM864
+IBM865
+cp865
+865
+csIBM865
+IBM868
+CP868
+cp-ar
+csIBM868
+IBM869
+cp869
+869
+cp-gr
+csIBM869
+IBM870
+CP870
+ebcdic-cp-roece
+ebcdic-cp-yu
+csIBM870
+IBM871
+CP871
+ebcdic-cp-is
+csIBM871
+IBM880
+cp880
+EBCDIC-Cyrillic
+csIBM880
+IBM891
+cp891
+csIBM891
+IBM903
+cp903
+csIBM903
+IBM904
+cp904
+904
+csIBBM904
+IBM905
+CP905
+ebcdic-cp-tr
+csIBM905
+IBM918
+CP918
+ebcdic-cp-ar2
+csIBM918
+IBM1026
+CP1026
+csIBM1026
+EBCDIC-AT-DE
+csIBMEBCDICATDE
+EBCDIC-AT-DE-A
+csEBCDICATDEA
+EBCDIC-CA-FR
+csEBCDICCAFR
+EBCDIC-DK-NO
+csEBCDICDKNO
+EBCDIC-DK-NO-A
+csEBCDICDKNOA
+EBCDIC-FI-SE
+csEBCDICFISE
+EBCDIC-FI-SE-A
+csEBCDICFISEA
+EBCDIC-FR
+csEBCDICFR
+EBCDIC-IT
+csEBCDICIT
+EBCDIC-PT
+csEBCDICPT
+EBCDIC-ES
+csEBCDICES
+EBCDIC-ES-A
+csEBCDICESA
+EBCDIC-ES-S
+csEBCDICESS
+EBCDIC-UK
+csEBCDICUK
+EBCDIC-US
+csEBCDICUS
+UNKNOWN-8BIT
+csUnknown8BiT
+MNEMONIC
+csMnemonic
+MNEM
+csMnem
+VISCII
+csVISCII
+VIQR
+csVIQR
+KOI8-R
+csKOI8R
+HZ-GB-2312
+IBM866
+cp866
+866
+csIBM866
+IBM775
+cp775
+csPC775Baltic
+KOI8-U
+IBM00858
+CCSID00858
+CP00858
+PC-Multilingual-850+euro
+IBM00924
+CCSID00924
+CP00924
+ebcdic-Latin9--euro
+IBM01140
+CCSID01140
+CP01140
+ebcdic-us-37+euro
+IBM01141
+CCSID01141
+CP01141
+ebcdic-de-273+euro
+IBM01142
+CCSID01142
+CP01142
+ebcdic-dk-277+euro
+ebcdic-no-277+euro
+IBM01143
+CCSID01143
+CP01143
+ebcdic-fi-278+euro
+ebcdic-se-278+euro
+IBM01144
+CCSID01144
+CP01144
+ebcdic-it-280+euro
+IBM01145
+CCSID01145
+CP01145
+ebcdic-es-284+euro
+IBM01146
+CCSID01146
+CP01146
+ebcdic-gb-285+euro
+IBM01147
+CCSID01147
+CP01147
+ebcdic-fr-297+euro
+IBM01148
+CCSID01148
+CP01148
+ebcdic-international-500+euro
+IBM01149
+CCSID01149
+CP01149
+ebcdic-is-871+euro
+Big5-HKSCS
+IBM1047
+IBM-1047
+PTCP154
+csPTCP154
+PT154
+CP154
+Cyrillic-Asian
+BRF
+csBRF
+TSCII
+csTSCII
+windows-1250
+windows-1251
+windows-1252
+windows-1253
+windows-1254
+windows-1255
+windows-1256
+windows-1257
+windows-1258
+TIS-620
Index: ruby/trunk/lib/open_ehr/rm/data_types/charset_extract.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/data_types/charset_extract.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/data_types/charset_extract.rb	(revision 291)
@@ -0,0 +1,24 @@
+#! /usr/bin/env ruby
+# charactor sets extraction from download file from
+# http://www.iana.org/assignments/character-sets
+# as character-sets
+
+class CharacterSets
+  def self.get_list
+    list = Array.new
+    open('character-sets') do |file|
+      while line = file.gets
+        if /^((Name:)|(Alias:)) (\S+)/ =~ line
+          list << $4 unless $4 == "None"
+        end
+      end
+    end
+    return list
+  end
+end
+
+open('charset.lst','w') do |f|
+  CharacterSets.get_list.each do |line|
+    f.puts(line)
+  end
+end
Index: ruby/trunk/lib/open_ehr/rm/data_types/encapsulated.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/data_types/encapsulated.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/data_types/encapsulated.rb	(revision 291)
@@ -0,0 +1,111 @@
+# OpenEHR::RM::Data_Types::Encapsulated 
+# http://www.openehr.org/svn/specification/TAGS/Release-1.0.2/publishing/architecture/computable/UML/uml_start_view.html
+# refs #51
+require 'rubygems'
+require 'locale/info'
+
+module OpenEhr
+  module RM
+    module DataTypes
+      module Encapsulated
+        class DvEncapsulated  < OpenEhr::RM::DataTypes::Basic::DataValue
+          attr_reader :language, :charset, :size
+          def initialize(charset, language, size)
+            self.charset = charset
+            self.language = language
+            self.size = size
+          end
+
+          def size=(size)
+            if size < 0
+              raise ArgumentError, "negative size"
+            end
+            @size = size
+          end
+
+          def language=(language)
+            if language.nil? ||
+                !Locale::Info.language_code?(language.code_string)
+              raise ArgumentError, 'invalid language code'
+            end
+            @language = language
+          end
+
+          def charset=(charset)
+            if charset.nil? || !charset_valid?(charset.code_string)
+              raise ArgumentError, 'invalid charset'
+            end
+            @charset = charset
+          end
+
+          private
+          def size_positive
+            raise ArgumentError, "size must be positive" if size < 0
+          end
+
+          def charset_valid?(charset)
+            result = false
+            open('rm/data_types/charset.lst') do |file|
+              while line = file.gets
+                if charset == line.chomp
+                  result = true
+                  break
+                end
+              end
+            end
+            return result
+          end
+        end
+
+# media type http://www.iana.org/assignments/media-types/text/
+        class DvMultimedia < DvEncapsulated
+          attr_reader :media_type
+          attr_accessor :uri, :data, :compression_algorithm,
+          :integrity_check, :integrity_check_algorithm, :alternate_text
+          def initialize(charset, language, size, media_type, uri=nil,
+                         data=nil, compression_algorithm=nil,
+                         integrity_check=nil, integrity_check_algorithm=nil,
+                         alternate_text=nil)
+            super(charset, language, size)
+            self.media_type = media_type
+            @uri = uri
+            @data = data
+            @compression_algorithm = compression_algorithm
+            @integrity_check = integrity_check
+            @integrity_check_algorithm = integrity_check_algorithm
+            @alternate_text = alternate_text
+          end
+          def media_type=(media_type)
+            if media_type.code_string.nil?
+              raise ArgumentError, 'media_type should not be nil'
+            end
+            @media_type = media_type
+          end
+        end
+
+        class DvParsable < DvEncapsulated
+          attr_reader :value, :formalism
+          def initialize(charset, language, size, formalism, value)
+            super(charset, language, size)
+            self.formalism = formalism
+            self.value = value
+          end
+
+          def value=(value)
+            raise ArgumentError, 'value must not be nil' if value.nil?
+            @value = value
+          end
+
+          def formalism=(formalism)
+            if formalism.nil?
+              raise ArgumentError, "formalism must not be nil"
+            elsif formalism.empty?
+              raise ArgumentError, "formalism must nto be empty"
+            end
+            @formalism = formalism
+          end
+        end
+      end # of Encapsulated
+    end # of DataTypes
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/data_types/quantity.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/data_types/quantity.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/data_types/quantity.rb	(revision 291)
@@ -0,0 +1,401 @@
+# This modules are implemented from the UML shown bellow
+# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109599337877_94556_1510Report.html
+# Ticket refs #50
+require 'assumed_library_types'
+module OpenEhr
+  module RM
+    module DataTypes
+      module Quantity
+
+        autoload :Date_Time, "rm/data_types/quantity/date_time.rb"
+
+        class DvOrdered < OpenEhr::RM::DataTypes::Basic::DataValue
+          include Comparable
+          attr_accessor :normal_range, :other_refference_ranges, :normal_status
+
+          def initialize(normal_range=nil, normal_status = nil,
+                         other_reference_ranges=nil)
+            self.normal_range = normal_range
+            self.normal_status = normal_status
+            self.other_reference_ranges = other_reference_ranges
+          end          
+
+          def is_normal?
+            if @normal_range.nil? and @normal_status.nil?
+              return false
+            elsif !@normal_range.nil?
+              return @normal_range.has(@value)
+            elsif !@normal_status.nil?
+              return @normal_status.code_string == 'N'
+            end
+          end
+
+          def is_simple?
+            normal_status.nil? and other_refference_ranges.nil?
+          end
+
+          def <=>(other)
+            raise NotImplementedError, 'This method should be implemented'
+          end
+
+          def other_reference_ranges=(other_reference_ranges)
+            unless other_reference_ranges.nil? or !other_reference_ranges.is_empty?
+              raise ArgumentError, "Other reference ranges validity error"
+            end
+            @other_reference_ranges = other_reference_ranges
+          end
+
+          def is_strictly_comparable_to?(other)
+            raise NotImplementedError, 'this method should be implemented'
+          end
+        end
+
+        class DvInterval < OpenEhr::AssumedLibraryTypes::Interval
+
+        end
+
+        class DvQuantified < DvOrdered
+          attr_reader :magnitude, :magnitude_status
+
+          def initialize(magnitude, magnitude_status=nil,
+                         normal_range=nil, normal_status = nil,
+                         other_reference_ranges=nil)
+            super(normal_range, normal_status, other_reference_ranges)
+            self.magnitude = magnitude
+            self.magnitude_status = magnitude_status
+          end
+
+          def <=>(others)
+            @value <=> others.value
+          end
+
+          def magnitude=(magnitude)
+            raise ArgumentError, 'magnitude should not be nil' if magnitude.nil?
+            @magnitude = magnitude
+          end
+
+          def magnitude_status=(magnitude_status)
+            if magnitude_status.nil?
+              @magnitude_status = '='
+            elsif DvQuantified.valid_magnitude_status?(magnitude_status)
+              @magnitude_status = magnitude_status
+            else
+              raise ArgumentError, 'magnitude_status invalid'
+            end
+          end
+
+          def accuracy_unknown?
+            return @accuracy.nil?
+          end
+
+          def self.valid_magnitude_status?(s)
+            if s == '=' || s == '>' || s == '<' || s == '<=' ||
+                s == '>=' || s == '~'
+              return true
+            else
+              return false
+            end
+          end
+        end
+
+        class DvOrdinal < DvOrdered
+          attr_reader :value, :symbol, :limits
+
+          def initialize(value, symbol, limits=nil, normal_range=nil,
+                         normal_status = nil, other_reference_ranges=nil)
+            self.value = value
+            self.symbol = symbol
+            self.limits = limits
+            super(normal_range, normal_status, other_reference_ranges)
+          end
+
+          def value=(value)
+            raise ArgumentError, 'value should not be nil' if value.nil?
+            @value = value
+          end
+
+          def symbol=(symbol)
+            raise ArgumentError,'symbol should not be nil' if symbol.nil?
+            @symbol = symbol
+          end
+
+          def is_strictly_comparable_to?(others)
+            unless others.instance_of? OpenEhr::RM::DataTypes::Quantity::DvOrdinal
+              return false
+            end
+            unless others.symbol.defining_code.terminology_id.value ==
+                @symbol.defining_code.terminology_id.value
+              return false
+            end
+            return true
+          end
+
+          def <=>(other)
+            @value <=> other.value
+          end
+
+          def limits=(limits)
+            unless limits.nil? or limits.meaning.value == 'limits'
+              raise ArgumentError, 'invalid limits'
+            else
+              @limits = limits
+            end
+          end
+        end
+
+        class DvAbsoluteQuantity < DvQuantified
+          attr_accessor :accuracy
+
+          def initialize(magnitude, magnitude_status=nil, accuracy=nil,
+                         normal_range=nil, normal_status = nil,
+                         other_reference_ranges=nil)
+            super(magnitude, magnitude_status, normal_range,
+                   normal_status, other_reference_ranges)
+            self.accuracy = accuracy
+          end
+
+          def add(a_diff)
+            raise NotImplementedError, 'add must be implemented'
+          end
+
+          def diff(other)
+            raise NotImplementedError, 'diff must be implemented'
+          end
+
+          def subtract(a_diff)
+            raise NotImplementedError, 'subtract must be implemented'
+          end
+        end
+
+        class DvAmount < DvQuantified
+          attr_reader :accuracy, :accuracy_percent
+          def initialize(magnitude, magnitude_status=nil, accuracy=nil,
+                         accuracy_percent=nil, normal_range=nil,
+                         normal_status = nil, other_reference_ranges=nil)
+            super(magnitude, magnitude_status, normal_range,
+                  normal_status, other_reference_ranges)
+            unless accuracy.nil?
+              set_accuracy(accuracy, accuracy_percent)
+            else
+              @accuracy, @accuracy_percent = nil, nil
+            end
+          end
+
+          def +(other)
+            unless self.is_strictly_comparable_to?(other)
+              raise ArgumentError, 'type mismatch'
+            end
+            return DvAmount.new(@magnitude+other.magnitude, @magnitude_status,
+                                 @accuracy, @accuracy_percent, @normal_range,
+                                 @normal_status, @other_reference_ranges)
+          end
+
+          def -(other)
+            other.magnitude = - other.magnitude
+            self+(other)
+          end
+
+          def set_accuracy(accuracy, accuracy_percent)
+            if accuracy_percent
+              raise ArgumentError, 'accuracy invalid' if accuracy < 0.0 || accuracy > 100.0
+            else
+              raise ArgumentError, 'accuracy invaild' if accuracy < 0.0 || accuracy > 1.0
+            end
+            @accuracy, @accuracy_percent = accuracy, accuracy_percent
+          end
+
+          def accuracy_is_percent?
+            return @accuracy_percent
+          end
+        end
+
+        class DvQuantity < DvAmount
+          attr_reader :units, :precision
+          def initialize(magnitude, units, magnitude_status=nil, precision=nil,
+                         accuracy=nil, accuracy_percent=nil, normal_range=nil,
+                         normal_status = nil, other_reference_ranges=nil)
+            super(magnitude, magnitude_status, accuracy, accuracy_percent,
+                  normal_range, normal_status, other_reference_ranges)
+            self.units = units
+            self.precision = precision
+          end
+
+          def units=(units)
+            raise ArgumentError, 'units should not be nil' if units.nil?
+            @units = units
+          end
+
+          def precision=(precision)
+            unless precision.nil? || precision >= -1
+              raise ArgumentError, 'precision invalid'
+            end
+            @precision = precision
+          end
+
+          def is_strictly_comparable_to?(others)
+            return false if others.nil?
+            if others.instance_of?(DvQuantity) && others.units == @units
+              return true
+            else
+              return false
+            end
+          end
+
+          def is_integral?
+            if @precision.nil? || precision != 0
+              return false
+            else
+              return true
+            end
+          end
+# accuracy???
+          def +(other)
+            dv_amount = super(other)
+            return DvQuantity.new(dv_amount.magnitude, @units,
+                                   @magnitude_status, @precision,
+                                   @accuracy, @accuracy_percent, @normal_range,
+                                   @normal_status, @other_reference_ranges)
+          end
+        end
+
+        class DvCount < DvAmount
+          def is_strictly_comparable_to?(others)
+            return false if others.nil?
+            if others.instance_of?(DvCount)
+              return true
+            else
+              return false
+            end
+          end
+        end
+
+        class ReferenceRange
+          attr_reader :meaning, :range
+
+          def initialize(meaning, range)
+            self.meaning = meaning
+            self.range = range
+          end
+
+          def meaning=(meaning)
+            if meaning.nil?
+              raise ArgumentError, 'meaning should not be nil'
+            end
+            @meaning = meaning
+          end
+
+          def range=(range)
+            if range.nil?
+              raise ArgumentError, 'range should not be nil'
+            end
+            @range = range
+          end
+
+          def is_in_range?(val)
+            return @range.has?(val)
+          end
+        end
+
+        module ProportionKind
+          PK_RATIO = 0
+          PK_UNITARY = 1
+          PK_PERCENT = 2
+          PK_FRACTION = 3
+          PK_INTEGER_FRACTION = 4
+
+          def ProportionKind.valid_proportion_kind?(kind)
+            return true if kind >= 0 && kind <= 4
+            return false
+          end
+        end # end of ProportionKind
+
+        class DvProportion < DvAmount
+          include ProportionKind
+          attr_reader :numerator, :denominator, :type, :precision
+
+          def initialize(numerator, denominator, type, precision=nil,
+                         magnitude_status=nil, accuracy=nil,
+                         accuracy_percent=nil, normal_range=nil,
+                         normal_status = nil, other_reference_ranges=nil)
+            self.type = type
+            self.numerator = numerator
+            self.denominator = denominator
+            self.precision = precision
+            self.magnitude_status = magnitude_status
+            unless accuracy.nil?
+              set_accuracy(accuracy, accuracy_percent)
+            else
+              @accuracy, @accuracy_percent = nil, nil
+            end
+            self.normal_range = normal_range
+            self.normal_status = normal_status
+            self.other_reference_ranges = other_reference_ranges
+          end
+
+          def numerator=(numerator)
+            raise ArgumentError, 'numerator should not be nil' if numerator.nil?
+            if (@type == PK_FRACTION || @type == PK_INTEGER_FRACTION) &&
+                !numerator.integer?
+              raise ArgumentError, 'numerator invalid for type'
+            end
+            @numerator = numerator
+          end
+
+          def denominator=(denominator)
+            if denominator.nil? or denominator == PK_RATIO
+              raise ArgumentError, 'denominator invalid'
+            end
+            if (@type == PK_FRACTION || @type == PK_INTEGER_FRACTION) &&
+                !denominator.integer?
+              raise ArgumentError, 'denominator invalid for type'
+            end
+            if @type == PK_UNITARY && denominator != 1
+              raise ArgumentError, 'denominator invalid for type'
+            end
+            if @type == PK_PERCENT && denominator != 100
+              raise ArgumentError, 'denominator invaild for type'
+            end
+            @denominator = denominator
+          end
+
+          def type=(type)
+            if ProportionKind.valid_proportion_kind?(type)
+              @type = type
+            else
+              raise ArgumentError, 'type invalid'
+            end
+          end
+
+          def magnitude
+            return numerator.to_f/denominator.to_f
+          end
+
+          def precision=(precision)
+            unless precision.nil?
+              unless precision == 0 || self.is_integral?
+                @precision = precision
+              else
+                raise ArgumentError, 'precision invalid'
+              end
+            end
+          end
+
+          def is_integral?
+            return denominator.integer? && numerator.integer?
+          end
+
+          def is_strictly_comparable_to?(other)
+            unless other.instance_of?(DvProportion)
+              return false
+            end
+            if other.type == @type
+              return true
+            else
+              return false
+            end
+          end
+        end # end of DvProportion
+      end # of Quantity
+    end # of Data_Types
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/data_types/quantity/date_time.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/data_types/quantity/date_time.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/data_types/quantity/date_time.rb	(revision 291)
@@ -0,0 +1,240 @@
+# This module is implementation of the UML:
+# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109696321450_28117_5362Report.html
+# Ticket refs #49
+require 'assumed_library_types'
+require 'date'
+
+module OpenEhr
+  module RM
+    module DataTypes
+      module Quantity
+        module DateTime
+          class DvTemporal < OpenEhr::RM::DataTypes::Quantity::DvAbsoluteQuantity
+            include Comparable
+            attr_reader :value
+
+            def initialize(value, magnitude_status=nil, accuracy=nil,
+                         normal_range=nil, normal_status=nil,
+                         other_reference_ranges=nil)
+              self.value = value
+              self.magnitude_status = magnitude_status
+              self.accuracy = accuracy
+              self.normal_range = normal_range
+              self.normal_status = normal_status
+              self.other_reference_ranges = other_reference_ranges
+            end
+
+            def value=(value)
+              if value.nil? or value.empty?
+                raise ArgumentError, 'invalid value'
+              end
+              @value = value
+            end
+
+            def <=>(other)
+              self.magnitude <=> other.magnitude
+            end
+          end
+
+          class DvDate < DvTemporal
+            include OpenEhr::AssumedLibraryTypes::ISO8601_DATE_MODULE
+
+            DAYS_IN_MONTH = [0,31,28,31,30,31,30,31,31,30,31,30,31]
+
+            def initialize(value, magnitude_status=nil, accuracy=nil,
+                           normal_range=nil, normal_status=nil,
+                           other_reference_range=nil)
+              super(value, magnitude_status, accuracy, normal_range,
+                    normal_status, other_reference_range)
+            end
+
+            def value=(value)
+              super(value)
+              iso8601_date = AssumedLibraryTypes::ISO8601_DATE.new(value)
+              @year = iso8601_date.year
+              @month = iso8601_date.month
+              @day = iso8601_date.day
+            end
+
+            undef magnitude=
+
+            def magnitude
+              return Date.new(@year, @month, @day)-Date.new(0000,1,1)
+            end
+
+            def diff(other)
+              if self.magnitude > other.magnitude
+                past, future = other, self
+              else
+                past, future = self, other
+              end
+              year, month, day = 0, 0, 0
+              if (future.day >= past.day)
+                day = future.day - past.day
+              else
+                month -= 1
+                previous_month = future.month - 1
+                if previous_month <= 0
+                  previous_month = 12
+                end
+                day = DAYS_IN_MONTH[previous_month] + future.day - past.day
+                if leapyear?(future.year) && (previous_month == 2)
+                  day += 1
+                end
+              end
+              week = day / 7
+              if (future.month >= past.month)
+                month += future.month - past.month
+              else
+                year -= 1
+                month += future.month + 12 - past.month
+              end
+              year += future.year - past.year
+              return DvDuration.new(
+                   'P' + year.to_s + 'Y' + month.to_s + 'M' + 
+                         week.to_s + 'W' + day.to_s + 'D')
+            end
+          end
+          
+          class DvTime < DvTemporal
+            include OpenEhr::AssumedLibraryTypes::ISO8601_TIME_MODULE
+            def initialize(value, magnitude_status=nil, accuracy=nil,
+                           normal_range=nil, normal_status=nil,
+                           other_reference_range=nil)
+              super(value, magnitude_status, accuracy, normal_range,
+                    normal_status, other_reference_range)
+            end
+
+            def value=(value)
+              super(value)
+              iso8601_time = AssumedLibraryTypes::ISO8601_TIME.new(value)
+              @hour = iso8601_time.hour
+              @minute = iso8601_time.minute
+              @second = iso8601_time.second
+              @fractional_second = iso8601_time.fractional_second
+            end
+
+            def magnitude
+              return @hour * 60 * 60 + @minute * 60 + @second + @fractional_second
+            end
+
+            def diff(other)
+              diff = (other.magnitude - self.magnitude).abs
+              hour = (diff / 60 / 60).to_i
+              minute = ((diff - hour*60*60)/60).to_i
+              second = (diff - hour * 60 *60 - minute * 60).to_i
+              fractional_second = ((diff - diff.to_i)*1000000.0).to_i/1000000.0
+              return DvDuration.new('P0Y0M0W0DT' + hour.to_s + 'H' +
+                        minute.to_s + 'M' +
+                        second.to_s + fractional_second.to_s[1..-1] + 'S')
+            end
+          end
+
+          class DvDateTime < DvTemporal
+            include OpenEhr::AssumedLibraryTypes::ISO8601_DATE_TIME_MODULE
+            attr_reader :value
+
+            def initialize(value, magnitude_status=nil, accuracy=nil,
+                           normal_range=nil, normal_status=nil,
+                           other_reference_range=nil)
+              super(value, magnitude_status, accuracy, normal_range,
+                    normal_status, other_reference_range)
+            end
+
+            def value=(value)              
+              super(value)
+              iso8601date_time = AssumedLibraryTypes::ISO8601_DATE_TIME.new(value)
+              self.year = iso8601date_time.year
+              self.month = iso8601date_time.month
+              self.day = iso8601date_time.day
+              self.minute = iso8601date_time.minute
+              self.second = iso8601date_time.second
+              self.hour = iso8601date_time.hour
+              self.fractional_second = iso8601date_time.fractional_second
+              self.timezone = iso8601date_time.timezone
+            end
+
+            def magnitude
+              seconds = DateTime.new(@year,@month,@day,@hour,@minute,@second) - 
+                DateTime.new(0000,1,1,0,0,0)
+              if @fractional_second.nil?
+                return seconds
+              else
+                return seconds + @fractional_second
+              end
+            end
+
+            undef magnitude=
+
+            def diff(other)
+              if self.magnitude >= other.magnitude
+                past, future = other, self
+              else
+                past, future = self, other
+              end
+              past_date, past_time = split_date_time(past)
+              future_date, future_time = split_date_time(future)
+              time_diff = future_time.magnitude - past_time.magnitude
+              if future_time.magnitude < past_time.magnitude
+                future_date.day = future_date.day - 1
+                time_diff += 24 * 60 * 60
+              end
+              date_duration = past_date.diff(future_date)
+              hour = (time_diff / 60 / 60).to_i
+              minute = ((time_diff - hour*60*60)/60).to_i
+              second = (time_diff - hour * 60 *60 - minute * 60).to_i
+              fractional_second = ((time_diff - time_diff.to_i)*1000000.0).to_i/1000000.0
+
+              return DvDuration.new(date_duration.value + 'T' +
+                        hour.to_s + 'H' +
+                        minute.to_s + 'M' +
+                        second.to_s + fractional_second.to_s[1..-1] + 'S')
+                                   
+            end
+
+            private
+
+            def split_date_time(date_time)
+              /^(.*)T(.*)$/ =~ date_time.as_string
+              return DvDate.new($1), DvTime.new($2)
+            end
+          end
+
+          class DvDuration < DvAmount
+            include AssumedLibraryTypes::ISO8601_DURATION_MODULE
+            attr_reader :value
+            
+            def initialize(value, magnitude_status=nil, accuracy=nil,
+                         accuracy_percent=nil, normal_range=nil,
+                         normal_status = nil, other_reference_ranges=nil)
+              self.value = value
+            end
+
+            def value=(value)
+              raise ArgumentError, 'value must be not nil' if value.nil?
+              @value = value
+              iso8601_duration = AssumedLibraryTypes::ISO8601_DURATION.new(value)
+              self.years = iso8601_duration.years
+              self.months = iso8601_duration.months
+              self.weeks = iso8601_duration.weeks
+              self.days = iso8601_duration.days
+              self.hours = iso8601_duration.hours
+              self.minutes = iso8601_duration.minutes
+              self.seconds = iso8601_duration.seconds
+              self.fractional_second = iso8601_duration.fractional_second
+            end
+
+            def magnitude
+              return ((((@year + @month/MONTH_IN_YEAR)*NOMINAL_DAYS_IN_MONTH) +
+                @week * DAYS_IN_WEEK + @days) * HOURS_IN_DAY * MINUTES_IN_HOUR*
+                SECONDS_IN_MINUTE) + @second + @fractional_second
+            end
+            
+            undef magnitude=
+
+          end
+        end # of DateTime
+      end # of Quantity
+    end # of Data_Types
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/data_types/text.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/data_types/text.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/data_types/text.rb	(revision 291)
@@ -0,0 +1,171 @@
+# This module implemented from this UML
+# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109067605961_209522_3179Report.html
+# Ticket refs #48
+module OpenEhr
+  module RM
+    module DataTypes
+      module Text
+        class TermMapping
+          attr_reader :match, :purpose, :target
+          def initialize(match, purpose, target)
+            match_valid(match)
+            purpose_valid(purpose)
+            target_valid(target)
+            @match, @purpose, @target = match, purpose, target
+          end
+          def broader?
+            match == '>'
+          end
+          def equivalent?
+            match == '='
+          end
+          def narrower?
+            match == '<'
+          end
+          def unknown?
+            match == '?'
+          end
+          def TermMapping.is_valid_mach_code?(c)
+            c == '>' or c == '=' or c == '<' or c == '?'
+          end
+          private
+          def match_valid(match)
+            raise ArgumentError, "match is not valid" if !TermMapping.is_valid_mach_code? match
+          end
+          def purpose_valid(purpose)
+            if purpose.nil? or !purpose.instance_of? DvCodedText
+              raise ArgumentError, "purpose is not valid"
+            end
+            # should be settled after terminology service implemented
+          end
+          def target_valid(target)
+            raise ArgumentError, "target must not be nil" if target.nil?
+          end
+        end
+
+        class CodePhrase
+          attr_reader :terminology_id, :code_string
+          def initialize(code_string, terminology_id)
+            self.code_string = code_string
+            self.terminology_id = terminology_id
+          end
+
+          def terminology_id=(terminology_id)
+            raise ArgumentError, "terminology_id should not be nil" if terminology_id.nil?
+            @terminology_id = terminology_id
+          end
+
+          def code_string=(code_string)
+            raise ArgumentError, "code_string should not be empty" if code_string.nil? or code_string.empty?
+            @code_string = code_string
+          end 
+        end # of CodePhrase
+
+        class DvText < OpenEhr::RM::DataTypes::Basic::DataValue
+          attr_reader :value, :formatting, :hyperlink, :mappings
+          attr_reader :language, :encoding
+          def initialize(value, formatting = nil, hyperlink = nil,
+                         mappings = nil, language = nil, encoding = nil)
+            value_valid(value)
+            DvText.formatting_valid(formatting)
+            DvText.encoding_valid(encoding)
+            DvText.mapping_valid(mappings)
+            DvText.language_valid(language)
+            @value, @formatting, @encoding = value, formatting, encoding
+            @mappings, @language = mappings, language
+          end
+          def value=(value)
+            value_valid(value)
+            @value = value
+          end
+          def formatting=(formatting)
+            DvText.formatting_valid(formatting)
+            @formatting = formatting
+          end
+          def encoding=(encoding)
+            DvText.encoding_valid(encoding)
+            @encoding = encoding
+          end
+          def mappings=(mappings)
+            DvText.mapping_valid(mappings)
+            @mappings = mappings
+          end
+          def language=(language)
+            DvText.language_valid(language)
+            @language = language
+          end
+          private
+          def value_valid(value)
+            if value.nil? or value.empty? or value.include? CR or value.include? LF
+              raise ArgumentError, "value is not valid"
+              # CR and LF are defined in Basic_Definition inherited DataValue.
+            end
+          end
+
+          class << self
+
+            def formatting_valid(formatting)
+              raise ArgumentError, "formatting is not valid" if formatting != nil and formatting.empty?
+            end
+
+            def encoding_valid(encoding)
+              raise ArgumentError, "encoding is not valid" if encoding != nil and encoding.empty?
+            end
+
+            def mapping_valid(mapping)
+              if !mapping.nil? and !mapping.instance_of? Set
+                raise ArgumentError, "mapping(s) is(are) not valid"
+              elsif !mapping.nil? and mapping.instance_of? Set
+                raise ArgumentError, "mapping(s) is(are) not valid" if mapping.empty? 
+              end
+            end
+
+            def language_valid(language)
+              raise ArgumentError, "langage is not valid" if language != nil and language.empty?
+            end
+          end
+
+        end
+
+        class DvCodedText < DvText
+          attr_reader :defining_code
+
+          def initialize(value, defining_code, formatting = nil, 
+                         hyperlink = nil, mappings = nil, language = nil, 
+                         encoding = nil)
+            super(value, formatting, hyperlink, mappings, language, encoding)
+            self.defining_code = defining_code
+          end
+
+          def defining_code=(defining_code)
+            if defining_code.nil?
+              raise ArgumentError, "Defiinition must be exist" 
+            end
+            @defining_code = defining_code
+          end
+        end
+
+        class DvParagraph < OpenEhr::RM::DataTypes::Basic::DataValue
+          attr_reader :items
+          def initialize(items)
+            items_exists(items)
+            @items = items
+          end
+          def items=(items)
+            items_exists(items)
+            @items = items
+          end
+          private
+          def items_exists(items)
+            if !items.nil? and !items.instance_of? Set
+              raise ArgumentError, "Items are not valid"
+            elsif !items.nil? and items.instance_of? Set
+              raise ArgumentError, "Items must be exist" if items.empty?
+            end
+          end
+        end
+
+      end # of Text
+    end # of DataTypes
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/data_types/time_specification.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/data_types/time_specification.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/data_types/time_specification.rb	(revision 291)
@@ -0,0 +1,75 @@
+# This module is related to the ticket #47
+
+module OpenEhr
+  module RM
+    module DataTypes
+      module TimeSpecification
+        class DvTimeSpecification < OpenEhr::RM::DataTypes::Basic::DataValue
+          attr_reader :value
+
+          def initialize(value)
+            self.value=(value)
+          end
+
+          def value=(value)
+            raise ArgumentError, 'value must be not nil' if value.nil?
+            @value = value
+          end
+          
+          def calender_alignment
+            raise NotImlementedError, "calender_alignment must be implemented"
+          end
+
+          def event_alignment
+            raise NotImlementedError, "event_alignment must be implemented"
+          end
+
+          def institution_specified
+            raise NotImlementedError, "institution_specified must be implemented"
+          end
+        end
+
+# I have not implemented two classes bellow,
+# because I could not obtain HL7 specification related them.
+
+
+        class DvGeneralTimeSpecification < DvTimeSpecification
+          attr_reader :value
+          def initialize(value)
+            super(value)
+          end
+          def value=(value)
+            raise ArgumentError, "value is not valied" unless value.formalism.is_equal?('HL7:GTS')
+            @value = value
+          end
+          private
+          def value_valid(value)
+          end
+        end
+
+        class DvPeriodicTimeSpecification < DvTimeSpecification
+          attr_reader :value, :calender_alignment, :event_alingment, :period
+          def initialize(value)
+            value_valid(value)
+            super(value)
+          end
+          def value=(value)
+            unless value.formalism.is_equal('HL7:PIVL') or value.formalism.is_equal('HL7:EIVL')
+              raise ArgumentError, "value is not valid"
+            end
+            if value.formalism('HL7:PIVL')
+              /^\[(\d+)\;?(\d+)?\]\/\((\d+\w+)\)(@(\w+?))?(IST)?$/ =~ value
+              interval1, interval2, difference, allignment = $1, $2, $3, $5
+            end
+            if value
+            end
+          end
+
+          def institution_specified?
+
+          end
+        end
+      end
+    end # of Data_Type
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/data_types/uri.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/data_types/uri.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/data_types/uri.rb	(revision 291)
@@ -0,0 +1,71 @@
+# This module is implemented from this UML:
+#http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109701308832_384250_6986Report.html
+# Ticket refs #46
+
+require 'uri'
+#require 'uri/generic'
+module Uri
+  class Ehr < ::URI::Generic
+    COMPONENT = [
+      :scheme, :path, :fragment, :query
+    ].freeze
+    def self.build(args)
+      tmp = Util::make_components_hash(self, args)
+      super(tmp)
+    end
+    def initialize(*arg)
+      super(*arg)
+    end
+    def self.use_registry
+      true
+    end
+  end
+  @@schemes['EHR'] = Ehr
+end
+
+module OpenEhr
+  module RM
+    module DataTypes
+      module Uri
+        class DvUri < OpenEhr::RM::DataTypes::Basic::DataValue
+          def initialize(value)
+            self.value = value
+          end
+          def fragment_id
+            @value.fragment
+          end
+          def path
+            @value.path
+          end
+          def query
+            @value.query
+          end
+          def scheme
+            @value.scheme
+          end
+          def value=(value)
+            raise ArgumentError, "value is empty" if value.nil?
+            parse(value)
+          end
+          def value
+            @value.to_s
+          end
+          private
+          def parse(value)
+            @value = ::URI.parse(value)
+          end
+        end
+
+        class DvEhrUri < DvUri
+          def initialize(value)
+            super(value)
+          end
+          def value=(value)
+            raise ArgumentError, "scheme must be ehr" if !(value =~ /^ehr/i)
+            parse(value)
+          end
+        end # of DV_EHR_URI
+      end # of URI
+    end # of DataTypes
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/demographic.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/demographic.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/demographic.rb	(revision 291)
@@ -0,0 +1,187 @@
+# This module is based on the UML,
+# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_5_76d0249_1118674798473_6021_0Report.html
+# Ticket refs #45
+module OpenEHR
+  module RM
+    module Demogrphic
+      class Address < OpenEHR::RM::Common::Archetyped::Locatable
+        attr_reader :details
+
+        def as_string
+
+        end
+
+        def type
+
+        end
+      end
+
+      class Capability < OpenEHR::RM::Common::Archetyped::Locatable
+        attr_reader :credentials, :time_validity
+
+      end
+
+      class Party < OpenEHR::RM::Common::Archetyped::Locatable
+        attr_reader :details, :reverse_relationships, :uid
+        attr_reader :idetities, :contacts, :relationships
+        def initialize(uid, archetype_node_id, name, archetype_details,
+                       feeder_audit, links, identities, contacts,
+                       relationships, reverse_relationships, details)
+          super(uid, archetype_node_id, name, archetype_details,
+                feeder_audit, links, nil)
+          uid_valid(uid)
+          @uid = uid
+          identities_vaild(identities)
+          @identities = identities
+          contacts_valid(contacts)
+          @contacts = contacts
+          relationships_valid(relationships)
+        end
+        def type
+          return name
+        end
+        def uid=(uid)
+          uid_valid(uid)
+          @uid = uid
+        end
+        def identities=(identities)
+          identities_vaild(identities)
+          @identities = identities
+        def contacts=(contacts)
+          contacts_valid(contacts)
+          @contacts = contacts
+        end
+        def parent=(parent)
+          @parent = nil
+        end
+        private
+        def uid_valid(uid)
+          raise ArgumentError, "uid is not valid" if uid.nil?
+        end
+        def identities_vaild(identities)
+          if identities.nil?
+            raise ArgumentError, "identities must not be nil"
+          elsif identities.empty?
+            raise ArgumentError, "identities must not be empty"
+          end
+        end
+        def contacts_valid(contacts)
+          if contacs.nil?
+            raise ArgumentError, "contacts must not be nil"
+          elsif contacts.empty?
+            raise ArgumentError, "contacts must not be empty"
+          end          
+        end
+      end
+
+      class PartyIdentity < OpenEHR::RM::Common::Archetyped::Locatable
+        attr_reader :details
+
+      end
+
+      class PartyRelationship < OpenEHR::RM::Common::Archetyped::Locatable
+
+      end
+
+      class Versioned_Party < OpenEHR::RM::Common::Archetyped::Locatable
+
+      end
+
+      class Role < Party
+
+      end
+
+      class Actor < Party
+        LEAGAL_IDENTITY = 'leagal identity'
+        attr_reader :languages, :rules
+        def initialize(uid, archetype_node_id, name, archetype_details,
+                       feeder_audit, links, identities, contacts,
+                       relationships, reverse_relationships, details,
+                       languages, rules)
+          super(uid, archetype_node_id, name, archetype_details,
+                feeder_audit, links, relationships, reverse_relationships,
+                details)
+          has_legal_identity?
+          set_languages(languages)
+          set_rules(rules)
+        end
+        def has_legal_identity?
+          @identities.each {|identity|
+            if (identity.purpose.value == LEAGAL_IDENTITY)
+              return true
+            end
+          }
+          false
+        end
+        def languages=(languages)
+          set_languages(languages)
+        end
+        def values=(values)
+          set_values(values)
+        end
+        private
+        def set_languages(languages)
+          if languages.nil?
+            raise ArgumentError, "languages should not be nil."
+          elsif languages.empty?
+            raise ArgumentError, "languages shouldnot be empty."
+          end
+          @languages = languages
+        end
+        def set_values(values)
+          if values.nil?
+            raise ArgumentError, "values should not be nil."
+          elsif values.empty?
+            raise ArgumentError, "values should not be nil."
+          end
+          @values = values
+      end
+      class Contact < OpenEHR::RM::Common::Archetyped::Locatable
+        attr_accessor :time_validity
+        attr_reader :addresses
+        def initialize(uid, archetype_node_id, name, archetype_details,
+                       feeder_audit, links, parent, time_validity, addresses)
+          super(uid, archetype_node_id, name, archetype_details,
+                feeder_audit, links, parent)
+          address_exists?(addresses)
+          @addresses = addresses
+          @time_validity = time_validity
+        end
+        def purpose
+          @name
+        end
+        def purpose=(purpose)
+          @name = purpose
+        end
+        def addresses=(addresses)
+          address_exists?(addresses)
+          @addresses = addresses
+        end
+        private
+        def address_exists?(addresses)
+          if addresses.nil?
+            raise ArgumentError, "address must not be nil"
+          elsif addresses.empty?
+            raise ArgumentError, "address must not be empty"
+          end
+        end
+      end
+
+      class Agent < Actor
+
+      end
+
+      class Organisation < Actor
+
+      end
+
+      class Person < Actor
+
+      end
+
+      class Group < Actor
+
+      end
+    end # of Demographic
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/security.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/security.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/security.rb	(revision 291)
@@ -0,0 +1,12 @@
+# This module is based on the UML,
+# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_5_1_76d0249_1155650882301_836618_5314Report.html
+# Ticket refs #41
+module OpenEhr
+  module RM
+    module Security
+      class AccessControlSettings
+        
+      end
+    end
+  end
+end
Index: ruby/trunk/lib/open_ehr/rm/support/assumed_types.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/support/assumed_types.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/support/assumed_types.rb	(revision 291)
@@ -0,0 +1,81 @@
+# Because his module utilise common methods in both rm
+# and am, I will integrated to /lib/models/assumed_types.rb.
+# By Shinji KOBAYASHI, 2008-07-20
+module OpenEhr
+  module RM
+    module Support
+      module AssumedTypes
+        class Interval
+          attr_accessor :lower, :upper
+#          attr_accessor :lower_included, :lower_unbounded
+#          attr_accessor :upper_included, :upper_unbounded
+          def initialize(lower, upper,
+                         lower_included = nil, upper_included = nil)
+            if ((lower !=nil) && (upper !=nil)) && lower>upper
+              raise ArgumentError, "upper < lower"
+            end
+            @lower = lower
+            @upper = upper
+          end
+        end
+
+        class List
+          attr_reader :content
+
+          def initialize(arg)
+            @content = arg
+          end
+
+          def first
+            @content.first
+          end
+
+          def last
+            @content.last
+          end
+        end
+
+        class TIME_DEFINITIONS
+        end
+
+
+        class ISO8601_DATE < TIME_DEFINITIONS
+        end
+
+        class ISO8601_TIME < TIME_DEFINITIONS
+        end
+
+        class ISO8601_DURATION < TIME_DEFINITIONS
+        end
+
+        class ISO8601_DATE_TIME < TIME_DEFINITIONS
+        end
+
+        class ISO8601_TIMEZONE < TIME_DEFINITIONS
+        end
+
+        class String
+          attr_reader :content
+          def initialize(arg)
+            @content = arg
+          end
+
+          def as_integer
+            is_integer if is_integer
+          end
+
+          def is_empty
+          end
+
+          def is_integer
+            begin
+              Integer(@content)
+            rescue
+              false
+            end
+          end
+        end
+      end
+    end
+  end
+end
Index: ruby/trunk/lib/open_ehr/rm/support/definition.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/support/definition.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/support/definition.rb	(revision 291)
@@ -0,0 +1,15 @@
+module OpenEhr
+  module RM
+    module Support
+      module Definition
+        module BasicDefinition
+          CR = "\015"
+          LF = "\012"
+        end
+        class OpenEHRDefinitions
+          include BasicDefinition
+        end
+      end
+    end
+  end
+end
Index: ruby/trunk/lib/open_ehr/rm/support/identification.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/support/identification.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/support/identification.rb	(revision 291)
@@ -0,0 +1,331 @@
+# This module is an implementation of this UML:
+# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109331021343_528780_2066Report.html
+# Ticket refs #39
+module OpenEhr
+  module RM
+    module Support
+      module Identification
+        class ObjectId
+          attr_reader :value
+
+          def initialize(value)
+            self.value=value
+          end
+
+          def value=(value)
+            raise ArgumentError, "empty value" if value.nil? or value.empty?
+            @value = value            
+          end
+          def ==(object_id)
+            @value == object_id.value
+          end
+        end # of ObjectID
+
+        class ObjectRef
+          attr_reader :namespace, :type, :id
+
+          def initialize(namespace, type, id)
+            self.namespace = namespace
+            self.type = type
+            self.id = id
+          end
+
+          def namespace=(namespace)
+            raise ArgumentError if namespace.nil? or namespace.empty? or !(/([a-z]|[A-Z]).*/ =~ namespace) # error original is =~ #([a-z][A-Z])([a-z]|[A-Z]|\s|[0-9]|[_-\:\/\&\+\?])*/
+            @namespace = namespace
+          end
+
+          def type=(type)
+            raise ArgumentError if type.nil? or type.empty?
+            @type = type
+          end
+
+          def id=(id)
+            raise ArgumentError if id.nil?
+            @id = id
+          end
+        end
+
+        class ArchetypeId < ObjectId
+          attr_reader :domain_concept, :rm_name, :rm_entity, :rm_originator, :specialisation, :version_id
+
+          def initialize(value, domain_concept, rm_name, rm_entity, rm_originator, specialisation, version_id)
+            super(value)
+            self.domain_concept = domain_concept
+            self.rm_name = rm_name
+            self.rm_entity = rm_entity
+            self.rm_originator = rm_originator
+            self.specialisation = specialisation
+            self.version_id = version_id
+          end
+
+          def domain_concept=(domain_concept)
+            raise ArgumentError, "domain concept not valid" if domain_concept.nil? or domain_concept.empty?
+            @domain_concept = domain_concept
+          end
+
+          def rm_name=(rm_name)
+            raise ArgumentError, "rm_name not valid" if rm_name.nil? or rm_name.empty?
+            @rm_name = rm_name
+          end
+
+          def rm_entity=(rm_entity)
+            raise ArgumentError, "rm_entity not valid" if rm_entity.nil? or rm_entity.empty?
+            @rm_entity = rm_entity
+          end
+
+          def rm_originator=(rm_originator)
+            raise ArgumentError, "rm_originator not valid" if rm_originator.nil? or rm_originator.empty?
+            @rm_originator = rm_originator
+          end
+
+          def specialisation=(specialisation)
+            raise ArgumentError, "rm_specialisation not valid" if specialisation.nil? or specialisation.empty?
+            @specialisation = specialisation
+          end
+          def version_id=(version_id)
+            raise ArgumentError, "version_id not valid" if version_id.nil? or version_id.empty?
+            @version_id = version_id
+          end
+        end
+
+        class TerminologyId < ObjectId
+          attr_reader :name, :version_id
+
+          def initialize(value)
+            super(value)
+          end
+
+          def value
+            if @version_id.empty?
+              @name
+            else
+              @name + '(' + @version_id + ')'
+            end 
+          end
+
+
+          def value=(value)
+            raise ArgumentError, "value not valid" if value.nil? or value.empty?
+            if /(.*)\((.*)\)$/ =~ value
+              @name = $1
+              @version_id = $2
+            else
+              @name = value
+              @version_id = ''
+            end
+            @value = value
+          end
+
+          def name=(name)
+            raise ArgumentError, "name not valid" if name.nil? or name.empty?
+            @name = name
+          end
+
+          def version_id=(version_id)
+            raise ArgumentError, "version_id not valid" if version_id.nil?
+            @version_id = version_id
+          end
+        end # of Terminology_ID
+
+        class GenericId < ObjectId
+          attr_reader :scheme
+
+          def initialize(value, scheme)
+            super(value)
+            self.scheme = scheme
+          end
+
+          def scheme=(scheme)
+            raise ArgumentError, "scheme not valid" if scheme.nil? or scheme.empty?
+            @scheme = scheme
+          end
+        end # of Generic_ID
+
+        class TemplateId < ObjectId
+
+        end
+
+        class UidBasedId < ObjectId
+          def initialize(value)
+            super(value)
+          end
+
+          def extension
+            if self.has_extension?
+              @value[/::.*/][2..-1]
+            else
+              ''
+            end
+          end
+
+          def has_extension?
+            @value.include? '::'
+          end
+
+          def root
+            if self.has_extension?
+              @value[/.*::/][0..-3]
+            else
+              @value
+            end
+          end
+        end
+
+        class ObjectVersionId < UidBasedId
+          attr_reader :object_id, :creating_system_id, :version_tree_id
+
+          def initialize(value)
+            super(value)
+          end
+
+          def value=(value)
+            super(value)
+            if /^(\w+)::(\w+)::((\d|\.)+)$/ =~ value
+              self.object_id = Uid.new($1)
+              self.creating_system_id = Uid.new($2)
+              self.version_tree_id = VersionTreeId.new($3)
+            else
+              raise ArgumentError, 'invalid format'
+            end
+          end
+
+          def object_id=(object_id)
+            raise ArgumentError, 'object_id is mandatory' if object_id.nil?
+            @object_id = object_id
+          end
+
+          def creating_system_id=(creating_system_id)
+            if creating_system_id.nil?
+              raise ArgumentError, 'creating_system_id is mandatory'
+            end
+            @creating_system_id = creating_system_id
+          end
+
+          def version_tree_id=(version_tree_id)
+            if version_tree_id.nil?
+              raise ArgumentError, 'version_tree_id is mandatory'
+            end
+            @version_tree_id = version_tree_id
+          end
+
+          def is_branch?
+            return @version_tree_id.is_branch?
+          end
+        end
+
+        class LocatableRef < ObjectRef
+          attr_reader :namespace, :type, :id, :path
+
+          def initialize(namespace, type, id, path)
+            super(namespace, type, id)
+            self.path = path
+          end
+
+          def path=(path)
+            raise ArgumentError if path.nil? or path.empty?
+            @path = path
+          end
+
+          def as_uri
+            'ehr://' + @id.value + '/' + @path
+          end
+        end
+
+        class PartyRef < ObjectRef
+
+          def type=(type)
+            parties = ['PERSON', 'ORGANISATION', 'GROUP', 'AGENT', 'ROLE','PARTY', 'ACTOR']
+            raise ArgumentError, 'type invalid' unless parties.include? type
+            @type = type
+          end
+        end
+
+        class AccessGroupRef < ObjectRef
+          def type=(type)
+            raise ArgumentError, 'type invalid' unless type == 'ACCESS_GROUP'
+            @type = type
+          end
+        end
+
+        class HierObjectId < UidBasedId
+
+        end
+
+        class VersionTreeId
+          attr_reader :value, :trunk_version, :branch_number, :branch_version
+
+          def initialize(value)
+            self.value = value
+          end
+
+          def value=(value)
+            raise ArgumentError, 'value invalid' if value.nil? or value.empty?
+            @trunk_version = @branch_number = @branch_version = nil
+            (trunk_version, branch_number, branch_version) = value.split '.'
+            self.trunk_version = trunk_version
+            self.branch_number = branch_number
+            self.branch_version = branch_version
+          end
+
+          def trunk_version=(trunk_version)
+            raise ArgumentError, 'trunk_version invalid' if trunk_version.nil? and !trunk_version.to_i >= 1
+            @trunk_version = trunk_version
+            set_value
+          end
+
+          def branch_number=(branch_number)
+            raise ArgumentError, 'branch number invalid' unless branch_number.nil? or branch_number.to_i >= 1
+            @branch_number = branch_number
+            set_value
+          end
+
+          def branch_version=(branch_version)
+            raise ArgumentError, 'branch version invalid' if (!branch_version.nil? and !( branch_version.to_i >= 1)) or (!branch_version.nil? and @branch_number.nil?)
+            @branch_version = branch_version
+            set_value
+          end
+          def is_branch?
+            !@branch_version.nil? and !@branch_number.nil?
+          end
+
+          def is_first?
+            trunk_version == '1'
+          end
+
+          private
+          def set_value
+            @value = trunk_version
+            @value = @value + '.' + @branch_number unless @branch_number.nil?
+            @value = @value + '.' + @branch_version unless @branch_version.nil?
+          end
+        end
+
+        class Uid
+          attr_reader :value
+
+          def initialize(value)
+            self.value = value
+          end
+
+          def value=(value)
+            raise ArgumentError if value.nil? or value.empty?
+            @value = value
+          end
+        end
+
+        class Uuid < Uid
+
+        end
+
+        class InternetId <Uid
+          
+        end
+
+        class IsoOid <Uid
+
+        end        
+      end # of Identification
+    end # of Support
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/support/measurement.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/support/measurement.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/support/measurement.rb	(revision 291)
@@ -0,0 +1,17 @@
+module OpenEhr
+  module RM
+    module Support
+      module Measurement
+        class MeasurementService
+        end
+        module ExternalEnvironmentAccess
+          def eea_terminology_svc
+          end
+          
+          def eea_measurement_svc
+          end
+        end
+      end # of Measurment
+    end # of Support
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/lib/open_ehr/rm/support/terminology.rb
===================================================================
--- ruby/trunk/lib/open_ehr/rm/support/terminology.rb	(revision 291)
+++ ruby/trunk/lib/open_ehr/rm/support/terminology.rb	(revision 291)
@@ -0,0 +1,106 @@
+
+module OpenEhr
+  module RM
+    module Support
+      module Terminology
+        class CodeSetAccess
+          def all_codes
+            raise NotImplementedError, "all_codes must be implemented"
+          end
+          def has_code(a_code)
+            raise NotImplementedError, "has_code must be implemented"
+          end
+          def has_lang(a_lang)
+            raise NotImplementedError, "has_lang must be implemented"
+          end
+          def id
+            raise NotImplementedError, "id must be returned"
+          end
+        end
+        module OpenEhrCodeSetIdentifier
+          CODE_SET_ID_CHARACER_SETS = "character sets".freeze
+          CODE_SET_ID_COMPRESSION_ALGORITHMS = "compression algorithms".freeze
+          CODE_SET_ID_COUNTRIES = "countries".freeze
+          CODE_SET_ID_INTEGRITY_CHECK_ALGORITHMS = "integrity check algorithms".freeze
+          CODE_SET_ID_LANGUAGES = "languages".freeze
+          CODE_SET_ID_MEDIA_TYPES = "media types".freeze
+          def valid_code_set_id(an_id)
+            !@an_id.nil?
+          end
+        end
+        module OpenEhrTerminologyGroupIdentifiers
+          GROUP_ID_ATTESTATION_REASON = "attestation reason".freeze
+          GROUP_ID_AUDIT_CHANGE_TYPE = "audit change type".freeze
+          GROUP_ID_COMPOSITION_CATEGORY = "composition category".freeze
+          GROUP_ID_MATH_FUNCTION = "event math function".freeze
+          GROUP_ID_INSTRUCTION_STATES = "instruction states".freeze
+          GROUP_ID_INSTRUCTION_TRANSITIONS = "instruction transitions".freeze
+          GROUP_ID_NULL_FLAVOURS = "null flavours".freeze
+          GROUP_ID_PARTICIPATION_FUNCTION = "participation function".freeze
+          GROUP_ID_PARTICIPATION_MODE = "participation mode".freeze
+          GROUP_ID_PROPERTY = "property".freeze
+          GROUP_ID_SETTING = "setting".freeze.freeze
+          GROUP_ID_SUBJECT_RELATIONSHIP = "subject relationship".freeze
+          GROUP_ID_TERM_MAPPING_PURPOSE = "term mapping purpose".freeze
+          GROUP_ID_VERSION_LIFECYCLE_STATE = "version lifecycle state".freeze
+          TERMINOLOGY_ID = "openehr".freeze
+        end
+        class TerminologyAccess
+          def all_codes
+            raise NotImplementedError, "all_codes is not implemented"
+          end
+          def codes_for_group_id(group_id)
+            raise NotImplementedError, "codes_for_group_id is not implemented"
+          end
+          def codes_for_group_name(name, lang)
+            raise NotImplementedError, "codes_for_group_name is not implemented"
+          end
+          def has_code_for_group_id(group_id, a_code)
+            raise NotImplementedError, "has_code_for_group_id is not implemented"
+          end
+          def id
+            raise NotImplementedError, "id is not implemented"
+          end
+          def rubric_for_code(code, lang)
+            raise NotImplementedError, "rubic_for_code is not implemented"
+          end
+          private
+          def id_exists
+            if id.nil?
+              raise ArgumentError, "id must not be nil"
+            elsif id.empty?
+              raise ArgumentError, "id must not be empty"
+            end
+          end
+        end
+        class TerminologyService
+          include OpenEhrCodeSetIdentifier, OpenEhrTerminologyGroupIdentifiers
+          def code_set(name)
+            raise NotImplementedError, "code_set is not implemented"
+          end
+          def code_set_for_id(id)
+            raise NotImplementedError, "code_set_for_id is not implemented"
+          end
+          def code_set_identifiers
+            raise NotImplementedError, "code_set_for_identifiers is not implemented"
+          end
+          def has_code_set(name)
+            raise NotImplementedError, "has_code_set is not implemented"
+          end
+          def has_terminology?(name)
+            raise NotImplementedError, "has_terminology is not implemented"
+          end
+          def openehr_code_sets
+            raise NotImplementedError, "openehr_code_set is not implemented"
+          end
+          def terminology(name)
+            raise NotImplementedError, "terminology is not implemented"
+          end
+          def terminology_identifiers
+            raise NotImplementedError, "terminology_identiferes is not implemented"
+          end
+        end 
+      end # of Terminology
+    end # of Support
+  end # of RM
+end # of OpenEHR
Index: ruby/trunk/log/development.log
===================================================================
--- ruby/trunk/log/development.log	(revision 291)
+++ ruby/trunk/log/development.log	(revision 291)
@@ -0,0 +1,1641 @@
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-25 14:48:53) [GET]
+  Session ID: fc1861a271d18db277b3bc930e8d0114
+  Parameters: {"action"=>"show", "controller"=>"terminology"}
+Rendering terminology/show
+Completed in 0.00591 (169 reqs/sec) | Rendering: 0.00151 (25%) | DB: 0.00000 (0%) | 200 OK [http://localhost/terminology/show]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-25 14:49:02) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "id"=>"1", "controller"=>"terminology"}
+Rendering terminology/show
+Completed in 0.00357 (280 reqs/sec) | Rendering: 0.00084 (23%) | DB: 0.00000 (0%) | 200 OK [http://localhost/terminology/show/1]
+
+
+Processing TerminologyController#index (for 127.0.0.1 at 2009-07-25 14:49:13) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"index", "controller"=>"terminology"}
+
+
+ActionController::UnknownAction (No action responded to index):
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (not_found)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-25 14:49:18) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "controller"=>"terminology"}
+Rendering terminology/show
+Completed in 0.00374 (267 reqs/sec) | Rendering: 0.00083 (22%) | DB: 0.00000 (0%) | 200 OK [http://localhost/terminology/show]
+  [4;36;1mSQL (0.000401)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000247)[0m   [0mselect sqlite_version(*)[0m
+  [4;36;1mSQL (0.006100)[0m   [0;1mCREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) [0m
+  [4;35;1mSQL (0.001876)[0m   [0mCREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")[0m
+  [4;36;1mSQL (0.000328)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000233)[0m   [0mSELECT version FROM schema_migrations[0m
+Migrating to CreateTerminologies (20090725052538)
+  [4;36;1mSQL (0.000137)[0m   [0;1mSELECT version FROM schema_migrations[0m
+  [4;35;1mSQL (0.003106)[0m   [0mCREATE TABLE "terminologies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "lang" varchar(255) DEFAULT NULL NULL, "group" text DEFAULT NULL NULL, "rubric" varchar(255) DEFAULT NULL NULL, "description" text DEFAULT NULL NULL, "mappings" varchar(255) DEFAULT NULL NULL, "created_at" datetime DEFAULT NULL NULL, "updated_at" datetime DEFAULT NULL NULL) [0m
+  [4;36;1mSQL (0.001417)[0m   [0;1mINSERT INTO schema_migrations (version) VALUES ('20090725052538')[0m
+  [4;35;1mSQL (0.000310)[0m   [0mSELECT version FROM schema_migrations[0m
+  [4;36;1mSQL (0.000352)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000168)[0m   [0mPRAGMA index_list("terminologies")[0m
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-25 16:20:33) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "controller"=>"terminology"}
+Rendering terminology/show
+Completed in 0.00463 (215 reqs/sec) | Rendering: 0.00183 (39%) | DB: 0.00000 (0%) | 200 OK [http://localhost/terminology/show]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-25 16:20:35) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "controller"=>"terminology"}
+Rendering terminology/show
+Completed in 0.00517 (193 reqs/sec) | Rendering: 0.00126 (24%) | DB: 0.00000 (0%) | 200 OK [http://localhost/terminology/show]
+  [4;36;1mSQL (0.000812)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000287)[0m   [0mSELECT version FROM schema_migrations[0m
+Migrating to CreateTerminologies (20090725052538)
+  [4;36;1mSQL (0.000206)[0m   [0;1mSELECT version FROM schema_migrations[0m
+  [4;35;1mSQL (0.000204)[0m   [0mselect sqlite_version(*)[0m
+  [4;36;1mSQL (0.000216)[0m   [0;1mSELECT version FROM schema_migrations[0m
+  [4;35;1mSQL (0.000795)[0m   [0m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;36;1mSQL (0.000096)[0m   [0;1mPRAGMA index_list("terminologies")[0m
+  [4;36;1mSQL (0.000826)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000340)[0m   [0mSELECT version FROM schema_migrations[0m
+Migrating to CreateTerminologies (20090725052538)
+  [4;36;1mSQL (0.000201)[0m   [0;1mSELECT version FROM schema_migrations[0m
+  [4;35;1mSQL (0.000226)[0m   [0mselect sqlite_version(*)[0m
+  [4;36;1mSQL (0.000230)[0m   [0;1mSELECT version FROM schema_migrations[0m
+  [4;35;1mSQL (0.000286)[0m   [0m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;36;1mSQL (0.000128)[0m   [0;1mPRAGMA index_list("terminologies")[0m
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-26 07:08:56) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "controller"=>"terminology"}
+Rendering terminology/show
+Completed in 0.00338 (296 reqs/sec) | Rendering: 0.00078 (23%) | DB: 0.00000 (0%) | 200 OK [http://localhost/terminology/show]
+  [4;36;1mSQL (0.000393)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000375)[0m   [0mselect sqlite_version(*)[0m
+  [4;36;1mSQL (0.003277)[0m   [0;1mCREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) [0m
+  [4;35;1mSQL (0.001734)[0m   [0mCREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")[0m
+  [4;36;1mSQL (0.000230)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000178)[0m   [0mSELECT version FROM schema_migrations[0m
+Migrating to CreateTerminologies (20090725052538)
+  [4;36;1mSQL (0.000123)[0m   [0;1mSELECT version FROM schema_migrations[0m
+  [4;35;1mSQL (0.002507)[0m   [0mCREATE TABLE "terminologies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "lang" varchar(255) DEFAULT NULL NULL, "group" text DEFAULT NULL NULL, "rubric" varchar(255) DEFAULT NULL NULL, "description" text DEFAULT NULL NULL, "mappings" varchar(255) DEFAULT NULL NULL) [0m
+  [4;36;1mSQL (0.001434)[0m   [0;1mINSERT INTO schema_migrations (version) VALUES ('20090725052538')[0m
+  [4;35;1mSQL (0.000268)[0m   [0mSELECT version FROM schema_migrations[0m
+  [4;36;1mSQL (0.000431)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000091)[0m   [0mPRAGMA index_list("terminologies")[0m
+  [4;36;1mSQL (0.000624)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000351)[0m   [0mselect sqlite_version(*)[0m
+  [4;36;1mSQL (0.006205)[0m   [0;1mCREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) [0m
+  [4;35;1mSQL (0.001787)[0m   [0mCREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")[0m
+  [4;36;1mSQL (0.000245)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000174)[0m   [0mSELECT version FROM schema_migrations[0m
+Migrating to CreateTerminologies (20090725052538)
+  [4;36;1mSQL (0.000122)[0m   [0;1mSELECT version FROM schema_migrations[0m
+  [4;35;1mSQL (0.002245)[0m   [0mCREATE TABLE "terminologies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "lang" varchar(255) DEFAULT NULL NULL, "group" text DEFAULT NULL NULL, "rubric" varchar(255) DEFAULT NULL NULL, "description" text DEFAULT NULL NULL, "mappings" varchar(255) DEFAULT NULL NULL) [0m
+  [4;36;1mSQL (0.001794)[0m   [0;1mINSERT INTO schema_migrations (version) VALUES ('20090725052538')[0m
+  [4;35;1mSQL (0.000276)[0m   [0mSELECT version FROM schema_migrations[0m
+  [4;36;1mSQL (0.000276)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000121)[0m   [0mPRAGMA index_list("terminologies")[0m
+  [4;36;1mSQL (0.000440)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000284)[0m   [0mselect sqlite_version(*)[0m
+  [4;36;1mSQL (0.002967)[0m   [0;1mCREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) [0m
+  [4;35;1mSQL (0.001979)[0m   [0mCREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")[0m
+  [4;36;1mSQL (0.000319)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000221)[0m   [0mSELECT version FROM schema_migrations[0m
+Migrating to CreateTerminologies (20090725052538)
+  [4;36;1mSQL (0.000123)[0m   [0;1mSELECT version FROM schema_migrations[0m
+  [4;35;1mSQL (0.002769)[0m   [0mCREATE TABLE "terminologies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "lang" varchar(255) DEFAULT NULL NULL, "group" text DEFAULT NULL NULL, "rubric" varchar(255) DEFAULT NULL NULL, "description" text DEFAULT NULL NULL, "mappings" varchar(255) DEFAULT NULL NULL) [0m
+  [4;36;1mSQL (0.001631)[0m   [0;1mINSERT INTO schema_migrations (version) VALUES ('20090725052538')[0m
+  [4;35;1mSQL (0.002083)[0m   [0mSELECT version FROM schema_migrations[0m
+  [4;36;1mSQL (0.002789)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000113)[0m   [0mPRAGMA index_list("terminologies")[0m
+  [4;36;1mSQL (0.000385)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000210)[0m   [0mselect sqlite_version(*)[0m
+  [4;36;1mSQL (0.003015)[0m   [0;1mCREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) [0m
+  [4;35;1mSQL (0.002372)[0m   [0mCREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")[0m
+  [4;36;1mSQL (0.000307)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000211)[0m   [0mSELECT version FROM schema_migrations[0m
+Migrating to CreateTerminologies (20090725052538)
+  [4;36;1mSQL (0.000126)[0m   [0;1mSELECT version FROM schema_migrations[0m
+  [4;35;1mSQL (0.002230)[0m   [0mCREATE TABLE "terminologies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "lang" varchar(255) DEFAULT NULL NULL, "group" text DEFAULT NULL NULL, "rubric" varchar(255) DEFAULT NULL NULL, "description" text DEFAULT NULL NULL, "mappings" varchar(255) DEFAULT NULL NULL) [0m
+  [4;36;1mSQL (0.001480)[0m   [0;1mINSERT INTO schema_migrations (version) VALUES ('20090725052538')[0m
+  [4;35;1mSQL (0.000289)[0m   [0mSELECT version FROM schema_migrations[0m
+  [4;36;1mSQL (0.000280)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000115)[0m   [0mPRAGMA index_list("terminologies")[0m
+  [4;36;1mSQL (0.000768)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000261)[0m   [0mSELECT version FROM schema_migrations[0m
+Migrating to CreateTerminologies (20090725052538)
+  [4;36;1mSQL (0.000196)[0m   [0;1mSELECT version FROM schema_migrations[0m
+  [4;35;1mSQL (0.000260)[0m   [0mselect sqlite_version(*)[0m
+  [4;36;1mSQL (0.000239)[0m   [0;1mSELECT version FROM schema_migrations[0m
+  [4;35;1mSQL (0.000290)[0m   [0m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;36;1mSQL (0.000090)[0m   [0;1mPRAGMA index_list("terminologies")[0m
+  [4;36;1mSQL (0.000404)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000211)[0m   [0mselect sqlite_version(*)[0m
+  [4;36;1mSQL (0.005156)[0m   [0;1mCREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) [0m
+  [4;35;1mSQL (0.002086)[0m   [0mCREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")[0m
+  [4;36;1mSQL (0.000230)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000166)[0m   [0mSELECT version FROM schema_migrations[0m
+Migrating to CreateTerminologies (20090725052538)
+  [4;36;1mSQL (0.000124)[0m   [0;1mSELECT version FROM schema_migrations[0m
+  [4;35;1mSQL (0.002660)[0m   [0mCREATE TABLE "terminologies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "openehr_id" integer DEFAULT NULL NULL, "lang" varchar(255) DEFAULT NULL NULL, "group" text DEFAULT NULL NULL, "rubric" varchar(255) DEFAULT NULL NULL, "description" text DEFAULT NULL NULL, "mappings" varchar(255) DEFAULT NULL NULL) [0m
+  [4;36;1mSQL (0.001423)[0m   [0;1mINSERT INTO schema_migrations (version) VALUES ('20090725052538')[0m
+  [4;35;1mSQL (0.000353)[0m   [0mSELECT version FROM schema_migrations[0m
+  [4;36;1mSQL (0.000301)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000102)[0m   [0mPRAGMA index_list("terminologies")[0m
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-26 18:47:17) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "controller"=>"terminology"}
+Rendering terminology/show
+Completed in 0.00562 (178 reqs/sec) | Rendering: 0.00120 (21%) | DB: 0.00000 (0%) | 200 OK [http://localhost/terminology/show]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-26 18:53:04) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "controller"=>"terminology"}
+Rendering terminology/show
+Completed in 0.00537 (186 reqs/sec) | Rendering: 0.00165 (30%) | DB: 0.00000 (0%) | 200 OK [http://localhost/terminology/show]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-26 18:53:33) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "controller"=>"terminology"}
+Rendering terminology/show
+Completed in 0.00395 (252 reqs/sec) | Rendering: 0.00128 (32%) | DB: 0.00000 (0%) | 200 OK [http://localhost/terminology/show]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-27 19:02:38) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "controller"=>"terminology"}
+Rendering terminology/show
+Completed in 0.00449 (222 reqs/sec) | Rendering: 0.00187 (41%) | DB: 0.00000 (0%) | 200 OK [http://localhost/terminology/show]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-27 19:02:43) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "id"=>"1", "controller"=>"terminology"}
+Rendering terminology/show
+Completed in 0.00516 (193 reqs/sec) | Rendering: 0.00125 (24%) | DB: 0.00000 (0%) | 200 OK [http://localhost/terminology/show/1]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-27 19:02:45) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "id"=>"3", "controller"=>"terminology"}
+Rendering terminology/show
+Completed in 0.00393 (254 reqs/sec) | Rendering: 0.00087 (22%) | DB: 0.00000 (0%) | 200 OK [http://localhost/terminology/show/3]
+
+
+Processing ApplicationController#index (for  at 2009-07-27 19:03:49) [GET]
+  Session ID: c68738b853e46e97620963cdd207313e
+  Parameters: {}
+
+
+ActionController::RoutingError (No route matches "" with {:method=>:get}):
+    /vendor/rails/actionpack/lib/action_controller/routing/recognition_optimisation.rb:67:in `recognize_path'
+    /vendor/rails/actionpack/lib/action_controller/routing/route_set.rb:384:in `recognize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:148:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    (irb):1:in `irb_binding'
+    /usr/lib/ruby/1.8/irb/workspace.rb:52:in `irb_binding'
+    /usr/lib/ruby/1.8/irb/workspace.rb:52
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (not_found)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-27 19:10:46) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "id"=>"3", "controller"=>"terminology"}
+
+
+ActiveRecord::RecordNotFound (Couldn't find Terminology without an ID):
+    /vendor/rails/activerecord/lib/active_record/base.rb:1360:in `find_from_ids'
+    /vendor/rails/activerecord/lib/active_record/base.rb:537:in `find'
+    /app/controllers/terminology_controller.rb:3:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (not_found)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-27 19:11:14) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "id"=>"1", "controller"=>"terminology"}
+
+
+ActiveRecord::RecordNotFound (Couldn't find Terminology without an ID):
+    /vendor/rails/activerecord/lib/active_record/base.rb:1360:in `find_from_ids'
+    /vendor/rails/activerecord/lib/active_record/base.rb:537:in `find'
+    /app/controllers/terminology_controller.rb:3:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (not_found)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-27 19:12:01) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "id"=>"1", "controller"=>"terminology"}
+  [4;36;1mTerminology Load (0.000568)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."id" = 1) [0m
+Completed in 0.01659 (60 reqs/sec) | Rendering: 0.00048 (2%) | DB: 0.00057 (3%) | 200 OK [http://localhost/terminology/show/1]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-27 19:12:48) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "id"=>"1", "controller"=>"terminology"}
+
+
+ActiveRecord::RecordNotFound (Couldn't find Terminology without an ID):
+    /vendor/rails/activerecord/lib/active_record/base.rb:1360:in `find_from_ids'
+    /vendor/rails/activerecord/lib/active_record/base.rb:537:in `find'
+    /app/controllers/terminology_controller.rb:3:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (not_found)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-27 19:13:02) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "id"=>"1", "controller"=>"terminology"}
+
+
+ActiveRecord::RecordNotFound (Couldn't find Terminology without an ID):
+    /vendor/rails/activerecord/lib/active_record/base.rb:1360:in `find_from_ids'
+    /vendor/rails/activerecord/lib/active_record/base.rb:537:in `find'
+    /app/controllers/terminology_controller.rb:3:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (not_found)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-27 19:13:03) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "id"=>"1", "controller"=>"terminology"}
+
+
+ActiveRecord::RecordNotFound (Couldn't find Terminology without an ID):
+    /vendor/rails/activerecord/lib/active_record/base.rb:1360:in `find_from_ids'
+    /vendor/rails/activerecord/lib/active_record/base.rb:537:in `find'
+    /app/controllers/terminology_controller.rb:3:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (not_found)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-27 19:13:15) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "id"=>"1", "controller"=>"terminology"}
+  [4;35;1mTerminology Load (0.000592)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."id" = 1) [0m
+Completed in 0.01971 (50 reqs/sec) | Rendering: 0.00058 (2%) | DB: 0.00059 (3%) | 200 OK [http://localhost/terminology/show/1]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-27 19:13:39) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "id"=>"2", "controller"=>"terminology"}
+  [4;36;1mTerminology Load (0.000510)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."id" = 2) [0m
+Completed in 0.01368 (73 reqs/sec) | Rendering: 0.00042 (3%) | DB: 0.00051 (3%) | 200 OK [http://localhost/terminology/show/2]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-27 19:14:13) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "id"=>"2", "controller"=>"terminology"}
+
+
+ArgumentError (Unknown key(s): openehr_id):
+    /vendor/rails/activesupport/lib/active_support/core_ext/hash/keys.rb:47:in `assert_valid_keys'
+    /vendor/rails/activerecord/lib/active_record/base.rb:2098:in `validate_find_options'
+    /vendor/rails/activerecord/lib/active_record/base.rb:530:in `find'
+    /app/controllers/terminology_controller.rb:3:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 09:03:28) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "controller"=>"terminology"}
+  [4;35;1mSQL (0.000787)[0m   [0m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+
+
+NoMethodError (undefined method `find_first' for #<Class:0xb75d21d8>):
+    /vendor/rails/activerecord/lib/active_record/base.rb:1667:in `method_missing'
+    /app/controllers/terminology_controller.rb:3:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 09:03:31) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"show", "action"=>"show", "lang"=>"1", "controller"=>"terminology"}
+  [4;36;1mSQL (0.000691)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+
+
+NoMethodError (undefined method `find_first' for #<Class:0xb7a5163c>):
+    /vendor/rails/activerecord/lib/active_record/base.rb:1667:in `method_missing'
+    /app/controllers/terminology_controller.rb:3:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 09:05:08) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"show", "action"=>"show", "lang"=>"1", "controller"=>"terminology"}
+
+
+ArgumentError (Unknown key(s): openehr_id):
+    /vendor/rails/activesupport/lib/active_support/core_ext/hash/keys.rb:47:in `assert_valid_keys'
+    /vendor/rails/activerecord/lib/active_record/base.rb:2098:in `validate_find_options'
+    /vendor/rails/activerecord/lib/active_record/base.rb:530:in `find'
+    /app/controllers/terminology_controller.rb:3:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 09:05:18) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"show", "action"=>"show", "lang"=>"3", "controller"=>"terminology"}
+
+
+ArgumentError (Unknown key(s): openehr_id):
+    /vendor/rails/activesupport/lib/active_support/core_ext/hash/keys.rb:47:in `assert_valid_keys'
+    /vendor/rails/activerecord/lib/active_record/base.rb:2098:in `validate_find_options'
+    /vendor/rails/activerecord/lib/active_record/base.rb:530:in `find'
+    /app/controllers/terminology_controller.rb:3:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
+  [4;36;1mTerminology Load (0.000637)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."id" = 1) [0m
+  [4;35;1mTerminology Load (0.000698)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = 0) LIMIT 1[0m
+
+
+Processing ApplicationController#show (for 127.0.0.1 at 2009-07-28 09:11:39) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"show", "action"=>"show", "lang"=>"3", "controller"=>"terminology"}
+
+
+SyntaxError (/home/skoba/src/terminology/app/controllers/terminology_controller.rb:3: syntax error, unexpected '{', expecting ')'
+/home/skoba/src/terminology/app/controllers/terminology_controller.rb:4: syntax error, unexpected '}', expecting kEND
+                                      :openehr_id => params[:id]})
+                                                                 ^):
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:215:in `load_without_new_constant_marking'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:215:in `load_file'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:214:in `load_file'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:95:in `require_or_load'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:260:in `load_missing_constant'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:467:in `const_missing'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:479:in `const_missing'
+    /vendor/rails/activesupport/lib/active_support/inflector.rb:283:in `constantize'
+    /vendor/rails/activesupport/lib/active_support/core_ext/string/inflections.rb:143:in `constantize'
+    /vendor/rails/actionpack/lib/action_controller/routing/route_set.rb:386:in `recognize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:148:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 09:11:59) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"show", "action"=>"show", "lang"=>"3", "controller"=>"terminology"}
+  [4;35;1mTerminology Load (0.000727)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" IS NULL) LIMIT 1[0m
+
+
+NoMethodError (You have a nil object when you didn't expect it!
+You might have expected an instance of ActiveRecord::Base.
+The error occurred while evaluating nil.to_xml):
+    /app/controllers/terminology_controller.rb:5:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 09:12:07) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"show", "action"=>"show", "lang"=>"0", "controller"=>"terminology"}
+  [4;36;1mTerminology Load (0.001041)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" IS NULL) LIMIT 1[0m
+
+
+NoMethodError (You have a nil object when you didn't expect it!
+You might have expected an instance of ActiveRecord::Base.
+The error occurred while evaluating nil.to_xml):
+    /app/controllers/terminology_controller.rb:5:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 09:12:37) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"0", "lang"=>"en", "controller"=>"terminology"}
+  [4;35;1mTerminology Load (0.000821)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = '0') LIMIT 1[0m
+Completed in 0.01329 (75 reqs/sec) | Rendering: 0.00040 (3%) | DB: 0.00082 (6%) | 200 OK [http://localhost/terminology/openehr/en/0]
+  [4;36;1mTerminology Load (0.000714)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = 0) LIMIT 1[0m
+  [4;35;1mTerminology Load (0.000741)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = 0) LIMIT 1[0m
+  [4;36;1mTerminology Load (0.000734)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = 0) LIMIT 1[0m
+  [4;35;1mTerminology Load (0.000717)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = 0) LIMIT 1[0m
+  [4;36;1mTerminology Load (0.000708)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = 0) LIMIT 1[0m
+  [4;35;1mTerminology Load (0.000709)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = 0) LIMIT 1[0m
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 09:30:50) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"0", "lang"=>"en", "controller"=>"terminology"}
+  [4;36;1mTerminology Load (0.001236)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = 0) LIMIT 1[0m
+
+
+NoMethodError (undefined method `xml' for #<String:0xb795236c>):
+    /app/controllers/terminology_controller.rb:7:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 09:31:45) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"0", "lang"=>"en", "controller"=>"terminology"}
+  [4;35;1mTerminology Load (0.000848)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = 0) LIMIT 1[0m
+
+
+NoMethodError (undefined method `xml' for #<Terminology:0xb773bdbc>):
+    /vendor/rails/activerecord/lib/active_record/attribute_methods.rb:256:in `method_missing'
+    /app/controllers/terminology_controller.rb:5:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 09:31:57) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"0", "lang"=>"en", "controller"=>"terminology"}
+  [4;36;1mTerminology Load (0.000834)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = 0) LIMIT 1[0m
+Completed in 0.01360 (73 reqs/sec) | Rendering: 0.00043 (3%) | DB: 0.00083 (6%) | 200 OK [http://localhost/terminology/openehr/en/0]
+
+
+Processing ApplicationController#show (for 127.0.0.1 at 2009-07-28 09:32:59) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"0", "lang"=>"en", "controller"=>"terminology"}
+
+
+SyntaxError (/home/skoba/src/terminology/app/controllers/terminology_controller.rb:4: syntax error, unexpected ']', expecting '}'
+                                      :openehr_id => params[:id]]})
+                                                                 ^):
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:215:in `load_without_new_constant_marking'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:215:in `load_file'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:214:in `load_file'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:95:in `require_or_load'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:260:in `load_missing_constant'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:467:in `const_missing'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:479:in `const_missing'
+    /vendor/rails/activesupport/lib/active_support/inflector.rb:283:in `constantize'
+    /vendor/rails/activesupport/lib/active_support/core_ext/string/inflections.rb:143:in `constantize'
+    /vendor/rails/actionpack/lib/action_controller/routing/route_set.rb:386:in `recognize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:148:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 09:33:14) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"0", "lang"=>"en", "controller"=>"terminology"}
+  [4;35;1mTerminology Load (0.001139)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = '0') LIMIT 1[0m
+Completed in 0.01802 (55 reqs/sec) | Rendering: 0.00058 (3%) | DB: 0.00114 (6%) | 200 OK [http://localhost/terminology/openehr/en/0]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 09:36:37) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"3", "lang"=>"en", "controller"=>"terminology"}
+  [4;36;1mTerminology Load (0.000834)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = '3') LIMIT 1[0m
+Completed in 0.01337 (74 reqs/sec) | Rendering: 0.00041 (3%) | DB: 0.00083 (6%) | 200 OK [http://localhost/terminology/openehr/en/3]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 09:53:42) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"5", "lang"=>"en", "controller"=>"terminology"}
+  [4;35;1mTerminology Load (0.000765)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = '5') LIMIT 1[0m
+
+
+NoMethodError (You have a nil object when you didn't expect it!
+You might have expected an instance of ActiveRecord::Base.
+The error occurred while evaluating nil.to_xml):
+    /app/controllers/terminology_controller.rb:5:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 09:53:52) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"6", "lang"=>"en", "controller"=>"terminology"}
+  [4;36;1mTerminology Load (0.001141)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = '6') LIMIT 1[0m
+Completed in 0.01790 (55 reqs/sec) | Rendering: 0.00057 (3%) | DB: 0.00114 (6%) | 200 OK [http://localhost/terminology/openehr/en/6]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 22:06:48) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"action"=>"show", "controller"=>"terminology"}
+  [4;35;1mTerminology Load (0.000712)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" IS NULL) LIMIT 1[0m
+
+
+NoMethodError (You have a nil object when you didn't expect it!
+You might have expected an instance of ActiveRecord::Base.
+The error occurred while evaluating nil.to_xml):
+    /app/controllers/terminology_controller.rb:5:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-28 23:12:45) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"6", "lang"=>"en", "controller"=>"terminology"}
+  [4;36;1mTerminology Load (0.000865)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = '6') LIMIT 1[0m
+Completed in 0.01675 (59 reqs/sec) | Rendering: 0.00073 (4%) | DB: 0.00086 (5%) | 200 OK [http://localhost/terminology/openehr/en/6]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-29 00:41:05) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"6", "lang"=>"en", "controller"=>"terminology"}
+  [4;35;1mTerminology Load (0.000975)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = '6') LIMIT 1[0m
+Completed in 0.01403 (71 reqs/sec) | Rendering: 0.00043 (3%) | DB: 0.00098 (6%) | 200 OK [http://localhost/terminology/openehr/en/6]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-29 13:26:06) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"0", "lang"=>"en", "controller"=>"terminology"}
+  [4;36;1mTerminology Load (0.003787)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = '0') LIMIT 1[0m
+
+
+NameError (undefined local variable or method `terminology' for #<TerminologyController:0xb753e49c>):
+    /app/controllers/terminology_controller.rb:5:in `show'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:1162:in `perform_action_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:580:in `call_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:573:in `perform_action_without_benchmark'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
+    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
+    /vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `perform_action'
+    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
+    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
+    /vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `perform_action'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
+    /vendor/rails/actionpack/lib/action_controller/filters.rb:569:in `process_without_session_management_support'
+    /vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
+    /vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
+    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
+    /vendor/rails/railties/lib/webrick_server.rb:78:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
+    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
+    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
+    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
+    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
+    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
+    /vendor/rails/railties/lib/webrick_server.rb:62:in `dispatch'
+    /vendor/rails/railties/lib/commands/servers/webrick.rb:66
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in `new_constants_in'
+    /vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in `require'
+    /vendor/rails/railties/lib/commands/server.rb:39
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
+    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
+    script/server:3
+
+Rendering /home/skoba/src/terminology/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-29 13:26:30) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"0", "lang"=>"en", "controller"=>"terminology"}
+  [4;35;1mTerminology Load (0.001151)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = '0') LIMIT 1[0m
+Completed in 0.01779 (56 reqs/sec) | Rendering: 0.00060 (3%) | DB: 0.00115 (6%) | 200 OK [http://localhost/terminology/openehr/en/0]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-29 13:26:34) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"1", "lang"=>"en", "controller"=>"terminology"}
+  [4;36;1mTerminology Load (0.001542)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = '1') LIMIT 1[0m
+Completed in 0.00958 (104 reqs/sec) | Rendering: 0.00047 (4%) | DB: 0.00154 (16%) | 404 Not Found [http://localhost/terminology/openehr/en/1]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-29 13:30:52) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "action"=>"show", "id"=>"1", "lang"=>"en", "controller"=>"terminology"}
+  [4;35;1mTerminology Load (0.001077)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."openehr_id" = '1') LIMIT 1[0m
+Completed in 0.01265 (79 reqs/sec) | Rendering: 0.00056 (4%) | DB: 0.00108 (8%) | 404 Not Found [http://localhost/terminology/openehr/en/1]
+  [4;36;1mSQL (0.000565)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000316)[0m   [0mselect sqlite_version(*)[0m
+  [4;36;1mSQL (0.006667)[0m   [0;1mCREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) [0m
+  [4;35;1mSQL (0.002288)[0m   [0mCREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")[0m
+  [4;36;1mSQL (0.000589)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000257)[0m   [0mSELECT version FROM schema_migrations[0m
+Migrating to CreateTerminologies (20090725052538)
+  [4;36;1mSQL (0.000181)[0m   [0;1mSELECT version FROM schema_migrations[0m
+  [4;35;1mSQL (0.003100)[0m   [0mCREATE TABLE "terminologies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "code" varchar(255) DEFAULT NULL NULL, "name" varchar(255) DEFAULT NULL NULL, "lang" varchar(255) DEFAULT NULL NULL, "group" text DEFAULT NULL NULL, "rubric" varchar(255) DEFAULT NULL NULL, "description" text DEFAULT NULL NULL, "mappings" varchar(255) DEFAULT NULL NULL) [0m
+  [4;36;1mSQL (0.001752)[0m   [0;1mINSERT INTO schema_migrations (version) VALUES ('20090725052538')[0m
+  [4;35;1mSQL (0.000466)[0m   [0mSELECT version FROM schema_migrations[0m
+  [4;36;1mSQL (0.000426)[0m   [0;1m SELECT name
+ FROM sqlite_master
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
+[0m
+  [4;35;1mSQL (0.000173)[0m   [0mPRAGMA index_list("terminologies")[0m
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-30 09:06:32) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "code"=>"2", "action"=>"show", "lang"=>"en", "controller"=>"terminology"}
+  [4;36;1mTerminology Load (0.001633)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."lang" = 'en' AND "terminologies"."code" = '2' AND "terminologies"."name" = 'openehr') LIMIT 1[0m
+Completed in 0.01646 (60 reqs/sec) | Rendering: 0.00051 (3%) | DB: 0.00163 (9%) | 404 Not Found [http://localhost/terminology/openehr/en/2]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-30 09:06:35) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "code"=>"3", "action"=>"show", "lang"=>"en", "controller"=>"terminology"}
+  [4;35;1mTerminology Load (0.001376)[0m   [0mSELECT * FROM "terminologies" WHERE ("terminologies"."lang" = 'en' AND "terminologies"."code" = '3' AND "terminologies"."name" = 'openehr') LIMIT 1[0m
+Completed in 0.01552 (64 reqs/sec) | Rendering: 0.00046 (2%) | DB: 0.00138 (8%) | 200 OK [http://localhost/terminology/openehr/en/3]
+
+
+Processing TerminologyController#show (for 127.0.0.1 at 2009-07-30 09:06:51) [GET]
+  Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
+SGFzaHsABjoKQHVzZWR7AA==--105cbe01dd04ed0d7b386758f2b31d1ac05e1161
+  Parameters: {"name"=>"openehr", "code"=>"3", "action"=>"show", "lang"=>"ja", "controller"=>"terminology"}
+  [4;36;1mTerminology Load (0.001251)[0m   [0;1mSELECT * FROM "terminologies" WHERE ("terminologies"."lang" = 'ja' AND "terminologies"."code" = '3' AND "terminologies"."name" = 'openehr') LIMIT 1[0m
+Completed in 0.01486 (67 reqs/sec) | Rendering: 0.00061 (4%) | DB: 0.00125 (8%) | 404 Not Found [http://localhost/terminology/openehr/ja/3]
Index: ruby/trunk/public/404.html
===================================================================
--- ruby/trunk/public/404.html	(revision 291)
+++ ruby/trunk/public/404.html	(revision 291)
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+  <title>The page you were looking for doesn't exist (404)</title>
+	<style type="text/css">
+		body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
+		div.dialog {
+			width: 25em;
+			padding: 0 4em;
+			margin: 4em auto 0 auto;
+			border: 1px solid #ccc;
+			border-right-color: #999;
+			border-bottom-color: #999;
+		}
+		h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
+	</style>
+</head>
+
+<body>
+  <!-- This file lives in public/404.html -->
+  <div class="dialog">
+    <h1>The page you were looking for doesn't exist.</h1>
+    <p>You may have mistyped the address or the page may have moved.</p>
+  </div>
+</body>
+</html>
Index: ruby/trunk/public/422.html
===================================================================
--- ruby/trunk/public/422.html	(revision 291)
+++ ruby/trunk/public/422.html	(revision 291)
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+  <title>The change you wanted was rejected (422)</title>
+	<style type="text/css">
+		body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
+		div.dialog {
+			width: 25em;
+			padding: 0 4em;
+			margin: 4em auto 0 auto;
+			border: 1px solid #ccc;
+			border-right-color: #999;
+			border-bottom-color: #999;
+		}
+		h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
+	</style>
+</head>
+
+<body>
+  <!-- This file lives in public/422.html -->
+  <div class="dialog">
+    <h1>The change you wanted was rejected.</h1>
+    <p>Maybe you tried to change something you didn't have access to.</p>
+  </div>
+</body>
+</html>
Index: ruby/trunk/public/500.html
===================================================================
--- ruby/trunk/public/500.html	(revision 291)
+++ ruby/trunk/public/500.html	(revision 291)
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+  <title>We're sorry, but something went wrong (500)</title>
+	<style type="text/css">
+		body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
+		div.dialog {
+			width: 25em;
+			padding: 0 4em;
+			margin: 4em auto 0 auto;
+			border: 1px solid #ccc;
+			border-right-color: #999;
+			border-bottom-color: #999;
+		}
+		h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
+	</style>
+</head>
+
+<body>
+  <!-- This file lives in public/500.html -->
+  <div class="dialog">
+    <h1>We're sorry, but something went wrong.</h1>
+    <p>We've been notified about this issue and we'll take a look at it shortly.</p>
+  </div>
+</body>
+</html>
Index: ruby/trunk/public/dispatch.cgi
===================================================================
--- ruby/trunk/public/dispatch.cgi	(revision 291)
+++ ruby/trunk/public/dispatch.cgi	(revision 291)
@@ -0,0 +1,12 @@
+#!/usr/bin/ruby1.8
+
+#!/usr/local/bin/ruby
+
+require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
+
+# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
+# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
+require "dispatcher"
+
+ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
+Dispatcher.dispatch
Index: ruby/trunk/public/dispatch.fcgi
===================================================================
--- ruby/trunk/public/dispatch.fcgi	(revision 291)
+++ ruby/trunk/public/dispatch.fcgi	(revision 291)
@@ -0,0 +1,26 @@
+#!/usr/bin/ruby1.8
+
+#!/usr/local/bin/ruby
+#
+# You may specify the path to the FastCGI crash log (a log of unhandled
+# exceptions which forced the FastCGI instance to exit, great for debugging)
+# and the number of requests to process before running garbage collection.
+#
+# By default, the FastCGI crash log is RAILS_ROOT/log/fastcgi.crash.log
+# and the GC period is nil (turned off).  A reasonable number of requests
+# could range from 10-100 depending on the memory footprint of your app.
+#
+# Example:
+#   # Default log path, normal GC behavior.
+#   RailsFCGIHandler.process!
+#
+#   # Default log path, 50 requests between GC.
+#   RailsFCGIHandler.process! nil, 50
+#
+#   # Custom log path, normal GC behavior.
+#   RailsFCGIHandler.process! '/var/log/myapp_fcgi_crash.log'
+#
+require File.dirname(__FILE__) + "/../config/environment"
+require 'fcgi_handler'
+
+RailsFCGIHandler.process!
Index: ruby/trunk/public/dispatch.rb
===================================================================
--- ruby/trunk/public/dispatch.rb	(revision 291)
+++ ruby/trunk/public/dispatch.rb	(revision 291)
@@ -0,0 +1,12 @@
+#!/usr/bin/ruby1.8
+
+#!/usr/local/bin/ruby
+
+require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
+
+# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
+# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
+require "dispatcher"
+
+ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
+Dispatcher.dispatch
Index: ruby/trunk/public/index.html
===================================================================
--- ruby/trunk/public/index.html	(revision 291)
+++ ruby/trunk/public/index.html	(revision 291)
@@ -0,0 +1,274 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+    <title>Ruby on Rails: Welcome aboard</title>
+    <style type="text/css" media="screen">
+      body {
+        margin: 0;
+        margin-bottom: 25px;
+        padding: 0;
+        background-color: #f0f0f0;
+        font-family: "Lucida Grande", "Bitstream Vera Sans", "Verdana";
+        font-size: 13px;
+        color: #333;
+      }
+      
+      h1 {
+        font-size: 28px;
+        color: #000;
+      }
+      
+      a  {color: #03c}
+      a:hover {
+        background-color: #03c;
+        color: white;
+        text-decoration: none;
+      }
+      
+      
+      #page {
+        background-color: #f0f0f0;
+        width: 750px;
+        margin: 0;
+        margin-left: auto;
+        margin-right: auto;
+      }
+      
+      #content {
+        float: left;
+        background-color: white;
+        border: 3px solid #aaa;
+        border-top: none;
+        padding: 25px;
+        width: 500px;
+      }
+      
+      #sidebar {
+        float: right;
+        width: 175px;
+      }
+
+      #footer {
+        clear: both;
+      }
+      
+
+      #header, #about, #getting-started {
+        padding-left: 75px;
+        padding-right: 30px;
+      }
+
+
+      #header {
+        background-image: url("images/rails.png");
+        background-repeat: no-repeat;
+        background-position: top left;
+        height: 64px;
+      }
+      #header h1, #header h2 {margin: 0}
+      #header h2 {
+        color: #888;
+        font-weight: normal;
+        font-size: 16px;
+      }
+      
+      
+      #about h3 {
+        margin: 0;
+        margin-bottom: 10px;
+        font-size: 14px;
+      }
+      
+      #about-content {
+        background-color: #ffd;
+        border: 1px solid #fc0;
+        margin-left: -11px;
+      }
+      #about-content table {
+        margin-top: 10px;
+        margin-bottom: 10px;
+        font-size: 11px;
+        border-collapse: collapse;
+      }
+      #about-content td {
+        padding: 10px;
+        padding-top: 3px;
+        padding-bottom: 3px;
+      }
+      #about-content td.name  {color: #555}
+      #about-content td.value {color: #000}
+      
+      #about-content.failure {
+        background-color: #fcc;
+        border: 1px solid #f00;
+      }
+      #about-content.failure p {
+        margin: 0;
+        padding: 10px;
+      }
+      
+      
+      #getting-started {
+        border-top: 1px solid #ccc;
+        margin-top: 25px;
+        padding-top: 15px;
+      }
+      #getting-started h1 {
+        margin: 0;
+        font-size: 20px;
+      }
+      #getting-started h2 {
+        margin: 0;
+        font-size: 14px;
+        font-weight: normal;
+        color: #333;
+        margin-bottom: 25px;
+      }
+      #getting-started ol {
+        margin-left: 0;
+        padding-left: 0;
+      }
+      #getting-started li {
+        font-size: 18px;
+        color: #888;
+        margin-bottom: 25px;
+      }
+      #getting-started li h2 {
+        margin: 0;
+        font-weight: normal;
+        font-size: 18px;
+        color: #333;
+      }
+      #getting-started li p {
+        color: #555;
+        font-size: 13px;
+      }
+      
+      
+      #search {
+        margin: 0;
+        padding-top: 10px;
+        padding-bottom: 10px;
+        font-size: 11px;
+      }
+      #search input {
+        font-size: 11px;
+        margin: 2px;
+      }
+      #search-text {width: 170px}
+      
+      
+      #sidebar ul {
+        margin-left: 0;
+        padding-left: 0;
+      }
+      #sidebar ul h3 {
+        margin-top: 25px;
+        font-size: 16px;
+        padding-bottom: 10px;
+        border-bottom: 1px solid #ccc;
+      }
+      #sidebar li {
+        list-style-type: none;
+      }
+      #sidebar ul.links li {
+        margin-bottom: 5px;
+      }
+      
+    </style>
+    <script type="text/javascript" src="javascripts/prototype.js"></script>
+    <script type="text/javascript" src="javascripts/effects.js"></script>
+    <script type="text/javascript">
+      function about() {
+        if (Element.empty('about-content')) {
+          new Ajax.Updater('about-content', 'rails/info/properties', {
+            method:     'get',
+            onFailure:  function() {Element.classNames('about-content').add('failure')},
+            onComplete: function() {new Effect.BlindDown('about-content', {duration: 0.25})}
+          });
+        } else {
+          new Effect[Element.visible('about-content') ? 
+            'BlindUp' : 'BlindDown']('about-content', {duration: 0.25});
+        }
+      }
+      
+      window.onload = function() {
+        $('search-text').value = '';
+        $('search').onsubmit = function() {
+          $('search-text').value = 'site:rubyonrails.org ' + $F('search-text');
+        }
+      }
+    </script>
+  </head>
+  <body>
+    <div id="page">
+      <div id="sidebar">
+        <ul id="sidebar-items">
+          <li>
+            <form id="search" action="http://www.google.com/search" method="get">
+              <input type="hidden" name="hl" value="en" />
+              <input type="text" id="search-text" name="q" value="site:rubyonrails.org " />
+              <input type="submit" value="Search" /> the Rails site
+            </form>
+          </li>
+        
+          <li>
+            <h3>Join the community</h3>
+            <ul class="links">
+              <li><a href="http://www.rubyonrails.org/">Ruby on Rails</a></li>
+              <li><a href="http://weblog.rubyonrails.org/">Official weblog</a></li>
+              <li><a href="http://wiki.rubyonrails.org/">Wiki</a></li>
+            </ul>
+          </li>
+          
+          <li>
+            <h3>Browse the documentation</h3>
+            <ul class="links">
+              <li><a href="http://api.rubyonrails.org/">Rails API</a></li>
+              <li><a href="http://stdlib.rubyonrails.org/">Ruby standard library</a></li>
+              <li><a href="http://corelib.rubyonrails.org/">Ruby core</a></li>
+            </ul>
+          </li>
+        </ul>
+      </div>
+
+      <div id="content">
+        <div id="header">
+          <h1>Welcome aboard</h1>
+          <h2>You&rsquo;re riding Ruby on Rails!</h2>
+        </div>
+
+        <div id="about">
+          <h3><a href="rails/info/properties" onclick="about(); return false">About your application&rsquo;s environment</a></h3>
+          <div id="about-content" style="display: none"></div>
+        </div>
+        
+        <div id="getting-started">
+          <h1>Getting started</h1>
+          <h2>Here&rsquo;s how to get rolling:</h2>
+          
+          <ol>          
+            <li>
+              <h2>Use <tt>script/generate</tt> to create your models and controllers</h2>
+              <p>To see all available options, run it without parameters.</p>
+            </li>
+            
+            <li>
+              <h2>Set up a default route and remove or rename this file</h2>
+              <p>Routes are set up in config/routes.rb.</p>
+            </li>
+
+            <li>
+              <h2>Create your database</h2>
+              <p>Run <tt>rake db:migrate</tt> to create your database. If you're not using SQLite (the default), edit <tt>config/database.yml</tt> with your username and password.</p>
+            </li>
+          </ol>
+        </div>
+      </div>
+      
+      <div id="footer">&nbsp;</div>
+    </div>
+  </body>
+</html>
Index: ruby/trunk/public/javascripts/application.js
===================================================================
--- ruby/trunk/public/javascripts/application.js	(revision 291)
+++ ruby/trunk/public/javascripts/application.js	(revision 291)
@@ -0,0 +1,2 @@
+// Place your application-specific JavaScript functions and classes here
+// This file is automatically included by javascript_include_tag :defaults
Index: ruby/trunk/public/javascripts/controls.js
===================================================================
--- ruby/trunk/public/javascripts/controls.js	(revision 291)
+++ ruby/trunk/public/javascripts/controls.js	(revision 291)
@@ -0,0 +1,963 @@
+// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+//           (c) 2005-2007 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
+//           (c) 2005-2007 Jon Tirsen (http://www.tirsen.com)
+// Contributors:
+//  Richard Livsey
+//  Rahul Bhargava
+//  Rob Wills
+// 
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/
+
+// Autocompleter.Base handles all the autocompletion functionality 
+// that's independent of the data source for autocompletion. This
+// includes drawing the autocompletion menu, observing keyboard
+// and mouse events, and similar.
+//
+// Specific autocompleters need to provide, at the very least, 
+// a getUpdatedChoices function that will be invoked every time
+// the text inside the monitored textbox changes. This method 
+// should get the text for which to provide autocompletion by
+// invoking this.getToken(), NOT by directly accessing
+// this.element.value. This is to allow incremental tokenized
+// autocompletion. Specific auto-completion logic (AJAX, etc)
+// belongs in getUpdatedChoices.
+//
+// Tokenized incremental autocompletion is enabled automatically
+// when an autocompleter is instantiated with the 'tokens' option
+// in the options parameter, e.g.:
+// new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' });
+// will incrementally autocomplete with a comma as the token.
+// Additionally, ',' in the above example can be replaced with
+// a token array, e.g. { tokens: [',', '\n'] } which
+// enables autocompletion on multiple tokens. This is most 
+// useful when one of the tokens is \n (a newline), as it 
+// allows smart autocompletion after linebreaks.
+
+if(typeof Effect == 'undefined')
+  throw("controls.js requires including script.aculo.us' effects.js library");
+
+var Autocompleter = { }
+Autocompleter.Base = Class.create({
+  baseInitialize: function(element, update, options) {
+    element          = $(element)
+    this.element     = element; 
+    this.update      = $(update);  
+    this.hasFocus    = false; 
+    this.changed     = false; 
+    this.active      = false; 
+    this.index       = 0;     
+    this.entryCount  = 0;
+    this.oldElementValue = this.element.value;
+
+    if(this.setOptions)
+      this.setOptions(options);
+    else
+      this.options = options || { };
+
+    this.options.paramName    = this.options.paramName || this.element.name;
+    this.options.tokens       = this.options.tokens || [];
+    this.options.frequency    = this.options.frequency || 0.4;
+    this.options.minChars     = this.options.minChars || 1;
+    this.options.onShow       = this.options.onShow || 
+      function(element, update){ 
+        if(!update.style.position || update.style.position=='absolute') {
+          update.style.position = 'absolute';
+          Position.clone(element, update, {
+            setHeight: false, 
+            offsetTop: element.offsetHeight
+          });
+        }
+        Effect.Appear(update,{duration:0.15});
+      };
+    this.options.onHide = this.options.onHide || 
+      function(element, update){ new Effect.Fade(update,{duration:0.15}) };
+
+    if(typeof(this.options.tokens) == 'string') 
+      this.options.tokens = new Array(this.options.tokens);
+    // Force carriage returns as token delimiters anyway
+    if (!this.options.tokens.include('\n'))
+      this.options.tokens.push('\n');
+
+    this.observer = null;
+    
+    this.element.setAttribute('autocomplete','off');
+
+    Element.hide(this.update);
+
+    Event.observe(this.element, 'blur', this.onBlur.bindAsEventListener(this));
+    Event.observe(this.element, 'keydown', this.onKeyPress.bindAsEventListener(this));
+  },
+
+  show: function() {
+    if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update);
+    if(!this.iefix && 
+      (Prototype.Browser.IE) &&
+      (Element.getStyle(this.update, 'position')=='absolute')) {
+      new Insertion.After(this.update, 
+       '<iframe id="' + this.update.id + '_iefix" '+
+       'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" ' +
+       'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');
+      this.iefix = $(this.update.id+'_iefix');
+    }
+    if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50);
+  },
+  
+  fixIEOverlapping: function() {
+    Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)});
+    this.iefix.style.zIndex = 1;
+    this.update.style.zIndex = 2;
+    Element.show(this.iefix);
+  },
+
+  hide: function() {
+    this.stopIndicator();
+    if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update);
+    if(this.iefix) Element.hide(this.iefix);
+  },
+
+  startIndicator: function() {
+    if(this.options.indicator) Element.show(this.options.indicator);
+  },
+
+  stopIndicator: function() {
+    if(this.options.indicator) Element.hide(this.options.indicator);
+  },
+
+  onKeyPress: function(event) {
+    if(this.active)
+      switch(event.keyCode) {
+       case Event.KEY_TAB:
+       case Event.KEY_RETURN:
+         this.selectEntry();
+         Event.stop(event);
+       case Event.KEY_ESC:
+         this.hide();
+         this.active = false;
+         Event.stop(event);
+         return;
+       case Event.KEY_LEFT:
+       case Event.KEY_RIGHT:
+         return;
+       case Event.KEY_UP:
+         this.markPrevious();
+         this.render();
+         Event.stop(event);
+         return;
+       case Event.KEY_DOWN:
+         this.markNext();
+         this.render();
+         Event.stop(event);
+         return;
+      }
+     else 
+       if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN || 
+         (Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return;
+
+    this.changed = true;
+    this.hasFocus = true;
+
+    if(this.observer) clearTimeout(this.observer);
+      this.observer = 
+        setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000);
+  },
+
+  activate: function() {
+    this.changed = false;
+    this.hasFocus = true;
+    this.getUpdatedChoices();
+  },
+
+  onHover: function(event) {
+    var element = Event.findElement(event, 'LI');
+    if(this.index != element.autocompleteIndex) 
+    {
+        this.index = element.autocompleteIndex;
+        this.render();
+    }
+    Event.stop(event);
+  },
+  
+  onClick: function(event) {
+    var element = Event.findElement(event, 'LI');
+    this.index = element.autocompleteIndex;
+    this.selectEntry();
+    this.hide();
+  },
+  
+  onBlur: function(event) {
+    // needed to make click events working
+    setTimeout(this.hide.bind(this), 250);
+    this.hasFocus = false;
+    this.active = false;     
+  }, 
+  
+  render: function() {
+    if(this.entryCount > 0) {
+      for (var i = 0; i < this.entryCount; i++)
+        this.index==i ? 
+          Element.addClassName(this.getEntry(i),"selected") : 
+          Element.removeClassName(this.getEntry(i),"selected");
+      if(this.hasFocus) { 
+        this.show();
+        this.active = true;
+      }
+    } else {
+      this.active = false;
+      this.hide();
+    }
+  },
+  
+  markPrevious: function() {
+    if(this.index > 0) this.index--
+      else this.index = this.entryCount-1;
+    this.getEntry(this.index).scrollIntoView(true);
+  },
+  
+  markNext: function() {
+    if(this.index < this.entryCount-1) this.index++
+      else this.index = 0;
+    this.getEntry(this.index).scrollIntoView(false);
+  },
+  
+  getEntry: function(index) {
+    return this.update.firstChild.childNodes[index];
+  },
+  
+  getCurrentEntry: function() {
+    return this.getEntry(this.index);
+  },
+  
+  selectEntry: function() {
+    this.active = false;
+    this.updateElement(this.getCurrentEntry());
+  },
+
+  updateElement: function(selectedElement) {
+    if (this.options.updateElement) {
+      this.options.updateElement(selectedElement);
+      return;
+    }
+    var value = '';
+    if (this.options.select) {
+      var nodes = $(selectedElement).select('.' + this.options.select) || [];
+      if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select);
+    } else
+      value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal');
+    
+    var bounds = this.getTokenBounds();
+    if (bounds[0] != -1) {
+      var newValue = this.element.value.substr(0, bounds[0]);
+      var whitespace = this.element.value.substr(bounds[0]).match(/^\s+/);
+      if (whitespace)
+        newValue += whitespace[0];
+      this.element.value = newValue + value + this.element.value.substr(bounds[1]);
+    } else {
+      this.element.value = value;
+    }
+    this.oldElementValue = this.element.value;
+    this.element.focus();
+    
+    if (this.options.afterUpdateElement)
+      this.options.afterUpdateElement(this.element, selectedElement);
+  },
+
+  updateChoices: function(choices) {
+    if(!this.changed && this.hasFocus) {
+      this.update.innerHTML = choices;
+      Element.cleanWhitespace(this.update);
+      Element.cleanWhitespace(this.update.down());
+
+      if(this.update.firstChild && this.update.down().childNodes) {
+        this.entryCount = 
+          this.update.down().childNodes.length;
+        for (var i = 0; i < this.entryCount; i++) {
+          var entry = this.getEntry(i);
+          entry.autocompleteIndex = i;
+          this.addObservers(entry);
+        }
+      } else { 
+        this.entryCount = 0;
+      }
+
+      this.stopIndicator();
+      this.index = 0;
+      
+      if(this.entryCount==1 && this.options.autoSelect) {
+        this.selectEntry();
+        this.hide();
+      } else {
+        this.render();
+      }
+    }
+  },
+
+  addObservers: function(element) {
+    Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this));
+    Event.observe(element, "click", this.onClick.bindAsEventListener(this));
+  },
+
+  onObserverEvent: function() {
+    this.changed = false;   
+    this.tokenBounds = null;
+    if(this.getToken().length>=this.options.minChars) {
+      this.getUpdatedChoices();
+    } else {
+      this.active = false;
+      this.hide();
+    }
+    this.oldElementValue = this.element.value;
+  },
+
+  getToken: function() {
+    var bounds = this.getTokenBounds();
+    return this.element.value.substring(bounds[0], bounds[1]).strip();
+  },
+
+  getTokenBounds: function() {
+    if (null != this.tokenBounds) return this.tokenBounds;
+    var value = this.element.value;
+    if (value.strip().empty()) return [-1, 0];
+    var diff = arguments.callee.getFirstDifferencePos(value, this.oldElementValue);
+    var offset = (diff == this.oldElementValue.length ? 1 : 0);
+    var prevTokenPos = -1, nextTokenPos = value.length;
+    var tp;
+    for (var index = 0, l = this.options.tokens.length; index < l; ++index) {
+      tp = value.lastIndexOf(this.options.tokens[index], diff + offset - 1);
+      if (tp > prevTokenPos) prevTokenPos = tp;
+      tp = value.indexOf(this.options.tokens[index], diff + offset);
+      if (-1 != tp && tp < nextTokenPos) nextTokenPos = tp;
+    }
+    return (this.tokenBounds = [prevTokenPos + 1, nextTokenPos]);
+  }
+});
+
+Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos = function(newS, oldS) {
+  var boundary = Math.min(newS.length, oldS.length);
+  for (var index = 0; index < boundary; ++index)
+    if (newS[index] != oldS[index])
+      return index;
+  return boundary;
+};
+
+Ajax.Autocompleter = Class.create(Autocompleter.Base, {
+  initialize: function(element, update, url, options) {
+    this.baseInitialize(element, update, options);
+    this.options.asynchronous  = true;
+    this.options.onComplete    = this.onComplete.bind(this);
+    this.options.defaultParams = this.options.parameters || null;
+    this.url                   = url;
+  },
+
+  getUpdatedChoices: function() {
+    this.startIndicator();
+    
+    var entry = encodeURIComponent(this.options.paramName) + '=' + 
+      encodeURIComponent(this.getToken());
+
+    this.options.parameters = this.options.callback ?
+      this.options.callback(this.element, entry) : entry;
+
+    if(this.options.defaultParams) 
+      this.options.parameters += '&' + this.options.defaultParams;
+    
+    new Ajax.Request(this.url, this.options);
+  },
+
+  onComplete: function(request) {
+    this.updateChoices(request.responseText);
+  }
+});
+
+// The local array autocompleter. Used when you'd prefer to
+// inject an array of autocompletion options into the page, rather
+// than sending out Ajax queries, which can be quite slow sometimes.
+//
+// The constructor takes four parameters. The first two are, as usual,
+// the id of the monitored textbox, and id of the autocompletion menu.
+// The third is the array you want to autocomplete from, and the fourth
+// is the options block.
+//
+// Extra local autocompletion options:
+// - choices - How many autocompletion choices to offer
+//
+// - partialSearch - If false, the autocompleter will match entered
+//                    text only at the beginning of strings in the 
+//                    autocomplete array. Defaults to true, which will
+//                    match text at the beginning of any *word* in the
+//                    strings in the autocomplete array. If you want to
+//                    search anywhere in the string, additionally set
+//                    the option fullSearch to true (default: off).
+//
+// - fullSsearch - Search anywhere in autocomplete array strings.
+//
+// - partialChars - How many characters to enter before triggering
+//                   a partial match (unlike minChars, which defines
+//                   how many characters are required to do any match
+//                   at all). Defaults to 2.
+//
+// - ignoreCase - Whether to ignore case when autocompleting.
+//                 Defaults to true.
+//
+// It's possible to pass in a custom function as the 'selector' 
+// option, if you prefer to write your own autocompletion logic.
+// In that case, the other options above will not apply unless
+// you support them.
+
+Autocompleter.Local = Class.create(Autocompleter.Base, {
+  initialize: function(element, update, array, options) {
+    this.baseInitialize(element, update, options);
+    this.options.array = array;
+  },
+
+  getUpdatedChoices: function() {
+    this.updateChoices(this.options.selector(this));
+  },
+
+  setOptions: function(options) {
+    this.options = Object.extend({
+      choices: 10,
+      partialSearch: true,
+      partialChars: 2,
+      ignoreCase: true,
+      fullSearch: false,
+      selector: function(instance) {
+        var ret       = []; // Beginning matches
+        var partial   = []; // Inside matches
+        var entry     = instance.getToken();
+        var count     = 0;
+
+        for (var i = 0; i < instance.options.array.length &&  
+          ret.length < instance.options.choices ; i++) { 
+
+          var elem = instance.options.array[i];
+          var foundPos = instance.options.ignoreCase ? 
+            elem.toLowerCase().indexOf(entry.toLowerCase()) : 
+            elem.indexOf(entry);
+
+          while (foundPos != -1) {
+            if (foundPos == 0 && elem.length != entry.length) { 
+              ret.push("<li><strong>" + elem.substr(0, entry.length) + "</strong>" + 
+                elem.substr(entry.length) + "</li>");
+              break;
+            } else if (entry.length >= instance.options.partialChars && 
+              instance.options.partialSearch && foundPos != -1) {
+              if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) {
+                partial.push("<li>" + elem.substr(0, foundPos) + "<strong>" +
+                  elem.substr(foundPos, entry.length) + "</strong>" + elem.substr(
+                  foundPos + entry.length) + "</li>");
+                break;
+              }
+            }
+
+            foundPos = instance.options.ignoreCase ? 
+              elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) : 
+              elem.indexOf(entry, foundPos + 1);
+
+          }
+        }
+        if (partial.length)
+          ret = ret.concat(partial.slice(0, instance.options.choices - ret.length))
+        return "<ul>" + ret.join('') + "</ul>";
+      }
+    }, options || { });
+  }
+});
+
+// AJAX in-place editor and collection editor
+// Full rewrite by Christophe Porteneuve <tdd@tddsworld.com> (April 2007).
+
+// Use this if you notice weird scrolling problems on some browsers,
+// the DOM might be a bit confused when this gets called so do this
+// waits 1 ms (with setTimeout) until it does the activation
+Field.scrollFreeActivate = function(field) {
+  setTimeout(function() {
+    Field.activate(field);
+  }, 1);
+}
+
+Ajax.InPlaceEditor = Class.create({
+  initialize: function(element, url, options) {
+    this.url = url;
+    this.element = element = $(element);
+    this.prepareOptions();
+    this._controls = { };
+    arguments.callee.dealWithDeprecatedOptions(options); // DEPRECATION LAYER!!!
+    Object.extend(this.options, options || { });
+    if (!this.options.formId && this.element.id) {
+      this.options.formId = this.element.id + '-inplaceeditor';
+      if ($(this.options.formId))
+        this.options.formId = '';
+    }
+    if (this.options.externalControl)
+      this.options.externalControl = $(this.options.externalControl);
+    if (!this.options.externalControl)
+      this.options.externalControlOnly = false;
+    this._originalBackground = this.element.getStyle('background-color') || 'transparent';
+    this.element.title = this.options.clickToEditText;
+    this._boundCancelHandler = this.handleFormCancellation.bind(this);
+    this._boundComplete = (this.options.onComplete || Prototype.emptyFunction).bind(this);
+    this._boundFailureHandler = this.handleAJAXFailure.bind(this);
+    this._boundSubmitHandler = this.handleFormSubmission.bind(this);
+    this._boundWrapperHandler = this.wrapUp.bind(this);
+    this.registerListeners();
+  },
+  checkForEscapeOrReturn: function(e) {
+    if (!this._editing || e.ctrlKey || e.altKey || e.shiftKey) return;
+    if (Event.KEY_ESC == e.keyCode)
+      this.handleFormCancellation(e);
+    else if (Event.KEY_RETURN == e.keyCode)
+      this.handleFormSubmission(e);
+  },
+  createControl: function(mode, handler, extraClasses) {
+    var control = this.options[mode + 'Control'];
+    var text = this.options[mode + 'Text'];
+    if ('button' == control) {
+      var btn = document.createElement('input');
+      btn.type = 'submit';
+      btn.value = text;
+      btn.className = 'editor_' + mode + '_button';
+      if ('cancel' == mode)
+        btn.onclick = this._boundCancelHandler;
+      this._form.appendChild(btn);
+      this._controls[mode] = btn;
+    } else if ('link' == control) {
+      var link = document.createElement('a');
+      link.href = '#';
+      link.appendChild(document.createTextNode(text));
+      link.onclick = 'cancel' == mode ? this._boundCancelHandler : this._boundSubmitHandler;
+      link.className = 'editor_' + mode + '_link';
+      if (extraClasses)
+        link.className += ' ' + extraClasses;
+      this._form.appendChild(link);
+      this._controls[mode] = link;
+    }
+  },
+  createEditField: function() {
+    var text = (this.options.loadTextURL ? this.options.loadingText : this.getText());
+    var fld;
+    if (1 >= this.options.rows && !/\r|\n/.test(this.getText())) {
+      fld = document.createElement('input');
+      fld.type = 'text';
+      var size = this.options.size || this.options.cols || 0;
+      if (0 < size) fld.size = size;
+    } else {
+      fld = document.createElement('textarea');
+      fld.rows = (1 >= this.options.rows ? this.options.autoRows : this.options.rows);
+      fld.cols = this.options.cols || 40;
+    }
+    fld.name = this.options.paramName;
+    fld.value = text; // No HTML breaks conversion anymore
+    fld.className = 'editor_field';
+    if (this.options.submitOnBlur)
+      fld.onblur = this._boundSubmitHandler;
+    this._controls.editor = fld;
+    if (this.options.loadTextURL)
+      this.loadExternalText();
+    this._form.appendChild(this._controls.editor);
+  },
+  createForm: function() {
+    var ipe = this;
+    function addText(mode, condition) {
+      var text = ipe.options['text' + mode + 'Controls'];
+      if (!text || condition === false) return;
+      ipe._form.appendChild(document.createTextNode(text));
+    };
+    this._form = $(document.createElement('form'));
+    this._form.id = this.options.formId;
+    this._form.addClassName(this.options.formClassName);
+    this._form.onsubmit = this._boundSubmitHandler;
+    this.createEditField();
+    if ('textarea' == this._controls.editor.tagName.toLowerCase())
+      this._form.appendChild(document.createElement('br'));
+    if (this.options.onFormCustomization)
+      this.options.onFormCustomization(this, this._form);
+    addText('Before', this.options.okControl || this.options.cancelControl);
+    this.createControl('ok', this._boundSubmitHandler);
+    addText('Between', this.options.okControl && this.options.cancelControl);
+    this.createControl('cancel', this._boundCancelHandler, 'editor_cancel');
+    addText('After', this.options.okControl || this.options.cancelControl);
+  },
+  destroy: function() {
+    if (this._oldInnerHTML)
+      this.element.innerHTML = this._oldInnerHTML;
+    this.leaveEditMode();
+    this.unregisterListeners();
+  },
+  enterEditMode: function(e) {
+    if (this._saving || this._editing) return;
+    this._editing = true;
+    this.triggerCallback('onEnterEditMode');
+    if (this.options.externalControl)
+      this.options.externalControl.hide();
+    this.element.hide();
+    this.createForm();
+    this.element.parentNode.insertBefore(this._form, this.element);
+    if (!this.options.loadTextURL)
+      this.postProcessEditField();
+    if (e) Event.stop(e);
+  },
+  enterHover: function(e) {
+    if (this.options.hoverClassName)
+      this.element.addClassName(this.options.hoverClassName);
+    if (this._saving) return;
+    this.triggerCallback('onEnterHover');
+  },
+  getText: function() {
+    return this.element.innerHTML;
+  },
+  handleAJAXFailure: function(transport) {
+    this.triggerCallback('onFailure', transport);
+    if (this._oldInnerHTML) {
+      this.element.innerHTML = this._oldInnerHTML;
+      this._oldInnerHTML = null;
+    }
+  },
+  handleFormCancellation: function(e) {
+    this.wrapUp();
+    if (e) Event.stop(e);
+  },
+  handleFormSubmission: function(e) {
+    var form = this._form;
+    var value = $F(this._controls.editor);
+    this.prepareSubmission();
+    var params = this.options.callback(form, value) || '';
+    if (Object.isString(params))
+      params = params.toQueryParams();
+    params.editorId = this.element.id;
+    if (this.options.htmlResponse) {
+      var options = Object.extend({ evalScripts: true }, this.options.ajaxOptions);
+      Object.extend(options, {
+        parameters: params,
+        onComplete: this._boundWrapperHandler,
+        onFailure: this._boundFailureHandler
+      });
+      new Ajax.Updater({ success: this.element }, this.url, options);
+    } else {
+      var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
+      Object.extend(options, {
+        parameters: params,
+        onComplete: this._boundWrapperHandler,
+        onFailure: this._boundFailureHandler
+      });
+      new Ajax.Request(this.url, options);
+    }
+    if (e) Event.stop(e);
+  },
+  leaveEditMode: function() {
+    this.element.removeClassName(this.options.savingClassName);
+    this.removeForm();
+    this.leaveHover();
+    this.element.style.backgroundColor = this._originalBackground;
+    this.element.show();
+    if (this.options.externalControl)
+      this.options.externalControl.show();
+    this._saving = false;
+    this._editing = false;
+    this._oldInnerHTML = null;
+    this.triggerCallback('onLeaveEditMode');
+  },
+  leaveHover: function(e) {
+    if (this.options.hoverClassName)
+      this.element.removeClassName(this.options.hoverClassName);
+    if (this._saving) return;
+    this.triggerCallback('onLeaveHover');
+  },
+  loadExternalText: function() {
+    this._form.addClassName(this.options.loadingClassName);
+    this._controls.editor.disabled = true;
+    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
+    Object.extend(options, {
+      parameters: 'editorId=' + encodeURIComponent(this.element.id),
+      onComplete: Prototype.emptyFunction,
+      onSuccess: function(transport) {
+        this._form.removeClassName(this.options.loadingClassName);
+        var text = transport.responseText;
+        if (this.options.stripLoadedTextTags)
+          text = text.stripTags();
+        this._controls.editor.value = text;
+        this._controls.editor.disabled = false;
+        this.postProcessEditField();
+      }.bind(this),
+      onFailure: this._boundFailureHandler
+    });
+    new Ajax.Request(this.options.loadTextURL, options);
+  },
+  postProcessEditField: function() {
+    var fpc = this.options.fieldPostCreation;
+    if (fpc)
+      $(this._controls.editor)['focus' == fpc ? 'focus' : 'activate']();
+  },
+  prepareOptions: function() {
+    this.options = Object.clone(Ajax.InPlaceEditor.DefaultOptions);
+    Object.extend(this.options, Ajax.InPlaceEditor.DefaultCallbacks);
+    [this._extraDefaultOptions].flatten().compact().each(function(defs) {
+      Object.extend(this.options, defs);
+    }.bind(this));
+  },
+  prepareSubmission: function() {
+    this._saving = true;
+    this.removeForm();
+    this.leaveHover();
+    this.showSaving();
+  },
+  registerListeners: function() {
+    this._listeners = { };
+    var listener;
+    $H(Ajax.InPlaceEditor.Listeners).each(function(pair) {
+      listener = this[pair.value].bind(this);
+      this._listeners[pair.key] = listener;
+      if (!this.options.externalControlOnly)
+        this.element.observe(pair.key, listener);
+      if (this.options.externalControl)
+        this.options.externalControl.observe(pair.key, listener);
+    }.bind(this));
+  },
+  removeForm: function() {
+    if (!this._form) return;
+    this._form.remove();
+    this._form = null;
+    this._controls = { };
+  },
+  showSaving: function() {
+    this._oldInnerHTML = this.element.innerHTML;
+    this.element.innerHTML = this.options.savingText;
+    this.element.addClassName(this.options.savingClassName);
+    this.element.style.backgroundColor = this._originalBackground;
+    this.element.show();
+  },
+  triggerCallback: function(cbName, arg) {
+    if ('function' == typeof this.options[cbName]) {
+      this.options[cbName](this, arg);
+    }
+  },
+  unregisterListeners: function() {
+    $H(this._listeners).each(function(pair) {
+      if (!this.options.externalControlOnly)
+        this.element.stopObserving(pair.key, pair.value);
+      if (this.options.externalControl)
+        this.options.externalControl.stopObserving(pair.key, pair.value);
+    }.bind(this));
+  },
+  wrapUp: function(transport) {
+    this.leaveEditMode();
+    // Can't use triggerCallback due to backward compatibility: requires
+    // binding + direct element
+    this._boundComplete(transport, this.element);
+  }
+});
+
+Object.extend(Ajax.InPlaceEditor.prototype, {
+  dispose: Ajax.InPlaceEditor.prototype.destroy
+});
+
+Ajax.InPlaceCollectionEditor = Class.create(Ajax.InPlaceEditor, {
+  initialize: function($super, element, url, options) {
+    this._extraDefaultOptions = Ajax.InPlaceCollectionEditor.DefaultOptions;
+    $super(element, url, options);
+  },
+
+  createEditField: function() {
+    var list = document.createElement('select');
+    list.name = this.options.paramName;
+    list.size = 1;
+    this._controls.editor = list;
+    this._collection = this.options.collection || [];
+    if (this.options.loadCollectionURL)
+      this.loadCollection();
+    else
+      this.checkForExternalText();
+    this._form.appendChild(this._controls.editor);
+  },
+
+  loadCollection: function() {
+    this._form.addClassName(this.options.loadingClassName);
+    this.showLoadingText(this.options.loadingCollectionText);
+    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
+    Object.extend(options, {
+      parameters: 'editorId=' + encodeURIComponent(this.element.id),
+      onComplete: Prototype.emptyFunction,
+      onSuccess: function(transport) {
+        var js = transport.responseText.strip();
+        if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check
+          throw 'Server returned an invalid collection representation.';
+        this._collection = eval(js);
+        this.checkForExternalText();
+      }.bind(this),
+      onFailure: this.onFailure
+    });
+    new Ajax.Request(this.options.loadCollectionURL, options);
+  },
+
+  showLoadingText: function(text) {
+    this._controls.editor.disabled = true;
+    var tempOption = this._controls.editor.firstChild;
+    if (!tempOption) {
+      tempOption = document.createElement('option');
+      tempOption.value = '';
+      this._controls.editor.appendChild(tempOption);
+      tempOption.selected = true;
+    }
+    tempOption.update((text || '').stripScripts().stripTags());
+  },
+
+  checkForExternalText: function() {
+    this._text = this.getText();
+    if (this.options.loadTextURL)
+      this.loadExternalText();
+    else
+      this.buildOptionList();
+  },
+
+  loadExternalText: function() {
+    this.showLoadingText(this.options.loadingText);
+    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
+    Object.extend(options, {
+      parameters: 'editorId=' + encodeURIComponent(this.element.id),
+      onComplete: Prototype.emptyFunction,
+      onSuccess: function(transport) {
+        this._text = transport.responseText.strip();
+        this.buildOptionList();
+      }.bind(this),
+      onFailure: this.onFailure
+    });
+    new Ajax.Request(this.options.loadTextURL, options);
+  },
+
+  buildOptionList: function() {
+    this._form.removeClassName(this.options.loadingClassName);
+    this._collection = this._collection.map(function(entry) {
+      return 2 === entry.length ? entry : [entry, entry].flatten();
+    });
+    var marker = ('value' in this.options) ? this.options.value : this._text;
+    var textFound = this._collection.any(function(entry) {
+      return entry[0] == marker;
+    }.bind(this));
+    this._controls.editor.update('');
+    var option;
+    this._collection.each(function(entry, index) {
+      option = document.createElement('option');
+      option.value = entry[0];
+      option.selected = textFound ? entry[0] == marker : 0 == index;
+      option.appendChild(document.createTextNode(entry[1]));
+      this._controls.editor.appendChild(option);
+    }.bind(this));
+    this._controls.editor.disabled = false;
+    Field.scrollFreeActivate(this._controls.editor);
+  }
+});
+
+//**** DEPRECATION LAYER FOR InPlace[Collection]Editor! ****
+//**** This only  exists for a while,  in order to  let ****
+//**** users adapt to  the new API.  Read up on the new ****
+//**** API and convert your code to it ASAP!            ****
+
+Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions = function(options) {
+  if (!options) return;
+  function fallback(name, expr) {
+    if (name in options || expr === undefined) return;
+    options[name] = expr;
+  };
+  fallback('cancelControl', (options.cancelLink ? 'link' : (options.cancelButton ? 'button' :
+    options.cancelLink == options.cancelButton == false ? false : undefined)));
+  fallback('okControl', (options.okLink ? 'link' : (options.okButton ? 'button' :
+    options.okLink == options.okButton == false ? false : undefined)));
+  fallback('highlightColor', options.highlightcolor);
+  fallback('highlightEndColor', options.highlightendcolor);
+};
+
+Object.extend(Ajax.InPlaceEditor, {
+  DefaultOptions: {
+    ajaxOptions: { },
+    autoRows: 3,                                // Use when multi-line w/ rows == 1
+    cancelControl: 'link',                      // 'link'|'button'|false
+    cancelText: 'cancel',
+    clickToEditText: 'Click to edit',
+    externalControl: null,                      // id|elt
+    externalControlOnly: false,
+    fieldPostCreation: 'activate',              // 'activate'|'focus'|false
+    formClassName: 'inplaceeditor-form',
+    formId: null,                               // id|elt
+    highlightColor: '#ffff99',
+    highlightEndColor: '#ffffff',
+    hoverClassName: '',
+    htmlResponse: true,
+    loadingClassName: 'inplaceeditor-loading',
+    loadingText: 'Loading...',
+    okControl: 'button',                        // 'link'|'button'|false
+    okText: 'ok',
+    paramName: 'value',
+    rows: 1,                                    // If 1 and multi-line, uses autoRows
+    savingClassName: 'inplaceeditor-saving',
+    savingText: 'Saving...',
+    size: 0,
+    stripLoadedTextTags: false,
+    submitOnBlur: false,
+    textAfterControls: '',
+    textBeforeControls: '',
+    textBetweenControls: ''
+  },
+  DefaultCallbacks: {
+    callback: function(form) {
+      return Form.serialize(form);
+    },
+    onComplete: function(transport, element) {
+      // For backward compatibility, this one is bound to the IPE, and passes
+      // the element directly.  It was too often customized, so we don't break it.
+      new Effect.Highlight(element, {
+        startcolor: this.options.highlightColor, keepBackgroundImage: true });
+    },
+    onEnterEditMode: null,
+    onEnterHover: function(ipe) {
+      ipe.element.style.backgroundColor = ipe.options.highlightColor;
+      if (ipe._effect)
+        ipe._effect.cancel();
+    },
+    onFailure: function(transport, ipe) {
+      alert('Error communication with the server: ' + transport.responseText.stripTags());
+    },
+    onFormCustomization: null, // Takes the IPE and its generated form, after editor, before controls.
+    onLeaveEditMode: null,
+    onLeaveHover: function(ipe) {
+      ipe._effect = new Effect.Highlight(ipe.element, {
+        startcolor: ipe.options.highlightColor, endcolor: ipe.options.highlightEndColor,
+        restorecolor: ipe._originalBackground, keepBackgroundImage: true
+      });
+    }
+  },
+  Listeners: {
+    click: 'enterEditMode',
+    keydown: 'checkForEscapeOrReturn',
+    mouseover: 'enterHover',
+    mouseout: 'leaveHover'
+  }
+});
+
+Ajax.InPlaceCollectionEditor.DefaultOptions = {
+  loadingCollectionText: 'Loading options...'
+};
+
+// Delayed observer, like Form.Element.Observer, 
+// but waits for delay after last key input
+// Ideal for live-search fields
+
+Form.Element.DelayedObserver = Class.create({
+  initialize: function(element, delay, callback) {
+    this.delay     = delay || 0.5;
+    this.element   = $(element);
+    this.callback  = callback;
+    this.timer     = null;
+    this.lastValue = $F(this.element); 
+    Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this));
+  },
+  delayedListener: function(event) {
+    if(this.lastValue == $F(this.element)) return;
+    if(this.timer) clearTimeout(this.timer);
+    this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000);
+    this.lastValue = $F(this.element);
+  },
+  onTimerEvent: function() {
+    this.timer = null;
+    this.callback(this.element, $F(this.element));
+  }
+});
Index: ruby/trunk/public/javascripts/dragdrop.js
===================================================================
--- ruby/trunk/public/javascripts/dragdrop.js	(revision 291)
+++ ruby/trunk/public/javascripts/dragdrop.js	(revision 291)
@@ -0,0 +1,972 @@
+// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+//           (c) 2005-2007 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz)
+// 
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/
+
+if(Object.isUndefined(Effect))
+  throw("dragdrop.js requires including script.aculo.us' effects.js library");
+
+var Droppables = {
+  drops: [],
+
+  remove: function(element) {
+    this.drops = this.drops.reject(function(d) { return d.element==$(element) });
+  },
+
+  add: function(element) {
+    element = $(element);
+    var options = Object.extend({
+      greedy:     true,
+      hoverclass: null,
+      tree:       false
+    }, arguments[1] || { });
+
+    // cache containers
+    if(options.containment) {
+      options._containers = [];
+      var containment = options.containment;
+      if(Object.isArray(containment)) {
+        containment.each( function(c) { options._containers.push($(c)) });
+      } else {
+        options._containers.push($(containment));
+      }
+    }
+    
+    if(options.accept) options.accept = [options.accept].flatten();
+
+    Element.makePositioned(element); // fix IE
+    options.element = element;
+
+    this.drops.push(options);
+  },
+  
+  findDeepestChild: function(drops) {
+    deepest = drops[0];
+      
+    for (i = 1; i < drops.length; ++i)
+      if (Element.isParent(drops[i].element, deepest.element))
+        deepest = drops[i];
+    
+    return deepest;
+  },
+
+  isContained: function(element, drop) {
+    var containmentNode;
+    if(drop.tree) {
+      containmentNode = element.treeNode; 
+    } else {
+      containmentNode = element.parentNode;
+    }
+    return drop._containers.detect(function(c) { return containmentNode == c });
+  },
+  
+  isAffected: function(point, element, drop) {
+    return (
+      (drop.element!=element) &&
+      ((!drop._containers) ||
+        this.isContained(element, drop)) &&
+      ((!drop.accept) ||
+        (Element.classNames(element).detect( 
+          function(v) { return drop.accept.include(v) } ) )) &&
+      Position.within(drop.element, point[0], point[1]) );
+  },
+
+  deactivate: function(drop) {
+    if(drop.hoverclass)
+      Element.removeClassName(drop.element, drop.hoverclass);
+    this.last_active = null;
+  },
+
+  activate: function(drop) {
+    if(drop.hoverclass)
+      Element.addClassName(drop.element, drop.hoverclass);
+    this.last_active = drop;
+  },
+
+  show: function(point, element) {
+    if(!this.drops.length) return;
+    var drop, affected = [];
+    
+    this.drops.each( function(drop) {
+      if(Droppables.isAffected(point, element, drop))
+        affected.push(drop);
+    });
+        
+    if(affected.length>0)
+      drop = Droppables.findDeepestChild(affected);
+
+    if(this.last_active && this.last_active != drop) this.deactivate(this.last_active);
+    if (drop) {
+      Position.within(drop.element, point[0], point[1]);
+      if(drop.onHover)
+        drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element));
+      
+      if (drop != this.last_active) Droppables.activate(drop);
+    }
+  },
+
+  fire: function(event, element) {
+    if(!this.last_active) return;
+    Position.prepare();
+
+    if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active))
+      if (this.last_active.onDrop) {
+        this.last_active.onDrop(element, this.last_active.element, event); 
+        return true; 
+      }
+  },
+
+  reset: function() {
+    if(this.last_active)
+      this.deactivate(this.last_active);
+  }
+}
+
+var Draggables = {
+  drags: [],
+  observers: [],
+  
+  register: function(draggable) {
+    if(this.drags.length == 0) {
+      this.eventMouseUp   = this.endDrag.bindAsEventListener(this);
+      this.eventMouseMove = this.updateDrag.bindAsEventListener(this);
+      this.eventKeypress  = this.keyPress.bindAsEventListener(this);
+      
+      Event.observe(document, "mouseup", this.eventMouseUp);
+      Event.observe(document, "mousemove", this.eventMouseMove);
+      Event.observe(document, "keypress", this.eventKeypress);
+    }
+    this.drags.push(draggable);
+  },
+  
+  unregister: function(draggable) {
+    this.drags = this.drags.reject(function(d) { return d==draggable });
+    if(this.drags.length == 0) {
+      Event.stopObserving(document, "mouseup", this.eventMouseUp);
+      Event.stopObserving(document, "mousemove", this.eventMouseMove);
+      Event.stopObserving(document, "keypress", this.eventKeypress);
+    }
+  },
+  
+  activate: function(draggable) {
+    if(draggable.options.delay) { 
+      this._timeout = setTimeout(function() { 
+        Draggables._timeout = null; 
+        window.focus(); 
+        Draggables.activeDraggable = draggable; 
+      }.bind(this), draggable.options.delay); 
+    } else {
+      window.focus(); // allows keypress events if window isn't currently focused, fails for Safari
+      this.activeDraggable = draggable;
+    }
+  },
+  
+  deactivate: function() {
+    this.activeDraggable = null;
+  },
+  
+  updateDrag: function(event) {
+    if(!this.activeDraggable) return;
+    var pointer = [Event.pointerX(event), Event.pointerY(event)];
+    // Mozilla-based browsers fire successive mousemove events with
+    // the same coordinates, prevent needless redrawing (moz bug?)
+    if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return;
+    this._lastPointer = pointer;
+    
+    this.activeDraggable.updateDrag(event, pointer);
+  },
+  
+  endDrag: function(event) {
+    if(this._timeout) { 
+      clearTimeout(this._timeout); 
+      this._timeout = null; 
+    }
+    if(!this.activeDraggable) return;
+    this._lastPointer = null;
+    this.activeDraggable.endDrag(event);
+    this.activeDraggable = null;
+  },
+  
+  keyPress: function(event) {
+    if(this.activeDraggable)
+      this.activeDraggable.keyPress(event);
+  },
+  
+  addObserver: function(observer) {
+    this.observers.push(observer);
+    this._cacheObserverCallbacks();
+  },
+  
+  removeObserver: function(element) {  // element instead of observer fixes mem leaks
+    this.observers = this.observers.reject( function(o) { return o.element==element });
+    this._cacheObserverCallbacks();
+  },
+  
+  notify: function(eventName, draggable, event) {  // 'onStart', 'onEnd', 'onDrag'
+    if(this[eventName+'Count'] > 0)
+      this.observers.each( function(o) {
+        if(o[eventName]) o[eventName](eventName, draggable, event);
+      });
+    if(draggable.options[eventName]) draggable.options[eventName](draggable, event);
+  },
+  
+  _cacheObserverCallbacks: function() {
+    ['onStart','onEnd','onDrag'].each( function(eventName) {
+      Draggables[eventName+'Count'] = Draggables.observers.select(
+        function(o) { return o[eventName]; }
+      ).length;
+    });
+  }
+}
+
+/*--------------------------------------------------------------------------*/
+
+var Draggable = Class.create({
+  initialize: function(element) {
+    var defaults = {
+      handle: false,
+      reverteffect: function(element, top_offset, left_offset) {
+        var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;
+        new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur,
+          queue: {scope:'_draggable', position:'end'}
+        });
+      },
+      endeffect: function(element) {
+        var toOpacity = Object.isNumber(element._opacity) ? element._opacity : 1.0;
+        new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity, 
+          queue: {scope:'_draggable', position:'end'},
+          afterFinish: function(){ 
+            Draggable._dragging[element] = false 
+          }
+        }); 
+      },
+      zindex: 1000,
+      revert: false,
+      quiet: false,
+      scroll: false,
+      scrollSensitivity: 20,
+      scrollSpeed: 15,
+      snap: false,  // false, or xy or [x,y] or function(x,y){ return [x,y] }
+      delay: 0
+    };
+    
+    if(!arguments[1] || Object.isUndefined(arguments[1].endeffect))
+      Object.extend(defaults, {
+        starteffect: function(element) {
+          element._opacity = Element.getOpacity(element);
+          Draggable._dragging[element] = true;
+          new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7}); 
+        }
+      });
+    
+    var options = Object.extend(defaults, arguments[1] || { });
+
+    this.element = $(element);
+    
+    if(options.handle && Object.isString(options.handle))
+      this.handle = this.element.down('.'+options.handle, 0);
+    
+    if(!this.handle) this.handle = $(options.handle);
+    if(!this.handle) this.handle = this.element;
+    
+    if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) {
+      options.scroll = $(options.scroll);
+      this._isScrollChild = Element.childOf(this.element, options.scroll);
+    }
+
+    Element.makePositioned(this.element); // fix IE    
+
+    this.options  = options;
+    this.dragging = false;   
+
+    this.eventMouseDown = this.initDrag.bindAsEventListener(this);
+    Event.observe(this.handle, "mousedown", this.eventMouseDown);
+    
+    Draggables.register(this);
+  },
+  
+  destroy: function() {
+    Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);
+    Draggables.unregister(this);
+  },
+  
+  currentDelta: function() {
+    return([
+      parseInt(Element.getStyle(this.element,'left') || '0'),
+      parseInt(Element.getStyle(this.element,'top') || '0')]);
+  },
+  
+  initDrag: function(event) {
+    if(!Object.isUndefined(Draggable._dragging[this.element]) &&
+      Draggable._dragging[this.element]) return;
+    if(Event.isLeftClick(event)) {    
+      // abort on form elements, fixes a Firefox issue
+      var src = Event.element(event);
+      if((tag_name = src.tagName.toUpperCase()) && (
+        tag_name=='INPUT' ||
+        tag_name=='SELECT' ||
+        tag_name=='OPTION' ||
+        tag_name=='BUTTON' ||
+        tag_name=='TEXTAREA')) return;
+        
+      var pointer = [Event.pointerX(event), Event.pointerY(event)];
+      var pos     = Position.cumulativeOffset(this.element);
+      this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) });
+      
+      Draggables.activate(this);
+      Event.stop(event);
+    }
+  },
+  
+  startDrag: function(event) {
+    this.dragging = true;
+    if(!this.delta)
+      this.delta = this.currentDelta();
+    
+    if(this.options.zindex) {
+      this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0);
+      this.element.style.zIndex = this.options.zindex;
+    }
+    
+    if(this.options.ghosting) {
+      this._clone = this.element.cloneNode(true);
+      this.element._originallyAbsolute = (this.element.getStyle('position') == 'absolute');
+      if (!this.element._originallyAbsolute)
+        Position.absolutize(this.element);
+      this.element.parentNode.insertBefore(this._clone, this.element);
+    }
+    
+    if(this.options.scroll) {
+      if (this.options.scroll == window) {
+        var where = this._getWindowScroll(this.options.scroll);
+        this.originalScrollLeft = where.left;
+        this.originalScrollTop = where.top;
+      } else {
+        this.originalScrollLeft = this.options.scroll.scrollLeft;
+        this.originalScrollTop = this.options.scroll.scrollTop;
+      }
+    }
+    
+    Draggables.notify('onStart', this, event);
+        
+    if(this.options.starteffect) this.options.starteffect(this.element);
+  },
+  
+  updateDrag: function(event, pointer) {
+    if(!this.dragging) this.startDrag(event);
+    
+    if(!this.options.quiet){
+      Position.prepare();
+      Droppables.show(pointer, this.element);
+    }
+    
+    Draggables.notify('onDrag', this, event);
+    
+    this.draw(pointer);
+    if(this.options.change) this.options.change(this);
+    
+    if(this.options.scroll) {
+      this.stopScrolling();
+      
+      var p;
+      if (this.options.scroll == window) {
+        with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; }
+      } else {
+        p = Position.page(this.options.scroll);
+        p[0] += this.options.scroll.scrollLeft + Position.deltaX;
+        p[1] += this.options.scroll.scrollTop + Position.deltaY;
+        p.push(p[0]+this.options.scroll.offsetWidth);
+        p.push(p[1]+this.options.scroll.offsetHeight);
+      }
+      var speed = [0,0];
+      if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[0]+this.options.scrollSensitivity);
+      if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[1]+this.options.scrollSensitivity);
+      if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[2]-this.options.scrollSensitivity);
+      if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity);
+      this.startScrolling(speed);
+    }
+    
+    // fix AppleWebKit rendering
+    if(Prototype.Browser.WebKit) window.scrollBy(0,0);
+    
+    Event.stop(event);
+  },
+  
+  finishDrag: function(event, success) {
+    this.dragging = false;
+    
+    if(this.options.quiet){
+      Position.prepare();
+      var pointer = [Event.pointerX(event), Event.pointerY(event)];
+      Droppables.show(pointer, this.element);
+    }
+
+    if(this.options.ghosting) {
+      if (!this.element._originallyAbsolute)
+        Position.relativize(this.element);
+      delete this.element._originallyAbsolute;
+      Element.remove(this._clone);
+      this._clone = null;
+    }
+
+    var dropped = false; 
+    if(success) { 
+      dropped = Droppables.fire(event, this.element); 
+      if (!dropped) dropped = false; 
+    }
+    if(dropped && this.options.onDropped) this.options.onDropped(this.element);
+    Draggables.notify('onEnd', this, event);
+
+    var revert = this.options.revert;
+    if(revert && Object.isFunction(revert)) revert = revert(this.element);
+    
+    var d = this.currentDelta();
+    if(revert && this.options.reverteffect) {
+      if (dropped == 0 || revert != 'failure')
+        this.options.reverteffect(this.element,
+          d[1]-this.delta[1], d[0]-this.delta[0]);
+    } else {
+      this.delta = d;
+    }
+
+    if(this.options.zindex)
+      this.element.style.zIndex = this.originalZ;
+
+    if(this.options.endeffect) 
+      this.options.endeffect(this.element);
+      
+    Draggables.deactivate(this);
+    Droppables.reset();
+  },
+  
+  keyPress: function(event) {
+    if(event.keyCode!=Event.KEY_ESC) return;
+    this.finishDrag(event, false);
+    Event.stop(event);
+  },
+  
+  endDrag: function(event) {
+    if(!this.dragging) return;
+    this.stopScrolling();
+    this.finishDrag(event, true);
+    Event.stop(event);
+  },
+  
+  draw: function(point) {
+    var pos = Position.cumulativeOffset(this.element);
+    if(this.options.ghosting) {
+      var r   = Position.realOffset(this.element);
+      pos[0] += r[0] - Position.deltaX; pos[1] += r[1] - Position.deltaY;
+    }
+    
+    var d = this.currentDelta();
+    pos[0] -= d[0]; pos[1] -= d[1];
+    
+    if(this.options.scroll && (this.options.scroll != window && this._isScrollChild)) {
+      pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft;
+      pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop;
+    }
+    
+    var p = [0,1].map(function(i){ 
+      return (point[i]-pos[i]-this.offset[i]) 
+    }.bind(this));
+    
+    if(this.options.snap) {
+      if(Object.isFunction(this.options.snap)) {
+        p = this.options.snap(p[0],p[1],this);
+      } else {
+      if(Object.isArray(this.options.snap)) {
+        p = p.map( function(v, i) {
+          return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this))
+      } else {
+        p = p.map( function(v) {
+          return (v/this.options.snap).round()*this.options.snap }.bind(this))
+      }
+    }}
+    
+    var style = this.element.style;
+    if((!this.options.constraint) || (this.options.constraint=='horizontal'))
+      style.left = p[0] + "px";
+    if((!this.options.constraint) || (this.options.constraint=='vertical'))
+      style.top  = p[1] + "px";
+    
+    if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering
+  },
+  
+  stopScrolling: function() {
+    if(this.scrollInterval) {
+      clearInterval(this.scrollInterval);
+      this.scrollInterval = null;
+      Draggables._lastScrollPointer = null;
+    }
+  },
+  
+  startScrolling: function(speed) {
+    if(!(speed[0] || speed[1])) return;
+    this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];
+    this.lastScrolled = new Date();
+    this.scrollInterval = setInterval(this.scroll.bind(this), 10);
+  },
+  
+  scroll: function() {
+    var current = new Date();
+    var delta = current - this.lastScrolled;
+    this.lastScrolled = current;
+    if(this.options.scroll == window) {
+      with (this._getWindowScroll(this.options.scroll)) {
+        if (this.scrollSpeed[0] || this.scrollSpeed[1]) {
+          var d = delta / 1000;
+          this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] );
+        }
+      }
+    } else {
+      this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000;
+      this.options.scroll.scrollTop  += this.scrollSpeed[1] * delta / 1000;
+    }
+    
+    Position.prepare();
+    Droppables.show(Draggables._lastPointer, this.element);
+    Draggables.notify('onDrag', this);
+    if (this._isScrollChild) {
+      Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer);
+      Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000;
+      Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000;
+      if (Draggables._lastScrollPointer[0] < 0)
+        Draggables._lastScrollPointer[0] = 0;
+      if (Draggables._lastScrollPointer[1] < 0)
+        Draggables._lastScrollPointer[1] = 0;
+      this.draw(Draggables._lastScrollPointer);
+    }
+    
+    if(this.options.change) this.options.change(this);
+  },
+  
+  _getWindowScroll: function(w) {
+    var T, L, W, H;
+    with (w.document) {
+      if (w.document.documentElement && documentElement.scrollTop) {
+        T = documentElement.scrollTop;
+        L = documentElement.scrollLeft;
+      } else if (w.document.body) {
+        T = body.scrollTop;
+        L = body.scrollLeft;
+      }
+      if (w.innerWidth) {
+        W = w.innerWidth;
+        H = w.innerHeight;
+      } else if (w.document.documentElement && documentElement.clientWidth) {
+        W = documentElement.clientWidth;
+        H = documentElement.clientHeight;
+      } else {
+        W = body.offsetWidth;
+        H = body.offsetHeight
+      }
+    }
+    return { top: T, left: L, width: W, height: H };
+  }
+});
+
+Draggable._dragging = { };
+
+/*--------------------------------------------------------------------------*/
+
+var SortableObserver = Class.create({
+  initialize: function(element, observer) {
+    this.element   = $(element);
+    this.observer  = observer;
+    this.lastValue = Sortable.serialize(this.element);
+  },
+  
+  onStart: function() {
+    this.lastValue = Sortable.serialize(this.element);
+  },
+  
+  onEnd: function() {
+    Sortable.unmark();
+    if(this.lastValue != Sortable.serialize(this.element))
+      this.observer(this.element)
+  }
+});
+
+var Sortable = {
+  SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,
+  
+  sortables: { },
+  
+  _findRootElement: function(element) {
+    while (element.tagName.toUpperCase() != "BODY") {  
+      if(element.id && Sortable.sortables[element.id]) return element;
+      element = element.parentNode;
+    }
+  },
+
+  options: function(element) {
+    element = Sortable._findRootElement($(element));
+    if(!element) return;
+    return Sortable.sortables[element.id];
+  },
+  
+  destroy: function(element){
+    var s = Sortable.options(element);
+    
+    if(s) {
+      Draggables.removeObserver(s.element);
+      s.droppables.each(function(d){ Droppables.remove(d) });
+      s.draggables.invoke('destroy');
+      
+      delete Sortable.sortables[s.element.id];
+    }
+  },
+
+  create: function(element) {
+    element = $(element);
+    var options = Object.extend({ 
+      element:     element,
+      tag:         'li',       // assumes li children, override with tag: 'tagname'
+      dropOnEmpty: false,
+      tree:        false,
+      treeTag:     'ul',
+      overlap:     'vertical', // one of 'vertical', 'horizontal'
+      constraint:  'vertical', // one of 'vertical', 'horizontal', false
+      containment: element,    // also takes array of elements (or id's); or false
+      handle:      false,      // or a CSS class
+      only:        false,
+      delay:       0,
+      hoverclass:  null,
+      ghosting:    false,
+      quiet:       false, 
+      scroll:      false,
+      scrollSensitivity: 20,
+      scrollSpeed: 15,
+      format:      this.SERIALIZE_RULE,
+      
+      // these take arrays of elements or ids and can be 
+      // used for better initialization performance
+      elements:    false,
+      handles:     false,
+      
+      onChange:    Prototype.emptyFunction,
+      onUpdate:    Prototype.emptyFunction
+    }, arguments[1] || { });
+
+    // clear any old sortable with same element
+    this.destroy(element);
+
+    // build options for the draggables
+    var options_for_draggable = {
+      revert:      true,
+      quiet:       options.quiet,
+      scroll:      options.scroll,
+      scrollSpeed: options.scrollSpeed,
+      scrollSensitivity: options.scrollSensitivity,
+      delay:       options.delay,
+      ghosting:    options.ghosting,
+      constraint:  options.constraint,
+      handle:      options.handle };
+
+    if(options.starteffect)
+      options_for_draggable.starteffect = options.starteffect;
+
+    if(options.reverteffect)
+      options_for_draggable.reverteffect = options.reverteffect;
+    else
+      if(options.ghosting) options_for_draggable.reverteffect = function(element) {
+        element.style.top  = 0;
+        element.style.left = 0;
+      };
+
+    if(options.endeffect)
+      options_for_draggable.endeffect = options.endeffect;
+
+    if(options.zindex)
+      options_for_draggable.zindex = options.zindex;
+
+    // build options for the droppables  
+    var options_for_droppable = {
+      overlap:     options.overlap,
+      containment: options.containment,
+      tree:        options.tree,
+      hoverclass:  options.hoverclass,
+      onHover:     Sortable.onHover
+    }
+    
+    var options_for_tree = {
+      onHover:      Sortable.onEmptyHover,
+      overlap:      options.overlap,
+      containment:  options.containment,
+      hoverclass:   options.hoverclass
+    }
+
+    // fix for gecko engine
+    Element.cleanWhitespace(element); 
+
+    options.draggables = [];
+    options.droppables = [];
+
+    // drop on empty handling
+    if(options.dropOnEmpty || options.tree) {
+      Droppables.add(element, options_for_tree);
+      options.droppables.push(element);
+    }
+
+    (options.elements || this.findElements(element, options) || []).each( function(e,i) {
+      var handle = options.handles ? $(options.handles[i]) :
+        (options.handle ? $(e).select('.' + options.handle)[0] : e); 
+      options.draggables.push(
+        new Draggable(e, Object.extend(options_for_draggable, { handle: handle })));
+      Droppables.add(e, options_for_droppable);
+      if(options.tree) e.treeNode = element;
+      options.droppables.push(e);      
+    });
+    
+    if(options.tree) {
+      (Sortable.findTreeElements(element, options) || []).each( function(e) {
+        Droppables.add(e, options_for_tree);
+        e.treeNode = element;
+        options.droppables.push(e);
+      });
+    }
+
+    // keep reference
+    this.sortables[element.id] = options;
+
+    // for onupdate
+    Draggables.addObserver(new SortableObserver(element, options.onUpdate));
+
+  },
+
+  // return all suitable-for-sortable elements in a guaranteed order
+  findElements: function(element, options) {
+    return Element.findChildren(
+      element, options.only, options.tree ? true : false, options.tag);
+  },
+  
+  findTreeElements: function(element, options) {
+    return Element.findChildren(
+      element, options.only, options.tree ? true : false, options.treeTag);
+  },
+
+  onHover: function(element, dropon, overlap) {
+    if(Element.isParent(dropon, element)) return;
+
+    if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) {
+      return;
+    } else if(overlap>0.5) {
+      Sortable.mark(dropon, 'before');
+      if(dropon.previousSibling != element) {
+        var oldParentNode = element.parentNode;
+        element.style.visibility = "hidden"; // fix gecko rendering
+        dropon.parentNode.insertBefore(element, dropon);
+        if(dropon.parentNode!=oldParentNode) 
+          Sortable.options(oldParentNode).onChange(element);
+        Sortable.options(dropon.parentNode).onChange(element);
+      }
+    } else {
+      Sortable.mark(dropon, 'after');
+      var nextElement = dropon.nextSibling || null;
+      if(nextElement != element) {
+        var oldParentNode = element.parentNode;
+        element.style.visibility = "hidden"; // fix gecko rendering
+        dropon.parentNode.insertBefore(element, nextElement);
+        if(dropon.parentNode!=oldParentNode) 
+          Sortable.options(oldParentNode).onChange(element);
+        Sortable.options(dropon.parentNode).onChange(element);
+      }
+    }
+  },
+  
+  onEmptyHover: function(element, dropon, overlap) {
+    var oldParentNode = element.parentNode;
+    var droponOptions = Sortable.options(dropon);
+        
+    if(!Element.isParent(dropon, element)) {
+      var index;
+      
+      var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only});
+      var child = null;
+            
+      if(children) {
+        var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap);
+        
+        for (index = 0; index < children.length; index += 1) {
+          if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) {
+            offset -= Element.offsetSize (children[index], droponOptions.overlap);
+          } else if (offset - (Element.offsetSize (children[index], droponOptions.overlap) / 2) >= 0) {
+            child = index + 1 < children.length ? children[index + 1] : null;
+            break;
+          } else {
+            child = children[index];
+            break;
+          }
+        }
+      }
+      
+      dropon.insertBefore(element, child);
+      
+      Sortable.options(oldParentNode).onChange(element);
+      droponOptions.onChange(element);
+    }
+  },
+
+  unmark: function() {
+    if(Sortable._marker) Sortable._marker.hide();
+  },
+
+  mark: function(dropon, position) {
+    // mark on ghosting only
+    var sortable = Sortable.options(dropon.parentNode);
+    if(sortable && !sortable.ghosting) return; 
+
+    if(!Sortable._marker) {
+      Sortable._marker = 
+        ($('dropmarker') || Element.extend(document.createElement('DIV'))).
+          hide().addClassName('dropmarker').setStyle({position:'absolute'});
+      document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);
+    }    
+    var offsets = Position.cumulativeOffset(dropon);
+    Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + 'px'});
+    
+    if(position=='after')
+      if(sortable.overlap == 'horizontal') 
+        Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) + 'px'});
+      else
+        Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) + 'px'});
+    
+    Sortable._marker.show();
+  },
+  
+  _tree: function(element, options, parent) {
+    var children = Sortable.findElements(element, options) || [];
+  
+    for (var i = 0; i < children.length; ++i) {
+      var match = children[i].id.match(options.format);
+
+      if (!match) continue;
+      
+      var child = {
+        id: encodeURIComponent(match ? match[1] : null),
+        element: element,
+        parent: parent,
+        children: [],
+        position: parent.children.length,
+        container: $(children[i]).down(options.treeTag)
+      }
+      
+      /* Get the element containing the children and recurse over it */
+      if (child.container)
+        this._tree(child.container, options, child)
+      
+      parent.children.push (child);
+    }
+
+    return parent; 
+  },
+
+  tree: function(element) {
+    element = $(element);
+    var sortableOptions = this.options(element);
+    var options = Object.extend({
+      tag: sortableOptions.tag,
+      treeTag: sortableOptions.treeTag,
+      only: sortableOptions.only,
+      name: element.id,
+      format: sortableOptions.format
+    }, arguments[1] || { });
+    
+    var root = {
+      id: null,
+      parent: null,
+      children: [],
+      container: element,
+      position: 0
+    }
+    
+    return Sortable._tree(element, options, root);
+  },
+
+  /* Construct a [i] index for a particular node */
+  _constructIndex: function(node) {
+    var index = '';
+    do {
+      if (node.id) index = '[' + node.position + ']' + index;
+    } while ((node = node.parent) != null);
+    return index;
+  },
+
+  sequence: function(element) {
+    element = $(element);
+    var options = Object.extend(this.options(element), arguments[1] || { });
+    
+    return $(this.findElements(element, options) || []).map( function(item) {
+      return item.id.match(options.format) ? item.id.match(options.format)[1] : '';
+    });
+  },
+
+  setSequence: function(element, new_sequence) {
+    element = $(element);
+    var options = Object.extend(this.options(element), arguments[2] || { });
+    
+    var nodeMap = { };
+    this.findElements(element, options).each( function(n) {
+        if (n.id.match(options.format))
+            nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode];
+        n.parentNode.removeChild(n);
+    });
+   
+    new_sequence.each(function(ident) {
+      var n = nodeMap[ident];
+      if (n) {
+        n[1].appendChild(n[0]);
+        delete nodeMap[ident];
+      }
+    });
+  },
+  
+  serialize: function(element) {
+    element = $(element);
+    var options = Object.extend(Sortable.options(element), arguments[1] || { });
+    var name = encodeURIComponent(
+      (arguments[1] && arguments[1].name) ? arguments[1].name : element.id);
+    
+    if (options.tree) {
+      return Sortable.tree(element, arguments[1]).children.map( function (item) {
+        return [name + Sortable._constructIndex(item) + "[id]=" + 
+                encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));
+      }).flatten().join('&');
+    } else {
+      return Sortable.sequence(element, arguments[1]).map( function(item) {
+        return name + "[]=" + encodeURIComponent(item);
+      }).join('&');
+    }
+  }
+}
+
+// Returns true if child is contained within element
+Element.isParent = function(child, element) {
+  if (!child.parentNode || child == element) return false;
+  if (child.parentNode == element) return true;
+  return Element.isParent(child.parentNode, element);
+}
+
+Element.findChildren = function(element, only, recursive, tagName) {   
+  if(!element.hasChildNodes()) return null;
+  tagName = tagName.toUpperCase();
+  if(only) only = [only].flatten();
+  var elements = [];
+  $A(element.childNodes).each( function(e) {
+    if(e.tagName && e.tagName.toUpperCase()==tagName &&
+      (!only || (Element.classNames(e).detect(function(v) { return only.include(v) }))))
+        elements.push(e);
+    if(recursive) {
+      var grandchildren = Element.findChildren(e, only, recursive, tagName);
+      if(grandchildren) elements.push(grandchildren);
+    }
+  });
+
+  return (elements.length>0 ? elements.flatten() : []);
+}
+
+Element.offsetSize = function (element, type) {
+  return element['offset' + ((type=='vertical' || type=='height') ? 'Height' : 'Width')];
+}
Index: ruby/trunk/public/javascripts/effects.js
===================================================================
--- ruby/trunk/public/javascripts/effects.js	(revision 291)
+++ ruby/trunk/public/javascripts/effects.js	(revision 291)
@@ -0,0 +1,1120 @@
+// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+// Contributors:
+//  Justin Palmer (http://encytemedia.com/)
+//  Mark Pilgrim (http://diveintomark.org/)
+//  Martin Bialasinki
+// 
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/ 
+
+// converts rgb() and #xxx to #xxxxxx format,  
+// returns self (or first argument) if not convertable  
+String.prototype.parseColor = function() {  
+  var color = '#';
+  if (this.slice(0,4) == 'rgb(') {  
+    var cols = this.slice(4,this.length-1).split(',');  
+    var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3);  
+  } else {  
+    if (this.slice(0,1) == '#') {  
+      if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase();  
+      if (this.length==7) color = this.toLowerCase();  
+    }  
+  }  
+  return (color.length==7 ? color : (arguments[0] || this));  
+};
+
+/*--------------------------------------------------------------------------*/
+
+Element.collectTextNodes = function(element) {  
+  return $A($(element).childNodes).collect( function(node) {
+    return (node.nodeType==3 ? node.nodeValue : 
+      (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));
+  }).flatten().join('');
+};
+
+Element.collectTextNodesIgnoreClass = function(element, className) {  
+  return $A($(element).childNodes).collect( function(node) {
+    return (node.nodeType==3 ? node.nodeValue : 
+      ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? 
+        Element.collectTextNodesIgnoreClass(node, className) : ''));
+  }).flatten().join('');
+};
+
+Element.setContentZoom = function(element, percent) {
+  element = $(element);  
+  element.setStyle({fontSize: (percent/100) + 'em'});   
+  if (Prototype.Browser.WebKit) window.scrollBy(0,0);
+  return element;
+};
+
+Element.getInlineOpacity = function(element){
+  return $(element).style.opacity || '';
+};
+
+Element.forceRerendering = function(element) {
+  try {
+    element = $(element);
+    var n = document.createTextNode(' ');
+    element.appendChild(n);
+    element.removeChild(n);
+  } catch(e) { }
+};
+
+/*--------------------------------------------------------------------------*/
+
+var Effect = {
+  _elementDoesNotExistError: {
+    name: 'ElementDoesNotExistError',
+    message: 'The specified DOM element does not exist, but is required for this effect to operate'
+  },
+  Transitions: {
+    linear: Prototype.K,
+    sinoidal: function(pos) {
+      return (-Math.cos(pos*Math.PI)/2) + 0.5;
+    },
+    reverse: function(pos) {
+      return 1-pos;
+    },
+    flicker: function(pos) {
+      var pos = ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4;
+      return pos > 1 ? 1 : pos;
+    },
+    wobble: function(pos) {
+      return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;
+    },
+    pulse: function(pos, pulses) { 
+      pulses = pulses || 5; 
+      return (
+        ((pos % (1/pulses)) * pulses).round() == 0 ? 
+              ((pos * pulses * 2) - (pos * pulses * 2).floor()) : 
+          1 - ((pos * pulses * 2) - (pos * pulses * 2).floor())
+        );
+    },
+    spring: function(pos) { 
+      return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6)); 
+    },
+    none: function(pos) {
+      return 0;
+    },
+    full: function(pos) {
+      return 1;
+    }
+  },
+  DefaultOptions: {
+    duration:   1.0,   // seconds
+    fps:        100,   // 100= assume 66fps max.
+    sync:       false, // true for combining
+    from:       0.0,
+    to:         1.0,
+    delay:      0.0,
+    queue:      'parallel'
+  },
+  tagifyText: function(element) {
+    var tagifyStyle = 'position:relative';
+    if (Prototype.Browser.IE) tagifyStyle += ';zoom:1';
+    
+    element = $(element);
+    $A(element.childNodes).each( function(child) {
+      if (child.nodeType==3) {
+        child.nodeValue.toArray().each( function(character) {
+          element.insertBefore(
+            new Element('span', {style: tagifyStyle}).update(
+              character == ' ' ? String.fromCharCode(160) : character), 
+              child);
+        });
+        Element.remove(child);
+      }
+    });
+  },
+  multiple: function(element, effect) {
+    var elements;
+    if (((typeof element == 'object') || 
+        Object.isFunction(element)) && 
+       (element.length))
+      elements = element;
+    else
+      elements = $(element).childNodes;
+      
+    var options = Object.extend({
+      speed: 0.1,
+      delay: 0.0
+    }, arguments[2] || { });
+    var masterDelay = options.delay;
+
+    $A(elements).each( function(element, index) {
+      new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay }));
+    });
+  },
+  PAIRS: {
+    'slide':  ['SlideDown','SlideUp'],
+    'blind':  ['BlindDown','BlindUp'],
+    'appear': ['Appear','Fade']
+  },
+  toggle: function(element, effect) {
+    element = $(element);
+    effect = (effect || 'appear').toLowerCase();
+    var options = Object.extend({
+      queue: { position:'end', scope:(element.id || 'global'), limit: 1 }
+    }, arguments[2] || { });
+    Effect[element.visible() ? 
+      Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options);
+  }
+};
+
+Effect.DefaultOptions.transition = Effect.Transitions.sinoidal;
+
+/* ------------- core effects ------------- */
+
+Effect.ScopedQueue = Class.create(Enumerable, {
+  initialize: function() {
+    this.effects  = [];
+    this.interval = null;    
+  },
+  _each: function(iterator) {
+    this.effects._each(iterator);
+  },
+  add: function(effect) {
+    var timestamp = new Date().getTime();
+    
+    var position = Object.isString(effect.options.queue) ? 
+      effect.options.queue : effect.options.queue.position;
+    
+    switch(position) {
+      case 'front':
+        // move unstarted effects after this effect  
+        this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) {
+            e.startOn  += effect.finishOn;
+            e.finishOn += effect.finishOn;
+          });
+        break;
+      case 'with-last':
+        timestamp = this.effects.pluck('startOn').max() || timestamp;
+        break;
+      case 'end':
+        // start effect after last queued effect has finished
+        timestamp = this.effects.pluck('finishOn').max() || timestamp;
+        break;
+    }
+    
+    effect.startOn  += timestamp;
+    effect.finishOn += timestamp;
+
+    if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit))
+      this.effects.push(effect);
+    
+    if (!this.interval)
+      this.interval = setInterval(this.loop.bind(this), 15);
+  },
+  remove: function(effect) {
+    this.effects = this.effects.reject(function(e) { return e==effect });
+    if (this.effects.length == 0) {
+      clearInterval(this.interval);
+      this.interval = null;
+    }
+  },
+  loop: function() {
+    var timePos = new Date().getTime();
+    for(var i=0, len=this.effects.length;i<len;i++) 
+      this.effects[i] && this.effects[i].loop(timePos);
+  }
+});
+
+Effect.Queues = {
+  instances: $H(),
+  get: function(queueName) {
+    if (!Object.isString(queueName)) return queueName;
+    
+    return this.instances.get(queueName) ||
+      this.instances.set(queueName, new Effect.ScopedQueue());
+  }
+};
+Effect.Queue = Effect.Queues.get('global');
+
+Effect.Base = Class.create({
+  position: null,
+  start: function(options) {
+    function codeForEvent(options,eventName){
+      return (
+        (options[eventName+'Internal'] ? 'this.options.'+eventName+'Internal(this);' : '') +
+        (options[eventName] ? 'this.options.'+eventName+'(this);' : '')
+      );
+    }
+    if (options && options.transition === false) options.transition = Effect.Transitions.linear;
+    this.options      = Object.extend(Object.extend({ },Effect.DefaultOptions), options || { });
+    this.currentFrame = 0;
+    this.state        = 'idle';
+    this.startOn      = this.options.delay*1000;
+    this.finishOn     = this.startOn+(this.options.duration*1000);
+    this.fromToDelta  = this.options.to-this.options.from;
+    this.totalTime    = this.finishOn-this.startOn;
+    this.totalFrames  = this.options.fps*this.options.duration;
+    
+    eval('this.render = function(pos){ '+
+      'if (this.state=="idle"){this.state="running";'+
+      codeForEvent(this.options,'beforeSetup')+
+      (this.setup ? 'this.setup();':'')+ 
+      codeForEvent(this.options,'afterSetup')+
+      '};if (this.state=="running"){'+
+      'pos=this.options.transition(pos)*'+this.fromToDelta+'+'+this.options.from+';'+
+      'this.position=pos;'+
+      codeForEvent(this.options,'beforeUpdate')+
+      (this.update ? 'this.update(pos);':'')+
+      codeForEvent(this.options,'afterUpdate')+
+      '}}');
+    
+    this.event('beforeStart');
+    if (!this.options.sync)
+      Effect.Queues.get(Object.isString(this.options.queue) ? 
+        'global' : this.options.queue.scope).add(this);
+  },
+  loop: function(timePos) {
+    if (timePos >= this.startOn) {
+      if (timePos >= this.finishOn) {
+        this.render(1.0);
+        this.cancel();
+        this.event('beforeFinish');
+        if (this.finish) this.finish(); 
+        this.event('afterFinish');
+        return;  
+      }
+      var pos   = (timePos - this.startOn) / this.totalTime,
+          frame = (pos * this.totalFrames).round();
+      if (frame > this.currentFrame) {
+        this.render(pos);
+        this.currentFrame = frame;
+      }
+    }
+  },
+  cancel: function() {
+    if (!this.options.sync)
+      Effect.Queues.get(Object.isString(this.options.queue) ? 
+        'global' : this.options.queue.scope).remove(this);
+    this.state = 'finished';
+  },
+  event: function(eventName) {
+    if (this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this);
+    if (this.options[eventName]) this.options[eventName](this);
+  },
+  inspect: function() {
+    var data = $H();
+    for(property in this)
+      if (!Object.isFunction(this[property])) data.set(property, this[property]);
+    return '#<Effect:' + data.inspect() + ',options:' + $H(this.options).inspect() + '>';
+  }
+});
+
+Effect.Parallel = Class.create(Effect.Base, {
+  initialize: function(effects) {
+    this.effects = effects || [];
+    this.start(arguments[1]);
+  },
+  update: function(position) {
+    this.effects.invoke('render', position);
+  },
+  finish: function(position) {
+    this.effects.each( function(effect) {
+      effect.render(1.0);
+      effect.cancel();
+      effect.event('beforeFinish');
+      if (effect.finish) effect.finish(position);
+      effect.event('afterFinish');
+    });
+  }
+});
+
+Effect.Tween = Class.create(Effect.Base, {
+  initialize: function(object, from, to) {
+    object = Object.isString(object) ? $(object) : object;
+    var args = $A(arguments), method = args.last(), 
+      options = args.length == 5 ? args[3] : null;
+    this.method = Object.isFunction(method) ? method.bind(object) :
+      Object.isFunction(object[method]) ? object[method].bind(object) : 
+      function(value) { object[method] = value };
+    this.start(Object.extend({ from: from, to: to }, options || { }));
+  },
+  update: function(position) {
+    this.method(position);
+  }
+});
+
+Effect.Event = Class.create(Effect.Base, {
+  initialize: function() {
+    this.start(Object.extend({ duration: 0 }, arguments[0] || { }));
+  },
+  update: Prototype.emptyFunction
+});
+
+Effect.Opacity = Class.create(Effect.Base, {
+  initialize: function(element) {
+    this.element = $(element);
+    if (!this.element) throw(Effect._elementDoesNotExistError);
+    // make this work on IE on elements without 'layout'
+    if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))
+      this.element.setStyle({zoom: 1});
+    var options = Object.extend({
+      from: this.element.getOpacity() || 0.0,
+      to:   1.0
+    }, arguments[1] || { });
+    this.start(options);
+  },
+  update: function(position) {
+    this.element.setOpacity(position);
+  }
+});
+
+Effect.Move = Class.create(Effect.Base, {
+  initialize: function(element) {
+    this.element = $(element);
+    if (!this.element) throw(Effect._elementDoesNotExistError);
+    var options = Object.extend({
+      x:    0,
+      y:    0,
+      mode: 'relative'
+    }, arguments[1] || { });
+    this.start(options);
+  },
+  setup: function() {
+    this.element.makePositioned();
+    this.originalLeft = parseFloat(this.element.getStyle('left') || '0');
+    this.originalTop  = parseFloat(this.element.getStyle('top')  || '0');
+    if (this.options.mode == 'absolute') {
+      this.options.x = this.options.x - this.originalLeft;
+      this.options.y = this.options.y - this.originalTop;
+    }
+  },
+  update: function(position) {
+    this.element.setStyle({
+      left: (this.options.x  * position + this.originalLeft).round() + 'px',
+      top:  (this.options.y  * position + this.originalTop).round()  + 'px'
+    });
+  }
+});
+
+// for backwards compatibility
+Effect.MoveBy = function(element, toTop, toLeft) {
+  return new Effect.Move(element, 
+    Object.extend({ x: toLeft, y: toTop }, arguments[3] || { }));
+};
+
+Effect.Scale = Class.create(Effect.Base, {
+  initialize: function(element, percent) {
+    this.element = $(element);
+    if (!this.element) throw(Effect._elementDoesNotExistError);
+    var options = Object.extend({
+      scaleX: true,
+      scaleY: true,
+      scaleContent: true,
+      scaleFromCenter: false,
+      scaleMode: 'box',        // 'box' or 'contents' or { } with provided values
+      scaleFrom: 100.0,
+      scaleTo:   percent
+    }, arguments[2] || { });
+    this.start(options);
+  },
+  setup: function() {
+    this.restoreAfterFinish = this.options.restoreAfterFinish || false;
+    this.elementPositioning = this.element.getStyle('position');
+    
+    this.originalStyle = { };
+    ['top','left','width','height','fontSize'].each( function(k) {
+      this.originalStyle[k] = this.element.style[k];
+    }.bind(this));
+      
+    this.originalTop  = this.element.offsetTop;
+    this.originalLeft = this.element.offsetLeft;
+    
+    var fontSize = this.element.getStyle('font-size') || '100%';
+    ['em','px','%','pt'].each( function(fontSizeType) {
+      if (fontSize.indexOf(fontSizeType)>0) {
+        this.fontSize     = parseFloat(fontSize);
+        this.fontSizeType = fontSizeType;
+      }
+    }.bind(this));
+    
+    this.factor = (this.options.scaleTo - this.options.scaleFrom)/100;
+    
+    this.dims = null;
+    if (this.options.scaleMode=='box')
+      this.dims = [this.element.offsetHeight, this.element.offsetWidth];
+    if (/^content/.test(this.options.scaleMode))
+      this.dims = [this.element.scrollHeight, this.element.scrollWidth];
+    if (!this.dims)
+      this.dims = [this.options.scaleMode.originalHeight,
+                   this.options.scaleMode.originalWidth];
+  },
+  update: function(position) {
+    var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position);
+    if (this.options.scaleContent && this.fontSize)
+      this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType });
+    this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale);
+  },
+  finish: function(position) {
+    if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle);
+  },
+  setDimensions: function(height, width) {
+    var d = { };
+    if (this.options.scaleX) d.width = width.round() + 'px';
+    if (this.options.scaleY) d.height = height.round() + 'px';
+    if (this.options.scaleFromCenter) {
+      var topd  = (height - this.dims[0])/2;
+      var leftd = (width  - this.dims[1])/2;
+      if (this.elementPositioning == 'absolute') {
+        if (this.options.scaleY) d.top = this.originalTop-topd + 'px';
+        if (this.options.scaleX) d.left = this.originalLeft-leftd + 'px';
+      } else {
+        if (this.options.scaleY) d.top = -topd + 'px';
+        if (this.options.scaleX) d.left = -leftd + 'px';
+      }
+    }
+    this.element.setStyle(d);
+  }
+});
+
+Effect.Highlight = Class.create(Effect.Base, {
+  initialize: function(element) {
+    this.element = $(element);
+    if (!this.element) throw(Effect._elementDoesNotExistError);
+    var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { });
+    this.start(options);
+  },
+  setup: function() {
+    // Prevent executing on elements not in the layout flow
+    if (this.element.getStyle('display')=='none') { this.cancel(); return; }
+    // Disable background image during the effect
+    this.oldStyle = { };
+    if (!this.options.keepBackgroundImage) {
+      this.oldStyle.backgroundImage = this.element.getStyle('background-image');
+      this.element.setStyle({backgroundImage: 'none'});
+    }
+    if (!this.options.endcolor)
+      this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff');
+    if (!this.options.restorecolor)
+      this.options.restorecolor = this.element.getStyle('background-color');
+    // init color calculations
+    this._base  = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));
+    this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this));
+  },
+  update: function(position) {
+    this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){
+      return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) });
+  },
+  finish: function() {
+    this.element.setStyle(Object.extend(this.oldStyle, {
+      backgroundColor: this.options.restorecolor
+    }));
+  }
+});
+
+Effect.ScrollTo = function(element) {
+  var options = arguments[1] || { },
+    scrollOffsets = document.viewport.getScrollOffsets(),
+    elementOffsets = $(element).cumulativeOffset(),
+    max = (window.height || document.body.scrollHeight) - document.viewport.getHeight();  
+
+  if (options.offset) elementOffsets[1] += options.offset;
+
+  return new Effect.Tween(null,
+    scrollOffsets.top,
+    elementOffsets[1] > max ? max : elementOffsets[1],
+    options,
+    function(p){ scrollTo(scrollOffsets.left, p.round()) }
+  );
+};
+
+/* ------------- combination effects ------------- */
+
+Effect.Fade = function(element) {
+  element = $(element);
+  var oldOpacity = element.getInlineOpacity();
+  var options = Object.extend({
+    from: element.getOpacity() || 1.0,
+    to:   0.0,
+    afterFinishInternal: function(effect) { 
+      if (effect.options.to!=0) return;
+      effect.element.hide().setStyle({opacity: oldOpacity}); 
+    }
+  }, arguments[1] || { });
+  return new Effect.Opacity(element,options);
+};
+
+Effect.Appear = function(element) {
+  element = $(element);
+  var options = Object.extend({
+  from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0),
+  to:   1.0,
+  // force Safari to render floated elements properly
+  afterFinishInternal: function(effect) {
+    effect.element.forceRerendering();
+  },
+  beforeSetup: function(effect) {
+    effect.element.setOpacity(effect.options.from).show(); 
+  }}, arguments[1] || { });
+  return new Effect.Opacity(element,options);
+};
+
+Effect.Puff = function(element) {
+  element = $(element);
+  var oldStyle = { 
+    opacity: element.getInlineOpacity(), 
+    position: element.getStyle('position'),
+    top:  element.style.top,
+    left: element.style.left,
+    width: element.style.width,
+    height: element.style.height
+  };
+  return new Effect.Parallel(
+   [ new Effect.Scale(element, 200, 
+      { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), 
+     new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], 
+     Object.extend({ duration: 1.0, 
+      beforeSetupInternal: function(effect) {
+        Position.absolutize(effect.effects[0].element)
+      },
+      afterFinishInternal: function(effect) {
+         effect.effects[0].element.hide().setStyle(oldStyle); }
+     }, arguments[1] || { })
+   );
+};
+
+Effect.BlindUp = function(element) {
+  element = $(element);
+  element.makeClipping();
+  return new Effect.Scale(element, 0,
+    Object.extend({ scaleContent: false, 
+      scaleX: false, 
+      restoreAfterFinish: true,
+      afterFinishInternal: function(effect) {
+        effect.element.hide().undoClipping();
+      } 
+    }, arguments[1] || { })
+  );
+};
+
+Effect.BlindDown = function(element) {
+  element = $(element);
+  var elementDimensions = element.getDimensions();
+  return new Effect.Scale(element, 100, Object.extend({ 
+    scaleContent: false, 
+    scaleX: false,
+    scaleFrom: 0,
+    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
+    restoreAfterFinish: true,
+    afterSetup: function(effect) {
+      effect.element.makeClipping().setStyle({height: '0px'}).show(); 
+    },  
+    afterFinishInternal: function(effect) {
+      effect.element.undoClipping();
+    }
+  }, arguments[1] || { }));
+};
+
+Effect.SwitchOff = function(element) {
+  element = $(element);
+  var oldOpacity = element.getInlineOpacity();
+  return new Effect.Appear(element, Object.extend({
+    duration: 0.4,
+    from: 0,
+    transition: Effect.Transitions.flicker,
+    afterFinishInternal: function(effect) {
+      new Effect.Scale(effect.element, 1, { 
+        duration: 0.3, scaleFromCenter: true,
+        scaleX: false, scaleContent: false, restoreAfterFinish: true,
+        beforeSetup: function(effect) { 
+          effect.element.makePositioned().makeClipping();
+        },
+        afterFinishInternal: function(effect) {
+          effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity});
+        }
+      })
+    }
+  }, arguments[1] || { }));
+};
+
+Effect.DropOut = function(element) {
+  element = $(element);
+  var oldStyle = {
+    top: element.getStyle('top'),
+    left: element.getStyle('left'),
+    opacity: element.getInlineOpacity() };
+  return new Effect.Parallel(
+    [ new Effect.Move(element, {x: 0, y: 100, sync: true }), 
+      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],
+    Object.extend(
+      { duration: 0.5,
+        beforeSetup: function(effect) {
+          effect.effects[0].element.makePositioned(); 
+        },
+        afterFinishInternal: function(effect) {
+          effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);
+        } 
+      }, arguments[1] || { }));
+};
+
+Effect.Shake = function(element) {
+  element = $(element);
+  var options = Object.extend({
+    distance: 20,
+    duration: 0.5
+  }, arguments[1] || {});
+  var distance = parseFloat(options.distance);
+  var split = parseFloat(options.duration) / 10.0;
+  var oldStyle = {
+    top: element.getStyle('top'),
+    left: element.getStyle('left') };
+    return new Effect.Move(element,
+      { x:  distance, y: 0, duration: split, afterFinishInternal: function(effect) {
+    new Effect.Move(effect.element,
+      { x: -distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
+    new Effect.Move(effect.element,
+      { x:  distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
+    new Effect.Move(effect.element,
+      { x: -distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
+    new Effect.Move(effect.element,
+      { x:  distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
+    new Effect.Move(effect.element,
+      { x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) {
+        effect.element.undoPositioned().setStyle(oldStyle);
+  }}) }}) }}) }}) }}) }});
+};
+
+Effect.SlideDown = function(element) {
+  element = $(element).cleanWhitespace();
+  // SlideDown need to have the content of the element wrapped in a container element with fixed height!
+  var oldInnerBottom = element.down().getStyle('bottom');
+  var elementDimensions = element.getDimensions();
+  return new Effect.Scale(element, 100, Object.extend({ 
+    scaleContent: false, 
+    scaleX: false, 
+    scaleFrom: window.opera ? 0 : 1,
+    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
+    restoreAfterFinish: true,
+    afterSetup: function(effect) {
+      effect.element.makePositioned();
+      effect.element.down().makePositioned();
+      if (window.opera) effect.element.setStyle({top: ''});
+      effect.element.makeClipping().setStyle({height: '0px'}).show(); 
+    },
+    afterUpdateInternal: function(effect) {
+      effect.element.down().setStyle({bottom:
+        (effect.dims[0] - effect.element.clientHeight) + 'px' }); 
+    },
+    afterFinishInternal: function(effect) {
+      effect.element.undoClipping().undoPositioned();
+      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); }
+    }, arguments[1] || { })
+  );
+};
+
+Effect.SlideUp = function(element) {
+  element = $(element).cleanWhitespace();
+  var oldInnerBottom = element.down().getStyle('bottom');
+  var elementDimensions = element.getDimensions();
+  return new Effect.Scale(element, window.opera ? 0 : 1,
+   Object.extend({ scaleContent: false, 
+    scaleX: false, 
+    scaleMode: 'box',
+    scaleFrom: 100,
+    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
+    restoreAfterFinish: true,
+    afterSetup: function(effect) {
+      effect.element.makePositioned();
+      effect.element.down().makePositioned();
+      if (window.opera) effect.element.setStyle({top: ''});
+      effect.element.makeClipping().show();
+    },  
+    afterUpdateInternal: function(effect) {
+      effect.element.down().setStyle({bottom:
+        (effect.dims[0] - effect.element.clientHeight) + 'px' });
+    },
+    afterFinishInternal: function(effect) {
+      effect.element.hide().undoClipping().undoPositioned();
+      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom});
+    }
+   }, arguments[1] || { })
+  );
+};
+
+// Bug in opera makes the TD containing this element expand for a instance after finish 
+Effect.Squish = function(element) {
+  return new Effect.Scale(element, window.opera ? 1 : 0, { 
+    restoreAfterFinish: true,
+    beforeSetup: function(effect) {
+      effect.element.makeClipping(); 
+    },  
+    afterFinishInternal: function(effect) {
+      effect.element.hide().undoClipping(); 
+    }
+  });
+};
+
+Effect.Grow = function(element) {
+  element = $(element);
+  var options = Object.extend({
+    direction: 'center',
+    moveTransition: Effect.Transitions.sinoidal,
+    scaleTransition: Effect.Transitions.sinoidal,
+    opacityTransition: Effect.Transitions.full
+  }, arguments[1] || { });
+  var oldStyle = {
+    top: element.style.top,
+    left: element.style.left,
+    height: element.style.height,
+    width: element.style.width,
+    opacity: element.getInlineOpacity() };
+
+  var dims = element.getDimensions();    
+  var initialMoveX, initialMoveY;
+  var moveX, moveY;
+  
+  switch (options.direction) {
+    case 'top-left':
+      initialMoveX = initialMoveY = moveX = moveY = 0; 
+      break;
+    case 'top-right':
+      initialMoveX = dims.width;
+      initialMoveY = moveY = 0;
+      moveX = -dims.width;
+      break;
+    case 'bottom-left':
+      initialMoveX = moveX = 0;
+      initialMoveY = dims.height;
+      moveY = -dims.height;
+      break;
+    case 'bottom-right':
+      initialMoveX = dims.width;
+      initialMoveY = dims.height;
+      moveX = -dims.width;
+      moveY = -dims.height;
+      break;
+    case 'center':
+      initialMoveX = dims.width / 2;
+      initialMoveY = dims.height / 2;
+      moveX = -dims.width / 2;
+      moveY = -dims.height / 2;
+      break;
+  }
+  
+  return new Effect.Move(element, {
+    x: initialMoveX,
+    y: initialMoveY,
+    duration: 0.01, 
+    beforeSetup: function(effect) {
+      effect.element.hide().makeClipping().makePositioned();
+    },
+    afterFinishInternal: function(effect) {
+      new Effect.Parallel(
+        [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }),
+          new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }),
+          new Effect.Scale(effect.element, 100, {
+            scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, 
+            sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true})
+        ], Object.extend({
+             beforeSetup: function(effect) {
+               effect.effects[0].element.setStyle({height: '0px'}).show(); 
+             },
+             afterFinishInternal: function(effect) {
+               effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); 
+             }
+           }, options)
+      )
+    }
+  });
+};
+
+Effect.Shrink = function(element) {
+  element = $(element);
+  var options = Object.extend({
+    direction: 'center',
+    moveTransition: Effect.Transitions.sinoidal,
+    scaleTransition: Effect.Transitions.sinoidal,
+    opacityTransition: Effect.Transitions.none
+  }, arguments[1] || { });
+  var oldStyle = {
+    top: element.style.top,
+    left: element.style.left,
+    height: element.style.height,
+    width: element.style.width,
+    opacity: element.getInlineOpacity() };
+
+  var dims = element.getDimensions();
+  var moveX, moveY;
+  
+  switch (options.direction) {
+    case 'top-left':
+      moveX = moveY = 0;
+      break;
+    case 'top-right':
+      moveX = dims.width;
+      moveY = 0;
+      break;
+    case 'bottom-left':
+      moveX = 0;
+      moveY = dims.height;
+      break;
+    case 'bottom-right':
+      moveX = dims.width;
+      moveY = dims.height;
+      break;
+    case 'center':  
+      moveX = dims.width / 2;
+      moveY = dims.height / 2;
+      break;
+  }
+  
+  return new Effect.Parallel(
+    [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }),
+      new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}),
+      new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition })
+    ], Object.extend({            
+         beforeStartInternal: function(effect) {
+           effect.effects[0].element.makePositioned().makeClipping(); 
+         },
+         afterFinishInternal: function(effect) {
+           effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); }
+       }, options)
+  );
+};
+
+Effect.Pulsate = function(element) {
+  element = $(element);
+  var options    = arguments[1] || { };
+  var oldOpacity = element.getInlineOpacity();
+  var transition = options.transition || Effect.Transitions.sinoidal;
+  var reverser   = function(pos){ return transition(1-Effect.Transitions.pulse(pos, options.pulses)) };
+  reverser.bind(transition);
+  return new Effect.Opacity(element, 
+    Object.extend(Object.extend({  duration: 2.0, from: 0,
+      afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); }
+    }, options), {transition: reverser}));
+};
+
+Effect.Fold = function(element) {
+  element = $(element);
+  var oldStyle = {
+    top: element.style.top,
+    left: element.style.left,
+    width: element.style.width,
+    height: element.style.height };
+  element.makeClipping();
+  return new Effect.Scale(element, 5, Object.extend({   
+    scaleContent: false,
+    scaleX: false,
+    afterFinishInternal: function(effect) {
+    new Effect.Scale(element, 1, { 
+      scaleContent: false, 
+      scaleY: false,
+      afterFinishInternal: function(effect) {
+        effect.element.hide().undoClipping().setStyle(oldStyle);
+      } });
+  }}, arguments[1] || { }));
+};
+
+Effect.Morph = Class.create(Effect.Base, {
+  initialize: function(element) {
+    this.element = $(element);
+    if (!this.element) throw(Effect._elementDoesNotExistError);
+    var options = Object.extend({
+      style: { }
+    }, arguments[1] || { });
+    
+    if (!Object.isString(options.style)) this.style = $H(options.style);
+    else {
+      if (options.style.include(':'))
+        this.style = options.style.parseStyle();
+      else {
+        this.element.addClassName(options.style);
+        this.style = $H(this.element.getStyles());
+        this.element.removeClassName(options.style);
+        var css = this.element.getStyles();
+        this.style = this.style.reject(function(style) {
+          return style.value == css[style.key];
+        });
+        options.afterFinishInternal = function(effect) {
+          effect.element.addClassName(effect.options.style);
+          effect.transforms.each(function(transform) {
+            effect.element.style[transform.style] = '';
+          });
+        }
+      }
+    }
+    this.start(options);
+  },
+  
+  setup: function(){
+    function parseColor(color){
+      if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff';
+      color = color.parseColor();
+      return $R(0,2).map(function(i){
+        return parseInt( color.slice(i*2+1,i*2+3), 16 ) 
+      });
+    }
+    this.transforms = this.style.map(function(pair){
+      var property = pair[0], value = pair[1], unit = null;
+
+      if (value.parseColor('#zzzzzz') != '#zzzzzz') {
+        value = value.parseColor();
+        unit  = 'color';
+      } else if (property == 'opacity') {
+        value = parseFloat(value);
+        if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))
+          this.element.setStyle({zoom: 1});
+      } else if (Element.CSS_LENGTH.test(value)) {
+          var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/);
+          value = parseFloat(components[1]);
+          unit = (components.length == 3) ? components[2] : null;
+      }
+
+      var originalValue = this.element.getStyle(property);
+      return { 
+        style: property.camelize(), 
+        originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), 
+        targetValue: unit=='color' ? parseColor(value) : value,
+        unit: unit
+      };
+    }.bind(this)).reject(function(transform){
+      return (
+        (transform.originalValue == transform.targetValue) ||
+        (
+          transform.unit != 'color' &&
+          (isNaN(transform.originalValue) || isNaN(transform.targetValue))
+        )
+      )
+    });
+  },
+  update: function(position) {
+    var style = { }, transform, i = this.transforms.length;
+    while(i--)
+      style[(transform = this.transforms[i]).style] = 
+        transform.unit=='color' ? '#'+
+          (Math.round(transform.originalValue[0]+
+            (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() +
+          (Math.round(transform.originalValue[1]+
+            (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() +
+          (Math.round(transform.originalValue[2]+
+            (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() :
+        (transform.originalValue +
+          (transform.targetValue - transform.originalValue) * position).toFixed(3) + 
+            (transform.unit === null ? '' : transform.unit);
+    this.element.setStyle(style, true);
+  }
+});
+
+Effect.Transform = Class.create({
+  initialize: function(tracks){
+    this.tracks  = [];
+    this.options = arguments[1] || { };
+    this.addTracks(tracks);
+  },
+  addTracks: function(tracks){
+    tracks.each(function(track){
+      track = $H(track);
+      var data = track.values().first();
+      this.tracks.push($H({
+        ids:     track.keys().first(),
+        effect:  Effect.Morph,
+        options: { style: data }
+      }));
+    }.bind(this));
+    return this;
+  },
+  play: function(){
+    return new Effect.Parallel(
+      this.tracks.map(function(track){
+        var ids = track.get('ids'), effect = track.get('effect'), options = track.get('options');
+        var elements = [$(ids) || $$(ids)].flatten();
+        return elements.map(function(e){ return new effect(e, Object.extend({ sync:true }, options)) });
+      }).flatten(),
+      this.options
+    );
+  }
+});
+
+Element.CSS_PROPERTIES = $w(
+  'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + 
+  'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +
+  'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +
+  'borderTopColor borderTopStyle borderTopWidth bottom clip color ' +
+  'fontSize fontWeight height left letterSpacing lineHeight ' +
+  'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+
+  'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' +
+  'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +
+  'right textIndent top width wordSpacing zIndex');
+  
+Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;
+
+String.__parseStyleElement = document.createElement('div');
+String.prototype.parseStyle = function(){
+  var style, styleRules = $H();
+  if (Prototype.Browser.WebKit)
+    style = new Element('div',{style:this}).style;
+  else {
+    String.__parseStyleElement.innerHTML = '<div style="' + this + '"></div>';
+    style = String.__parseStyleElement.childNodes[0].style;
+  }
+  
+  Element.CSS_PROPERTIES.each(function(property){
+    if (style[property]) styleRules.set(property, style[property]); 
+  });
+  
+  if (Prototype.Browser.IE && this.include('opacity'))
+    styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);
+
+  return styleRules;
+};
+
+if (document.defaultView && document.defaultView.getComputedStyle) {
+  Element.getStyles = function(element) {
+    var css = document.defaultView.getComputedStyle($(element), null);
+    return Element.CSS_PROPERTIES.inject({ }, function(styles, property) {
+      styles[property] = css[property];
+      return styles;
+    });
+  };
+} else {
+  Element.getStyles = function(element) {
+    element = $(element);
+    var css = element.currentStyle, styles;
+    styles = Element.CSS_PROPERTIES.inject({ }, function(hash, property) {
+      hash.set(property, css[property]);
+      return hash;
+    });
+    if (!styles.opacity) styles.set('opacity', element.getOpacity());
+    return styles;
+  };
+};
+
+Effect.Methods = {
+  morph: function(element, style) {
+    element = $(element);
+    new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || { }));
+    return element;
+  },
+  visualEffect: function(element, effect, options) {
+    element = $(element)
+    var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1);
+    new Effect[klass](element, options);
+    return element;
+  },
+  highlight: function(element, options) {
+    element = $(element);
+    new Effect.Highlight(element, options);
+    return element;
+  }
+};
+
+$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+
+  'pulsate shake puff squish switchOff dropOut').each(
+  function(effect) { 
+    Effect.Methods[effect] = function(element, options){
+      element = $(element);
+      Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options);
+      return element;
+    }
+  }
+);
+
+$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each( 
+  function(f) { Effect.Methods[f] = Element[f]; }
+);
+
+Element.addMethods(Effect.Methods);
Index: ruby/trunk/public/javascripts/prototype.js
===================================================================
--- ruby/trunk/public/javascripts/prototype.js	(revision 291)
+++ ruby/trunk/public/javascripts/prototype.js	(revision 291)
@@ -0,0 +1,4320 @@
+/*  Prototype JavaScript framework, version 1.6.0.3
+ *  (c) 2005-2008 Sam Stephenson
+ *
+ *  Prototype is freely distributable under the terms of an MIT-style license.
+ *  For details, see the Prototype web site: http://www.prototypejs.org/
+ *
+ *--------------------------------------------------------------------------*/
+
+var Prototype = {
+  Version: '1.6.0.3',
+
+  Browser: {
+    IE:     !!(window.attachEvent &&
+      navigator.userAgent.indexOf('Opera') === -1),
+    Opera:  navigator.userAgent.indexOf('Opera') > -1,
+    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
+    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 &&
+      navigator.userAgent.indexOf('KHTML') === -1,
+    MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
+  },
+
+  BrowserFeatures: {
+    XPath: !!document.evaluate,
+    SelectorsAPI: !!document.querySelector,
+    ElementExtensions: !!window.HTMLElement,
+    SpecificElementExtensions:
+      document.createElement('div')['__proto__'] &&
+      document.createElement('div')['__proto__'] !==
+        document.createElement('form')['__proto__']
+  },
+
+  ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
+  JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,
+
+  emptyFunction: function() { },
+  K: function(x) { return x }
+};
+
+if (Prototype.Browser.MobileSafari)
+  Prototype.BrowserFeatures.SpecificElementExtensions = false;
+
+
+/* Based on Alex Arnell's inheritance implementation. */
+var Class = {
+  create: function() {
+    var parent = null, properties = $A(arguments);
+    if (Object.isFunction(properties[0]))
+      parent = properties.shift();
+
+    function klass() {
+      this.initialize.apply(this, arguments);
+    }
+
+    Object.extend(klass, Class.Methods);
+    klass.superclass = parent;
+    klass.subclasses = [];
+
+    if (parent) {
+      var subclass = function() { };
+      subclass.prototype = parent.prototype;
+      klass.prototype = new subclass;
+      parent.subclasses.push(klass);
+    }
+
+    for (var i = 0; i < properties.length; i++)
+      klass.addMethods(properties[i]);
+
+    if (!klass.prototype.initialize)
+      klass.prototype.initialize = Prototype.emptyFunction;
+
+    klass.prototype.constructor = klass;
+
+    return klass;
+  }
+};
+
+Class.Methods = {
+  addMethods: function(source) {
+    var ancestor   = this.superclass && this.superclass.prototype;
+    var properties = Object.keys(source);
+
+    if (!Object.keys({ toString: true }).length)
+      properties.push("toString", "valueOf");
+
+    for (var i = 0, length = properties.length; i < length; i++) {
+      var property = properties[i], value = source[property];
+      if (ancestor && Object.isFunction(value) &&
+          value.argumentNames().first() == "$super") {
+        var method = value;
+        value = (function(m) {
+          return function() { return ancestor[m].apply(this, arguments) };
+        })(property).wrap(method);
+
+        value.valueOf = method.valueOf.bind(method);
+        value.toString = method.toString.bind(method);
+      }
+      this.prototype[property] = value;
+    }
+
+    return this;
+  }
+};
+
+var Abstract = { };
+
+Object.extend = function(destination, source) {
+  for (var property in source)
+    destination[property] = source[property];
+  return destination;
+};
+
+Object.extend(Object, {
+  inspect: function(object) {
+    try {
+      if (Object.isUndefined(object)) return 'undefined';
+      if (object === null) return 'null';
+      return object.inspect ? object.inspect() : String(object);
+    } catch (e) {
+      if (e instanceof RangeError) return '...';
+      throw e;
+    }
+  },
+
+  toJSON: function(object) {
+    var type = typeof object;
+    switch (type) {
+      case 'undefined':
+      case 'function':
+      case 'unknown': return;
+      case 'boolean': return object.toString();
+    }
+
+    if (object === null) return 'null';
+    if (object.toJSON) return object.toJSON();
+    if (Object.isElement(object)) return;
+
+    var results = [];
+    for (var property in object) {
+      var value = Object.toJSON(object[property]);
+      if (!Object.isUndefined(value))
+        results.push(property.toJSON() + ': ' + value);
+    }
+
+    return '{' + results.join(', ') + '}';
+  },
+
+  toQueryString: function(object) {
+    return $H(object).toQueryString();
+  },
+
+  toHTML: function(object) {
+    return object && object.toHTML ? object.toHTML() : String.interpret(object);
+  },
+
+  keys: function(object) {
+    var keys = [];
+    for (var property in object)
+      keys.push(property);
+    return keys;
+  },
+
+  values: function(object) {
+    var values = [];
+    for (var property in object)
+      values.push(object[property]);
+    return values;
+  },
+
+  clone: function(object) {
+    return Object.extend({ }, object);
+  },
+
+  isElement: function(object) {
+    return !!(object && object.nodeType == 1);
+  },
+
+  isArray: function(object) {
+    return object != null && typeof object == "object" &&
+      'splice' in object && 'join' in object;
+  },
+
+  isHash: function(object) {
+    return object instanceof Hash;
+  },
+
+  isFunction: function(object) {
+    return typeof object == "function";
+  },
+
+  isString: function(object) {
+    return typeof object == "string";
+  },
+
+  isNumber: function(object) {
+    return typeof object == "number";
+  },
+
+  isUndefined: function(object) {
+    return typeof object == "undefined";
+  }
+});
+
+Object.extend(Function.prototype, {
+  argumentNames: function() {
+    var names = this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1]
+      .replace(/\s+/g, '').split(',');
+    return names.length == 1 && !names[0] ? [] : names;
+  },
+
+  bind: function() {
+    if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
+    var __method = this, args = $A(arguments), object = args.shift();
+    return function() {
+      return __method.apply(object, args.concat($A(arguments)));
+    }
+  },
+
+  bindAsEventListener: function() {
+    var __method = this, args = $A(arguments), object = args.shift();
+    return function(event) {
+      return __method.apply(object, [event || window.event].concat(args));
+    }
+  },
+
+  curry: function() {
+    if (!arguments.length) return this;
+    var __method = this, args = $A(arguments);
+    return function() {
+      return __method.apply(this, args.concat($A(arguments)));
+    }
+  },
+
+  delay: function() {
+    var __method = this, args = $A(arguments), timeout = args.shift() * 1000;
+    return window.setTimeout(function() {
+      return __method.apply(__method, args);
+    }, timeout);
+  },
+
+  defer: function() {
+    var args = [0.01].concat($A(arguments));
+    return this.delay.apply(this, args);
+  },
+
+  wrap: function(wrapper) {
+    var __method = this;
+    return function() {
+      return wrapper.apply(this, [__method.bind(this)].concat($A(arguments)));
+    }
+  },
+
+  methodize: function() {
+    if (this._methodized) return this._methodized;
+    var __method = this;
+    return this._methodized = function() {
+      return __method.apply(null, [this].concat($A(arguments)));
+    };
+  }
+});
+
+Date.prototype.toJSON = function() {
+  return '"' + this.getUTCFullYear() + '-' +
+    (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
+    this.getUTCDate().toPaddedString(2) + 'T' +
+    this.getUTCHours().toPaddedString(2) + ':' +
+    this.getUTCMinutes().toPaddedString(2) + ':' +
+    this.getUTCSeconds().toPaddedString(2) + 'Z"';
+};
+
+var Try = {
+  these: function() {
+    var returnValue;
+
+    for (var i = 0, length = arguments.length; i < length; i++) {
+      var lambda = arguments[i];
+      try {
+        returnValue = lambda();
+        break;
+      } catch (e) { }
+    }
+
+    return returnValue;
+  }
+};
+
+RegExp.prototype.match = RegExp.prototype.test;
+
+RegExp.escape = function(str) {
+  return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
+};
+
+/*--------------------------------------------------------------------------*/
+
+var PeriodicalExecuter = Class.create({
+  initialize: function(callback, frequency) {
+    this.callback = callback;
+    this.frequency = frequency;
+    this.currentlyExecuting = false;
+
+    this.registerCallback();
+  },
+
+  registerCallback: function() {
+    this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+  },
+
+  execute: function() {
+    this.callback(this);
+  },
+
+  stop: function() {
+    if (!this.timer) return;
+    clearInterval(this.timer);
+    this.timer = null;
+  },
+
+  onTimerEvent: function() {
+    if (!this.currentlyExecuting) {
+      try {
+        this.currentlyExecuting = true;
+        this.execute();
+      } finally {
+        this.currentlyExecuting = false;
+      }
+    }
+  }
+});
+Object.extend(String, {
+  interpret: function(value) {
+    return value == null ? '' : String(value);
+  },
+  specialChar: {
+    '\b': '\\b',
+    '\t': '\\t',
+    '\n': '\\n',
+    '\f': '\\f',
+    '\r': '\\r',
+    '\\': '\\\\'
+  }
+});
+
+Object.extend(String.prototype, {
+  gsub: function(pattern, replacement) {
+    var result = '', source = this, match;
+    replacement = arguments.callee.prepareReplacement(replacement);
+
+    while (source.length > 0) {
+      if (match = source.match(pattern)) {
+        result += source.slice(0, match.index);
+        result += String.interpret(replacement(match));
+        source  = source.slice(match.index + match[0].length);
+      } else {
+        result += source, source = '';
+      }
+    }
+    return result;
+  },
+
+  sub: function(pattern, replacement, count) {
+    replacement = this.gsub.prepareReplacement(replacement);
+    count = Object.isUndefined(count) ? 1 : count;
+
+    return this.gsub(pattern, function(match) {
+      if (--count < 0) return match[0];
+      return replacement(match);
+    });
+  },
+
+  scan: function(pattern, iterator) {
+    this.gsub(pattern, iterator);
+    return String(this);
+  },
+
+  truncate: function(length, truncation) {
+    length = length || 30;
+    truncation = Object.isUndefined(truncation) ? '...' : truncation;
+    return this.length > length ?
+      this.slice(0, length - truncation.length) + truncation : String(this);
+  },
+
+  strip: function() {
+    return this.replace(/^\s+/, '').replace(/\s+$/, '');
+  },
+
+  stripTags: function() {
+    return this.replace(/<\/?[^>]+>/gi, '');
+  },
+
+  stripScripts: function() {
+    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
+  },
+
+  extractScripts: function() {
+    var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
+    var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
+    return (this.match(matchAll) || []).map(function(scriptTag) {
+      return (scriptTag.match(matchOne) || ['', ''])[1];
+    });
+  },
+
+  evalScripts: function() {
+    return this.extractScripts().map(function(script) { return eval(script) });
+  },
+
+  escapeHTML: function() {
+    var self = arguments.callee;
+    self.text.data = this;
+    return self.div.innerHTML;
+  },
+
+  unescapeHTML: function() {
+    var div = new Element('div');
+    div.innerHTML = this.stripTags();
+    return div.childNodes[0] ? (div.childNodes.length > 1 ?
+      $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) :
+      div.childNodes[0].nodeValue) : '';
+  },
+
+  toQueryParams: function(separator) {
+    var match = this.strip().match(/([^?#]*)(#.*)?$/);
+    if (!match) return { };
+
+    return match[1].split(separator || '&').inject({ }, function(hash, pair) {
+      if ((pair = pair.split('='))[0]) {
+        var key = decodeURIComponent(pair.shift());
+        var value = pair.length > 1 ? pair.join('=') : pair[0];
+        if (value != undefined) value = decodeURIComponent(value);
+
+        if (key in hash) {
+          if (!Object.isArray(hash[key])) hash[key] = [hash[key]];
+          hash[key].push(value);
+        }
+        else hash[key] = value;
+      }
+      return hash;
+    });
+  },
+
+  toArray: function() {
+    return this.split('');
+  },
+
+  succ: function() {
+    return this.slice(0, this.length - 1) +
+      String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
+  },
+
+  times: function(count) {
+    return count < 1 ? '' : new Array(count + 1).join(this);
+  },
+
+  camelize: function() {
+    var parts = this.split('-'), len = parts.length;
+    if (len == 1) return parts[0];
+
+    var camelized = this.charAt(0) == '-'
+      ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
+      : parts[0];
+
+    for (var i = 1; i < len; i++)
+      camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);
+
+    return camelized;
+  },
+
+  capitalize: function() {
+    return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
+  },
+
+  underscore: function() {
+    return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();
+  },
+
+  dasherize: function() {
+    return this.gsub(/_/,'-');
+  },
+
+  inspect: function(useDoubleQuotes) {
+    var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) {
+      var character = String.specialChar[match[0]];
+      return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16);
+    });
+    if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
+    return "'" + escapedString.replace(/'/g, '\\\'') + "'";
+  },
+
+  toJSON: function() {
+    return this.inspect(true);
+  },
+
+  unfilterJSON: function(filter) {
+    return this.sub(filter || Prototype.JSONFilter, '#{1}');
+  },
+
+  isJSON: function() {
+    var str = this;
+    if (str.blank()) return false;
+    str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
+    return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
+  },
+
+  evalJSON: function(sanitize) {
+    var json = this.unfilterJSON();
+    try {
+      if (!sanitize || json.isJSON()) return eval('(' + json + ')');
+    } catch (e) { }
+    throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
+  },
+
+  include: function(pattern) {
+    return this.indexOf(pattern) > -1;
+  },
+
+  startsWith: function(pattern) {
+    return this.indexOf(pattern) === 0;
+  },
+
+  endsWith: function(pattern) {
+    var d = this.length - pattern.length;
+    return d >= 0 && this.lastIndexOf(pattern) === d;
+  },
+
+  empty: function() {
+    return this == '';
+  },
+
+  blank: function() {
+    return /^\s*$/.test(this);
+  },
+
+  interpolate: function(object, pattern) {
+    return new Template(this, pattern).evaluate(object);
+  }
+});
+
+if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, {
+  escapeHTML: function() {
+    return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
+  },
+  unescapeHTML: function() {
+    return this.stripTags().replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');
+  }
+});
+
+String.prototype.gsub.prepareReplacement = function(replacement) {
+  if (Object.isFunction(replacement)) return replacement;
+  var template = new Template(replacement);
+  return function(match) { return template.evaluate(match) };
+};
+
+String.prototype.parseQuery = String.prototype.toQueryParams;
+
+Object.extend(String.prototype.escapeHTML, {
+  div:  document.createElement('div'),
+  text: document.createTextNode('')
+});
+
+String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.text);
+
+var Template = Class.create({
+  initialize: function(template, pattern) {
+    this.template = template.toString();
+    this.pattern = pattern || Template.Pattern;
+  },
+
+  evaluate: function(object) {
+    if (Object.isFunction(object.toTemplateReplacements))
+      object = object.toTemplateReplacements();
+
+    return this.template.gsub(this.pattern, function(match) {
+      if (object == null) return '';
+
+      var before = match[1] || '';
+      if (before == '\\') return match[2];
+
+      var ctx = object, expr = match[3];
+      var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
+      match = pattern.exec(expr);
+      if (match == null) return before;
+
+      while (match != null) {
+        var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1];
+        ctx = ctx[comp];
+        if (null == ctx || '' == match[3]) break;
+        expr = expr.substring('[' == match[3] ? match[1].length : match[0].length);
+        match = pattern.exec(expr);
+      }
+
+      return before + String.interpret(ctx);
+    });
+  }
+});
+Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
+
+var $break = { };
+
+var Enumerable = {
+  each: function(iterator, context) {
+    var index = 0;
+    try {
+      this._each(function(value) {
+        iterator.call(context, value, index++);
+      });
+    } catch (e) {
+      if (e != $break) throw e;
+    }
+    return this;
+  },
+
+  eachSlice: function(number, iterator, context) {
+    var index = -number, slices = [], array = this.toArray();
+    if (number < 1) return array;
+    while ((index += number) < array.length)
+      slices.push(array.slice(index, index+number));
+    return slices.collect(iterator, context);
+  },
+
+  all: function(iterator, context) {
+    iterator = iterator || Prototype.K;
+    var result = true;
+    this.each(function(value, index) {
+      result = result && !!iterator.call(context, value, index);
+      if (!result) throw $break;
+    });
+    return result;
+  },
+
+  any: function(iterator, context) {
+    iterator = iterator || Prototype.K;
+    var result = false;
+    this.each(function(value, index) {
+      if (result = !!iterator.call(context, value, index))
+        throw $break;
+    });
+    return result;
+  },
+
+  collect: function(iterator, context) {
+    iterator = iterator || Prototype.K;
+    var results = [];
+    this.each(function(value, index) {
+      results.push(iterator.call(context, value, index));
+    });
+    return results;
+  },
+
+  detect: function(iterator, context) {
+    var result;
+    this.each(function(value, index) {
+      if (iterator.call(context, value, index)) {
+        result = value;
+        throw $break;
+      }
+    });
+    return result;
+  },
+
+  findAll: function(iterator, context) {
+    var results = [];
+    this.each(function(value, index) {
+      if (iterator.call(context, value, index))
+        results.push(value);
+    });
+    return results;
+  },
+
+  grep: function(filter, iterator, context) {
+    iterator = iterator || Prototype.K;
+    var results = [];
+
+    if (Object.isString(filter))
+      filter = new RegExp(filter);
+
+    this.each(function(value, index) {
+      if (filter.match(value))
+        results.push(iterator.call(context, value, index));
+    });
+    return results;
+  },
+
+  include: function(object) {
+    if (Object.isFunction(this.indexOf))
+      if (this.indexOf(object) != -1) return true;
+
+    var found = false;
+    this.each(function(value) {
+      if (value == object) {
+        found = true;
+        throw $break;
+      }
+    });
+    return found;
+  },
+
+  inGroupsOf: function(number, fillWith) {
+    fillWith = Object.isUndefined(fillWith) ? null : fillWith;
+    return this.eachSlice(number, function(slice) {
+      while(slice.length < number) slice.push(fillWith);
+      return slice;
+    });
+  },
+
+  inject: function(memo, iterator, context) {
+    this.each(function(value, index) {
+      memo = iterator.call(context, memo, value, index);
+    });
+    return memo;
+  },
+
+  invoke: function(method) {
+    var args = $A(arguments).slice(1);
+    return this.map(function(value) {
+      return value[method].apply(value, args);
+    });
+  },
+
+  max: function(iterator, context) {
+    iterator = iterator || Prototype.K;
+    var result;
+    this.each(function(value, index) {
+      value = iterator.call(context, value, index);
+      if (result == null || value >= result)
+        result = value;
+    });
+    return result;
+  },
+
+  min: function(iterator, context) {
+    iterator = iterator || Prototype.K;
+    var result;
+    this.each(function(value, index) {
+      value = iterator.call(context, value, index);
+      if (result == null || value < result)
+        result = value;
+    });
+    return result;
+  },
+
+  partition: function(iterator, context) {
+    iterator = iterator || Prototype.K;
+    var trues = [], falses = [];
+    this.each(function(value, index) {
+      (iterator.call(context, value, index) ?
+        trues : falses).push(value);
+    });
+    return [trues, falses];
+  },
+
+  pluck: function(property) {
+    var results = [];
+    this.each(function(value) {
+      results.push(value[property]);
+    });
+    return results;
+  },
+
+  reject: function(iterator, context) {
+    var results = [];
+    this.each(function(value, index) {
+      if (!iterator.call(context, value, index))
+        results.push(value);
+    });
+    return results;
+  },
+
+  sortBy: function(iterator, context) {
+    return this.map(function(value, index) {
+      return {
+        value: value,
+        criteria: iterator.call(context, value, index)
+      };
+    }).sort(function(left, right) {
+      var a = left.criteria, b = right.criteria;
+      return a < b ? -1 : a > b ? 1 : 0;
+    }).pluck('value');
+  },
+
+  toArray: function() {
+    return this.map();
+  },
+
+  zip: function() {
+    var iterator = Prototype.K, args = $A(arguments);
+    if (Object.isFunction(args.last()))
+      iterator = args.pop();
+
+    var collections = [this].concat(args).map($A);
+    return this.map(function(value, index) {
+      return iterator(collections.pluck(index));
+    });
+  },
+
+  size: function() {
+    return this.toArray().length;
+  },
+
+  inspect: function() {
+    return '#<Enumerable:' + this.toArray().inspect() + '>';
+  }
+};
+
+Object.extend(Enumerable, {
+  map:     Enumerable.collect,
+  find:    Enumerable.detect,
+  select:  Enumerable.findAll,
+  filter:  Enumerable.findAll,
+  member:  Enumerable.include,
+  entries: Enumerable.toArray,
+  every:   Enumerable.all,
+  some:    Enumerable.any
+});
+function $A(iterable) {
+  if (!iterable) return [];
+  if (iterable.toArray) return iterable.toArray();
+  var length = iterable.length || 0, results = new Array(length);
+  while (length--) results[length] = iterable[length];
+  return results;
+}
+
+if (Prototype.Browser.WebKit) {
+  $A = function(iterable) {
+    if (!iterable) return [];
+    // In Safari, only use the `toArray` method if it's not a NodeList.
+    // A NodeList is a function, has an function `item` property, and a numeric
+    // `length` property. Adapted from Google Doctype.
+    if (!(typeof iterable === 'function' && typeof iterable.length ===
+        'number' && typeof iterable.item === 'function') && iterable.toArray)
+      return iterable.toArray();
+    var length = iterable.length || 0, results = new Array(length);
+    while (length--) results[length] = iterable[length];
+    return results;
+  };
+}
+
+Array.from = $A;
+
+Object.extend(Array.prototype, Enumerable);
+
+if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse;
+
+Object.extend(Array.prototype, {
+  _each: function(iterator) {
+    for (var i = 0, length = this.length; i < length; i++)
+      iterator(this[i]);
+  },
+
+  clear: function() {
+    this.length = 0;
+    return this;
+  },
+
+  first: function() {
+    return this[0];
+  },
+
+  last: function() {
+    return this[this.length - 1];
+  },
+
+  compact: function() {
+    return this.select(function(value) {
+      return value != null;
+    });
+  },
+
+  flatten: function() {
+    return this.inject([], function(array, value) {
+      return array.concat(Object.isArray(value) ?
+        value.flatten() : [value]);
+    });
+  },
+
+  without: function() {
+    var values = $A(arguments);
+    return this.select(function(value) {
+      return !values.include(value);
+    });
+  },
+
+  reverse: function(inline) {
+    return (inline !== false ? this : this.toArray())._reverse();
+  },
+
+  reduce: function() {
+    return this.length > 1 ? this : this[0];
+  },
+
+  uniq: function(sorted) {
+    return this.inject([], function(array, value, index) {
+      if (0 == index || (sorted ? array.last() != value : !array.include(value)))
+        array.push(value);
+      return array;
+    });
+  },
+
+  intersect: function(array) {
+    return this.uniq().findAll(function(item) {
+      return array.detect(function(value) { return item === value });
+    });
+  },
+
+  clone: function() {
+    return [].concat(this);
+  },
+
+  size: function() {
+    return this.length;
+  },
+
+  inspect: function() {
+    return '[' + this.map(Object.inspect).join(', ') + ']';
+  },
+
+  toJSON: function() {
+    var results = [];
+    this.each(function(object) {
+      var value = Object.toJSON(object);
+      if (!Object.isUndefined(value)) results.push(value);
+    });
+    return '[' + results.join(', ') + ']';
+  }
+});
+
+// use native browser JS 1.6 implementation if available
+if (Object.isFunction(Array.prototype.forEach))
+  Array.prototype._each = Array.prototype.forEach;
+
+if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
+  i || (i = 0);
+  var length = this.length;
+  if (i < 0) i = length + i;
+  for (; i < length; i++)
+    if (this[i] === item) return i;
+  return -1;
+};
+
+if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) {
+  i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;
+  var n = this.slice(0, i).reverse().indexOf(item);
+  return (n < 0) ? n : i - n - 1;
+};
+
+Array.prototype.toArray = Array.prototype.clone;
+
+function $w(string) {
+  if (!Object.isString(string)) return [];
+  string = string.strip();
+  return string ? string.split(/\s+/) : [];
+}
+
+if (Prototype.Browser.Opera){
+  Array.prototype.concat = function() {
+    var array = [];
+    for (var i = 0, length = this.length; i < length; i++) array.push(this[i]);
+    for (var i = 0, length = arguments.length; i < length; i++) {
+      if (Object.isArray(arguments[i])) {
+        for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
+          array.push(arguments[i][j]);
+      } else {
+        array.push(arguments[i]);
+      }
+    }
+    return array;
+  };
+}
+Object.extend(Number.prototype, {
+  toColorPart: function() {
+    return this.toPaddedString(2, 16);
+  },
+
+  succ: function() {
+    return this + 1;
+  },
+
+  times: function(iterator, context) {
+    $R(0, this, true).each(iterator, context);
+    return this;
+  },
+
+  toPaddedString: function(length, radix) {
+    var string = this.toString(radix || 10);
+    return '0'.times(length - string.length) + string;
+  },
+
+  toJSON: function() {
+    return isFinite(this) ? this.toString() : 'null';
+  }
+});
+
+$w('abs round ceil floor').each(function(method){
+  Number.prototype[method] = Math[method].methodize();
+});
+function $H(object) {
+  return new Hash(object);
+};
+
+var Hash = Class.create(Enumerable, (function() {
+
+  function toQueryPair(key, value) {
+    if (Object.isUndefined(value)) return key;
+    return key + '=' + encodeURIComponent(String.interpret(value));
+  }
+
+  return {
+    initialize: function(object) {
+      this._object = Object.isHash(object) ? object.toObject() : Object.clone(object);
+    },
+
+    _each: function(iterator) {
+      for (var key in this._object) {
+        var value = this._object[key], pair = [key, value];
+        pair.key = key;
+        pair.value = value;
+        iterator(pair);
+      }
+    },
+
+    set: function(key, value) {
+      return this._object[key] = value;
+    },
+
+    get: function(key) {
+      // simulating poorly supported hasOwnProperty
+      if (this._object[key] !== Object.prototype[key])
+        return this._object[key];
+    },
+
+    unset: function(key) {
+      var value = this._object[key];
+      delete this._object[key];
+      return value;
+    },
+
+    toObject: function() {
+      return Object.clone(this._object);
+    },
+
+    keys: function() {
+      return this.pluck('key');
+    },
+
+    values: function() {
+      return this.pluck('value');
+    },
+
+    index: function(value) {
+      var match = this.detect(function(pair) {
+        return pair.value === value;
+      });
+      return match && match.key;
+    },
+
+    merge: function(object) {
+      return this.clone().update(object);
+    },
+
+    update: function(object) {
+      return new Hash(object).inject(this, function(result, pair) {
+        result.set(pair.key, pair.value);
+        return result;
+      });
+    },
+
+    toQueryString: function() {
+      return this.inject([], function(results, pair) {
+        var key = encodeURIComponent(pair.key), values = pair.value;
+
+        if (values && typeof values == 'object') {
+          if (Object.isArray(values))
+            return results.concat(values.map(toQueryPair.curry(key)));
+        } else results.push(toQueryPair(key, values));
+        return results;
+      }).join('&');
+    },
+
+    inspect: function() {
+      return '#<Hash:{' + this.map(function(pair) {
+        return pair.map(Object.inspect).join(': ');
+      }).join(', ') + '}>';
+    },
+
+    toJSON: function() {
+      return Object.toJSON(this.toObject());
+    },
+
+    clone: function() {
+      return new Hash(this);
+    }
+  }
+})());
+
+Hash.prototype.toTemplateReplacements = Hash.prototype.toObject;
+Hash.from = $H;
+var ObjectRange = Class.create(Enumerable, {
+  initialize: function(start, end, exclusive) {
+    this.start = start;
+    this.end = end;
+    this.exclusive = exclusive;
+  },
+
+  _each: function(iterator) {
+    var value = this.start;
+    while (this.include(value)) {
+      iterator(value);
+      value = value.succ();
+    }
+  },
+
+  include: function(value) {
+    if (value < this.start)
+      return false;
+    if (this.exclusive)
+      return value < this.end;
+    return value <= this.end;
+  }
+});
+
+var $R = function(start, end, exclusive) {
+  return new ObjectRange(start, end, exclusive);
+};
+
+var Ajax = {
+  getTransport: function() {
+    return Try.these(
+      function() {return new XMLHttpRequest()},
+      function() {return new ActiveXObject('Msxml2.XMLHTTP')},
+      function() {return new ActiveXObject('Microsoft.XMLHTTP')}
+    ) || false;
+  },
+
+  activeRequestCount: 0
+};
+
+Ajax.Responders = {
+  responders: [],
+
+  _each: function(iterator) {
+    this.responders._each(iterator);
+  },
+
+  register: function(responder) {
+    if (!this.include(responder))
+      this.responders.push(responder);
+  },
+
+  unregister: function(responder) {
+    this.responders = this.responders.without(responder);
+  },
+
+  dispatch: function(callback, request, transport, json) {
+    this.each(function(responder) {
+      if (Object.isFunction(responder[callback])) {
+        try {
+          responder[callback].apply(responder, [request, transport, json]);
+        } catch (e) { }
+      }
+    });
+  }
+};
+
+Object.extend(Ajax.Responders, Enumerable);
+
+Ajax.Responders.register({
+  onCreate:   function() { Ajax.activeRequestCount++ },
+  onComplete: function() { Ajax.activeRequestCount-- }
+});
+
+Ajax.Base = Class.create({
+  initialize: function(options) {
+    this.options = {
+      method:       'post',
+      asynchronous: true,
+      contentType:  'application/x-www-form-urlencoded',
+      encoding:     'UTF-8',
+      parameters:   '',
+      evalJSON:     true,
+      evalJS:       true
+    };
+    Object.extend(this.options, options || { });
+
+    this.options.method = this.options.method.toLowerCase();
+
+    if (Object.isString(this.options.parameters))
+      this.options.parameters = this.options.parameters.toQueryParams();
+    else if (Object.isHash(this.options.parameters))
+      this.options.parameters = this.options.parameters.toObject();
+  }
+});
+
+Ajax.Request = Class.create(Ajax.Base, {
+  _complete: false,
+
+  initialize: function($super, url, options) {
+    $super(options);
+    this.transport = Ajax.getTransport();
+    this.request(url);
+  },
+
+  request: function(url) {
+    this.url = url;
+    this.method = this.options.method;
+    var params = Object.clone(this.options.parameters);
+
+    if (!['get', 'post'].include(this.method)) {
+      // simulate other verbs over post
+      params['_method'] = this.method;
+      this.method = 'post';
+    }
+
+    this.parameters = params;
+
+    if (params = Object.toQueryString(params)) {
+      // when GET, append parameters to URL
+      if (this.method == 'get')
+        this.url += (this.url.include('?') ? '&' : '?') + params;
+      else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
+        params += '&_=';
+    }
+
+    try {
+      var response = new Ajax.Response(this);
+      if (this.options.onCreate) this.options.onCreate(response);
+      Ajax.Responders.dispatch('onCreate', this, response);
+
+      this.transport.open(this.method.toUpperCase(), this.url,
+        this.options.asynchronous);
+
+      if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1);
+
+      this.transport.onreadystatechange = this.onStateChange.bind(this);
+      this.setRequestHeaders();
+
+      this.body = this.method == 'post' ? (this.options.postBody || params) : null;
+      this.transport.send(this.body);
+
+      /* Force Firefox to handle ready state 4 for synchronous requests */
+      if (!this.options.asynchronous && this.transport.overrideMimeType)
+        this.onStateChange();
+
+    }
+    catch (e) {
+      this.dispatchException(e);
+    }
+  },
+
+  onStateChange: function() {
+    var readyState = this.transport.readyState;
+    if (readyState > 1 && !((readyState == 4) && this._complete))
+      this.respondToReadyState(this.transport.readyState);
+  },
+
+  setRequestHeaders: function() {
+    var headers = {
+      'X-Requested-With': 'XMLHttpRequest',
+      'X-Prototype-Version': Prototype.Version,
+      'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
+    };
+
+    if (this.method == 'post') {
+      headers['Content-type'] = this.options.contentType +
+        (this.options.encoding ? '; charset=' + this.options.encoding : '');
+
+      /* Force "Connection: close" for older Mozilla browsers to work
+       * around a bug where XMLHttpRequest sends an incorrect
+       * Content-length header. See Mozilla Bugzilla #246651.
+       */
+      if (this.transport.overrideMimeType &&
+          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
+            headers['Connection'] = 'close';
+    }
+
+    // user-defined headers
+    if (typeof this.options.requestHeaders == 'object') {
+      var extras = this.options.requestHeaders;
+
+      if (Object.isFunction(extras.push))
+        for (var i = 0, length = extras.length; i < length; i += 2)
+          headers[extras[i]] = extras[i+1];
+      else
+        $H(extras).each(function(pair) { headers[pair.key] = pair.value });
+    }
+
+    for (var name in headers)
+      this.transport.setRequestHeader(name, headers[name]);
+  },
+
+  success: function() {
+    var status = this.getStatus();
+    return !status || (status >= 200 && status < 300);
+  },
+
+  getStatus: function() {
+    try {
+      return this.transport.status || 0;
+    } catch (e) { return 0 }
+  },
+
+  respondToReadyState: function(readyState) {
+    var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this);
+
+    if (state == 'Complete') {
+      try {
+        this._complete = true;
+        (this.options['on' + response.status]
+         || this.options['on' + (this.success() ? 'Success' : 'Failure')]
+         || Prototype.emptyFunction)(response, response.headerJSON);
+      } catch (e) {
+        this.dispatchException(e);
+      }
+
+      var contentType = response.getHeader('Content-type');
+      if (this.options.evalJS == 'force'
+          || (this.options.evalJS && this.isSameOrigin() && contentType
+          && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
+        this.evalResponse();
+    }
+
+    try {
+      (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON);
+      Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON);
+    } catch (e) {
+      this.dispatchException(e);
+    }
+
+    if (state == 'Complete') {
+      // avoid memory leak in MSIE: clean up
+      this.transport.onreadystatechange = Prototype.emptyFunction;
+    }
+  },
+
+  isSameOrigin: function() {
+    var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
+    return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
+      protocol: location.protocol,
+      domain: document.domain,
+      port: location.port ? ':' + location.port : ''
+    }));
+  },
+
+  getHeader: function(name) {
+    try {
+      return this.transport.getResponseHeader(name) || null;
+    } catch (e) { return null }
+  },
+
+  evalResponse: function() {
+    try {
+      return eval((this.transport.responseText || '').unfilterJSON());
+    } catch (e) {
+      this.dispatchException(e);
+    }
+  },
+
+  dispatchException: function(exception) {
+    (this.options.onException || Prototype.emptyFunction)(this, exception);
+    Ajax.Responders.dispatch('onException', this, exception);
+  }
+});
+
+Ajax.Request.Events =
+  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
+
+Ajax.Response = Class.create({
+  initialize: function(request){
+    this.request = request;
+    var transport  = this.transport  = request.transport,
+        readyState = this.readyState = transport.readyState;
+
+    if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) {
+      this.status       = this.getStatus();
+      this.statusText   = this.getStatusText();
+      this.responseText = String.interpret(transport.responseText);
+      this.headerJSON   = this._getHeaderJSON();
+    }
+
+    if(readyState == 4) {
+      var xml = transport.responseXML;
+      this.responseXML  = Object.isUndefined(xml) ? null : xml;
+      this.responseJSON = this._getResponseJSON();
+    }
+  },
+
+  status:      0,
+  statusText: '',
+
+  getStatus: Ajax.Request.prototype.getStatus,
+
+  getStatusText: function() {
+    try {
+      return this.transport.statusText || '';
+    } catch (e) { return '' }
+  },
+
+  getHeader: Ajax.Request.prototype.getHeader,
+
+  getAllHeaders: function() {
+    try {
+      return this.getAllResponseHeaders();
+    } catch (e) { return null }
+  },
+
+  getResponseHeader: function(name) {
+    return this.transport.getResponseHeader(name);
+  },
+
+  getAllResponseHeaders: function() {
+    return this.transport.getAllResponseHeaders();
+  },
+
+  _getHeaderJSON: function() {
+    var json = this.getHeader('X-JSON');
+    if (!json) return null;
+    json = decodeURIComponent(escape(json));
+    try {
+      return json.evalJSON(this.request.options.sanitizeJSON ||
+        !this.request.isSameOrigin());
+    } catch (e) {
+      this.request.dispatchException(e);
+    }
+  },
+
+  _getResponseJSON: function() {
+    var options = this.request.options;
+    if (!options.evalJSON || (options.evalJSON != 'force' &&
+      !(this.getHeader('Content-type') || '').include('application/json')) ||
+        this.responseText.blank())
+          return null;
+    try {
+      return this.responseText.evalJSON(options.sanitizeJSON ||
+        !this.request.isSameOrigin());
+    } catch (e) {
+      this.request.dispatchException(e);
+    }
+  }
+});
+
+Ajax.Updater = Class.create(Ajax.Request, {
+  initialize: function($super, container, url, options) {
+    this.container = {
+      success: (container.success || container),
+      failure: (container.failure || (container.success ? null : container))
+    };
+
+    options = Object.clone(options);
+    var onComplete = options.onComplete;
+    options.onComplete = (function(response, json) {
+      this.updateContent(response.responseText);
+      if (Object.isFunction(onComplete)) onComplete(response, json);
+    }).bind(this);
+
+    $super(url, options);
+  },
+
+  updateContent: function(responseText) {
+    var receiver = this.container[this.success() ? 'success' : 'failure'],
+        options = this.options;
+
+    if (!options.evalScripts) responseText = responseText.stripScripts();
+
+    if (receiver = $(receiver)) {
+      if (options.insertion) {
+        if (Object.isString(options.insertion)) {
+          var insertion = { }; insertion[options.insertion] = responseText;
+          receiver.insert(insertion);
+        }
+        else options.insertion(receiver, responseText);
+      }
+      else receiver.update(responseText);
+    }
+  }
+});
+
+Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
+  initialize: function($super, container, url, options) {
+    $super(options);
+    this.onComplete = this.options.onComplete;
+
+    this.frequency = (this.options.frequency || 2);
+    this.decay = (this.options.decay || 1);
+
+    this.updater = { };
+    this.container = container;
+    this.url = url;
+
+    this.start();
+  },
+
+  start: function() {
+    this.options.onComplete = this.updateComplete.bind(this);
+    this.onTimerEvent();
+  },
+
+  stop: function() {
+    this.updater.options.onComplete = undefined;
+    clearTimeout(this.timer);
+    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
+  },
+
+  updateComplete: function(response) {
+    if (this.options.decay) {
+      this.decay = (response.responseText == this.lastText ?
+        this.decay * this.options.decay : 1);
+
+      this.lastText = response.responseText;
+    }
+    this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency);
+  },
+
+  onTimerEvent: function() {
+    this.updater = new Ajax.Updater(this.container, this.url, this.options);
+  }
+});
+function $(element) {
+  if (arguments.length > 1) {
+    for (var i = 0, elements = [], length = arguments.length; i < length; i++)
+      elements.push($(arguments[i]));
+    return elements;
+  }
+  if (Object.isString(element))
+    element = document.getElementById(element);
+  return Element.extend(element);
+}
+
+if (Prototype.BrowserFeatures.XPath) {
+  document._getElementsByXPath = function(expression, parentElement) {
+    var results = [];
+    var query = document.evaluate(expression, $(parentElement) || document,
+      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+    for (var i = 0, length = query.snapshotLength; i < length; i++)
+      results.push(Element.extend(query.snapshotItem(i)));
+    return results;
+  };
+}
+
+/*--------------------------------------------------------------------------*/
+
+if (!window.Node) var Node = { };
+
+if (!Node.ELEMENT_NODE) {
+  // DOM level 2 ECMAScript Language Binding
+  Object.extend(Node, {
+    ELEMENT_NODE: 1,
+    ATTRIBUTE_NODE: 2,
+    TEXT_NODE: 3,
+    CDATA_SECTION_NODE: 4,
+    ENTITY_REFERENCE_NODE: 5,
+    ENTITY_NODE: 6,
+    PROCESSING_INSTRUCTION_NODE: 7,
+    COMMENT_NODE: 8,
+    DOCUMENT_NODE: 9,
+    DOCUMENT_TYPE_NODE: 10,
+    DOCUMENT_FRAGMENT_NODE: 11,
+    NOTATION_NODE: 12
+  });
+}
+
+(function() {
+  var element = this.Element;
+  this.Element = function(tagName, attributes) {
+    attributes = attributes || { };
+    tagName = tagName.toLowerCase();
+    var cache = Element.cache;
+    if (Prototype.Browser.IE && attributes.name) {
+      tagName = '<' + tagName + ' name="' + attributes.name + '">';
+      delete attributes.name;
+      return Element.writeAttribute(document.createElement(tagName), attributes);
+    }
+    if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName));
+    return Element.writeAttribute(cache[tagName].cloneNode(false), attributes);
+  };
+  Object.extend(this.Element, element || { });
+  if (element) this.Element.prototype = element.prototype;
+}).call(window);
+
+Element.cache = { };
+
+Element.Methods = {
+  visible: function(element) {
+    return $(element).style.display != 'none';
+  },
+
+  toggle: function(element) {
+    element = $(element);
+    Element[Element.visible(element) ? 'hide' : 'show'](element);
+    return element;
+  },
+
+  hide: function(element) {
+    element = $(element);
+    element.style.display = 'none';
+    return element;
+  },
+
+  show: function(element) {
+    element = $(element);
+    element.style.display = '';
+    return element;
+  },
+
+  remove: function(element) {
+    element = $(element);
+    element.parentNode.removeChild(element);
+    return element;
+  },
+
+  update: function(element, content) {
+    element = $(element);
+    if (content && content.toElement) content = content.toElement();
+    if (Object.isElement(content)) return element.update().insert(content);
+    content = Object.toHTML(content);
+    element.innerHTML = content.stripScripts();
+    content.evalScripts.bind(content).defer();
+    return element;
+  },
+
+  replace: function(element, content) {
+    element = $(element);
+    if (content && content.toElement) content = content.toElement();
+    else if (!Object.isElement(content)) {
+      content = Object.toHTML(content);
+      var range = element.ownerDocument.createRange();
+      range.selectNode(element);
+      content.evalScripts.bind(content).defer();
+      content = range.createContextualFragment(content.stripScripts());
+    }
+    element.parentNode.replaceChild(content, element);
+    return element;
+  },
+
+  insert: function(element, insertions) {
+    element = $(element);
+
+    if (Object.isString(insertions) || Object.isNumber(insertions) ||
+        Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
+          insertions = {bottom:insertions};
+
+    var content, insert, tagName, childNodes;
+
+    for (var position in insertions) {
+      content  = insertions[position];
+      position = position.toLowerCase();
+      insert = Element._insertionTranslations[position];
+
+      if (content && content.toElement) content = content.toElement();
+      if (Object.isElement(content)) {
+        insert(element, content);
+        continue;
+      }
+
+      content = Object.toHTML(content);
+
+      tagName = ((position == 'before' || position == 'after')
+        ? element.parentNode : element).tagName.toUpperCase();
+
+      childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+
+      if (position == 'top' || position == 'after') childNodes.reverse();
+      childNodes.each(insert.curry(element));
+
+      content.evalScripts.bind(content).defer();
+    }
+
+    return element;
+  },
+
+  wrap: function(element, wrapper, attributes) {
+    element = $(element);
+    if (Object.isElement(wrapper))
+      $(wrapper).writeAttribute(attributes || { });
+    else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes);
+    else wrapper = new Element('div', wrapper);
+    if (element.parentNode)
+      element.parentNode.replaceChild(wrapper, element);
+    wrapper.appendChild(element);
+    return wrapper;
+  },
+
+  inspect: function(element) {
+    element = $(element);
+    var result = '<' + element.tagName.toLowerCase();
+    $H({'id': 'id', 'className': 'class'}).each(function(pair) {
+      var property = pair.first(), attribute = pair.last();
+      var value = (element[property] || '').toString();
+      if (value) result += ' ' + attribute + '=' + value.inspect(true);
+    });
+    return result + '>';
+  },
+
+  recursivelyCollect: function(element, property) {
+    element = $(element);
+    var elements = [];
+    while (element = element[property])
+      if (element.nodeType == 1)
+        elements.push(Element.extend(element));
+    return elements;
+  },
+
+  ancestors: function(element) {
+    return $(element).recursivelyCollect('parentNode');
+  },
+
+  descendants: function(element) {
+    return $(element).select("*");
+  },
+
+  firstDescendant: function(element) {
+    element = $(element).firstChild;
+    while (element && element.nodeType != 1) element = element.nextSibling;
+    return $(element);
+  },
+
+  immediateDescendants: function(element) {
+    if (!(element = $(element).firstChild)) return [];
+    while (element && element.nodeType != 1) element = element.nextSibling;
+    if (element) return [element].concat($(element).nextSiblings());
+    return [];
+  },
+
+  previousSiblings: function(element) {
+    return $(element).recursivelyCollect('previousSibling');
+  },
+
+  nextSiblings: function(element) {
+    return $(element).recursivelyCollect('nextSibling');
+  },
+
+  siblings: function(element) {
+    element = $(element);
+    return element.previousSiblings().reverse().concat(element.nextSiblings());
+  },
+
+  match: function(element, selector) {
+    if (Object.isString(selector))
+      selector = new Selector(selector);
+    return selector.match($(element));
+  },
+
+  up: function(element, expression, index) {
+    element = $(element);
+    if (arguments.length == 1) return $(element.parentNode);
+    var ancestors = element.ancestors();
+    return Object.isNumber(expression) ? ancestors[expression] :
+      Selector.findElement(ancestors, expression, index);
+  },
+
+  down: function(element, expression, index) {
+    element = $(element);
+    if (arguments.length == 1) return element.firstDescendant();
+    return Object.isNumber(expression) ? element.descendants()[expression] :
+      Element.select(element, expression)[index || 0];
+  },
+
+  previous: function(element, expression, index) {
+    element = $(element);
+    if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element));
+    var previousSiblings = element.previousSiblings();
+    return Object.isNumber(expression) ? previousSiblings[expression] :
+      Selector.findElement(previousSiblings, expression, index);
+  },
+
+  next: function(element, expression, index) {
+    element = $(element);
+    if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element));
+    var nextSiblings = element.nextSiblings();
+    return Object.isNumber(expression) ? nextSiblings[expression] :
+      Selector.findElement(nextSiblings, expression, index);
+  },
+
+  select: function() {
+    var args = $A(arguments), element = $(args.shift());
+    return Selector.findChildElements(element, args);
+  },
+
+  adjacent: function() {
+    var args = $A(arguments), element = $(args.shift());
+    return Selector.findChildElements(element.parentNode, args).without(element);
+  },
+
+  identify: function(element) {
+    element = $(element);
+    var id = element.readAttribute('id'), self = arguments.callee;
+    if (id) return id;
+    do { id = 'anonymous_element_' + self.counter++ } while ($(id));
+    element.writeAttribute('id', id);
+    return id;
+  },
+
+  readAttribute: function(element, name) {
+    element = $(element);
+    if (Prototype.Browser.IE) {
+      var t = Element._attributeTranslations.read;
+      if (t.values[name]) return t.values[name](element, name);
+      if (t.names[name]) name = t.names[name];
+      if (name.include(':')) {
+        return (!element.attributes || !element.attributes[name]) ? null :
+         element.attributes[name].value;
+      }
+    }
+    return element.getAttribute(name);
+  },
+
+  writeAttribute: function(element, name, value) {
+    element = $(element);
+    var attributes = { }, t = Element._attributeTranslations.write;
+
+    if (typeof name == 'object') attributes = name;
+    else attributes[name] = Object.isUndefined(value) ? true : value;
+
+    for (var attr in attributes) {
+      name = t.names[attr] || attr;
+      value = attributes[attr];
+      if (t.values[attr]) name = t.values[attr](element, value);
+      if (value === false || value === null)
+        element.removeAttribute(name);
+      else if (value === true)
+        element.setAttribute(name, name);
+      else element.setAttribute(name, value);
+    }
+    return element;
+  },
+
+  getHeight: function(element) {
+    return $(element).getDimensions().height;
+  },
+
+  getWidth: function(element) {
+    return $(element).getDimensions().width;
+  },
+
+  classNames: function(element) {
+    return new Element.ClassNames(element);
+  },
+
+  hasClassName: function(element, className) {
+    if (!(element = $(element))) return;
+    var elementClassName = element.className;
+    return (elementClassName.length > 0 && (elementClassName == className ||
+      new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
+  },
+
+  addClassName: function(element, className) {
+    if (!(element = $(element))) return;
+    if (!element.hasClassName(className))
+      element.className += (element.className ? ' ' : '') + className;
+    return element;
+  },
+
+  removeClassName: function(element, className) {
+    if (!(element = $(element))) return;
+    element.className = element.className.replace(
+      new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();
+    return element;
+  },
+
+  toggleClassName: function(element, className) {
+    if (!(element = $(element))) return;
+    return element[element.hasClassName(className) ?
+      'removeClassName' : 'addClassName'](className);
+  },
+
+  // removes whitespace-only text node children
+  cleanWhitespace: function(element) {
+    element = $(element);
+    var node = element.firstChild;
+    while (node) {
+      var nextNode = node.nextSibling;
+      if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
+        element.removeChild(node);
+      node = nextNode;
+    }
+    return element;
+  },
+
+  empty: function(element) {
+    return $(element).innerHTML.blank();
+  },
+
+  descendantOf: function(element, ancestor) {
+    element = $(element), ancestor = $(ancestor);
+
+    if (element.compareDocumentPosition)
+      return (element.compareDocumentPosition(ancestor) & 8) === 8;
+
+    if (ancestor.contains)
+      return ancestor.contains(element) && ancestor !== element;
+
+    while (element = element.parentNode)
+      if (element == ancestor) return true;
+
+    return false;
+  },
+
+  scrollTo: function(element) {
+    element = $(element);
+    var pos = element.cumulativeOffset();
+    window.scrollTo(pos[0], pos[1]);
+    return element;
+  },
+
+  getStyle: function(element, style) {
+    element = $(element);
+    style = style == 'float' ? 'cssFloat' : style.camelize();
+    var value = element.style[style];
+    if (!value || value == 'auto') {
+      var css = document.defaultView.getComputedStyle(element, null);
+      value = css ? css[style] : null;
+    }
+    if (style == 'opacity') return value ? parseFloat(value) : 1.0;
+    return value == 'auto' ? null : value;
+  },
+
+  getOpacity: function(element) {
+    return $(element).getStyle('opacity');
+  },
+
+  setStyle: function(element, styles) {
+    element = $(element);
+    var elementStyle = element.style, match;
+    if (Object.isString(styles)) {
+      element.style.cssText += ';' + styles;
+      return styles.include('opacity') ?
+        element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element;
+    }
+    for (var property in styles)
+      if (property == 'opacity') element.setOpacity(styles[property]);
+      else
+        elementStyle[(property == 'float' || property == 'cssFloat') ?
+          (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') :
+            property] = styles[property];
+
+    return element;
+  },
+
+  setOpacity: function(element, value) {
+    element = $(element);
+    element.style.opacity = (value == 1 || value === '') ? '' :
+      (value < 0.00001) ? 0 : value;
+    return element;
+  },
+
+  getDimensions: function(element) {
+    element = $(element);
+    var display = element.getStyle('display');
+    if (display != 'none' && display != null) // Safari bug
+      return {width: element.offsetWidth, height: element.offsetHeight};
+
+    // All *Width and *Height properties give 0 on elements with display none,
+    // so enable the element temporarily
+    var els = element.style;
+    var originalVisibility = els.visibility;
+    var originalPosition = els.position;
+    var originalDisplay = els.display;
+    els.visibility = 'hidden';
+    els.position = 'absolute';
+    els.display = 'block';
+    var originalWidth = element.clientWidth;
+    var originalHeight = element.clientHeight;
+    els.display = originalDisplay;
+    els.position = originalPosition;
+    els.visibility = originalVisibility;
+    return {width: originalWidth, height: originalHeight};
+  },
+
+  makePositioned: function(element) {
+    element = $(element);
+    var pos = Element.getStyle(element, 'position');
+    if (pos == 'static' || !pos) {
+      element._madePositioned = true;
+      element.style.position = 'relative';
+      // Opera returns the offset relative to the positioning context, when an
+      // element is position relative but top and left have not been defined
+      if (Prototype.Browser.Opera) {
+        element.style.top = 0;
+        element.style.left = 0;
+      }
+    }
+    return element;
+  },
+
+  undoPositioned: function(element) {
+    element = $(element);
+    if (element._madePositioned) {
+      element._madePositioned = undefined;
+      element.style.position =
+        element.style.top =
+        element.style.left =
+        element.style.bottom =
+        element.style.right = '';
+    }
+    return element;
+  },
+
+  makeClipping: function(element) {
+    element = $(element);
+    if (element._overflow) return element;
+    element._overflow = Element.getStyle(element, 'overflow') || 'auto';
+    if (element._overflow !== 'hidden')
+      element.style.overflow = 'hidden';
+    return element;
+  },
+
+  undoClipping: function(element) {
+    element = $(element);
+    if (!element._overflow) return element;
+    element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
+    element._overflow = null;
+    return element;
+  },
+
+  cumulativeOffset: function(element) {
+    var valueT = 0, valueL = 0;
+    do {
+      valueT += element.offsetTop  || 0;
+      valueL += element.offsetLeft || 0;
+      element = element.offsetParent;
+    } while (element);
+    return Element._returnOffset(valueL, valueT);
+  },
+
+  positionedOffset: function(element) {
+    var valueT = 0, valueL = 0;
+    do {
+      valueT += element.offsetTop  || 0;
+      valueL += element.offsetLeft || 0;
+      element = element.offsetParent;
+      if (element) {
+        if (element.tagName.toUpperCase() == 'BODY') break;
+        var p = Element.getStyle(element, 'position');
+        if (p !== 'static') break;
+      }
+    } while (element);
+    return Element._returnOffset(valueL, valueT);
+  },
+
+  absolutize: function(element) {
+    element = $(element);
+    if (element.getStyle('position') == 'absolute') return element;
+    // Position.prepare(); // To be done manually by Scripty when it needs it.
+
+    var offsets = element.positionedOffset();
+    var top     = offsets[1];
+    var left    = offsets[0];
+    var width   = element.clientWidth;
+    var height  = element.clientHeight;
+
+    element._originalLeft   = left - parseFloat(element.style.left  || 0);
+    element._originalTop    = top  - parseFloat(element.style.top || 0);
+    element._originalWidth  = element.style.width;
+    element._originalHeight = element.style.height;
+
+    element.style.position = 'absolute';
+    element.style.top    = top + 'px';
+    element.style.left   = left + 'px';
+    element.style.width  = width + 'px';
+    element.style.height = height + 'px';
+    return element;
+  },
+
+  relativize: function(element) {
+    element = $(element);
+    if (element.getStyle('position') == 'relative') return element;
+    // Position.prepare(); // To be done manually by Scripty when it needs it.
+
+    element.style.position = 'relative';
+    var top  = parseFloat(element.style.top  || 0) - (element._originalTop || 0);
+    var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
+
+    element.style.top    = top + 'px';
+    element.style.left   = left + 'px';
+    element.style.height = element._originalHeight;
+    element.style.width  = element._originalWidth;
+    return element;
+  },
+
+  cumulativeScrollOffset: function(element) {
+    var valueT = 0, valueL = 0;
+    do {
+      valueT += element.scrollTop  || 0;
+      valueL += element.scrollLeft || 0;
+      element = element.parentNode;
+    } while (element);
+    return Element._returnOffset(valueL, valueT);
+  },
+
+  getOffsetParent: function(element) {
+    if (element.offsetParent) return $(element.offsetParent);
+    if (element == document.body) return $(element);
+
+    while ((element = element.parentNode) && element != document.body)
+      if (Element.getStyle(element, 'position') != 'static')
+        return $(element);
+
+    return $(document.body);
+  },
+
+  viewportOffset: function(forElement) {
+    var valueT = 0, valueL = 0;
+
+    var element = forElement;
+    do {
+      valueT += element.offsetTop  || 0;
+      valueL += element.offsetLeft || 0;
+
+      // Safari fix
+      if (element.offsetParent == document.body &&
+        Element.getStyle(element, 'position') == 'absolute') break;
+
+    } while (element = element.offsetParent);
+
+    element = forElement;
+    do {
+      if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) {
+        valueT -= element.scrollTop  || 0;
+        valueL -= element.scrollLeft || 0;
+      }
+    } while (element = element.parentNode);
+
+    return Element._returnOffset(valueL, valueT);
+  },
+
+  clonePosition: function(element, source) {
+    var options = Object.extend({
+      setLeft:    true,
+      setTop:     true,
+      setWidth:   true,
+      setHeight:  true,
+      offsetTop:  0,
+      offsetLeft: 0
+    }, arguments[2] || { });
+
+    // find page position of source
+    source = $(source);
+    var p = source.viewportOffset();
+
+    // find coordinate system to use
+    element = $(element);
+    var delta = [0, 0];
+    var parent = null;
+    // delta [0,0] will do fine with position: fixed elements,
+    // position:absolute needs offsetParent deltas
+    if (Element.getStyle(element, 'position') == 'absolute') {
+      parent = element.getOffsetParent();
+      delta = parent.viewportOffset();
+    }
+
+    // correct by body offsets (fixes Safari)
+    if (parent == document.body) {
+      delta[0] -= document.body.offsetLeft;
+      delta[1] -= document.body.offsetTop;
+    }
+
+    // set position
+    if (options.setLeft)   element.style.left  = (p[0] - delta[0] + options.offsetLeft) + 'px';
+    if (options.setTop)    element.style.top   = (p[1] - delta[1] + options.offsetTop) + 'px';
+    if (options.setWidth)  element.style.width = source.offsetWidth + 'px';
+    if (options.setHeight) element.style.height = source.offsetHeight + 'px';
+    return element;
+  }
+};
+
+Element.Methods.identify.counter = 1;
+
+Object.extend(Element.Methods, {
+  getElementsBySelector: Element.Methods.select,
+  childElements: Element.Methods.immediateDescendants
+});
+
+Element._attributeTranslations = {
+  write: {
+    names: {
+      className: 'class',
+      htmlFor:   'for'
+    },
+    values: { }
+  }
+};
+
+if (Prototype.Browser.Opera) {
+  Element.Methods.getStyle = Element.Methods.getStyle.wrap(
+    function(proceed, element, style) {
+      switch (style) {
+        case 'left': case 'top': case 'right': case 'bottom':
+          if (proceed(element, 'position') === 'static') return null;
+        case 'height': case 'width':
+          // returns '0px' for hidden elements; we want it to return null
+          if (!Element.visible(element)) return null;
+
+          // returns the border-box dimensions rather than the content-box
+          // dimensions, so we subtract padding and borders from the value
+          var dim = parseInt(proceed(element, style), 10);
+
+          if (dim !== element['offset' + style.capitalize()])
+            return dim + 'px';
+
+          var properties;
+          if (style === 'height') {
+            properties = ['border-top-width', 'padding-top',
+             'padding-bottom', 'border-bottom-width'];
+          }
+          else {
+            properties = ['border-left-width', 'padding-left',
+             'padding-right', 'border-right-width'];
+          }
+          return properties.inject(dim, function(memo, property) {
+            var val = proceed(element, property);
+            return val === null ? memo : memo - parseInt(val, 10);
+          }) + 'px';
+        default: return proceed(element, style);
+      }
+    }
+  );
+
+  Element.Methods.readAttribute = Element.Methods.readAttribute.wrap(
+    function(proceed, element, attribute) {
+      if (attribute === 'title') return element.title;
+      return proceed(element, attribute);
+    }
+  );
+}
+
+else if (Prototype.Browser.IE) {
+  // IE doesn't report offsets correctly for static elements, so we change them
+  // to "relative" to get the values, then change them back.
+  Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap(
+    function(proceed, element) {
+      element = $(element);
+      // IE throws an error if element is not in document
+      try { element.offsetParent }
+      catch(e) { return $(document.body) }
+      var position = element.getStyle('position');
+      if (position !== 'static') return proceed(element);
+      element.setStyle({ position: 'relative' });
+      var value = proceed(element);
+      element.setStyle({ position: position });
+      return value;
+    }
+  );
+
+  $w('positionedOffset viewportOffset').each(function(method) {
+    Element.Methods[method] = Element.Methods[method].wrap(
+      function(proceed, element) {
+        element = $(element);
+        try { element.offsetParent }
+        catch(e) { return Element._returnOffset(0,0) }
+        var position = element.getStyle('position');
+        if (position !== 'static') return proceed(element);
+        // Trigger hasLayout on the offset parent so that IE6 reports
+        // accurate offsetTop and offsetLeft values for position: fixed.
+        var offsetParent = element.getOffsetParent();
+        if (offsetParent && offsetParent.getStyle('position') === 'fixed')
+          offsetParent.setStyle({ zoom: 1 });
+        element.setStyle({ position: 'relative' });
+        var value = proceed(element);
+        element.setStyle({ position: position });
+        return value;
+      }
+    );
+  });
+
+  Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap(
+    function(proceed, element) {
+      try { element.offsetParent }
+      catch(e) { return Element._returnOffset(0,0) }
+      return proceed(element);
+    }
+  );
+
+  Element.Methods.getStyle = function(element, style) {
+    element = $(element);
+    style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
+    var value = element.style[style];
+    if (!value && element.currentStyle) value = element.currentStyle[style];
+
+    if (style == 'opacity') {
+      if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
+        if (value[1]) return parseFloat(value[1]) / 100;
+      return 1.0;
+    }
+
+    if (value == 'auto') {
+      if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none'))
+        return element['offset' + style.capitalize()] + 'px';
+      return null;
+    }
+    return value;
+  };
+
+  Element.Methods.setOpacity = function(element, value) {
+    function stripAlpha(filter){
+      return filter.replace(/alpha\([^\)]*\)/gi,'');
+    }
+    element = $(element);
+    var currentStyle = element.currentStyle;
+    if ((currentStyle && !currentStyle.hasLayout) ||
+      (!currentStyle && element.style.zoom == 'normal'))
+        element.style.zoom = 1;
+
+    var filter = element.getStyle('filter'), style = element.style;
+    if (value == 1 || value === '') {
+      (filter = stripAlpha(filter)) ?
+        style.filter = filter : style.removeAttribute('filter');
+      return element;
+    } else if (value < 0.00001) value = 0;
+    style.filter = stripAlpha(filter) +
+      'alpha(opacity=' + (value * 100) + ')';
+    return element;
+  };
+
+  Element._attributeTranslations = {
+    read: {
+      names: {
+        'class': 'className',
+        'for':   'htmlFor'
+      },
+      values: {
+        _getAttr: function(element, attribute) {
+          return element.getAttribute(attribute, 2);
+        },
+        _getAttrNode: function(element, attribute) {
+          var node = element.getAttributeNode(attribute);
+          return node ? node.value : "";
+        },
+        _getEv: function(element, attribute) {
+          attribute = element.getAttribute(attribute);
+          return attribute ? attribute.toString().slice(23, -2) : null;
+        },
+        _flag: function(element, attribute) {
+          return $(element).hasAttribute(attribute) ? attribute : null;
+        },
+        style: function(element) {
+          return element.style.cssText.toLowerCase();
+        },
+        title: function(element) {
+          return element.title;
+        }
+      }
+    }
+  };
+
+  Element._attributeTranslations.write = {
+    names: Object.extend({
+      cellpadding: 'cellPadding',
+      cellspacing: 'cellSpacing'
+    }, Element._attributeTranslations.read.names),
+    values: {
+      checked: function(element, value) {
+        element.checked = !!value;
+      },
+
+      style: function(element, value) {
+        element.style.cssText = value ? value : '';
+      }
+    }
+  };
+
+  Element._attributeTranslations.has = {};
+
+  $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
+      'encType maxLength readOnly longDesc frameBorder').each(function(attr) {
+    Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
+    Element._attributeTranslations.has[attr.toLowerCase()] = attr;
+  });
+
+  (function(v) {
+    Object.extend(v, {
+      href:        v._getAttr,
+      src:         v._getAttr,
+      type:        v._getAttr,
+      action:      v._getAttrNode,
+      disabled:    v._flag,
+      checked:     v._flag,
+      readonly:    v._flag,
+      multiple:    v._flag,
+      onload:      v._getEv,
+      onunload:    v._getEv,
+      onclick:     v._getEv,
+      ondblclick:  v._getEv,
+      onmousedown: v._getEv,
+      onmouseup:   v._getEv,
+      onmouseover: v._getEv,
+      onmousemove: v._getEv,
+      onmouseout:  v._getEv,
+      onfocus:     v._getEv,
+      onblur:      v._getEv,
+      onkeypress:  v._getEv,
+      onkeydown:   v._getEv,
+      onkeyup:     v._getEv,
+      onsubmit:    v._getEv,
+      onreset:     v._getEv,
+      onselect:    v._getEv,
+      onchange:    v._getEv
+    });
+  })(Element._attributeTranslations.read.values);
+}
+
+else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) {
+  Element.Methods.setOpacity = function(element, value) {
+    element = $(element);
+    element.style.opacity = (value == 1) ? 0.999999 :
+      (value === '') ? '' : (value < 0.00001) ? 0 : value;
+    return element;
+  };
+}
+
+else if (Prototype.Browser.WebKit) {
+  Element.Methods.setOpacity = function(element, value) {
+    element = $(element);
+    element.style.opacity = (value == 1 || value === '') ? '' :
+      (value < 0.00001) ? 0 : value;
+
+    if (value == 1)
+      if(element.tagName.toUpperCase() == 'IMG' && element.width) {
+        element.width++; element.width--;
+      } else try {
+        var n = document.createTextNode(' ');
+        element.appendChild(n);
+        element.removeChild(n);
+      } catch (e) { }
+
+    return element;
+  };
+
+  // Safari returns margins on body which is incorrect if the child is absolutely
+  // positioned.  For performance reasons, redefine Element#cumulativeOffset for
+  // KHTML/WebKit only.
+  Element.Methods.cumulativeOffset = function(element) {
+    var valueT = 0, valueL = 0;
+    do {
+      valueT += element.offsetTop  || 0;
+      valueL += element.offsetLeft || 0;
+      if (element.offsetParent == document.body)
+        if (Element.getStyle(element, 'position') == 'absolute') break;
+
+      element = element.offsetParent;
+    } while (element);
+
+    return Element._returnOffset(valueL, valueT);
+  };
+}
+
+if (Prototype.Browser.IE || Prototype.Browser.Opera) {
+  // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements
+  Element.Methods.update = function(element, content) {
+    element = $(element);
+
+    if (content && content.toElement) content = content.toElement();
+    if (Object.isElement(content)) return element.update().insert(content);
+
+    content = Object.toHTML(content);
+    var tagName = element.tagName.toUpperCase();
+
+    if (tagName in Element._insertionTranslations.tags) {
+      $A(element.childNodes).each(function(node) { element.removeChild(node) });
+      Element._getContentFromAnonymousElement(tagName, content.stripScripts())
+        .each(function(node) { element.appendChild(node) });
+    }
+    else element.innerHTML = content.stripScripts();
+
+    content.evalScripts.bind(content).defer();
+    return element;
+  };
+}
+
+if ('outerHTML' in document.createElement('div')) {
+  Element.Methods.replace = function(element, content) {
+    element = $(element);
+
+    if (content && content.toElement) content = content.toElement();
+    if (Object.isElement(content)) {
+      element.parentNode.replaceChild(content, element);
+      return element;
+    }
+
+    content = Object.toHTML(content);
+    var parent = element.parentNode, tagName = parent.tagName.toUpperCase();
+
+    if (Element._insertionTranslations.tags[tagName]) {
+      var nextSibling = element.next();
+      var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+      parent.removeChild(element);
+      if (nextSibling)
+        fragments.each(function(node) { parent.insertBefore(node, nextSibling) });
+      else
+        fragments.each(function(node) { parent.appendChild(node) });
+    }
+    else element.outerHTML = content.stripScripts();
+
+    content.evalScripts.bind(content).defer();
+    return element;
+  };
+}
+
+Element._returnOffset = function(l, t) {
+  var result = [l, t];
+  result.left = l;
+  result.top = t;
+  return result;
+};
+
+Element._getContentFromAnonymousElement = function(tagName, html) {
+  var div = new Element('div'), t = Element._insertionTranslations.tags[tagName];
+  if (t) {
+    div.innerHTML = t[0] + html + t[1];
+    t[2].times(function() { div = div.firstChild });
+  } else div.innerHTML = html;
+  return $A(div.childNodes);
+};
+
+Element._insertionTranslations = {
+  before: function(element, node) {
+    element.parentNode.insertBefore(node, element);
+  },
+  top: function(element, node) {
+    element.insertBefore(node, element.firstChild);
+  },
+  bottom: function(element, node) {
+    element.appendChild(node);
+  },
+  after: function(element, node) {
+    element.parentNode.insertBefore(node, element.nextSibling);
+  },
+  tags: {
+    TABLE:  ['<table>',                '</table>',                   1],
+    TBODY:  ['<table><tbody>',         '</tbody></table>',           2],
+    TR:     ['<table><tbody><tr>',     '</tr></tbody></table>',      3],
+    TD:     ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],
+    SELECT: ['<select>',               '</select>',                  1]
+  }
+};
+
+(function() {
+  Object.extend(this.tags, {
+    THEAD: this.tags.TBODY,
+    TFOOT: this.tags.TBODY,
+    TH:    this.tags.TD
+  });
+}).call(Element._insertionTranslations);
+
+Element.Methods.Simulated = {
+  hasAttribute: function(element, attribute) {
+    attribute = Element._attributeTranslations.has[attribute] || attribute;
+    var node = $(element).getAttributeNode(attribute);
+    return !!(node && node.specified);
+  }
+};
+
+Element.Methods.ByTag = { };
+
+Object.extend(Element, Element.Methods);
+
+if (!Prototype.BrowserFeatures.ElementExtensions &&
+    document.createElement('div')['__proto__']) {
+  window.HTMLElement = { };
+  window.HTMLElement.prototype = document.createElement('div')['__proto__'];
+  Prototype.BrowserFeatures.ElementExtensions = true;
+}
+
+Element.extend = (function() {
+  if (Prototype.BrowserFeatures.SpecificElementExtensions)
+    return Prototype.K;
+
+  var Methods = { }, ByTag = Element.Methods.ByTag;
+
+  var extend = Object.extend(function(element) {
+    if (!element || element._extendedByPrototype ||
+        element.nodeType != 1 || element == window) return element;
+
+    var methods = Object.clone(Methods),
+      tagName = element.tagName.toUpperCase(), property, value;
+
+    // extend methods for specific tags
+    if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
+
+    for (property in methods) {
+      value = methods[property];
+      if (Object.isFunction(value) && !(property in element))
+        element[property] = value.methodize();
+    }
+
+    element._extendedByPrototype = Prototype.emptyFunction;
+    return element;
+
+  }, {
+    refresh: function() {
+      // extend methods for all tags (Safari doesn't need this)
+      if (!Prototype.BrowserFeatures.ElementExtensions) {
+        Object.extend(Methods, Element.Methods);
+        Object.extend(Methods, Element.Methods.Simulated);
+      }
+    }
+  });
+
+  extend.refresh();
+  return extend;
+})();
+
+Element.hasAttribute = function(element, attribute) {
+  if (element.hasAttribute) return element.hasAttribute(attribute);
+  return Element.Methods.Simulated.hasAttribute(element, attribute);
+};
+
+Element.addMethods = function(methods) {
+  var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;
+
+  if (!methods) {
+    Object.extend(Form, Form.Methods);
+    Object.extend(Form.Element, Form.Element.Methods);
+    Object.extend(Element.Methods.ByTag, {
+      "FORM":     Object.clone(Form.Methods),
+      "INPUT":    Object.clone(Form.Element.Methods),
+      "SELECT":   Object.clone(Form.Element.Methods),
+      "TEXTAREA": Object.clone(Form.Element.Methods)
+    });
+  }
+
+  if (arguments.length == 2) {
+    var tagName = methods;
+    methods = arguments[1];
+  }
+
+  if (!tagName) Object.extend(Element.Methods, methods || { });
+  else {
+    if (Object.isArray(tagName)) tagName.each(extend);
+    else extend(tagName);
+  }
+
+  function extend(tagName) {
+    tagName = tagName.toUpperCase();
+    if (!Element.Methods.ByTag[tagName])
+      Element.Methods.ByTag[tagName] = { };
+    Object.extend(Element.Methods.ByTag[tagName], methods);
+  }
+
+  function copy(methods, destination, onlyIfAbsent) {
+    onlyIfAbsent = onlyIfAbsent || false;
+    for (var property in methods) {
+      var value = methods[property];
+      if (!Object.isFunction(value)) continue;
+      if (!onlyIfAbsent || !(property in destination))
+        destination[property] = value.methodize();
+    }
+  }
+
+  function findDOMClass(tagName) {
+    var klass;
+    var trans = {
+      "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",
+      "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList",
+      "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading",
+      "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",
+      "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION":
+      "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":
+      "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR":
+      "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":
+      "FrameSet", "IFRAME": "IFrame"
+    };
+    if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element';
+    if (window[klass]) return window[klass];
+    klass = 'HTML' + tagName + 'Element';
+    if (window[klass]) return window[klass];
+    klass = 'HTML' + tagName.capitalize() + 'Element';
+    if (window[klass]) return window[klass];
+
+    window[klass] = { };
+    window[klass].prototype = document.createElement(tagName)['__proto__'];
+    return window[klass];
+  }
+
+  if (F.ElementExtensions) {
+    copy(Element.Methods, HTMLElement.prototype);
+    copy(Element.Methods.Simulated, HTMLElement.prototype, true);
+  }
+
+  if (F.SpecificElementExtensions) {
+    for (var tag in Element.Methods.ByTag) {
+      var klass = findDOMClass(tag);
+      if (Object.isUndefined(klass)) continue;
+      copy(T[tag], klass.prototype);
+    }
+  }
+
+  Object.extend(Element, Element.Methods);
+  delete Element.ByTag;
+
+  if (Element.extend.refresh) Element.extend.refresh();
+  Element.cache = { };
+};
+
+document.viewport = {
+  getDimensions: function() {
+    var dimensions = { }, B = Prototype.Browser;
+    $w('width height').each(function(d) {
+      var D = d.capitalize();
+      if (B.WebKit && !document.evaluate) {
+        // Safari <3.0 needs self.innerWidth/Height
+        dimensions[d] = self['inner' + D];
+      } else if (B.Opera && parseFloat(window.opera.version()) < 9.5) {
+        // Opera <9.5 needs document.body.clientWidth/Height
+        dimensions[d] = document.body['client' + D]
+      } else {
+        dimensions[d] = document.documentElement['client' + D];
+      }
+    });
+    return dimensions;
+  },
+
+  getWidth: function() {
+    return this.getDimensions().width;
+  },
+
+  getHeight: function() {
+    return this.getDimensions().height;
+  },
+
+  getScrollOffsets: function() {
+    return Element._returnOffset(
+      window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
+      window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
+  }
+};
+/* Portions of the Selector class are derived from Jack Slocum's DomQuery,
+ * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style
+ * license.  Please see http://www.yui-ext.com/ for more information. */
+
+var Selector = Class.create({
+  initialize: function(expression) {
+    this.expression = expression.strip();
+
+    if (this.shouldUseSelectorsAPI()) {
+      this.mode = 'selectorsAPI';
+    } else if (this.shouldUseXPath()) {
+      this.mode = 'xpath';
+      this.compileXPathMatcher();
+    } else {
+      this.mode = "normal";
+      this.compileMatcher();
+    }
+
+  },
+
+  shouldUseXPath: function() {
+    if (!Prototype.BrowserFeatures.XPath) return false;
+
+    var e = this.expression;
+
+    // Safari 3 chokes on :*-of-type and :empty
+    if (Prototype.Browser.WebKit &&
+     (e.include("-of-type") || e.include(":empty")))
+      return false;
+
+    // XPath can't do namespaced attributes, nor can it read
+    // the "checked" property from DOM nodes
+    if ((/(\[[\w-]*?:|:checked)/).test(e))
+      return false;
+
+    return true;
+  },
+
+  shouldUseSelectorsAPI: function() {
+    if (!Prototype.BrowserFeatures.SelectorsAPI) return false;
+
+    if (!Selector._div) Selector._div = new Element('div');
+
+    // Make sure the browser treats the selector as valid. Test on an
+    // isolated element to minimize cost of this check.
+    try {
+      Selector._div.querySelector(this.expression);
+    } catch(e) {
+      return false;
+    }
+
+    return true;
+  },
+
+  compileMatcher: function() {
+    var e = this.expression, ps = Selector.patterns, h = Selector.handlers,
+        c = Selector.criteria, le, p, m;
+
+    if (Selector._cache[e]) {
+      this.matcher = Selector._cache[e];
+      return;
+    }
+
+    this.matcher = ["this.matcher = function(root) {",
+                    "var r = root, h = Selector.handlers, c = false, n;"];
+
+    while (e && le != e && (/\S/).test(e)) {
+      le = e;
+      for (var i in ps) {
+        p = ps[i];
+        if (m = e.match(p)) {
+          this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :
+            new Template(c[i]).evaluate(m));
+          e = e.replace(m[0], '');
+          break;
+        }
+      }
+    }
+
+    this.matcher.push("return h.unique(n);\n}");
+    eval(this.matcher.join('\n'));
+    Selector._cache[this.expression] = this.matcher;
+  },
+
+  compileXPathMatcher: function() {
+    var e = this.expression, ps = Selector.patterns,
+        x = Selector.xpath, le, m;
+
+    if (Selector._cache[e]) {
+      this.xpath = Selector._cache[e]; return;
+    }
+
+    this.matcher = ['.//*'];
+    while (e && le != e && (/\S/).test(e)) {
+      le = e;
+      for (var i in ps) {
+        if (m = e.match(ps[i])) {
+          this.matcher.push(Object.isFunction(x[i]) ? x[i](m) :
+            new Template(x[i]).evaluate(m));
+          e = e.replace(m[0], '');
+          break;
+        }
+      }
+    }
+
+    this.xpath = this.matcher.join('');
+    Selector._cache[this.expression] = this.xpath;
+  },
+
+  findElements: function(root) {
+    root = root || document;
+    var e = this.expression, results;
+
+    switch (this.mode) {
+      case 'selectorsAPI':
+        // querySelectorAll queries document-wide, then filters to descendants
+        // of the context element. That's not what we want.
+        // Add an explicit context to the selector if necessary.
+        if (root !== document) {
+          var oldId = root.id, id = $(root).identify();
+          e = "#" + id + " " + e;
+        }
+
+        results = $A(root.querySelectorAll(e)).map(Element.extend);
+        root.id = oldId;
+
+        return results;
+      case 'xpath':
+        return document._getElementsByXPath(this.xpath, root);
+      default:
+       return this.matcher(root);
+    }
+  },
+
+  match: function(element) {
+    this.tokens = [];
+
+    var e = this.expression, ps = Selector.patterns, as = Selector.assertions;
+    var le, p, m;
+
+    while (e && le !== e && (/\S/).test(e)) {
+      le = e;
+      for (var i in ps) {
+        p = ps[i];
+        if (m = e.match(p)) {
+          // use the Selector.assertions methods unless the selector
+          // is too complex.
+          if (as[i]) {
+            this.tokens.push([i, Object.clone(m)]);
+            e = e.replace(m[0], '');
+          } else {
+            // reluctantly do a document-wide search
+            // and look for a match in the array
+            return this.findElements(document).include(element);
+          }
+        }
+      }
+    }
+
+    var match = true, name, matches;
+    for (var i = 0, token; token = this.tokens[i]; i++) {
+      name = token[0], matches = token[1];
+      if (!Selector.assertions[name](element, matches)) {
+        match = false; break;
+      }
+    }
+
+    return match;
+  },
+
+  toString: function() {
+    return this.expression;
+  },
+
+  inspect: function() {
+    return "#<Selector:" + this.expression.inspect() + ">";
+  }
+});
+
+Object.extend(Selector, {
+  _cache: { },
+
+  xpath: {
+    descendant:   "//*",
+    child:        "/*",
+    adjacent:     "/following-sibling::*[1]",
+    laterSibling: '/following-sibling::*',
+    tagName:      function(m) {
+      if (m[1] == '*') return '';
+      return "[local-name()='" + m[1].toLowerCase() +
+             "' or local-name()='" + m[1].toUpperCase() + "']";
+    },
+    className:    "[contains(concat(' ', @class, ' '), ' #{1} ')]",
+    id:           "[@id='#{1}']",
+    attrPresence: function(m) {
+      m[1] = m[1].toLowerCase();
+      return new Template("[@#{1}]").evaluate(m);
+    },
+    attr: function(m) {
+      m[1] = m[1].toLowerCase();
+      m[3] = m[5] || m[6];
+      return new Template(Selector.xpath.operators[m[2]]).evaluate(m);
+    },
+    pseudo: function(m) {
+      var h = Selector.xpath.pseudos[m[1]];
+      if (!h) return '';
+      if (Object.isFunction(h)) return h(m);
+      return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);
+    },
+    operators: {
+      '=':  "[@#{1}='#{3}']",
+      '!=': "[@#{1}!='#{3}']",
+      '^=': "[starts-with(@#{1}, '#{3}')]",
+      '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",
+      '*=': "[contains(@#{1}, '#{3}')]",
+      '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",
+      '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"
+    },
+    pseudos: {
+      'first-child': '[not(preceding-sibling::*)]',
+      'last-child':  '[not(following-sibling::*)]',
+      'only-child':  '[not(preceding-sibling::* or following-sibling::*)]',
+      'empty':       "[count(*) = 0 and (count(text()) = 0)]",
+      'checked':     "[@checked]",
+      'disabled':    "[(@disabled) and (@type!='hidden')]",
+      'enabled':     "[not(@disabled) and (@type!='hidden')]",
+      'not': function(m) {
+        var e = m[6], p = Selector.patterns,
+            x = Selector.xpath, le, v;
+
+        var exclusion = [];
+        while (e && le != e && (/\S/).test(e)) {
+          le = e;
+          for (var i in p) {
+            if (m = e.match(p[i])) {
+              v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m);
+              exclusion.push("(" + v.substring(1, v.length - 1) + ")");
+              e = e.replace(m[0], '');
+              break;
+            }
+          }
+        }
+        return "[not(" + exclusion.join(" and ") + ")]";
+      },
+      'nth-child':      function(m) {
+        return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);
+      },
+      'nth-last-child': function(m) {
+        return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);
+      },
+      'nth-of-type':    function(m) {
+        return Selector.xpath.pseudos.nth("position() ", m);
+      },
+      'nth-last-of-type': function(m) {
+        return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m);
+      },
+      'first-of-type':  function(m) {
+        m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m);
+      },
+      'last-of-type':   function(m) {
+        m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m);
+      },
+      'only-of-type':   function(m) {
+        var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m);
+      },
+      nth: function(fragment, m) {
+        var mm, formula = m[6], predicate;
+        if (formula == 'even') formula = '2n+0';
+        if (formula == 'odd')  formula = '2n+1';
+        if (mm = formula.match(/^(\d+)$/)) // digit only
+          return '[' + fragment + "= " + mm[1] + ']';
+        if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+          if (mm[1] == "-") mm[1] = -1;
+          var a = mm[1] ? Number(mm[1]) : 1;
+          var b = mm[2] ? Number(mm[2]) : 0;
+          predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " +
+          "((#{fragment} - #{b}) div #{a} >= 0)]";
+          return new Template(predicate).evaluate({
+            fragment: fragment, a: a, b: b });
+        }
+      }
+    }
+  },
+
+  criteria: {
+    tagName:      'n = h.tagName(n, r, "#{1}", c);      c = false;',
+    className:    'n = h.className(n, r, "#{1}", c);    c = false;',
+    id:           'n = h.id(n, r, "#{1}", c);           c = false;',
+    attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;',
+    attr: function(m) {
+      m[3] = (m[5] || m[6]);
+      return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);
+    },
+    pseudo: function(m) {
+      if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
+      return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);
+    },
+    descendant:   'c = "descendant";',
+    child:        'c = "child";',
+    adjacent:     'c = "adjacent";',
+    laterSibling: 'c = "laterSibling";'
+  },
+
+  patterns: {
+    // combinators must be listed first
+    // (and descendant needs to be last combinator)
+    laterSibling: /^\s*~\s*/,
+    child:        /^\s*>\s*/,
+    adjacent:     /^\s*\+\s*/,
+    descendant:   /^\s/,
+
+    // selectors follow
+    tagName:      /^\s*(\*|[\w\-]+)(\b|$)?/,
+    id:           /^#([\w\-\*]+)(\b|$)/,
+    className:    /^\.([\w\-\*]+)(\b|$)/,
+    pseudo:
+/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,
+    attrPresence: /^\[((?:[\w]+:)?[\w]+)\]/,
+    attr:         /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/
+  },
+
+  // for Selector.match and Element#match
+  assertions: {
+    tagName: function(element, matches) {
+      return matches[1].toUpperCase() == element.tagName.toUpperCase();
+    },
+
+    className: function(element, matches) {
+      return Element.hasClassName(element, matches[1]);
+    },
+
+    id: function(element, matches) {
+      return element.id === matches[1];
+    },
+
+    attrPresence: function(element, matches) {
+      return Element.hasAttribute(element, matches[1]);
+    },
+
+    attr: function(element, matches) {
+      var nodeValue = Element.readAttribute(element, matches[1]);
+      return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]);
+    }
+  },
+
+  handlers: {
+    // UTILITY FUNCTIONS
+    // joins two collections
+    concat: function(a, b) {
+      for (var i = 0, node; node = b[i]; i++)
+        a.push(node);
+      return a;
+    },
+
+    // marks an array of nodes for counting
+    mark: function(nodes) {
+      var _true = Prototype.emptyFunction;
+      for (var i = 0, node; node = nodes[i]; i++)
+        node._countedByPrototype = _true;
+      return nodes;
+    },
+
+    unmark: function(nodes) {
+      for (var i = 0, node; node = nodes[i]; i++)
+        node._countedByPrototype = undefined;
+      return nodes;
+    },
+
+    // mark each child node with its position (for nth calls)
+    // "ofType" flag indicates whether we're indexing for nth-of-type
+    // rather than nth-child
+    index: function(parentNode, reverse, ofType) {
+      parentNode._countedByPrototype = Prototype.emptyFunction;
+      if (reverse) {
+        for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
+          var node = nodes[i];
+          if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
+        }
+      } else {
+        for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
+          if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
+      }
+    },
+
+    // filters out duplicates and extends all nodes
+    unique: function(nodes) {
+      if (nodes.length == 0) return nodes;
+      var results = [], n;
+      for (var i = 0, l = nodes.length; i < l; i++)
+        if (!(n = nodes[i])._countedByPrototype) {
+          n._countedByPrototype = Prototype.emptyFunction;
+          results.push(Element.extend(n));
+        }
+      return Selector.handlers.unmark(results);
+    },
+
+    // COMBINATOR FUNCTIONS
+    descendant: function(nodes) {
+      var h = Selector.handlers;
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        h.concat(results, node.getElementsByTagName('*'));
+      return results;
+    },
+
+    child: function(nodes) {
+      var h = Selector.handlers;
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        for (var j = 0, child; child = node.childNodes[j]; j++)
+          if (child.nodeType == 1 && child.tagName != '!') results.push(child);
+      }
+      return results;
+    },
+
+    adjacent: function(nodes) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        var next = this.nextElementSibling(node);
+        if (next) results.push(next);
+      }
+      return results;
+    },
+
+    laterSibling: function(nodes) {
+      var h = Selector.handlers;
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        h.concat(results, Element.nextSiblings(node));
+      return results;
+    },
+
+    nextElementSibling: function(node) {
+      while (node = node.nextSibling)
+        if (node.nodeType == 1) return node;
+      return null;
+    },
+
+    previousElementSibling: function(node) {
+      while (node = node.previousSibling)
+        if (node.nodeType == 1) return node;
+      return null;
+    },
+
+    // TOKEN FUNCTIONS
+    tagName: function(nodes, root, tagName, combinator) {
+      var uTagName = tagName.toUpperCase();
+      var results = [], h = Selector.handlers;
+      if (nodes) {
+        if (combinator) {
+          // fastlane for ordinary descendant combinators
+          if (combinator == "descendant") {
+            for (var i = 0, node; node = nodes[i]; i++)
+              h.concat(results, node.getElementsByTagName(tagName));
+            return results;
+          } else nodes = this[combinator](nodes);
+          if (tagName == "*") return nodes;
+        }
+        for (var i = 0, node; node = nodes[i]; i++)
+          if (node.tagName.toUpperCase() === uTagName) results.push(node);
+        return results;
+      } else return root.getElementsByTagName(tagName);
+    },
+
+    id: function(nodes, root, id, combinator) {
+      var targetNode = $(id), h = Selector.handlers;
+      if (!targetNode) return [];
+      if (!nodes && root == document) return [targetNode];
+      if (nodes) {
+        if (combinator) {
+          if (combinator == 'child') {
+            for (var i = 0, node; node = nodes[i]; i++)
+              if (targetNode.parentNode == node) return [targetNode];
+          } else if (combinator == 'descendant') {
+            for (var i = 0, node; node = nodes[i]; i++)
+              if (Element.descendantOf(targetNode, node)) return [targetNode];
+          } else if (combinator == 'adjacent') {
+            for (var i = 0, node; node = nodes[i]; i++)
+              if (Selector.handlers.previousElementSibling(targetNode) == node)
+                return [targetNode];
+          } else nodes = h[combinator](nodes);
+        }
+        for (var i = 0, node; node = nodes[i]; i++)
+          if (node == targetNode) return [targetNode];
+        return [];
+      }
+      return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : [];
+    },
+
+    className: function(nodes, root, className, combinator) {
+      if (nodes && combinator) nodes = this[combinator](nodes);
+      return Selector.handlers.byClassName(nodes, root, className);
+    },
+
+    byClassName: function(nodes, root, className) {
+      if (!nodes) nodes = Selector.handlers.descendant([root]);
+      var needle = ' ' + className + ' ';
+      for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) {
+        nodeClassName = node.className;
+        if (nodeClassName.length == 0) continue;
+        if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle))
+          results.push(node);
+      }
+      return results;
+    },
+
+    attrPresence: function(nodes, root, attr, combinator) {
+      if (!nodes) nodes = root.getElementsByTagName("*");
+      if (nodes && combinator) nodes = this[combinator](nodes);
+      var results = [];
+      for (var i = 0, node; node = nodes[i]; i++)
+        if (Element.hasAttribute(node, attr)) results.push(node);
+      return results;
+    },
+
+    attr: function(nodes, root, attr, value, operator, combinator) {
+      if (!nodes) nodes = root.getElementsByTagName("*");
+      if (nodes && combinator) nodes = this[combinator](nodes);
+      var handler = Selector.operators[operator], results = [];
+      for (var i = 0, node; node = nodes[i]; i++) {
+        var nodeValue = Element.readAttribute(node, attr);
+        if (nodeValue === null) continue;
+        if (handler(nodeValue, value)) results.push(node);
+      }
+      return results;
+    },
+
+    pseudo: function(nodes, name, value, root, combinator) {
+      if (nodes && combinator) nodes = this[combinator](nodes);
+      if (!nodes) nodes = root.getElementsByTagName("*");
+      return Selector.pseudos[name](nodes, value, root);
+    }
+  },
+
+  pseudos: {
+    'first-child': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        if (Selector.handlers.previousElementSibling(node)) continue;
+          results.push(node);
+      }
+      return results;
+    },
+    'last-child': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        if (Selector.handlers.nextElementSibling(node)) continue;
+          results.push(node);
+      }
+      return results;
+    },
+    'only-child': function(nodes, value, root) {
+      var h = Selector.handlers;
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (!h.previousElementSibling(node) && !h.nextElementSibling(node))
+          results.push(node);
+      return results;
+    },
+    'nth-child':        function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, formula, root);
+    },
+    'nth-last-child':   function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, formula, root, true);
+    },
+    'nth-of-type':      function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, formula, root, false, true);
+    },
+    'nth-last-of-type': function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, formula, root, true, true);
+    },
+    'first-of-type':    function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, "1", root, false, true);
+    },
+    'last-of-type':     function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, "1", root, true, true);
+    },
+    'only-of-type':     function(nodes, formula, root) {
+      var p = Selector.pseudos;
+      return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root);
+    },
+
+    // handles the an+b logic
+    getIndices: function(a, b, total) {
+      if (a == 0) return b > 0 ? [b] : [];
+      return $R(1, total).inject([], function(memo, i) {
+        if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i);
+        return memo;
+      });
+    },
+
+    // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type
+    nth: function(nodes, formula, root, reverse, ofType) {
+      if (nodes.length == 0) return [];
+      if (formula == 'even') formula = '2n+0';
+      if (formula == 'odd')  formula = '2n+1';
+      var h = Selector.handlers, results = [], indexed = [], m;
+      h.mark(nodes);
+      for (var i = 0, node; node = nodes[i]; i++) {
+        if (!node.parentNode._countedByPrototype) {
+          h.index(node.parentNode, reverse, ofType);
+          indexed.push(node.parentNode);
+        }
+      }
+      if (formula.match(/^\d+$/)) { // just a number
+        formula = Number(formula);
+        for (var i = 0, node; node = nodes[i]; i++)
+          if (node.nodeIndex == formula) results.push(node);
+      } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+        if (m[1] == "-") m[1] = -1;
+        var a = m[1] ? Number(m[1]) : 1;
+        var b = m[2] ? Number(m[2]) : 0;
+        var indices = Selector.pseudos.getIndices(a, b, nodes.length);
+        for (var i = 0, node, l = indices.length; node = nodes[i]; i++) {
+          for (var j = 0; j < l; j++)
+            if (node.nodeIndex == indices[j]) results.push(node);
+        }
+      }
+      h.unmark(nodes);
+      h.unmark(indexed);
+      return results;
+    },
+
+    'empty': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        // IE treats comments as element nodes
+        if (node.tagName == '!' || node.firstChild) continue;
+        results.push(node);
+      }
+      return results;
+    },
+
+    'not': function(nodes, selector, root) {
+      var h = Selector.handlers, selectorType, m;
+      var exclusions = new Selector(selector).findElements(root);
+      h.mark(exclusions);
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (!node._countedByPrototype) results.push(node);
+      h.unmark(exclusions);
+      return results;
+    },
+
+    'enabled': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (!node.disabled && (!node.type || node.type !== 'hidden'))
+          results.push(node);
+      return results;
+    },
+
+    'disabled': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (node.disabled) results.push(node);
+      return results;
+    },
+
+    'checked': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (node.checked) results.push(node);
+      return results;
+    }
+  },
+
+  operators: {
+    '=':  function(nv, v) { return nv == v; },
+    '!=': function(nv, v) { return nv != v; },
+    '^=': function(nv, v) { return nv == v || nv && nv.startsWith(v); },
+    '$=': function(nv, v) { return nv == v || nv && nv.endsWith(v); },
+    '*=': function(nv, v) { return nv == v || nv && nv.include(v); },
+    '$=': function(nv, v) { return nv.endsWith(v); },
+    '*=': function(nv, v) { return nv.include(v); },
+    '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); },
+    '|=': function(nv, v) { return ('-' + (nv || "").toUpperCase() +
+     '-').include('-' + (v || "").toUpperCase() + '-'); }
+  },
+
+  split: function(expression) {
+    var expressions = [];
+    expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
+      expressions.push(m[1].strip());
+    });
+    return expressions;
+  },
+
+  matchElements: function(elements, expression) {
+    var matches = $$(expression), h = Selector.handlers;
+    h.mark(matches);
+    for (var i = 0, results = [], element; element = elements[i]; i++)
+      if (element._countedByPrototype) results.push(element);
+    h.unmark(matches);
+    return results;
+  },
+
+  findElement: function(elements, expression, index) {
+    if (Object.isNumber(expression)) {
+      index = expression; expression = false;
+    }
+    return Selector.matchElements(elements, expression || '*')[index || 0];
+  },
+
+  findChildElements: function(element, expressions) {
+    expressions = Selector.split(expressions.join(','));
+    var results = [], h = Selector.handlers;
+    for (var i = 0, l = expressions.length, selector; i < l; i++) {
+      selector = new Selector(expressions[i].strip());
+      h.concat(results, selector.findElements(element));
+    }
+    return (l > 1) ? h.unique(results) : results;
+  }
+});
+
+if (Prototype.Browser.IE) {
+  Object.extend(Selector.handlers, {
+    // IE returns comment nodes on getElementsByTagName("*").
+    // Filter them out.
+    concat: function(a, b) {
+      for (var i = 0, node; node = b[i]; i++)
+        if (node.tagName !== "!") a.push(node);
+      return a;
+    },
+
+    // IE improperly serializes _countedByPrototype in (inner|outer)HTML.
+    unmark: function(nodes) {
+      for (var i = 0, node; node = nodes[i]; i++)
+        node.removeAttribute('_countedByPrototype');
+      return nodes;
+    }
+  });
+}
+
+function $$() {
+  return Selector.findChildElements(document, $A(arguments));
+}
+var Form = {
+  reset: function(form) {
+    $(form).reset();
+    return form;
+  },
+
+  serializeElements: function(elements, options) {
+    if (typeof options != 'object') options = { hash: !!options };
+    else if (Object.isUndefined(options.hash)) options.hash = true;
+    var key, value, submitted = false, submit = options.submit;
+
+    var data = elements.inject({ }, function(result, element) {
+      if (!element.disabled && element.name) {
+        key = element.name; value = $(element).getValue();
+        if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted &&
+            submit !== false && (!submit || key == submit) && (submitted = true)))) {
+          if (key in result) {
+            // a key is already present; construct an array of values
+            if (!Object.isArray(result[key])) result[key] = [result[key]];
+            result[key].push(value);
+          }
+          else result[key] = value;
+        }
+      }
+      return result;
+    });
+
+    return options.hash ? data : Object.toQueryString(data);
+  }
+};
+
+Form.Methods = {
+  serialize: function(form, options) {
+    return Form.serializeElements(Form.getElements(form), options);
+  },
+
+  getElements: function(form) {
+    return $A($(form).getElementsByTagName('*')).inject([],
+      function(elements, child) {
+        if (Form.Element.Serializers[child.tagName.toLowerCase()])
+          elements.push(Element.extend(child));
+        return elements;
+      }
+    );
+  },
+
+  getInputs: function(form, typeName, name) {
+    form = $(form);
+    var inputs = form.getElementsByTagName('input');
+
+    if (!typeName && !name) return $A(inputs).map(Element.extend);
+
+    for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
+      var input = inputs[i];
+      if ((typeName && input.type != typeName) || (name && input.name != name))
+        continue;
+      matchingInputs.push(Element.extend(input));
+    }
+
+    return matchingInputs;
+  },
+
+  disable: function(form) {
+    form = $(form);
+    Form.getElements(form).invoke('disable');
+    return form;
+  },
+
+  enable: function(form) {
+    form = $(form);
+    Form.getElements(form).invoke('enable');
+    return form;
+  },
+
+  findFirstElement: function(form) {
+    var elements = $(form).getElements().findAll(function(element) {
+      return 'hidden' != element.type && !element.disabled;
+    });
+    var firstByIndex = elements.findAll(function(element) {
+      return element.hasAttribute('tabIndex') && element.tabIndex >= 0;
+    }).sortBy(function(element) { return element.tabIndex }).first();
+
+    return firstByIndex ? firstByIndex : elements.find(function(element) {
+      return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
+    });
+  },
+
+  focusFirstElement: function(form) {
+    form = $(form);
+    form.findFirstElement().activate();
+    return form;
+  },
+
+  request: function(form, options) {
+    form = $(form), options = Object.clone(options || { });
+
+    var params = options.parameters, action = form.readAttribute('action') || '';
+    if (action.blank()) action = window.location.href;
+    options.parameters = form.serialize(true);
+
+    if (params) {
+      if (Object.isString(params)) params = params.toQueryParams();
+      Object.extend(options.parameters, params);
+    }
+
+    if (form.hasAttribute('method') && !options.method)
+      options.method = form.method;
+
+    return new Ajax.Request(action, options);
+  }
+};
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element = {
+  focus: function(element) {
+    $(element).focus();
+    return element;
+  },
+
+  select: function(element) {
+    $(element).select();
+    return element;
+  }
+};
+
+Form.Element.Methods = {
+  serialize: function(element) {
+    element = $(element);
+    if (!element.disabled && element.name) {
+      var value = element.getValue();
+      if (value != undefined) {
+        var pair = { };
+        pair[element.name] = value;
+        return Object.toQueryString(pair);
+      }
+    }
+    return '';
+  },
+
+  getValue: function(element) {
+    element = $(element);
+    var method = element.tagName.toLowerCase();
+    return Form.Element.Serializers[method](element);
+  },
+
+  setValue: function(element, value) {
+    element = $(element);
+    var method = element.tagName.toLowerCase();
+    Form.Element.Serializers[method](element, value);
+    return element;
+  },
+
+  clear: function(element) {
+    $(element).value = '';
+    return element;
+  },
+
+  present: function(element) {
+    return $(element).value != '';
+  },
+
+  activate: function(element) {
+    element = $(element);
+    try {
+      element.focus();
+      if (element.select && (element.tagName.toLowerCase() != 'input' ||
+          !['button', 'reset', 'submit'].include(element.type)))
+        element.select();
+    } catch (e) { }
+    return element;
+  },
+
+  disable: function(element) {
+    element = $(element);
+    element.disabled = true;
+    return element;
+  },
+
+  enable: function(element) {
+    element = $(element);
+    element.disabled = false;
+    return element;
+  }
+};
+
+/*--------------------------------------------------------------------------*/
+
+var Field = Form.Element;
+var $F = Form.Element.Methods.getValue;
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element.Serializers = {
+  input: function(element, value) {
+    switch (element.type.toLowerCase()) {
+      case 'checkbox':
+      case 'radio':
+        return Form.Element.Serializers.inputSelector(element, value);
+      default:
+        return Form.Element.Serializers.textarea(element, value);
+    }
+  },
+
+  inputSelector: function(element, value) {
+    if (Object.isUndefined(value)) return element.checked ? element.value : null;
+    else element.checked = !!value;
+  },
+
+  textarea: function(element, value) {
+    if (Object.isUndefined(value)) return element.value;
+    else element.value = value;
+  },
+
+  select: function(element, value) {
+    if (Object.isUndefined(value))
+      return this[element.type == 'select-one' ?
+        'selectOne' : 'selectMany'](element);
+    else {
+      var opt, currentValue, single = !Object.isArray(value);
+      for (var i = 0, length = element.length; i < length; i++) {
+        opt = element.options[i];
+        currentValue = this.optionValue(opt);
+        if (single) {
+          if (currentValue == value) {
+            opt.selected = true;
+            return;
+          }
+        }
+        else opt.selected = value.include(currentValue);
+      }
+    }
+  },
+
+  selectOne: function(element) {
+    var index = element.selectedIndex;
+    return index >= 0 ? this.optionValue(element.options[index]) : null;
+  },
+
+  selectMany: function(element) {
+    var values, length = element.length;
+    if (!length) return null;
+
+    for (var i = 0, values = []; i < length; i++) {
+      var opt = element.options[i];
+      if (opt.selected) values.push(this.optionValue(opt));
+    }
+    return values;
+  },
+
+  optionValue: function(opt) {
+    // extend element because hasAttribute may not be native
+    return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
+  }
+};
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.TimedObserver = Class.create(PeriodicalExecuter, {
+  initialize: function($super, element, frequency, callback) {
+    $super(callback, frequency);
+    this.element   = $(element);
+    this.lastValue = this.getValue();
+  },
+
+  execute: function() {
+    var value = this.getValue();
+    if (Object.isString(this.lastValue) && Object.isString(value) ?
+        this.lastValue != value : String(this.lastValue) != String(value)) {
+      this.callback(this.element, value);
+      this.lastValue = value;
+    }
+  }
+});
+
+Form.Element.Observer = Class.create(Abstract.TimedObserver, {
+  getValue: function() {
+    return Form.Element.getValue(this.element);
+  }
+});
+
+Form.Observer = Class.create(Abstract.TimedObserver, {
+  getValue: function() {
+    return Form.serialize(this.element);
+  }
+});
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.EventObserver = Class.create({
+  initialize: function(element, callback) {
+    this.element  = $(element);
+    this.callback = callback;
+
+    this.lastValue = this.getValue();
+    if (this.element.tagName.toLowerCase() == 'form')
+      this.registerFormCallbacks();
+    else
+      this.registerCallback(this.element);
+  },
+
+  onElementEvent: function() {
+    var value = this.getValue();
+    if (this.lastValue != value) {
+      this.callback(this.element, value);
+      this.lastValue = value;
+    }
+  },
+
+  registerFormCallbacks: function() {
+    Form.getElements(this.element).each(this.registerCallback, this);
+  },
+
+  registerCallback: function(element) {
+    if (element.type) {
+      switch (element.type.toLowerCase()) {
+        case 'checkbox':
+        case 'radio':
+          Event.observe(element, 'click', this.onElementEvent.bind(this));
+          break;
+        default:
+          Event.observe(element, 'change', this.onElementEvent.bind(this));
+          break;
+      }
+    }
+  }
+});
+
+Form.Element.EventObserver = Class.create(Abstract.EventObserver, {
+  getValue: function() {
+    return Form.Element.getValue(this.element);
+  }
+});
+
+Form.EventObserver = Class.create(Abstract.EventObserver, {
+  getValue: function() {
+    return Form.serialize(this.element);
+  }
+});
+if (!window.Event) var Event = { };
+
+Object.extend(Event, {
+  KEY_BACKSPACE: 8,
+  KEY_TAB:       9,
+  KEY_RETURN:   13,
+  KEY_ESC:      27,
+  KEY_LEFT:     37,
+  KEY_UP:       38,
+  KEY_RIGHT:    39,
+  KEY_DOWN:     40,
+  KEY_DELETE:   46,
+  KEY_HOME:     36,
+  KEY_END:      35,
+  KEY_PAGEUP:   33,
+  KEY_PAGEDOWN: 34,
+  KEY_INSERT:   45,
+
+  cache: { },
+
+  relatedTarget: function(event) {
+    var element;
+    switch(event.type) {
+      case 'mouseover': element = event.fromElement; break;
+      case 'mouseout':  element = event.toElement;   break;
+      default: return null;
+    }
+    return Element.extend(element);
+  }
+});
+
+Event.Methods = (function() {
+  var isButton;
+
+  if (Prototype.Browser.IE) {
+    var buttonMap = { 0: 1, 1: 4, 2: 2 };
+    isButton = function(event, code) {
+      return event.button == buttonMap[code];
+    };
+
+  } else if (Prototype.Browser.WebKit) {
+    isButton = function(event, code) {
+      switch (code) {
+        case 0: return event.which == 1 && !event.metaKey;
+        case 1: return event.which == 1 && event.metaKey;
+        default: return false;
+      }
+    };
+
+  } else {
+    isButton = function(event, code) {
+      return event.which ? (event.which === code + 1) : (event.button === code);
+    };
+  }
+
+  return {
+    isLeftClick:   function(event) { return isButton(event, 0) },
+    isMiddleClick: function(event) { return isButton(event, 1) },
+    isRightClick:  function(event) { return isButton(event, 2) },
+
+    element: function(event) {
+      event = Event.extend(event);
+
+      var node          = event.target,
+          type          = event.type,
+          currentTarget = event.currentTarget;
+
+      if (currentTarget && currentTarget.tagName) {
+        // Firefox screws up the "click" event when moving between radio buttons
+        // via arrow keys. It also screws up the "load" and "error" events on images,
+        // reporting the document as the target instead of the original image.
+        if (type === 'load' || type === 'error' ||
+          (type === 'click' && currentTarget.tagName.toLowerCase() === 'input'
+            && currentTarget.type === 'radio'))
+              node = currentTarget;
+      }
+      if (node.nodeType == Node.TEXT_NODE) node = node.parentNode;
+      return Element.extend(node);
+    },
+
+    findElement: function(event, expression) {
+      var element = Event.element(event);
+      if (!expression) return element;
+      var elements = [element].concat(element.ancestors());
+      return Selector.findElement(elements, expression, 0);
+    },
+
+    pointer: function(event) {
+      var docElement = document.documentElement,
+      body = document.body || { scrollLeft: 0, scrollTop: 0 };
+      return {
+        x: event.pageX || (event.clientX +
+          (docElement.scrollLeft || body.scrollLeft) -
+          (docElement.clientLeft || 0)),
+        y: event.pageY || (event.clientY +
+          (docElement.scrollTop || body.scrollTop) -
+          (docElement.clientTop || 0))
+      };
+    },
+
+    pointerX: function(event) { return Event.pointer(event).x },
+    pointerY: function(event) { return Event.pointer(event).y },
+
+    stop: function(event) {
+      Event.extend(event);
+      event.preventDefault();
+      event.stopPropagation();
+      event.stopped = true;
+    }
+  };
+})();
+
+Event.extend = (function() {
+  var methods = Object.keys(Event.Methods).inject({ }, function(m, name) {
+    m[name] = Event.Methods[name].methodize();
+    return m;
+  });
+
+  if (Prototype.Browser.IE) {
+    Object.extend(methods, {
+      stopPropagation: function() { this.cancelBubble = true },
+      preventDefault:  function() { this.returnValue = false },
+      inspect: function() { return "[object Event]" }
+    });
+
+    return function(event) {
+      if (!event) return false;
+      if (event._extendedByPrototype) return event;
+
+      event._extendedByPrototype = Prototype.emptyFunction;
+      var pointer = Event.pointer(event);
+      Object.extend(event, {
+        target: event.srcElement,
+        relatedTarget: Event.relatedTarget(event),
+        pageX:  pointer.x,
+        pageY:  pointer.y
+      });
+      return Object.extend(event, methods);
+    };
+
+  } else {
+    Event.prototype = Event.prototype || document.createEvent("HTMLEvents")['__proto__'];
+    Object.extend(Event.prototype, methods);
+    return Prototype.K;
+  }
+})();
+
+Object.extend(Event, (function() {
+  var cache = Event.cache;
+
+  function getEventID(element) {
+    if (element._prototypeEventID) return element._prototypeEventID[0];
+    arguments.callee.id = arguments.callee.id || 1;
+    return element._prototypeEventID = [++arguments.callee.id];
+  }
+
+  function getDOMEventName(eventName) {
+    if (eventName && eventName.include(':')) return "dataavailable";
+    return eventName;
+  }
+
+  function getCacheForID(id) {
+    return cache[id] = cache[id] || { };
+  }
+
+  function getWrappersForEventName(id, eventName) {
+    var c = getCacheForID(id);
+    return c[eventName] = c[eventName] || [];
+  }
+
+  function createWrapper(element, eventName, handler) {
+    var id = getEventID(element);
+    var c = getWrappersForEventName(id, eventName);
+    if (c.pluck("handler").include(handler)) return false;
+
+    var wrapper = function(event) {
+      if (!Event || !Event.extend ||
+        (event.eventName && event.eventName != eventName))
+          return false;
+
+      Event.extend(event);
+      handler.call(element, event);
+    };
+
+    wrapper.handler = handler;
+    c.push(wrapper);
+    return wrapper;
+  }
+
+  function findWrapper(id, eventName, handler) {
+    var c = getWrappersForEventName(id, eventName);
+    return c.find(function(wrapper) { return wrapper.handler == handler });
+  }
+
+  function destroyWrapper(id, eventName, handler) {
+    var c = getCacheForID(id);
+    if (!c[eventName]) return false;
+    c[eventName] = c[eventName].without(findWrapper(id, eventName, handler));
+  }
+
+  function destroyCache() {
+    for (var id in cache)
+      for (var eventName in cache[id])
+        cache[id][eventName] = null;
+  }
+
+
+  // Internet Explorer needs to remove event handlers on page unload
+  // in order to avoid memory leaks.
+  if (window.attachEvent) {
+    window.attachEvent("onunload", destroyCache);
+  }
+
+  // Safari has a dummy event handler on page unload so that it won't
+  // use its bfcache. Safari <= 3.1 has an issue with restoring the "document"
+  // object when page is returned to via the back button using its bfcache.
+  if (Prototype.Browser.WebKit) {
+    window.addEventListener('unload', Prototype.emptyFunction, false);
+  }
+
+  return {
+    observe: function(element, eventName, handler) {
+      element = $(element);
+      var name = getDOMEventName(eventName);
+
+      var wrapper = createWrapper(element, eventName, handler);
+      if (!wrapper) return element;
+
+      if (element.addEventListener) {
+        element.addEventListener(name, wrapper, false);
+      } else {
+        element.attachEvent("on" + name, wrapper);
+      }
+
+      return element;
+    },
+
+    stopObserving: function(element, eventName, handler) {
+      element = $(element);
+      var id = getEventID(element), name = getDOMEventName(eventName);
+
+      if (!handler && eventName) {
+        getWrappersForEventName(id, eventName).each(function(wrapper) {
+          element.stopObserving(eventName, wrapper.handler);
+        });
+        return element;
+
+      } else if (!eventName) {
+        Object.keys(getCacheForID(id)).each(function(eventName) {
+          element.stopObserving(eventName);
+        });
+        return element;
+      }
+
+      var wrapper = findWrapper(id, eventName, handler);
+      if (!wrapper) return element;
+
+      if (element.removeEventListener) {
+        element.removeEventListener(name, wrapper, false);
+      } else {
+        element.detachEvent("on" + name, wrapper);
+      }
+
+      destroyWrapper(id, eventName, handler);
+
+      return element;
+    },
+
+    fire: function(element, eventName, memo) {
+      element = $(element);
+      if (element == document && document.createEvent && !element.dispatchEvent)
+        element = document.documentElement;
+
+      var event;
+      if (document.createEvent) {
+        event = document.createEvent("HTMLEvents");
+        event.initEvent("dataavailable", true, true);
+      } else {
+        event = document.createEventObject();
+        event.eventType = "ondataavailable";
+      }
+
+      event.eventName = eventName;
+      event.memo = memo || { };
+
+      if (document.createEvent) {
+        element.dispatchEvent(event);
+      } else {
+        element.fireEvent(event.eventType, event);
+      }
+
+      return Event.extend(event);
+    }
+  };
+})());
+
+Object.extend(Event, Event.Methods);
+
+Element.addMethods({
+  fire:          Event.fire,
+  observe:       Event.observe,
+  stopObserving: Event.stopObserving
+});
+
+Object.extend(document, {
+  fire:          Element.Methods.fire.methodize(),
+  observe:       Element.Methods.observe.methodize(),
+  stopObserving: Element.Methods.stopObserving.methodize(),
+  loaded:        false
+});
+
+(function() {
+  /* Support for the DOMContentLoaded event is based on work by Dan Webb,
+     Matthias Miller, Dean Edwards and John Resig. */
+
+  var timer;
+
+  function fireContentLoadedEvent() {
+    if (document.loaded) return;
+    if (timer) window.clearInterval(timer);
+    document.fire("dom:loaded");
+    document.loaded = true;
+  }
+
+  if (document.addEventListener) {
+    if (Prototype.Browser.WebKit) {
+      timer = window.setInterval(function() {
+        if (/loaded|complete/.test(document.readyState))
+          fireContentLoadedEvent();
+      }, 0);
+
+      Event.observe(window, "load", fireContentLoadedEvent);
+
+    } else {
+      document.addEventListener("DOMContentLoaded",
+        fireContentLoadedEvent, false);
+    }
+
+  } else {
+    document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");
+    $("__onDOMContentLoaded").onreadystatechange = function() {
+      if (this.readyState == "complete") {
+        this.onreadystatechange = null;
+        fireContentLoadedEvent();
+      }
+    };
+  }
+})();
+/*------------------------------- DEPRECATED -------------------------------*/
+
+Hash.toQueryString = Object.toQueryString;
+
+var Toggle = { display: Element.toggle };
+
+Element.Methods.childOf = Element.Methods.descendantOf;
+
+var Insertion = {
+  Before: function(element, content) {
+    return Element.insert(element, {before:content});
+  },
+
+  Top: function(element, content) {
+    return Element.insert(element, {top:content});
+  },
+
+  Bottom: function(element, content) {
+    return Element.insert(element, {bottom:content});
+  },
+
+  After: function(element, content) {
+    return Element.insert(element, {after:content});
+  }
+};
+
+var $continue = new Error('"throw $continue" is deprecated, use "return" instead');
+
+// This should be moved to script.aculo.us; notice the deprecated methods
+// further below, that map to the newer Element methods.
+var Position = {
+  // set to true if needed, warning: firefox performance problems
+  // NOT neeeded for page scrolling, only if draggable contained in
+  // scrollable elements
+  includeScrollOffsets: false,
+
+  // must be called before calling withinIncludingScrolloffset, every time the
+  // page is scrolled
+  prepare: function() {
+    this.deltaX =  window.pageXOffset
+                || document.documentElement.scrollLeft
+                || document.body.scrollLeft
+                || 0;
+    this.deltaY =  window.pageYOffset
+                || document.documentElement.scrollTop
+                || document.body.scrollTop
+                || 0;
+  },
+
+  // caches x/y coordinate pair to use with overlap
+  within: function(element, x, y) {
+    if (this.includeScrollOffsets)
+      return this.withinIncludingScrolloffsets(element, x, y);
+    this.xcomp = x;
+    this.ycomp = y;
+    this.offset = Element.cumulativeOffset(element);
+
+    return (y >= this.offset[1] &&
+            y <  this.offset[1] + element.offsetHeight &&
+            x >= this.offset[0] &&
+            x <  this.offset[0] + element.offsetWidth);
+  },
+
+  withinIncludingScrolloffsets: function(element, x, y) {
+    var offsetcache = Element.cumulativeScrollOffset(element);
+
+    this.xcomp = x + offsetcache[0] - this.deltaX;
+    this.ycomp = y + offsetcache[1] - this.deltaY;
+    this.offset = Element.cumulativeOffset(element);
+
+    return (this.ycomp >= this.offset[1] &&
+            this.ycomp <  this.offset[1] + element.offsetHeight &&
+            this.xcomp >= this.offset[0] &&
+            this.xcomp <  this.offset[0] + element.offsetWidth);
+  },
+
+  // within must be called directly before
+  overlap: function(mode, element) {
+    if (!mode) return 0;
+    if (mode == 'vertical')
+      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
+        element.offsetHeight;
+    if (mode == 'horizontal')
+      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
+        element.offsetWidth;
+  },
+
+  // Deprecation layer -- use newer Element methods now (1.5.2).
+
+  cumulativeOffset: Element.Methods.cumulativeOffset,
+
+  positionedOffset: Element.Methods.positionedOffset,
+
+  absolutize: function(element) {
+    Position.prepare();
+    return Element.absolutize(element);
+  },
+
+  relativize: function(element) {
+    Position.prepare();
+    return Element.relativize(element);
+  },
+
+  realOffset: Element.Methods.cumulativeScrollOffset,
+
+  offsetParent: Element.Methods.getOffsetParent,
+
+  page: Element.Methods.viewportOffset,
+
+  clone: function(source, target, options) {
+    options = options || { };
+    return Element.clonePosition(target, source, options);
+  }
+};
+
+/*--------------------------------------------------------------------------*/
+
+if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){
+  function iter(name) {
+    return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]";
+  }
+
+  instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ?
+  function(element, className) {
+    className = className.toString().strip();
+    var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className);
+    return cond ? document._getElementsByXPath('.//*' + cond, element) : [];
+  } : function(element, className) {
+    className = className.toString().strip();
+    var elements = [], classNames = (/\s/.test(className) ? $w(className) : null);
+    if (!classNames && !className) return elements;
+
+    var nodes = $(element).getElementsByTagName('*');
+    className = ' ' + className + ' ';
+
+    for (var i = 0, child, cn; child = nodes[i]; i++) {
+      if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) ||
+          (classNames && classNames.all(function(name) {
+            return !name.toString().blank() && cn.include(' ' + name + ' ');
+          }))))
+        elements.push(Element.extend(child));
+    }
+    return elements;
+  };
+
+  return function(className, parentElement) {
+    return $(parentElement || document.body).getElementsByClassName(className);
+  };
+}(Element.Methods);
+
+/*--------------------------------------------------------------------------*/
+
+Element.ClassNames = Class.create();
+Element.ClassNames.prototype = {
+  initialize: function(element) {
+    this.element = $(element);
+  },
+
+  _each: function(iterator) {
+    this.element.className.split(/\s+/).select(function(name) {
+      return name.length > 0;
+    })._each(iterator);
+  },
+
+  set: function(className) {
+    this.element.className = className;
+  },
+
+  add: function(classNameToAdd) {
+    if (this.include(classNameToAdd)) return;
+    this.set($A(this).concat(classNameToAdd).join(' '));
+  },
+
+  remove: function(classNameToRemove) {
+    if (!this.include(classNameToRemove)) return;
+    this.set($A(this).without(classNameToRemove).join(' '));
+  },
+
+  toString: function() {
+    return $A(this).join(' ');
+  }
+};
+
+Object.extend(Element.ClassNames.prototype, Enumerable);
+
+/*--------------------------------------------------------------------------*/
+
+Element.addMethods();
Index: ruby/trunk/public/robots.txt
===================================================================
--- ruby/trunk/public/robots.txt	(revision 291)
+++ ruby/trunk/public/robots.txt	(revision 291)
@@ -0,0 +1,5 @@
+# See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
+#
+# To ban all spiders from the entire site uncomment the next two lines:
+# User-Agent: *
+# Disallow: /
Index: ruby/trunk/script/about
===================================================================
--- ruby/trunk/script/about	(revision 291)
+++ ruby/trunk/script/about	(revision 291)
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/about'
Index: ruby/trunk/script/console
===================================================================
--- ruby/trunk/script/console	(revision 291)
+++ ruby/trunk/script/console	(revision 291)
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/console'
Index: ruby/trunk/script/dbconsole
===================================================================
--- ruby/trunk/script/dbconsole	(revision 291)
+++ ruby/trunk/script/dbconsole	(revision 291)
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/dbconsole'
Index: ruby/trunk/script/destroy
===================================================================
--- ruby/trunk/script/destroy	(revision 291)
+++ ruby/trunk/script/destroy	(revision 291)
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/destroy'
Index: ruby/trunk/script/generate
===================================================================
--- ruby/trunk/script/generate	(revision 291)
+++ ruby/trunk/script/generate	(revision 291)
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/generate'
Index: ruby/trunk/script/performance/benchmarker
===================================================================
--- ruby/trunk/script/performance/benchmarker	(revision 291)
+++ ruby/trunk/script/performance/benchmarker	(revision 291)
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/performance/benchmarker'
Index: ruby/trunk/script/performance/profiler
===================================================================
--- ruby/trunk/script/performance/profiler	(revision 291)
+++ ruby/trunk/script/performance/profiler	(revision 291)
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/performance/profiler'
Index: ruby/trunk/script/performance/request
===================================================================
--- ruby/trunk/script/performance/request	(revision 291)
+++ ruby/trunk/script/performance/request	(revision 291)
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/performance/request'
Index: ruby/trunk/script/plugin
===================================================================
--- ruby/trunk/script/plugin	(revision 291)
+++ ruby/trunk/script/plugin	(revision 291)
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/plugin'
Index: ruby/trunk/script/process/inspector
===================================================================
--- ruby/trunk/script/process/inspector	(revision 291)
+++ ruby/trunk/script/process/inspector	(revision 291)
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/process/inspector'
Index: ruby/trunk/script/process/reaper
===================================================================
--- ruby/trunk/script/process/reaper	(revision 291)
+++ ruby/trunk/script/process/reaper	(revision 291)
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/process/reaper'
Index: ruby/trunk/script/process/spawner
===================================================================
--- ruby/trunk/script/process/spawner	(revision 291)
+++ ruby/trunk/script/process/spawner	(revision 291)
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/process/spawner'
Index: ruby/trunk/script/runner
===================================================================
--- ruby/trunk/script/runner	(revision 291)
+++ ruby/trunk/script/runner	(revision 291)
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/runner'
Index: ruby/trunk/script/server
===================================================================
--- ruby/trunk/script/server	(revision 291)
+++ ruby/trunk/script/server	(revision 291)
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/server'
Index: ruby/trunk/spec/fixtures/encoding_aliases.yml
===================================================================
--- ruby/trunk/spec/fixtures/encoding_aliases.yml	(revision 291)
+++ ruby/trunk/spec/fixtures/encoding_aliases.yml	(revision 291)
@@ -0,0 +1,9 @@
+1:
+  alias: Latin1
+  mibenum: 4
+2:
+  alias: MS_Kanji
+  mibenum: 17
+3:
+  alias: csShiftJIS
+  mibenum: 17
Index: ruby/trunk/spec/fixtures/encodings.yml
===================================================================
--- ruby/trunk/spec/fixtures/encodings.yml	(revision 291)
+++ ruby/trunk/spec/fixtures/encodings.yml	(revision 291)
@@ -0,0 +1,20 @@
+1:
+  name: UTF-8
+  mibenum: 16
+  source: RFC 3629
+
+2:
+  name: ISO_8859-1:1987
+  mibenum: 4
+  source: ECMA registry
+
+3:
+  name: Shift_JIS
+  mibenum: 17
+  source: >-
+    This charset is an extension of csHalfWidthKatakana by
+    adding graphic characters in JIS X 0208.  The CCS's are
+    JIS X0201:1997 and JIS X0208:1997.  The
+    complete definition is shown in Appendix 1 of JIS
+    X0208:1997.
+    This charset can be used for the top-level media type "text".
Index: ruby/trunk/spec/fixtures/terminologies.yml
===================================================================
--- ruby/trunk/spec/fixtures/terminologies.yml	(revision 291)
+++ ruby/trunk/spec/fixtures/terminologies.yml	(revision 291)
@@ -0,0 +1,18 @@
+terminology_00001: 
+  name: openehr
+  group: subject relationship
+  code: "0"
+  id: 1
+  rubric: self
+  mappings: "HL7_RoleCode:: CEN: "
+  lang: en
+  description: "The party is the subject of EHR "
+terminology_00002: 
+  name: openehr
+  group: subject relationship
+  code: "3"
+  id: 2
+  rubric: foetus
+  mappings: "HL7: CEN: "
+  lang: en
+  description: "The party is a foetus "
Index: ruby/trunk/spec/lib/open_ehr/assumed_library_types/interval_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/assumed_library_types/interval_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/assumed_library_types/interval_spec.rb	(revision 291)
@@ -0,0 +1,140 @@
+require File.dirname(__FILE__) + '/../../../spec_helper'
+include OpenEHR::AssumedLibraryTypes
+
+describe Interval do
+  before(:each) do
+    @interval = Interval.new(:upper => 10,
+                             :lower => 1)
+  end
+
+  it 'should be an instance of Interval' do
+    @interval.should be_an_instance_of Interval
+  end
+
+  it 's upper should be greater than lower' do
+    @interval.upper.should be > @interval.lower
+  end
+
+  it 's upper should be equal 10' do
+    @interval.upper.should == 10
+  end
+
+  it 's lower should be equal 1' do
+    @interval.lower.should == 1
+  end
+
+  it 'should raise ArgumentError with smaller upper' do
+    lambda {@interval.upper = -1}.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with greater lower' do
+    lambda {@interval.lower = 11}.should raise_error ArgumentError
+  end
+
+  it 'should have 5' do
+    @interval.has?(5).should be_true
+  end
+
+  it 'should not have 11' do
+    @interval.has?(11).should_not be_true
+  end
+
+  it 'should not have -1' do
+    @interval.has?(-1).should_not be_true
+  end
+
+  it 'should not have 10' do
+    @interval.has?(10).should_not be_true
+  end
+
+  it 'should not have 1' do
+    @interval.has?(1).should_not be_true
+  end
+
+  describe Interval, 'when lower included' do
+    before do
+      @interval.lower_included = true
+    end
+
+    it 'should be lower_included' do
+      @interval.should be_lower_included
+    end
+
+    it 'should have 1 when lower included' do
+      @interval.has?(1).should be_true
+    end
+
+    after do
+      @interval.lower_included = false
+    end
+  end
+
+  describe Interval, 'when upper included' do
+    before do
+      @interval.upper_included = true
+    end
+
+    it 'should be upper uncluded' do
+      @interval.should be_upper_included
+    end
+
+    it 'should have 10 when upper included' do
+      @interval.has?(10).should be_true
+    end
+
+    after do
+      @interval.upper_included = false
+    end
+  end
+
+  describe Interval, 'when upper unbounded' do
+    before do
+      @interval.upper = nil
+    end
+
+    it 'should be upper unbounded' do
+      @interval.should be_upper_unbounded
+    end
+
+    it 'should have 11' do
+      @interval.has?(11).should be_true
+    end
+
+    it 'should raise ArgumentError, when upper_included is assigned' do
+      lambda{
+        @interval.upper_included = true
+      }.should raise_error ArgumentError
+    end
+
+    after do
+      @interval.upper = 10
+    end
+  end
+
+  describe Interval, 'when lower unbounded' do
+    before do
+      @interval.lower = nil
+    end
+
+    it 'should be lower unbounded' do
+      @interval.should be_lower_unbounded
+    end
+
+    it 'should  have -10' do
+      @interval.has?(-10).should be_true
+    end
+
+    it 'should raise ArgumentError, when lower_included is assigned' do
+      lambda{
+        @interval.lower_included = true
+      }.should raise_error ArgumentError
+    end
+  end
+
+  it 'should raise ArgumentError both upper and lower is nil' do
+    lambda {
+      Interval.new
+    }.should raise_error ArgumentError
+  end
+end
+
Index: ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_date_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_date_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_date_spec.rb	(revision 291)
@@ -0,0 +1,236 @@
+require File.dirname(__FILE__) + '/../../../spec_helper'
+include OpenEHR::AssumedLibraryTypes
+
+describe ISO8601Date do
+  before do
+    @iso8601date = ISO8601Date.new('2009-09-10')
+  end
+
+  it 'should be an instance of ISO8601Date' do
+    @iso8601date.should be_an_instance_of ISO8601Date
+  end
+
+  it 'year should be equal 2009' do
+    @iso8601date.year.should be_equal 2009
+  end
+
+  it 'month should be equal 9' do
+    @iso8601date.month.should be_equal 9
+  end
+
+  it 'day should be equal 10' do
+    @iso8601date.day.should be_equal 10
+  end
+
+  it 'should be 2009-09-10 as_string' do
+    @iso8601date.as_string.should == '2009-09-10'
+  end
+
+  it 'should be extended ' do
+    @iso8601date.is_extended?.should be_true
+  end
+
+  it 'should parse vaild date form' do
+
+  end
+
+  it 'should parse valid adte form' do
+    ISO8601Date.should be_valid_iso8601_date '2009-09-22'
+  end
+
+  it 'should not parse invalid date form' do
+    ISO8601Date.should_not be_valid_iso8601_date '2009-13-54'
+  end
+
+  describe 'year behavior' do
+    it 'should raise ArgumentError with nil year string' do
+      lambda{ISO8601Date.new('-09-02')}.should raise_error ArgumentError
+    end
+
+    it 'should raise ArgumentError with nil year' do
+      lambda{@iso8601date.year = nil}.should raise_error ArgumentError
+    end
+
+    it 'should not raise ArgumentError more than 0 year' do
+      lambda{@iso8601date.year = 0}.should_not raise_error ArgumentError
+    end
+  end
+
+  describe 'month behavior' do
+    it '1 month should not raise ArgumentError' do
+      lambda{@iso8601date.month = 1}.should_not raise_error ArgumentError
+    end
+
+    it '12 month should not raise ArgumentError' do
+      lambda{@iso8601date.month = 12}.should_not raise_error ArgumentError
+    end
+
+    it '13 month should raise ArgumentError' do
+      lambda{@iso8601date.month = 13}.should raise_error ArgumentError
+    end
+
+    it '0 month should raise ArgumentError' do
+      lambda{@iso8601date.month = 0}.should raise_error ArgumentError
+    end
+  end
+
+  describe 'day behavior' do
+    it '0 day should raise ArgumentError' do
+      lambda{@iso8601date.day = 0}.should raise_error ArgumentError
+    end
+  end
+
+  [1,3,5,7,8,10,12].each do |m|
+    describe '#{m}th month behavior' do
+      before do
+        @iso8601date.month = m
+      end
+      
+      it 'should have 31 days' do
+        lambda{
+          @iso8601date.day = 31
+        }.should_not raise_error ArgumentError
+      end
+
+      it 'should not have 32 days' do
+        lambda{
+          @iso8601date.day = 32
+        }.should raise_error ArgumentError
+      end
+    end
+  end
+
+  describe 'February and leap year behavior' do
+    before do
+      @iso8601date.month = 2
+    end
+
+    describe '2009(not leap year) behavior' do
+      before do
+        @iso8601date.year = 2009
+      end
+
+      it '2009 should not be leap year' do
+        @iso8601date.should_not be_leapyear 2009
+      end
+
+      it '2009-02-28 should not raise ArgumentError' do
+        lambda{@iso8601date.day = 28}.should_not raise_error ArgumentError
+      end
+
+      it '2009-02-29 should raise ArgumentError' do
+        lambda{@iso8601date.day = 29}.should raise_error ArgumentError
+      end
+    end
+
+    describe '2008(leap year) behavior' do
+      before do
+        @iso8601date.year = 2008
+      end
+
+      it '2008 should be leap year' do
+        @iso8601date.should be_leapyear 2008
+      end
+
+      it '2008-02-29 should not raise ArgumentError' do
+        lambda{@iso8601date.day = 29}.should_not raise_error ArgumentError
+      end
+
+      it '2008-02-30 should raise ArgumentError' do
+        lambda{@iso8601date.day = 30}.should raise_error ArgumentError
+      end
+    end
+
+    describe '2000(irregular leap year' do
+      before do
+        @iso8601date.year = 2000
+      end
+
+      it 'should not leapyear' do
+        @iso8601date.should be_leapyear 2000
+      end
+
+      it '2000-02-29 should not raise ArgumentError' do
+        lambda{@iso8601date.day = 29}.should_not raise_error ArgumentError
+      end
+
+      it '2000-02-30 should raise ArgumentError' do
+        lambda{@iso8601date.day = 30}.should raise_error ArgumentError
+      end
+    end
+  end
+
+  [4,6,9,11].each do |month|
+    describe "#{month}th month behavior" do
+      before do
+        @iso8601date.month = month
+      end
+
+      it '30 day should not raise ArgumentError' do
+        lambda{
+          @iso8601date.day = 30
+        }.should_not raise_error ArgumentError
+      end
+
+      it '31 day should raise ArgumentError' do
+        lambda{
+          @iso8601date.day = 31
+        }.should raise_error ArgumentError
+      end
+    end
+  end
+
+  describe 'partial date data' do
+    describe 'day unknown' do
+      before do
+        @iso8601date.day = nil
+      end
+      
+      it 'day should be unknown' do
+        @iso8601date.should be_day_unknown
+      end
+      
+      it 'should be 2009-09 as string' do
+        @iso8601date.as_string.should == '2009-09'
+      end
+      
+      it 'should be partial' do
+        @iso8601date.is_partial?.should be_true
+      end
+      
+      it 'constructor pass partial date' do
+        lambda {
+          ISO8601Date.new('2009-09')
+        }.should_not raise_error ArgumentError
+      end
+
+      after do
+        @iso8601date.day = 10
+      end
+    end
+    
+    describe 'month unknown' do
+      before do
+        @iso8601date.day = nil
+        @iso8601date.month = nil
+      end
+      
+      it 'should raise ArgumentError with nil month and not nil day' do
+        lambda {
+          @iso8601date.day = 11
+        }.should raise_error ArgumentError
+      end
+
+      it 's as_string should be 2009' do
+        @iso8601date.as_string.should == '2009'
+      end
+
+      it 'constructor pass only year data' do
+        lambda {
+          ISO8601Date.new('2009')
+        }.should_not raise_error ArgumentError
+      end
+    end
+  end
+
+end
Index: ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_date_time_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_date_time_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_date_time_spec.rb	(revision 291)
@@ -0,0 +1,47 @@
+require File.dirname(__FILE__) + '/../../../spec_helper'
+include OpenEHR::AssumedLibraryTypes
+
+describe ISO8601DateTime do
+  before(:each) do
+    @iso8601date_time = ISO8601DateTime.new('2009-06-29T12:34:56.78+0900')
+  end
+
+  it 'should be an instance of ISO8601DateTime' do
+    @iso8601date_time.should be_an_instance_of ISO8601DateTime
+  end
+
+  it 'should be 2009-06-29T12:34:56.78T+09:00 as string' do
+    @iso8601date_time.as_string.should == '2009-06-29T12:34:56.78+0900'
+  end
+
+  it 'should raise ArgumentError with invalid date format' do
+    lambda {
+      ISO8601DateTime.new('2009:06:29Z12-34-56')
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentErrow with empty argument' do
+    lambda {
+      ISO8601DateTime.new('')
+    }.should raise_error ArgumentError
+  end    
+
+  it 'allows without fractional second' do
+    lambda {
+      ISO8601DateTime.new('2009-06-29T12:34:56')
+    }.should_not raise_error ArgumentError
+  end
+
+  describe 'partial date' do
+    it 'should recognize 2009-06' do
+      @iso8601date_time.day = nil      
+      @iso8601date_time.as_string.should == '2009-06'
+    end
+
+    it 'should recognize 2009' do
+      @iso8601date_time.day = nil
+      @iso8601date_time.month = nil
+      @iso8601date_time.as_string.should == '2009'
+    end
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_duration_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_duration_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_duration_spec.rb	(revision 291)
@@ -0,0 +1,150 @@
+require File.dirname(__FILE__) + '/../../../spec_helper'
+include OpenEHR::AssumedLibraryTypes
+
+describe ISO8601Duration do
+  before(:each) do
+    @iso8601duration = ISO8601Duration.new('P1Y2M3W4DT5H6M7.8S')
+  end
+
+  it 'should be an instance of ISO8601Duration' do
+    @iso8601duration.should be_an_instance_of ISO8601Duration
+  end
+
+  it 'years should be 1' do
+    @iso8601duration.years.should be_equal 1
+  end
+
+  it 'months should be 2' do
+    @iso8601duration.months.should be_equal 2
+  end
+
+  it 'weeks should be 3' do
+    @iso8601duration.weeks.should be_equal 3
+  end
+
+  it 'days should be 4' do
+    @iso8601duration.days.should be_equal 4
+  end
+
+  it 'hours should be 5' do
+    @iso8601duration.hours.should be_equal 5
+  end
+
+  it 'minutes should be 6' do
+    @iso8601duration.minutes.should be_equal 6
+  end
+
+  it 'seconds should be 7' do
+    @iso8601duration.seconds.should be_equal 7
+  end
+
+  it 'fractional_seconds should be .8' do
+    @iso8601duration.fractional_second.should == 0.8
+  end
+
+  it 'should be equal P1Y2M3W4DT5H6M7.8S as string' do
+    @iso8601duration.as_string.should == 'P1Y2M3W4DT5H6M7.8S'
+  end
+
+  it 'should not raise ArgumentError with 0 yaers' do
+    lambda {
+      @iso8601duration.years = 0
+    }.should_not raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with -1 yaers' do
+    lambda {
+      @iso8601duration.years = -1
+    }.should raise_error ArgumentError
+  end
+
+  it 'should not raise ArgumentError with 0 months' do
+    lambda {
+      @iso8601duration.months = 0
+    }.should_not raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with -1 months' do
+    lambda {
+      @iso8601duration.months = -1
+    }.should raise_error ArgumentError
+  end
+    
+  it 'should not raise ArgumentError with 0 weeks' do
+    lambda {
+      @iso8601duration.weeks = 0
+    }.should_not raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with -1 weeks' do
+    lambda {
+      @iso8601duration.weeks = -1
+    }.should raise_error ArgumentError
+  end
+
+  it 'should not raise ArgumentError with 0 days' do
+    lambda {
+      @iso8601duration.days = 0
+    }.should_not raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with -1 days' do
+    lambda {
+      @iso8601duration.days = -1
+    }.should raise_error ArgumentError
+  end
+
+  it 'should not raise ArgumentError with 0 hours' do
+    lambda {
+      @iso8601duration.hours = 0
+    }.should_not raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with -1 hours' do
+    lambda {
+      @iso8601duration.hours = -1
+    }.should raise_error ArgumentError
+  end
+
+  it 'should not raise ArgumentError with 0 minutes' do
+    lambda {
+      @iso8601duration.minutes = 0
+    }.should_not raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with -1 minutes' do
+    lambda {
+      @iso8601duration.minutes = -1
+    }.should raise_error ArgumentError
+  end
+
+  it 'should not raise ArgumentError with 0 seconds' do
+    lambda {
+      @iso8601duration.seconds = 0
+    }.should_not raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with -1 seconds' do
+    lambda {
+      @iso8601duration.seconds = -1
+    }.should raise_error ArgumentError
+  end
+
+  it 'should not raise ArgumentError with 0 fractional_second' do
+    lambda {
+      @iso8601duration.fractional_second = 0
+    }.should_not raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with -1 fractional_second' do
+    lambda {
+      @iso8601duration.fractional_second = -1
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with 1.0 fractional_second' do
+    lambda {
+      @iso8601duration.fractional_second = 1.0
+    }.should raise_error ArgumentError
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_time_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_time_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_time_spec.rb	(revision 291)
@@ -0,0 +1,234 @@
+require File.dirname(__FILE__) + '/../../../spec_helper'
+include OpenEHR::AssumedLibraryTypes
+
+describe ISO8601Time do
+  before(:each) do
+    @iso8601time = ISO8601Time.new('15:55:37.32+0900')
+  end
+
+  it 'should be an instance of ISO8601Time' do
+    @iso8601time.should be_an_instance_of ISO8601Time
+  end
+
+  it 's hour should be 15' do
+    @iso8601time.hour.should == 15
+  end
+
+  it 's minute should be 55' do
+    @iso8601time.minute.should == 55
+  end
+
+  it 's second should be 37'do
+    @iso8601time.second.should == 37
+  end
+
+  it 's fractional second should be 0.32' do
+    @iso8601time.fractional_second == 0.32
+  end
+
+  it 'have fractional_second' do
+    @iso8601time.should have_fractional_second
+  end
+
+  it 's time zone should +0900' do
+    @iso8601time.timezone == '+0900'
+  end
+
+  it 'should be 15:55:37.32+0900 as_string' do
+    @iso8601time.as_string.should == '15:55:37.32+0900'
+  end
+
+  it 'decimal sign should not be comma' do
+    @iso8601time.is_decimal_sign_comma?.should_not be_true
+  end
+
+  it 'should be extended' do
+    @iso8601time.is_extended?.should be_true
+  end
+
+  it 'should not be partial' do
+    @iso8601time.is_partial?.should_not be true
+  end
+
+  describe 'hour behavior' do
+    it 'should raise ArgumentError with nil hour' do
+      lambda {
+        @iso8601time.hour = nil
+      }.should raise_error ArgumentError
+    end
+
+    it 'should not raise ArgumentError with -1 hour' do
+      lambda {
+        @iso8601time.hour = -1
+      }.should raise_error ArgumentError
+    end        
+
+    it 'should not raise ArgumentError with 0 hour' do
+      lambda {
+        @iso8601time.hour = 0
+      }.should_not raise_error ArgumentError
+    end
+
+    it 'should not raise ArgumentError with 23 hour' do
+      lambda {
+        @iso8601time.hour = 23
+      }.should_not raise_error ArgumentError
+    end
+
+    it 'should not raise ArgumentError with 24 hour' do
+      lambda {
+        @iso8601time.hour = 24
+      }.should raise_error ArgumentError
+    end
+  end
+
+  describe 'minute behavior' do
+    it 'should raise ArgumentError with -1 miniute' do
+      lambda {
+        @iso8601time.minute = -1
+      }.should raise_error ArgumentError
+    end
+
+    it 'should not raise ArgumentError with 0 minute' do
+      lambda {
+        @iso8601time.minute = 0
+      }.should_not raise_error ArgumentError
+    end
+
+    it 'should not raise ArgumentError with 59 minute' do
+      lambda {
+        @iso8601time.minute = 59
+      }.should_not raise_error ArgumentError
+    end
+
+    it 'should raise ArgumentError with 60 minute' do
+      lambda {
+        @iso8601time.minute = 60
+      }.should raise_error ArgumentError
+    end
+  end
+
+  describe 'second behavior' do
+    it 'should raise ArgumentError with -1 miniute' do
+      lambda {
+        @iso8601time.second = -1
+      }.should raise_error ArgumentError
+    end
+
+    it 'should not raise ArgumentError with 0 second' do
+      lambda {
+        @iso8601time.second = 0
+      }.should_not raise_error ArgumentError
+    end
+
+    it 'should not raise ArgumentError with 59 second' do
+      lambda {
+        @iso8601time.second = 59
+      }.should_not raise_error ArgumentError
+    end
+
+    it 'should raise ArgumentError with 60 second' do
+      lambda {
+        @iso8601time.second = 60
+      }.should raise_error ArgumentError
+    end
+  end
+
+  describe 'fractional second behavior' do
+    it 'should raise ArgumentError less than -0.0' do
+      lambda {
+        @iso8601time.fractional_second = -0.1
+      }.should raise_error ArgumentError
+    end
+
+    it 'should raise ArgumentError more than 1.0' do
+      lambda {
+        @iso8601time.fractional_second = 1.0
+      }.should raise_error ArgumentError
+    end
+  end
+
+  describe 'timezone behavior' do
+    it 'should raise ArgumentError with invalid timezone' do
+      lambda {
+        @iso8601time.timezone = '+AbD:111'
+      }.should raise_error ArgumentError
+    end
+
+    it 'should allow ArgumentError with nil timezone' do
+      lambda {
+        @iso8601time.timezone = nil
+      }.should_not raise_error ArgumentError
+    end
+  end
+
+  describe 'constructor behavior' do
+    it 'should_not raise ArgumentError with 21:18:09.01' do
+      lambda {
+        ISO8601Time.new('21:18:09.01')
+      }.should_not raise_error ArgumentError
+    end
+
+    it 'should_not raise ArgumentError with 21:18:09' do
+      lambda {
+        ISO8601Time.new('21:18:09')
+      }.should_not raise_error ArgumentError
+    end
+
+    it 'should_not raise ArgumentError with 21:18' do
+      lambda {
+        ISO8601Time.new('21:18')
+      }.should_not raise_error ArgumentError
+    end
+
+    it 'should_not raise ArgumentError with 21' do
+      lambda {
+        ISO8601Time.new('21')
+      }.should_not raise_error ArgumentError
+    end
+
+    it 'should raise ArgumentError with malformation' do
+      lambda {
+        ISO8601Time.new('ABDCD')
+      }.should raise_error ArgumentError
+    end
+  end
+
+  describe 'ISO8601 time validation' do
+    it 'should be valid iso8601 Time' do
+      ISO8601Time.should be_valid_iso8601_time '21:24:30.05+09:00'
+    end
+
+    it 'should not be valid with over 24 hour' do
+      ISO8601Time.should_not be_valid_iso8601_time '24:24:30.05+09:00'
+    end
+
+    it 'should be valid with over 24:00:00' do
+      ISO8601Time.should be_valid_iso8601_time '24:00:00.00'
+    end
+
+    it 'should not vaild with under 0 hour' do
+      ISO8601Time.should_not be_valid_iso8601_time '-1:24:30.05+09:00'
+    end
+
+    it 'should not valid with more than 60 minutes' do
+      ISO8601Time.should_not be_valid_iso8601_time '21:60:30'
+    end
+
+    it 'should not valid with more than 60 seconds' do
+      ISO8601Time.should_not be_valid_iso8601_time '21:34:60'
+    end
+
+    it 'should not valid with invalid hour in timezone' do
+      ISO8601Time.should_not be_valid_iso8601_time '21:24:30.05+24:00'
+    end
+
+    it 'should not valid with invalid minute in timezone' do
+      ISO8601Time.should_not be_valid_iso8601_time '21:24:30.05+22:60'
+    end
+
+    it 'should not valid with invalid minute in timezone' do
+      ISO8601Time.should_not be_valid_iso8601_time '21:24:30.05TAABZ'
+    end
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_timezone_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_timezone_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/assumed_library_types/iso8601_timezone_spec.rb	(revision 291)
@@ -0,0 +1,57 @@
+require File.dirname(__FILE__) + '/../../../spec_helper'
+include OpenEHR::AssumedLibraryTypes
+
+describe ISO8601Timezone do
+  before(:each) do
+    @iso8601timezone = ISO8601Timezone.new('+0900')
+  end
+
+  it 'should be an instance of ISO8601Timezone' do
+    @iso8601timezone.should be_an_instance_of ISO8601Timezone
+  end
+
+  it 'sign should be +1' do
+    @iso8601timezone.sign.should == +1
+  end
+
+  it 'hour should be 9' do
+    @iso8601timezone.hour.should == 9
+  end
+
+  it 'minute should be 0' do
+    @iso8601timezone.minute.should == 0
+  end
+
+  it 'should be +0900 as string' do
+    @iso8601timezone.as_string.should == '+0900'
+  end
+
+  it 'should not be gmt' do
+    @iso8601timezone.is_gmt?.should_not be_true
+  end
+
+  it 'should raise ArgumentError with invalid format' do
+    lambda {
+      ISO8601Timezone.new('ABCDE')
+    }.should raise_error ArgumentError
+  end
+
+  it 'should allow - sign' do
+    @iso8601timezone = ISO8601Timezone.new('-5000')
+    @iso8601timezone.as_string.should == '-5000'
+  end
+
+  describe 'GMT' do
+    before(:each) do
+      @iso8601timezone = ISO8601Timezone.new('Z')
+    end
+
+    it 'should racognize UTC as Z' do
+      @iso8601timezone.as_string.should == '+0000'
+    end
+
+    it 'should be gmt(almost)' do
+      @iso8601timezone.is_gmt?.should be_true
+    end
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/assumed_library_types/time_definitions_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/assumed_library_types/time_definitions_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/assumed_library_types/time_definitions_spec.rb	(revision 291)
@@ -0,0 +1,136 @@
+require File.dirname(__FILE__) + '/../../../spec_helper'
+include OpenEHR::AssumedLibraryTypes
+
+describe TimeDefinitions do
+  describe 'year behavior' do
+    it 'should more than zero in openEHR specification' do
+      TimeDefinitions.should be_valid_year 0
+    end
+
+    it '-1 should not be valid year' do
+      TimeDefinitions.should_not be_valid_year -1
+    end
+
+    it 'nil year should be invaild' do
+      TimeDefinitions.should_not be_valid_year nil
+    end
+  end
+
+
+  describe 'month behavior' do
+    (1..12).each do |month|
+      it "should valid #{month}" do
+        TimeDefinitions.should be_valid_month month
+      end
+    end
+    
+    it '0th month should be invalid' do
+      TimeDefinitions.should_not be_valid_month 0
+    end
+    
+    it '13th month should be invalid' do
+      TimeDefinitions.should_not be_valid_month 13
+    end
+  end
+
+  describe 'day behavior' do
+    it '0 day should not be valid day' do
+      TimeDefinitions.should_not be_valid_day(1,2,0)
+    end
+
+    it '32 day should not be valid day' do
+      TimeDefinitions.should_not be_valid_day(1,2,32)
+    end
+
+    it 'should be valid 2009-09-19' do
+      TimeDefinitions.should be_valid_day(2009,9,19)
+    end
+
+    it 'should be invalid 2009 nil 19' do
+      TimeDefinitions.should_not be_valid_day(2009, nil,19)
+    end
+
+    it 'should be invalid nil 09 19' do
+      TimeDefinitions.should_not be_valid_day(nil, 9, 19)
+    end
+
+    it 'should be valid 2009 09' do
+      TimeDefinitions.should be_valid_day(2009,9,nil)
+    end
+  end
+
+  describe 'hour behavior' do
+    it 'should be valid hour 0,0,0' do
+      TimeDefinitions.should be_valid_hour(0,0,0)
+    end
+
+    it 'should be valid hour 12,59,59' do
+      TimeDefinitions.should be_valid_hour(12,59,59)
+    end
+
+    it 'should not be valid hour 12,60,59' do
+      TimeDefinitions.should_not be_valid_hour(12,60,59)
+    end
+
+    it 'should not be valid hour 12,59,60' do
+      TimeDefinitions.should_not be_valid_hour(12,59,60)
+    end
+
+    it 'should be valid hour 24,0,0' do
+      TimeDefinitions.should be_valid_hour(24,0,0)
+    end
+
+    it 'should not be valid hour 24,0,1' do
+      TimeDefinitions.should_not be_valid_hour(24,0,1)
+    end
+
+
+    it 'should be vaild hour 12,1' do
+      TimeDefinitions.should be_valid_hour(12,1)
+    end
+
+    it 'should not be valid hour 12,nil,1' do
+      TimeDefinitions.should be_valid_hour(12,nil,1)
+    end
+
+    it 'should be valid hour 12' do
+      TimeDefinitions.should be_valid_hour(12)
+    end
+  end
+
+  describe 'minute limit' do
+    it 'should be more than 0' do
+      TimeDefinitions.should be_valid_minute 0
+    end
+
+    it 'should be not less than 0' do
+      TimeDefinitions.should_not be_valid_minute -1
+    end
+
+    it 'should less than 60' do
+      TimeDefinitions.should be_valid_minute 59
+    end
+
+    it 'should not valid minute 60' do
+      TimeDefinitions.should_not be_valid_minute 60
+    end
+  end
+
+  describe 'second limit' do
+    it 'should be more than 0' do
+      TimeDefinitions.should be_valid_second 0
+    end
+
+    it 'should be not less than 0' do
+      TimeDefinitions.should_not be_valid_second -1
+    end
+
+    it 'should less than 60' do
+      TimeDefinitions.should be_valid_second 59
+    end
+
+    it 'should not valid minute 60' do
+      TimeDefinitions.should_not be_valid_second 60
+    end
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_structures/item_structure/item_list_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_structures/item_structure/item_list_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_structures/item_structure/item_list_spec.rb	(revision 291)
@@ -0,0 +1,49 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataStructures::ItemStructure
+include OpenEHR::RM::DataStructures::ItemStructure::Representation
+include OpenEHR::RM::DataTypes::Text
+
+describe ItemList do
+  before(:each) do
+    items = %w{one two three}.collect do |n|
+      Element.new(:name => DvText.new(:value => n),
+                  :archetype_node_id => 'test')
+    end
+    item_list_name = DvText.new(:value => 'item list')
+    @item_list = ItemList.new(:name => item_list_name,
+                              :archetype_node_id => 'test',
+                              :items => items)
+    
+  end
+
+  it 'should be instance of ItemList' do
+    @item_list.should be_an_instance_of ItemList
+  end
+
+  it 'count should be 3' do
+    @item_list.item_count.should be_equal 3
+  end
+
+  it 'count should be 0' do
+    @item_list.items = nil
+    @item_list.item_count.should be_equal 0
+  end
+
+
+  it 'retrieve the names of all items' do
+    @item_list.names.should == %w{one two three}.collect{|n|
+      DvText.new(:value => n)}
+  end
+
+  it 'retrieve the item with a name' do
+    @item_list.named_item('one').name.value.should == 'one'
+  end
+
+  it 'retrieve the ith item with number' do
+    @item_list.ith_item(1).name.value.should == 'one'
+  end
+
+  it 'generate cluster of items' do
+    @item_list.as_hierarchy.name.value.should == 'item list'
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_structures/item_structure/item_single_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_structures/item_structure/item_single_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_structures/item_structure/item_single_spec.rb	(revision 291)
@@ -0,0 +1,21 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+
+include OpenEHR::RM::DataStructures::ItemStructure
+include OpenEHR::RM::DataStructures::ItemStructure::Representation
+include OpenEHR::RM::DataTypes::Text
+
+describe ItemSingle do
+  before(:all) do
+    name = 
+    @element = Element.new(:name => DvText.new('item'),
+                           :archetype_node_id => 'AT0000',
+                           :value => DvQuantity.new())
+    item_single_name = DvText.new('item single')
+    @item_single = ItemSingle.new(:name => item_single_name,
+                                  :archetype_node_id => 'test',
+                                  :item => @element)
+    
+  end
+
+
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_structures/item_structure/item_table_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_structures/item_structure/item_table_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_structures/item_structure/item_table_spec.rb	(revision 291)
@@ -0,0 +1,134 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+
+include OpenEHR::RM::DataStructures::ItemStructure
+include OpenEHR::RM::DataStructures::ItemStructure::Representation
+include OpenEHR::RM::DataTypes::Text
+
+def row(args)
+  return args.collect do |n|
+    Element.new(:name => DvText.new(:value => n),
+                :archetype_node_id => 'test')
+  end
+end
+
+def cluster_builder(name,rows)
+  return Cluster.new(:name => DvText.new(:value => name),
+                     :archetype_node_id => 'test',
+                     :items => rows)
+end
+
+describe ItemTable do
+  before(:each) do
+    row1 = row(%w{one two three})
+    row2 = row(%w{four five six})
+    rows = [row1, row2].collect{|r| cluster_builder('cluster',r)}
+    @item_table = ItemTable.new(:name => DvText.new(:value => 'item table'),
+                                :archetype_node_id => 'test',
+                                :rows => rows)
+  end
+
+  it 'should be an instance of ItemTable' do
+    @item_table.should be_an_instance_of ItemTable
+  end
+
+  it 's row count should be 2' do
+    @item_table.row_count.should be_equal 2
+  end
+
+  it 's row_count should be 0 when rows are nil' do
+    @item_table.rows = nil
+    @item_table.row_count.should be_equal 0
+  end
+
+  it 's column_count should be 3' do
+    @item_table.column_count.should be_equal 3
+  end
+
+
+  it 's row_names should be cluster cluster' do
+    @item_table.row_names.should == %w{cluster cluster}.collect{|n|
+      DvText.new(:value => n)}
+  end
+
+  it 's row_names should be empty when items are nil' do
+    @item_table.rows = nil
+    @item_table.row_names.should == []
+  end
+
+  it 's column_names should one two three' do
+    @item_table.column_names.should == %w{one two three}.collect{|s|
+      DvText.new(:value => s)}
+  end
+
+  it 's column_names should empty when items aer nil' do
+    @item_table.rows = nil
+    @item_table.column_names.should == []
+  end
+
+  it 's ith_row(integer) should be ith row' do
+    @item_table.ith_row(2).items[1].name.value.should == 'five'
+  end
+
+  it 'should be invalid index under 0' do
+    lambda {@item_table.ith_row(0) }.should raise_error(ArgumentError)
+  end
+
+  it 'should be true because it has_row_with_name cluster' do
+    @item_table.has_row_with_name?('one').should be_true
+  end
+
+  it 'should be true because it does not have_row_with_name key' do
+    @item_table.has_row_with_name?('two').should_not be_true
+  end
+
+  it 'should raise argument error key is nil' do
+    lambda {@item_table.has_row_with_name?(nil)
+      }.should raise_error(ArgumentError)
+  end
+
+  it 'should raise argument error key is empty' do
+    lambda {@item_table.has_row_with_name?('')
+      }.should raise_error(ArgumentError)
+  end
+
+  it 'should be true because it has_column_with_name one' do
+    @item_table.has_column_with_name?('one').should be_true
+  end
+
+  it 'second row should be named_row four' do
+    @item_table.named_row('four').items[1].name.value = 'five'
+  end
+
+  it 'should be true if row has key' do
+    @item_table.has_row_with_key?(Set['one','two']).should be_true
+  end
+
+  it 'should not be true if row has not key' do
+    @item_table.has_row_with_key?(Set['two','five']).should be_false
+  end
+
+  it 'should be a first row that has one' do
+    @item_table.row_with_key(Set['one', 'two']).items[0].name.value.should =='one'
+  end
+
+  it 'should raise argument error if row has no key' do
+    lambda {
+      @item_table.row_with_key(Set['two','five'])}.should raise_error(ArgumentError)
+  end
+
+  it 'should be element at cell ij' do 
+    @item_table.element_at_cell_ij(2,2).name.value.should == 'five'
+  end
+
+  it 'should not be element at cell with wrong ij' do
+    @item_table.element_at_cell_ij(2,3).name.value.should_not == 'five'
+  end
+
+  it 'should be two element at named cell by row column' do
+    @item_table.element_at_named_cell('cluster', 'two').name.value == 'two'
+  end
+
+  it 'should be first row as hierachy' do
+    @item_table.as_hierarchy.name.value.should == 'cluster'
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_structures/item_structure/item_tree_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_structures/item_structure/item_tree_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_structures/item_structure/item_tree_spec.rb	(revision 291)
@@ -0,0 +1,29 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+
+include OpenEHR::RM::DataStructures::ItemStructure
+include OpenEHR::RM::DataStructures::ItemStructure::Representation
+include OpenEHR::RM::DataTypes::Text
+
+describe ItemTree do
+  before(:each) do
+    items = %w{one two}.collect do |name|
+      Element.new(:name => DvText.new(:value => name),
+                  :archetype_node_id => 'test')
+    end
+    name = DvText.new(:value => 'item tree')
+    @item_tree = ItemTree.new(:name => name,
+                              :archetype_node_id => 'test',
+                              :items => items)
+  end
+
+  it 'should be an instance of ItemTree' do
+    @item_tree.should be_an_instance_of ItemTree
+  end
+
+  it 'first item name should be one' do
+    @item_tree.items[0].name.value.should == 'one'
+  end
+
+  it 'has valid element path' do
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/basic/data_value_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/basic/data_value_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/basic/data_value_spec.rb	(revision 291)
@@ -0,0 +1,17 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+
+include OpenEHR::RM::DataTypes::Basic
+
+describe DataValue do
+  before(:each) do
+    @data_value = DataValue.new(:value => 'ANY')
+  end
+
+  it 'should be an instance of DataValue' do
+    @data_value.should be_an_instance_of DataValue
+  end
+
+  it 's value should be stub' do
+    @data_value.value.should == 'ANY'
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/basic/dv_boolean_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/basic/dv_boolean_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/basic/dv_boolean_spec.rb	(revision 291)
@@ -0,0 +1,29 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Basic
+
+
+describe DvBoolean do
+  before(:each) do
+    @dv_boolean = DvBoolean.new(:value => "TRUE")
+  end
+
+  it 'should be an instance of DvBoolean' do
+    @dv_boolean.should be_an_instance_of DvBoolean
+  end
+
+  it 'should be true' do
+    @dv_boolean.value.should be_true
+    @dv_boolean.value?.should be_true
+  end
+
+  it 's value assigned false, then it should not be false' do
+    @dv_boolean.value = false
+    @dv_boolean.value.should_not be_true
+  end
+
+  it 'raise ArgumentError' do
+    lambda {
+      @dv_boolean.value = nil
+    }.should raise_error(ArgumentError)
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/basic/dv_identifier_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/basic/dv_identifier_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/basic/dv_identifier_spec.rb	(revision 291)
@@ -0,0 +1,108 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Basic
+include OpenEHR::RM::DataTypes::Text
+
+describe DvIdentifier do
+  before(:each) do
+    @dv_identifier = DvIdentifier.new(:issuer => 'Ruby Hospital',
+                                      :assigner => 'Information office',
+                                      :id => '0123456-0',
+                                      :type =>'personal id')
+  end
+
+  it 'should be an instance of DvIdentifier' do
+    @dv_identifier.should be_an_instance_of DvIdentifier
+  end
+
+  it 's issuer should be Ruby hospital' do
+    @dv_identifier.issuer.should == 'Ruby Hospital'
+  end
+
+  it 's assigner should be Information office' do
+    @dv_identifier.assigner.should == 'Information office'
+  end
+
+  it 's id should be 0123456-0' do
+    @dv_identifier.id.should == '0123456-0'
+  end
+
+  it 's type should be personal id' do
+    @dv_identifier.type.should == 'personal id'
+  end
+
+  it 's issuer should be change to other hospital' do
+    lambda {
+      @dv_identifier.issuer = 'Other Hospital'
+    }.should change(@dv_identifier, :issuer).
+      from('Ruby Hospital').to('Other Hospital')
+  end
+
+  it 'raise ArgumentError for nil issuer' do
+    lambda {
+      @dv_identifier.issuer = nil
+    }.should raise_error(ArgumentError)
+  end
+
+  it 'raise ArgumentError for empty issuer' do
+    lambda {
+      @dv_identifier.issuer = ''
+    }.should raise_error(ArgumentError)
+  end
+
+  it 's assigner should change from Information office to Service office' do
+    lambda {
+      @dv_identifier.assigner = 'Service office'
+    }.should change{@dv_identifier.assigner}.
+      from('Information office').to('Service office')
+  end
+
+  it 'raise ArgumentError for nil assigner' do
+    lambda {
+      @dv_identifier.assigner = nil
+    }.should raise_error(ArgumentError)
+  end
+
+  it 'raise ArgumentError for empty assigner' do
+    lambda {
+      @dv_identifier.assigner = ''
+    }.should raise_error(ArgumentError)
+  end
+
+  it 's id should change from 0123456-0 to TEST-0987' do
+    lambda {
+      @dv_identifier.id = 'TEST-0987'
+    }.should change(@dv_identifier, :id).
+      from('0123456-0').to('TEST-0987')
+  end
+
+  it 'raise ArgumentError for nil id' do
+    lambda {
+      @dv_identifier.id = nil
+    }.should raise_error(ArgumentError)
+  end
+
+  it 'raise ArgumentError for empty id' do
+    lambda {
+      @dv_identifier.id = ''
+    }.should raise_error(ArgumentError)
+  end
+
+  it 's type should change form personal id to test id' do
+    lambda {
+      @dv_identifier.type = "test id"
+    }.should change(@dv_identifier, :type).
+      from('personal id').to('test id')
+  end
+
+  it 'raise ArgumentError for nil type' do
+    lambda {
+      @dv_identifier.type = nil
+    }.should raise_error(ArgumentError)
+  end
+
+  it 'raise ArgumentError for empty issuer' do
+    lambda {
+      @dv_identifier.type = ''
+    }.should raise_error(ArgumentError)
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/basic/dv_state_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/basic/dv_state_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/basic/dv_state_spec.rb	(revision 291)
@@ -0,0 +1,44 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Basic
+include OpenEHR::RM::Support::Identification
+include OpenEHR::RM::DataTypes::Text
+
+describe DvState do
+  before(:each) do
+    @terminology_id = TerminologyID.new(:value => 'openher')
+    code_phrase = CodePhrase.new(:code_string => '524',
+                                 :terminology_id => @terminology_id)
+    dv_coded_text = DvCodedText.new(:value => "initial",
+                                    :defining_code => code_phrase)
+    @dv_state = DvState.new(:value => dv_coded_text,
+                            :is_terminal => false)
+  end
+
+  it 'should be an instance of DvState' do
+    @dv_state.should be_an_instance_of DvState
+  end
+
+  it 's value should be initial' do
+    @dv_state.value.value.should == 'initial'
+  end
+
+  it 'should change other value assigned' do
+    code_phrase = CodePhrase.new(:code_string => '526',
+                                 :terminology_id => @terminology_id)
+    dv_coded_text = DvCodedText.new(:value =>'planned',
+                                    :defining_code => code_phrase)
+    lambda {
+      @dv_state.value = dv_coded_text
+    }.should change{@dv_state.value.value}.from('initial').to('planned')
+  end
+
+  it 'is not terminal' do
+    @dv_state.is_terminal?.should be_false
+  end
+
+  it 'should change to terminal' do
+    lambda {
+      @dv_state.is_terminal = true
+    }.should change(@dv_state, :is_terminal?).from(false).to(true)
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/encapsulated/dv_encapsulated_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/encapsulated/dv_encapsulated_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/encapsulated/dv_encapsulated_spec.rb	(revision 291)
@@ -0,0 +1,42 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Encapsulated
+include OpenEHR::RM::DataTypes::Text
+
+describe DvEncapsulated do
+  before(:each) do
+    dummy = 'test'
+    charset = stub(CodePhrase, :code_string => 'UTF-8')
+    language = stub(CodePhrase, :code_string => 'ja')
+    @dv_encapsulated = DvEncapsulated.new(:value => dummy,
+                                          :charset => charset,
+                                          :language => language)
+  end
+
+  it 's value should be test' do
+    @dv_encapsulated.value.should == 'test'
+  end
+
+  it 's size should be 4' do
+    @dv_encapsulated.size.should be_equal 4
+  end
+
+  it 's charset should be utf-8' do
+    @dv_encapsulated.charset.code_string.should == 'UTF-8'
+  end
+
+  it 's langage should be ja' do
+    @dv_encapsulated.language.code_string.should == 'ja'
+  end
+
+  it 'should raise ArgumentError when language is invalid' do
+    wrong_lang = stub(CodePhrase, :code_string => 'jj')
+    lambda {@dv_encapsulated.language = wrong_lang}.
+      should raise_error(ArgumentError)
+  end
+
+  it 'should raise ArgumentError when charset is invalid' do
+    wrong_charset = stub(CodePhrase, :code_string => 'UBK')
+    lambda {@dv_encapsulated.charset = wrong_charset}.
+      should raise_error(ArgumentError)
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/encapsulated/dv_multimedia_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/encapsulated/dv_multimedia_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/encapsulated/dv_multimedia_spec.rb	(revision 291)
@@ -0,0 +1,79 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Encapsulated
+include OpenEHR::RM::DataTypes::Text
+include OpenEHR::RM::DataTypes::Uri
+include OpenEHR::RM::Support::Identification
+
+describe DvMultimedia do
+  before(:each) do
+    media_type = stub(CodePhrase, :code_string => 'text/xml')
+    charset = stub(CodePhrase, :code_string => 'UTF-8')
+    uri = stub(DvUri, :value => 'http://openehr.jp/')
+    data = Array['123412', '123112']
+    compression_algorithm = stub(CodePhrase, :code_string => 'gzip')
+    integrity_check = Array['123456789ABCDEF','DEADBEEF']
+    integrity_check_algorithm = stub(CodePhrase, :code_string => 'SHA-1')
+    alternate_text = 'test'
+    @dv_multimedia = DvMultimedia.new(:value => '<xml>test</xml>',
+                                      :media_type => media_type,
+                                      :charset => charset,
+                                      :uri => uri,
+                                      :data => data,
+                                      :compression_algorithm => compression_algorithm,
+                                      :integrity_check => integrity_check,
+                                      :integrity_check_algorithm => integrity_check_algorithm,
+                                      :alternate_text => alternate_text)
+  end
+
+  it 'should be an instance of DvMultimedia' do
+    @dv_multimedia.should be_an_instance_of DvMultimedia
+  end
+
+  it 's value should be <xml>test</xml>' do
+    @dv_multimedia.value.should == '<xml>test</xml>'
+  end
+
+  it 's media_type should be text/xml' do
+    @dv_multimedia.media_type.code_string.should == 'text/xml'
+  end
+
+  it 's size should be equal 15' do
+    @dv_multimedia.size.should be_equal 15
+  end
+
+  it 's charset should be UTF-8' do
+    @dv_multimedia.charset.code_string.should == 'UTF-8'
+  end
+
+  it 's uri value should be http://openehr.jp/ ' do
+    @dv_multimedia.uri.value.should == 'http://openehr.jp/'
+  end
+
+  it 's data[0] should be 123412' do
+    @dv_multimedia.data[0].should == '123412'
+  end
+
+  it 's compression_algorithm should be gzip' do
+    @dv_multimedia.compression_algorithm.code_string.should == 'gzip'
+  end
+
+  it 's integrity_check[1] should be DEADBEEF' do
+    @dv_multimedia.integrity_check[1].should == 'DEADBEEF'
+  end
+
+  it 's integrity_check_algorithm should be SHA-1' do
+    @dv_multimedia.integrity_check_algorithm.code_string.should == 'SHA-1'
+  end
+
+  it 's alternate text should be test' do
+    @dv_multimedia.alternate_text.should == 'test'
+  end
+
+  it 'has_integrity_check should be true'
+
+  it 'is compressed should be true'
+
+  it 'is_external should be true'
+
+  it 'is_internal should be false'
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/encapsulated/dv_parsable_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/encapsulated/dv_parsable_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/encapsulated/dv_parsable_spec.rb	(revision 291)
@@ -0,0 +1,34 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Encapsulated
+include OpenEHR::RM::DataTypes::Text
+
+describe DvParsable do
+  before(:each) do
+    @dv_parsable = DvParsable.new(:value => 'test',
+                                  :formalism => 'plain/text')
+  end
+
+  it 'should be an instance of DvParsable' do
+    @dv_parsable.should be_an_instance_of DvParsable
+  end
+
+  it 'value should be test' do
+    @dv_parsable.value.should == 'test'
+  end
+
+  it 's size should be 4' do
+    @dv_parsable.size.should be_equal 4
+  end
+
+  it 's formalism should be plain/text' do
+    @dv_parsable.formalism.should == 'plain/text'
+  end
+
+  it 'should raise ArgumentError formalism nil' do
+    lambda {@dv_parsable.formalism = nil}.should raise_error(ArgumentError)
+  end
+
+  it 'should raise ArgumentError formalism empty' do
+    lambda {@dv_parsable.formalism = ''}.should raise_error(ArgumentError)
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_absolute_quantity_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_absolute_quantity_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_absolute_quantity_spec.rb	(revision 291)
@@ -0,0 +1,35 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Quantity
+
+describe DvAbsoluteQuantity do
+  before(:each) do
+    @dv_absolute_quantity = DvAbsoluteQuantity.new(:magnitude => 7)
+  end
+
+  it 'should be an instance of DvAbsoluteQuantity' do
+    @dv_absolute_quantity.should be_an_instance_of DvAbsoluteQuantity
+  end
+
+  it 's add 3 method should magnitude 10' do
+    dv_absolute_quantity10 =
+      @dv_absolute_quantity.add(DvAbsoluteQuantity.new(:magnitude => 3))
+    dv_absolute_quantity10.magnitude.should == 10
+  end
+
+  it 's diff method should return DvAmount' do    
+    diff_dv_amount = @dv_absolute_quantity.diff(DvAbsoluteQuantity.new(
+                                                    :magnitude => 10))
+    diff_dv_amount.magnitude.should == 3
+  end
+
+  it 's subtract method should raise NotImplementedError' do
+    sub_dv_absolute_quantity = @dv_absolute_quantity.subtract(DvAbsoluteQuantity.new(:magnitude => 10))
+    sub_dv_absolute_quantity.magnitude.should == -3
+  end
+
+  it 'should be raise ArgumentError when type mismatched' do
+    lambda {
+      @dv_absolute_quantity.add(1)
+    }.should raise_error ArgumentError
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_amount_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_amount_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_amount_spec.rb	(revision 291)
@@ -0,0 +1,105 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Quantity
+
+describe DvAmount do
+  before(:each) do
+    @dv_amount = DvAmount.new(:magnitude => 2,
+                              :accuracy => 100,
+                              :accuracy_percent => true)
+  end
+
+  it 'should be an instance of DvAmount' do
+    @dv_amount.should be_an_instance_of DvAmount
+  end
+
+  it 's magnitude should be equal 2' do
+    @dv_amount.magnitude.should be_equal 2
+  end
+
+  it 's accuracy should be 100 percent' do
+    @dv_amount.accuracy.should be_equal 100
+  end
+
+  it 's accuracy_is_percent should be true' do
+    @dv_amount.accuracy_is_percent?.should be_true
+  end
+
+  it 'should has an instance with nil accuracy' do
+    dv_amount = DvAmount.new(:magnitude => 1)
+    dv_amount.should be_an_instance_of DvAmount
+  end
+
+  it 'should be 3 if +2 magnitude DvAmount' do
+    dv_amount4 = @dv_amount + DvAmount.new(:magnitude => 2)
+    dv_amount4.magnitude.should == 4
+  end
+
+  it 'should be -1 if - 3 magnitude DvAmount' do
+    dv_amount_1 = @dv_amount - DvAmount.new(:magnitude => 3)
+    dv_amount_1.magnitude.should == -1
+  end
+
+  it 'should be type mismatch' do
+    lambda {
+      @dv_amount + 1
+    }.should raise_error ArgumentError
+  end
+
+  it 'should not raise ArgumentError' do
+    lambda {
+      @dv_amount.set_accuracy(0, true)
+    }.should_not raise_error ArgumentError
+  end
+  it 'should not raise ArgumentError' do
+    lambda {
+      @dv_amount.set_accuracy(50, true)
+    }.should_not raise_error ArgumentError
+  end
+
+  it 'should not raise ArgumentError' do
+    lambda {
+      @dv_amount.set_accuracy(100, true)
+    }.should_not raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with invaild accuracy' do
+    lambda {
+      @dv_amount.set_accuracy(-0.01, true)
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with invaild accuracy' do
+    lambda {
+      @dv_amount.set_accuracy(100.1, true)
+    }.should raise_error ArgumentError
+  end
+
+  it 'should not raise ArgumentError' do
+    lambda {
+      @dv_amount.set_accuracy(0, false)
+    }.should_not raise_error ArgumentError
+  end
+  it 'should not raise ArgumentError' do
+    lambda {
+      @dv_amount.set_accuracy(0.5, false)
+    }.should_not raise_error ArgumentError
+  end
+
+  it 'should not raise ArgumentError' do
+    lambda {
+      @dv_amount.set_accuracy(1.0, false)
+    }.should_not raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with invaild accuracy' do
+    lambda {
+      @dv_amount.set_accuracy(-0.01, false)
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with invaild accuracy' do
+    lambda {
+      @dv_amount.set_accuracy(1.01, false)
+    }.should raise_error ArgumentError
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_count_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_count_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_count_spec.rb	(revision 291)
@@ -0,0 +1,12 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Quantity
+
+describe DvCount do
+  before(:each) do
+    @dv_count = DvCount.new(:magnitude => 1)
+  end
+
+  it 'should be an instance of DvCount' do
+    @dv_count.should be_an_instance_of DvCount
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_interval_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_interval_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_interval_spec.rb	(revision 291)
@@ -0,0 +1,17 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Quantity
+
+describe DvInterval do
+  before(:each) do
+    @dv_interval = DvInterval.new(:upper => 100,
+                                  :lower => 1)
+  end
+
+  it 'should be an instance of DvInterval' do
+    @dv_interval.should be_an_instance_of DvInterval
+  end
+
+  it 's upper should be larger than lower' do
+    @dv_interval.upper.should > @dv_interval.lower
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_ordered_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_ordered_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_ordered_spec.rb	(revision 291)
@@ -0,0 +1,60 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Quantity
+include OpenEHR::RM::DataTypes::Text
+
+describe DvOrdered do
+  before(:each) do
+    @dv_ordered = DvOrdered.new
+  end
+
+  it 'should be an instance of DvOrdered' do
+    @dv_ordered.should be_an_instance_of DvOrdered
+  end
+
+  it 'is_normal? should be false' do
+    @dv_ordered.is_normal?.should be_false
+  end
+
+  it 'should be normal' do
+    normal_code = stub(CodePhrase, :code_string => 'N')
+    @dv_ordered.normal_status = normal_code
+    @dv_ordered.is_normal?.should be_true
+  end
+
+  it 'should not be normal' do
+    abnormal_code = stub(CodePhrase, :code_string => 'H')
+    @dv_ordered.normal_status = abnormal_code
+    @dv_ordered.is_normal?.should_not be_true
+  end
+
+  it 'is_simple? should be true' do
+    @dv_ordered.is_simple?.should be_true
+  end
+
+  it 'is_simple? should be false' do
+    @dv_ordered.other_reference_ranges = 'dummy'
+    @dv_ordered.is_simple?.should be_false
+  end
+
+  it 'should raise ArgumentError' do
+    lambda{
+      @dv_ordered.other_reference_ranges = ''
+    }.should raise_error ArgumentError
+  end
+
+  it 'should be normal in range' do
+    normal_range = stub(DvInterval, :has => true)
+    @dv_ordered.normal_range = normal_range
+    @dv_ordered.is_normal?.should be_true
+  end
+
+  it 'is_strictly_comparable_to should be true for DvOrdered' do
+    @dv_ordered.is_strictly_comparable_to?(DvOrdered.new).should be_true
+  end
+
+  it 'should be raise NotImplemented error' do
+    lambda {
+      @dv_ordered<=>1
+    }.should raise_error(NotImplementedError)
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_ordinal_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_ordinal_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_ordinal_spec.rb	(revision 291)
@@ -0,0 +1,74 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Quantity
+include OpenEHR::RM::DataTypes::Text
+include OpenEHR::RM::Support::Identification
+
+describe DvOrdinal do
+  before(:each) do
+    terminology_id = stub(TerminologyID, :value => 'urine:prot')
+    code_phrase = stub(CodePhrase, :terminology_id => terminology_id)
+    symbol = stub(DvCodedText, :code_string => '+',
+                  :defining_code => code_phrase)
+    dv_text = stub(DvText, :value => 'limits')
+    limits = stub(ReferenceRange, :meaning => dv_text)
+    @dv_ordinal = DvOrdinal.new(:value => 1,
+                                :symbol => symbol,
+                                :limits => limits)
+  end
+
+  it 'should be an instance of DvOrdinal' do
+    @dv_ordinal.should be_an_instance_of DvOrdinal
+  end
+
+  it 's value should be equal 1' do
+    @dv_ordinal.value.should be_equal 1
+  end
+
+  it 's symbol should be + code string' do
+    @dv_ordinal.symbol.code_string.should == '+'
+  end
+
+  it 's symbol defining_code should be urine:prot' do
+    @dv_ordinal.symbol.defining_code.terminology_id.value.should ==
+      'urine:prot'
+  end
+
+  it 'should be strictry comperable to other DvOrdinal' do
+    terminology_id = stub(TerminologyID, :value => 'urine:prot')
+    code_phrase = stub(CodePhrase, :terminology_id => terminology_id)
+    symbol = stub(DvCodedText, :defining_code => code_phrase)
+    dv_ordinal = DvOrdinal.new(:value => 2,
+                               :symbol => symbol)
+    @dv_ordinal.is_strictly_comparable_to?(dv_ordinal).should be_true
+  end
+
+  it 's limit.value should be limits' do
+    @dv_ordinal.limits.meaning.value.should == 'limits'
+  end
+
+  it 'should raise error when limits.value is not limitted' do
+    unlimit = stub(DvText, :value => 'unimitted')
+    unlimitted_range = stub(ReferenceRange, :meaning => unlimit)
+    lambda {
+      @dv_ordinal.limits = unlimitted_range
+    }.should raise_error ArgumentError
+  end
+
+  it 'should be comparable' do
+    dv_ordinal = stub(DvOrdinal, :value => 2)
+    @dv_ordinal.should < dv_ordinal
+  end
+
+  it 'is_strictly comparable should be false with other instance' do
+    @dv_ordinal.is_strictly_comparable_to?('dummy').should be_false
+  end
+
+  it 'is strictly comparable should be false with other terminology' do
+    terminology_id = stub(Terminology, :value => 'blood pressure')
+    code_phrase = stub(CodePhrase, :terminology_id => terminology_id)
+    symbol = stub(DvCodedText, :defining_code => code_phrase)
+    dv_ordinal = DvOrdinal.new(:value => 3,
+                               :symbol => symbol)
+    @dv_ordinal.is_strictly_comparable_to?(dv_ordinal).should be_false
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_proportion_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_proportion_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_proportion_spec.rb	(revision 291)
@@ -0,0 +1,162 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Quantity
+include OpenEHR::RM::DataTypes::Quantity::ProportionKind
+
+describe DvProportion do
+  before(:all) do
+    @dv_proportion0 = DvProportion.new(:numerator => 2,
+                                       :denominator => 3,
+                                       :type => PK_RATIO,
+                                       :accuracy => 1,
+                                       :accuracy_percent => true)
+    @dv_proportion1 = DvProportion.new(:numerator => 3,
+                                       :denominator => 1,
+                                       :type => PK_UNITARY)
+    @dv_proportion2 = DvProportion.new(:numerator => 5,
+                                       :denominator => 100,
+                                       :type => PK_PERCENT)
+    @dv_proportion3 = DvProportion.new(:numerator => 7,
+                                       :denominator => 8,
+                                       :type => PK_FRACTION)
+    @dv_proportion4 = DvProportion.new(:numerator => 9,
+                                       :denominator => 10,
+                                       :type => PK_INTEGER_FRACTION)
+  end
+
+  describe 'PK_RATIO type' do
+    it 'should be an instance of DvProportion' do
+      @dv_proportion0.should be_an_instance_of DvProportion
+    end
+
+    it 's numerator should be equal 2' do
+      @dv_proportion0.numerator.should be_equal 2
+    end
+
+    it 's denominator should be equal 3' do
+      @dv_proportion0.denominator.should be_equal 3
+    end
+
+    it 's type should be equal 0' do
+      @dv_proportion0.type.should == 0
+    end
+
+    it 's magnitude should be 2/3' do
+      @dv_proportion0.magnitude.should == 2.0/3.0
+    end
+
+    it 's accuracy should be 1' do
+      @dv_proportion0.accuracy.should == 1
+    end
+
+    it 'is_integral? should be true' do
+      @dv_proportion0.is_integral?.should be_true
+    end
+
+    it 'should be comperable to same type DvProportion' do
+      dv_propotion_type = DvProportion.new(:numerator => 3,
+                                           :denominator => 4,
+                                           :type => 0)
+      @dv_proportion0.is_strictly_comparable_to?(dv_propotion_type).
+        should be_true
+    end
+
+    it 'should not be comparable to other type DvPropotion' do
+      @dv_proportion0.is_strictly_comparable_to?(@dv_proportion1).
+        should_not be_true
+    end
+
+    it 'should not be comperable to other class' do
+      @dv_proportion0.is_strictly_comparable_to?(1).
+        should_not be_true
+    end
+
+    it 'should raise ArguentError with invalid type -1' do
+      lambda {
+        @dv_proportion0.type = -1
+      }.should raise_error ArgumentError
+    end
+
+    it 'should raise ArgumentError with invalid type 5' do
+      lambda {
+        @dv_proportion0.type = 5
+      }.should raise_error ArgumentError
+    end
+
+    it 's precision should be 0' do
+      @dv_proportion0.precision = 0
+      @dv_proportion0.precision.should == 0
+    end
+
+    it 'should raise ArgumentError when is_integral? and precision !=0' do
+      lambda {@dv_proportion0.precision = 1}.should raise_error ArgumentError
+    end
+
+    it 'shoud not raise ArgumentError when is_not ntegral' do
+      @dv_proportion0.numerator = 2.5
+      lambda {
+        @dv_proportion0.precision = 1
+      }.should_not raise_error ArgumentError
+    end
+  end
+
+  describe 'PK_UNITARY type' do
+    it 'should be an instance of DvPropotion' do
+      @dv_proportion1.should be_an_instance_of DvProportion
+    end
+
+    it 'should raise ArgumentError without denominator 1' do
+      lambda {
+        @dv_proportion1.denominator = 10
+      }.should raise_error ArgumentError
+    end
+  end
+
+  describe 'PK_PERCENT type' do
+    it 'should be an instance of DvProportion' do
+      @dv_proportion2.should be_an_instance_of DvProportion
+    end
+
+    it 'should raise ArgumentError without denominator 100' do
+      lambda {
+        @dv_proportion2.denominator = 101
+      }.should raise_error ArgumentError
+    end
+  end
+
+  describe 'PK_FRACTION type' do
+    it 'should be an instance of DvProportion' do
+      @dv_proportion3.should be_an_instance_of DvProportion
+    end
+
+    it 'should raise ArgumentError with fractional denominator' do
+      lambda {
+        @dv_proportion3.denominator = 0.5
+      }.should raise_error ArgumentError
+    end
+
+    it 'should raise ArgumentError with fractional numerator' do
+      lambda {
+        @dv_proportion3.numerator = 0.5
+      }.should raise_error ArgumentError
+    end
+  end
+
+  describe 'PK_FRACTION_INTEGER type' do
+    it 'should be an instance of DvProportion' do
+      @dv_proportion4.should be_an_instance_of DvProportion
+    end
+
+    it 'should raise ArgumentError with fractional denominator' do
+      lambda {
+        @dv_proportion4.denominator = 0.5
+      }.should raise_error ArgumentError
+
+    end
+
+    it 'should raise ArgumentError with fractional numerator' do
+      lambda {
+        @dv_proportion4.numerator = 0.5
+      }.should raise_error ArgumentError
+    end
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_quantified_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_quantified_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_quantified_spec.rb	(revision 291)
@@ -0,0 +1,36 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Quantity
+
+describe DvQuantified do
+  before(:all) do
+    @dv_quantified = DvQuantified.new(:magnitude => 1,
+                                      :magnitude_status => '=')
+  end
+
+  it 'should be an instance of DvQuantified' do
+    @dv_quantified.should be_an_instance_of DvQuantified
+  end
+
+  it 's magnitude should be 1' do
+    @dv_quantified.magnitude.should be_equal 1
+  end
+
+  it 's magnitude_status should be =' do
+    @dv_quantified.magnitude_status.should == '='
+  end
+
+  it 's comparable to other DvQuantified' do
+    dv_quantified = DvQuantified.new(:magnitude => 2)
+    @dv_quantified.should < dv_quantified
+  end
+
+  it 'should raise ArgumentError with invalid magnitude_status' do
+    lambda {
+      @dv_quantified.magnitude_status = '+'
+    }.should raise_error ArgumentError
+  end
+
+  it 's accuracy should be unknown' do
+    @dv_quantified.should be_accuracy_unknown
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_quantity_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_quantity_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/dv_quantity_spec.rb	(revision 291)
@@ -0,0 +1,78 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Quantity
+
+describe DvQuantity do
+  before(:each) do
+    @dv_quantity = DvQuantity.new(:magnitude => 3,
+                                  :units => 'mg',
+                                  :precision => 0)
+  end
+
+  it 'should be an instance of DvQuantity' do
+    @dv_quantity.should be_instance_of DvQuantity
+  end
+
+  it 's units should be mg' do
+    @dv_quantity.units.should == 'mg'
+  end
+
+  describe 'Mathematical Operation' do
+    before(:each) do
+      @dv_quantity5 = DvQuantity.new(:magnitude => 5,
+                                     :units => 'mg')
+    end
+    
+    it 'should be comparable to 5mg' do
+      @dv_quantity.is_strictly_comparable_to?(@dv_quantity5).should be_true
+    end
+
+    it 'should be 8mg added 5mg' do
+      dv_quantity = @dv_quantity + @dv_quantity5
+      dv_quantity.magnitude.should == 8
+    end
+
+    it 'should be -2mg minus 5mg' do
+      dv_quantity = @dv_quantity - @dv_quantity5
+      dv_quantity.magnitude.should == -2
+    end
+
+    it 's unit should be mg' do
+      (@dv_quantity + @dv_quantity5).units.should == 'mg'
+    end
+  end
+
+  it 'should not be comparable to 8km' do
+    dv_quantity = DvQuantity.new(:magnitude => 8,
+                                 :units => 'km')
+    @dv_quantity.is_strictly_comparable_to?(dv_quantity).should_not be_true
+  end
+
+  it 'should return false with other type' do
+    @dv_quantity.is_strictly_comparable_to?(1).should_not be_true
+  end
+
+  it 's precision should be equal 0' do
+    @dv_quantity.precision.should == 0
+  end
+
+  it 'should be integral' do
+    @dv_quantity.is_integral?.should be_true
+  end
+
+  it 'should not be integral do' do
+    @dv_quantity.precision = 3
+    @dv_quantity.is_integral?.should_not be_true
+  end
+
+  it 'should not raise ArgumentError with -1 precision' do
+    lambda {
+      @dv_quantity.precision = -1
+    }.should_not raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with -2 precision' do
+    lambda {
+      @dv_quantity.precision = -2
+    }.should raise_error ArgumentError
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/proportion_kind_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/proportion_kind_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/proportion_kind_spec.rb	(revision 291)
@@ -0,0 +1,24 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Quantity
+
+describe ProportionKind do
+  it 'should be valid proportion kind 0' do
+    ProportionKind.should be_valid_proportion_kind 0
+  end
+
+  it 'should be valid proportion kind 2' do
+    ProportionKind.should be_valid_proportion_kind 2
+  end
+
+  it 'should be valid proportionkind 4' do
+    ProportionKind.should be_valid_proportion_kind 4
+  end
+
+  it 'should not be valid proportionkind -1' do
+    ProportionKind.should_not be_valid_proportion_kind -1
+  end
+
+  it 'should not be valid proportionkind 5' do
+    ProportionKind.should_not be_valid_proportion_kind 5
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/reference_range_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/reference_range_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/quantity/reference_range_spec.rb	(revision 291)
@@ -0,0 +1,43 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Quantity
+
+describe ReferenceRange do
+  before(:each) do
+    dv_interval ||= stub(DvInterval)
+    @mock_dv_interval ||= mock('dv_interval')
+    @reference_range = ReferenceRange.new(:meaning => 'test',
+                                          :range => dv_interval)
+  end
+
+  it 'should be an instance of DvInterval' do
+    @reference_range.should be_an_instance_of ReferenceRange
+  end
+
+  it 's meaning should be test' do
+    @reference_range.meaning.should == 'test'
+  end
+
+  it 'should be in range' do
+    @mock_dv_interval.should_receive(:has?).with(1).and_return(true)
+    @reference_range.range = @mock_dv_interval
+    @reference_range.is_in_range?(1).should be_true
+  end
+
+  it 'should be out of range' do
+    @mock_dv_interval.should_receive(:has?).with(-1).and_return(false)
+    @reference_range.range = @mock_dv_interval
+    @reference_range.is_in_range?(-1).should be_false
+  end
+
+  it 'should raise ArgumentError with nil meaning' do
+    lambda {
+      @reference_range.meaning = nil
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with nil range' do
+    lambda {
+      @reference_range.range = nil
+    }.should raise_error ArgumentError
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/text/code_phrase_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/text/code_phrase_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/text/code_phrase_spec.rb	(revision 291)
@@ -0,0 +1,23 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Text
+include OpenEHR::RM::Support::Identification
+
+describe CodePhrase do
+  before(:each) do
+    terminology_id = TerminologyID.new(:value => 'openehr')
+    @code_phrase = CodePhrase.new(:code_string => '535',
+                                  :terminology_id => terminology_id)
+  end
+
+  it 'should be an instance of CodePhrase' do
+    @code_phrase.should be_an_instance_of CodePhrase
+  end
+
+  it 's code_string should be 535' do
+    @code_phrase.code_string.should == '535'
+  end
+
+  it 's terminology_id.name should be openehr' do
+    @code_phrase.terminology_id.name.should == 'openehr'
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/text/dv_paragraph_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/text/dv_paragraph_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/text/dv_paragraph_spec.rb	(revision 291)
@@ -0,0 +1,13 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Text
+
+describe DvParagraph do
+  before(:each) do
+    items_dummy = Array[1,2]
+    @dv_paragraph = DvParagraph.new(:items => items_dummy)
+  end
+
+  it 's items should be_size 2' do
+    @dv_paragraph.items.size.should be_equal 2
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/text/dv_text_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/text/dv_text_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/text/dv_text_spec.rb	(revision 291)
@@ -0,0 +1,57 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Text
+include OpenEHR::RM::Support::Identification
+
+describe DvText do
+  before(:each) do
+    terminology_id = TerminologyID.new(:value => 'openehr')
+    language = CodePhrase.new(:terminology_id => terminology_id,
+                              :code_string => 'ja')
+    encoding = CodePhrase.new(:terminology_id => terminology_id,
+                              :code_string => 'utf-8')
+    @dv_text = DvText.new(:value => 'test',
+                          :formatting => 'font = 12pt',
+                          :language => language,
+                          :encoding => encoding)
+  end
+
+  it 'should be an instance of DvText' do
+    @dv_text.should be_an_instance_of DvText
+  end
+
+  it 's value should be test' do
+    @dv_text.value.should == 'test'
+  end
+
+  it 'should raise ArgumentError, when value include \n' do
+    lambda {
+      @dv_text.value = "not valid value\n"
+    }.should raise_error(ArgumentError)
+  end
+
+  it 'should raise ArgumentError, when value is nil' do
+    lambda {
+      @dv_text.value = nil
+    }.should raise_error(ArgumentError)
+  end
+
+  it 'formatting should be font' do
+    @dv_text.formatting.should == 'font = 12pt'
+  end
+
+  it 'should raise ArgumentError, when formatting is empty' do
+    lambda{@dv_text.formatting = ""}.should raise_error(ArgumentError)
+  end
+
+  it 'should be mapping list'
+
+  it 'should be hyperlink'
+
+  it 's language code_string should be ja' do
+    @dv_text.language.code_string.should == 'ja'
+  end
+
+  it 's encoding should be utf-8' do
+    @dv_text.encoding.code_string.should == 'utf-8'
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/text/term_mapping_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/text/term_mapping_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/text/term_mapping_spec.rb	(revision 291)
@@ -0,0 +1,59 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Text
+
+describe TermMapping do
+  before(:each) do
+    target_stub = stub(DvCodedText, :value => 'TEST')
+    purpose_stub = stub(DvCodedText, :value => 'automated')
+    @term_mapping = TermMapping.new(:target => target_stub,
+                                    :match => '=',
+                                    :purpose => purpose_stub)
+  end
+
+  it 'should means equivalent' do
+    @term_mapping.should be_equivalent
+  end
+
+  it 'should means narrower' do
+    @term_mapping.match = '<'
+    @term_mapping.should be_narrower
+  end
+
+  it 'should means broader' do
+    @term_mapping.match = '>'
+    @term_mapping.should be_broader
+  end
+
+  it 'should means unknown' do
+    @term_mapping.match = '?'
+    @term_mapping.should be_unknown
+  end
+
+  it 'should be valid match code >' do
+    TermMapping.is_valid_mach_code?('>').should be_true
+  end
+
+  it 'should be valid match code =' do
+    TermMapping.is_valid_mach_code?('=').should be_true
+  end
+
+  it 'should be valid match code <' do
+    TermMapping.is_valid_mach_code?('<').should be_true
+  end
+
+  it 'should be valid match code ?' do
+    TermMapping.is_valid_mach_code?('?').should be_true
+  end
+
+  it 'should be not valid code /' do
+    TermMapping.is_valid_mach_code?('/').should_not be_true
+  end
+
+  it 's purpose should == automated' do
+    @term_mapping.purpose.value.should == 'automated'
+  end
+
+  it 'should raise ArgumentError when match is not valid' do
+    lambda {@term_mapping.match = '/'}.should raise_error(ArgumentError)
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/uri/dv_ehr_uri_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/uri/dv_ehr_uri_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/uri/dv_ehr_uri_spec.rb	(revision 291)
@@ -0,0 +1,21 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Uri
+
+describe DvEhrUri do
+  before(:each) do
+    @dv_ehr_uri = DvEhrUri.new(:value => 'ehr://test/87284370-2D4B-4e3d-A3F3-F303D2F4F34B@2005-08-02T04:30:00')
+  end
+
+  it 'should be an instance of EhrUri' do
+    @dv_ehr_uri.should be_an_instance_of DvEhrUri
+  end
+
+  it 's value should be valid' do
+    @dv_ehr_uri.value.should == 
+      'ehr://test/87284370-2D4B-4e3d-A3F3-F303D2F4F34B@2005-08-02T04:30:00'
+  end
+
+  it 's scheme should be ehr' do
+    @dv_ehr_uri.scheme.should == 'ehr'
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/data_types/uri/dv_uri_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/data_types/uri/dv_uri_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/data_types/uri/dv_uri_spec.rb	(revision 291)
@@ -0,0 +1,36 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::DataTypes::Uri
+
+describe DvUri do
+  before(:each) do
+    @dv_uri = DvUri.new(:value => 
+                        "http://www.openehr.jp/changeset/test?cmd=93#file0")
+  end
+
+  it 's fragment_id should be file0' do
+    @dv_uri.fragment_id.should == 'file0'
+  end
+
+  it 's path should be /changeset/test' do
+    @dv_uri.path.should == '/changeset/test'
+  end
+
+  it 's query should be cmd=93' do
+    @dv_uri.query.should == 'cmd=93'
+  end
+
+  it 's scheme should be http' do
+    @dv_uri.scheme.should == 'http'
+  end
+
+  it 's value should be http://www.openehr.jp/changeset/test?cmd=93#file0' do
+    @dv_uri.value.should == 'http://www.openehr.jp/changeset/test?cmd=93#file0'
+  end
+
+  it 's value change' do
+    lambda {
+      @dv_uri.value="svn://www.openehr.jp/openehr-jp/"
+    }.should change(@dv_uri, :value).to('svn://www.openehr.jp/openehr-jp/')
+  end
+end
+
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/access_group_ref_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/access_group_ref_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/access_group_ref_spec.rb	(revision 291)
@@ -0,0 +1,19 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe AccessGroupRef do
+  before(:each) do
+    object_id = ObjectID.new(:value => 'deadbeefbabe')
+    @access_group_ref = AccessGroupRef.new(:id => object_id,
+                                           :type => 'ACCESS_GROUP',
+                                           :namespace => 'unknown')
+  end
+
+  it 'should be an instance of AccessGroupRef' do
+    @access_group_ref.should be_an_instance_of AccessGroupRef
+  end
+
+  it 'type should be equal ACCESS_GROUP' do
+    @access_group_ref.type.should == 'ACCESS_GROUP'
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/archetype_id_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/archetype_id_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/archetype_id_spec.rb	(revision 291)
@@ -0,0 +1,152 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe ArchetypeID do
+  before(:each) do
+    @archetype_id = ArchetypeID.new(:value => 'openEHR-EHR-SECTION.physical_examination-prenatal.v2')
+  end
+
+  it 'should be an instance of ArchetypeID' do
+    @archetype_id.should be_an_instance_of ArchetypeID
+  end
+
+  it 's value should be equal
+       openEHR-EHR-SECTION.physical_examination-prenatal.v2' do
+    @archetype_id.value.should ==
+      'openEHR-EHR-SECTION.physical_examination-prenatal.v2'
+  end
+  it 's qualified_rm_entity should be openEHR-EHR-SECTION' do
+    @archetype_id.qualified_rm_entity.should == 'openEHR-EHR-SECTION'
+  end
+
+  it 's rm_originator should be openEHR' do
+    @archetype_id.rm_originator.should == 'openEHR'
+  end
+
+  it 's rm_name should be EHR' do
+    @archetype_id.rm_name.should == 'EHR'
+  end
+
+  it 'rm_entity should be SECTION' do
+    @archetype_id.rm_entity.should == 'SECTION'
+  end
+
+  it 's domain_concept should be physical_examination-prenatal' do
+    @archetype_id.domain_concept.should == 'physical_examination-prenatal'
+  end
+
+  it 's concept name should be physical_examination' do
+    @archetype_id.concept_name.should == 'physical_examination'
+  end
+
+  it 's specialisation should be prenatal' do
+    @archetype_id.specialisation.should == 'prenatal'
+  end
+
+  it 's version_id should == v2' do
+    @archetype_id.version_id.should == 'v2'
+  end
+
+  it 'should raise ArgumentError with wrong id format' do
+    lambda {
+      ArchetypeID.new(:value =>'wrong-format')
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with nil concept name' do
+    lambda {
+      @archetype_id.concept_name = nil
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with wrong domain concept format' do
+    lambda {
+      @archetype_id.domain_concept = '0123'
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with empty rm_entity' do
+    lambda {
+      @archetype_id.rm_entity = ''
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with nil rm_entity' do
+    lambda {
+      @archetype_id.rm_entity = nil
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with empty rm_originator' do
+    lambda {
+      @archetype_id.rm_originator = ''
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with nil rm_originator' do
+    lambda {
+      @archetype_id.rm_originator = nil
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with empty specialisation' do
+    lambda {
+      @archetype_id.specialisation = ''
+    }.should raise_error ArgumentError
+  end
+
+  it 'should not raise ArgumentError with nil specialisation' do
+    lambda {
+      @archetype_id.specialisation = nil
+    }.should_not raise_error ArgumentError
+  end
+
+  describe 'another constructor' do
+    before(:each) do
+      @archetype_id = ArchetypeID.new(:rm_originator => 'openEHR',
+                                      :rm_name => 'EHR',
+                                      :rm_entity => 'EVALUATION',
+                                      :concept_name => 'clinical_synopsis',
+                                      :version_id => 'v1')
+    end
+
+    it 'should be an instance of ArchetypeID' do
+      @archetype_id.should be_an_instance_of ArchetypeID
+    end
+
+    it 'domain_concept should be clinical_synopsis' do
+      @archetype_id.domain_concept.should == 'clinical_synopsis'
+    end
+  end
+
+  describe 'domain concept' do
+    before(:each) do
+      @archetype_id.domain_concept = 'progress_note-naturopathy'
+    end
+
+    it 'concept_name should be progress note' do
+      @archetype_id.concept_name.should == 'progress_note'
+    end
+
+    it 'specialisation should be naturopathy' do
+      @archetype_id.specialisation === 'naturopathy'
+    end
+
+    it 'should raise ArgumentError empty domain concept' do
+      lambda {
+        @archetype_id.domain_concept = ''
+      }.should raise_error ArgumentError
+    end
+
+    it 'should raise ArgumentError nil domain concept' do
+      lambda {
+        @archetype_id.domain_concept = nil
+      }.should raise_error ArgumentError
+    end
+
+    it 's specialisation may be empty' do
+      @archetype_id.domain_concept = 'clinical_synopsis'
+      @archetype_id.concept_name.should == 'clinical_synopsis'
+    end
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/generic_id_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/generic_id_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/generic_id_spec.rb	(revision 291)
@@ -0,0 +1,33 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe GenericID do
+  before(:each) do
+    @generic_id = GenericID.new(:value => '791-0245',
+                                :scheme => 'ZIP')
+  end
+
+  it 'should be an instance of GenericID' do
+    @generic_id.should be_an_instance_of GenericID
+  end
+
+  it 's value should be 791-0245' do
+    @generic_id.value.should == '791-0245'
+  end
+
+  it 's scheme should be ZIP' do
+    @generic_id.scheme.should == 'ZIP'
+  end
+
+  it 'should raise ArgumentError with nil scheme' do
+    lambda {
+      @generic_id.scheme = nil
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with empty scheme' do
+    lambda {
+      @generic_id.scheme = ''
+    }.should raise_error ArgumentError
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/hier_object_id_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/hier_object_id_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/hier_object_id_spec.rb	(revision 291)
@@ -0,0 +1,12 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe HierObjectID do
+  before(:each) do
+    @hier_object_id = HierObjectID.new(:value => '2003045')
+  end
+
+  it 'should be an instance of HierObjectID' do
+    @hier_object_id.should be_an_instance_of HierObjectID
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/internet_id_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/internet_id_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/internet_id_spec.rb	(revision 291)
@@ -0,0 +1,12 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe InternetID do
+  before(:each) do
+    @internet_id = InternetID.new(:value => 'jp.openehr')
+  end
+
+  it 'should be an instance of IsoOID' do
+    @internet_id.should be_an_instance_of InternetID
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/iso_oid_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/iso_oid_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/iso_oid_spec.rb	(revision 291)
@@ -0,0 +1,12 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe IsoOID do
+  before(:each) do
+    @iso_oid = IsoOID.new(:value => '1.3.6.0.1')
+  end
+
+  it 'should be an instance of IsoOID' do
+    @iso_oid.should be_an_instance_of IsoOID
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/locatable_ref_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/locatable_ref_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/locatable_ref_spec.rb	(revision 291)
@@ -0,0 +1,34 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe LocatableRef do
+  before(:each) do
+    object_version_id = ObjectVersionID.new(:value => 'deadbeef::babe::1')
+    @locatable_ref = LocatableRef.new(:id => object_version_id,
+                                      :namespace => 'local',
+                                      :type =>'PERSON',
+                                      :path => 'test/support')
+  end
+
+  it 'should be an instance of LocatableRef' do
+    @locatable_ref.should be_an_instance_of LocatableRef
+  end
+
+  it 'id should be deadbeef::babe::1' do
+    @locatable_ref.id.value.should == 'deadbeef::babe::1'
+  end
+
+  it 'path should be test/support' do
+    @locatable_ref.path.should == 'test/support'
+  end
+
+  it 'as_uri should be ehr://deadbeef::babe::1/test/support' do
+    @locatable_ref.as_uri.should == 'ehr://deadbeef::babe::1/test/support'
+  end
+
+  it 'should raise ArgumentError with empty path' do
+    lambda {
+      @locatable_ref.path = ''
+    }.should raise_error ArgumentError
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/object_id_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/object_id_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/object_id_spec.rb	(revision 291)
@@ -0,0 +1,24 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe ObjectID do
+  before(:each) do
+    @object_id = ObjectID.new(:value => '1')
+  end
+
+  it 'should be an instance of ObjectID' do
+    @object_id.should be_an_instance_of ObjectID
+  end
+
+  it 'value should be 1' do
+    @object_id.value.should == '1'
+  end
+
+  it 'should equal with same value' do
+    @object_id.should == ObjectID.new(:value => '1')
+  end
+
+  it 'should_not equal with other value' do
+    @object_id.should_not == ObjectID.new(:value => 'a')
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/object_ref_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/object_ref_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/object_ref_spec.rb	(revision 291)
@@ -0,0 +1,33 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe ObjectRef do
+  before(:each) do
+    object_id = ObjectID.new(:value => 'deadbeefbabe')
+    @object_ref = ObjectRef.new(:id => object_id,
+                                :namespace => 'local',
+                                :type => 'PARTY')
+  end
+
+  it 'id.value should deadbeefbabe' do
+    @object_ref.id.value.should == 'deadbeefbabe'
+  end
+
+  it 'should be an isntance of ObjectRef' do
+    @object_ref.should be_an_instance_of ObjectRef
+  end
+
+  it 'namespace should be local' do
+    @object_ref.namespace.should == 'local'
+  end
+
+  it 'type should be PARTY' do
+    @object_ref.type.should == 'PARTY'
+  end
+
+  it 'should raise ArgumentError with invalid namespace' do
+    lambda {
+      @object_ref.namespace = 'a****'
+    }.should raise_error ArgumentError
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/object_version_id_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/object_version_id_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/object_version_id_spec.rb	(revision 291)
@@ -0,0 +1,60 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe ObjectVersionID do
+  before(:each) do
+    @object_version_id = ObjectVersionID.new(:value => 'F7C5C7B7-75DB-4b39-9A1E-C0BA9BFDBDEC::87284370-2D4B-4e3d-A3F3-F303D2F4F34B::2')
+
+  end
+
+  it 'should be an instance of ObjectVersionID' do
+    @object_version_id.should be_an_instance_of ObjectVersionID
+  end
+
+  it 'value should be F7C5C7B7-75DB-4b39-9A1E-C0BA9BFDBDEC::87284370-2D4B-4e3d-A3F3-F303D2F4F34B::2' do
+    @object_version_id.value.should == 'F7C5C7B7-75DB-4b39-9A1E-C0BA9BFDBDEC::87284370-2D4B-4e3d-A3F3-F303D2F4F34B::2'
+  end
+
+  it 'should not be branched' do
+    @object_version_id.is_branch?.should be_false
+  end
+
+  it 'should have valid object_id' do
+    @object_version_id.object_id.value.should ==
+      'F7C5C7B7-75DB-4b39-9A1E-C0BA9BFDBDEC'
+  end
+
+  it 'should have valid creating_system_id' do
+    @object_version_id.creating_system_id.value.should ==
+      '87284370-2D4B-4e3d-A3F3-F303D2F4F34B'
+  end
+
+  it 'should raise ArgumentError with invalid format' do
+    lambda {
+      @object_version_id.value = 'invalid:form'
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with nil object id' do
+    lambda {
+      @object_version_id.object_id = nil
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with nil creating system id' do
+    lambda {
+      @object_version_id.creating_system_id = nil
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with nil version_tree_id' do
+    lambda {
+      @object_version_id.version_tree_id = nil
+    }.should raise_error ArgumentError
+  end
+
+  it 'should be branch if version_identifier represent branch' do
+    @object_version_id.version_tree_id.value = '2.3.4'
+    @object_version_id.is_branch?.should be_true
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/party_ref_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/party_ref_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/party_ref_spec.rb	(revision 291)
@@ -0,0 +1,29 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe PartyRef do
+  before(:each) do
+    object_id = stub(ObjectID, :value => 'test')
+    @party_ref = PartyRef.new(:id => object_id,
+                              :type => 'PERSON',
+                              :namespace => 'test')
+  end
+
+  it 'should be an instance of PartyRef' do
+    @party_ref.should be_an_instance_of PartyRef
+  end
+
+  %w[PERSON ORGANISATION GROUP AGENT ROLE PARTY ACTOR].each do |type|
+    it "should not raise ArgumentError with #{type} type" do
+      lambda {
+        @party_ref.type = type
+      }.should_not raise_error ArgumentError
+    end
+  end
+
+  it 'should raise ArgumentError with UNKNOWN type' do
+    lambda {
+      @party_ref.type = 'UNKNOWN'
+    }.should raise_error ArgumentError
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/template_id_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/template_id_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/template_id_spec.rb	(revision 291)
@@ -0,0 +1,12 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe TemplateID do
+  before(:each) do
+    @template_id = TemplateID.new(:value => 'uk.nhs.cfh:openehr-EHR-COMPOSITION.admission_ed.v5')
+  end
+
+  it 'should be an isntance of TemplateID' do
+    @template_id.should be_an_instance_of TemplateID
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/terminology_id_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/terminology_id_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/terminology_id_spec.rb	(revision 291)
@@ -0,0 +1,33 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe TerminologyID do
+  before(:each) do
+    @terminology_id = TerminologyID.new(:value => 'ICD10(2003)')
+  end
+
+  it 'should be an instance of TerminologyID' do
+    @terminology_id.should be_an_instance_of TerminologyID
+  end
+
+  it 's name should be ICD10' do
+    @terminology_id.name.should == 'ICD10'
+  end
+
+  it 's version_id should be 2003' do
+    @terminology_id.version_id.should == '2003'
+  end
+
+  it 's value should be ICD10(2003)' do
+    @terminology_id.value.should == 'ICD10(2003)'
+  end
+
+  it 'should only name when version_id is nil' do
+    @terminology_id.version_id = ''
+    @terminology_id.value.should == 'ICD10'
+  end
+
+  it 'should has another constructor' do
+    @terminology_id = TerminologyID.new(:name => 'SNOMED-CT')
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/uid_based_id_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/uid_based_id_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/uid_based_id_spec.rb	(revision 291)
@@ -0,0 +1,50 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe UIDBasedID do
+  before(:each) do
+    @uid_based_id = UIDBasedID.new(:value => 'rrip::0.0.3')
+  end
+
+  it 'should be an instance of UIDBasedID' do
+    @uid_based_id.should be_an_instance_of UIDBasedID
+  end
+
+  it 'value should be rrip::0.0.3' do
+    @uid_based_id.value.should == 'rrip::0.0.3'
+  end
+
+  it 'root should be rrip' do
+    @uid_based_id.root.value.should == 'rrip'
+  end
+
+  it 'extention should be 0.0.3' do
+    @uid_based_id.extension.should == '0.0.3'
+  end
+
+  it 'should have extension' do
+    @uid_based_id.has_extension?.should be_true
+  end
+
+  describe 'when extension is empty' do
+    before(:each) do
+      @uid_based_id = UIDBasedID.new(:value => '10001')
+    end
+
+    it 'value should be 10001' do
+      @uid_based_id.value.should == '10001'
+    end
+
+    it 'has_extension? should not be true' do
+      @uid_based_id.has_extension?.should_not be_true
+    end
+
+    it 's extention should be empty' do
+      @uid_based_id.extension.should == ''
+    end
+
+    it 's root should be 10001' do
+      @uid_based_id.root.value.should == '10001'
+    end
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/uid_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/uid_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/uid_spec.rb	(revision 291)
@@ -0,0 +1,29 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe UID do
+  before(:each) do
+    @uid = UID.new(:value => '1001')
+  end
+
+  it 'should be an instance of UID' do
+    @uid.should be_an_instance_of UID
+  end
+
+  it 's value should be 1001' do
+    @uid.value.should == '1001'
+  end
+
+  it 'should raise ArgumentError with nil value' do
+    lambda {
+      @uid.value = nil
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with empty value' do
+    lambda {
+      @uid.value = ''
+    }.should raise_error ArgumentError
+  end
+end
+  
Index: ruby/trunk/spec/lib/open_ehr/rm/support/identification/version_tree_id_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/identification/version_tree_id_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/identification/version_tree_id_spec.rb	(revision 291)
@@ -0,0 +1,104 @@
+require File.dirname(__FILE__) + '/../../../../../spec_helper'
+include OpenEHR::RM::Support::Identification
+
+describe VersionTreeID do
+  before(:each) do
+    @version_tree_id = VersionTreeID.new(:value => '1.2.3')
+  end
+
+  it 'should be an instance of VersionTreeID' do
+    @version_tree_id.should be_an_instance_of VersionTreeID
+  end
+
+  it 'value should be 1.2.3' do
+    @version_tree_id.value.should == '1.2.3'
+  end
+
+  it 'trunk_version should 1' do
+    @version_tree_id.trunk_version.should == '1'
+  end
+
+  it 'branch_number should 2' do
+    @version_tree_id.branch_number.should == '2'
+  end
+
+  it 'branch_version should 3' do
+    @version_tree_id.branch_version.should == '3'
+  end
+
+  it 'is_first? should be true' do
+    @version_tree_id.is_first?.should be_true
+  end
+
+  it 'is_branch? should be true' do
+    @version_tree_id.is_branch?.should be_true
+  end
+
+  it 'should raise ArgumentError with nil trunk version' do
+    lambda {
+      @version_tree_id.trunk_version = nil
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with 0 trunk version' do
+    lambda {
+      @version_tree_id.trunk_version = 0
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with 0 branch number' do
+    lambda {
+      @version_tree_id.branch_number = 0
+    }.should raise_error ArgumentError
+  end
+
+  it 'should raise ArgumentError with 0 branch version' do
+    lambda {
+      @version_tree_id.branch_version = 0
+    }.should raise_error ArgumentError
+  end
+
+  describe 'partial version tree id' do
+    describe 'version 4.5' do
+      before(:each) do
+        @version_tree_id = VersionTreeID.new(:value => '4.5')
+      end
+
+      it 'value should be 4.5' do
+        @version_tree_id.value.should == '4.5'
+      end
+
+      it 'should be nil branch version' do
+        @version_tree_id.branch_version.should be_nil
+      end
+
+      it 'is_first? should not be true' do
+        @version_tree_id.is_first?.should_not be_true
+      end
+    end
+
+    describe 'version 6' do
+      before(:each) do
+        @version_tree_id = VersionTreeID.new(:value => '6')
+      end
+
+      it 'value should be 6' do
+        @version_tree_id.value.should == '6'
+      end
+
+      it 'should be nil branch number' do
+        @version_tree_id.branch_number.should be_nil
+      end
+
+      it 'is_branch should not be true' do
+        @version_tree_id.is_branch?.should_not be_true
+      end
+
+      it 'should raise ArgumentError if assinged branch version' do
+        lambda {
+          @version_tree_id.branch_version = '7'
+        }.should raise_error ArgumentError
+      end
+    end
+  end
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/measurement_service_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/measurement_service_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/measurement_service_spec.rb	(revision 291)
@@ -0,0 +1,7 @@
+require File.dirname(__FILE__) + '/../../../../spec_helper'
+include OpenEHR::RM::Support::Measurement
+
+describe MeasurementService do
+
+
+end
Index: ruby/trunk/spec/lib/open_ehr/rm/support/terminology_service_spec.rb
===================================================================
--- ruby/trunk/spec/lib/open_ehr/rm/support/terminology_service_spec.rb	(revision 291)
+++ ruby/trunk/spec/lib/open_ehr/rm/support/terminology_service_spec.rb	(revision 291)
@@ -0,0 +1,24 @@
+require File.dirname(__FILE__) + '/../../../../spec_helper'
+include OpenEHR::RM::Support::Terminology
+
+describe TerminologyService do
+  before(:each) do
+    @ts ||= TerminologyService.new
+    @terminology_mock = mock('terminology')
+  end
+
+  it 'should get terminology by its name' do
+  end
+
+  it 'should get code_set by its name'
+
+  it 'should reply if it has terminology or not'
+
+  it 'should reply if it has terminology or not'
+
+  it 'should reply all terminology_identifires'
+
+  it 'should get openehr code stes'
+
+  it 'should get code_set_identifiers'
+end
Index: ruby/trunk/spec/models/encoding_alias_spec.rb
===================================================================
--- ruby/trunk/spec/models/encoding_alias_spec.rb	(revision 291)
+++ ruby/trunk/spec/models/encoding_alias_spec.rb	(revision 291)
@@ -0,0 +1,7 @@
+require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
+
+describe EncodingAlias do
+  before(:each) do
+    @encoding_alias ||= EncodingAlias.new
+  end
+end
Index: ruby/trunk/spec/models/encoding_spec.rb
===================================================================
--- ruby/trunk/spec/models/encoding_spec.rb	(revision 291)
+++ ruby/trunk/spec/models/encoding_spec.rb	(revision 291)
@@ -0,0 +1,18 @@
+require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
+
+describe 'encoding in general', :shared => true do
+  before(:all) do
+    @encoding_mock = mock('encoding')
+  end
+end
+
+
+describe Encoding do
+
+  it "should  valid charset?" do
+    encodings_proxy = mock('encodings')
+    encodings_proxy.should_receive(:valid_charset?).with('UTF-8').and_return(true)
+    @encoding.stub!(:valid_charset?).and_return(encodings_proxy)
+    encodings_proxy.valid_charset?('UTF-8').should be_true
+  end
+end
Index: ruby/trunk/spec/models/terminology_spec.rb
===================================================================
--- ruby/trunk/spec/models/terminology_spec.rb	(revision 291)
+++ ruby/trunk/spec/models/terminology_spec.rb	(revision 291)
@@ -0,0 +1,9 @@
+require File.dirname(__FILE__) + '/../spec_helper'
+
+describe Terminology do
+  before(:each) do
+    @terminology = Terminology.new
+  end
+
+  it 'should find all the codes by group'
+end
Index: ruby/trunk/spec/rcov.opts
===================================================================
--- ruby/trunk/spec/rcov.opts	(revision 291)
+++ ruby/trunk/spec/rcov.opts	(revision 291)
@@ -0,0 +1,2 @@
+--exclude "spec/*,gems/*"
+--rails
Index: ruby/trunk/spec/spec.opts
===================================================================
--- ruby/trunk/spec/spec.opts	(revision 291)
+++ ruby/trunk/spec/spec.opts	(revision 291)
@@ -0,0 +1,4 @@
+--colour
+--format progress
+--loadby mtime
+--reverse
Index: ruby/trunk/spec/spec_helper.rb
===================================================================
--- ruby/trunk/spec/spec_helper.rb	(revision 291)
+++ ruby/trunk/spec/spec_helper.rb	(revision 291)
@@ -0,0 +1,51 @@
+# This file is copied to ~/spec when you run 'ruby script/generate rspec'
+# from the project root directory.
+ENV["RAILS_ENV"] ||= 'test'
+require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
+require 'spec/autorun'
+require 'spec/rails'
+
+# Requires supporting files with custom matchers and macros, etc,
+# in ./support/ and its subdirectories.
+Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
+
+Spec::Runner.configure do |config|
+  # If you're not using ActiveRecord you should remove these
+  # lines, delete config/database.yml and disable :active_record
+  # in your config/boot.rb
+  config.use_transactional_fixtures = true
+  config.use_instantiated_fixtures  = false
+  config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
+
+  # == Fixtures
+  #
+  # You can declare fixtures for each example_group like this:
+  #   describe "...." do
+  #     fixtures :table_a, :table_b
+  #
+  # Alternatively, if you prefer to declare them only once, you can
+  # do so right here. Just uncomment the next line and replace the fixture
+  # names with your fixtures.
+  #
+  # config.global_fixtures = :table_a, :table_b
+  #
+  # If you declare global fixtures, be aware that they will be declared
+  # for all of your examples, even those that don't use them.
+  #
+  # You can also declare which fixtures to use (for example fixtures for test/fixtures):
+  #
+  # config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
+  #
+  # == Mock Framework
+  #
+  # RSpec uses it's own mocking framework by default. If you prefer to
+  # use mocha, flexmock or RR, uncomment the appropriate line:
+  #
+  # config.mock_with :mocha
+  # config.mock_with :flexmock
+  # config.mock_with :rr
+  #
+  # == Notes
+  #
+  # For more information take a look at Spec::Runner::Configuration and Spec::Runner
+end
Index: ruby/trunk/terminology/doc/README_FOR_APP
===================================================================
--- ruby/trunk/terminology/doc/README_FOR_APP	(revision 290)
+++ 	(revision )
@@ -1,2 +1,0 @@
-Use this README file to introduce your application and point to useful places in the API for learning more.
-Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries.
Index: ruby/trunk/terminology/doc/api
===================================================================
--- ruby/trunk/terminology/doc/api	(revision 290)
+++ 	(revision )
@@ -1,1 +1,0 @@
-link /usr/share/doc/rails/html
Index: ruby/trunk/terminology/doc/openehr_terminology.csv
===================================================================
--- ruby/trunk/terminology/doc/openehr_terminology.csv	(revision 290)
+++ 	(revision )
@@ -1,192 +1,0 @@
-1,0,openehr,en,subject relationship,self,The party is the subject of EHR ,HL7_RoleCode:: CEN: 
-2,3,openehr,en,subject relationship,foetus,The party is a foetus ,HL7: CEN: 
-3,6,openehr,en,subject relationship,donor,The party is a donor of organs or other body products to the EHR subject. ,HL7: CEN: 
-4,7,openehr,en,subject relationship,maternal grandmother,Relationship of maternal grandmother to subject of EHR ,HL7: CEN: 
-5,8,openehr,en,subject relationship,maternal grandfather,Relationship of maternal grandfather to subject of EHR ,HL7: CEN: 
-6,9,openehr,en,subject relationship,father,The party is the father of the subject of the EHR ,HL7: CEN: 
-7,10,openehr,en,subject relationship,mother,The party is the mother of the subject of EHR ,HL7: CEN: 
-8,22,openehr,en,subject relationship,partner/spouse,The husband or wife or life partner of the subject of EHR ,HL7: CEN: 
-9,23,openehr,en,subject relationship,brother,Relationship of brother to subject of EHR ,HL7: CEN: 
-10,24,openehr,en,subject relationship,sister,Relationship of sister to subject of EHR ,HL7: CEN: 
-11,25,openehr,en,subject relationship,step or half brother,Relationship of step or half brother to subject of EHR ,HL7: CEN: 
-12,26,openehr,en,subject relationship,step or half sister,Relationship of step or half sister to subject of EHR ,HL7: CEN: 
-13,27,openehr,en,subject relationship,sibling,Relationship of sibling to subject of EHR ,HL7: CEN: 
-14,28,openehr,en,subject relationship,child,Relationship of child to subject of EHR ,HL7: CEN: 
-15,29,openehr,en,subject relationship,daughter,Relationship of daughter to subject of EHR ,HL7: CEN: 
-16,31,openehr,en,subject relationship,son,Relationship of son to subject of EHR ,HL7: CEN: 
-17,36,openehr,en,subject relationship,paternal grandfather,Relationship of aternal grandfather to subject of EHR ,HL7: CEN: 
-18,37,openehr,en,subject relationship,paternal grandmother,Relationship of paternal grandmother to subject of EHR ,HL7: CEN: 
-19,38,openehr,en,subject relationship,maternal uncle,Relationship of maternal uncle to subject of EHR ,HL7: CEN: 
-20,39,openehr,en,subject relationship,maternal aunt,Relationship of maternal aunt to subject of EHR ,HL7: CEN: 
-21,40,openehr,en,subject relationship,paternal uncle,Relationship of paternal uncle to subject of EHR ,HL7: CEN: 
-22,41,openehr,en,subject relationship,paternal aunt,Relationship of paternal aunt to subject of EHR ,HL7: CEN: 
-23,45,openehr,en,event math function,minimum,Value of the interval-event is the minimum value of the discrete events which the interval-event summarises. ,
-24,121,openehr,en,property,Energy ,,
-25,122,openehr,en,property,Length ,,
-26,123,openehr,en,property,Loudness ,,
-27,124,openehr,en,property,Mass ,,
-28,125,openehr,en,property,Pressure ,,
-29,126,openehr,en,property,Flow rate  volume ,,
-30,127,openehr,en,property,Temperature ,,
-31,128,openehr,en,property,Time ,,
-32,129,openehr,en,property,Volume ,,
-33,130,openehr,en,property,Work ,,
-34,144,openehr,en,event math function,maximum,Value of the interval-event is the maximum value of the discrete events which the interval-event summarises. ,
-35,146,openehr,en,event math function,mean,Value of the interval-event is the average value of the discrete events which the interval-event summarises. ,
-36,147,openehr,en,event math function,change,Value of the interval-event is the net change over the period which the interval-event summarises. ,
-37,148,openehr,en,event math function,total,Value of the interval-event is the sum of the values of the discrete events which the interval-event summarises (typically differential flow measurements  e.g. blood loss). ,
-38,149,openehr,en,event math function,variation,Value of the interval-event is difference between the point maximum and point minimum over the period  in other words the value band into which all sample during a period fit. Useful for specifying a maximal allowed variation in a datum to still be considered the same (approximate) value. ,
-39,166,openehr,en,Instruction transitions,cancel,Cancel a planned Instruction  before it is booked or started. ,
-40,189,openehr,en,subject relationship,neonate,Relationship of neonate to subject of EHR ,HL7: CEN: 
-41,193,openehr,en,participation mode,not specified,Mode of participation is not specified; use only for legacy data. ,
-42,194,openehr,en,participation mode,asynchronous audiovisual; recorded video,Audio-visual communication that is not live ,
-43,195,openehr,en,participation mode,live audiovisual; videoconference; videophone,Any audio-visual communication in real time ,
-44,196,openehr,en,participation mode,recorded video,Recorded video or video mail ,
-45,197,openehr,en,participation mode,videophone,Live audio-visual communication ,
-46,198,openehr,en,participation mode,videoconferencing,Live audio-visual communication over videoconferencing or other similar equipment. ,HL7_ParticipationMode::16548 
-47,199,openehr,en,participation mode,asynchronous audio-only; dictated; voice mail,Audio-only communication that is not live. ,
-48,200,openehr,en,participation mode,dictated,Non-interactive audio-only information recorded on some medium  such as cassette tape. ,HL7_ParticipationMode::16547 
-49,201,openehr,en,participation mode,voice-mail,Audio messaging system ,
-50,202,openehr,en,participation mode,live audio-only; telephone; internet phone; teleconference,Any live audio-only communication. ,HL7_ParticipationMode::V16544 (includes live) 
-51,203,openehr,en,participation mode,teleconference,Live verbal communication over teleconference ,HL7_ParticipationMode::16546 
-52,204,openehr,en,participation mode,internet telephone,Live verbal communication over a the internet. ,HL7_ParticipationMode::16546 
-53,205,openehr,en,participation mode,telephone,Live verbal communication over a telephone. ,HL7_ParticipationMode::16546 
-54,206,openehr,en,participation mode,asynchronous text; email; fax; letter; handwritten note; SMS message,Any text-only communication including email  written text  SMS message etc. ,HL7_ParticipationMode::V16549 
-55,207,openehr,en,participation mode,email,Written communication by email. ,HL7_ParticipationMode::16553 [ inlcude HL7_ParticipationMode::16554 (electronic data)] 
-56,208,openehr,en,participation mode,facsimile/telefax,Non-interactive written communication using a fax machine. ,HL7_ParticipationMode::16552 
-57,209,openehr,en,participation mode,SMS message,Messages sent via mobile/cell phone ,
-58,210,openehr,en,participation mode,printed/typed letter,Written communication by typewritten document. ,HL7_ParticipationMode::16551 
-59,211,openehr,en,participation mode,handwritten note,Written communication by handwritten document. ,HL7_ParticipationMode::16550 
-60,212,openehr,en,participation mode,live text-only; internet chat; SMS chat; interactive written note,Any live text-only communication ,
-61,213,openehr,en,participation mode,internet chat,Live text-only communication over the internet ,
-62,214,openehr,en,participation mode,SMS chat,Live text-only chat over mobile/cell phone ,
-63,215,openehr,en,participation mode,interactive written note,Live text-only communication using written notes ,HL7_ParticipationMode::16550 
-64,216,openehr,en,participation mode,face-to-face communication,Face to face communications between parties in the same room. ,HL7_ParticipationMode::16545 
-65,217,openehr,en,participation mode,signing (face-toface),Live face-to-face communication using a recognised sign language. ,
-66,218,openehr,en,participation mode,signing over video,Live video communication using sign language. ,
-67,219,openehr,en,participation mode,physically present,Participation by actions  where the participant is physically present. ,HL7_ParticipationMode::16556 
-68,220,openehr,en,participation mode,physically remote,Participation by actions  where the participant is not physically present  and the actions are transmitted by electronic means. ,HL7_ParticipationMode::16557 
-69,221,openehr,en,participation mode,translated text,Non-interactive written communication requiring translation ,HL7_ParticipationMode::V16549 
-70,222,openehr,en,participation mode,interpreted audio-only,Any live audio-only communication using an interpreter. ,HL7_ParticipationMode::V16544 (includes live) 
-71,223,openehr,en,participation mode,interpreted face-toface communication,Face to face communications between parties in the same room with an interpreter ,HL7_ParticipationMode::16545 
-72,224,openehr,en,participation mode,interpreted video communication,Live audio-visual communication involving an interpreter ,
-73,240,openehr,en,attestation reason,signed,The attested information has been signed by its signatory. ,HL7_ParticipationSignature::10284 
-74,245,openehr,en,Instruction transitions,active,The instruction is currently being carried out ,
-75,249,openehr,en,audit change type,creation,Change type was creation. ,HL7_CDA: CEN: 
-76,250,openehr,en,audit change type,amendment,Change type was amendment i.e. correction of the previous version. ,HL7_CDA: CEN: 
-77,251,openehr,en,audit change type,modification,Change type was update of the previous version. ,HL7_CDA: CEN: 
-78,252,openehr,en,audit change type,synthesis,Change type was creation synthesis of data due to conversion process  typically a data importer. ,HL7_CDA: CEN: 
-79,253,openehr,en,null flavours,unknown,A possible value exists but is not provided. ,HL7_NullFlavor::V10612 
-80,254,openehr,en,subject relationship,parent,Relationship of parent to subject of EHR ,HL7: CEN: 
-81,255,openehr,en,subject relationship,biological mother,Relationship of biological mother to subject of EHR ,HL7: CEN: 
-82,256,openehr,en,subject relationship,biological father,Relationship of biological father to subject of EHR ,HL7: CEN: 
-83,257,openehr,en,subject relationship,cousin,Relationship of cousin to subject of EHR ,HL7: CEN: 
-84,258,openehr,en,subject relationship,adoptive mother,Relationship of adoptive mother to subject of EHR ,HL7: CEN: 
-85,259,openehr,en,subject relationship,adoptive father,Relationship of adoptive father to subject of EHR ,HL7: CEN: 
-86,260,openehr,en,subject relationship,adopted son,Relationship of adopted son to subject of EHR ,HL7: CEN: 
-87,261,openehr,en,subject relationship,adopted daughter,Relationship of adopted daughter to subject of EHR ,HL7: CEN: 
-88,262,openehr,en,subject relationship,step mother,Relationship of step mother to subject of EHR ,HL7: CEN: 
-89,263,openehr,en,subject relationship,step father,Relationship of step father to subject of EHR ,HL7: CEN: 
-90,264,openehr,en,subject relationship,guardian,Relationship of guardianto subject of EHR ,HL7: CEN: 
-91,265,openehr,en,subject relationship,cohabitee,Lives with the subject of EHR ,HL7: CEN: 
-92,267,openehr,en,event math function,mode,Value of the interval-event is the modal (most common) value of the discrete events which the interval-event summarises. ,
-93,268,openehr,en,event math function,median,Value of the interval-event is the median (centre value in sorted series) value of the discrete events which the interval-event summarises. ,
-94,271,openehr,en,null flavours,no information,No information provided; nothing can be inferred as to the reason why  including whether there might be a possible applicable value or not. ,HL7_NullFlavor::V10610 
-95,272,openehr,en,null flavours,masked,The value has not been provided due to privacy settings. ,HL7_NullFlavor::17932 
-96,273,openehr,en,null flavours,not applicable,No valid value exists for this data item. ,HL7_NullFlavor::10611 
-97,334,openehr,en,property,Electrical current ,,
-98,335,openehr,en,property,Area ,,
-99,336,openehr,en,property,Specific volume ,,
-100,337,openehr,en,property,Specific surface ,,
-101,338,openehr,en,property,Velocity ,,
-102,339,openehr,en,property,Acceleration ,,
-103,340,openehr,en,property,Momentum ,,
-104,341,openehr,en,property,Velocity  angular ,,
-105,342,openehr,en,property,Acceleration  angular ,,
-106,343,openehr,en,property,Momentum  angular ,,
-107,344,openehr,en,property,Moment inertia  area ,,
-108,345,openehr,en,property,Moment inertia  mass ,,
-109,346,openehr,en,property,Momentum  flow rate ,,
-110,347,openehr,en,property,Flow rate  mass ,,
-111,348,openehr,en,property,Flux  mass ,,
-112,349,openehr,en,property,Mass per area ,,
-113,350,openehr,en,property,Density ,,
-114,351,openehr,en,property,Flow rate  mass/volume ,,
-115,352,openehr,en,property,Flow rate  mass/force ,,
-116,355,openehr,en,property,Force ,,
-117,356,openehr,en,property,Surface tension ,,
-118,357,openehr,en,property,Force  body ,,
-119,360,openehr,en,property,Velocity  dynamic ,,
-120,361,openehr,en,property,Velocity  kinematic ,,
-121,362,openehr,en,property,Diffusion coefficient ,,
-122,365,openehr,en,property,Energy per area ,,
-123,366,openehr,en,property,Energy density ,,
-124,367,openehr,en,property,Power  linear ,,
-125,368,openehr,en,property,Power flux ,,
-126,369,openehr,en,property,Power density ,,
-127,370,openehr,en,property,Specific energy ,,
-128,371,openehr,en,property,Specific heat  gas content ,,
-129,373,openehr,en,property,Heat transfer coefficient ,,
-130,374,openehr,en,property,Voltage  electrical ,,
-131,375,openehr,en,property,Resistance ,,
-132,377,openehr,en,property,Electrical field strength ,,
-133,378,openehr,en,property,Magnetic flux ,,
-134,379,openehr,en,property,Inductance ,,
-135,380,openehr,en,property,Qualified real ,This is a number with an arithmetic qualification (which may be no units  103 etc) allowing integers to be expressed as reals raised to a nominated power  or for real numbers alone. ,
-136,381,openehr,en,property,Amount (Eq) ,,
-137,382,openehr,en,property,Frequency ,,
-138,384,openehr,en,property,Amount (mole) ,,
-139,385,openehr,en,property,Mass (IU) ,,
-140,431,openehr,en,composition category,persistent,This Composition contains information which remains valid for (more or less) the life of the EHR. Typical persistent Compositions include family history” problem list” current medications”  and vaccination history”. The usual change type when creating a new version of a persistent composition is modification”. ,
-141,433,openehr,en,composition category,event,This composition pertains to a point in time or brief episode. Change types may usually be modificationor  ,
-142,497,openehr,en,property,Angle  plane ,,
-143,498,openehr,en,property,Electrical charge ,,
-144,499,openehr,en,property,Light intensity ,,
-145,500,openehr,en,property,Angle  solid ,,
-146,501,openehr,en,property,Electrical capacitance ,,
-147,502,openehr,en,property,Electrical conductance ,,
-148,503,openehr,en,property,Magnetic flux density ,,
-149,504,openehr,en,property,Luminous flux ,,
-150,505,openehr,en,property,Illuminance ,,
-151,506,openehr,en,property,Radioactivity ,,
-152,507,openehr,en,property,Proportion ,,
-153,508,openehr,en,property,Energy dose ,,
-154,521,openehr,en,event math function,decrease,This is a change - as in 147 - except indicates that the value  while a positive number  is actually a negative change. Typically used for negative changes like weight loss: 5kgor blood pressure postural drop of 10 mm[Hg]”. ,
-155,522,openehr,en,event math function,increase,This is also a change  but is only a positive change and cannot be expressed as a negative. This can be used for positive changes like Weight gain: 2.5kg”. ,
-156,523,openehr,en,version lifecycle state,deleted,Item has been logically deleted. ,
-157,523,openehr,en,audit change type,deleted,Change type was logical deletion. ,HL7_CDA: CEN: 
-158,524,openehr,en,Instruction transitions,initial,The instruction is recorded but no state is determined ,
-159,526,openehr,en,Instruction transitions,planned,The instruction is planned ,
-160,527,openehr,en,Instruction transitions,postponed,The instruction has been posponed - it had not be commenced ,
-161,528,openehr,en,Instruction transitions,cancelled,The instruction has been cancelled - it had not been commenced and will not commence in the future ,
-162,529,openehr,en,Instruction transitions,scheduled,The instruction has been scheduled to be carried out at a particular time ,
-163,530,openehr,en,Instruction transitions,suspended,The instruction is suspended  it has been activated but is not active at present. It could be active again in the future. ,
-164,531,openehr,en,Instruction transitions,aborted,The instruction is aborted  it has been activated but ceased before it has been completed and will not be restarted in the future. ,
-165,532,openehr,en,version lifecycle state,complete,Item is complete at time of committal. ,
-166,532,openehr,en,Instruction transitions,completed,The instruction has been completed ,
-167,533,openehr,en,Instruction transitions,expired,The instruction has expired  timed out - and assumed to have either been cancelled  aborted or completed ,
-168,535,openehr,en,Instruction transitions,initiate,Initiate the planning of the Instruction. ,
-169,536,openehr,en,Instruction transitions,plan step,Any step in the planned state of the Instruction  e.g. signing  approving. ,
-170,537,openehr,en,Instruction transitions,postpone,Put a planned Instruction on hold  while still in the planning stage  i.e. before it has been booked or started. ,
-171,538,openehr,en,Instruction transitions,restore,Restore a previously postponed Instruction back to the planned state. ,
-172,539,openehr,en,Instruction transitions,schedule,Where booking is required  book the activities in the Instruction in a scheduling system. ,
-173,540,openehr,en,Instruction transitions,start,Start executing the activities in the Instruction  e.g. commence drug administration course. ,
-174,540,openehr,en,Instruction transitions,notify aborted,Occurs when notification of Instruction having been aborted is received after expiry. ,
-175,541,openehr,en,Instruction transitions,do,Do the activities in the Instruction in one go  taking the state machine directly from the planned to the completed state. Used for Instructions whose activities are instantaneous in the practical sense  e.g. a single vaccination  single tablet. ,
-176,542,openehr,en,Instruction transitions,postponed step,Any step in the postponed state of the Instruction. ,
-177,543,openehr,en,Instruction transitions,active step,Any step taken during the active phase of the Instruction  e.g. nurse’s observation  adjustment of dose. ,
-178,544,openehr,en,Instruction transitions,suspend,Suspend the activities from the active phase  with the possibility of later resumption. ,
-179,545,openehr,en,Instruction transitions,suspended step,Any step taken in the suspended state  e.g. nurse’s observation  pathology test to determine if the Instruction should be resumed  remain suspended or aborted. ,
-180,546,openehr,en,Instruction transitions,resume,Resume the Instruction from the suspended state. ,
-181,547,openehr,en,Instruction transitions,abort,Abort the Instruction  i.e. stop its execution permanently after it has started. ,
-182,548,openehr,en,Instruction transitions,finish,Finish performing the Instruction  taking it to the completed state. ,
-183,549,openehr,en,Instruction transitions,time out,Time out has occurred  taking the Instruction from some pervious state into the expired state. ,
-184,551,openehr,en,Instruction transitions,notify completed,Occurs when notification of Instruction having been completed is received after expiry. ,
-185,552,openehr,en,Instruction transitions,notify cancelled,Occurs when notification of Instruction having been cancelled is received after expiry. ,
-186,553,openehr,en,version lifecycle state,incomplete,Item is incomplete at time of committal  in the view of the author. Further editing or review needed before its status will be set to finished”. ,
-187,640,openehr,en,event math function,actual,Value of the datum was the value indicated during the entire time of the event  i.e. it is not an averaged or other computed value. ,
-188,648,openehr,en,attestation reason,witnessed,This attested information has been witnessed by the signatory. ,
-189,666,openehr,en,audit change type,attestation,Existing data were attested. ,HL7_CDA: CEN: 
-190,669,openehr,en,term mapping purpose,public health,Public health related term mapping. ,
-191,670,openehr,en,term mapping purpose,reimbursement,Reimbrusement / billing related term mapping. ,
-192,671,openehr,en,term mapping purpose,research study,Term mapping.for research study ,
Index: ruby/trunk/terminology/test/fixtures/terminologies.yml
===================================================================
--- ruby/trunk/terminology/test/fixtures/terminologies.yml	(revision 290)
+++ 	(revision )
@@ -1,17 +1,0 @@
-# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
-
-one:
-  id: 1
-  lang: MyString
-  group: MyText
-  rubric: MyString
-  description: MyText
-  mappings: MyString
-
-two:
-  id: 1
-  lang: MyString
-  group: MyText
-  rubric: MyString
-  description: MyText
-  mappings: MyString
Index: ruby/trunk/terminology/test/functional/terminology_controller_test.rb
===================================================================
--- ruby/trunk/terminology/test/functional/terminology_controller_test.rb	(revision 290)
+++ 	(revision )
@@ -1,8 +1,0 @@
-require 'test_helper'
-
-class TerminologyControllerTest < ActionController::TestCase
-  # Replace this with your real tests.
-  def test_truth
-    assert true
-  end
-end
Index: ruby/trunk/terminology/test/test_helper.rb
===================================================================
--- ruby/trunk/terminology/test/test_helper.rb	(revision 290)
+++ 	(revision )
@@ -1,38 +1,0 @@
-ENV["RAILS_ENV"] = "test"
-require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
-require 'test_help'
-
-class Test::Unit::TestCase
-  # Transactional fixtures accelerate your tests by wrapping each test method
-  # in a transaction that's rolled back on completion.  This ensures that the
-  # test database remains unchanged so your fixtures don't have to be reloaded
-  # between every test method.  Fewer database queries means faster tests.
-  #
-  # Read Mike Clark's excellent walkthrough at
-  #   http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
-  #
-  # Every Active Record database supports transactions except MyISAM tables
-  # in MySQL.  Turn off transactional fixtures in this case; however, if you
-  # don't care one way or the other, switching from MyISAM to InnoDB tables
-  # is recommended.
-  #
-  # The only drawback to using transactional fixtures is when you actually 
-  # need to test transactions.  Since your test is bracketed by a transaction,
-  # any transactions started in your code will be automatically rolled back.
-  self.use_transactional_fixtures = true
-
-  # Instantiated fixtures are slow, but give you @david where otherwise you
-  # would need people(:david).  If you don't want to migrate your existing
-  # test cases which use the @david style and don't mind the speed hit (each
-  # instantiated fixtures translates to a database query per test method),
-  # then set this back to true.
-  self.use_instantiated_fixtures  = false
-
-  # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
-  #
-  # Note: You'll currently still have to declare fixtures explicitly in integration tests
-  # -- they do not yet inherit this setting
-  fixtures :all
-
-  # Add more helper methods to be used by all tests here...
-end
Index: ruby/trunk/terminology/test/unit/terminology_test.rb
===================================================================
--- ruby/trunk/terminology/test/unit/terminology_test.rb	(revision 290)
+++ 	(revision )
@@ -1,8 +1,0 @@
-require 'test_helper'
-
-class TerminologyTest < ActiveSupport::TestCase
-  # Replace this with your real tests.
-  def test_truth
-    assert true
-  end
-end
Index: ruby/trunk/test/fixtures/terminologies.yml
===================================================================
--- ruby/trunk/test/fixtures/terminologies.yml	(revision 291)
+++ ruby/trunk/test/fixtures/terminologies.yml	(revision 291)
@@ -0,0 +1,17 @@
+# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
+
+one:
+  id: 1
+  lang: MyString
+  group: MyText
+  rubric: MyString
+  description: MyText
+  mappings: MyString
+
+two:
+  id: 1
+  lang: MyString
+  group: MyText
+  rubric: MyString
+  description: MyText
+  mappings: MyString
Index: ruby/trunk/test/functional/terminology_controller_test.rb
===================================================================
--- ruby/trunk/test/functional/terminology_controller_test.rb	(revision 291)
+++ ruby/trunk/test/functional/terminology_controller_test.rb	(revision 291)
@@ -0,0 +1,8 @@
+require 'test_helper'
+
+class TerminologyControllerTest < ActionController::TestCase
+  # Replace this with your real tests.
+  def test_truth
+    assert true
+  end
+end
Index: ruby/trunk/test/test_helper.rb
===================================================================
--- ruby/trunk/test/test_helper.rb	(revision 291)
+++ ruby/trunk/test/test_helper.rb	(revision 291)
@@ -0,0 +1,38 @@
+ENV["RAILS_ENV"] = "test"
+require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
+require 'test_help'
+
+class Test::Unit::TestCase
+  # Transactional fixtures accelerate your tests by wrapping each test method
+  # in a transaction that's rolled back on completion.  This ensures that the
+  # test database remains unchanged so your fixtures don't have to be reloaded
+  # between every test method.  Fewer database queries means faster tests.
+  #
+  # Read Mike Clark's excellent walkthrough at
+  #   http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
+  #
+  # Every Active Record database supports transactions except MyISAM tables
+  # in MySQL.  Turn off transactional fixtures in this case; however, if you
+  # don't care one way or the other, switching from MyISAM to InnoDB tables
+  # is recommended.
+  #
+  # The only drawback to using transactional fixtures is when you actually 
+  # need to test transactions.  Since your test is bracketed by a transaction,
+  # any transactions started in your code will be automatically rolled back.
+  self.use_transactional_fixtures = true
+
+  # Instantiated fixtures are slow, but give you @david where otherwise you
+  # would need people(:david).  If you don't want to migrate your existing
+  # test cases which use the @david style and don't mind the speed hit (each
+  # instantiated fixtures translates to a database query per test method),
+  # then set this back to true.
+  self.use_instantiated_fixtures  = false
+
+  # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
+  #
+  # Note: You'll currently still have to declare fixtures explicitly in integration tests
+  # -- they do not yet inherit this setting
+  fixtures :all
+
+  # Add more helper methods to be used by all tests here...
+end
Index: ruby/trunk/test/unit/terminology_test.rb
===================================================================
--- ruby/trunk/test/unit/terminology_test.rb	(revision 291)
+++ ruby/trunk/test/unit/terminology_test.rb	(revision 291)
@@ -0,0 +1,8 @@
+require 'test_helper'
+
+class TerminologyTest < ActiveSupport::TestCase
+  # Replace this with your real tests.
+  def test_truth
+    assert true
+  end
+end
Index: ruby/trunk/test/unit/ts_openehr.rb
===================================================================
--- ruby/trunk/test/unit/ts_openehr.rb	(revision 291)
+++ ruby/trunk/test/unit/ts_openehr.rb	(revision 291)
@@ -0,0 +1,11 @@
+# To change this template, choose Tools | Templates
+# and open the template in the editor.
+
+require 'test/unit' 
+
+# Add your testcases here
+
+require 'tc_1' 
+require 'tc_2' 
+require 'tc_3' 
+
Index: ruby/trunk/tests/models/test_archetype_model.rb
===================================================================
--- ruby/trunk/tests/models/test_archetype_model.rb	(revision 290)
+++ ruby/trunk/tests/models/test_archetype_model.rb	(revision 291)
@@ -5,25 +5,25 @@
 class ArchetypeModelTest < Test::Unit::TestCase
   def setup
-    @archetype = OpenEHR::AM::Archetype::ARCHETYPE.new
-    @validity_kind = OpenEHR::AM::Archetype::VALIDITY_KIND.new
+    @archetype = OpenEhr::AM::Archetype::ARCHETYPE.new
+    @validity_kind = OpenEhr::AM::Archetype::VALIDITY_KIND.new
 
-    @archetype_description = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new
-    @archetype_description_item = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION_ITEM.new
+    @archetype_description = OpenEhr::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new
+    @archetype_description_item = OpenEhr::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION_ITEM.new
   end
   
   def test_init
-    assert_instance_of OpenEHR::AM::Archetype::ARCHETYPE, @archetype
-    assert_instance_of OpenEHR::AM::Archetype::VALIDITY_KIND, @validity_kind
-    assert_instance_of OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, @archetype_description
-    assert_instance_of OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION_ITEM, @archetype_description_item
-    assert_instance_of OpenEHR::AM::Archetype::ARCHETYPE, @archetype
+    assert_instance_of OpenEhr::AM::Archetype::ARCHETYPE, @archetype
+    assert_instance_of OpenEhr::AM::Archetype::VALIDITY_KIND, @validity_kind
+    assert_instance_of OpenEhr::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, @archetype_description
+    assert_instance_of OpenEhr::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION_ITEM, @archetype_description_item
+    assert_instance_of OpenEhr::AM::Archetype::ARCHETYPE, @archetype
   end
 
   def test_create
-    archetype_instance = OpenEHR::AM::Archetype::ARCHETYPE.create() do |archetype|
+    archetype_instance = OpenEhr::AM::Archetype::ARCHETYPE.create() do |archetype|
       archetype.adl_version = '1.4'
     end
 
-    assert_instance_of OpenEHR::AM::Archetype::ARCHETYPE, archetype_instance
+    assert_instance_of OpenEhr::AM::Archetype::ARCHETYPE, archetype_instance
   end
 end
@@ -31,49 +31,49 @@
 class ArchetypeModelConstraintTest < Test::Unit::TestCase
   def setup
-    @archetype_constraint = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT.new
-    @cardinality = OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY.new    
+    @archetype_constraint = OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT.new
+    @cardinality = OpenEhr::AM::Archetype::Constraint_Model::CARDINALITY.new
     
-    @archetype_constraint = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT.new
-    @c_object = OpenEHR::AM::Archetype::Constraint_Model::C_OBJECT.new
-    @c_defined_object = OpenEHR::AM::Archetype::Constraint_Model::C_DEFINED_OBJECT.new
-    @c_attribute = OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE.new
-    @c_single_attribute = OpenEHR::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE.new
-    @c_multiple_attribute = OpenEHR::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE.new(:rm_attribute_name => 'attribute_name', :cardinality => @cardinality)
-    @c_primitive_object = OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.new
-    @c_reference_object =  OpenEHR::AM::Archetype::Constraint_Model::C_REFERENCE_OBJECT.new
-    @archetype_internal_ref =  OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new
-    @archetype_slot = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new
-    @constraint_ref = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new
-    @c_domain_type = OpenEHR::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE.new
-    @c_complex_object = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => [@c_single_attribute])
+    @archetype_constraint = OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT.new
+    @c_object = OpenEhr::AM::Archetype::Constraint_Model::C_OBJECT.new
+    @c_defined_object = OpenEhr::AM::Archetype::Constraint_Model::C_DEFINED_OBJECT.new
+    @c_attribute = OpenEhr::AM::Archetype::Constraint_Model::C_ATTRIBUTE.new
+    @c_single_attribute = OpenEhr::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE.new
+    @c_multiple_attribute = OpenEhr::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE.new(:rm_attribute_name => 'attribute_name', :cardinality => @cardinality)
+    @c_primitive_object = OpenEhr::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.new
+    @c_reference_object =  OpenEhr::AM::Archetype::Constraint_Model::C_REFERENCE_OBJECT.new
+    @archetype_internal_ref =  OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new
+    @archetype_slot = OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new
+    @constraint_ref = OpenEhr::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new
+    @c_domain_type = OpenEhr::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE.new
+    @c_complex_object = OpenEhr::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => [@c_single_attribute])
   end
 
   def test_init
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT, @archetype_constraint
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_OBJECT, @c_object
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_DEFINED_OBJECT, @c_defined_object
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE, @c_attribute
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE, @c_single_attribute
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE, @c_multiple_attribute
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT, @archetype_constraint
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_OBJECT, @c_object
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_DEFINED_OBJECT, @c_defined_object
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_ATTRIBUTE, @c_attribute
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE, @c_single_attribute
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE, @c_multiple_attribute
     assert_equal 'attribute_name', @c_multiple_attribute.rm_attribute_name
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY, @c_multiple_attribute.cardinality
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT, @c_primitive_object
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_REFERENCE_OBJECT, @c_reference_object
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF, @archetype_internal_ref
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT, @archetype_slot
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF, @constraint_ref
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE, @c_domain_type
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, @c_complex_object
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::CARDINALITY, @c_multiple_attribute.cardinality
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT, @c_primitive_object
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_REFERENCE_OBJECT, @c_reference_object
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF, @archetype_internal_ref
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT, @archetype_slot
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::CONSTRAINT_REF, @constraint_ref
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE, @c_domain_type
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, @c_complex_object
     assert_instance_of Array, @c_complex_object.attributes
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT, @archetype_constraint
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY, @cardinality
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT, @archetype_constraint
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::CARDINALITY, @cardinality
   end
 
   def test_create
-    c_complex_object = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:node_id => 'test_node',
+    c_complex_object = OpenEhr::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:node_id => 'test_node',
                                                                                          :attributes => [1,2],
                                                                                          :assumed_value => Array
                                                                                          )
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, c_complex_object
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, c_complex_object
     assert_equal 'test_node', c_complex_object.node_id
   end
@@ -83,26 +83,26 @@
   def setup
     #@c_primitive = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE.new
-    @c_boolean = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true,
+    @c_boolean = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true,
                                                                                     :false_valid => true,
                                                                                     :assumed_value => true)
-    @c_string = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_STRING.new
-    @c_integer = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.new
-    @c_real = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_REAL.new
-    @c_time = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_TIME.new
-    @c_date = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE.new
-    @c_date_time = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME.new
-    @c_duration = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DURATION.new
+    @c_string = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_STRING.new
+    @c_integer = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.new
+    @c_real = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_REAL.new
+    @c_time = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_TIME.new
+    @c_date = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_DATE.new
+    @c_date_time = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME.new
+    @c_duration = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_DURATION.new
   end
 
   def test_init
     #assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE, @c_primitive
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN, @c_boolean
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_STRING, @c_string
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER, @c_integer
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_REAL, @c_real
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_TIME, @c_time
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE, @c_date
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME, @c_date_time
-    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DURATION, @c_duration
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN, @c_boolean
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_STRING, @c_string
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_INTEGER, @c_integer
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_REAL, @c_real
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_TIME, @c_time
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_DATE, @c_date
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME, @c_date_time
+    assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_DURATION, @c_duration
   end
 
@@ -119,5 +119,5 @@
     end
     assert_raise(ArgumentError) do 
-      OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid =>false,
+      OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid =>false,
                                                                          :false_valid => false,
                                                                          :assumed_value => false)
@@ -129,11 +129,11 @@
 class ArchetypeModelOntologyTest < Test::Unit::TestCase
   def setup
-    @archetype_ontology = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new
-    @archetype_term = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_TERM.new(:code => '', :items => '')
+    @archetype_ontology = OpenEhr::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new
+    @archetype_term = OpenEhr::AM::Archetype::Ontology::ARCHETYPE_TERM.new(:code => '', :items => '')
   end
 
   def test_init
-    assert_instance_of OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY, @archetype_ontology
-    assert_instance_of OpenEHR::AM::Archetype::Ontology::ARCHETYPE_TERM, @archetype_term
+    assert_instance_of OpenEhr::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY, @archetype_ontology
+    assert_instance_of OpenEhr::AM::Archetype::Ontology::ARCHETYPE_TERM, @archetype_term
   end
 end
@@ -141,23 +141,23 @@
 class ArchetypeModelAssertionTest < Test::Unit::TestCase
   def setup
-    @assertion = OpenEHR::AM::Archetype::Assertion::ASSERTION.new
-    @assertion_variable = OpenEHR::AM::Archetype::Assertion::ASSERTION_VARIABLE.new
-    @operator_kind = OpenEHR::AM::Archetype::Assertion::OPERATOR_KIND.new
-    @expr_item = OpenEHR::AM::Archetype::Assertion::EXPR_ITEM.new
-    @expr_leaf = OpenEHR::AM::Archetype::Assertion::EXPR_LEAF.new
-    @expr_operator = OpenEHR::AM::Archetype::Assertion::EXPR_OPERATOR.new
-    @expr_unary_operator = OpenEHR::AM::Archetype::Assertion::EXPR_UNARY_OPERATOR.new
-    @expr_binary_operator = OpenEHR::AM::Archetype::Assertion::EXPR_BINARY_OPERATOR.new
+    @assertion = OpenEhr::AM::Archetype::Assertion::ASSERTION.new
+    @assertion_variable = OpenEhr::AM::Archetype::Assertion::ASSERTION_VARIABLE.new
+    @operator_kind = OpenEhr::AM::Archetype::Assertion::OPERATOR_KIND.new
+    @expr_item = OpenEhr::AM::Archetype::Assertion::EXPR_ITEM.new
+    @expr_leaf = OpenEhr::AM::Archetype::Assertion::EXPR_LEAF.new
+    @expr_operator = OpenEhr::AM::Archetype::Assertion::EXPR_OPERATOR.new
+    @expr_unary_operator = OpenEhr::AM::Archetype::Assertion::EXPR_UNARY_OPERATOR.new
+    @expr_binary_operator = OpenEhr::AM::Archetype::Assertion::EXPR_BINARY_OPERATOR.new
   end
 
   def test_init
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::ASSERTION, @assertion
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::ASSERTION_VARIABLE, @assertion_variable
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::OPERATOR_KIND, @operator_kind
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_ITEM, @expr_item
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_LEAF, @expr_leaf
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_OPERATOR, @expr_operator
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_UNARY_OPERATOR, @expr_unary_operator
-    assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_BINARY_OPERATOR, @expr_binary_operator
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::ASSERTION, @assertion
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::ASSERTION_VARIABLE, @assertion_variable
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::OPERATOR_KIND, @operator_kind
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::EXPR_ITEM, @expr_item
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::EXPR_LEAF, @expr_leaf
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::EXPR_OPERATOR, @expr_operator
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::EXPR_UNARY_OPERATOR, @expr_unary_operator
+    assert_instance_of OpenEhr::AM::Archetype::Assertion::EXPR_BINARY_OPERATOR, @expr_binary_operator
   end
 end
@@ -165,29 +165,29 @@
 class ArchetypeModelProfileTest < Test::Unit::TestCase
   def setup
-    @c_dv_state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::C_DV_STATE.new
-    @state_machine = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE_MACHINE.new
-    @state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE.new
-    @terminal_state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TERMINAL_STATE.new
-    @non_terminal_state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::NON_TERMINAL_STATE.new
-    @transition = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TRANSITION.new
+    @c_dv_state = OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::C_DV_STATE.new
+    @state_machine = OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::STATE_MACHINE.new
+    @state = OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::STATE.new
+    @terminal_state = OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::TERMINAL_STATE.new
+    @non_terminal_state = OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::NON_TERMINAL_STATE.new
+    @transition = OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::TRANSITION.new
 
-    @c_code_phase = OpenEHR::AM::OpenEHR_Profile::Data_Types::Text::C_CODE_PHASE.new
+    @c_code_phase = OpenEhr::AM::OpenEHR_Profile::DataTypes::Text::C_CODE_PHASE.new
 
-    @c_dv_quantity = OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_QUANTITY.new
-    @c_dv_ordinal = OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_ORDINAL.new
-    @c_quantity_item = OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_QUANTITY_ITEM.new
+    @c_dv_quantity = OpenEhr::AM::OpenEHR_Profile::DataTypes::Quantity::C_DV_QUANTITY.new
+    @c_dv_ordinal = OpenEhr::AM::OpenEHR_Profile::DataTypes::Quantity::C_DV_ORDINAL.new
+    @c_quantity_item = OpenEhr::AM::OpenEHR_Profile::DataTypes::Quantity::C_QUANTITY_ITEM.new
   end
 
   def test_init
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::C_DV_STATE, @c_dv_state
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE_MACHINE, @state_machine
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE, @state
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TERMINAL_STATE, @terminal_state
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::NON_TERMINAL_STATE, @non_terminal_state
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TRANSITION, @transition
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Text::C_CODE_PHASE, @c_code_phase
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_QUANTITY, @c_dv_quantity
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_ORDINAL, @c_dv_ordinal
-    assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_QUANTITY_ITEM, @c_quantity_item
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::C_DV_STATE, @c_dv_state
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::STATE_MACHINE, @state_machine
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::STATE, @state
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::TERMINAL_STATE, @terminal_state
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::NON_TERMINAL_STATE, @non_terminal_state
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Basic::TRANSITION, @transition
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Text::C_CODE_PHASE, @c_code_phase
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Quantity::C_DV_QUANTITY, @c_dv_quantity
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Quantity::C_DV_ORDINAL, @c_dv_ordinal
+    assert_instance_of OpenEhr::AM::OpenEHR_Profile::DataTypes::Quantity::C_QUANTITY_ITEM, @c_quantity_item
   end
 end
Index: ruby/trunk/tests/models/test_assumed_library_types.rb
===================================================================
--- ruby/trunk/tests/models/test_assumed_library_types.rb	(revision 290)
+++ ruby/trunk/tests/models/test_assumed_library_types.rb	(revision 291)
@@ -4,8 +4,8 @@
 class Assumed_Library_Test < Test::Unit::TestCase
   def setup
-    @interval = OpenEHR::Assumed_Library_Types::Interval.new(1,2)
+    @interval = OpenEhr::AssumedLibraryTypes::Interval.new(1,2)
   end
   def test_initialize
-    assert_instance_of OpenEHR::Assumed_Library_Types::Interval, @interval
+    assert_instance_of OpenEhr::AssumedLibraryTypes::Interval, @interval
   end
   def test_limits_comparable
Index: ruby/trunk/tests/models/test_reference_model.rb
===================================================================
--- ruby/trunk/tests/models/test_reference_model.rb	(revision 290)
+++ ruby/trunk/tests/models/test_reference_model.rb	(revision 291)
@@ -5,36 +5,36 @@
 class ReferenceModelTest < Test::Unit::TestCase
   def setup
-    @authored_resource = OpenEHR::RM::Common::Resource::AUTHORED_RESOURCE.new(:original_language => "ja",
+    @authored_resource = OpenEhr::RM::Common::Resource::AUTHORED_RESOURCE.new(:original_language => "ja",
                                                                               :translations => "en",
                                                                               :description => "test")
-    @translation_details = OpenEHR::RM::Common::Resource::TRANSLATION_DETAILS.new(nil,nil,nil,nil,nil)
+    @translation_details = OpenEhr::RM::Common::Resource::TRANSLATION_DETAILS.new(nil,nil,nil,nil,nil)
 #    @openehr_definitions = OpenEHR::RM::Support::Definition::OpenEHR_Definitions.new
-    @dv_boolean = OpenEHR::RM::Data_Types::Basic::DV_Boolean.new("TRUE")
-    @dv_state = OpenEHR::RM::Data_Types::Basic::DV_State.new("code1",true)
-    @dv_identifier = OpenEHR::RM::Data_Types::Basic::DV_Identifier.new("Ruby Hospital","0123456-0", "Information office", "personal id")
-    @dv_uri = OpenEHR::RM::Data_Types::URI::DV_URI.new("http://www.openehr.jp/changeset/test?cmd=93#file0")
-    @dv_ehr_uri = OpenEHR::RM::Data_Types::URI::DV_EHR_URI.new("ehr://1234567/87284370-2D4B-4e3d-A3F3-F303D2F4F34B@2005-08-02T04:30:00")
-    @dv_text = OpenEHR::RM::Data_Types::Text::DV_Text.new("valid value")
-    @dv_coded_text = OpenEHR::RM::Data_Types::Text::DV_Coded_Text.new("valid value", "AT1000")
-    @dv_paragraph = OpenEHR::RM::Data_Types::Text::DV_Paragraph.new(Set.new(["test1", "test2"]))
+    @dv_boolean = OpenEhr::RM::DataTypes::Basic::DvBoolean.new("TRUE")
+    @dv_state = OpenEhr::RM::DataTypes::Basic::DvState.new("code1",true)
+    @dv_identifier = OpenEhr::RM::DataTypes::Basic::DvIdentifier.new("Ruby Hospital","0123456-0", "Information office", "personal id")
+    @dv_uri = OpenEhr::RM::DataTypes::Uri::DvUri.new("http://www.openehr.jp/changeset/test?cmd=93#file0")
+    @dv_ehr_uri = OpenEhr::RM::DataTypes::Uri::DvEhrUri.new("ehr://1234567/87284370-2D4B-4e3d-A3F3-F303D2F4F34B@2005-08-02T04:30:00")
+    @dv_text = OpenEhr::RM::DataTypes::Text::DvText.new("valid value")
+    @dv_coded_text = OpenEhr::RM::DataTypes::Text::DvCodedText.new("valid value", "AT1000")
+    @dv_paragraph = OpenEhr::RM::DataTypes::Text::DvParagraph.new(Set.new(["test1", "test2"]))
   end
   
   def test_init
-    assert_instance_of OpenEHR::RM::Common::Resource::AUTHORED_RESOURCE, @authored_resource
-    assert_instance_of OpenEHR::RM::Common::Resource::TRANSLATION_DETAILS, @translation_details
-    assert_instance_of OpenEHR::RM::Data_Types::Basic::DV_Boolean, @dv_boolean
-    assert_instance_of OpenEHR::RM::Data_Types::Basic::DV_State, @dv_state
-    assert_instance_of OpenEHR::RM::Data_Types::Basic::DV_Identifier, @dv_identifier
-    assert_instance_of OpenEHR::RM::Data_Types::URI::DV_URI, @dv_uri
-    assert_instance_of OpenEHR::RM::Data_Types::URI::DV_EHR_URI, @dv_ehr_uri
-    assert_instance_of OpenEHR::RM::Data_Types::Text::DV_Text, @dv_text
-    assert_instance_of OpenEHR::RM::Data_Types::Text::DV_Coded_Text, @dv_coded_text
+    assert_instance_of OpenEhr::RM::Common::Resource::AUTHORED_RESOURCE, @authored_resource
+    assert_instance_of OpenEhr::RM::Common::Resource::TRANSLATION_DETAILS, @translation_details
+    assert_instance_of OpenEhr::RM::DataTypes::Basic::DvBoolean, @dv_boolean
+    assert_instance_of OpenEhr::RM::DataTypes::Basic::DvState, @dv_state
+    assert_instance_of OpenEhr::RM::DataTypes::Basic::DvIdentifier, @dv_identifier
+    assert_instance_of OpenEhr::RM::DataTypes::Uri::DvUri, @dv_uri
+    assert_instance_of OpenEhr::RM::DataTypes::Uri::DvEhrUri, @dv_ehr_uri
+    assert_instance_of OpenEhr::RM::DataTypes::Text::DvText, @dv_text
+    assert_instance_of OpenEhr::RM::DataTypes::Text::DvCodedText, @dv_coded_text
   end
 
   def test_constant
-    assert_equal("\r", OpenEHR::RM::Support::Definition::OpenEHR_Definitions::CR)
-    assert_equal("\n", OpenEHR::RM::Support::Definition::OpenEHR_Definitions::LF)
-    assert_equal("\r", OpenEHR::RM::Data_Types::Basic::Data_Value::CR)
-    assert_equal("\n", OpenEHR::RM::Data_Types::Basic::Data_Value::LF)
+    assert_equal("\r", OpenEhr::RM::Support::Definition::OpenEHRDefinitions::CR)
+    assert_equal("\n", OpenEhr::RM::Support::Definition::OpenEHRDefinitions::LF)
+    assert_equal("\r", OpenEhr::RM::DataTypes::Basic::DataValue::CR)
+    assert_equal("\n", OpenEhr::RM::DataTypes::Basic::DataValue::LF)
   end
 
@@ -45,5 +45,5 @@
     # Constraints Value_exists
     assert_raise(ArgumentError){@dv_boolean.value=nil}
-    assert_raise(ArgumentError){OpenEHR::RM::Data_Types::Basic::DV_Boolean.new(nil)}
+    assert_raise(ArgumentError){OpenEhr::RM::DataTypes::Basic::DvBoolean.new(nil)}
   end
 
@@ -55,5 +55,5 @@
     @dv_state.terminal = false
     assert !@dv_state.is_terminal?
-    assert_raise(ArgumentError) {OpenEHR::RM::Data_Types::Basic::DV_State.new(nil,nil)}
+    assert_raise(ArgumentError) {OpenEhr::RM::DataTypes::Basic::DvState.new(nil,nil)}
   end
 
@@ -71,5 +71,5 @@
     @dv_identifier.type = "test id"
     assert_equal("test id", @dv_identifier.type)
-    assert_raise(ArgumentError) {OpenEHR::RM::Data_Types::Basic::DV_Identifier.new(nil, nil, nil, nil)}
+    assert_raise(ArgumentError) {OpenEhr::RM::DataTypes::Basic::DvIdentifier.new(nil, nil, nil, nil)}
   end
 
@@ -123,13 +123,13 @@
 class ReferenceModelSupportIdentificationTest < Test::Unit::TestCase
   def setup
-    @object_id = OpenEHR::RM::Support::Identification::OBJECT_ID.new
-    @terminology_id = OpenEHR::RM::Support::Identification::TERMINOLOGY_ID.new('terminology','version')
-    @archetype_id = OpenEHR::RM::Support::Identification::ARCHETYPE_ID.new
+    @object_id = OpenEhr::RM::Support::Identification::OBJECT_ID.new
+    @terminology_id = OpenEhr::RM::Support::Identification::TERMINOLOGY_ID.new('terminology','version')
+    @archetype_id = OpenEhr::RM::Support::Identification::ARCHETYPE_ID.new
   end
   
   def test_init
-    assert_instance_of OpenEHR::RM::Support::Identification::OBJECT_ID, @object_id
-    assert_instance_of OpenEHR::RM::Support::Identification::TERMINOLOGY_ID, @terminology_id
-    assert_instance_of OpenEHR::RM::Support::Identification::ARCHETYPE_ID, @archetype_id
+    assert_instance_of OpenEhr::RM::Support::Identification::OBJECT_ID, @object_id
+    assert_instance_of OpenEhr::RM::Support::Identification::TERMINOLOGY_ID, @terminology_id
+    assert_instance_of OpenEhr::RM::Support::Identification::ARCHETYPE_ID, @archetype_id
 
   end
