GP Salary RDF Schema

Authors

Paul Hollands

URI

http://www.fuzzybuckets.org/rdf/gp_salary/0.1/

Previous version

http://www.fuzzybuckets.org/rdf/gp_salary/0.1/

Revision

$Revision: 0.1 $

Last update

$Date: 2010/06/08 21:58:18.295 GMT $

Status

Draft

Rights

Copyright © 2010 Paul Hollands

Available under a Creative Commons License. Some rights reserved by the author.

Creative Commons License

Description

A schema for representing information about UK GP salaries in RDF.

N.B. Some data has been modeled but not incorporated into the example. There are no examples provided of the SalaryRange class or Expense data. SalaryRange may be redundant but in some instances might provide for faster SPARQL querying of the data so is included in the schema as a property of the Salary class.

The following schema utilizes RDF representations of vCard information and FOAF (Friend of a Friend).

Example File

An example of this schema in use can be found at:

This produces the following graph:

Namespace decalaration

  • <xmlns:ukgovgp=http://www.fuzzybuckets.org/rdf/gp_salary/0.1/gp_salary.owl>

RDF Schema definition document

The following RDFS document is available: http://www.fuzzybuckets.org/rdf/gp_salary/0.1/gp_salary.owl

This page is generated from the RDFS using this XSLT.

RDF schema for storing GP salary data

General Practitioner Class

Domain class for GPs

This is a sub-class of:

  • #Person

Organization Class

An organization to be used as an object of 'worksfor' properties. This will be the regional NHS organization. The GPs country will be derived from this. It should be assigned FOAF properties.

This is a sub-class of:

  • http://www.w3.org/2000/01/rdf-schema#Resource

Class defined by:

  • http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#
  • http://www.w3.org/2001/vcard-rdf/3.0#
  • http://xmlns.com/foaf/0.1/Organization

This class is an equivalent of:

  • http://xmlns.com/foaf/0.1/Organization

This class is disjoint with:

  • #Person

Person Class

Define Person from FOAF domain and use it as a parent class for the GP. The GP can then inherit FOAF Person properties.

This is a sub-class of:

  • http://www.w3.org/2000/01/rdf-schema#Resource

Class defined by:

  • http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#
  • http://www.w3.org/2001/vcard-rdf/3.0#
  • http://xmlns.com/foaf/0.1/Person

This class is an equivalent of:

  • http://xmlns.com/foaf/0.1/Person

This class is disjoint with:

  • #Organization

Salary Range Class

The salary range for this GPs salary. Might be useful to have a salary range to help with querying although the same information can be derived from the Salary class.

This is a sub-class of:

  • http://www.w3.org/2000/01/rdf-schema#Resource

Class defined by:

  • http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#

Range should be some values from:

  • #minimumsalary
  • #maximumsalary

Salary Class

The salary for this GP. This is a class because it has a currency property as well as an integer range.

This is a sub-class of:

  • http://www.w3.org/2000/01/rdf-schema#Resource

Class defined by:

  • http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#

This class is in the following ranges:

  • http://www.w3.org/2001/XMLSchema#integer

Expense Class

An expense incurred by this GP.

This is a sub-class of:

  • http://www.w3.org/2000/01/rdf-schema#Resource

Class defined by:

  • http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#

This class is in the following ranges:

  • http://www.w3.org/2001/XMLSchema#integer

works for property

Property defined by:

  • http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#

Property is in the following domains:

  • #GeneralPractitioner

Is in the range of:

  • #Organization
  • http://www.w3.org/2000/01/rdf-schema#Resource

has salary property

Property defined by:

  • http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#

Property is in the following domains:

  • #GeneralPractitioner

Is in the range of:

  • #Salary
  • http://www.w3.org/2000/01/rdf-schema#Resource

incurred expense property

Property defined by:

  • http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#

Property is in the following domains:

  • #GeneralPractitioner

Is in the range of:

  • #Expense
  • http://www.w3.org/2000/01/rdf-schema#Resource

