Structures for the publication of TIPs
Posted: Tue Jun 11, 2013 2:26 pm
Please post ideas/discussion relating to the publication of TIPs in this topic. The initial suggestion is to publish TIPs (Template Information Patterns) using the same structures as TSPs (Template Signature Patterns) but with the mapping between TIPs and TSPs expressed. The mappings may be expressed using structures from iRingTools mappings or using any other suitable technique as agreed in the Part 8 implementation group
base really draft example to get discussion going, this is posted as a structural example please don't take it as a working proposal :
base really draft example to get discussion going, this is posted as a structural example please don't take it as a working proposal :
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rdf:RDF [
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
<!ENTITY owl "http://www.w3.org/2002/07/owl#" >
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
<!ENTITY tips "http://www.iring.org/TIPS#" >
<!ENTITY skos "http://www.w3.org/2004/02/skos/core#" >
<!ENTITY rdl "http://posccaesar.org/rdl/" >
<!ENTITY tpl "http://tpl.rdlfacade.org/data#" >
<!ENTITY p7tpl "http://standards.iso.org/iso/ts/15926/-8/ed-1/tech/reference-data/p7tpl#" >
<!ENTITY p7tm "http://standards.iso.org/iso/ts/15926/-8/ed-1/tech/reference-data/template-model#">
<!ENTITY dm "http://rds.posccaesar.org/2008/02/OWL/ISO-15926-2_2003#">
]>
<rdf:RDF xmlns:rdf="&rdf;" xmlns:p7tm="&p7tm;" xmlns:rdfs="&rdfs;" xmlns:tips="&tips;" xmlns:skos="&skos;" xmlns:rdl="&rdl;" xmlns:tpl="&tpl;" xmlns:owl="&owl;">
<!-- =========================================================
self contained example
========================================================= -->
<tips:TemplateInformationPattern rdf:about="#385">
<rdfs:label>Atmospheric Pressure</rdfs:label>
<rdfs:comment>A pressure that is representing the weight of the air column standing vertically over the place where the measurement is done??</rdfs:comment>
<!-- standard metadata fields ... -->
<tips:id>385</tips:id>
<tips:guid>q4r415-3243-3243-32413</tips:guid>
<tips:status>Complete</tips:status>
<skos:note>some notes about use??</skos:note>
<skos:note>some more notes about use??</skos:note>
<skos:editorialNote>some notes to the editors??</skos:editorialNote>
<!-- how should we represent expected context for this TIP??
This is commodity but made more useful by allowing more specific and generic classes to be used -->
<tips:expectedContext rdf:resource="&rdl;?????"/>
<tips:expectedContext rdf:resource="&rdl;?????"/>
<!-- Do we need classification for TIPS, beyond context??-->
<rdf:type rdf:resource="&rdl;?????"/>
<!-- Required properties for the TIP -->
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#385Individual">
<rdf:type rdf:resource="&tips;TIPRole"/>
<rdfs:label>An individual with an Atmospheric Pressure measurement associated to it</rdfs:label>
<rdfs:range rdf:resource="&dm;PossibleIndividual"/>
<tips:exampleValue rdf:resource="http:www.example.com#myThing"/>
</owl:ObjectProperty>
</owl:onProperty>
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:DatatypeProperty rdf:about="#385PressureValue">
<rdf:type rdf:resource="&tips;TIPRole"/>
<rdfs:label>A pressure value</rdfs:label>
<rdfs:range rdf:resource="&xsd;float"/>
<tips:exampleValue rdf:datatype="&xsd;float">20.0</tips:exampleValue>
</owl:DatatypeProperty>
</owl:onProperty>
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#385PressureScale">
<rdf:type rdf:resource="&tips;TIPRole"/>
<rdfs:label>A Pressure Scale</rdfs:label>
<rdfs:range rdf:resource="&rdl;RDS1359461141"/><!-- Pressure Scale Class constraint-->
<tips:exampleValue rdf:resource="&rdl;R98787754267" /><!--Pascal -->
</owl:ObjectProperty>
</owl:onProperty>
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
<!-- mappings -->
<tips:templateMappings rdf:parseType="Collection">
<tips:TemplateMap rdf:about="#385_TemplateMap_1">
<tips:hasTemplateInformationPattern rdf:resource="#385"/>
<tips:hasTemplate rdf:resource="&tpl;R26101158400" />
<tips:roleMappings rdf:parseType="Collection">
<tips:TemplateRoleMap rdf:about="#385_TemplateMap_1_1">
<tips:hasRole rdf:resource="&tpl;R59896853239" />
<tips:hasValue rdf:resource="&rdl;R11440551409" />
</tips:TemplateRoleMap>
<tips:TemplateRoleMap rdf:about="#385_TemplateMap_1_2">
<tips:hasRole rdf:resource="&tpl;R16314127825" />
<tips:hasProperty rdf:resource="#385Individual" />
</tips:TemplateRoleMap>
<tips:TemplateRoleMap rdf:about="#385_TemplateMap_1_3">
<tips:hasRole rdf:resource="&tpl;R90688063648" />
<tips:hasProperty rdf:resource="#385PressureValue" />
</tips:TemplateRoleMap>
<tips:TemplateRoleMap rdf:about="#385_TemplateMap_1_4">
<tips:hasRole rdf:resource="&tpl;R93884193692" />
<tips:hasPoperty rdf:resource="#385PressureScale" />
</tips:TemplateRoleMap>
</tips:roleMappings>
</tips:TemplateMap>
<!-- TemplateMap .... as required -->
</tips:templateMappings>
</tips:TemplateInformationPattern>
<!-- ==================================================
separated out example, same RDF structure/meaning
================================================== -->
<!-- roles/properties for tip-->
<owl:ObjectProperty rdf:about="#385_v2_Individual">
<rdf:type rdf:resource="&tips;TIPRole"/>
<rdfs:label>An individual with an Atmospheric Pressure measurement associated to it</rdfs:label>
<rdfs:range rdf:resource="&dm;PossibleIndividual"/>
<tips:exampleValue rdf:resource="http:www.example.com#myThing"/>
</owl:ObjectProperty>
<owl:DatatypeProperty rdf:about="#385_v2_PressureValue">
<rdf:type rdf:resource="&tips;TIPRole"/>
<rdfs:label>A pressure value</rdfs:label>
<rdfs:range rdf:resource="&xsd;float"/>
<tips:exampleValue rdf:datatype="&xsd;float">20.0</tips:exampleValue>
</owl:DatatypeProperty>
<owl:ObjectProperty rdf:about="#385_v2_PressureScale">
<rdf:type rdf:resource="&tips;TIPRole"/>
<rdfs:label>A Pressure Scale</rdfs:label>
<rdfs:range rdf:resource="&rdl;RDS1359461141"/><!-- Pressure Scale Class constraint-->
<tips:exampleValue rdf:resource="&rdl;R98787754267" /><!--Pascal -->
</owl:ObjectProperty>
<!-- tip definition -->
<tips:TemplateInformationPattern rdf:about="#385_v2">
<rdfs:label>Atmospheric Pressure</rdfs:label>
<rdfs:comment>A pressure that is representing the weight of the air column standing vertically over the place where the measurement is done??</rdfs:comment>
<!-- standard metadata fields ... -->
<tips:id>385</tips:id>
<tips:guid>q4r415-3243-3243-32413</tips:guid>
<tips:status>Complete</tips:status>
<skos:note>some notes about use??</skos:note>
<skos:note>some more notes about use??</skos:note>
<skos:editorialNote>some notes to the editors??</skos:editorialNote>
<!-- how should we represent expected context for this TIP??
This is commodity but made more useful by allowing more specific and generic classes to be used -->
<tips:expectedContext rdf:resource="&rdl;?????"/>
<tips:expectedContext rdf:resource="&rdl;?????"/>
<!-- Do we need classification for TIPS, beyond context??-->
<rdf:type rdf:resource="&rdl;?????"/>
<!-- Required properties for the TIP -->
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#385_v2_Individual"/>
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:Resource="#385_v2_PressureValue"/>
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#385_v2_PressureScale"/>
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
<!-- mappings -->
<tips:templateMappings rdf:parseType="Collection">
<tips:TemplateMap rdf:resource="#385_v2_TemplateMap_1"/>
</tips:templateMappings>
</tips:TemplateInformationPattern>
<!-- template mapping -->
<tips:TemplateMap rdf:about="#385_v2_TemplateMap_1">
<tips:hasTemplateInformationPattern rdf:resource="#385"/>
<tips:hasTemplate rdf:resource="&tpl;R26101158400" />
<tips:roleMappings rdf:parseType="Collection">
<tips:TemplateRoleMap rdf:resource="#385_v2_TemplateMap_1_1"/>
<tips:TemplateRoleMap rdf:resource="#385_v2_TemplateMap_1_2"/>
<tips:TemplateRoleMap rdf:resource="#385_v2_TemplateMap_1_3"/>
<tips:TemplateRoleMap rdf:resource="#385_v2_TemplateMap_1_4"/>
</tips:roleMappings>
</tips:TemplateMap>
<!-- template role mappings -->
<tips:TemplateRoleMap rdf:about="#385_v2_TemplateMap_1_1">
<tips:hasRole rdf:resource="&tpl;R59896853239" />
<tips:hasValue rdf:resource="&rdl;R11440551409" />
</tips:TemplateRoleMap>
<tips:TemplateRoleMap rdf:about="#385_v2_TemplateMap_1_2">
<tips:hasRole rdf:resource="&tpl;R16314127825" />
<tips:hasProperty rdf:resource="#385Individual" />
</tips:TemplateRoleMap>
<tips:TemplateRoleMap rdf:about="#385_v2_TemplateMap_1_3">
<tips:hasRole rdf:resource="&tpl;R90688063648" />
<tips:hasProperty rdf:resource="#385PressureValue" />
</tips:TemplateRoleMap>
<tips:TemplateRoleMap rdf:about="#385_v2_TemplateMap_1_4">
<tips:hasRole rdf:resource="&tpl;R93884193692" />
<tips:hasPoperty rdf:resource="#385PressureScale" />
</tips:TemplateRoleMap>
<!-- ======================================================
Thoughts
======================================================
- I've removed the Template description pattern to use OWL as normally used.
- I've used rdfs:range instead of restrictions on the pattern since this is in line with use and simpler to parse
- I've renamed relations to be has.... val.... as per normal template practice
- Collections could be replaced with multiple predicates or some other form to make SPARQL access easier.
- There is potential for the properties to be reused between TIPs. Such as common properties like pressureScale, Individual etc.
-->
</rdf:RDF>