|
1 |
.. raw:: latex
|
|
2 |
|
|
3 |
\newpage
|
|
4 |
|
|
5 |
|
|
6 |
Semantic Annotation proposal
|
|
7 |
===================================
|
|
8 |
|
|
9 |
.. index:: Semantic Annotation
|
|
10 |
.. index:: Open Annotation
|
|
11 |
.. index:: RDF
|
|
12 |
.. index:: OBOE
|
|
13 |
|
|
14 |
|
|
15 |
Author
|
|
16 |
Ben Leinfelder
|
|
17 |
|
|
18 |
Date
|
|
19 |
- May, 2014: Initial draft of semantic annotation model and indexing
|
|
20 |
|
|
21 |
Goal
|
|
22 |
Describe the current state of semantic annotation model using OBOE and OA (Open Annotation) concepts
|
|
23 |
|
|
24 |
Summary
|
|
25 |
Years of semantic work on the semtools project has informed the current annotation model we are prosing for use in Metacat.
|
|
26 |
The model will initially focus on annotating attribute information for characteristics (e.g., Temperature) and Standard (e.g., Celsius).
|
|
27 |
The model will be indexed to support fast and simple queries using the existing SOLR index methods used for standard metadata descriptions.
|
|
28 |
This annotation model uses the `OA ontology <http://www.openannotation.org/spec/core/>`_ to describe
|
|
29 |
the annotation assertions about metadata resources and fragments. PROV, FOAF, DCTERMS, and OBOE concepts are also utilized.
|
|
30 |
|
|
31 |
Overview
|
|
32 |
---------------------------------------
|
|
33 |
The primary goal of this initial semantic annotation model is to support querying on measurement standard and characteristic information.
|
|
34 |
The model also supports annotations that describe these observations with their entity context, but that will not be utilized in the first stage of deployment.
|
|
35 |
|
|
36 |
Ontology and Model
|
|
37 |
------------------
|
|
38 |
The `OA ontology <http://www.openannotation.org/spec/core/>`_ will be used to describe the following relationships:
|
|
39 |
* Which concepts describe which resources and/or parts of resources
|
|
40 |
* Where in the structure of a resource a particular annotation applies
|
|
41 |
* Who is credited with authoring an annotation.
|
|
42 |
|
|
43 |
The `PROV ontology <http://www.w3.org/TR/prov-overview/>`_ will be used to describe the following relationships:
|
|
44 |
* Who is credited with generating a resource being annotated
|
|
45 |
* Which resources are newer revisions of other resources
|
|
46 |
|
|
47 |
Existing ORE resource map relationships can be augmented in this model to provide more explicit linkage between the data files and the section of metadata that documents them.
|
|
48 |
These structural annotations can assist package consumers (human and machine) when interpreting data objects. Using fragment selectors with XML-based metadata associates
|
|
49 |
data resources with their entity and attribute descriptions in a way that existing DataONE ORE maps do not support.
|
|
50 |
|
|
51 |
.. figure:: images/annotation_model.png
|
|
52 |
|
|
53 |
Figure 1. Diagram illustrating the annotation model for a sample data package
|
|
54 |
|
|
55 |
In an effort to illustrate as many features of the proposed model, the example makes the following assumptions:
|
|
56 |
* the EML metadata package describes 1 data table file
|
|
57 |
* the data table has 3 columns (patient, weight, height)
|
|
58 |
* the EML package has been updated once with a new revision
|
|
59 |
* the revised package has a revised annotation
|
|
60 |
* there are 2 different users annotating the revised package
|
|
61 |
|
|
62 |
|
|
63 |
Important concepts used in the model:
|
|
64 |
* `oa:hasBody <http://www.openannotation.org/spec/core/core.html#BodyTarget>`_ : The body contains the semantic concept that describes the target
|
|
65 |
* `oa:hasTarget <http://www.openannotation.org/spec/core/core.html#BodyTarget>`_ : The target specifies the resource being annotated
|
|
66 |
* `oa:hasSource <http://www.openannotation.org/spec/core/specific.html#SpecificAnnotations>`_ : Identifies the source of a target to which selectors can be applied.
|
|
67 |
* `oa:hasSelector <http://www.openannotation.org/spec/core/specific.html#FragmentSelector>`_ : Specifies the part of a resource to which an annotation applies. An XPath FragmentSelector will commonly be used for annotating XML-based metadata resources
|
|
68 |
* `oa:annotatedBy <http://www.openannotation.org/spec/core/core.html#Provenance>`_ : [subProperty of prov:wasAttributedTo] The object of the relationship is a resource that identifies the agent responsible for creating the Annotation.
|
|
69 |
|
|
70 |
* `oboe:Measurement <http://www.w3.org/ns/prov#wasInformedBy>`_ : The primary body of semantic annotations on attributes.
|
|
71 |
* `oboe:ofCharacteristic <http://www.w3.org/ns/prov#used>`_ : Specifies which Characteristic (subclass) is measured
|
|
72 |
* `oboe:usesStandard <http://www.w3.org/ns/prov#wasInformedBy>`_ : Specifies in which Standard (Unit subclass) the measurement is recorded.
|
|
73 |
|
|
74 |
|
|
75 |
::
|
|
76 |
|
|
77 |
Indexing
|
|
78 |
--------
|
|
79 |
The Metacat Index component has been enhanced to parse semantic models provided as RDF. The general purpose RdfXmlSubprocessor can be used with SparqlFields to extract key concepts from any given model that is added to the document store.
|
|
80 |
The processor assumes that the identifier of the RDF document is the name of the graph being inserted into the triple store.
|
|
81 |
The SPARQL requirements are that the solution[s] return the identifier (pid) of the object being annotated, and the index field being populated with the given value[s].
|
|
82 |
If multiple fields are to be extracted from the model for indexing, a distinct SPARQL query should be used for each field.
|
|
83 |
The query can (and is largely expected to) be constrained to the named graph that contains only that set of annotation triples. While the infrastructure can (and likely will) share the same triple store,
|
|
84 |
we should not assume other models have been loaded when processing any given graph. This means that any solutions will rely on only the named graph being processed during indexing.
|
|
85 |
|
|
86 |
New Index Fields. Currently these are dynamic, multi-valued string fields which allow us to index the new semantic content without changing the SOLR schema.
|
|
87 |
They are multi-valued because they will store the entire class subsumption hierarchy (up) for any matching concepts
|
|
88 |
and because they will store annotations from the same metadata resources for different attributes.
|
|
89 |
* ``characteristic_sm``
|
|
90 |
* ``standard_sm``
|
|
91 |
|
|
92 |
|
|
93 |
|
|
94 |
The SPARQL query used to determine the Characteristics measured in a dataset is shown below. Note that the query includes superclasses in the returned solutions so that
|
|
95 |
the index returns a match for both general and specific criteria.
|
|
96 |
|
|
97 |
::
|
|
98 |
|
|
99 |
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
|
100 |
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
|
101 |
PREFIX owl: <http://www.w3.org/2002/07/owl#>
|
|
102 |
PREFIX oboe-core: <http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#>
|
|
103 |
PREFIX oa: <http://www.w3.org/ns/oa#>
|
|
104 |
PREFIX dcterms: <http://purl.org/dc/terms/>
|
|
105 |
|
|
106 |
SELECT ?characteristic_sm ?pid
|
|
107 |
FROM <$GRAPH_NAME>
|
|
108 |
WHERE {
|
|
109 |
|
|
110 |
?measurement rdf:type oboe-core:Measurement .
|
|
111 |
?measurement rdf:type ?restriction .
|
|
112 |
?restriction owl:onProperty oboe-core:ofCharacteristic .
|
|
113 |
?restriction owl:allValuesFrom ?characteristic .
|
|
114 |
?characteristic rdfs:subClassOf+ ?characteristic_sm .
|
|
115 |
?characteristic_sm rdfs:subClassOf oboe-core:Characteristic .
|
|
116 |
|
|
117 |
?annotation oa:hasBody ?measurement .
|
|
118 |
?annotation oa:hasTarget ?target .
|
|
119 |
?target oa:hasSource ?metadata .
|
|
120 |
?metadata dcterms:identifier ?pid .
|
|
121 |
|
|
122 |
}
|
|
123 |
|
|
124 |
::
|
|
125 |
|
|
126 |
Example
|
|
127 |
_______
|
|
128 |
|
|
129 |
Continuing with example model, these concepts would be indexed for the data attributes.
|
|
130 |
|
|
131 |
+---------------------------+-------------------+---------------------+-------------------------------------------------------------------------------------+
|
|
132 |
| Object | Field Name | Field Type | Value |
|
|
133 |
+===========================+===================+=====================+=====================================================================================+
|
|
134 |
| eml.1.1 | characteristic_sm | string, multivalued | http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#Characteristic |
|
|
135 |
+---------------------------+-------------------+---------------------+-------------------------------------------------------------------------------------+
|
|
136 |
| eml.1.1 | characteristic_sm | string, multivalued | http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#PhysicalCharacteristic |
|
|
137 |
+---------------------------+-------------------+---------------------+-------------------------------------------------------------------------------------+
|
|
138 |
| eml.1.1 | characteristic_sm | string, multivalued | http://ecoinformatics.org/oboe/oboe.1.0/oboe-characteristics.owl#Mass |
|
|
139 |
+---------------------------+-------------------+---------------------+-------------------------------------------------------------------------------------+
|
|
140 |
| eml.1.1 | characteristic_sm | string, multivalued | http://ecoinformatics.org/oboe/oboe.1.0/oboe-characteristics.owl#Length |
|
|
141 |
+---------------------------+-------------------+---------------------+-------------------------------------------------------------------------------------+
|
|
142 |
| eml.1.1 | characteristic_sm | string, multivalued | http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#Name |
|
|
143 |
+---------------------------+-------------------+---------------------+-------------------------------------------------------------------------------------+
|
|
144 |
| eml.1.1 | standard_sm | string, multivalued | http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#Standard |
|
|
145 |
+---------------------------+-------------------+---------------------+-------------------------------------------------------------------------------------+
|
|
146 |
| eml.1.1 | standard_sm | string, multivalued | http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#Unit |
|
|
147 |
+---------------------------+-------------------+---------------------+-------------------------------------------------------------------------------------+
|
|
148 |
| eml.1.1 | standard_sm | string, multivalued | http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#BaseUnit |
|
|
149 |
+---------------------------+-------------------+---------------------+-------------------------------------------------------------------------------------+
|
|
150 |
| eml.1.1 | standard_sm | string, multivalued | http://ecoinformatics.org/oboe/oboe.1.0/oboe-standards.owl#Gram |
|
|
151 |
+---------------------------+-------------------+---------------------+-------------------------------------------------------------------------------------+
|
|
152 |
| eml.1.1 | standard_sm | string, multivalued | http://ecoinformatics.org/oboe/oboe.1.0/oboe-standards.owl#Meter |
|
|
153 |
+---------------------------+-------------------+---------------------+-------------------------------------------------------------------------------------+
|
|
154 |
|
|
155 |
Queries
|
|
156 |
_______-
|
|
157 |
These indexed fields will be used primarily by MetacatUI to enhance discovery - both in terms of recall (concept hierarchies are exploited) and precision (concepts like Mass, do not result in false-positives for "Massachusetts").
|
|
158 |
As more aspects of the annotation model (e.g., observation Entity) are included in the index, the queries can incorporate them for greater query precision. Unfortunately, the flat nature of the SOLR index will prevent us from
|
|
159 |
constructing queries that take full advantage of the underlying semantic annotation. We can filter results so that only those that measured Length Characteristics and Tree Entities,
|
|
160 |
but not that we measured the Length of the Tree (it may be that we actually measured the Length of the bird in the tree).
|
|
161 |
|
|
162 |
|
|
163 |
Sample annotation using OWL
|
|
164 |
----------------------------
|
|
165 |
Serialization of the example model. Authored in and exported from Protege.
|
|
166 |
|
|
167 |
::
|
|
168 |
|
|
169 |
<?xml version="1.0"?>
|
|
170 |
|
|
171 |
<!DOCTYPE rdf:RDF [
|
|
172 |
<!ENTITY oa "http://www.w3.org/ns/oa#" >
|
|
173 |
<!ENTITY terms "http://purl.org/dc/terms/" >
|
|
174 |
<!ENTITY foaf "http://xmlns.com/foaf/0.1/" >
|
|
175 |
<!ENTITY prov "http://www.w3.org/ns/prov#" >
|
|
176 |
<!ENTITY cito "http://purl.org/spar/cito/" >
|
|
177 |
<!ENTITY owl "http://www.w3.org/2002/07/owl#" >
|
|
178 |
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
|
|
179 |
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
|
|
180 |
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
|
|
181 |
]>
|
|
182 |
|
|
183 |
|
|
184 |
<rdf:RDF xmlns="file:///Users/leinfelder/ontologies/brl/oa_sample.owl#"
|
|
185 |
xml:base="file:///Users/leinfelder/ontologies/brl/oa_sample.owl"
|
|
186 |
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
|
|
187 |
xmlns:prov="http://www.w3.org/ns/prov#"
|
|
188 |
xmlns:foaf="http://xmlns.com/foaf/0.1/"
|
|
189 |
xmlns:oa="http://www.w3.org/ns/oa#"
|
|
190 |
xmlns:cito="http://purl.org/spar/cito/"
|
|
191 |
xmlns:terms="http://purl.org/dc/terms/"
|
|
192 |
xmlns:owl="http://www.w3.org/2002/07/owl#"
|
|
193 |
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
|
|
194 |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
|
195 |
<owl:Ontology rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl">
|
|
196 |
<owl:imports rdf:resource="http://ecoinformatics.org/oboe/oboe.1.0/oboe.owl"/>
|
|
197 |
<owl:imports rdf:resource="http://purl.org/NET/dc_owl2dl/terms_od"/>
|
|
198 |
<owl:imports rdf:resource="http://purl.org/spar/cito/"/>
|
|
199 |
<owl:imports rdf:resource="http://www.w3.org/ns/oa#"/>
|
|
200 |
<owl:imports rdf:resource="http://www.w3.org/ns/prov#"/>
|
|
201 |
<owl:imports rdf:resource="http://xmlns.com/foaf/0.1/"/>
|
|
202 |
</owl:Ontology>
|
|
203 |
|
|
204 |
|
|
205 |
<!--
|
|
206 |
///////////////////////////////////////////////////////////////////////////////////////
|
|
207 |
//
|
|
208 |
// Individuals
|
|
209 |
//
|
|
210 |
///////////////////////////////////////////////////////////////////////////////////////
|
|
211 |
-->
|
|
212 |
|
|
213 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#BenLeinfelder -->
|
|
214 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#BenLeinfelder">
|
|
215 |
<rdf:type rdf:resource="&prov;Person"/>
|
|
216 |
<foaf:name rdf:datatype="&xsd;string">Benjamin River Leinfelder</foaf:name>
|
|
217 |
</owl:NamedIndividual>
|
|
218 |
|
|
219 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#MattJones -->
|
|
220 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#MattJones">
|
|
221 |
<rdf:type rdf:resource="&prov;Person"/>
|
|
222 |
<foaf:name rdf:datatype="&xsd;string">Matthew Bently Jones</foaf:name>
|
|
223 |
</owl:NamedIndividual>
|
|
224 |
|
|
225 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#ann.1.1 -->
|
|
226 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#ann.1.1">
|
|
227 |
<rdf:type rdf:resource="&oa;Annotation"/>
|
|
228 |
<oa:hasBody rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:b1"/>
|
|
229 |
<oa:hasTarget rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t1"/>
|
|
230 |
</owl:NamedIndividual>
|
|
231 |
|
|
232 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#ann.2.1 -->
|
|
233 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#ann.2.1">
|
|
234 |
<rdf:type rdf:resource="&oa;Annotation"/>
|
|
235 |
<oa:hasBody rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:b1"/>
|
|
236 |
<oa:hasTarget rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t2"/>
|
|
237 |
</owl:NamedIndividual>
|
|
238 |
|
|
239 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#ann.3.1 -->
|
|
240 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#ann.3.1">
|
|
241 |
<rdf:type rdf:resource="&oa;Annotation"/>
|
|
242 |
<oa:annotatedBy rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#BenLeinfelder"/>
|
|
243 |
<oa:hasBody rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#patient"/>
|
|
244 |
<oa:hasTarget rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t3"/>
|
|
245 |
</owl:NamedIndividual>
|
|
246 |
|
|
247 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#ann.4.1 -->
|
|
248 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#ann.4.1">
|
|
249 |
<rdf:type rdf:resource="&oa;Annotation"/>
|
|
250 |
<oa:annotatedBy rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#BenLeinfelder"/>
|
|
251 |
<oa:hasTarget rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t4"/>
|
|
252 |
<oa:hasBody rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#weight"/>
|
|
253 |
</owl:NamedIndividual>
|
|
254 |
|
|
255 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#ann.5.1 -->
|
|
256 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#ann.5.1">
|
|
257 |
<rdf:type rdf:resource="&oa;Annotation"/>
|
|
258 |
<oa:annotatedBy rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#BenLeinfelder"/>
|
|
259 |
<oa:hasBody rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#height"/>
|
|
260 |
<oa:hasTarget rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t4"/>
|
|
261 |
</owl:NamedIndividual>
|
|
262 |
|
|
263 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#ann.6.1 -->
|
|
264 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#ann.6.1">
|
|
265 |
<rdf:type rdf:resource="&oa;Annotation"/>
|
|
266 |
<oa:annotatedBy rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#BenLeinfelder"/>
|
|
267 |
<oa:hasBody rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:rev"/>
|
|
268 |
<oa:hasTarget rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t6"/>
|
|
269 |
</owl:NamedIndividual>
|
|
270 |
|
|
271 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#ann.7.1 -->
|
|
272 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#ann.7.1">
|
|
273 |
<rdf:type rdf:resource="&oa;Annotation"/>
|
|
274 |
<oa:annotatedBy rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#MattJones"/>
|
|
275 |
<oa:hasBody rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:alt"/>
|
|
276 |
<oa:hasTarget rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t7"/>
|
|
277 |
</owl:NamedIndividual>
|
|
278 |
|
|
279 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#data.1.1 -->
|
|
280 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#data.1.1">
|
|
281 |
<rdf:type rdf:resource="&prov;Entity"/>
|
|
282 |
<terms:identifier rdf:datatype="&xsd;string">doi:10.1234/data.1.1</terms:identifier>
|
|
283 |
</owl:NamedIndividual>
|
|
284 |
|
|
285 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#eml.1.1 -->
|
|
286 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#eml.1.1">
|
|
287 |
<rdf:type rdf:resource="&prov;Entity"/>
|
|
288 |
<terms:identifier rdf:datatype="&xsd;string">doi:10.12345/eml.1.1</terms:identifier>
|
|
289 |
<prov:wasAttributedTo rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#BenLeinfelder"/>
|
|
290 |
</owl:NamedIndividual>
|
|
291 |
|
|
292 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#eml.2.1 -->
|
|
293 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#eml.2.1">
|
|
294 |
<rdf:type rdf:resource="&prov;Entity"/>
|
|
295 |
<terms:identifier rdf:datatype="&xsd;string">doi:10.12345/eml.2.1</terms:identifier>
|
|
296 |
<prov:wasRevisionOf rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#eml.1.1"/>
|
|
297 |
</owl:NamedIndividual>
|
|
298 |
|
|
299 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#height -->
|
|
300 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#height">
|
|
301 |
<rdf:type rdf:resource="http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#Measurement"/>
|
|
302 |
<rdf:type>
|
|
303 |
<owl:Restriction>
|
|
304 |
<owl:onProperty rdf:resource="http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#usesStandard"/>
|
|
305 |
<owl:allValuesFrom rdf:resource="http://ecoinformatics.org/oboe/oboe.1.0/oboe-standards.owl#Meter"/>
|
|
306 |
</owl:Restriction>
|
|
307 |
</rdf:type>
|
|
308 |
<rdf:type>
|
|
309 |
<owl:Restriction>
|
|
310 |
<owl:onProperty rdf:resource="http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#ofCharacteristic"/>
|
|
311 |
<owl:allValuesFrom rdf:resource="http://ecoinformatics.org/oboe/oboe.1.0/oboe-characteristics.owl#Length"/>
|
|
312 |
</owl:Restriction>
|
|
313 |
</rdf:type>
|
|
314 |
</owl:NamedIndividual>
|
|
315 |
|
|
316 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#patient -->
|
|
317 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#patient">
|
|
318 |
<rdf:type rdf:resource="http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#Measurement"/>
|
|
319 |
<rdf:type>
|
|
320 |
<owl:Restriction>
|
|
321 |
<owl:onProperty rdf:resource="http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#ofCharacteristic"/>
|
|
322 |
<owl:allValuesFrom rdf:resource="http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#Name"/>
|
|
323 |
</owl:Restriction>
|
|
324 |
</rdf:type>
|
|
325 |
</owl:NamedIndividual>
|
|
326 |
|
|
327 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:alt -->
|
|
328 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:alt">
|
|
329 |
<rdf:type rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#Body"/>
|
|
330 |
</owl:NamedIndividual>
|
|
331 |
|
|
332 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:b1 -->
|
|
333 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:b1">
|
|
334 |
<rdf:type rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#Body"/>
|
|
335 |
<cito:documents rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#data.1.1"/>
|
|
336 |
</owl:NamedIndividual>
|
|
337 |
|
|
338 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:rev -->
|
|
339 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:rev">
|
|
340 |
<rdf:type rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#Body"/>
|
|
341 |
</owl:NamedIndividual>
|
|
342 |
|
|
343 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t1 -->
|
|
344 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t1">
|
|
345 |
<rdf:type rdf:resource="&oa;SpecificResource"/>
|
|
346 |
<oa:hasSource rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#eml.1.1"/>
|
|
347 |
<oa:hasSelector rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1)"/>
|
|
348 |
</owl:NamedIndividual>
|
|
349 |
|
|
350 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t2 -->
|
|
351 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t2">
|
|
352 |
<rdf:type rdf:resource="&oa;SpecificResource"/>
|
|
353 |
<oa:hasSource rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#eml.2.1"/>
|
|
354 |
<oa:hasSelector rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1)"/>
|
|
355 |
</owl:NamedIndividual>
|
|
356 |
|
|
357 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t3 -->
|
|
358 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t3">
|
|
359 |
<rdf:type rdf:resource="&oa;SpecificResource"/>
|
|
360 |
<oa:hasSource rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#eml.1.1"/>
|
|
361 |
<oa:hasSelector rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1/attributeList/1)"/>
|
|
362 |
</owl:NamedIndividual>
|
|
363 |
|
|
364 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t4 -->
|
|
365 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t4">
|
|
366 |
<rdf:type rdf:resource="&oa;SpecificResource"/>
|
|
367 |
<oa:hasSource rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#eml.1.1"/>
|
|
368 |
<oa:hasSelector rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1/attributeList/2)"/>
|
|
369 |
</owl:NamedIndividual>
|
|
370 |
|
|
371 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t5 -->
|
|
372 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t5">
|
|
373 |
<rdf:type rdf:resource="&oa;SpecificResource"/>
|
|
374 |
<oa:hasSource rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#eml.1.1"/>
|
|
375 |
<oa:hasSelector rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1/attributeList/3)"/>
|
|
376 |
</owl:NamedIndividual>
|
|
377 |
|
|
378 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t6 -->
|
|
379 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t6">
|
|
380 |
<rdf:type rdf:resource="&oa;SpecificResource"/>
|
|
381 |
<oa:hasSource rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#eml.2.1"/>
|
|
382 |
<oa:hasSelector rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1/attributeList/1)"/>
|
|
383 |
</owl:NamedIndividual>
|
|
384 |
|
|
385 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t7 -->
|
|
386 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#urn:t7">
|
|
387 |
<rdf:type rdf:resource="&oa;SpecificResource"/>
|
|
388 |
<oa:hasSource rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#eml.2.1"/>
|
|
389 |
<oa:hasSelector rdf:resource="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1/attributeList/1)"/>
|
|
390 |
</owl:NamedIndividual>
|
|
391 |
|
|
392 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#weight -->
|
|
393 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#weight">
|
|
394 |
<rdf:type rdf:resource="http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#Measurement"/>
|
|
395 |
<rdf:type>
|
|
396 |
<owl:Restriction>
|
|
397 |
<owl:onProperty rdf:resource="http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#ofCharacteristic"/>
|
|
398 |
<owl:allValuesFrom rdf:resource="http://ecoinformatics.org/oboe/oboe.1.0/oboe-characteristics.owl#Mass"/>
|
|
399 |
</owl:Restriction>
|
|
400 |
</rdf:type>
|
|
401 |
<rdf:type>
|
|
402 |
<owl:Restriction>
|
|
403 |
<owl:onProperty rdf:resource="http://ecoinformatics.org/oboe/oboe.1.0/oboe-core.owl#usesStandard"/>
|
|
404 |
<owl:allValuesFrom rdf:resource="http://ecoinformatics.org/oboe/oboe.1.0/oboe-standards.owl#Gram"/>
|
|
405 |
</owl:Restriction>
|
|
406 |
</rdf:type>
|
|
407 |
</owl:NamedIndividual>
|
|
408 |
|
|
409 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1) -->
|
|
410 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1)">
|
|
411 |
<rdf:type rdf:resource="&oa;FragmentSelector"/>
|
|
412 |
</owl:NamedIndividual>
|
|
413 |
|
|
414 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1/attributeList/1) -->
|
|
415 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1/attributeList/1)">
|
|
416 |
<rdf:type rdf:resource="&oa;FragmentSelector"/>
|
|
417 |
</owl:NamedIndividual>
|
|
418 |
|
|
419 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1/attributeList/2) -->
|
|
420 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1/attributeList/2)">
|
|
421 |
<rdf:type rdf:resource="&oa;FragmentSelector"/>
|
|
422 |
</owl:NamedIndividual>
|
|
423 |
|
|
424 |
<!-- https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1/attributeList/3) -->
|
|
425 |
<owl:NamedIndividual rdf:about="https://code.ecoinformatics.org/code/semtools/trunk/docs/design/dataone/oa_sample.owl#xpointer(/eml/dataSet/1/attributeList/3)">
|
|
426 |
<rdf:type rdf:resource="&oa;FragmentSelector"/>
|
|
427 |
</owl:NamedIndividual>
|
|
428 |
</rdf:RDF>
|
|
429 |
|
|
430 |
<!-- Generated by the OWL API (version 3.4.2) http://owlapi.sourceforge.net -->
|
|
431 |
|
|
432 |
|
|
433 |
|
draft of semantic model documentation