practitioner type property

Type of Practioner

Property is in the following domains:

  • #GeneralPractitioner

Range should be one of:

  • Dispensing
  • Non-Dispensing
  • Contract

expense type property

Type of Expense

Property is in the following domains:

  • #Expense

Range should be one of:

  • Office and general business
  • Premises
  • Employee
  • Car and travel
  • Interest
  • Other

contract type property

Type of Contract (associated with the GP rather than a contract class as no other contract properties are required currently).

Property is in the following domains:

  • #GeneralPractitioner

Range should be one of:

  • GPMS
  • GMS
  • PMS

minimum salary property

Minimum value in the salary range.

Property defined by:

  • http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#

Property is in the following domains:

  • #SalaryRange

Is in the range of:

  • http://www.w3.org/2001/XMLSchema#integer

maximum salary property

Maximum value in the salary range.

Property defined by:

  • http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#

Property is in the following domains:

  • #SalaryRange

Is in the range of:

  • http://www.w3.org/2001/XMLSchema#integer

currency property

The currency which the salary is offered in. Use ISO 4217 currency codes. Default is GBP.

Property defined by:

  • http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#

Property is in the following domains:

  • #SalaryRange
  • #Salary
  • #Expense

Is in the range of:

  • http://www.w3.org/2000/01/rdf-schema#Literal

currency property

The amount of the salary.

Property defined by:

  • http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#

Property is in the following domains:

  • #SalaryRange
  • #Salary
  • #Expense

Is in the range of:

  • http://www.w3.org/2000/01/rdf-schema#Integer

salary range property

Property pointing to a SalaryRange node

Property defined by:

  • http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#

Property is in the following domains:

  • #Salary

Is in the range of:

  • #SalaryRange
  • http://www.w3.org/2000/01/rdf-schema#Resource

The RDFS

<?xml version="1.0"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xml:base="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl"
    xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"
    xmlns:dcterms="http://purl.org/dc/terms/"
    xmlns:dubcore="http://purl.org/dc/elements/1.1/"
    xmlns:dc="http://orlando.drc.com/SemanticWeb/DAML/Ontology/DC/ver/0.1.0/dces-ont#"
    xmlns:ves="http://orlando.drc.com/SemanticWeb/DAML/Ontology/VES/ver/0.3.6/drc-ves-ont#"
    xmlns:foaf="http://xmlns.com/foaf/0.1/"
    >
    
<owl:Ontology rdf:about="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl" 
        dubcore:title="RDF schema for data.gov.uk defining GP salaries"
        dubcore:creator="Paul Hollands"
        dubcore:description="RDF schema for defining GP salaries"
                >
        <ves:versioning>
            <ves:VersionData>
                <dc:title>RDF schema for defining GP salaries</dc:title>

                <ves:version>0.1</ves:version>
                <ves:email>paul.hollands@gmail.com</ves:email>
                <dc:creator>Paul Hollands</dc:creator>
                <ves:releaseDate>$2010-05-30$</ves:releaseDate>
                <ves:status>unstable</ves:status>
            </ves:VersionData>

        </ves:versioning>
        <owl:imports
            rdf:resource="http://orlando.drc.com/SemanticWeb/OWL/Ontology/DC/ver/0.1.0/dces-ont#"
        />
        <owl:imports
            rdf:resource="http://orlando.drc.com/SemanticWeb/OWL/Ontology/VES/ver/0.1.0/drc-ves-ont#"
        />
        <rdfs:comment>
            RDF schema for storing GP salary data
        </rdfs:comment>
    </owl:Ontology>

    <!-- Classes -->
    
    <!-- GP -->
    
    <rdfs:Class rdf:about="#GeneralPractitioner"
        rdfs:label="General Practitioner"
        rdfs:comment="Domain class for GPs"
        ves:status="unstable"
        >
    <rdfs:subClassOf rdf:resource="#Person"/>
    </rdfs:Class>
    
    <!-- Organization -->
    
    <rdfs:Class rdf:about="#Organization"
        rdfs:label="Organization"
        rdfs:comment="An organization to be used as an object of works for properties"
        ves:status="unstable"
        >
        <owl:equivalentClass rdf:resource="http://xmlns.com/foaf/0.1/Organization"/>
        <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
        <rdfs:isDefinedBy rdf:resource="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#"/>

        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2001/vcard-rdf/3.0#"/>
        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/Organization"/>
        <owl:disjointWith rdf:resource="#Person"/>
    </rdfs:Class>
        
    <!-- Person -->
    
    <rdfs:Class rdf:about="#Person"
        rdfs:label="Person"
        rdfs:comment="Define Person from FOAF domain and use it as a parent class for the GP"
        ves:status="unstable"
        >
        <owl:equivalentClass rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
        <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
        <rdfs:isDefinedBy rdf:resource="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#"/>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2001/vcard-rdf/3.0#"/>
        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
        <owl:disjointWith rdf:resource="#Organization"/>
    </rdfs:Class>
    
    	<!-- SalaryRange -->	
	
        <!-- Might be useful to have a salary range to help with querying although the same information can be derived from the Salary class-->
        
	<rdfs:Class rdf:about="#SalaryRange" 
		rdfs:label="Salary Range" 
		rdfs:comment="The salary range for this GP."
		ves:status="unstable"
		> 
		<rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> 
		<rdfs:isDefinedBy rdf:resource="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#"/> 
		<rdfs:range rdf:parseType="Resource"> 
		<owl:someValuesFrom rdf:parseType="Collection"> 
			<owl:Thing rdf:about="#minimumsalary"/> 
			<owl:Thing rdf:about="#maximumsalary"/> 
		</owl:someValuesFrom> 
		</rdfs:range> 
	</rdfs:Class>

    <!-- Salary -->
        
    <rdfs:Class rdf:about="#Salary" 
		rdfs:label="Salary" 
		rdfs:comment="The salary for this GP."
		ves:status="unstable"
		> 
		<rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> 
		<rdfs:isDefinedBy rdf:resource="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#"/> 
		<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>  
	</rdfs:Class>
        
    <!-- Expense -->
        
    	<rdfs:Class rdf:about="#Expense" 
		rdfs:label="Expense" 
		rdfs:comment="An expense incurred by this GP."
		ves:status="unstable"
		> 
		<rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> 
		<rdfs:isDefinedBy rdf:resource="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#"/> 
		<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>  
	</rdfs:Class> 

  <!-- Properties -->
    
    <rdf:Property rdf:about="#worksfor">
        <rdfs:label xml:lang="en" rdf:value="works for"/>
        <rdfs:domain rdf:resource="#GeneralPractitioner"/>
        <rdfs:range rdf:resource="#Organization"/>
        <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
        <rdfs:isDefinedBy rdf:resource="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#"/>
    </rdf:Property>
    
    <rdf:Property rdf:about="#hassalary">
        <rdfs:label xml:lang="en" rdf:value="has salary"/>
        <rdfs:domain rdf:resource="#GeneralPractitioner"/>
        <rdfs:range rdf:resource="#Salary"/>
        <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
        <rdfs:isDefinedBy rdf:resource="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#"/>
    </rdf:Property>
    
    <rdf:Property rdf:about="#incurredexpense">
        <rdfs:label xml:lang="en" rdf:value="incurred expense"/>
        <rdfs:domain rdf:resource="#GeneralPractitioner"/>
        <rdfs:range rdf:resource="#Expense"/>
        <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
        <rdfs:isDefinedBy rdf:resource="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#"/>
    </rdf:Property>
    
    <rdf:Property rdf:about="#practitionertype"
		rdfs:comment="Type of Practioner"> 
		<rdfs:label xml:lang="en" rdf:value="practitioner type"/>	
		<rdfs:domain rdf:resource="#GeneralPractitioner"/>
		<rdfs:range rdf:parseType="Resource"> 
			<owl:oneOf rdf:parseType="Collection"> 
				<owl:Thing> 
					<rdf:value>Dispensing</rdf:value> 
					<rdf:type>Literal</rdf:type> 
				</owl:Thing> 
				<owl:Thing> 
					<rdf:value>Non-Dispensing</rdf:value> 
					<rdf:type>Literal</rdf:type>
				</owl:Thing>
                                <owl:Thing> 
					<rdf:value>Contract</rdf:value> 
					<rdf:type>Literal</rdf:type> 
				</owl:Thing> 

			</owl:oneOf> 
		</rdfs:range> 
    </rdf:Property>
    
        <rdf:Property rdf:about="#expensetype"
		rdfs:comment="Type of Expense"> 
		<rdfs:label xml:lang="en" rdf:value="expense type"/>	
		<rdfs:domain rdf:resource="#Expense"/>
		<rdfs:range rdf:parseType="Resource"> 
			<owl:oneOf rdf:parseType="Collection"> 
				<owl:Thing> 
					<rdf:value>Office and general business</rdf:value> 
					<rdf:type>Literal</rdf:type> 
				</owl:Thing> 
				<owl:Thing> 
					<rdf:value>Premises</rdf:value> 
					<rdf:type>Literal</rdf:type>
				</owl:Thing>
                                <owl:Thing> 
					<rdf:value>Employee</rdf:value> 
					<rdf:type>Literal</rdf:type> 
				</owl:Thing>
                                <owl:Thing> 
					<rdf:value>Car and travel</rdf:value> 
					<rdf:type>Literal</rdf:type> 
				</owl:Thing>
                                <owl:Thing> 
					<rdf:value>Interest</rdf:value> 
					<rdf:type>Literal</rdf:type> 
				</owl:Thing>
                                <owl:Thing> 
					<rdf:value>Other</rdf:value> 
					<rdf:type>Literal</rdf:type> 
				</owl:Thing> 
			</owl:oneOf> 
		</rdfs:range> 
    </rdf:Property>
    
    <rdf:Property rdf:about="#contracttype"
		rdfs:comment="Type of Contract (associated with the GP rather than a contract class as no other contract properties are required currently)"> 
		<rdfs:label xml:lang="en" rdf:value="contract type"/>	
		<rdfs:domain rdf:resource="#GeneralPractitioner"/>
		<rdfs:range rdf:parseType="Resource"> 
			<owl:oneOf rdf:parseType="Collection"> 
				<owl:Thing> 
					<rdf:value>GPMS</rdf:value> 
					<rdf:type>Literal</rdf:type> 
				</owl:Thing> 
				<owl:Thing> 
					<rdf:value>GMS</rdf:value> 
					<rdf:type>Literal</rdf:type>
				</owl:Thing>
                                <owl:Thing> 
					<rdf:value>PMS</rdf:value> 
					<rdf:type>Literal</rdf:type> 
				</owl:Thing> 

			</owl:oneOf> 
		</rdfs:range> 
    </rdf:Property>
    
    	<!--minimumsalary--> 
	
	<rdf:Property rdf:about="#minimumsalary"
		rdfs:comment="Minimum value in the salary range."> 
		<rdfs:label xml:lang="en" rdf:value="minimum salary"/>	
		<rdfs:domain rdf:resource="#SalaryRange"/> 
		<rdfs:isDefinedBy rdf:resource="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#"/> 
		<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> 
	</rdf:Property> 
			
	<!--maximumsalary--> 
	
	<rdf:Property rdf:about="#maximumsalary"
		rdfs:comment="Maximum value in the salary range."> 
		<rdfs:label xml:lang="en" rdf:value="maximum salary"/>	
		<rdfs:domain rdf:resource="#SalaryRange"/> 
		<rdfs:isDefinedBy rdf:resource="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#"/> 
		<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> 
	</rdf:Property> 
 
	
	<!--currency--> 
	
	<rdf:Property rdf:about="#currency"
		rdfs:comment="The currency which the salary is offered in. Use ISO 4217 currency codes. Default is GBP."> 
		<rdfs:label xml:lang="en" rdf:value="currency"/>	
		<rdfs:domain rdf:resource="#SalaryRange"/>
        <rdfs:domain rdf:resource="#Salary"/> 
        <rdfs:domain rdf:resource="#Expense"/> 
		<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/> 
		<rdfs:isDefinedBy rdf:resource="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#"/> 
	</rdf:Property>

	<!--salary amount--> 
	
	<rdf:Property rdf:about="#amount"
		rdfs:comment="The amount of the salary."> 
		<rdfs:label xml:lang="en" rdf:value="currency"/>	
		<rdfs:domain rdf:resource="#SalaryRange"/>
        <rdfs:domain rdf:resource="#Salary"/> 
        <rdfs:domain rdf:resource="#Expense"/> 
		<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Integer"/> 
		<rdfs:isDefinedBy rdf:resource="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#"/> 
	</rdf:Property>
        
	<!--salaryrange--> 
	
	<rdf:Property rdf:about="#salaryrange"
		rdfs:comment="Property pointing to a SalaryRange node"> 
		<rdfs:label xml:lang="en" rdf:value="salary range"/>	
		<rdfs:domain rdf:resource="#Salary"/> 
		<rdfs:range rdf:resource="#SalaryRange"/> 
		<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> 
		<rdfs:isDefinedBy rdf:resource="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/gp_salary.owl#"/> 
	</rdf:Property> 
	
</rdf:RDF>

Example RDF data

<?xml version="1.0"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xml:base="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/"
    xmlns="http://www.fuzzybuckets.org/rdf/gp-salaries/0.1/"
    xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"
    xmlns:dcterms="http://purl.org/dc/terms/"
    xmlns:dubcore="http://purl.org/dc/elements/1.1/"
    xmlns:dc="http://orlando.drc.com/SemanticWeb/DAML/Ontology/DC/ver/0.1.0/dces-ont#"
    xmlns:ves="http://orlando.drc.com/SemanticWeb/DAML/Ontology/VES/ver/0.3.6/drc-ves-ont#"
    xmlns:foaf="http://xmlns.com/foaf/0.1/"
    >

<Organization rdf:about="http://www.nhs.uk/">
<vcard:ORG rdf:parseType="Resource">
	<vcard:Orgname xml:lang="en-GB">NHS England</vcard:Orgname>
	<vcard:Region 
  xml:lang="en-GB" rdf:value="England"/>
</vcard:ORG>
</Organization>

<Organization rdf:about="http://www.wales.nhs.uk/">
<vcard:ORG rdf:parseType="Resource">
	<vcard:Orgname xml:lang="en-GB">NHS Wales</vcard:Orgname>
	<vcard:Orgname xml:lang="cy">Gwasanaeth Gwybodaeth Iechyd Cymru (HOWIS)</vcard:Orgname>
	<vcard:Region 
  xml:lang="en-GB" rdf:value="Wales"/>
	<vcard:Region 
  xml:lang="cy" rdf:value="Cymru"/>
</vcard:ORG>
</Organization>

	
<Organization rdf:about="http://www.scotland.gov.uk/Topics/Health/NHS-Scotland">
<vcard:ORG rdf:parseType="Resource">
	<vcard:Orgname xml:lang="en-GB">NHS Scotland</vcard:Orgname>
	<vcard:Region 
  xml:lang="en-GB" rdf:value="Scotland"/>
</vcard:ORG>
</Organization>
	
<Organization rdf:about="http://www.hscni.net/">
<vcard:ORG rdf:parseType="Resource">
	<vcard:Orgname xml:lang="en-GB">NHS Northern Ireland</vcard:Orgname>
	<vcard:Region 
  xml:lang="en-GB" rdf:value="Northern Ireland"/>
</vcard:ORG>
</Organization>
	
<GeneralPractitioner rdf:nodeID="gp1">
<foaf:title xml:lang="en">Dr</foaf:title>
<foaf:firstName xml:lang="en">Henry</foaf:firstName>
<foaf:lastName xml:lang="en">Jeckyll</foaf:lastName>
<foaf:gender xml:lang="en">Male</foaf:gender>
<worksfor rdf:resource="http://www.scotland.gov.uk/Topics/Health/NHS-Scotland"/>
<hassalary rdf:nodeID="salary4"/>
<practitionertype  xml:lang="en">Dispensing</practitionertype>
<contracttype>GPMS</contracttype>
<foaf:age><xsd:integer rdf:value="37"/></foaf:age>
</GeneralPractitioner>

<GeneralPractitioner rdf:nodeID="gp2">
<foaf:title xml:lang="en">Dr</foaf:title>
<foaf:firstName xml:lang="en">Leonard</foaf:firstName>
<foaf:lastName xml:lang="en">McCoy</foaf:lastName>
<foaf:gender xml:lang="en">Male</foaf:gender>
<worksfor rdf:resource="http://www.nhs.uk/"/>
<hassalary rdf:nodeID="salary1"/>
<practitionertype  xml:lang="en">Dispensing</practitionertype>
<contracttype>GPMS</contracttype>
<foaf:age><xsd:integer rdf:value="35"/></foaf:age>
</GeneralPractitioner>

<GeneralPractitioner rdf:nodeID="gp3">
<foaf:title xml:lang="en">Dr</foaf:title>
<foaf:firstName xml:lang="en">John</foaf:firstName>
<foaf:lastName xml:lang="en">Watson</foaf:lastName>
<foaf:gender xml:lang="en">Male</foaf:gender>
<worksfor rdf:resource="http://www.hscni.net/"/>
<hassalary rdf:nodeID="salary2"/>
<practitionertype  xml:lang="en">Non-dispensing</practitionertype>
<contracttype>PMS</contracttype>
<foaf:age><xsd:integer rdf:value="40"/></foaf:age>
</GeneralPractitioner>

<GeneralPractitioner rdf:nodeID="gp4">
<foaf:title xml:lang="en">Dr</foaf:title>
<foaf:firstName xml:lang="cy">Elin</foaf:firstName>
<foaf:lastName xml:lang="cy">Dafis</foaf:lastName>
<foaf:gender xml:lang="en">Female</foaf:gender>
<worksfor rdf:resource="http://www.wales.nhs.uk/"/>
<hassalary rdf:nodeID="salary4"/>
<practitionertype  xml:lang="en">Dispensing</practitionertype>
<contracttype>GMS</contracttype>
<foaf:age><xsd:integer rdf:value="42"/></foaf:age>
</GeneralPractitioner>

<GeneralPractitioner rdf:nodeID="gp5">
<foaf:title xml:lang="en">Dr</foaf:title>
<foaf:name xml:lang="cy">Alun Wyn ap Gwynfor</foaf:name>
<foaf:gender xml:lang="en">Male</foaf:gender>
<worksfor rdf:resource="http://www.wales.nhs.uk/"/>
<hassalary rdf:nodeID="salary3"/>
<practitionertype  xml:lang="en">Contract</practitionertype>
<contracttype>GPMS</contracttype>
<foaf:age><xsd:integer rdf:value="58"/></foaf:age>
</GeneralPractitioner>

<Salary rdf:nodeID="salary1">
<currency rdf:value="GBP"/>
<amount><xsd:integer rdf:value="60000"/></amount>
</Salary>

<Salary rdf:nodeID="salary2">
<currency rdf:value="GBP"/>
<amount><xsd:integer rdf:value="75000"/></amount>
</Salary>

<Salary rdf:nodeID="salary3">
<currency rdf:value="GBP"/>
<amount><xsd:integer rdf:value="50000"/></amount>
</Salary>

<Salary rdf:nodeID="salary4">
<currency rdf:value="GBP"/>
<amount><xsd:integer rdf:value="100000"/></amount>
</Salary>

</rdf:RDF>