From 31c58cf899e4d0c9c824ced45a5ba43febf406a2 Mon Sep 17 00:00:00 2001 From: Simon Cox Date: Mon, 30 Mar 2020 12:26:21 +1100 Subject: [PATCH 1/5] 1. Rename StateOrTerritory to State to match GNAF product description 2. more careful sub-classing from gnaf:GnafEntity and geo:Feature 3. Better documentation, and warning s around the Street/StreetLocality complex. --- gnaf-asgs.ttl | 2 +- gnaf.ttl | 184 ++++++++++++++++++++++++++++++++------------------ 2 files changed, 120 insertions(+), 66 deletions(-) diff --git a/gnaf-asgs.ttl b/gnaf-asgs.ttl index d383bdb..0d2b4cf 100644 --- a/gnaf-asgs.ttl +++ b/gnaf-asgs.ttl @@ -24,7 +24,7 @@ gnaf:MeshBlock owl:equivalentClass ; . -gnaf:StateOrTerritory +gnaf:State owl:equivalentClass ; . dcterms:created diff --git a/gnaf.ttl b/gnaf.ttl index 4d5742d..ee2593e 100644 --- a/gnaf.ttl +++ b/gnaf.ttl @@ -15,9 +15,10 @@ rdf:type owl:Ontology ; owl:versionIRI ; - owl:imports ; + owl:imports ; dcterms:contributor "Joseph Abhayaratna, PSMA"^^rdf:HTML , "Simon Cox, CSIRO"^^rdf:HTML ; + dcterms:created "2017-12-23"^^xsd:date ; dcterms:creator "Nicholas Car, Surround Australia"^^rdf:HTML ; dcterms:description """An ontology for the content of the PSMA Geocoded National Address File (G-NAF). The G-NAF is Australia’s authoritative, geocoded address file. It contains more than 13 million Australian physical address records. The records include geocodes which are latitude and longitude map coordinates with coordinate reference system details and other information necissary to prcicely locate addresses on the earth's surface. @@ -62,6 +63,10 @@ dcterms:creator rdf:type owl:AnnotationProperty . dcterms:isReplacedBy rdf:type owl:AnnotationProperty . +### http://purl.org/dc/terms/publisher +dcterms:publisher rdf:type owl:AnnotationProperty . + + ### http://purl.org/dc/terms/rights dcterms:rights rdf:type owl:AnnotationProperty . @@ -94,13 +99,17 @@ owl:maxQualifiedCardinality rdf:type owl:AnnotationProperty . owl:qualifiedCardinality rdf:type owl:AnnotationProperty . +### http://www.w3.org/2004/02/skos/core#editorialNote +skos:editorialNote rdf:type owl:AnnotationProperty . + + ################################################################# # Datatypes ################################################################# ### http://linked.data.gov.au/def/gnaf#gnaf-2016-05 -:gnaf-2016-05 rdfs:label "GNAF 2016-05 ID" ; - rdf:type rdfs:Datatype ; +:gnaf-2016-05 rdf:type rdfs:Datatype ; + rdfs:label "GNAF 2016-05 ID" ; owl:equivalentClass [ rdf:type rdfs:Datatype ; owl:onDatatype xsd:string ; owl:withRestrictions ( [ xsd:maxLength 100 @@ -109,6 +118,10 @@ owl:qualifiedCardinality rdf:type owl:AnnotationProperty . ] . +### http://www.w3.org/2001/XMLSchema#date +xsd:date rdf:type rdfs:Datatype . + + ################################################################# # Object Properties ################################################################# @@ -223,7 +236,13 @@ owl:qualifiedCardinality rdf:type owl:AnnotationProperty . ### http://linked.data.gov.au/def/gnaf#hasState :hasState rdf:type owl:ObjectProperty ; rdfs:subPropertyOf geo:sfWithin ; - rdfs:range :StateOrTerritory ; + rdfs:domain [ rdf:type owl:Class ; + owl:unionOf ( :Address + :Locality + :Street + ) + ] ; + rdfs:range :State ; rdfs:label "has State"@en . @@ -253,6 +272,14 @@ owl:qualifiedCardinality rdf:type owl:AnnotationProperty . dcterms:type rdf:type owl:ObjectProperty . +### http://www.opengis.net/ont/geosparql#hasGeometry +geo:hasGeometry rdf:type owl:ObjectProperty . + + +### http://www.opengis.net/ont/geosparql#sfWithin +geo:sfWithin rdf:type owl:ObjectProperty . + + ################################################################# # Data properties ################################################################# @@ -279,6 +306,7 @@ dcterms:type rdf:type owl:ObjectProperty . ### http://linked.data.gov.au/def/gnaf#hasDateRetired :hasDateRetired rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf dcterms:date ; rdfs:range xsd:dateTime ; rdfs:label "has date retired"@en . @@ -337,6 +365,10 @@ dcterms:type rdf:type owl:ObjectProperty . dcterms:created rdf:type owl:DatatypeProperty . +### http://purl.org/dc/terms/date +dcterms:date rdf:type owl:DatatypeProperty . + + ### http://purl.org/dc/terms/description dcterms:description rdf:type owl:DatatypeProperty . @@ -399,6 +431,7 @@ rdf:value rdf:type owl:DatatypeProperty . owl:onProperty :hasPostcode ; owl:maxCardinality "1"^^xsd:nonNegativeInteger ] ; + rdfs:comment "G-NAF contains only point geometries, so the GeoSPARQL hasGeometry property is expected to have at least one sf:Point value" ; rdfs:isDefinedBy ; rdfs:label "Address"@en . @@ -450,7 +483,8 @@ rdf:value rdf:type owl:DatatypeProperty . ] ; rdfs:comment "Entities (things) that are present as records in the GNAF database. Every GNAF Entity has a data created, date last modified (can be the same) and may have a data retired. These dates indicate the creation, modification & retirement of the representation of the Entity in the GNAF database, not the real-world Entity."@en ; rdfs:isDefinedBy ; - rdfs:label "GNAF Entity"@en . + rdfs:label "GNAF Entity"@en ; + skos:editorialNote "This class might be implemented as a SHACL shape" . ### http://linked.data.gov.au/def/gnaf#Locality @@ -470,6 +504,7 @@ rdf:value rdf:type owl:DatatypeProperty . owl:onProperty :hasPrimaryPostcode ; owl:maxCardinality "1"^^xsd:nonNegativeInteger ] ; + rdfs:comment "G-NAF contains only point geometries, so the GeoSPARQL hasGeometry property is expected to have at least one sf:Point value" ; rdfs:isDefinedBy ; rdfs:label "Locality" . @@ -497,7 +532,9 @@ rdf:value rdf:type owl:DatatypeProperty . ### http://linked.data.gov.au/def/gnaf#MeshBlock -:MeshBlock rdf:type owl:Class . +:MeshBlock rdf:type owl:Class ; + rdfs:subClassOf :GnafEntity , + geo:Feature . ### http://linked.data.gov.au/def/gnaf#MeshBlockMatch @@ -536,8 +573,10 @@ rdf:value rdf:type owl:DatatypeProperty . rdfs:label "Number"@en . -### http://linked.data.gov.au/def/gnaf#StateOrTerritory -:StateOrTerritory rdf:type owl:Class . +### http://linked.data.gov.au/def/gnaf#State +:State rdf:type owl:Class ; + rdfs:subClassOf :GnafEntity , + geo:Feature . ### http://linked.data.gov.au/def/gnaf#Street @@ -552,6 +591,9 @@ rdf:value rdf:type owl:DatatypeProperty . owl:onProperty :hasName ; owl:cardinality "1"^^xsd:nonNegativeInteger ] ; + rdfs:comment """Definition: a complete Street that crosses multiple localities. + +NOTE: In principle, a Street is composed of several StreetLocality members, however this relationship is not present in the GNAF Ontology. Furthermore, the GNAF product definition does not contain a class for Street, only for StreetLocality. The GNAF Ontology does not therefore correspond to the GNAF product in this area, and should be reviewed and potentially revised to capture the correct alignment. In particular, in the GNAF Ontology _geometry_ is associated with gnaf:StreetLocality, but not with gnaf:Street which means that gnaf:Street as a sub-class of geo:Feature is not Loc-I conformant. """ ; rdfs:isDefinedBy ; rdfs:label "Street"@en . @@ -579,6 +621,11 @@ rdf:value rdf:type owl:DatatypeProperty . owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :Locality ] ; + rdfs:comment """Definition: StreetLocality is a segment of a street contained within a single locality. + +NOTE: The GNAF product definition contain a class for Street, only for StreetLocality. The GNAF Ontology does not correspond to the GNAF product in this area and should be reviewed and potentially revised to capture the correct alignment. In the GNAF Ontology _geometry_ is associated with gnaf:StreetLocality, which as a (transitive) sub-class of geo:Feature is therefore conformant to Loc-I rules. + +G-NAF contains only point geometries, so the GeoSPARQL hasGeometry property is expected to have at least one sf:Point value""" ; rdfs:isDefinedBy ; rdfs:label "Street Locality " . @@ -588,15 +635,23 @@ rdf:value rdf:type owl:DatatypeProperty . rdfs:isDefinedBy . +### http://www.opengis.net/ont/geosparql#Feature +geo:Feature rdf:type owl:Class . + + ### http://www.opengis.net/ont/geosparql#Geometry -geo:Geometry rdfs:subClassOf :GnafEntity , - [ rdf:type owl:Restriction ; +geo:Geometry rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty :hasGeocodeReliability ; owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; owl:onClass :GeocodeReliability ] . +### http://www.opengis.net/ont/sf#Point +sf:Point rdf:type owl:Class . + + ### http://www.w3.org/2000/01/rdf-schema#Resource rdfs:Resource rdf:type owl:Class . @@ -606,8 +661,7 @@ rdfs:Resource rdf:type owl:Class . ################################################################# ### http://linked.data.gov.au/def/gnaf - rdf:type owl:NamedIndividual ; - dcterms:created "2017-12-23"^^xsd:date . + rdf:type owl:NamedIndividual . ### http://linked.data.gov.au/def/gnaf#MeshBlock @@ -615,53 +669,25 @@ rdfs:Resource rdf:type owl:Class . dcterms:description "Mesh Blocks (MB) are the smallest geographical area defined by the ABS. They are designed as geographic building blocks rather than as areas for the release of statistics themselves. All statistical areas in the Australian Statistical Geography Standard (ASGS) both ABS and Non ABS Structures are built up from one or more MBs.As a result the design of MBs takes into account many factors including administrative boundaries such as Cadastre (property boundaries) Suburbs and Localities and Local Government Areas (LGAs) as well as land uses and dwelling distribution. Most MBs contain 30 to 60 dwellings although some are specifically designed to have zero. This provides an additional level of confidentiality for data released on the ASGS as the difference in data released on multiple statistical areas is always at least one MB. Mesh Blocks like other ABS structures in the ASGS are stable for 5 years and are updated to reflect changes such as new housing developments every 5 years. The MB table includes a Mesh Block Category field that broadly defines primary land uses such as Residential and Commercial. MB boundaries are contiguous and in aggregate cover the whole of Australia without gaps or overlaps. An additional code (Outside Australia) has also been added to represent areas not covered by Geographical Australia." . -### http://linked.data.gov.au/def/gnaf#StateOrTerritory -:StateOrTerritory rdf:type owl:NamedIndividual ; - dcterms:description "State and Territory (S/T) are separate spatial units representing the States and Territories within Australia. Jervis Bay Territory the Territories of Christmas Island; Cocos (Keeling) Islands and Norfolk Island are included as one spatial unit at the State and Territory level under the category of Other Territories. S/T are aggregations of one or more Statistical Area Level 4 (SA4s) in the ASGS Main Structure. S/T boundaries are contiguous and in aggregate cover the whole of Australia without gaps or overlaps. An additional code (Outside Australia) has also been added to represent areas not covered by Geographical Australia." . +### http://linked.data.gov.au/def/gnaf#State +:State rdf:type owl:NamedIndividual ; + dcterms:description "State and Territory (S/T) are separate spatial units representing the States and Territories within Australia. Jervis Bay Territory the Territories of Christmas Island; Cocos (Keeling) Islands and Norfolk Island are included as one spatial unit at the State and Territory level under the category of Other Territories. S/T are aggregations of one or more Statistical Area Level 4 (SA4s) in the ASGS Main Structure. S/T boundaries are contiguous and in aggregate cover the whole of Australia without gaps or overlaps. An additional code (Outside Australia) has also been added to represent areas not covered by Geographical Australia. (definition from ASGS)" . -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" +[ sdo:identifier ; + sdo:name "Joseph Abhayaratna" ] . -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" - ] . - -[ sdo:identifier ; - sdo:name "PSMA Australia" - ] . - -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" - ] . - -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" - ] . - -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" - ] . - -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" +[ sdo:identifier ; + sdo:name "Joseph Abhayaratna" ] . -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" +[ sdo:identifier ; + sdo:name "Joseph Abhayaratna" ] . -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" +[ sdo:identifier ; + sdo:name "Joseph Abhayaratna" ] . [ sdo:identifier ; @@ -672,6 +698,14 @@ rdfs:Resource rdf:type owl:Class . sdo:name "Joseph Abhayaratna" ] . +[ sdo:identifier ; + sdo:name "PSMA Australia" + ] . + +[ sdo:identifier ; + sdo:name "PSMA Australia" + ] . + [ sdo:identifier ; sdo:name "Joseph Abhayaratna" ] . @@ -704,30 +738,44 @@ rdfs:Resource rdf:type owl:Class . sdo:name "PSMA Australia" ] . -[ sdo:identifier ; - sdo:name "PSMA Australia" +[ sdo:email ; + sdo:identifier ; + sdo:name "Nicholas Car" ] . -[ sdo:identifier ; - sdo:name "Joseph Abhayaratna" +[ sdo:email ; + sdo:identifier ; + sdo:name "Nicholas Car" ] . -[ sdo:identifier ; - sdo:name "Joseph Abhayaratna" +[ sdo:email ; + sdo:identifier ; + sdo:name "Nicholas Car" ] . -[ sdo:identifier ; - sdo:name "Joseph Abhayaratna" +[ sdo:email ; + sdo:identifier ; + sdo:name "Nicholas Car" ] . -[ sdo:identifier ; - sdo:name "Joseph Abhayaratna" +[ sdo:email ; + sdo:identifier ; + sdo:name "Nicholas Car" ] . -[ owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger +[ sdo:email ; + sdo:identifier ; + sdo:name "Nicholas Car" ] . -[ owl:cardinality "1"^^xsd:nonNegativeInteger +[ sdo:email ; + sdo:identifier ; + sdo:name "Nicholas Car" + ] . + +[ sdo:email ; + sdo:identifier ; + sdo:name "Nicholas Car" ] . [ owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger @@ -736,6 +784,12 @@ rdfs:Resource rdf:type owl:Class . [ owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ] . +[ owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger + ] . + +[ owl:cardinality "1"^^xsd:nonNegativeInteger + ] . + ################################################################# # Annotations ################################################################# @@ -744,8 +798,8 @@ rdfs:Resource rdf:type owl:Class . rdfs:isDefinedBy . -:StateOrTerritory rdfs:isDefinedBy ; - rdfs:label "StateOrTerritory" . +:State rdfs:isDefinedBy ; + rdfs:label "State or Territory" . :hasDateLastModified rdfs:comment "This is the same as dct:modified."@en ; From b526dd3f62415615e6053e28d4a16c3991c30c4f Mon Sep 17 00:00:00 2001 From: Simon Cox Date: Mon, 30 Mar 2020 12:26:58 +1100 Subject: [PATCH 2/5] Component figures from TopBraid --- gnaf.diagrams | 855 +++++++++++++++++++++++++++++++++++++++++ images/address-tb.png | Bin 0 -> 12525 bytes images/gnaf-entity.png | Bin 0 -> 26776 bytes images/gnaf-tb.png | Bin 0 -> 16762 bytes images/locality-tb.png | Bin 0 -> 15222 bytes images/street-tb.png | Bin 0 -> 16074 bytes 6 files changed, 855 insertions(+) create mode 100644 gnaf.diagrams create mode 100644 images/address-tb.png create mode 100644 images/gnaf-entity.png create mode 100644 images/gnaf-tb.png create mode 100644 images/locality-tb.png create mode 100644 images/street-tb.png diff --git a/gnaf.diagrams b/gnaf.diagrams new file mode 100644 index 0000000..8955c82 --- /dev/null +++ b/gnaf.diagrams @@ -0,0 +1,855 @@ + + + + + + 36 + 105 + 194 + 572 + + + + + + 36 + 125 + 49 + 550 + + + + Address Diagram_1 + + + 36 + 103 + 69 + 790 + + + + + + 36 + 149 + 298 + 802 + + + + + + 36 + 107 + 386 + 590 + + + + + + + 36 + 124 + 450 + 805 + + + + + + 36 + 88 + 379 + 717 + + + + + + 36 + 104 + 374 + 467 + + + + + + 36 + 134 + 199 + 802 + + + + + + + + 36 + 134 + 286 + 481 + + + + + + 36 + 103 + 115 + 111 + + + + + + 36 + 88 + 58 + 463 + + + + + + 36 + 107 + 284 + 117 + + + + + + 36 + 115 + 73 + 268 + + + + + + 36 + 124 + 199 + 56 + + + + + + 36 + 105 + 191 + 273 + + + + + + 36 + 104 + 177 + 504 + + + + + Address Diagram + + + + + 40 + 124 + 466 + 459 + + + + + + 40 + 165 + 419 + 239 + + + + + + 40 + 168 + 82 + 13 + + + + + + + 40 + 92 + 81 + 471 + + + + + + 40 + 95 + 138 + 270 + + + + + + 40 + 143 + 212 + 446 + + + + Locality Diagram + + + 40 + 110 + 347 + 465 + + + + + + 40 + 106 + 290 + 268 + + + + + + 40 + 131 + 343 + 47 + + + + + + 40 + 114 + 214 + 46 + + + + + + + + 36 + 121 + 325 + 494 + + + + + + 36 + 155 + 310 + 235 + + + + + + 36 + 93 + 15 + 443 + + + + + + 36 + 88 + 149 + 36 + + + + + + 36 + 118 + 41 + 148 + + + + + + 36 + 105 + 235 + 501 + + + + + + 36 + 138 + 273 + 761 + + + + + + 36 + 125 + 76 + 757 + + + + + + 36 + 89 + 153 + 448 + + + + GnafEntity Diagram + + + + 36 + 124 + 228 + 109 + + + + + + 36 + 104 + 74 + 520 + + + + + + 36 + 95 + 417 + 422 + + + + + + 36 + 95 + 419 + 594 + + + + + + + + 36 + 93 + 206 + 441 + + + + Street Diagram + + + 36 + 124 + 332 + 426 + + + + + + 36 + 93 + 358 + 268 + + + + + + + 36 + 88 + 126 + 358 + + + + + + 36 + 122 + 271 + 615 + + + + + + 36 + 164 + 208 + 652 + + + + + + 36 + 94 + 237 + 271 + + + + + + + + 36 + 125 + 174 + 416 + + + + + + 36 + 104 + 288 + 281 + + + + + + 36 + 138 + 192 + 672 + + + + + + 36 + 93 + 290 + 108 + + + + + + 36 + 118 + 168 + 168 + + + + + + 36 + 105 + 300 + 459 + + + + + geo:Feature Diagram + + + + + + 36 + 103 + 98 + 292 + + + + + + 36 + 117 + 32 + 409 + + + + + + 36 + 115 + 256 + 552 + + + + StreetLocality Diagram + + + 36 + 104 + 176 + 173 + + + + + + 36 + 138 + 115 + 541 + + + + + + 36 + 134 + 276 + 156 + + + + + + 36 + 112 + 367 + 285 + + + + + + 36 + 83 + 276 + 364 + + + + + + 36 + 154 + 363 + 440 + + + + + + 36 + 149 + 363 + 42 + + + + + diff --git a/images/address-tb.png b/images/address-tb.png new file mode 100644 index 0000000000000000000000000000000000000000..04bd67f765ecc432cd310a00c42e3cf288b17665 GIT binary patch literal 12525 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 literal 0 HcmV?d00001 diff --git a/images/gnaf-entity.png b/images/gnaf-entity.png new file mode 100644 index 0000000000000000000000000000000000000000..a52b515f0847b690181a51a20acb2969322e5728 GIT binary patch literal 26776 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 literal 0 HcmV?d00001 diff --git a/images/gnaf-tb.png b/images/gnaf-tb.png new file mode 100644 index 0000000000000000000000000000000000000000..495eeab108fee4c2b114a4c4bbb0a04c977b95ac GIT binary patch literal 16762 zcmeIabyU>d_b-l#ihxQ>41$1&G}17lq?CvfQX(bY9it#1C=4AEBi$g~AR$AKba!_Q zHB8+%@;uMyxp&>We!q3^UBBNy-#=Un5Bu!1^L6&w=e!Aep(00o+MdFht~ z1Q&;Ze;(H^0weDe*a-;;q@)z2rCzxuZcP;zPRP%*ts|L`7b9JGKES?%-n|RFG-;RS z@}udhAJHXzo3rrGi>2{G0+h6zDgsRe)9p>7`%H}dA2a9_;cAoja}1>L?~zJFAkPdg|*$G*L#nDXUa^gT#e zX4^feTxdDC0f#$;K~TqF+$5F`=dD#T->{UmG6p5ym-8f4iafX&2A_hz84V8r2QF=F z8>)CDW80I!-^Aa3OQ-rEzAZM~cG{mHu^xNebRT(az%aU(^&7bw4r(YvD@#V_qn??In__-)_*#(Mvi5!1M-8 z@z@3aV|n3UA7;ZH-!<*=ZmEnmSwo=(f6N8()lj1?Q-g8r&E(ka;;U?N(5Y=S_tbo4APjd)DUpVO3$p7}o@@r* zUxKoMc>3(^M4m**Jzalt_xhcYgGgbcXXF_D&RN&RFt8=#uc6L83#3xX*<$fzbK`9;2=$ zQqvqp2;G$A+jn!hL33D#pWWRcKg};NAs2z8kLm0>S)D=zr3!o+~hzUt%kuse-B=8B-hK8UxwyfT64k48(h6{%;tU0=>4Mn z=8(zZs;oxv8J|VKeA8=~;@zS+S`_n8mXZ=A5*(L;K{U3?lE$43a2TzC+eqSyX~?iB z5cbdy6E1$&aS@9ARz4r7Prz5bqg9J`x%%<@m-u#2Wi5O#V2RWwX8{NL7=Fog-fa#1 z$Xn}v%QM^5p%4sj&7LO`Zs)gm80!X6L10QWFjaaBHP^L%O$GMPPlzzogy^f1_fm(T zOY}h$1;nh$EV1DIjwke8KI9PmKs=$6@T+6ie3Iq&>7;Q@SjkgpT|8J;sDTHfv}uiD zC0mi5E}#HsTGZ8+m38J3KIx#Sh!aKhT=r4;f@=- z#ozjNfCByA+HvuEt&e^jOn7n!BvQH$Z*PlTgf>lQN@|Fgfb+bzj~;0+L=fip@=^dv zHHWsPEm^Pc@_5YU{xedz{cow*VT8&0&~SJ z6Xr1z*FQ>%@++fS0W%W8HG$j>#7K>QL4m?#aFJa86E#oUjiqpJZQH&z<#OIS`fD)^ zp*h)OF8`mwbjtTKib4B?=0cXbH$J`=4*jz(Y5$<`;+z%{dk8iREU&&07HGtoE^zb= z$7uax0jv-9KEZ7D_4uGMbL)FOQrLsSznG}DgW#N>5>AdzPZzcfU|=s%yk~QFpw#Ps zC^lB03s+_5{V+|TYkJSlbR_MU-G{HywW-~@%+)pjtEoK3W^M1-&{sh>T)~>heU8=b z``f2MtlODnlB^TBDAhj-zTt!D2B3`Y3PVo-abR%V>&ZzF(J%_EBZqP^{WYeOXh3TurtXC(~^Lu1e8qKf!T09WiW*(1>`Mrzg zrp{?yjBs$Ckb|PQI!;A1-))P|_Mnh(Vv>^f4;U#_fSJ@kDwQJP?AOv&)szClRxc{= zw6?h|+co)%D(kxR)drkHXHO4EJxiu7mj23hrkj*xw431WMD<`nd;eb;DDSxuViutr zN`o7iep^@zX$~FU`vhXw%=AtBZgMyE#4G|Q0v&LV=qhSTe?2Gjx|)(saI;5UhvC)wwo&@7QKy=!>6?j1qzo}6Ru3j;Tc)t8nmyfgeXrYQQ{Nu9 zc2TrOANvsFb{YAVw<_RJg)GYNb{(FxoZ_Yn&`?rGr7_UBhduwD{r*849TtIu3dS!_ z)S5B&GsQGM>{4YsCt(`JLTmMP21$3u-kS;KJ1ePRtmobbddW6$?Zr0woJ*v0c$IS+2C&JzCE*QGd;o) zIvpmYrM8ZOE{=^69|tD=ZqL*uX{JEJ7bY$+*w-JSx(p&`F7TXses;5G?DC~j5a zbSr=vWpo5A=v|S4_rA!o43+6Jz-_Q6hI_1aCuVyi6!S)d2Jym#V=YAGPdlcoc-*|ybvn-&esLo{|{JbvL?$g=Jeb%BJsdf0CzKcDz!5(eg~ zSNe^5RIB;~BG!moTWa}KxIMyB{~?^w2ukqOu7pgRwY`Vx{BQksZ8QFVqG$2xECFHN6>RrGM$`0!`@2WjQqz zGm7An4#g|7vv{CzHl{4+7u$1-pScN|LbR76co*Dmv)*8=-{2m3q>Ozq4$Jz&%+O=>exIOG4Y^T>uITSArUhI-X`4OS~&cwJO z&POzv5n!DFo_~A$N?0Ef)UiUU0uz^KwhF*Vof*o6A>L&Bb!0^%{&sR1HAXZX+|0o< zw-!kOzMpnQ5ZI#6g5@2w`<-h(FRc%bCHS^qH7zr0L7;0vmPh;Er<=hnIA7nu#0JpY zT^Rywk@Zo14@Wro%wc(p%%zLomTeFHy+*KL4>R!Tmwq4vdm~1r9mX6~yFr1R^nmFO zC}i{H&ev&%b~n2gU9gPaokzo19iQ@~If+9Osa(y(YGxYhz*!N_roQ6b5GN64T*UIm zK85~=xN|L*K=DgEhC>>Ure$XE4t1ds!pio zzU5Qv7{^#>P&=vPf#O@cuAH;FJqQkrUv{sH-N>;Ic@gbn;0(Dg&fNlKDoaJ=!<(p>CbLyfzJbH)Nw=;akhfa_ZUBQ@czwUfweXa)bQ?_0h7B9r3nBk^#*MF@X4*n z)R{BOf2<+ttvRaj>f|?f!3p;?SKX$YPNw?xxoI*a98>%jeZK=_oLSEKVya1diX>La zkoCMYxI?;C@YU4*J`(P`70G%QH5E@n2+cy!x|wtIKUZ6q1j50E{Axw&uNu82!6%qj zW0h;BQK2hP_X#uUT*0}ZvWhDYC4@Pqw)!8mrB|bv>vH?2h8IM^0yWKde2g@oQJjP3VdZ;Vh|Yok)aC19nIM`;@HPqcpw6dUY7fW8|PGQdnm`A zr&^p4%>IbcfpGHNXQ9eKjQxW)1N>3cfIQV!lI%PAKQhq3&CD_!R`=oN-C{S|>bpwZ z?1fJCVv@N_G5dm&B>PIXvvoG+(??(WIgnY4&;j#wRlnnDt*^`qe@$Qcbyub@<3nZ2 zmhb^gt{PMXLo7_K@lLIJU{*w2F#8)t5Ye5V&TgB8VZ|8Udh9@&fg-IPkb-Zr!fTi; zZ~}J}_6Y%Rb_q*9BaM|6o`sU8t@Q0IsRlM8@uyw0G7E2STN@o<HCV#q!48=U|V|SV!Ge%sGv4@+d z52X1Gh@*u=TB-lUsRrA9@RaNy@^|8pb=J`XuPfTob+Bj zh8Hi;KYHoN{cg}X<^%H-jwuzHAau{*YocB4=Hb&Nt(~igoyDIb&f_Lt+J>?#5T!)f zZ^AvLBLnif=h?b&Lg%R2p-b3ngmC>z57`I|-W_kQM6BG~`U4JJSH7Ns1NZ1xV1E}t z*r+nwp9jy^1;^(7W|2@e`1On_GCwUldXie8#h|(=_smFmBn1G9Sz1^Xk0qL=HVI6b zxIDIFexK_+uFcUWUKl}jJ(MmO8+Nw?k%loibcM#nf)i!malx6-j9%vLRcN0OXdB3M zqq4t?cSv9w&n8BVuL^iH-CP30mV=83tts@}~>~^6Kf-=MFBj_sX=TJv_0_?A=>nv76R9 zks|6dx?(LL(|N9{k{{d*6CM$SC~GB?gyXki0aSFO`x&Il?O#1o7*T}Z*9{4f1TEjmFQ*^Trs zDgXHXS1wo@ZcF?4SWrFI)|AGI+5Kv|4)vt55>89%a4W3&+-Dltd!jBA**cZ+qBBh1 zr-JHObc}x^8nYFgYa2)|`zHg6uafi~Sf>GJVixD_hMrd#Jtq56VJl^vmdvHCu+(!# z!$0qdu5h-3zV~3)yHoCKhyStcyK+$K02*I6$_oL-De#ss{Uw^DG~7i}bu+G%tvl=H z-?WDesT~qCKL&Ct?-QjE{5=}YkXk?03u$IHN7841>o<~Nak{n{JY1m_61ZvtBMPEV zNp;EO3MR>p#aR}wi(+Gc4x=M9_8X#=Qmj|~pIc46q|UIptJ&A51&k>KSc+dR=Bq2}M2;2l8`xpzT+L$8xX3|xXx~tR8>g+J$DYcWpMqk!ux#P%F#WghC zwT}S1WW?iS5U>aTrPCDyUM{GLJfHfIc&P!*JuZJLVNK^|UH64eO_;VOZ8ys^t50&B z8Z6spj9Q@lBYy&%wzD3hFW``VDBw8z7%8ifWi03hS%X zKAtCQ-3n~$mH}OXBd%>8zh<1`V?z z;fujsdcFTQ-r60uo?z7pc=^DKaYRSemNusz+N6@#4}GJ0kfj%=IGZ+JDs{vGqfpBv9z zH|ihwI*k7I_JICf!{U~3l6|}{frwn* z3n*D$F?gs1cogJj-B=q>-W;&ah504)K-B4aeTU)Puc?!}_M^_Nu%kwO5QEP2##jVa z7hhc;pI@KXKX>Xzvh}Knx^dlps}_xxJ~!#>yPX!t_-vlFAO_Z->Zd8m^VSaS-R(a#vN$V;J%%uUl5ah7_|+*Pv^w94L?$%Wz1{Jofh{dZ0X*) zs>2o!Tqp5mA?Y*xYRQ3%YMv*nn{|$3sEL`FX2fDKnmju*g5s4BhhS9348C8se@7w4 zjK5>y9Rk~xJcC{)_o0Ly1?A=d2@n!cvQ6LNu{5T?Uo~poHMT{|{jnKRQQ5f1AO_0+ zcIJ@HhLp1&i{ZnP1RyZ<%2V~~$NC>&9-hmr!@4L-Oyo|= zejnAAPzG~-!}u@27?E}tggtfXk8#-->`LFw`~FA3_YXE|w3Dr~!XyN;B`}_KwQYA1z&xHjgxo9))rAQ!I4JLKYNMDjONB(wIUkqCOe;G7 zTeSfs*ay9J*b=A;>NS%~C3;}HfSxF^`=oj~_#kzFwQWIeeaUngy7oapk)N|5Ug#zB zza15V${Ok7m?Hl&QpxccBn$LVdnveLNcesgoW1Z;LD7u9>~kEtM7c za?ry2C9yEpYh$WhqCr!OTr~Cd6lS0}HlY_}KPX&?J=hHl+OTyf-+>JMd)d;W#>=I= zK#O&a0!!K<3kx7F9RKS5LCB|bu}gUo+Qr|0&ur>tuELO*f!M$F)a>2A$u(?@QmK8s zE$^ac+mh#spxxywbQPxaVP)tpwFb7!*Dt1k2p#_+4x^JB7DL->m`~(6Rl2^9lka@B z8QPcbds<}8?+_WWl-LN;Ek=6RenWop{0XJd?68C*b!bE}F74bt=eE8jmcCkJh zCnnX-TU$2%TXl)U$*)ef`>3&+=o@rvp25M)6vXQkTkDdClYR_D!dsO;ERjA;LB1<&^OZOAp<{PU=XNam zwpS)NvjpwZ}091d~BkK-}bNhWlO5+U25!s+CA;n!d*MAIsRZb zWJl^TXL>>$RqwsJ^@OU$luFE`&%IbHQYxLFUhW3nCeX_f6tDJoWwzt#h7nGmoo1fd z+4-}GPuMs7zGKZqp2R6EfgD&lIkt&t`l$apIYHa&@zhVnZp- zkVBMvd&KV6+D)*o`na3HIBt+jGcuGL_LVp-w%BF!!V1}SwHq|c&;#}WyIR{Wgsr$+ zJTf5x1nN_1-sz*MDCBG6dlAk?Gu+xdhWC`gY#E9ynwL9t(ifLO0tjwWjavAO zv9DB4Se3`ciE{EaY(Ah~2aa;1rHHPb4p57=zCJ(7VZl>C2;$TTAp_@TA?Jg>f$8}q zFlL{b_u(&1$~uBDw^eMad`4Lkf1{47W2WIxn#~jUtbW@?h3;%PCtV-s#P8}r+_~-V zBio^)|{Vv-!>Js=|kj*3T`z z?=xHMN~GUav?1(hM-VfzMf8&V*y}TkgudLcM&e&m@2YxE*durBnINs`-yFQ_8AztQ z=75jRlT;T2K!xsYibc+<8}DZolGVW>q^{QJ>Tye3gu1d+HM2I^B56gR)-CNN@m6|! zV>MirrnsS9oKY~wsI2&Ej2z3a*T#NEA}GI*$NVb!KJ3OSbRA*f=2{~eBDoc6tNf7V zvY`F0tu1j~sh$vY2Pi7_Bjf(y70?MVyO3jwKF}XBMbG=Q8XuK76G{B^)p5w`PtXRQoQ4k z@xDJ>=~;++LD7QHW_Hz*aB%h$=N6@kYj+x6II%CbSZcn{g5X!5b9;;R49YRv&hR=8 zVAS+Hvp@T?(4zb-1`m&IlCL@VL{A)-k(9REHuf|ijtj(0lkrK+kij8>hZ$}ivbgV( z|_v=@#v{C$H?Vwlr7{(Hh z%QOfO%oj3KlXbYuFgkVk?b!p=?`X3)_S0ju{1kqH9hHVTwTAYy0)kLRiNBC|?5m6O zZYKzYAR4m{d(d96qCwq-_SF?DSQt3Cpl6xg1<>#P^LVMV0EJpvpX^{N8Qj;2iYfe6 z1@{T9AKKmbl)c;$3HH!HEq`0QI+pl`5#ZfM@wlQO`i@7j5z@A)UMw_9{jt+4LO{$- znR`;kQ`cU~<5sI_!!cC5wh9r+xWeNeorp9 z2y6Uh0}kI;;b0$J9di99Du=No=lhCp*0_bPm$=ZY+mZn$9R5*CLt)BmNmRz_3!qh& z73f-Xeqpxj(~L0X>Lew=6zdIpy2=VeDaIoys@H68G6?={Y8M<#8tq8#@MgR4fF)fS5we%>=S= zZ0mGva|y8a)hoke|e^U(+C7SZ^jTC$KuzJCeP*Sq%bnNr+Q= zSR(mjz=C!y^b4y89ngfVCqPeG7TN;I;%`;imy^5E@$6n?2VvxiIIL`+<ufD7UB*?m3FIZBOA3EvK_a=Ey1(XC67a=AJ(MZQ^6sFF#MSceJ}sFN8V;*w@;@ir z!-48cL3^o9ot80iT0>o+AkC_3(n?rl6tdw^4@1J!SYw_j|-@!>AtCE+iEOF+L zI~&eT$Iz+nLGB&ImtH7{OZx%-cv=1)RQhui~EAUS3O3flU{t#xeL`p^%AO8SbMiTB~&g4{xEPq)9fw#&kA z2w6#nYUGAFL_Vcd(=b+-CcMDHVN6$`qPE29-<=-Sp81{RV&|(t;WyzIyOeKKE1<%Z z?ddN^nYumWF&(d2@4s10MouzDJ}&h{B$!@~NYkNO6T0&mUq)WonBUIs-^e_6$i)x3$ zH7Qp+tpok`NM`tSavJfHN32J=Hs+-$oJ)w-&F5eH;Q%knG#<3 za+6;!d&vG^tj598xy)u?+4-)ICAkc|Q$^V`1ACt?mE;4sL#i*1U*l(m8naFL^ zURi>ozeejANu_5T_nU8Sy?8{=5#ovAwnZ&S3Uw7^L^1)r2NizXPt9vu=D%w$O%NT| zq;=+MpmDC_Zd6gKxbL?)vAp%|sfG<+as z8`t$I$Mt?IgiMPCp3Gg3cm?|9d0uUsH;x?=rihlHvJMkz+q?(S9UQ&+aC}I`SxhOz zWzbPA=`LXc#w8m3l%hQ3%~7d(U*XI0q$6E&#bqsvO4LGXjG#J>!6kQ8;qH&)6+ess>Ob&GuykyuU3`4%^#dD=3WFna$;!S=bn5JjUUQ?K?Cv@YBY8r?P zwkch$EA@>n#-V&77Rg%;G5C{k2lu}2+pUHw3;+|4{vN$t#+!7aX%Qk8CE6ask31Gf zZ^xntoa!Q#wIyPcogDQjKGRd!4=xIUzs-2xQobKy<~SQEr!6tUEU^YMfZ$INjTkft zvh72HmwcpcKjZRF7~c{U*4zP_sBwRPpkd9IlP7^FcvbQsk8;Q6_4)nk$W+VnRQ^S& zbb-_Pr%J5{c0s2eiF{Viw9DNL^6vh3H>^HLsh!40dWYY+cl^pAK0yP`D|ORBmuf|G z^PhB>)6pLu3Y&}ulvwPAY8=8xX4ru47{Bwqgwpk z7>Bo-a?#ONZm5^u5-KzmDfw^e(q1dWFjek1(rKHZY!s~g(%TsO$-8GQWw-K-oLBw=W7FIX(2@V3`uC@R9E8}TF3C#yco`k!g4 z2PbxDHLHKuP9MIrZXh-pdN+&$)nDSqIPOU9pb9Pfv)ZuHx zBp;#+Gkau#uIxpGzEiP z&wPHfm!E`7UzfB$=r!=DhJk?6KWugv)(zrF#M5`zZT= z-ldtDKV;6UDRAQOlW7^D-&TTjyl1MB4qY6IKj^ZSGSH2MZ)}(X%G^PGU5S_Ro=rhg zZ|s3GRgp}MW7b=S{dZ#k?+w9he-EHVlKl^S!B%|G$TktEWsTcq*>GhR*fY6BzAyNcTGF@j_#uA_;y6Mx&q%4nnvC98-*O zC*&c>oZ=%sai};WUBg1)0k_rVG*oNu^y|oJW<(LsWPC9e4C|3kDz4t^;$QjI`%=fC zPTyXJEwke0$1l_UnZT)U*|6;}))CJ4nY78#6SZ(!WryA;ECv!aT%&vyZIF7?o`U3{ zDX4AR_??$2bNNI22Z3hve$esBH~p|4UP1l}u(QOT15t=B@c`JLARy4;y7Q()l;JfbtdMH0A(qxrbl{Z&erMz^l2VY)R}8b`f@ zqw)`9q*Y#q`bx&?OsJJU#l?x33nz4=7E%z62T$AcQCTZ8`-FK9^C-)6d;W8wUdMGe zzm8;^EYGwKv#Zw%rS|MSl#xZs8KxOn%k?bqf3qe0Sv=OHM$VxBjW$2t4bz&wwpQJd zH#lN+jKB7@34;kwE{tiwF+q6bw9B(!TiXCzQ&Ea;V8HGrrWFNhKYii2Vvl3Y0Pg;< z-QbCM34h1b29z#mjcqS1)~7mT&}C3uJPoCRp-!Nun^|Ky{nL}9g~HyK39Yaey*Bu= z0})L$qr^LU;nqwpao3}=a&j^vfw1(98X8_!;5gR@hPTHu7u6QP553xEZHHPx9}R68 z#Iw+~!antbxvkfC>@?cmQo&=ts=lN1S2C#34cgFk3HBUkNJE-Ywxo__NT zGA&*ws9zb%Dd=QK>ht2YM-Kq3jbOVWu!v+RpE!+!``q-WFu=e6$b1%efQq^KT-t1o z<(3;3##jE9kp4CBF6pm*O)YOc@nLr8!@MtlZ;?PKs8GC;iyo5sdkY)P70kMko7TCW z+Q5+YFKN_FoYf4V>i<$GyQC(&2+rOj81?$go1x`bQqHfm^#(^4{#fxp60L98|I1+i z=i(G1e@Tm*ZfN}E1JpfdZgG1(le_R-DZe+LYSzANoJ;?mGQ|eKv~w}DWwH|*s<;xA z)-4djL+v*PnFf^&ZVt*Lt~f`6Kiplb{%*5R_<~u2Y7qEv!y-fRJMa+7+x$U5zFJap0QIcDO?t07HaWAV104K`$zSrvSQR*V?*wE#!7y%GDhR z4Ek(9GjlSUSp7JUgoJApTQK(8BedIT9FO-HL4~3P*DJ>h#BqYh${EksP6K>3LGDwp zIxaCUl4k30Lp~|Y^O4}(uwD$e{S@i58u5shP0KK_&nL@N|2YD>W&e!_lM}P8T;9Qj zRhP#YyFq)=@vD{7+(q`dYX+7_3D2YZ5k8D}J*O5YE(4EtUR3Jis3ltL>}izMNrj7U z223Jbd;{5fUmP&lJH~n-Ra>&I=zw%lpD(q|Zq*lTvwU#3wMdUT_2fORsZ?aRcE+I( z1#00fhS<+pYddU$GNas9chDHl>ZU%uyM^-Ic=@k~QZe#h_g2{HgE%-Vrw8A&6PL8N zZ-hpRhusIvXSxVIL1wM3QTXxG+R}>o$fm=n`;F`z{P>Y_Wfmcr+r;?N=|O4s4$$u9 zeZp6nt}Vs-xRVWT?k3wTwcVpxYMJQOJHJ-uSiXoXY;29FEJ2O0-mS((Ob1#vTw`wE z6ngyfIrchxT2X=rUl`yo6W~E>5kxV>cg~JlB?@ySlGy1kQhr<2`Lo>g>>ULG&I9D= zRZuOC&nrchIqxc90?u9!b)$>}eqITed1u1f>**b!7cd^*NuZc23jn%#cUlKu1rFHm z9eKEJ$|KmW3kd^{{aL@Oc;PC9atYC4aW5wdwldRt-PPA#-WZYIvpjHKB8_{7`*3<6 z8OZH>;bCfv??YmvK+J_#(t%fAum2*MyOjM!lE{LBl@ti~v!9$57@7%R&`(jm+FY{Q zpueCcTX}_oO!C9?|76ORo1svJjpffYy0)^GA7x|@@7|r|$)pd+NP5xtn;?*Pi|5hS zr{I9A!e7nd%q{)@vl?G39CLx#j(Q-pHZbG7c-`2(mlp>9eu2bj+s}wFW|{!zp7~AwNKpcZW)UVlUN7K#+>S++Ni&Hi3MZ;AM{AxmaKs- z`o|4?NTkjqy|mfXiCQR`Czs`FlwgC1?`GQUgkdh!*#m0>^lOnIvaBbe&$en^{TwgC z_YQ+lX88*=O%S0t($Qf7zb^o8~Wslv}y43~g- zfs<%HKm9e)Y)3$XY<4DZ_&NdN28uZb5Xem*1l&1q$|Zv5Ir#f*>kTB^P|RKhW47zw zrzQ(e1deJtDyu*Lr8Ne{eAfZ-%!%jKpJcjS_&oVwwFgWLqqOq2TVf`m_ETiA&GWqe zb~@oXRqI=BSp(OD$zH2{LV=%#N@5NOyl_ZbEJXL}0FX_d5DDVnjn5sikEt^QIqo0< zK=KY_xnqQJe=axwysJRSc?#NOlA%vY;|`>?t~Bn$nUm#~fe&LY%$?AL`@EBfHkqki zi;oAVz6P$t-k-n@Gd*Da^kVpX5Q0b`UKSb**S66R>DUL;q}&!Rvf=uhL%5;&+HqqmnIviB zuQZFDQ2P4#J3-Jzm1Su7^=vX&<5tLeljOm&v+jt?fZ9r3&IS=Z1HHsb9c!>bS`i22 zXR^pw^FTv$wpRjw%y&~!EG0GNENBh2#;;QlpT#suOTS9?`}ZG!$f1sLc`EblOmri+ zQnfeb&N`PEmi`y1^1s9N{~`PS4_R_=wx!fS&|6!C*+9AuZrzbKzMTz(UD-3rk8j#R zPZEr8KZpnZt4jH?za8|mp`Gc)MbxFyB6#WNTbGW3uOdU6AC)|K{h85@5Os;sP>qtt zb9DGvVJs<{_5vckg1{y&UM9dY}RB$mkH}xtqvE4d@3sc{Kp8pk5EXts0+PD9%0mX%pQ0^uW7QV zdK@gn0#u1AB&*2D2){OE#8eKs20~%`a@K>Cc9p`_T%1#6&}XkEgx2Y@9b=#aKfO_KlU8UTuA%GMJkM>p2*!|`n)jC>_xWURh27zo z=taI_h`Y@6M-5ltOOg8l_?Apkjb2bJMHY_(svsM)*S=yf|G^G3s|e;zhvP~gd;-4p z>&tz-53e@^z9SpY=A5_xsDSdoDU%wuUQ^zT;6NzC9Y65CS;mXMgon3Ph#3vMexG=pU}v*Bdx^cPsPU%3>QsAf6K23| ze*NO#OSRUs26ge^&d%gdNV%L7RV?Z_@ke(Tp`f{M?+t}30^R3CPmcwKixpw199&W* z*Zy&vWg@tFq^2E(<=*>*XtA}IU7adUJH9a4D(3(^X==Yb7=)NP>NUTN{+*ETpjZ3- zhsq)p$e&podn@W%N_(2=KlK&gPn2O(3)z{gtEv@&quJbmZviRSuht7jyGPR+Y%OqA z=6CwfYk|C}(h zjIynXQ7(VXS==OvdtvPXyyEI^n`jFKd9ASp9E`#yXS*@C3*In8(%F98z3upN+*wWM z=alSKbj|=1)&#r31q&Q8>`$QH?l`c_+LzR?f?-y0nRW4VZhPkzlQ$H690E% dVggUf6VaJdplUP${7nS{1sN6T!l!S2{~HI~L8$-$ literal 0 HcmV?d00001 diff --git a/images/locality-tb.png b/images/locality-tb.png new file mode 100644 index 0000000000000000000000000000000000000000..416d59b652598004bbc3ffb7840e51947010e2f3 GIT binary patch literal 15222 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 H8NB>&ZNOIq literal 0 HcmV?d00001 diff --git a/images/street-tb.png b/images/street-tb.png new file mode 100644 index 0000000000000000000000000000000000000000..f07c1ad9170698af8c4c39994816c11a71300487 GIT binary patch literal 16074 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 Do^rh7 literal 0 HcmV?d00001 From 3c40cbe90d8b44e6691187cecca447707308b718 Mon Sep 17 00:00:00 2001 From: Simon Cox Date: Mon, 30 Mar 2020 19:25:47 +1100 Subject: [PATCH 3/5] 2020-03-30 version 1.4 diagrams and documentation --- gnaf.diagrams | 570 ++++++++++++++++++++--------------------- gnaf.html | 301 ++++++++++++++++++---- gnaf.ttl | 153 ++--------- images/address-tb.png | Bin 12525 -> 13929 bytes images/gnaf-entity.png | Bin 26776 -> 28053 bytes images/gnaf-tb.png | Bin 16762 -> 20048 bytes images/locality-tb.png | Bin 15222 -> 16684 bytes images/street-tb.png | Bin 16074 -> 19385 bytes 8 files changed, 559 insertions(+), 465 deletions(-) diff --git a/gnaf.diagrams b/gnaf.diagrams index 8955c82..d16f4dc 100644 --- a/gnaf.diagrams +++ b/gnaf.diagrams @@ -6,17 +6,18 @@ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#"> + 36 105 + >115 194 + >73 572 - + >268 + @@ -24,39 +25,39 @@ 36 125 + >88 49 + >58 550 - + >463 + - Address Diagram_1 36 103 + >124 69 + >199 790 - + >56 + + Address Diagram 36 149 + >107 298 + >284 802 - + >117 + @@ -64,26 +65,25 @@ 36 107 + >104 386 + >177 590 - + >504 + - 36 124 + >103 450 + >115 805 - + >111 + @@ -91,12 +91,12 @@ 36 88 + >105 379 + >191 717 - + >273 + @@ -104,40 +104,41 @@ 36 104 + >134 374 + >286 467 - + >481 + + + 36 134 + >93 199 + >206 802 - + >441 + - - + Street Diagram 36 134 + >94 286 + >237 481 - + >271 + @@ -145,25 +146,26 @@ 36 103 + >124 115 + >332 111 - + >426 + + 36 88 + >164 58 + >208 463 - + >652 + @@ -171,12 +173,12 @@ 36 107 + >93 284 + >358 117 - + >268 + @@ -184,12 +186,12 @@ 36 115 + >88 73 + >126 268 - + >358 + @@ -197,25 +199,27 @@ 36 124 + >122 199 + >271 56 - + >615 + + + 36 105 + >125 191 + >174 273 - + >416 + @@ -225,161 +229,159 @@ 104 177 + >288 504 + >281 - - Address Diagram - - 40 + >36 124 + >138 466 + >192 459 - + >672 + 40 + >36 165 + >93 419 + >290 239 - + >108 + 40 + >36 168 + >118 82 + >168 13 - + >168 + - 40 + >36 92 + >105 81 + >300 471 - + >459 + + + geo:Feature Diagram + + 40 + >36 95 138 + >417 270 - + >422 + 40 + >36 143 + >93 212 + >15 446 - + >443 + - Locality Diagram 40 + >36 110 + >88 347 + >149 465 - + >36 + + 40 + >36 106 + >95 290 + >419 268 - + >594 + 40 + >36 131 + >104 343 + >74 47 - + >520 + 40 + >36 114 + >125 214 + >76 46 - + >757 + - - + GnafEntity Diagram 36 121 + >124 325 + >228 494 - + >109 + @@ -387,12 +389,12 @@ 36 155 + >138 310 + >273 235 - + >761 + @@ -400,12 +402,12 @@ 36 93 + >118 15 + >41 443 - + >148 + @@ -413,12 +415,12 @@ 36 88 + >155 149 + >310 36 - + >235 + @@ -426,12 +428,12 @@ 36 118 + >89 41 + >153 148 - + >448 + @@ -452,42 +454,43 @@ 36 138 + >121 273 + >325 761 - + >494 + + + 36 125 + >149 76 + >298 757 - + >802 + + Address Diagram_1 36 89 + >88 153 + >379 448 - + >717 + - GnafEntity Diagram - 124 228 + >450 109 + >805 @@ -506,25 +509,26 @@ 36 104 + >107 74 + >386 520 - + >590 + + 36 95 + >134 417 + >199 422 - + >802 + @@ -532,41 +536,38 @@ 36 95 + >104 419 + >374 594 - + >467 + - - 36 93 + >105 206 + >194 441 - + >572 + - Street Diagram 36 124 + >125 332 + >49 426 - + >550 + @@ -574,26 +575,28 @@ 36 93 + >103 358 + >69 268 + >790 - + + + 36 88 + >83 126 + >276 358 - + >364 + @@ -601,11 +604,11 @@ 36 122 + >112 271 + >367 615 + >285 @@ -614,12 +617,12 @@ 36 164 + >138 208 + >115 652 - + >541 + @@ -627,27 +630,25 @@ 36 94 + >115 237 + >256 271 - + >552 + - - 36 125 + >103 174 + >98 416 - + >292 + @@ -655,12 +656,12 @@ 36 104 + >154 288 + >363 281 - + >440 + @@ -668,12 +669,12 @@ 36 138 + >134 192 + >276 672 - + >156 + @@ -681,12 +682,12 @@ 36 93 + >117 290 + >32 108 - + >409 + @@ -694,12 +695,12 @@ 36 118 + >149 168 + >363 168 - + >42 + @@ -707,148 +708,147 @@ 36 105 + >104 300 + >176 459 - + >173 + - - geo:Feature Diagram + StreetLocality Diagram - 36 + >40 103 + >168 98 + >82 292 - + >13 + 36 + >40 117 + >143 32 + >212 409 - + >446 + 36 + >40 115 + >106 256 + >290 552 - + >268 + - StreetLocality Diagram + 36 + >40 104 + >124 176 + >466 173 - + >459 + 36 + >40 138 + >95 115 + >138 541 - + >270 + 36 + >40 134 + >110 276 + >347 156 - + >465 + + Locality Diagram 36 + >40 112 + >114 367 + >214 285 - + >46 + 36 + >40 83 + >165 276 + >419 364 - + >239 + 36 + >40 154 + >92 363 + >81 440 - + >471 + 36 + >40 149 + >131 363 + >343 42 - + >47 + diff --git a/gnaf.html b/gnaf.html index 3457dcb..5b138f2 100644 --- a/gnaf.html +++ b/gnaf.html @@ -174,7 +174,7 @@ ], "https://schema.org/description": [ { - "@value": "

An ontology for the content of the PSMA Geocoded National Address File (G-NAF). \n The G-NAF is Australia’s authoritative, geocoded address file. It contains more than 13 million Australian physical address records. The records include geocodes which are latitude and longitude map coordinates with coordinate reference system details and other information necissary to prcicely locate addresses on the earth's surface.
\n The G-NAF does not contain any names or personal information. \n The base content of the G-NAF is available freely online at https://data.gov.au/dataset/geocoded-national-address-file-g-naf and also via a Linked Data API that uses this ontology at http://gnafld.net. \n This ontology draws heavily from the OWL ontology version of the ISO19160-1:2015 \"Addressing -- Part 1: Conceptual model\" standard (see https://www.iso.org/standard/61710.html) which has been created by the ISO TC211, Group for Ontology Management (GOM) and published online by the Australian Government Linked Data Working Group at http://reference.data.gov.au/def/ont/iso19160-1-address.

" + "@value": "

An ontology for the content of the PSMA Geocoded National Address File (G-NAF).

\n\n

The G-NAF is Australia’s authoritative, geocoded address file. It contains more than 13 million Australian physical address records. The records include geocodes which are latitude and longitude map coordinates with coordinate reference system details and other information necissary to prcicely locate addresses on the earth's surface. The G-NAF does not contain any names or personal information.

\n\n

The base content of the G-NAF is available freely online at data.gov.au.

\n\n

This ontology draws partly from ISO19160-1:2015 \"Addressing -- Part 1: Conceptual model\" standard (see ) in particular the OWL implemention created by the ISO TC211, Group for Ontology Management (GOM) and also published online by the Australian Government Linked Data Working Group.

\n\n

Also see:

\n\n" } ], "https://schema.org/name": [ @@ -193,6 +193,7 @@
made by pyLODE
+

G-NAF Ontology

Metadata

@@ -215,25 +216,36 @@

Metadata

Created
2017-12-23
Modified
-
2020-02-02
+
2020-03-30
Version IRI
-
http://linked.data.gov.au/def/gnaf/1.3
+
http://linked.data.gov.au/def/gnaf/1.4
Imports
- http://www.opengis.net/ont/geosparql
+ http://linked.data.gov.au/def/geox
Rights
-
© 2018 PSMA Australia.
+
© 2018, 2020 PSMA Australia.
Ontology Source
-
RDF (turtle)
+
RDF (turtle)

Description

-

An ontology for the content of the PSMA Geocoded National Address File (G-NAF). - The G-NAF is Australia’s authoritative, geocoded address file. It contains more than 13 million Australian physical address records. The records include geocodes which are latitude and longitude map coordinates with coordinate reference system details and other information necissary to prcicely locate addresses on the earth's surface.
- The G-NAF does not contain any names or personal information. - The base content of the G-NAF is available freely online at https://data.gov.au/dataset/geocoded-national-address-file-g-naf and also via a Linked Data API that uses this ontology at http://gnafld.net. - This ontology draws heavily from the OWL ontology version of the ISO19160-1:2015 "Addressing -- Part 1: Conceptual model" standard (see https://www.iso.org/standard/61710.html) which has been created by the ISO TC211, Group for Ontology Management (GOM) and published online by the Australian Government Linked Data Working Group at http://reference.data.gov.au/def/ont/iso19160-1-address.

+

An ontology for the content of the PSMA Geocoded National Address File (G-NAF).

+ +

The G-NAF is Australia’s authoritative, geocoded address file. It contains more than 13 million Australian physical address records. The records include geocodes which are latitude and longitude map coordinates with coordinate reference system details and other information necissary to prcicely locate addresses on the earth's surface. The G-NAF does not contain any names or personal information.

+ +

The base content of the G-NAF is available freely online at data.gov.au.

+ +

This ontology draws partly from ISO19160-1:2015 "Addressing -- Part 1: Conceptual model" standard (see ) in particular the OWL implemention created by the ISO TC211, Group for Ontology Management (GOM) and also published online by the Australian Government Linked Data Working Group.

+ +

Also see:

+ +
@@ -251,8 +263,8 @@

Table of Contents

Overview

-
 
-
Figure 1: Ontology overview
+
GNAF Entity diagram
+
Figure 1:The main GNAF classes. Some GNAF Entities are also GeoSPARQL Features
@@ -263,15 +275,18 @@

Classes Address
  • Address Site
  • Alias
  • +
  • Feature
  • GNAF Entity
  • GeocodeReliability
  • +
  • Geometry
  • GnafConfidence
  • Locality
  • Mesh Block
  • Mesh Block Match
  • Number
  • +
  • Point
  • Resource
  • -
  • StateOrTerritory
  • +
  • State or Territory
  • Street
  • Street Locality
  • StreetConfirmation
  • @@ -279,11 +294,21 @@

    Classes

    Addressc

    +
    +
    GNAF Address diagram
    +
    Figure 2:The GNAF Address class.
    +
    + + + + @@ -385,6 +410,12 @@

    GeocodeReliabilityc

    + + + +
    IRI http://linked.data.gov.au/def/gnaf#Address
    Description + G-NAF contains only point geometries, so the GeoSPARQL hasGeometry property is expected to have at least one sf:Point value +
    Super-classes @@ -295,25 +320,25 @@

    Addressc

    Restrictions hasPostcodedp max 1
    - hasAddressSiteop exactly 1
    - hasGnafConfidenceop exactly 1
    - hasDateLastModifieddp exactly 1
    - hasLocalityop exactly 1
    hasBuildingNamedp max 1
    + hasDateLastModifieddp exactly 1
    + geo:hasGeometryop min 1 sf:Pointc
    hasStreetLocalityop exactly 1
    - geo:hasGeometry min 1 sf:Pointc
    + hasGnafConfidenceop exactly 1
    + hasAddressSiteop exactly 1
    + hasLocalityop exactly 1
    In domain of - hasAddressSecondaryop
    hasStreetLocalityop
    - hasGnafConfidenceop
    + hasAddressSecondaryop
    + hasGeocodeop
    hasAddressSiteop
    hasMeshBlockMatchop
    - hasGeocodeop
    hasNumberop
    + hasGnafConfidenceop
    IRI http://linked.data.gov.au/def/gnaf#GeocodeReliability
    In range of + hasGeocodeReliabilityop
    +

    Localityc

    +
    +
    GNAF Locality diagram
    +
    Figure 3:The GNAF Address class.
    +
    + + + + @@ -530,6 +572,13 @@

    Mesh Blockc

    Mesh Blocks (MB) are the smallest geographical area defined by the ABS. They are designed as geographic building blocks rather than as areas for the release of statistics themselves. All statistical areas in the Australian Statistical Geography Standard (ASGS) both ABS and Non ABS Structures are built up from one or more MBs.As a result the design of MBs takes into account many factors including administrative boundaries such as Cadastre (property boundaries) Suburbs and Localities and Local Government Areas (LGAs) as well as land uses and dwelling distribution. Most MBs contain 30 to 60 dwellings although some are specifically designed to have zero. This provides an additional level of confidentiality for data released on the ASGS as the difference in data released on multiple statistical areas is always at least one MB. Mesh Blocks like other ABS structures in the ASGS are stable for 5 years and are updated to reflect changes such as new housing developments every 5 years. The MB table includes a Mesh Block Category field that broadly defines primary land uses such as Residential and Commercial. MB boundaries are contiguous and in aggregate cover the whole of Australia without gaps or overlaps. An additional code (Outside Australia) has also been added to represent areas not covered by Geographical Australia. + + + + @@ -609,17 +658,24 @@

    Numberc

    IRI http://linked.data.gov.au/def/gnaf#Locality
    Description + G-NAF contains only point geometries, so the GeoSPARQL hasGeometry property is expected to have at least one sf:Point value +
    Super-classes - GnafEntityc
    geo:Featurec
    + GnafEntityc
    Restrictions hasNamedp exactly 1
    + geo:hasGeometryop min 1 sf:Pointc
    hasPrimaryPostcodedp max 1
    - geo:hasGeometry min 1 sf:Pointc
    In domain of - hasNeighbourop
    hasPrimaryPostcodedp
    + hasNeighbourop
    Super-classes + geo:Featurec
    + GnafEntityc
    +
    Sub-classes @@ -589,9 +638,9 @@

    Numberc

    Restrictions rdf:valuedp only xsd:integerc
    - hasSuffixdp max 1
    rdf:valuedp exactly 1
    hasPrefixdp max 1
    + hasSuffixdp max 1
    -
    -

    StateOrTerritoryc

    +
    +

    State or Territoryc

    - + + + + + @@ -632,23 +688,35 @@

    StateOrTerritoryc

    Streetc

    +
    +
    GNAF Street and StreetLocality diagram
    +
    Figure 4:The GNAF Street and StreetLocality classes.
    +
    IRIhttp://linked.data.gov.au/def/gnaf#StateOrTerritoryhttp://linked.data.gov.au/def/gnaf#State
    Description - State and Territory (S/T) are separate spatial units representing the States and Territories within Australia. Jervis Bay Territory the Territories of Christmas Island; Cocos (Keeling) Islands and Norfolk Island are included as one spatial unit at the State and Territory level under the category of Other Territories. S/T are aggregations of one or more Statistical Area Level 4 (SA4s) in the ASGS Main Structure. S/T boundaries are contiguous and in aggregate cover the whole of Australia without gaps or overlaps. An additional code (Outside Australia) has also been added to represent areas not covered by Geographical Australia. + State and Territory (S/T) are separate spatial units representing the States and Territories within Australia. Jervis Bay Territory the Territories of Christmas Island; Cocos (Keeling) Islands and Norfolk Island are included as one spatial unit at the State and Territory level under the category of Other Territories. S/T are aggregations of one or more Statistical Area Level 4 (SA4s) in the ASGS Main Structure. S/T boundaries are contiguous and in aggregate cover the whole of Australia without gaps or overlaps. An additional code (Outside Australia) has also been added to represent areas not covered by Geographical Australia. (definition from ASGS) +
    Super-classes + GnafEntityc
    + geo:Featurec
    + + + + @@ -687,6 +755,16 @@

    Street Locality c

    + + + + @@ -731,6 +809,55 @@

    StreetSuffixc

    IRI http://linked.data.gov.au/def/gnaf#Street
    Description + Definition: a complete Street that crosses multiple localities. + +NOTE: In principle, a Street is composed of several StreetLocality members, however this relationship is not present in the GNAF Ontology. Furthermore, the GNAF product definition does not contain a class for Street, only for StreetLocality. The GNAF Ontology does not therefore correspond to the GNAF product in this area, and should be reviewed and potentially revised to capture the correct alignment. In particular, in the GNAF Ontology _geometry_ is associated with gnaf:StreetLocality, but not with gnaf:Street which means that gnaf:Street as a sub-class of geo:Feature is not Loc-I conformant. +
    Super-classes - geo:Featurec
    GnafEntityc
    + geo:Featurec
    Restrictions - hasStreetSuffixop max 1
    hasNamedp exactly 1
    + hasStreetSuffixop max 1
    IRI http://linked.data.gov.au/def/gnaf#StreetLocality
    Description + Definition: StreetLocality is a segment of a street contained within a single locality. + +NOTE: The GNAF product definition contain a class for Street, only for StreetLocality. The GNAF Ontology does not correspond to the GNAF product in this area and should be reviewed and potentially revised to capture the correct alignment. In the GNAF Ontology _geometry_ is associated with gnaf:StreetLocality, which as a (transitive) sub-class of geo:Feature is therefore conformant to Loc-I rules. + +G-NAF contains only point geometries, so the GeoSPARQL hasGeometry property is expected to have at least one sf:Point value +
    Super-classes @@ -696,16 +774,16 @@

    Street Locality c

    Restrictions - geo:hasGeometry min 1 sf:Pointc
    - hasLocalityop exactly 1 Localityc
    hasGnafConfidenceop exactly 1 GnafConfidencec
    + hasLocalityop exactly 1 Localityc
    + geo:hasGeometryop min 1 sf:Pointc
    In domain of - hasStreetSuffixop
    hasLocalityop
    + hasStreetSuffixop
    +
    +

    Featurec

    + + + + + + + + + +
    IRIhttp://www.opengis.net/ont/geosparql#Feature
    Sub-classes + MeshBlockc
    + Localityc
    + Statec
    + Addressc
    + Streetc
    +
    +
    +
    +

    Geometryc

    + + + + + + + + + +
    IRIhttp://www.opengis.net/ont/geosparql#Geometry
    In domain of + hasGeocodeReliabilityop
    +
    +
    +
    +

    Pointc

    + + + + + + + + + +
    IRIhttp://www.opengis.net/ont/sf#Point
    In range of + hasGeocodeop
    +
    +

    Resourcec

    @@ -763,6 +890,8 @@

    Object Properties &
  • has Street Locality
  • has Street Suffix
  • type
  • +
  • hasGeometry
  • +
  • sfWithin
  • is alias ofop

    @@ -890,7 +1019,7 @@

    has Geocodeop

    @@ -914,6 +1043,18 @@

    has Geocode Reliabilityop<

    + + + + + + + +
    Super-properties - geo:hasGeometry + geo:hasGeometryop
    IRI http://linked.data.gov.au/def/gnaf#hasGeocodeReliability
    Domain(s) + geo:Geometryc +
    Range(s) + GeocodeReliabilityc +
    @@ -947,7 +1088,7 @@

    has Localityop

    Super-properties - geo:sfWithin + geo:sfWithinop @@ -1058,13 +1199,19 @@

    has Stateop

    Super-properties - geo:sfWithin + geo:sfWithinop + + + + Domain(s) + + (Addressc or Localityc or Streetc) Range(s) - StateOrTerritoryc + Statec @@ -1100,7 +1247,7 @@

    has Street Localityop

    Super-properties - geo:sfWithin + geo:sfWithinop @@ -1147,6 +1294,24 @@

    typeop

    +
    +

    hasGeometryop

    + + + + + +
    IRIhttp://www.opengis.net/ont/geosparql#hasGeometry
    +
    +
    +

    sfWithinop

    + + + + + +
    IRIhttp://www.opengis.net/ont/geosparql#sfWithin
    +

    @@ -1181,6 +1346,7 @@

    Datatype Properties has suffix
  • has private street
  • created
  • +
  • date
  • description
  • modified
  • title
  • @@ -1250,6 +1416,12 @@

    has date retireddp

    IRI http://linked.data.gov.au/def/gnaf#hasDateRetired + + Super-properties + + dcterms:datedp + + Range(s) @@ -1317,8 +1489,8 @@

    has namedp

    Super-properties - dcterms:titledp rdfs:label + dcterms:titledp @@ -1437,6 +1609,15 @@

    createddp

    +
    +

    datedp

    + + + + + +
    IRIhttp://purl.org/dc/terms/date
    +

    descriptiondp

    @@ -1481,6 +1662,8 @@

    Annotation Properties contributor
  • creator
  • isReplacedBy
  • +
  • publisher
  • +
  • rights
  • source
  • email
  • identifier
  • @@ -1488,6 +1671,7 @@

    Annotation Properties cardinality
  • maxQualifiedCardinality
  • qualifiedCardinality
  • +
  • editorialNote
  • contributorap

    @@ -1516,6 +1700,24 @@

    isReplacedByap

    +
    +

    publisherap

    + + + + + +
    IRIhttp://purl.org/dc/terms/publisher
    +
    +
    +

    rightsap

    + + + + + +
    IRIhttp://purl.org/dc/terms/rights
    +

    sourceap

    @@ -1579,6 +1781,15 @@

    qualifiedCardinalityap

    +
    +

    editorialNoteap

    + + + + + +
    IRIhttp://www.w3.org/2004/02/skos/core#editorialNote
    +

    diff --git a/gnaf.ttl b/gnaf.ttl index ee2593e..2d07643 100644 --- a/gnaf.ttl +++ b/gnaf.ttl @@ -14,20 +14,26 @@ @base . rdf:type owl:Ontology ; - owl:versionIRI ; + owl:versionIRI ; owl:imports ; dcterms:contributor "Joseph Abhayaratna, PSMA"^^rdf:HTML , "Simon Cox, CSIRO"^^rdf:HTML ; dcterms:created "2017-12-23"^^xsd:date ; dcterms:creator "Nicholas Car, Surround Australia"^^rdf:HTML ; - dcterms:description """An ontology for the content of the PSMA Geocoded National Address File (G-NAF). - The G-NAF is Australia’s authoritative, geocoded address file. It contains more than 13 million Australian physical address records. The records include geocodes which are latitude and longitude map coordinates with coordinate reference system details and other information necissary to prcicely locate addresses on the earth's surface. - The G-NAF does not contain any names or personal information. - The base content of the G-NAF is available freely online at and also via a Linked Data API that uses this ontology at . - This ontology draws heavily from the OWL ontology version of the ISO19160-1:2015 \"Addressing -- Part 1: Conceptual model\" standard (see ) which has been created by the ISO TC211, Group for Ontology Management (GOM) and published online by the Australian Government Linked Data Working Group at ."""@en ; - dcterms:modified "2020-02-02"^^xsd:date ; + dcterms:description """

    An ontology for the content of the PSMA Geocoded National Address File (G-NAF).

    +

    The G-NAF is Australia’s authoritative, geocoded address file. It contains more than 13 million Australian physical address records. The records include geocodes which are latitude and longitude map coordinates with coordinate reference system details and other information necissary to prcicely locate addresses on the earth's surface. The G-NAF does not contain any names or personal information.

    +

    The base content of the G-NAF is available freely online at data.gov.au.

    +

    This ontology draws partly from ISO19160-1:2015 \"Addressing -- Part 1: Conceptual model\" standard (see ) in particular the OWL implemention created by the ISO TC211, Group for Ontology Management (GOM) and also published online by the Australian Government Linked Data Working Group.

    +

    Also see:

    +"""^^rdf:HTML ; + dcterms:modified "2020-03-30"^^xsd:date ; dcterms:publisher "PSMA Australia"^^rdf:HTML ; - dcterms:rights "Copyright 2018 PSMA Australia." ; + dcterms:rights "Copyright 2018, 2020 PSMA Australia." ; dcterms:source ; dcterms:title "G-NAF Ontology" . @@ -187,6 +193,8 @@ xsd:date rdf:type rdfs:Datatype . ### http://linked.data.gov.au/def/gnaf#hasGeocodeReliability :hasGeocodeReliability rdf:type owl:ObjectProperty ; + rdfs:domain geo:Geometry ; + rdfs:range :GeocodeReliability ; rdfs:label "has Geocode Reliability"@en . @@ -640,12 +648,7 @@ geo:Feature rdf:type owl:Class . ### http://www.opengis.net/ont/geosparql#Geometry -geo:Geometry rdf:type owl:Class ; - rdfs:subClassOf [ rdf:type owl:Restriction ; - owl:onProperty :hasGeocodeReliability ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass :GeocodeReliability - ] . +geo:Geometry rdf:type owl:Class . ### http://www.opengis.net/ont/sf#Point @@ -660,10 +663,6 @@ rdfs:Resource rdf:type owl:Class . # Individuals ################################################################# -### http://linked.data.gov.au/def/gnaf - rdf:type owl:NamedIndividual . - - ### http://linked.data.gov.au/def/gnaf#MeshBlock :MeshBlock rdf:type owl:NamedIndividual ; dcterms:description "Mesh Blocks (MB) are the smallest geographical area defined by the ABS. They are designed as geographic building blocks rather than as areas for the release of statistics themselves. All statistical areas in the Australian Statistical Geography Standard (ASGS) both ABS and Non ABS Structures are built up from one or more MBs.As a result the design of MBs takes into account many factors including administrative boundaries such as Cadastre (property boundaries) Suburbs and Localities and Local Government Areas (LGAs) as well as land uses and dwelling distribution. Most MBs contain 30 to 60 dwellings although some are specifically designed to have zero. This provides an additional level of confidentiality for data released on the ASGS as the difference in data released on multiple statistical areas is always at least one MB. Mesh Blocks like other ABS structures in the ASGS are stable for 5 years and are updated to reflect changes such as new housing developments every 5 years. The MB table includes a Mesh Block Category field that broadly defines primary land uses such as Residential and Commercial. MB boundaries are contiguous and in aggregate cover the whole of Australia without gaps or overlaps. An additional code (Outside Australia) has also been added to represent areas not covered by Geographical Australia." . @@ -674,128 +673,12 @@ rdfs:Resource rdf:type owl:Class . dcterms:description "State and Territory (S/T) are separate spatial units representing the States and Territories within Australia. Jervis Bay Territory the Territories of Christmas Island; Cocos (Keeling) Islands and Norfolk Island are included as one spatial unit at the State and Territory level under the category of Other Territories. S/T are aggregations of one or more Statistical Area Level 4 (SA4s) in the ASGS Main Structure. S/T boundaries are contiguous and in aggregate cover the whole of Australia without gaps or overlaps. An additional code (Outside Australia) has also been added to represent areas not covered by Geographical Australia. (definition from ASGS)" . -[ sdo:identifier ; - sdo:name "Joseph Abhayaratna" -] . - -[ sdo:identifier ; - sdo:name "Joseph Abhayaratna" - ] . - -[ sdo:identifier ; - sdo:name "Joseph Abhayaratna" - ] . - -[ sdo:identifier ; - sdo:name "Joseph Abhayaratna" - ] . - -[ sdo:identifier ; - sdo:name "Joseph Abhayaratna" - ] . - -[ sdo:identifier ; - sdo:name "Joseph Abhayaratna" - ] . - -[ sdo:identifier ; - sdo:name "PSMA Australia" - ] . - -[ sdo:identifier ; - sdo:name "PSMA Australia" - ] . - -[ sdo:identifier ; - sdo:name "Joseph Abhayaratna" - ] . - -[ sdo:identifier ; - sdo:name "Joseph Abhayaratna" - ] . - -[ sdo:identifier ; - sdo:name "PSMA Australia" - ] . - -[ sdo:identifier ; - sdo:name "PSMA Australia" - ] . - -[ sdo:identifier ; - sdo:name "PSMA Australia" - ] . - -[ sdo:identifier ; - sdo:name "PSMA Australia" - ] . - -[ sdo:identifier ; - sdo:name "PSMA Australia" - ] . - -[ sdo:identifier ; - sdo:name "PSMA Australia" - ] . - -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" - ] . - -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" - ] . - -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" - ] . - -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" - ] . - -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" - ] . - -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" - ] . - -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" - ] . - -[ sdo:email ; - sdo:identifier ; - sdo:name "Nicholas Car" - ] . - -[ owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] . - -[ owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger - ] . - -[ owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger - ] . - -[ owl:cardinality "1"^^xsd:nonNegativeInteger - ] . - ################################################################# # Annotations ################################################################# :MeshBlock rdfs:label "Mesh Block" ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . :State rdfs:isDefinedBy ; diff --git a/images/address-tb.png b/images/address-tb.png index 04bd67f765ecc432cd310a00c42e3cf288b17665..a7dfb94507664772142f3864f713a31977c0332b 100644 GIT binary patch literal 13929 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 diff --git a/images/gnaf-entity.png b/images/gnaf-entity.png index a52b515f0847b690181a51a20acb2969322e5728..f8fc89328164a4e75aaa65b34309e43318bf0848 100644 GIT binary patch literal 28053 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 diff --git a/images/gnaf-tb.png b/images/gnaf-tb.png index 495eeab108fee4c2b114a4c4bbb0a04c977b95ac..321f5895f3f9d2e8e98cc302febd0d136490039b 100644 GIT binary patch literal 20048 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 literal 16762 zcmeIabyU>d_b-l#ihxQ>41$1&G}17lq?CvfQX(bY9it#1C=4AEBi$g~AR$AKba!_Q zHB8+%@;uMyxp&>We!q3^UBBNy-#=Un5Bu!1^L6&w=e!Aep(00o+MdFht~ z1Q&;Ze;(H^0weDe*a-;;q@)z2rCzxuZcP;zPRP%*ts|L`7b9JGKES?%-n|RFG-;RS z@}udhAJHXzo3rrGi>2{G0+h6zDgsRe)9p>7`%H}dA2a9_;cAoja}1>L?~zJFAkPdg|*$G*L#nDXUa^gT#e zX4^feTxdDC0f#$;K~TqF+$5F`=dD#T->{UmG6p5ym-8f4iafX&2A_hz84V8r2QF=F z8>)CDW80I!-^Aa3OQ-rEzAZM~cG{mHu^xNebRT(az%aU(^&7bw4r(YvD@#V_qn??In__-)_*#(Mvi5!1M-8 z@z@3aV|n3UA7;ZH-!<*=ZmEnmSwo=(f6N8()lj1?Q-g8r&E(ka;;U?N(5Y=S_tbo4APjd)DUpVO3$p7}o@@r* zUxKoMc>3(^M4m**Jzalt_xhcYgGgbcXXF_D&RN&RFt8=#uc6L83#3xX*<$fzbK`9;2=$ zQqvqp2;G$A+jn!hL33D#pWWRcKg};NAs2z8kLm0>S)D=zr3!o+~hzUt%kuse-B=8B-hK8UxwyfT64k48(h6{%;tU0=>4Mn z=8(zZs;oxv8J|VKeA8=~;@zS+S`_n8mXZ=A5*(L;K{U3?lE$43a2TzC+eqSyX~?iB z5cbdy6E1$&aS@9ARz4r7Prz5bqg9J`x%%<@m-u#2Wi5O#V2RWwX8{NL7=Fog-fa#1 z$Xn}v%QM^5p%4sj&7LO`Zs)gm80!X6L10QWFjaaBHP^L%O$GMPPlzzogy^f1_fm(T zOY}h$1;nh$EV1DIjwke8KI9PmKs=$6@T+6ie3Iq&>7;Q@SjkgpT|8J;sDTHfv}uiD zC0mi5E}#HsTGZ8+m38J3KIx#Sh!aKhT=r4;f@=- z#ozjNfCByA+HvuEt&e^jOn7n!BvQH$Z*PlTgf>lQN@|Fgfb+bzj~;0+L=fip@=^dv zHHWsPEm^Pc@_5YU{xedz{cow*VT8&0&~SJ z6Xr1z*FQ>%@++fS0W%W8HG$j>#7K>QL4m?#aFJa86E#oUjiqpJZQH&z<#OIS`fD)^ zp*h)OF8`mwbjtTKib4B?=0cXbH$J`=4*jz(Y5$<`;+z%{dk8iREU&&07HGtoE^zb= z$7uax0jv-9KEZ7D_4uGMbL)FOQrLsSznG}DgW#N>5>AdzPZzcfU|=s%yk~QFpw#Ps zC^lB03s+_5{V+|TYkJSlbR_MU-G{HywW-~@%+)pjtEoK3W^M1-&{sh>T)~>heU8=b z``f2MtlODnlB^TBDAhj-zTt!D2B3`Y3PVo-abR%V>&ZzF(J%_EBZqP^{WYeOXh3TurtXC(~^Lu1e8qKf!T09WiW*(1>`Mrzg zrp{?yjBs$Ckb|PQI!;A1-))P|_Mnh(Vv>^f4;U#_fSJ@kDwQJP?AOv&)szClRxc{= zw6?h|+co)%D(kxR)drkHXHO4EJxiu7mj23hrkj*xw431WMD<`nd;eb;DDSxuViutr zN`o7iep^@zX$~FU`vhXw%=AtBZgMyE#4G|Q0v&LV=qhSTe?2Gjx|)(saI;5UhvC)wwo&@7QKy=!>6?j1qzo}6Ru3j;Tc)t8nmyfgeXrYQQ{Nu9 zc2TrOANvsFb{YAVw<_RJg)GYNb{(FxoZ_Yn&`?rGr7_UBhduwD{r*849TtIu3dS!_ z)S5B&GsQGM>{4YsCt(`JLTmMP21$3u-kS;KJ1ePRtmobbddW6$?Zr0woJ*v0c$IS+2C&JzCE*QGd;o) zIvpmYrM8ZOE{=^69|tD=ZqL*uX{JEJ7bY$+*w-JSx(p&`F7TXses;5G?DC~j5a zbSr=vWpo5A=v|S4_rA!o43+6Jz-_Q6hI_1aCuVyi6!S)d2Jym#V=YAGPdlcoc-*|ybvn-&esLo{|{JbvL?$g=Jeb%BJsdf0CzKcDz!5(eg~ zSNe^5RIB;~BG!moTWa}KxIMyB{~?^w2ukqOu7pgRwY`Vx{BQksZ8QFVqG$2xECFHN6>RrGM$`0!`@2WjQqz zGm7An4#g|7vv{CzHl{4+7u$1-pScN|LbR76co*Dmv)*8=-{2m3q>Ozq4$Jz&%+O=>exIOG4Y^T>uITSArUhI-X`4OS~&cwJO z&POzv5n!DFo_~A$N?0Ef)UiUU0uz^KwhF*Vof*o6A>L&Bb!0^%{&sR1HAXZX+|0o< zw-!kOzMpnQ5ZI#6g5@2w`<-h(FRc%bCHS^qH7zr0L7;0vmPh;Er<=hnIA7nu#0JpY zT^Rywk@Zo14@Wro%wc(p%%zLomTeFHy+*KL4>R!Tmwq4vdm~1r9mX6~yFr1R^nmFO zC}i{H&ev&%b~n2gU9gPaokzo19iQ@~If+9Osa(y(YGxYhz*!N_roQ6b5GN64T*UIm zK85~=xN|L*K=DgEhC>>Ure$XE4t1ds!pio zzU5Qv7{^#>P&=vPf#O@cuAH;FJqQkrUv{sH-N>;Ic@gbn;0(Dg&fNlKDoaJ=!<(p>CbLyfzJbH)Nw=;akhfa_ZUBQ@czwUfweXa)bQ?_0h7B9r3nBk^#*MF@X4*n z)R{BOf2<+ttvRaj>f|?f!3p;?SKX$YPNw?xxoI*a98>%jeZK=_oLSEKVya1diX>La zkoCMYxI?;C@YU4*J`(P`70G%QH5E@n2+cy!x|wtIKUZ6q1j50E{Axw&uNu82!6%qj zW0h;BQK2hP_X#uUT*0}ZvWhDYC4@Pqw)!8mrB|bv>vH?2h8IM^0yWKde2g@oQJjP3VdZ;Vh|Yok)aC19nIM`;@HPqcpw6dUY7fW8|PGQdnm`A zr&^p4%>IbcfpGHNXQ9eKjQxW)1N>3cfIQV!lI%PAKQhq3&CD_!R`=oN-C{S|>bpwZ z?1fJCVv@N_G5dm&B>PIXvvoG+(??(WIgnY4&;j#wRlnnDt*^`qe@$Qcbyub@<3nZ2 zmhb^gt{PMXLo7_K@lLIJU{*w2F#8)t5Ye5V&TgB8VZ|8Udh9@&fg-IPkb-Zr!fTi; zZ~}J}_6Y%Rb_q*9BaM|6o`sU8t@Q0IsRlM8@uyw0G7E2STN@o<HCV#q!48=U|V|SV!Ge%sGv4@+d z52X1Gh@*u=TB-lUsRrA9@RaNy@^|8pb=J`XuPfTob+Bj zh8Hi;KYHoN{cg}X<^%H-jwuzHAau{*YocB4=Hb&Nt(~igoyDIb&f_Lt+J>?#5T!)f zZ^AvLBLnif=h?b&Lg%R2p-b3ngmC>z57`I|-W_kQM6BG~`U4JJSH7Ns1NZ1xV1E}t z*r+nwp9jy^1;^(7W|2@e`1On_GCwUldXie8#h|(=_smFmBn1G9Sz1^Xk0qL=HVI6b zxIDIFexK_+uFcUWUKl}jJ(MmO8+Nw?k%loibcM#nf)i!malx6-j9%vLRcN0OXdB3M zqq4t?cSv9w&n8BVuL^iH-CP30mV=83tts@}~>~^6Kf-=MFBj_sX=TJv_0_?A=>nv76R9 zks|6dx?(LL(|N9{k{{d*6CM$SC~GB?gyXki0aSFO`x&Il?O#1o7*T}Z*9{4f1TEjmFQ*^Trs zDgXHXS1wo@ZcF?4SWrFI)|AGI+5Kv|4)vt55>89%a4W3&+-Dltd!jBA**cZ+qBBh1 zr-JHObc}x^8nYFgYa2)|`zHg6uafi~Sf>GJVixD_hMrd#Jtq56VJl^vmdvHCu+(!# z!$0qdu5h-3zV~3)yHoCKhyStcyK+$K02*I6$_oL-De#ss{Uw^DG~7i}bu+G%tvl=H z-?WDesT~qCKL&Ct?-QjE{5=}YkXk?03u$IHN7841>o<~Nak{n{JY1m_61ZvtBMPEV zNp;EO3MR>p#aR}wi(+Gc4x=M9_8X#=Qmj|~pIc46q|UIptJ&A51&k>KSc+dR=Bq2}M2;2l8`xpzT+L$8xX3|xXx~tR8>g+J$DYcWpMqk!ux#P%F#WghC zwT}S1WW?iS5U>aTrPCDyUM{GLJfHfIc&P!*JuZJLVNK^|UH64eO_;VOZ8ys^t50&B z8Z6spj9Q@lBYy&%wzD3hFW``VDBw8z7%8ifWi03hS%X zKAtCQ-3n~$mH}OXBd%>8zh<1`V?z z;fujsdcFTQ-r60uo?z7pc=^DKaYRSemNusz+N6@#4}GJ0kfj%=IGZ+JDs{vGqfpBv9z zH|ihwI*k7I_JICf!{U~3l6|}{frwn* z3n*D$F?gs1cogJj-B=q>-W;&ah504)K-B4aeTU)Puc?!}_M^_Nu%kwO5QEP2##jVa z7hhc;pI@KXKX>Xzvh}Knx^dlps}_xxJ~!#>yPX!t_-vlFAO_Z->Zd8m^VSaS-R(a#vN$V;J%%uUl5ah7_|+*Pv^w94L?$%Wz1{Jofh{dZ0X*) zs>2o!Tqp5mA?Y*xYRQ3%YMv*nn{|$3sEL`FX2fDKnmju*g5s4BhhS9348C8se@7w4 zjK5>y9Rk~xJcC{)_o0Ly1?A=d2@n!cvQ6LNu{5T?Uo~poHMT{|{jnKRQQ5f1AO_0+ zcIJ@HhLp1&i{ZnP1RyZ<%2V~~$NC>&9-hmr!@4L-Oyo|= zejnAAPzG~-!}u@27?E}tggtfXk8#-->`LFw`~FA3_YXE|w3Dr~!XyN;B`}_KwQYA1z&xHjgxo9))rAQ!I4JLKYNMDjONB(wIUkqCOe;G7 zTeSfs*ay9J*b=A;>NS%~C3;}HfSxF^`=oj~_#kzFwQWIeeaUngy7oapk)N|5Ug#zB zza15V${Ok7m?Hl&QpxccBn$LVdnveLNcesgoW1Z;LD7u9>~kEtM7c za?ry2C9yEpYh$WhqCr!OTr~Cd6lS0}HlY_}KPX&?J=hHl+OTyf-+>JMd)d;W#>=I= zK#O&a0!!K<3kx7F9RKS5LCB|bu}gUo+Qr|0&ur>tuELO*f!M$F)a>2A$u(?@QmK8s zE$^ac+mh#spxxywbQPxaVP)tpwFb7!*Dt1k2p#_+4x^JB7DL->m`~(6Rl2^9lka@B z8QPcbds<}8?+_WWl-LN;Ek=6RenWop{0XJd?68C*b!bE}F74bt=eE8jmcCkJh zCnnX-TU$2%TXl)U$*)ef`>3&+=o@rvp25M)6vXQkTkDdClYR_D!dsO;ERjA;LB1<&^OZOAp<{PU=XNam zwpS)NvjpwZ}091d~BkK-}bNhWlO5+U25!s+CA;n!d*MAIsRZb zWJl^TXL>>$RqwsJ^@OU$luFE`&%IbHQYxLFUhW3nCeX_f6tDJoWwzt#h7nGmoo1fd z+4-}GPuMs7zGKZqp2R6EfgD&lIkt&t`l$apIYHa&@zhVnZp- zkVBMvd&KV6+D)*o`na3HIBt+jGcuGL_LVp-w%BF!!V1}SwHq|c&;#}WyIR{Wgsr$+ zJTf5x1nN_1-sz*MDCBG6dlAk?Gu+xdhWC`gY#E9ynwL9t(ifLO0tjwWjavAO zv9DB4Se3`ciE{EaY(Ah~2aa;1rHHPb4p57=zCJ(7VZl>C2;$TTAp_@TA?Jg>f$8}q zFlL{b_u(&1$~uBDw^eMad`4Lkf1{47W2WIxn#~jUtbW@?h3;%PCtV-s#P8}r+_~-V zBio^)|{Vv-!>Js=|kj*3T`z z?=xHMN~GUav?1(hM-VfzMf8&V*y}TkgudLcM&e&m@2YxE*durBnINs`-yFQ_8AztQ z=75jRlT;T2K!xsYibc+<8}DZolGVW>q^{QJ>Tye3gu1d+HM2I^B56gR)-CNN@m6|! zV>MirrnsS9oKY~wsI2&Ej2z3a*T#NEA}GI*$NVb!KJ3OSbRA*f=2{~eBDoc6tNf7V zvY`F0tu1j~sh$vY2Pi7_Bjf(y70?MVyO3jwKF}XBMbG=Q8XuK76G{B^)p5w`PtXRQoQ4k z@xDJ>=~;++LD7QHW_Hz*aB%h$=N6@kYj+x6II%CbSZcn{g5X!5b9;;R49YRv&hR=8 zVAS+Hvp@T?(4zb-1`m&IlCL@VL{A)-k(9REHuf|ijtj(0lkrK+kij8>hZ$}ivbgV( z|_v=@#v{C$H?Vwlr7{(Hh z%QOfO%oj3KlXbYuFgkVk?b!p=?`X3)_S0ju{1kqH9hHVTwTAYy0)kLRiNBC|?5m6O zZYKzYAR4m{d(d96qCwq-_SF?DSQt3Cpl6xg1<>#P^LVMV0EJpvpX^{N8Qj;2iYfe6 z1@{T9AKKmbl)c;$3HH!HEq`0QI+pl`5#ZfM@wlQO`i@7j5z@A)UMw_9{jt+4LO{$- znR`;kQ`cU~<5sI_!!cC5wh9r+xWeNeorp9 z2y6Uh0}kI;;b0$J9di99Du=No=lhCp*0_bPm$=ZY+mZn$9R5*CLt)BmNmRz_3!qh& z73f-Xeqpxj(~L0X>Lew=6zdIpy2=VeDaIoys@H68G6?={Y8M<#8tq8#@MgR4fF)fS5we%>=S= zZ0mGva|y8a)hoke|e^U(+C7SZ^jTC$KuzJCeP*Sq%bnNr+Q= zSR(mjz=C!y^b4y89ngfVCqPeG7TN;I;%`;imy^5E@$6n?2VvxiIIL`+<ufD7UB*?m3FIZBOA3EvK_a=Ey1(XC67a=AJ(MZQ^6sFF#MSceJ}sFN8V;*w@;@ir z!-48cL3^o9ot80iT0>o+AkC_3(n?rl6tdw^4@1J!SYw_j|-@!>AtCE+iEOF+L zI~&eT$Iz+nLGB&ImtH7{OZx%-cv=1)RQhui~EAUS3O3flU{t#xeL`p^%AO8SbMiTB~&g4{xEPq)9fw#&kA z2w6#nYUGAFL_Vcd(=b+-CcMDHVN6$`qPE29-<=-Sp81{RV&|(t;WyzIyOeKKE1<%Z z?ddN^nYumWF&(d2@4s10MouzDJ}&h{B$!@~NYkNO6T0&mUq)WonBUIs-^e_6$i)x3$ zH7Qp+tpok`NM`tSavJfHN32J=Hs+-$oJ)w-&F5eH;Q%knG#<3 za+6;!d&vG^tj598xy)u?+4-)ICAkc|Q$^V`1ACt?mE;4sL#i*1U*l(m8naFL^ zURi>ozeejANu_5T_nU8Sy?8{=5#ovAwnZ&S3Uw7^L^1)r2NizXPt9vu=D%w$O%NT| zq;=+MpmDC_Zd6gKxbL?)vAp%|sfG<+as z8`t$I$Mt?IgiMPCp3Gg3cm?|9d0uUsH;x?=rihlHvJMkz+q?(S9UQ&+aC}I`SxhOz zWzbPA=`LXc#w8m3l%hQ3%~7d(U*XI0q$6E&#bqsvO4LGXjG#J>!6kQ8;qH&)6+ess>Ob&GuykyuU3`4%^#dD=3WFna$;!S=bn5JjUUQ?K?Cv@YBY8r?P zwkch$EA@>n#-V&77Rg%;G5C{k2lu}2+pUHw3;+|4{vN$t#+!7aX%Qk8CE6ask31Gf zZ^xntoa!Q#wIyPcogDQjKGRd!4=xIUzs-2xQobKy<~SQEr!6tUEU^YMfZ$INjTkft zvh72HmwcpcKjZRF7~c{U*4zP_sBwRPpkd9IlP7^FcvbQsk8;Q6_4)nk$W+VnRQ^S& zbb-_Pr%J5{c0s2eiF{Viw9DNL^6vh3H>^HLsh!40dWYY+cl^pAK0yP`D|ORBmuf|G z^PhB>)6pLu3Y&}ulvwPAY8=8xX4ru47{Bwqgwpk z7>Bo-a?#ONZm5^u5-KzmDfw^e(q1dWFjek1(rKHZY!s~g(%TsO$-8GQWw-K-oLBw=W7FIX(2@V3`uC@R9E8}TF3C#yco`k!g4 z2PbxDHLHKuP9MIrZXh-pdN+&$)nDSqIPOU9pb9Pfv)ZuHx zBp;#+Gkau#uIxpGzEiP z&wPHfm!E`7UzfB$=r!=DhJk?6KWugv)(zrF#M5`zZT= z-ldtDKV;6UDRAQOlW7^D-&TTjyl1MB4qY6IKj^ZSGSH2MZ)}(X%G^PGU5S_Ro=rhg zZ|s3GRgp}MW7b=S{dZ#k?+w9he-EHVlKl^S!B%|G$TktEWsTcq*>GhR*fY6BzAyNcTGF@j_#uA_;y6Mx&q%4nnvC98-*O zC*&c>oZ=%sai};WUBg1)0k_rVG*oNu^y|oJW<(LsWPC9e4C|3kDz4t^;$QjI`%=fC zPTyXJEwke0$1l_UnZT)U*|6;}))CJ4nY78#6SZ(!WryA;ECv!aT%&vyZIF7?o`U3{ zDX4AR_??$2bNNI22Z3hve$esBH~p|4UP1l}u(QOT15t=B@c`JLARy4;y7Q()l;JfbtdMH0A(qxrbl{Z&erMz^l2VY)R}8b`f@ zqw)`9q*Y#q`bx&?OsJJU#l?x33nz4=7E%z62T$AcQCTZ8`-FK9^C-)6d;W8wUdMGe zzm8;^EYGwKv#Zw%rS|MSl#xZs8KxOn%k?bqf3qe0Sv=OHM$VxBjW$2t4bz&wwpQJd zH#lN+jKB7@34;kwE{tiwF+q6bw9B(!TiXCzQ&Ea;V8HGrrWFNhKYii2Vvl3Y0Pg;< z-QbCM34h1b29z#mjcqS1)~7mT&}C3uJPoCRp-!Nun^|Ky{nL}9g~HyK39Yaey*Bu= z0})L$qr^LU;nqwpao3}=a&j^vfw1(98X8_!;5gR@hPTHu7u6QP553xEZHHPx9}R68 z#Iw+~!antbxvkfC>@?cmQo&=ts=lN1S2C#34cgFk3HBUkNJE-Ywxo__NT zGA&*ws9zb%Dd=QK>ht2YM-Kq3jbOVWu!v+RpE!+!``q-WFu=e6$b1%efQq^KT-t1o z<(3;3##jE9kp4CBF6pm*O)YOc@nLr8!@MtlZ;?PKs8GC;iyo5sdkY)P70kMko7TCW z+Q5+YFKN_FoYf4V>i<$GyQC(&2+rOj81?$go1x`bQqHfm^#(^4{#fxp60L98|I1+i z=i(G1e@Tm*ZfN}E1JpfdZgG1(le_R-DZe+LYSzANoJ;?mGQ|eKv~w}DWwH|*s<;xA z)-4djL+v*PnFf^&ZVt*Lt~f`6Kiplb{%*5R_<~u2Y7qEv!y-fRJMa+7+x$U5zFJap0QIcDO?t07HaWAV104K`$zSrvSQR*V?*wE#!7y%GDhR z4Ek(9GjlSUSp7JUgoJApTQK(8BedIT9FO-HL4~3P*DJ>h#BqYh${EksP6K>3LGDwp zIxaCUl4k30Lp~|Y^O4}(uwD$e{S@i58u5shP0KK_&nL@N|2YD>W&e!_lM}P8T;9Qj zRhP#YyFq)=@vD{7+(q`dYX+7_3D2YZ5k8D}J*O5YE(4EtUR3Jis3ltL>}izMNrj7U z223Jbd;{5fUmP&lJH~n-Ra>&I=zw%lpD(q|Zq*lTvwU#3wMdUT_2fORsZ?aRcE+I( z1#00fhS<+pYddU$GNas9chDHl>ZU%uyM^-Ic=@k~QZe#h_g2{HgE%-Vrw8A&6PL8N zZ-hpRhusIvXSxVIL1wM3QTXxG+R}>o$fm=n`;F`z{P>Y_Wfmcr+r;?N=|O4s4$$u9 zeZp6nt}Vs-xRVWT?k3wTwcVpxYMJQOJHJ-uSiXoXY;29FEJ2O0-mS((Ob1#vTw`wE z6ngyfIrchxT2X=rUl`yo6W~E>5kxV>cg~JlB?@ySlGy1kQhr<2`Lo>g>>ULG&I9D= zRZuOC&nrchIqxc90?u9!b)$>}eqITed1u1f>**b!7cd^*NuZc23jn%#cUlKu1rFHm z9eKEJ$|KmW3kd^{{aL@Oc;PC9atYC4aW5wdwldRt-PPA#-WZYIvpjHKB8_{7`*3<6 z8OZH>;bCfv??YmvK+J_#(t%fAum2*MyOjM!lE{LBl@ti~v!9$57@7%R&`(jm+FY{Q zpueCcTX}_oO!C9?|76ORo1svJjpffYy0)^GA7x|@@7|r|$)pd+NP5xtn;?*Pi|5hS zr{I9A!e7nd%q{)@vl?G39CLx#j(Q-pHZbG7c-`2(mlp>9eu2bj+s}wFW|{!zp7~AwNKpcZW)UVlUN7K#+>S++Ni&Hi3MZ;AM{AxmaKs- z`o|4?NTkjqy|mfXiCQR`Czs`FlwgC1?`GQUgkdh!*#m0>^lOnIvaBbe&$en^{TwgC z_YQ+lX88*=O%S0t($Qf7zb^o8~Wslv}y43~g- zfs<%HKm9e)Y)3$XY<4DZ_&NdN28uZb5Xem*1l&1q$|Zv5Ir#f*>kTB^P|RKhW47zw zrzQ(e1deJtDyu*Lr8Ne{eAfZ-%!%jKpJcjS_&oVwwFgWLqqOq2TVf`m_ETiA&GWqe zb~@oXRqI=BSp(OD$zH2{LV=%#N@5NOyl_ZbEJXL}0FX_d5DDVnjn5sikEt^QIqo0< zK=KY_xnqQJe=axwysJRSc?#NOlA%vY;|`>?t~Bn$nUm#~fe&LY%$?AL`@EBfHkqki zi;oAVz6P$t-k-n@Gd*Da^kVpX5Q0b`UKSb**S66R>DUL;q}&!Rvf=uhL%5;&+HqqmnIviB zuQZFDQ2P4#J3-Jzm1Su7^=vX&<5tLeljOm&v+jt?fZ9r3&IS=Z1HHsb9c!>bS`i22 zXR^pw^FTv$wpRjw%y&~!EG0GNENBh2#;;QlpT#suOTS9?`}ZG!$f1sLc`EblOmri+ zQnfeb&N`PEmi`y1^1s9N{~`PS4_R_=wx!fS&|6!C*+9AuZrzbKzMTz(UD-3rk8j#R zPZEr8KZpnZt4jH?za8|mp`Gc)MbxFyB6#WNTbGW3uOdU6AC)|K{h85@5Os;sP>qtt zb9DGvVJs<{_5vckg1{y&UM9dY}RB$mkH}xtqvE4d@3sc{Kp8pk5EXts0+PD9%0mX%pQ0^uW7QV zdK@gn0#u1AB&*2D2){OE#8eKs20~%`a@K>Cc9p`_T%1#6&}XkEgx2Y@9b=#aKfO_KlU8UTuA%GMJkM>p2*!|`n)jC>_xWURh27zo z=taI_h`Y@6M-5ltOOg8l_?Apkjb2bJMHY_(svsM)*S=yf|G^G3s|e;zhvP~gd;-4p z>&tz-53e@^z9SpY=A5_xsDSdoDU%wuUQ^zT;6NzC9Y65CS;mXMgon3Ph#3vMexG=pU}v*Bdx^cPsPU%3>QsAf6K23| ze*NO#OSRUs26ge^&d%gdNV%L7RV?Z_@ke(Tp`f{M?+t}30^R3CPmcwKixpw199&W* z*Zy&vWg@tFq^2E(<=*>*XtA}IU7adUJH9a4D(3(^X==Yb7=)NP>NUTN{+*ETpjZ3- zhsq)p$e&podn@W%N_(2=KlK&gPn2O(3)z{gtEv@&quJbmZviRSuht7jyGPR+Y%OqA z=6CwfYk|C}(h zjIynXQ7(VXS==OvdtvPXyyEI^n`jFKd9ASp9E`#yXS*@C3*In8(%F98z3upN+*wWM z=alSKbj|=1)&#r31q&Q8>`$QH?l`c_+LzR?f?-y0nRW4VZhPkzlQ$H690E% dVggUf6VaJdplUP${7nS{1sN6T!l!S2{~HI~L8$-$ diff --git a/images/locality-tb.png b/images/locality-tb.png index 416d59b652598004bbc3ffb7840e51947010e2f3..2d6ab00f7de6408888bc8c05f7d4b474a8ba1d86 100644 GIT binary patch literal 16684 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 HrQiPo*@3Fx literal 15222 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 H8NB>&ZNOIq diff --git a/images/street-tb.png b/images/street-tb.png index f07c1ad9170698af8c4c39994816c11a71300487..87277b535d19fd0e9c8fdc034fba713ed9fed213 100644 GIT binary patch literal 19385 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 Do^rh7 From bc053a518d20506551b3f4461c36fc6da077de4e Mon Sep 17 00:00:00 2001 From: Simon Cox Date: Tue, 31 Mar 2020 11:45:40 +1100 Subject: [PATCH 4/5] tweak layouts --- gnaf.diagrams | 591 ++++++++++++++++++++++++++------------------------ 1 file changed, 302 insertions(+), 289 deletions(-) diff --git a/gnaf.diagrams b/gnaf.diagrams index d16f4dc..70fb645 100644 --- a/gnaf.diagrams +++ b/gnaf.diagrams @@ -6,17 +6,16 @@ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#"> - 36 115 + >125 73 + >174 268 + >416 @@ -25,39 +24,25 @@ 36 88 - 58 - 463 - - - - - - 36 - 124 + >104 199 + >288 56 - + >281 + - Address Diagram 36 107 + >138 284 + >192 117 - + >672 + @@ -65,12 +50,12 @@ 36 104 + >93 177 + >290 504 - + >108 + @@ -78,12 +63,12 @@ 36 103 + >118 115 + >168 111 - + >168 + @@ -93,25 +78,14 @@ 105 191 + >300 273 + >459 - - - 36 - 134 - 286 - 481 - - - + + geo:Feature Diagram @@ -119,26 +93,25 @@ 36 93 + >88 206 + >227 441 - + >13 + - Street Diagram 36 94 + >125 237 + >154 271 - + >734 + @@ -148,24 +121,23 @@ 124 332 + >50 426 + >626 - 36 164 + >104 208 + >152 652 - + >497 + @@ -175,10 +147,10 @@ 93 358 + >93 268 - + >420 + @@ -186,12 +158,12 @@ 36 88 + >155 126 + >388 358 - + >212 + @@ -199,27 +171,25 @@ 36 122 + >138 271 + >351 615 - + >738 + - - 36 125 + >95 174 + >497 416 - + >571 + @@ -227,25 +197,26 @@ 36 104 + >105 288 + >313 281 - + >478 + + 36 138 + >124 192 + >306 672 - + >86 + @@ -253,12 +224,12 @@ 36 93 + >118 290 + >119 108 - + >125 + @@ -266,12 +237,12 @@ 36 118 + >95 168 + >495 168 - + >399 + @@ -279,31 +250,30 @@ 36 105 + >89 300 + >231 459 - + >425 + - - geo:Feature Diagram - - 36 95 + >121 417 + >403 422 - + >471 + + GnafEntity Diagram + + 93 15 + >358 443 - + >268 + @@ -322,26 +292,25 @@ 36 88 + >122 149 + >271 36 - + >615 + - 36 95 + >124 419 + >332 594 - + >426 + @@ -349,39 +318,39 @@ 36 104 + >94 74 + >237 520 + >271 + Street Diagram 36 125 + >164 76 + >208 757 - + >652 + - GnafEntity Diagram 36 124 + >88 228 + >126 109 - + >358 + @@ -389,146 +358,190 @@ 36 138 + >93 273 + >206 761 - + >441 + + + + 36 + >40 118 + >92 41 + >81 148 - + >471 + 36 + >40 155 + >143 310 + >212 235 - + >446 + 36 + >40 89 + >114 153 + >214 448 - + >46 + 36 + >40 105 + >95 235 + >138 501 - + >270 + + Locality Diagram 36 + >40 121 + >110 325 + >347 494 - + >465 + - - 36 + >40 149 + >165 298 + >419 802 - + >239 + - Address Diagram_1 36 + >40 88 + >168 379 + >82 717 - + >13 + 36 + >40 + 106 + 290 + 268 + + + + + + 40 124 450 + >466 805 + >459 + + + + + + + 40 + 131 + 343 + 47 + + + 36 107 + >105 386 + >191 590 - + >273 + - 36 134 + >115 199 + >73 802 - + >268 + + + + Address Diagram + + + 36 + 107 + 284 + 117 + @@ -538,9 +551,9 @@ 104 374 + >177 467 + >504 @@ -549,12 +562,12 @@ 36 105 + >124 194 + >199 572 - + >56 + @@ -562,12 +575,12 @@ 36 125 + >88 49 + >58 550 - + >463 + @@ -577,15 +590,27 @@ 103 69 + >115 790 + >111 + + + 36 + 134 + 286 + 481 + + + - 36 112 + >103 367 + >98 285 - + >292 + + StreetLocality Diagram 36 138 + >112 115 + >367 541 - + >285 + @@ -630,12 +656,12 @@ 36 115 + >104 256 + >176 552 - + >173 + @@ -643,12 +669,12 @@ 36 103 + >149 98 + >363 292 - + >42 + @@ -656,12 +682,12 @@ 36 154 + >115 363 + >256 440 - + >552 + @@ -695,12 +721,12 @@ 36 149 + >154 363 42 - + >440 + @@ -708,147 +734,134 @@ 36 104 + >138 176 + >115 173 - + >541 + - StreetLocality Diagram + 40 - 168 - 82 - 13 - - - - - - 40 + >36 143 + >124 212 + >450 446 - + >805 + + Address Diagram_1 + 40 + >36 106 + >88 290 + >379 268 - + >717 + - 40 + >36 124 + >125 466 + >49 459 - + >550 + 40 + >36 95 + >103 138 + >69 270 - + >790 + 40 + >36 110 + >104 347 + >374 465 - + >467 + - Locality Diagram 40 + >36 114 + >107 214 + >386 46 - + >590 + 40 + >36 165 + >149 419 + >298 239 - + >802 + 40 + >36 92 + >105 81 + >194 471 - + >572 + 40 + >36 131 + >134 343 + >199 47 - + >802 + From 4c3e0d963373dc9f8f083f6fe7860064b558a0e1 Mon Sep 17 00:00:00 2001 From: Simon Cox Date: Tue, 31 Mar 2020 11:47:13 +1100 Subject: [PATCH 5/5] Remove local copies of imports --- imports/geo.ttl | 923 -------------------------------- imports/gml.ttl | 288 ---------- imports/prov.ttl | 1320 ---------------------------------------------- imports/sf.ttl | 210 -------- imports/skos.ttl | 288 ---------- 5 files changed, 3029 deletions(-) delete mode 100644 imports/geo.ttl delete mode 100644 imports/gml.ttl delete mode 100644 imports/prov.ttl delete mode 100644 imports/sf.ttl delete mode 100644 imports/skos.ttl diff --git a/imports/geo.ttl b/imports/geo.ttl deleted file mode 100644 index fdd94a8..0000000 --- a/imports/geo.ttl +++ /dev/null @@ -1,923 +0,0 @@ -@prefix dc: . -@prefix geo: . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix skos: . -@prefix xml: . -@prefix xsd: . - -geo:asGML a owl:DatatypeProperty ; - rdfs:label "asGML"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - The GML serialization of a geometry - """@en ; - rdfs:comment """ - The GML serialization of a geometry - """@en ; - rdfs:domain geo:Geometry ; - rdfs:isDefinedBy , - ; - rdfs:range geo:gmlLiteral ; - rdfs:subPropertyOf geo:hasSerialization ; - skos:definition """ - The GML serialization of a geometry - """@en ; - skos:prefLabel "asGML"@en . - -geo:asWKT a owl:DatatypeProperty ; - rdfs:label "asWKT"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - The WKT serialization of a geometry - """@en ; - rdfs:comment """ - The WKT serialization of a geometry - """@en ; - rdfs:domain geo:Geometry ; - rdfs:isDefinedBy , - ; - rdfs:range geo:wktLiteral ; - rdfs:subPropertyOf geo:hasSerialization ; - skos:definition """ - The WKT serialization of a geometry - """@en ; - skos:prefLabel "asWKT"@en . - -geo:coordinateDimension a owl:DatatypeProperty ; - rdfs:label "coordinateDimension"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - The number of measurements or axes needed to describe the position of this - geometry in a coordinate system. - """@en ; - rdfs:comment """ - The number of measurements or axes needed to describe the position of this - geometry in a coordinate system. - """@en ; - rdfs:domain geo:Geometry ; - rdfs:isDefinedBy , - ; - rdfs:range xsd:integer ; - skos:definition """ - The number of measurements or axes needed to describe the position of this - geometry in a coordinate system. - """@en ; - skos:prefLabel "coordinateDimension"@en . - -geo:defaultGeometry a owl:ObjectProperty ; - rdfs:label "defaultGeometry"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - The default geometry to be used in spatial calculations. - It is Usually the most detailed geometry. - """@en ; - rdfs:comment """ - The default geometry to be used in spatial calculations. - It is Usually the most detailed geometry. - """@en ; - rdfs:domain geo:Feature ; - rdfs:isDefinedBy , - ; - rdfs:range geo:Geometry ; - rdfs:subPropertyOf geo:hasGeometry ; - skos:definition """ - The default geometry to be used in spatial calculations. - It is Usually the most detailed geometry. - """@en ; - skos:prefLabel "defaultGeometry"@en . - -geo:dimension a owl:DatatypeProperty ; - rdfs:label "dimension"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - The topological dimension of this geometric object, which - must be less than or equal to the coordinate dimension. - In non-homogeneous collections, this will return the largest - topological dimension of the contained objects. - """@en ; - rdfs:comment """ - The topological dimension of this geometric object, which - must be less than or equal to the coordinate dimension. - In non-homogeneous collections, this will return the largest - topological dimension of the contained objects. - """@en ; - rdfs:domain geo:Geometry ; - rdfs:isDefinedBy , - ; - rdfs:range xsd:integer ; - skos:definition """ - The topological dimension of this geometric object, which - must be less than or equal to the coordinate dimension. - In non-homogeneous collections, this will return the largest - topological dimension of the contained objects. - """@en ; - skos:prefLabel "dimension"@en . - -geo:ehContains a owl:ObjectProperty ; - rdfs:label "contains"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially contains the - object SpatialObject. DE-9IM: T*TFF*FF* - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially contains the - object SpatialObject. DE-9IM: T*TFF*FF* - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially contains the - object SpatialObject. DE-9IM: T*TFF*FF* - """@en ; - skos:prefLabel "contains"@en . - -geo:ehCoveredBy a owl:ObjectProperty ; - rdfs:label "coveredBy"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject is spatially covered - by the object SpatialObject. DE-9IM: TFF*TFT** - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject is spatially covered - by the object SpatialObject. DE-9IM: TFF*TFT** - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject is spatially covered - by the object SpatialObject. DE-9IM: TFF*TFT** - """@en ; - skos:prefLabel "coveredBy"@en . - -geo:ehCovers a owl:ObjectProperty ; - rdfs:label "covers"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially covers the - object SpatialObject. DE-9IM: T*TFT*FF* - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially covers the - object SpatialObject. DE-9IM: T*TFT*FF* - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially covers the - object SpatialObject. DE-9IM: T*TFT*FF* - """@en ; - skos:prefLabel "covers"@en . - -geo:ehDisjoint a owl:ObjectProperty ; - rdfs:label "disjoint"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject is spatially disjoint - from the object SpatialObject. DE-9IM: FF*FF**** - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject is spatially disjoint - from the object SpatialObject. DE-9IM: FF*FF**** - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject is spatially disjoint - from the object SpatialObject. DE-9IM: FF*FF**** - """@en ; - skos:prefLabel "disjoint"@en . - -geo:ehEquals a owl:ObjectProperty ; - rdfs:label "equals"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially equals the - object SpatialObject. DE-9IM: TFFFTFFFT - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially equals the - object SpatialObject. DE-9IM: TFFFTFFFT - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially equals the - object SpatialObject. DE-9IM: TFFFTFFFT - """@en ; - skos:prefLabel "equals"@en . - -geo:ehInside a owl:ObjectProperty ; - rdfs:label "inside"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject is spatially inside - the object SpatialObject. DE-9IM: TFF*FFT** - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject is spatially inside - the object SpatialObject. DE-9IM: TFF*FFT** - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject is spatially inside - the object SpatialObject. DE-9IM: TFF*FFT** - """@en ; - skos:prefLabel "inside"@en . - -geo:ehMeet a owl:ObjectProperty ; - rdfs:label "meet"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially meets the - object SpatialObject. - DE-9IM: FT******* ^ F**T***** ^ F***T**** - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially meets the - object SpatialObject. - DE-9IM: FT******* ^ F**T***** ^ F***T**** - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially meets the - object SpatialObject. - DE-9IM: FT******* ^ F**T***** ^ F***T**** - """@en ; - skos:prefLabel "meet"@en . - -geo:ehOverlap a owl:ObjectProperty ; - rdfs:label "overlap"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially overlaps the - object SpatialObject. DE-9IM: T*T***T** - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially overlaps the - object SpatialObject. DE-9IM: T*T***T** - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially overlaps the - object SpatialObject. DE-9IM: T*T***T** - """@en ; - skos:prefLabel "overlap"@en . - -geo:isEmpty a owl:DatatypeProperty ; - rdfs:label "isEmpty"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - (true) if this geometric object is the empty Geometry. If - true, then this geometric object represents the empty point - set for the coordinate space. - """@en ; - rdfs:comment """ - (true) if this geometric object is the empty Geometry. If - true, then this geometric object represents the empty point - set for the coordinate space. - """@en ; - rdfs:domain geo:Geometry ; - rdfs:isDefinedBy , - ; - rdfs:range xsd:boolean ; - skos:definition """ - (true) if this geometric object is the empty Geometry. If - true, then this geometric object represents the empty point - set for the coordinate space. - """@en ; - skos:prefLabel "isEmpty"@en . - -geo:isSimple a owl:DatatypeProperty ; - rdfs:label "isSimple"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - (true) if this geometric object has no anomalous geometric - points, such as self intersection or self tangency. - """@en ; - rdfs:comment """ - (true) if this geometric object has no anomalous geometric - points, such as self intersection or self tangency. - """@en ; - rdfs:domain geo:Geometry ; - rdfs:isDefinedBy , - ; - rdfs:range xsd:boolean ; - skos:definition """ - (true) if this geometric object has no anomalous geometric - points, such as self intersection or self tangency. - """@en ; - skos:prefLabel "isSimple"@en . - -geo:rcc8dc a owl:ObjectProperty ; - rdfs:label "disconnected"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject is spatially disjoint - from the object SpatialObject. DE-9IM: FFTFFTTTT - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject is spatially disjoint - from the object SpatialObject. DE-9IM: FFTFFTTTT - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject is spatially disjoint - from the object SpatialObject. DE-9IM: FFTFFTTTT - """@en ; - skos:prefLabel "disconnected"@en . - -geo:rcc8ec a owl:ObjectProperty ; - rdfs:label "externally connected"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially meets the - object SpatialObject. DE-9IM: FFTFTTTTT - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially meets the - object SpatialObject. DE-9IM: FFTFTTTTT - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially meets the - object SpatialObject. DE-9IM: FFTFTTTTT - """@en ; - skos:prefLabel "externally connected"@en . - -geo:rcc8eq a owl:ObjectProperty ; - rdfs:label "equals"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially equals the - object SpatialObject. DE-9IM: TFFFTFFFT - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially equals the - object SpatialObject. DE-9IM: TFFFTFFFT - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially equals the - object SpatialObject. DE-9IM: TFFFTFFFT - """@en ; - skos:prefLabel "equals"@en . - -geo:rcc8ntpp a owl:ObjectProperty ; - rdfs:label "non-tangential proper part"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject is spatially inside - the object SpatialObject. DE-9IM: TFFTFFTTT - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject is spatially inside - the object SpatialObject. DE-9IM: TFFTFFTTT - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject is spatially inside - the object SpatialObject. DE-9IM: TFFTFFTTT - """@en ; - skos:prefLabel "non-tangential proper part"@en . - -geo:rcc8ntppi a owl:ObjectProperty ; - rdfs:label "non-tangential proper part inverse"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially contains the - object SpatialObject. DE-9IM: TTTFFTFFT - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially contains the - object SpatialObject. DE-9IM: TTTFFTFFT - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially contains the - object SpatialObject. DE-9IM: TTTFFTFFT - """@en ; - skos:prefLabel "non-tangential proper part inverse"@en . - -geo:rcc8po a owl:ObjectProperty ; - rdfs:label "partially overlapping"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially overlaps the - object SpatialObject. DE-9IM: TTTTTTTTT - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially overlaps the - object SpatialObject. DE-9IM: TTTTTTTTT - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially overlaps the - object SpatialObject. DE-9IM: TTTTTTTTT - """@en ; - skos:prefLabel "partially overlapping"@en . - -geo:rcc8tpp a owl:ObjectProperty ; - rdfs:label "tangential proper part"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject is spatially covered - by the object SpatialObject. DE-9IM: TFFTTFTTT - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject is spatially covered - by the object SpatialObject. DE-9IM: TFFTTFTTT - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject is spatially covered - by the object SpatialObject. DE-9IM: TFFTTFTTT - """@en ; - skos:prefLabel "tangential proper part"@en . - -geo:rcc8tppi a owl:ObjectProperty ; - rdfs:label "tangential proper part inverse"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially covers the - object SpatialObject. DE-9IM: TTTFTTFFT - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially covers the - object SpatialObject. DE-9IM: TTTFTTFFT - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially covers the - object SpatialObject. DE-9IM: TTTFTTFFT - """@en ; - skos:prefLabel "tangential proper part inverse"@en . - -geo:sfContains a owl:ObjectProperty ; - rdfs:label "contains"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially contains the - object SpatialObject. DE-9IM: T*****FF* - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially contains the - object SpatialObject. DE-9IM: T*****FF* - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially contains the - object SpatialObject. DE-9IM: T*****FF* - """@en ; - skos:prefLabel "contains"@en . - -geo:sfCrosses a owl:ObjectProperty ; - rdfs:label "crosses"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially crosses the - object SpatialObject. DE-9IM: T*T****** - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially crosses the - object SpatialObject. DE-9IM: T*T****** - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially crosses the - object SpatialObject. DE-9IM: T*T****** - """@en ; - skos:prefLabel "crosses"@en . - -geo:sfDisjoint a owl:ObjectProperty ; - rdfs:label "disjoint"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject is spatially disjoint - from the object SpatialObject. DE-9IM: FF*FF**** - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject is spatially disjoint - from the object SpatialObject. DE-9IM: FF*FF**** - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject is spatially disjoint - from the object SpatialObject. DE-9IM: FF*FF**** - """@en ; - skos:prefLabel "disjoint"@en . - -geo:sfEquals a owl:ObjectProperty ; - rdfs:label "equals"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially equals the - object SpatialObject. DE-9IM: TFFFTFFFT - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially equals the - object SpatialObject. DE-9IM: TFFFTFFFT - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially equals the - object SpatialObject. DE-9IM: TFFFTFFFT - """@en ; - skos:prefLabel "equals"@en . - -geo:sfIntersects a owl:ObjectProperty ; - rdfs:label "intersects"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject is not spatially disjoint - from the object SpatialObject. - DE-9IM: T******** ^ *T******* ^ ***T***** ^ ****T**** - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject is not spatially disjoint - from the object SpatialObject. - DE-9IM: T******** ^ *T******* ^ ***T***** ^ ****T**** - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject is not spatially disjoint - from the object SpatialObject. - DE-9IM: T******** ^ *T******* ^ ***T***** ^ ****T**** - """@en ; - skos:prefLabel "intersects"@en . - -geo:sfOverlaps a owl:ObjectProperty ; - rdfs:label "overlaps"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially overlaps the - object SpatialObject. DE-9IM: T*T***T** - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially overlaps the - object SpatialObject. DE-9IM: T*T***T** - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially overlaps the - object SpatialObject. DE-9IM: T*T***T** - """@en ; - skos:prefLabel "overlaps"@en . - -geo:sfTouches a owl:ObjectProperty ; - rdfs:label "touches"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject spatially touches the - object SpatialObject. - DE-9IM: FT******* ^ F**T***** ^ F***T**** - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject spatially touches the - object SpatialObject. - DE-9IM: FT******* ^ F**T***** ^ F***T**** - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject spatially touches the - object SpatialObject. - DE-9IM: FT******* ^ F**T***** ^ F***T**** - """@en ; - skos:prefLabel "touches"@en . - -geo:sfWithin a owl:ObjectProperty ; - rdfs:label "within"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Exists if the subject SpatialObject is spatially within the - object SpatialObject. DE-9IM: T*F**F*** - """@en ; - rdfs:comment """ - Exists if the subject SpatialObject is spatially within the - object SpatialObject. DE-9IM: T*F**F*** - """@en ; - rdfs:domain geo:SpatialObject ; - rdfs:isDefinedBy , - ; - rdfs:range geo:SpatialObject ; - skos:definition """ - Exists if the subject SpatialObject is spatially within the - object SpatialObject. DE-9IM: T*F**F*** - """@en ; - skos:prefLabel "within"@en . - -geo:spatialDimension a owl:DatatypeProperty ; - rdfs:label "spatialDimension"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - The number of measurements or axes needed to describe the spatial position of - this geometry in a coordinate system. - """@en ; - rdfs:comment """ - The number of measurements or axes needed to describe the spatial position of - this geometry in a coordinate system. - """@en ; - rdfs:domain geo:Geometry ; - rdfs:isDefinedBy , - ; - rdfs:range xsd:integer ; - skos:definition """ - The number of measurements or axes needed to describe the spatial position of - this geometry in a coordinate system. - """@en ; - skos:prefLabel "spatialDimension"@en . - -geo:gmlLiteral a rdfs:Datatype ; - rdfs:label "GML Literal"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - A GML serialization of a geometry object. - """@en ; - rdfs:comment """ - A GML serialization of a geometry object. - """@en ; - rdfs:isDefinedBy , - ; - skos:definition """ - A GML serialization of a geometry object. - """@en ; - skos:prefLabel "GML Literal"@en . - -geo:hasGeometry a owl:ObjectProperty ; - rdfs:label "hasGeometry"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - A spatial representation for a given feature. - """@en ; - rdfs:comment """ - A spatial representation for a given feature. - """@en ; - rdfs:domain geo:Feature ; - rdfs:isDefinedBy , - ; - rdfs:range geo:Geometry ; - skos:definition """ - A spatial representation for a given feature. - """@en ; - skos:prefLabel "hasGeometry"@en . - -geo:wktLiteral a rdfs:Datatype ; - rdfs:label "Well-known Text Literal"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - A Well-known Text serialization of a geometry object. - """@en ; - rdfs:comment """ - A Well-known Text serialization of a geometry object. - """@en ; - rdfs:isDefinedBy , - ; - skos:definition """ - A Well-known Text serialization of a geometry object. - """@en ; - skos:prefLabel "Well-known Text Literal"@en . - -geo:hasSerialization a owl:DatatypeProperty ; - rdfs:label "has serialization"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - Connects a geometry object with its text-based serialization. - """@en ; - rdfs:comment """ - Connects a geometry object with its text-based serialization. - """@en ; - rdfs:domain geo:Geometry ; - rdfs:isDefinedBy , - ; - rdfs:range rdfs:Literal ; - skos:definition """ - Connects a geometry object with its text-based serialization. - """@en ; - skos:prefLabel "has serialization"@en . - -geo:Feature a owl:Class ; - rdfs:label "Feature"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - This class represents the top-level feature type. This class is - equivalent to GFI_Feature defined in ISO 19156:2011, and it is - superclass of all feature types. - """@en ; - rdfs:comment """ - This class represents the top-level feature type. This class is - equivalent to GFI_Feature defined in ISO 19156:2011, and it is - superclass of all feature types. - """@en ; - rdfs:isDefinedBy , - ; - rdfs:subClassOf geo:SpatialObject ; - owl:disjointWith geo:Geometry ; - skos:definition """ - This class represents the top-level feature type. This class is - equivalent to GFI_Feature defined in ISO 19156:2011, and it is - superclass of all feature types. - """@en ; - skos:prefLabel "Feature"@en . - -geo:Geometry a owl:Class ; - rdfs:label "Geometry"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - The class represents the top-level geometry type. This class is - equivalent to the UML class GM_Object defined in ISO 19107, and - it is superclass of all geometry types. - """@en ; - rdfs:comment """ - The class represents the top-level geometry type. This class is - equivalent to the UML class GM_Object defined in ISO 19107, and - it is superclass of all geometry types. - """@en ; - rdfs:isDefinedBy , - ; - rdfs:subClassOf geo:SpatialObject ; - owl:disjointWith geo:Feature ; - skos:definition """ - The class represents the top-level geometry type. This class is - equivalent to the UML class GM_Object defined in ISO 19107, and - it is superclass of all geometry types. - """@en ; - skos:prefLabel "Geometry"@en . - - a owl:Ontology ; - dc:creator "Open Geospatial Consortium"^^xsd:string ; - dc:date "2012-04-30"^^xsd:date ; - dc:description "An RDF/OWL vocabulary for representing spatial information"^^xsd:string ; - dc:source , - "OGC GeoSPARQL – A Geographic Query Language for RDF Data OGC 11-052r5"^^xsd:string ; - rdfs:seeAlso , - , - ; - owl:imports dc:, - , - , - ; - owl:versionInfo "OGC GeoSPARQL 1.0"^^xsd:string . - -geo:SpatialObject a owl:Class ; - rdfs:label "SpatialObject"@en ; - dc:contributor "Matthew Perry" ; - dc:creator "OGC GeoSPARQL 1.0 Standard Working Group" ; - dc:date "2011-06-16"^^xsd:date ; - dc:description """ - The class spatial-object represents everything that can have - a spatial representation. It is superclass of feature and geometry. - """@en ; - rdfs:comment """ - The class spatial-object represents everything that can have - a spatial representation. It is superclass of feature and geometry. - """@en ; - rdfs:isDefinedBy , - ; - skos:definition """ - The class spatial-object represents everything that can have - a spatial representation. It is superclass of feature and geometry. - """@en ; - skos:prefLabel "SpatialObject"@en . diff --git a/imports/gml.ttl b/imports/gml.ttl deleted file mode 100644 index 3200fb4..0000000 --- a/imports/gml.ttl +++ /dev/null @@ -1,288 +0,0 @@ -@prefix dc: . -@prefix geo: . -@prefix gml: . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix skos: . -@prefix xml: . -@prefix xsd: . - -geo:Feature rdfs:isDefinedBy . - -geo:SpatialObject rdfs:isDefinedBy . - -gml:ArcByBulge a owl:Class ; - rdfs:label "Arc by Bulge"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:ArcStringByBulge . - -gml:Bezier a owl:Class ; - rdfs:label "Bezier"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:BSpline . - -gml:Circle a owl:Class ; - rdfs:label "Circle"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:Arc . - -gml:CircleByCenterPoint a owl:Class ; - rdfs:label "CircleByCenterPoint"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:ArcByCenterPoint . - -gml:Clothoid a owl:Class ; - rdfs:label "Clothoid"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractCurveSegment . - -gml:CompositeSolid a owl:Class ; - rdfs:label "Composite Solid"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:Composite, - gml:Solid . - -gml:Cone a owl:Class ; - rdfs:label "Cone"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractGriddedSurface . - -gml:CubicSpline a owl:Class ; - rdfs:label "Cubic Spline"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:PolynomialSpline . - -gml:Curve a owl:Class ; - rdfs:label "Curve"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractGeometricPrimitive, - gml:OrientableCurve . - -gml:Cylinder a owl:Class ; - rdfs:label "Cylinder"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractGriddedSurface . - -gml:Geodesic a owl:Class ; - rdfs:label "Geodesic"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:GeodesicString . - -gml:LineString a owl:Class ; - rdfs:label "Line String"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:LineStringSegment . - -gml:LinearRing a owl:Class ; - rdfs:label "Linear Ring"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:Ring . - -gml:MultiCurve a owl:Class ; - rdfs:label "Multi-Curve"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:MultiGeometry . - -gml:MultiPoint a owl:Class ; - rdfs:label "Multi-Point"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:MultiGeometry . - -gml:MultiSolid a owl:Class ; - rdfs:label "Multi-Solid"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:MultiGeometry . - -gml:MultiSurface a owl:Class ; - rdfs:label "Multi-Surface"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:MultiGeometry . - -gml:OffsetCurve a owl:Class ; - rdfs:label "Offset Curve"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractCurveSegment . - -gml:Point a owl:Class ; - rdfs:label "Point"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractGeometricPrimitive . - -gml:Polygon a owl:Class ; - rdfs:label "Polygon"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:Surface . - -gml:Rectangle a owl:Class ; - rdfs:label "Rectangle"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:PolygonPatch . - -gml:Shell a owl:Class ; - rdfs:label "Shell"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:CompositeSurface . - -gml:Sphere a owl:Class ; - rdfs:label "Sphere"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractGriddedSurface . - -gml:Tin a owl:Class ; - rdfs:label "Triangulated Irregular Network"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:TriangulatedSurface . - -gml:Triangle a owl:Class ; - rdfs:label "Triangle"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:PolygonPatch . - -gml:AbstractParametricCurveSurface a owl:Class ; - rdfs:label "Abstract Parametric Curve Surface"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractSurfacePatch . - -gml:Arc a owl:Class ; - rdfs:label "Arc"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:ArcString . - -gml:ArcByCenterPoint a owl:Class ; - rdfs:label "Arc by Center Point"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractCurveSegment . - -gml:ArcString a owl:Class ; - rdfs:label "Arc String"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractCurveSegment . - -gml:ArcStringByBulge a owl:Class ; - rdfs:label "Arc String by Bulge"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractCurveSegment . - -gml:BSpline a owl:Class ; - rdfs:label "BSpline"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:SplineCurve . - -gml:CompositeCurve a owl:Class ; - rdfs:label "Composite Curve"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:Composite, - gml:OrientableCurve . - -gml:CompositeSurface a owl:Class ; - rdfs:label "Composite Surface"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:Composite, - gml:OrientableSurface . - -gml:GeodesicString a owl:Class ; - rdfs:label "Geodesic String"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractCurveSegment . - -gml:GeometricComplex a owl:Class ; - rdfs:label "Geometric Complex"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractGeometry . - -gml:LineStringSegment a owl:Class ; - rdfs:label "Line String Segment"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractCurveSegment . - -gml:PolyhedralSurface a owl:Class ; - rdfs:label "Polyhedral Surface"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:Surface . - -gml:PolynomialSpline a owl:Class ; - rdfs:label "Polynomial Spline"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:SplineCurve . - -gml:Ring a owl:Class ; - rdfs:label "Ring"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:CompositeCurve . - -gml:Solid a owl:Class ; - rdfs:label "Solid"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractGeometricPrimitive . - -gml:TriangulatedSurface a owl:Class ; - rdfs:label "Triangulated Surface"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:PolyhedralSurface . - -gml:AbstractSurfacePatch a owl:Class ; - rdfs:label "Abstract Surface Patch"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf geo:Geometry . - -gml:OrientableCurve a owl:Class ; - rdfs:label "Orientable Curve"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractGeometricPrimitive . - -gml:OrientableSurface a owl:Class ; - rdfs:label "Orientable Surface"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractGeometricPrimitive . - -gml:PolygonPatch a owl:Class ; - rdfs:label "Polygon Patch"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractSurfacePatch . - -gml:SplineCurve a owl:Class ; - rdfs:label "Spline Curve"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractCurveSegment . - -gml:Surface a owl:Class ; - rdfs:label "Surface"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractGeometricPrimitive, - gml:OrientableSurface . - -geo:Geometry rdfs:isDefinedBy . - -gml:AbstractGeometry a owl:Class ; - rdfs:label "Abstract Geometry"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf geo:Geometry . - -gml:AbstractGriddedSurface a owl:Class ; - rdfs:label "Abstract Gridded Surface"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractParametricCurveSurface . - -gml:Composite a owl:Class ; - rdfs:label "Composite"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:GeometricComplex . - -gml:MultiGeometry a owl:Class ; - rdfs:label "Multi-Geometry"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractGeometry . - -gml:AbstractGeometricPrimitive a owl:Class ; - rdfs:label "Abstract Geometric Primitive"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf gml:AbstractGeometry . - -gml:AbstractCurveSegment a owl:Class ; - rdfs:label "Abstract Curve Segment"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf geo:Geometry . - - a owl:Ontology ; - owl:imports . diff --git a/imports/prov.ttl b/imports/prov.ttl deleted file mode 100644 index d119a81..0000000 --- a/imports/prov.ttl +++ /dev/null @@ -1,1320 +0,0 @@ -@prefix rdf: . -@prefix : . -@prefix rdfs: . -@prefix owl: . -@prefix xsd: . - -rdfs:comment - a owl:AnnotationProperty ; - rdfs:comment ""@en ; - rdfs:isDefinedBy . - -rdfs:isDefinedBy - a owl:AnnotationProperty . - -rdfs:label - a owl:AnnotationProperty ; - rdfs:comment ""@en ; - rdfs:isDefinedBy . - -rdfs:seeAlso - a owl:AnnotationProperty ; - rdfs:comment ""@en . - -owl:Thing - a owl:Class . - -owl:versionInfo - a owl:AnnotationProperty . - - - a owl:Ontology . - -:Activity - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Activity" ; - owl:disjointWith :Entity ; - :category "starting-point" ; - :component "entities-activities" ; - :constraints "http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig"^^xsd:anyURI ; - :definition "An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities." ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Activity"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Activity"^^xsd:anyURI . - -:ActivityInfluence - a owl:Class ; - rdfs:comment "ActivityInfluence provides additional descriptions of an Activity's binary influence upon any other kind of resource. Instances of ActivityInfluence use the prov:activity property to cite the influencing Activity."@en, "It is not recommended that the type ActivityInfluence be asserted without also asserting one of its more specific subclasses."@en ; - rdfs:isDefinedBy ; - rdfs:label "ActivityInfluence" ; - rdfs:seeAlso :activity ; - rdfs:subClassOf :Influence, [ - a owl:Restriction ; - owl:maxCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty :hadActivity - ] ; - owl:disjointWith :EntityInfluence ; - :category "qualified" ; - :editorsDefinition "ActivitiyInfluence is the capacity of an activity to have an effect on the character, development, or behavior of another by means of generation, invalidation, communication, or other."@en . - -:Agent - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Agent" ; - owl:disjointWith :InstantaneousEvent ; - :category "starting-point" ; - :component "agents-responsibility" ; - :definition "An agent is something that bears some form of responsibility for an activity taking place, for the existence of an entity, or for another agent's activity. "@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-agent"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Agent"^^xsd:anyURI . - -:AgentInfluence - a owl:Class ; - rdfs:comment "AgentInfluence provides additional descriptions of an Agent's binary influence upon any other kind of resource. Instances of AgentInfluence use the prov:agent property to cite the influencing Agent."@en, "It is not recommended that the type AgentInfluence be asserted without also asserting one of its more specific subclasses."@en ; - rdfs:isDefinedBy ; - rdfs:label "AgentInfluence" ; - rdfs:seeAlso :agent ; - rdfs:subClassOf :Influence ; - :category "qualified" ; - :editorsDefinition "AgentInfluence is the capacity of an agent to have an effect on the character, development, or behavior of another by means of attribution, association, delegation, or other."@en . - -:Association - a owl:Class ; - rdfs:comment "An instance of prov:Association provides additional descriptions about the binary prov:wasAssociatedWith relation from an prov:Activity to some prov:Agent that had some responsiblity for it. For example, :baking prov:wasAssociatedWith :baker; prov:qualifiedAssociation [ a prov:Association; prov:agent :baker; :foo :bar ]."@en ; - rdfs:isDefinedBy ; - rdfs:label "Association" ; - rdfs:subClassOf :AgentInfluence ; - :category "qualified" ; - :component "agents-responsibility" ; - :definition "An activity association is an assignment of responsibility to an agent for an activity, indicating that the agent had a role in the activity. It further allows for a plan to be specified, which is the plan intended by the agent to achieve some goals in the context of this activity."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Association"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Association"^^xsd:anyURI ; - :unqualifiedForm :wasAssociatedWith . - -:Attribution - a owl:Class ; - rdfs:comment "An instance of prov:Attribution provides additional descriptions about the binary prov:wasAttributedTo relation from an prov:Entity to some prov:Agent that had some responsible for it. For example, :cake prov:wasAttributedTo :baker; prov:qualifiedAttribution [ a prov:Attribution; prov:entity :baker; :foo :bar ]."@en ; - rdfs:isDefinedBy ; - rdfs:label "Attribution" ; - rdfs:subClassOf :AgentInfluence ; - :category "qualified" ; - :component "agents-responsibility" ; - :constraints "http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig"^^xsd:anyURI ; - :definition """Attribution is the ascribing of an entity to an agent. - -When an entity e is attributed to agent ag, entity e was generated by some unspecified activity that in turn was associated to agent ag. Thus, this relation is useful when the activity is not known, or irrelevant."""@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-attribution"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-attribution"^^xsd:anyURI ; - :unqualifiedForm :wasAttributedTo . - -:Bundle - a owl:Class ; - rdfs:comment "Note that there are kinds of bundles (e.g. handwritten letters, audio recordings, etc.) that are not expressed in PROV-O, but can be still be described by PROV-O."@en ; - rdfs:isDefinedBy ; - rdfs:label "Bundle" ; - rdfs:subClassOf :Entity ; - :category "expanded" ; - :definition "A bundle is a named set of provenance descriptions, and is itself an Entity, so allowing provenance of provenance to be expressed."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-bundle-entity"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-bundle-declaration"^^xsd:anyURI . - -:Collection - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Collection" ; - rdfs:subClassOf :Entity ; - :category "expanded" ; - :component "collections" ; - :definition "A collection is an entity that provides a structure to some constituents, which are themselves entities. These constituents are said to be member of the collections."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-collection"^^xsd:anyURI . - -:Communication - a owl:Class ; - rdfs:comment "An instance of prov:Communication provides additional descriptions about the binary prov:wasInformedBy relation from an informed prov:Activity to the prov:Activity that informed it. For example, :you_jumping_off_bridge prov:wasInformedBy :everyone_else_jumping_off_bridge; prov:qualifiedCommunication [ a prov:Communication; prov:activity :everyone_else_jumping_off_bridge; :foo :bar ]."@en ; - rdfs:isDefinedBy ; - rdfs:label "Communication" ; - rdfs:subClassOf :ActivityInfluence ; - :category "qualified" ; - :component "entities-activities" ; - :constraints "http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig"^^xsd:anyURI ; - :definition "Communication is the exchange of an entity by two activities, one activity using the entity generated by the other." ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Communication"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-wasInformedBy"^^xsd:anyURI ; - :unqualifiedForm :wasInformedBy . - -:Delegation - a owl:Class ; - rdfs:comment "An instance of prov:Delegation provides additional descriptions about the binary prov:actedOnBehalfOf relation from a performing prov:Agent to some prov:Agent for whom it was performed. For example, :mixing prov:wasAssociatedWith :toddler . :toddler prov:actedOnBehalfOf :mother; prov:qualifiedDelegation [ a prov:Delegation; prov:entity :mother; :foo :bar ]."@en ; - rdfs:isDefinedBy ; - rdfs:label "Delegation" ; - rdfs:subClassOf :AgentInfluence ; - :category "qualified" ; - :component "agents-responsibility" ; - :definition """Delegation is the assignment of authority and responsibility to an agent (by itself or by another agent) to carry out a specific activity as a delegate or representative, while the agent it acts on behalf of retains some responsibility for the outcome of the delegated work. - -For example, a student acted on behalf of his supervisor, who acted on behalf of the department chair, who acted on behalf of the university; all those agents are responsible in some way for the activity that took place but we do not say explicitly who bears responsibility and to what degree."""@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-delegation"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-delegation"^^xsd:anyURI ; - :unqualifiedForm :actedOnBehalfOf . - -:Derivation - a owl:Class ; - rdfs:comment "An instance of prov:Derivation provides additional descriptions about the binary prov:wasDerivedFrom relation from some derived prov:Entity to another prov:Entity from which it was derived. For example, :chewed_bubble_gum prov:wasDerivedFrom :unwrapped_bubble_gum; prov:qualifiedDerivation [ a prov:Derivation; prov:entity :unwrapped_bubble_gum; :foo :bar ]."@en, "The more specific forms of prov:Derivation (i.e., prov:Revision, prov:Quotation, prov:PrimarySource) should be asserted if they apply."@en ; - rdfs:isDefinedBy ; - rdfs:label "Derivation" ; - rdfs:subClassOf :EntityInfluence ; - :category "qualified" ; - :component "derivations" ; - :constraints "http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig"^^xsd:anyURI ; - :definition "A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Derivation"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#Derivation-Relation"^^xsd:anyURI ; - :unqualifiedForm :wasDerivedFrom . - -:EmptyCollection - a owl:Class, owl:NamedIndividual ; - rdfs:isDefinedBy ; - rdfs:label "EmptyCollection"@en ; - rdfs:subClassOf :Collection ; - :category "expanded" ; - :component "collections" ; - :definition "An empty collection is a collection without members."@en . - -:End - a owl:Class ; - rdfs:comment "An instance of prov:End provides additional descriptions about the binary prov:wasEndedBy relation from some ended prov:Activity to an prov:Entity that ended it. For example, :ball_game prov:wasEndedBy :buzzer; prov:qualifiedEnd [ a prov:End; prov:entity :buzzer; :foo :bar; prov:atTime '2012-03-09T08:05:08-05:00'^^xsd:dateTime ]."@en ; - rdfs:isDefinedBy ; - rdfs:label "End" ; - rdfs:subClassOf :EntityInfluence, :InstantaneousEvent ; - :category "qualified" ; - :component "entities-activities" ; - :constraints "http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig"^^xsd:anyURI ; - :definition "End is when an activity is deemed to have been ended by an entity, known as trigger. The activity no longer exists after its end. Any usage, generation, or invalidation involving an activity precedes the activity's end. An end may refer to a trigger entity that terminated the activity, or to an activity, known as ender that generated the trigger."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-End"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-End"^^xsd:anyURI ; - :unqualifiedForm :wasEndedBy . - -:Entity - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Entity" ; - owl:disjointWith :InstantaneousEvent ; - :category "starting-point" ; - :component "entities-activities" ; - :constraints "http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig"^^xsd:anyURI ; - :definition "An entity is a physical, digital, conceptual, or other kind of thing with some fixed aspects; entities may be real or imaginary. "@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-entity"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Entity"^^xsd:anyURI . - -:EntityInfluence - a owl:Class ; - rdfs:comment "EntityInfluence provides additional descriptions of an Entity's binary influence upon any other kind of resource. Instances of EntityInfluence use the prov:entity property to cite the influencing Entity."@en, "It is not recommended that the type EntityInfluence be asserted without also asserting one of its more specific subclasses."@en ; - rdfs:isDefinedBy ; - rdfs:label "EntityInfluence" ; - rdfs:seeAlso :entity ; - rdfs:subClassOf :Influence ; - :category "qualified" ; - :editorsDefinition "EntityInfluence is the capacity of an entity to have an effect on the character, development, or behavior of another by means of usage, start, end, derivation, or other. "@en . - -:Generation - a owl:Class ; - rdfs:comment "An instance of prov:Generation provides additional descriptions about the binary prov:wasGeneratedBy relation from a generated prov:Entity to the prov:Activity that generated it. For example, :cake prov:wasGeneratedBy :baking; prov:qualifiedGeneration [ a prov:Generation; prov:activity :baking; :foo :bar ]."@en ; - rdfs:isDefinedBy ; - rdfs:label "Generation" ; - rdfs:subClassOf :ActivityInfluence, :InstantaneousEvent ; - :category "qualified" ; - :component "entities-activities" ; - :constraints "http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig"^^xsd:anyURI ; - :definition "Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Generation"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Generation"^^xsd:anyURI ; - :unqualifiedForm :wasGeneratedBy . - -:Influence - a owl:Class ; - rdfs:comment "An instance of prov:Influence provides additional descriptions about the binary prov:wasInfluencedBy relation from some influenced Activity, Entity, or Agent to the influencing Activity, Entity, or Agent. For example, :stomach_ache prov:wasInfluencedBy :spoon; prov:qualifiedInfluence [ a prov:Influence; prov:entity :spoon; :foo :bar ] . Because prov:Influence is a broad relation, the more specific relations (Communication, Delegation, End, etc.) should be used when applicable."@en, "Because prov:Influence is a broad relation, its most specific subclasses (e.g. prov:Communication, prov:Delegation, prov:End, prov:Revision, etc.) should be used when applicable."@en ; - rdfs:isDefinedBy ; - rdfs:label "Influence" ; - :category "qualified" ; - :component "derivations" ; - :definition "Influence is the capacity of an entity, activity, or agent to have an effect on the character, development, or behavior of another by means of usage, start, end, generation, invalidation, communication, derivation, attribution, association, or delegation."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-influence"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-influence"^^xsd:anyURI ; - :unqualifiedForm :wasInfluencedBy . - -:InstantaneousEvent - a owl:Class ; - rdfs:comment "An instantaneous event, or event for short, happens in the world and marks a change in the world, in its activities and in its entities. The term 'event' is commonly used in process algebra with a similar meaning. Events represent communications or interactions; they are assumed to be atomic and instantaneous."@en ; - rdfs:isDefinedBy ; - rdfs:label "InstantaneousEvent" ; - :category "qualified" ; - :component "entities-activities" ; - :constraints "http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#dfn-event"^^xsd:anyURI ; - :definition "The PROV data model is implicitly based on a notion of instantaneous events (or just events), that mark transitions in the world. Events include generation, usage, or invalidation of entities, as well as starting or ending of activities. This notion of event is not first-class in the data model, but it is useful for explaining its other concepts and its semantics."@en . - -:Invalidation - a owl:Class ; - rdfs:comment "An instance of prov:Invalidation provides additional descriptions about the binary prov:wasInvalidatedBy relation from an invalidated prov:Entity to the prov:Activity that invalidated it. For example, :uncracked_egg prov:wasInvalidatedBy :baking; prov:qualifiedInvalidation [ a prov:Invalidation; prov:activity :baking; :foo :bar ]."@en ; - rdfs:isDefinedBy ; - rdfs:label "Invalidation" ; - rdfs:subClassOf :ActivityInfluence, :InstantaneousEvent ; - :category "qualified" ; - :component "entities-activities" ; - :constraints "http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig"^^xsd:anyURI ; - :definition "Invalidation is the start of the destruction, cessation, or expiry of an existing entity by an activity. The entity is no longer available for use (or further invalidation) after invalidation. Any generation or usage of an entity precedes its invalidation." ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Invalidation"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Invalidation"^^xsd:anyURI ; - :unqualifiedForm :wasInvalidatedBy . - -:Location - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Location" ; - rdfs:seeAlso :atLocation ; - :category "expanded" ; - :definition "A location can be an identifiable geographic place (ISO 19112), but it can also be a non-geographic place such as a directory, row, or column. As such, there are numerous ways in which location can be expressed, such as by a coordinate, address, landmark, and so forth."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-attribute-location"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-attribute"^^xsd:anyURI . - -:Organization - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Organization" ; - rdfs:subClassOf :Agent ; - :category "expanded" ; - :component "agents-responsibility" ; - :definition "An organization is a social or legal institution such as a company, society, etc." ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-agent"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-types"^^xsd:anyURI . - -:Person - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Person" ; - rdfs:subClassOf :Agent ; - :category "expanded" ; - :component "agents-responsibility" ; - :definition "Person agents are people."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-agent"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-types"^^xsd:anyURI . - -:Plan - a owl:Class ; - rdfs:comment "There exist no prescriptive requirement on the nature of plans, their representation, the actions or steps they consist of, or their intended goals. Since plans may evolve over time, it may become necessary to track their provenance, so plans themselves are entities. Representing the plan explicitly in the provenance can be useful for various tasks: for example, to validate the execution as represented in the provenance record, to manage expectation failures, or to provide explanations."@en ; - rdfs:isDefinedBy ; - rdfs:label "Plan" ; - rdfs:subClassOf :Entity ; - :category "expanded", "qualified" ; - :component "agents-responsibility" ; - :definition "A plan is an entity that represents a set of actions or steps intended by one or more agents to achieve some goals." ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Association"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Association"^^xsd:anyURI . - -:PrimarySource - a owl:Class ; - rdfs:comment "An instance of prov:PrimarySource provides additional descriptions about the binary prov:hadPrimarySource relation from some secondary prov:Entity to an earlier, primary prov:Entity. For example, :blog prov:hadPrimarySource :newsArticle; prov:qualifiedPrimarySource [ a prov:PrimarySource; prov:entity :newsArticle; :foo :bar ] ."@en ; - rdfs:isDefinedBy ; - rdfs:label "PrimarySource" ; - rdfs:subClassOf :Derivation ; - :category "qualified" ; - :component "derivations" ; - :definition """A primary source for a topic refers to something produced by some agent with direct experience and knowledge about the topic, at the time of the topic's study, without benefit from hindsight. - -Because of the directness of primary sources, they 'speak for themselves' in ways that cannot be captured through the filter of secondary sources. As such, it is important for secondary sources to reference those primary sources from which they were derived, so that their reliability can be investigated. - -A primary source relation is a particular case of derivation of secondary materials from their primary sources. It is recognized that the determination of primary sources can be up to interpretation, and should be done according to conventions accepted within the application's domain."""@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-primary-source"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-original-source"^^xsd:anyURI ; - :unqualifiedForm :hadPrimarySource . - -:Quotation - a owl:Class ; - rdfs:comment "An instance of prov:Quotation provides additional descriptions about the binary prov:wasQuotedFrom relation from some taken prov:Entity from an earlier, larger prov:Entity. For example, :here_is_looking_at_you_kid prov:wasQuotedFrom :casablanca_script; prov:qualifiedQuotation [ a prov:Quotation; prov:entity :casablanca_script; :foo :bar ]."@en ; - rdfs:isDefinedBy ; - rdfs:label "Quotation" ; - rdfs:subClassOf :Derivation ; - :category "qualified" ; - :component "derivations" ; - :definition "A quotation is the repeat of (some or all of) an entity, such as text or image, by someone who may or may not be its original author. Quotation is a particular case of derivation."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-quotation"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-quotation"^^xsd:anyURI ; - :unqualifiedForm :wasQuotedFrom . - -:Revision - a owl:Class ; - rdfs:comment "An instance of prov:Revision provides additional descriptions about the binary prov:wasRevisionOf relation from some newer prov:Entity to an earlier prov:Entity. For example, :draft_2 prov:wasRevisionOf :draft_1; prov:qualifiedRevision [ a prov:Revision; prov:entity :draft_1; :foo :bar ]."@en ; - rdfs:isDefinedBy ; - rdfs:label "Revision" ; - rdfs:subClassOf :Derivation ; - :category "qualified" ; - :component "derivations" ; - :definition "A revision is a derivation for which the resulting entity is a revised version of some original. The implication here is that the resulting entity contains substantial content from the original. Revision is a particular case of derivation."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-revision"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Revision"^^xsd:anyURI ; - :unqualifiedForm :wasRevisionOf . - -:Role - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "Role" ; - rdfs:seeAlso :hadRole ; - :category "qualified" ; - :component "agents-responsibility" ; - :definition "A role is the function of an entity or agent with respect to an activity, in the context of a usage, generation, invalidation, association, start, and end."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-attribute-role"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-attribute"^^xsd:anyURI . - -:SoftwareAgent - a owl:Class ; - rdfs:isDefinedBy ; - rdfs:label "SoftwareAgent" ; - rdfs:subClassOf :Agent ; - :category "expanded" ; - :component "agents-responsibility" ; - :definition "A software agent is running software."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-agent"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-types"^^xsd:anyURI . - -:Start - a owl:Class ; - rdfs:comment "An instance of prov:Start provides additional descriptions about the binary prov:wasStartedBy relation from some started prov:Activity to an prov:Entity that started it. For example, :foot_race prov:wasStartedBy :bang; prov:qualifiedStart [ a prov:Start; prov:entity :bang; :foo :bar; prov:atTime '2012-03-09T08:05:08-05:00'^^xsd:dateTime ] ."@en ; - rdfs:isDefinedBy ; - rdfs:label "Start" ; - rdfs:subClassOf :EntityInfluence, :InstantaneousEvent ; - :category "qualified" ; - :component "entities-activities" ; - :constraints "http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig"^^xsd:anyURI ; - :definition "Start is when an activity is deemed to have been started by an entity, known as trigger. The activity did not exist before its start. Any usage, generation, or invalidation involving an activity follows the activity's start. A start may refer to a trigger entity that set off the activity, or to an activity, known as starter, that generated the trigger."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Start"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Start"^^xsd:anyURI ; - :unqualifiedForm :wasStartedBy . - -:Usage - a owl:Class ; - rdfs:comment "An instance of prov:Usage provides additional descriptions about the binary prov:used relation from some prov:Activity to an prov:Entity that it used. For example, :keynote prov:used :podium; prov:qualifiedUsage [ a prov:Usage; prov:entity :podium; :foo :bar ]."@en ; - rdfs:isDefinedBy ; - rdfs:label "Usage" ; - rdfs:subClassOf :EntityInfluence, :InstantaneousEvent ; - :category "qualified" ; - :component "entities-activities" ; - :constraints "http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig"^^xsd:anyURI ; - :definition "Usage is the beginning of utilizing an entity by an activity. Before usage, the activity had not begun to utilize this entity and could not have been affected by the entity."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Usage"^^xsd:anyURI ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Usage"^^xsd:anyURI ; - :unqualifiedForm :used . - -:actedOnBehalfOf - a owl:ObjectProperty ; - rdfs:comment "An object property to express the accountability of an agent towards another agent. The subordinate agent acted on behalf of the responsible agent in an actual activity. "@en ; - rdfs:domain :Agent ; - rdfs:isDefinedBy ; - rdfs:label "actedOnBehalfOf" ; - rdfs:range :Agent ; - rdfs:subPropertyOf :wasInfluencedBy ; - owl:propertyChainAxiom (:qualifiedDelegation - :agent - ) ; - :category "starting-point" ; - :component "agents-responsibility" ; - :inverse "hadDelegate" ; - :qualifiedForm :Delegation, :qualifiedDelegation . - -:activity - a owl:ObjectProperty ; - rdfs:domain :ActivityInfluence ; - rdfs:isDefinedBy ; - rdfs:label "activity" ; - rdfs:range :Activity ; - rdfs:subPropertyOf :influencer ; - :category "qualified" ; - :editorialNote "This property behaves in spirit like rdf:object; it references the object of a prov:wasInfluencedBy triple."@en ; - :editorsDefinition "The prov:activity property references an prov:Activity which influenced a resource. This property applies to an prov:ActivityInfluence, which is given by a subproperty of prov:qualifiedInfluence from the influenced prov:Entity, prov:Activity or prov:Agent." ; - :inverse "activityOfInfluence" . - -:agent - a owl:ObjectProperty ; - rdfs:domain :AgentInfluence ; - rdfs:isDefinedBy ; - rdfs:label "agent" ; - rdfs:range :Agent ; - rdfs:subPropertyOf :influencer ; - :category "qualified" ; - :editorialNote "This property behaves in spirit like rdf:object; it references the object of a prov:wasInfluencedBy triple."@en ; - :editorsDefinition "The prov:agent property references an prov:Agent which influenced a resource. This property applies to an prov:AgentInfluence, which is given by a subproperty of prov:qualifiedInfluence from the influenced prov:Entity, prov:Activity or prov:Agent."@en ; - :inverse "agentOfInfluence" . - -:alternateOf - a owl:ObjectProperty ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "alternateOf" ; - rdfs:range :Entity ; - rdfs:seeAlso :specializationOf ; - :category "expanded" ; - :component "alternate" ; - :constraints "http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig"^^xsd:anyURI ; - :definition "Two alternate entities present aspects of the same thing. These aspects may be the same or different, and the alternate entities may or may not overlap in time."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-alternate"^^xsd:anyURI ; - :inverse "alternateOf" ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-alternate"^^xsd:anyURI . - -:aq - a owl:AnnotationProperty ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf rdfs:seeAlso . - -:atLocation - a owl:ObjectProperty ; - rdfs:comment "The Location of any resource."@en, "This property has multiple RDFS domains to suit multiple OWL Profiles. See PROV-O OWL Profile." ; - rdfs:domain [ - a owl:Class ; - owl:unionOf (:Activity - :Agent - :Entity - :InstantaneousEvent - ) - ] ; - rdfs:isDefinedBy ; - rdfs:label "atLocation" ; - rdfs:range :Location ; - :category "expanded" ; - :editorialNote "The naming of prov:atLocation parallels prov:atTime, and is not named prov:hadLocation to avoid conflicting with the convention that prov:had* properties are used on prov:Influence classes."@en, "This property is not functional because the many values could be at a variety of granularies (In this building, in this room, in that chair)."@en ; - :inverse "locationOf" ; - :sharesDefinitionWith :Location . - -:atTime - a owl:DatatypeProperty ; - rdfs:comment "The time at which an InstantaneousEvent occurred, in the form of xsd:dateTime."@en ; - rdfs:domain :InstantaneousEvent ; - rdfs:isDefinedBy ; - rdfs:label "atTime" ; - rdfs:range xsd:dateTime ; - :category "qualified" ; - :component "entities-activities" ; - :sharesDefinitionWith :InstantaneousEvent ; - :unqualifiedForm :endedAtTime, :generatedAtTime, :invalidatedAtTime, :startedAtTime . - -:category - a owl:AnnotationProperty ; - rdfs:comment "Classify prov-o terms into three categories, including 'starting-point', 'qualifed', and 'extended'. This classification is used by the prov-o html document to gently introduce prov-o terms to its users. "@en ; - rdfs:isDefinedBy . - -:component - a owl:AnnotationProperty ; - rdfs:comment "Classify prov-o terms into six components according to prov-dm, including 'agents-responsibility', 'alternate', 'annotations', 'collections', 'derivations', and 'entities-activities'. This classification is used so that readers of prov-o specification can find its correspondence with the prov-dm specification."@en ; - rdfs:isDefinedBy . - -:constraints - a owl:AnnotationProperty ; - rdfs:comment "A reference to the principal section of the PROV-CONSTRAINTS document that describes this concept."@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf rdfs:seeAlso . - -:definition - a owl:AnnotationProperty ; - rdfs:comment "A definition quoted from PROV-DM or PROV-CONSTRAINTS that describes the concept expressed with this OWL term."@en ; - rdfs:isDefinedBy . - -:dm - a owl:AnnotationProperty ; - rdfs:comment "A reference to the principal section of the PROV-DM document that describes this concept."@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf rdfs:seeAlso . - -:editorialNote - a owl:AnnotationProperty ; - rdfs:comment "A note by the OWL development team about how this term expresses the PROV-DM concept, or how it should be used in context of semantic web or linked data."@en ; - rdfs:isDefinedBy . - -:editorsDefinition - a owl:AnnotationProperty ; - rdfs:comment "When the prov-o term does not have a definition drawn from prov-dm, and the prov-o editor provides one."@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf :definition . - -:endedAtTime - a owl:DatatypeProperty ; - rdfs:comment "The time at which an activity ended. See also prov:startedAtTime."@en ; - rdfs:domain :Activity ; - rdfs:isDefinedBy ; - rdfs:label "endedAtTime" ; - rdfs:range xsd:dateTime ; - :category "starting-point" ; - :component "entities-activities" ; - :editorialNote "It is the intent that the property chain holds: (prov:qualifiedEnd o prov:atTime) rdfs:subPropertyOf prov:endedAtTime."@en ; - :qualifiedForm :End, :atTime . - -:entity - a owl:ObjectProperty ; - rdfs:domain :EntityInfluence ; - rdfs:isDefinedBy ; - rdfs:label "entity" ; - rdfs:range :Entity ; - rdfs:subPropertyOf :influencer ; - :category "qualified" ; - :editorialNote "This property behaves in spirit like rdf:object; it references the object of a prov:wasInfluencedBy triple."@en ; - :editorsDefinition "The prov:entity property references an prov:Entity which influenced a resource. This property applies to an prov:EntityInfluence, which is given by a subproperty of prov:qualifiedInfluence from the influenced prov:Entity, prov:Activity or prov:Agent." ; - :inverse "entityOfInfluence" . - -:generated - a owl:ObjectProperty ; - rdfs:domain :Activity ; - rdfs:isDefinedBy ; - rdfs:label "generated" ; - rdfs:range :Entity ; - rdfs:subPropertyOf :influenced ; - owl:inverseOf :wasGeneratedBy ; - :category "expanded" ; - :component "entities-activities" ; - :editorialNote "prov:generated is one of few inverse property defined, to allow Activity-oriented assertions in addition to Entity-oriented assertions."@en ; - :inverse "wasGeneratedBy" ; - :sharesDefinitionWith :Generation . - -:generatedAtTime - a owl:DatatypeProperty ; - rdfs:comment "The time at which an entity was completely created and is available for use."@en ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "generatedAtTime" ; - rdfs:range xsd:dateTime ; - :category "expanded" ; - :component "entities-activities" ; - :editorialNote "It is the intent that the property chain holds: (prov:qualifiedGeneration o prov:atTime) rdfs:subPropertyOf prov:generatedAtTime."@en ; - :qualifiedForm :Generation, :atTime . - -:hadActivity - a owl:ObjectProperty ; - rdfs:comment "The _optional_ Activity of an Influence, which used, generated, invalidated, or was the responsibility of some Entity. This property is _not_ used by ActivityInfluence (use prov:activity instead)."@en, "This property has multiple RDFS domains to suit multiple OWL Profiles. See PROV-O OWL Profile." ; - rdfs:domain :Influence, [ - a owl:Class ; - owl:unionOf (:Delegation - :Derivation - :End - :Start - ) - ] ; - rdfs:isDefinedBy ; - rdfs:label "hadActivity" ; - rdfs:range :Activity ; - :category "qualified" ; - :component "derivations" ; - :editorialNote "The multiple rdfs:domain assertions are intended. One is simpler and works for OWL-RL, the union is more specific but is not recognized by OWL-RL."@en ; - :inverse "wasActivityOfInfluence" ; - :sharesDefinitionWith :Activity . - -:hadGeneration - a owl:ObjectProperty ; - rdfs:comment "The _optional_ Generation involved in an Entity's Derivation."@en ; - rdfs:domain :Derivation ; - rdfs:isDefinedBy ; - rdfs:label "hadGeneration" ; - rdfs:range :Generation ; - :category "qualified" ; - :component "derivations" ; - :inverse "generatedAsDerivation" ; - :sharesDefinitionWith :Generation . - -:hadMember - a owl:ObjectProperty ; - rdfs:domain :Collection ; - rdfs:isDefinedBy ; - rdfs:label "hadMember" ; - rdfs:range :Entity ; - rdfs:subPropertyOf :wasInfluencedBy ; - :category "expanded" ; - :component "expanded" ; - :inverse "wasMemberOf" ; - :sharesDefinitionWith :Collection . - -:hadPlan - a owl:ObjectProperty ; - rdfs:comment "The _optional_ Plan adopted by an Agent in Association with some Activity. Plan specifications are out of the scope of this specification."@en ; - rdfs:domain :Association ; - rdfs:isDefinedBy ; - rdfs:label "hadPlan" ; - rdfs:range :Plan ; - :category "qualified" ; - :component "agents-responsibility" ; - :inverse "wasPlanOf" ; - :sharesDefinitionWith :Plan . - -:hadPrimarySource - a owl:ObjectProperty ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "hadPrimarySource" ; - rdfs:range :Entity ; - rdfs:subPropertyOf :wasDerivedFrom ; - owl:propertyChainAxiom (:qualifiedPrimarySource - :entity - ) ; - :category "expanded" ; - :component "derivations" ; - :inverse "wasPrimarySourceOf" ; - :qualifiedForm :PrimarySource, :qualifiedPrimarySource . - -:hadRole - a owl:ObjectProperty ; - rdfs:comment "The _optional_ Role that an Entity assumed in the context of an Activity. For example, :baking prov:used :spoon; prov:qualified [ a prov:Usage; prov:entity :spoon; prov:hadRole roles:mixing_implement ]."@en, "This property has multiple RDFS domains to suit multiple OWL Profiles. See PROV-O OWL Profile." ; - rdfs:domain :Influence, [ - a owl:Class ; - owl:unionOf (:Association - :InstantaneousEvent - ) - ] ; - rdfs:isDefinedBy ; - rdfs:label "hadRole" ; - rdfs:range :Role ; - :category "qualified" ; - :component "agents-responsibility" ; - :editorsDefinition "prov:hadRole references the Role (i.e. the function of an entity with respect to an activity), in the context of an instantaneous usage, generation, association, start, and end."@en ; - :inverse "wasRoleIn" ; - :sharesDefinitionWith :Role . - -:hadUsage - a owl:ObjectProperty ; - rdfs:comment "The _optional_ Usage involved in an Entity's Derivation."@en ; - rdfs:domain :Derivation ; - rdfs:isDefinedBy ; - rdfs:label "hadUsage" ; - rdfs:range :Usage ; - :category "qualified" ; - :component "derivations" ; - :inverse "wasUsedInDerivation" ; - :sharesDefinitionWith :Usage . - -:influenced - a owl:ObjectProperty ; - rdfs:isDefinedBy ; - rdfs:label "influenced" ; - owl:inverseOf :wasInfluencedBy ; - :category "expanded" ; - :component "agents-responsibility" ; - :inverse "wasInfluencedBy" ; - :sharesDefinitionWith :Influence . - -:influencer - a owl:ObjectProperty ; - rdfs:comment "Subproperties of prov:influencer are used to cite the object of an unqualified PROV-O triple whose predicate is a subproperty of prov:wasInfluencedBy (e.g. prov:used, prov:wasGeneratedBy). prov:influencer is used much like rdf:object is used."@en ; - rdfs:domain :Influence ; - rdfs:isDefinedBy ; - rdfs:label "influencer" ; - rdfs:range owl:Thing ; - :category "qualified" ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-influence"^^xsd:anyURI ; - :editorialNote "This property and its subproperties are used in the same way as the rdf:object property, i.e. to reference the object of an unqualified prov:wasInfluencedBy or prov:influenced triple."@en ; - :editorsDefinition "This property is used as part of the qualified influence pattern. Subclasses of prov:Influence use these subproperties to reference the resource (Entity, Agent, or Activity) whose influence is being qualified."@en ; - :inverse "hadInfluence" . - -:invalidated - a owl:ObjectProperty ; - rdfs:domain :Activity ; - rdfs:isDefinedBy ; - rdfs:label "invalidated" ; - rdfs:range :Entity ; - rdfs:subPropertyOf :influenced ; - owl:inverseOf :wasInvalidatedBy ; - :category "expanded" ; - :component "entities-activities" ; - :editorialNote "prov:invalidated is one of few inverse property defined, to allow Activity-oriented assertions in addition to Entity-oriented assertions."@en ; - :inverse "wasInvalidatedBy" ; - :sharesDefinitionWith :Invalidation . - -:invalidatedAtTime - a owl:DatatypeProperty ; - rdfs:comment "The time at which an entity was invalidated (i.e., no longer usable)."@en ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "invalidatedAtTime" ; - rdfs:range xsd:dateTime ; - :category "expanded" ; - :component "entities-activities" ; - :editorialNote "It is the intent that the property chain holds: (prov:qualifiedInvalidation o prov:atTime) rdfs:subPropertyOf prov:invalidatedAtTime."@en ; - :qualifiedForm :Invalidation, :atTime . - -:inverse - a owl:AnnotationProperty ; - rdfs:comment "PROV-O does not define all property inverses. The directionalities defined in PROV-O should be given preference over those not defined. However, if users wish to name the inverse of a PROV-O property, the local name given by prov:inverse should be used."@en ; - rdfs:isDefinedBy ; - rdfs:seeAlso . - -:n - a owl:AnnotationProperty ; - rdfs:comment "A reference to the principal section of the PROV-DM document that describes this concept."@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf rdfs:seeAlso . - -:order - a owl:AnnotationProperty ; - rdfs:comment "The position that this OWL term should be listed within documentation. The scope of the documentation (e.g., among all terms, among terms within a prov:category, among properties applying to a particular class, etc.) is unspecified."@en ; - rdfs:isDefinedBy . - -:qualifiedAssociation - a owl:ObjectProperty ; - rdfs:comment "If this Activity prov:wasAssociatedWith Agent :ag, then it can qualify the Association using prov:qualifiedAssociation [ a prov:Association; prov:agent :ag; :foo :bar ]."@en ; - rdfs:domain :Activity ; - rdfs:isDefinedBy ; - rdfs:label "qualifiedAssociation" ; - rdfs:range :Association ; - rdfs:subPropertyOf :qualifiedInfluence ; - :category "qualified" ; - :component "agents-responsibility" ; - :inverse "qualifiedAssociationOf" ; - :sharesDefinitionWith :Association ; - :unqualifiedForm :wasAssociatedWith . - -:qualifiedAttribution - a owl:ObjectProperty ; - rdfs:comment "If this Entity prov:wasAttributedTo Agent :ag, then it can qualify how it was influenced using prov:qualifiedAttribution [ a prov:Attribution; prov:agent :ag; :foo :bar ]."@en ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "qualifiedAttribution" ; - rdfs:range :Attribution ; - rdfs:subPropertyOf :qualifiedInfluence ; - :category "qualified" ; - :component "agents-responsibility" ; - :inverse "qualifiedAttributionOf" ; - :sharesDefinitionWith :Attribution ; - :unqualifiedForm :wasAttributedTo . - -:qualifiedCommunication - a owl:ObjectProperty ; - rdfs:comment "If this Activity prov:wasInformedBy Activity :a, then it can qualify how it was influenced using prov:qualifiedCommunication [ a prov:Communication; prov:activity :a; :foo :bar ]."@en ; - rdfs:domain :Activity ; - rdfs:isDefinedBy ; - rdfs:label "qualifiedCommunication" ; - rdfs:range :Communication ; - rdfs:subPropertyOf :qualifiedInfluence ; - :category "qualified" ; - :component "entities-activities" ; - :inverse "qualifiedCommunicationOf" ; - :qualifiedForm :Communication ; - :sharesDefinitionWith :Communication . - -:qualifiedDelegation - a owl:ObjectProperty ; - rdfs:comment "If this Agent prov:actedOnBehalfOf Agent :ag, then it can qualify how with prov:qualifiedResponsibility [ a prov:Responsibility; prov:agent :ag; :foo :bar ]."@en ; - rdfs:domain :Agent ; - rdfs:isDefinedBy ; - rdfs:label "qualifiedDelegation" ; - rdfs:range :Delegation ; - rdfs:subPropertyOf :qualifiedInfluence ; - :category "qualified" ; - :component "agents-responsibility" ; - :inverse "qualifiedDelegationOf" ; - :sharesDefinitionWith :Delegation ; - :unqualifiedForm :actedOnBehalfOf . - -:qualifiedDerivation - a owl:ObjectProperty ; - rdfs:comment "If this Entity prov:wasDerivedFrom Entity :e, then it can qualify how it was derived using prov:qualifiedDerivation [ a prov:Derivation; prov:entity :e; :foo :bar ]."@en ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "qualifiedDerivation" ; - rdfs:range :Derivation ; - rdfs:subPropertyOf :qualifiedInfluence ; - :category "qualified" ; - :component "derivations" ; - :inverse "qualifiedDerivationOf" ; - :sharesDefinitionWith :Derivation ; - :unqualifiedForm :wasDerivedFrom . - -:qualifiedEnd - a owl:ObjectProperty ; - rdfs:comment "If this Activity prov:wasEndedBy Entity :e1, then it can qualify how it was ended using prov:qualifiedEnd [ a prov:End; prov:entity :e1; :foo :bar ]."@en ; - rdfs:domain :Activity ; - rdfs:isDefinedBy ; - rdfs:label "qualifiedEnd" ; - rdfs:range :End ; - rdfs:subPropertyOf :qualifiedInfluence ; - :category "qualified" ; - :component "entities-activities" ; - :inverse "qualifiedEndOf" ; - :sharesDefinitionWith :End ; - :unqualifiedForm :wasEndedBy . - -:qualifiedForm - a owl:AnnotationProperty ; - rdfs:comment """This annotation property links a subproperty of prov:wasInfluencedBy with the subclass of prov:Influence and the qualifying property that are used to qualify it. - -Example annotation: - - prov:wasGeneratedBy prov:qualifiedForm prov:qualifiedGeneration, prov:Generation . - -Then this unqualified assertion: - - :entity1 prov:wasGeneratedBy :activity1 . - -can be qualified by adding: - - :entity1 prov:qualifiedGeneration :entity1Gen . - :entity1Gen - a prov:Generation, prov:Influence; - prov:activity :activity1; - :customValue 1337 . - -Note how the value of the unqualified influence (prov:wasGeneratedBy :activity1) is mirrored as the value of the prov:activity (or prov:entity, or prov:agent) property on the influence class."""@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf rdfs:seeAlso . - -:qualifiedGeneration - a owl:ObjectProperty ; - rdfs:comment "If this Activity prov:generated Entity :e, then it can qualify how it performed the Generation using prov:qualifiedGeneration [ a prov:Generation; prov:entity :e; :foo :bar ]."@en ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "qualifiedGeneration" ; - rdfs:range :Generation ; - rdfs:subPropertyOf :qualifiedInfluence ; - :category "qualified" ; - :component "entities-activities" ; - :inverse "qualifiedGenerationOf" ; - :sharesDefinitionWith :Generation ; - :unqualifiedForm :wasGeneratedBy . - -:qualifiedInfluence - a owl:ObjectProperty ; - rdfs:comment "Because prov:qualifiedInfluence is a broad relation, the more specific relations (qualifiedCommunication, qualifiedDelegation, qualifiedEnd, etc.) should be used when applicable."@en ; - rdfs:domain [ - a owl:Class ; - owl:unionOf (:Activity - :Agent - :Entity - ) - ] ; - rdfs:isDefinedBy ; - rdfs:label "qualifiedInfluence" ; - rdfs:range :Influence ; - :category "qualified" ; - :component "derivations" ; - :inverse "qualifiedInfluenceOf" ; - :sharesDefinitionWith :Influence ; - :unqualifiedForm :wasInfluencedBy . - -:qualifiedInvalidation - a owl:ObjectProperty ; - rdfs:comment "If this Entity prov:wasInvalidatedBy Activity :a, then it can qualify how it was invalidated using prov:qualifiedInvalidation [ a prov:Invalidation; prov:activity :a; :foo :bar ]."@en ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "qualifiedInvalidation" ; - rdfs:range :Invalidation ; - rdfs:subPropertyOf :qualifiedInfluence ; - :category "qualified" ; - :component "entities-activities" ; - :inverse "qualifiedInvalidationOf" ; - :sharesDefinitionWith :Invalidation ; - :unqualifiedForm :wasInvalidatedBy . - -:qualifiedPrimarySource - a owl:ObjectProperty ; - rdfs:comment "If this Entity prov:hadPrimarySource Entity :e, then it can qualify how using prov:qualifiedPrimarySource [ a prov:PrimarySource; prov:entity :e; :foo :bar ]."@en ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "qualifiedPrimarySource" ; - rdfs:range :PrimarySource ; - rdfs:subPropertyOf :qualifiedInfluence ; - :category "qualified" ; - :component "derivations" ; - :inverse "qualifiedSourceOf" ; - :sharesDefinitionWith :PrimarySource ; - :unqualifiedForm :hadPrimarySource . - -:qualifiedQuotation - a owl:ObjectProperty ; - rdfs:comment "If this Entity prov:wasQuotedFrom Entity :e, then it can qualify how using prov:qualifiedQuotation [ a prov:Quotation; prov:entity :e; :foo :bar ]."@en ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "qualifiedQuotation" ; - rdfs:range :Quotation ; - rdfs:subPropertyOf :qualifiedInfluence ; - :category "qualified" ; - :component "derivations" ; - :inverse "qualifiedQuotationOf" ; - :sharesDefinitionWith :Quotation ; - :unqualifiedForm :wasQuotedFrom . - -:qualifiedRevision - a owl:ObjectProperty ; - rdfs:comment "If this Entity prov:wasRevisionOf Entity :e, then it can qualify how it was revised using prov:qualifiedRevision [ a prov:Revision; prov:entity :e; :foo :bar ]."@en ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "qualifiedRevision" ; - rdfs:range :Revision ; - rdfs:subPropertyOf :qualifiedInfluence ; - :category "qualified" ; - :component "derivations" ; - :inverse "revisedEntity" ; - :sharesDefinitionWith :Revision ; - :unqualifiedForm :wasRevisionOf . - -:qualifiedStart - a owl:ObjectProperty ; - rdfs:comment "If this Activity prov:wasStartedBy Entity :e1, then it can qualify how it was started using prov:qualifiedStart [ a prov:Start; prov:entity :e1; :foo :bar ]."@en ; - rdfs:domain :Activity ; - rdfs:isDefinedBy ; - rdfs:label "qualifiedStart" ; - rdfs:range :Start ; - rdfs:subPropertyOf :qualifiedInfluence ; - :category "qualified" ; - :component "entities-activities" ; - :inverse "qualifiedStartOf" ; - :sharesDefinitionWith :Start ; - :unqualifiedForm :wasStartedBy . - -:qualifiedUsage - a owl:ObjectProperty ; - rdfs:comment "If this Activity prov:used Entity :e, then it can qualify how it used it using prov:qualifiedUsage [ a prov:Usage; prov:entity :e; :foo :bar ]."@en ; - rdfs:domain :Activity ; - rdfs:isDefinedBy ; - rdfs:label "qualifiedUsage" ; - rdfs:range :Usage ; - rdfs:subPropertyOf :qualifiedInfluence ; - :category "qualified" ; - :component "entities-activities" ; - :inverse "qualifiedUsingActivity" ; - :sharesDefinitionWith :Usage ; - :unqualifiedForm :used . - -:sharesDefinitionWith - a owl:AnnotationProperty ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf rdfs:seeAlso . - -:specializationOf - a owl:AnnotationProperty, owl:ObjectProperty ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "specializationOf" ; - rdfs:range :Entity ; - rdfs:seeAlso :alternateOf ; - rdfs:subPropertyOf :alternateOf ; - :category "expanded" ; - :component "alternate" ; - :constraints "http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig"^^xsd:anyURI ; - :definition "An entity that is a specialization of another shares all aspects of the latter, and additionally presents more specific aspects of the same thing as the latter. In particular, the lifetime of the entity being specialized contains that of any specialization. Examples of aspects include a time period, an abstraction, and a context associated with the entity."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-specialization"^^xsd:anyURI ; - :inverse "generalizationOf" ; - :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-specialization"^^xsd:anyURI . - -:startedAtTime - a owl:DatatypeProperty ; - rdfs:comment "The time at which an activity started. See also prov:endedAtTime."@en ; - rdfs:domain :Activity ; - rdfs:isDefinedBy ; - rdfs:label "startedAtTime" ; - rdfs:range xsd:dateTime ; - :category "starting-point" ; - :component "entities-activities" ; - :editorialNote "It is the intent that the property chain holds: (prov:qualifiedStart o prov:atTime) rdfs:subPropertyOf prov:startedAtTime."@en ; - :qualifiedForm :Start, :atTime . - -:todo - a owl:AnnotationProperty . - -:unqualifiedForm - a owl:AnnotationProperty ; - rdfs:comment "Classes and properties used to qualify relationships are annotated with prov:unqualifiedForm to indicate the property used to assert an unqualified provenance relation."@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf rdfs:seeAlso . - -:used - a owl:ObjectProperty ; - rdfs:comment "A prov:Entity that was used by this prov:Activity. For example, :baking prov:used :spoon, :egg, :oven ."@en ; - rdfs:domain :Activity ; - rdfs:isDefinedBy ; - rdfs:label "used" ; - rdfs:range :Entity ; - rdfs:subPropertyOf :wasInfluencedBy ; - owl:propertyChainAxiom (:qualifiedUsage - :entity - ) ; - :category "starting-point" ; - :component "entities-activities" ; - :inverse "wasUsedBy" ; - :qualifiedForm :Usage, :qualifiedUsage . - -:value - a owl:DatatypeProperty ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "value" ; - :category "expanded" ; - :component "entities-activities" ; - :definition "Provides a value that is a direct representation of an entity."@en ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-attribute-value"^^xsd:anyURI ; - :editorialNote "The editor's definition comes from http://www.w3.org/TR/rdf-primer/#rdfvalue", "This property serves the same purpose as rdf:value, but has been reintroduced to avoid some of the definitional ambiguity in the RDF specification (specifically, 'may be used in describing structured values')."@en . - -:wasAssociatedWith - a owl:ObjectProperty ; - rdfs:comment "An prov:Agent that had some (unspecified) responsibility for the occurrence of this prov:Activity."@en ; - rdfs:domain :Activity ; - rdfs:isDefinedBy ; - rdfs:label "wasAssociatedWith" ; - rdfs:range :Agent ; - rdfs:subPropertyOf :wasInfluencedBy ; - owl:propertyChainAxiom (:qualifiedAssociation - :agent - ) ; - :category "starting-point" ; - :component "agents-responsibility" ; - :inverse "wasAssociateFor" ; - :qualifiedForm :Association, :qualifiedAssociation . - -:wasAttributedTo - a owl:ObjectProperty ; - rdfs:comment "Attribution is the ascribing of an entity to an agent."@en ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "wasAttributedTo" ; - rdfs:range :Agent ; - rdfs:subPropertyOf :wasInfluencedBy ; - owl:propertyChainAxiom (:qualifiedAttribution - :agent - ) ; - :category "starting-point" ; - :component "agents-responsibility" ; - :definition "Attribution is the ascribing of an entity to an agent."@en ; - :inverse "contributed" ; - :qualifiedForm :Attribution, :qualifiedAttribution . - -:wasDerivedFrom - a owl:ObjectProperty ; - rdfs:comment "The more specific subproperties of prov:wasDerivedFrom (i.e., prov:wasQuotedFrom, prov:wasRevisionOf, prov:hadPrimarySource) should be used when applicable."@en ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "wasDerivedFrom" ; - rdfs:range :Entity ; - rdfs:subPropertyOf :wasInfluencedBy ; - owl:propertyChainAxiom (:qualifiedDerivation - :entity - ) ; - :category "starting-point" ; - :component "derivations" ; - :definition "A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity."@en ; - :inverse "hadDerivation" ; - :qualifiedForm :Derivation, :qualifiedDerivation . - -:wasEndedBy - a owl:ObjectProperty ; - rdfs:comment "End is when an activity is deemed to have ended. An end may refer to an entity, known as trigger, that terminated the activity."@en ; - rdfs:domain :Activity ; - rdfs:isDefinedBy ; - rdfs:label "wasEndedBy" ; - rdfs:range :Entity ; - rdfs:subPropertyOf :wasInfluencedBy ; - owl:propertyChainAxiom (:qualifiedEnd - :entity - ) ; - :category "expanded" ; - :component "entities-activities" ; - :inverse "ended" ; - :qualifiedForm :End, :qualifiedEnd . - -:wasGeneratedBy - a owl:ObjectProperty ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "wasGeneratedBy" ; - rdfs:range :Activity ; - rdfs:subPropertyOf :wasInfluencedBy ; - owl:propertyChainAxiom (:qualifiedGeneration - :activity - ) ; - :category "starting-point" ; - :component "entities-activities" ; - :inverse "generated" ; - :qualifiedForm :Generation, :qualifiedGeneration . - -:wasInfluencedBy - a owl:ObjectProperty ; - rdfs:comment "Because prov:wasInfluencedBy is a broad relation, its more specific subproperties (e.g. prov:wasInformedBy, prov:actedOnBehalfOf, prov:wasEndedBy, etc.) should be used when applicable."@en, "This property has multiple RDFS domains to suit multiple OWL Profiles. See PROV-O OWL Profile." ; - rdfs:domain [ - a owl:Class ; - owl:unionOf (:Activity - :Agent - :Entity - ) - ] ; - rdfs:isDefinedBy ; - rdfs:label "wasInfluencedBy" ; - rdfs:range [ - a owl:Class ; - owl:unionOf (:Activity - :Agent - :Entity - ) - ] ; - :category "qualified" ; - :component "agents-responsibility" ; - :editorialNote """The sub-properties of prov:wasInfluencedBy can be elaborated in more detail using the Qualification Pattern. For example, the binary relation :baking prov:used :spoon can be qualified by asserting :baking prov:qualifiedUsage [ a prov:Usage; prov:entity :spoon; prov:atLocation :kitchen ] . - -Subproperties of prov:wasInfluencedBy may also be asserted directly without being qualified. - -prov:wasInfluencedBy should not be used without also using one of its subproperties. -"""@en ; - :inverse "influenced" ; - :qualifiedForm :Influence, :qualifiedInfluence ; - :sharesDefinitionWith :Influence . - -:wasInformedBy - a owl:ObjectProperty ; - rdfs:comment "An activity a2 is dependent on or informed by another activity a1, by way of some unspecified entity that is generated by a1 and used by a2."@en ; - rdfs:domain :Activity ; - rdfs:isDefinedBy ; - rdfs:label "wasInformedBy" ; - rdfs:range :Activity ; - rdfs:subPropertyOf :wasInfluencedBy ; - owl:propertyChainAxiom (:qualifiedCommunication - :activity - ) ; - :category "starting-point" ; - :component "entities-activities" ; - :inverse "informed" ; - :qualifiedForm :Communication, :qualifiedCommunication . - -:wasInvalidatedBy - a owl:ObjectProperty ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "wasInvalidatedBy" ; - rdfs:range :Activity ; - rdfs:subPropertyOf :wasInfluencedBy ; - owl:propertyChainAxiom (:qualifiedInvalidation - :activity - ) ; - :category "expanded" ; - :component "entities-activities" ; - :inverse "invalidated" ; - :qualifiedForm :Invalidation, :qualifiedInvalidation . - -:wasQuotedFrom - a owl:ObjectProperty ; - rdfs:comment "An entity is derived from an original entity by copying, or 'quoting', some or all of it."@en ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "wasQuotedFrom" ; - rdfs:range :Entity ; - rdfs:subPropertyOf :wasDerivedFrom ; - owl:propertyChainAxiom (:qualifiedQuotation - :entity - ) ; - :category "expanded" ; - :component "derivations" ; - :inverse "quotedAs" ; - :qualifiedForm :Quotation, :qualifiedQuotation . - -:wasRevisionOf - a owl:AnnotationProperty, owl:ObjectProperty ; - rdfs:comment "A revision is a derivation that revises an entity into a revised version."@en ; - rdfs:domain :Entity ; - rdfs:isDefinedBy ; - rdfs:label "wasRevisionOf" ; - rdfs:range :Entity ; - rdfs:subPropertyOf :wasDerivedFrom ; - owl:propertyChainAxiom (:qualifiedRevision - :entity - ) ; - :category "expanded" ; - :component "derivations" ; - :inverse "hadRevision" ; - :qualifiedForm :Revision, :qualifiedRevision . - -:wasStartedBy - a owl:ObjectProperty ; - rdfs:comment "Start is when an activity is deemed to have started. A start may refer to an entity, known as trigger, that initiated the activity."@en ; - rdfs:domain :Activity ; - rdfs:isDefinedBy ; - rdfs:label "wasStartedBy" ; - rdfs:range :Entity ; - rdfs:subPropertyOf :wasInfluencedBy ; - owl:propertyChainAxiom (:qualifiedStart - :entity - ) ; - :category "expanded" ; - :component "entities-activities" ; - :inverse "started" ; - :qualifiedForm :Start, :qualifiedStart . - - - a owl:Ontology ; - rdfs:comment """This document is published by the Provenance Working Group (http://www.w3.org/2011/prov/wiki/Main_Page). - -If you wish to make comments regarding this document, please send them to public-prov-comments@w3.org (subscribe public-prov-comments-request@w3.org, archives http://lists.w3.org/Archives/Public/public-prov-comments/). All feedback is welcome."""@en ; - rdfs:label "W3C PROVenance Interchange Ontology (PROV-O)"@en ; - rdfs:seeAlso , ; - owl:versionIRI ; - owl:versionInfo "Recommendation version 2013-04-30"@en ; - :specializationOf ; - :wasRevisionOf . - -[] - a owl:Axiom ; - rdfs:comment "A collection is an entity that provides a structure to some constituents, which are themselves entities. These constituents are said to be member of the collections."@en ; - owl:annotatedProperty rdfs:range ; - owl:annotatedSource :hadMember ; - owl:annotatedTarget :Entity ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-collection" . - -[] - a owl:Axiom ; - rdfs:comment "hadPrimarySource property is a particular case of wasDerivedFrom (see http://www.w3.org/TR/prov-dm/#term-original-source) that aims to give credit to the source that originated some information." ; - owl:annotatedProperty rdfs:subPropertyOf ; - owl:annotatedSource :hadPrimarySource ; - owl:annotatedTarget :wasDerivedFrom . - -[] - a owl:Axiom ; - rdfs:comment "Attribution is a particular case of trace (see http://www.w3.org/TR/prov-dm/#concept-trace), in the sense that it links an entity to the agent that ascribed it." ; - owl:annotatedProperty rdfs:subPropertyOf ; - owl:annotatedSource :wasAttributedTo ; - owl:annotatedTarget :wasInfluencedBy ; - :definition "IF wasAttributedTo(e2,ag1,aAttr) holds, THEN wasInfluencedBy(e2,ag1) also holds. " . - -[] - a owl:Axiom ; - rdfs:comment "Derivation is a particular case of trace (see http://www.w3.org/TR/prov-dm/#term-trace), since it links an entity to another entity that contributed to its existence." ; - owl:annotatedProperty rdfs:subPropertyOf ; - owl:annotatedSource :wasDerivedFrom ; - owl:annotatedTarget :wasInfluencedBy . - -[] - a owl:Axiom ; - owl:annotatedProperty rdfs:range ; - owl:annotatedSource :wasInfluencedBy ; - owl:annotatedTarget [ - a owl:Class ; - owl:unionOf (:Activity - :Agent - :Entity - ) - ] ; - :definition "influencer: an identifier (o1) for an ancestor entity, activity, or agent that the former depends on;" ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-influence" . - -[] - a owl:Axiom ; - owl:annotatedProperty rdfs:domain ; - owl:annotatedSource :wasInfluencedBy ; - owl:annotatedTarget [ - a owl:Class ; - owl:unionOf (:Activity - :Agent - :Entity - ) - ] ; - :definition "influencee: an identifier (o2) for an entity, activity, or agent; " ; - :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-influence" . - -[] - a owl:Axiom ; - rdfs:comment "Quotation is a particular case of derivation (see http://www.w3.org/TR/prov-dm/#term-quotation) in which an entity is derived from an original entity by copying, or \"quoting\", some or all of it. " ; - owl:annotatedProperty rdfs:subPropertyOf ; - owl:annotatedSource :wasQuotedFrom ; - owl:annotatedTarget :wasDerivedFrom . - -[] - a owl:Axiom ; - rdfs:comment """Revision is a derivation (see http://www.w3.org/TR/prov-dm/#term-Revision). Moreover, according to -http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#term-Revision 23 April 2012 'wasRevisionOf is a strict sub-relation of wasDerivedFrom since two entities e2 and e1 may satisfy wasDerivedFrom(e2,e1) without being a variant of each other.'""" ; - owl:annotatedProperty rdfs:subPropertyOf ; - owl:annotatedSource :wasRevisionOf ; - owl:annotatedTarget :wasDerivedFrom . diff --git a/imports/sf.ttl b/imports/sf.ttl deleted file mode 100644 index 2f89264..0000000 --- a/imports/sf.ttl +++ /dev/null @@ -1,210 +0,0 @@ -@prefix dc: . -@prefix geo: . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix sf: . -@prefix skos: . -@prefix xml: . -@prefix xsd: . - -sf:Curve a rdfs:Class, - owl:Class ; - rdfs:label "Curve"@en ; - rdfs:comment """ -A Curve is a 1-dimensional geometric object usually stored as a sequence of Points, with the subtype of Curve specifying the form of the interpolation between Points. This specification defines only one subclass of Curve, LineString, which uses linear interpolation between Points. -A Curve is a 1-dimensional geometric object that is the homeomorphic image of a real, closed, interval. -A Curve is simple if it does not pass through the same Point twice with the possible exception of the two end -points. -A Curve is closed if its start Point is equal to its end Point. -The boundary of a closed Curve is empty. -A Curve that is simple and closed is a Ring. -The boundary of a non-closed Curve consists of its two end Points. -A Curve is defined as topologically closed, that is, it contains its endpoints f(a) and f(b). - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:Geometry . - -sf:Geometry a rdfs:Class, - owl:Class ; - rdfs:label "Geometry"@en ; - rdfs:comment """ -Geometry is the root class of the hierarchy. -The instantiable subclasses of Geometry are restricted to 0, 1 and 2-dimensional geometric objects that exist in 2, 3 or 4-dimensional coordinate space (R2, R3 or R4). Geometry values in R2 have points with coordinate values for x and y. Geometry values in R3 have points with coordinate values for x, y and z or for x, y and m. Geometry values in R4 have points with coordinate values for x, y, z and m. -The interpretation of the coordinates is subject to the coordinate reference systems associated to the point. All coordinates within a geometry object should be in the same coordinate reference systems. Each coordinate shall be unambiguously associated to a coordinate reference system either directly or through its containing geometry. The z coordinate of a point is typically, but not necessarily, represents altitude or elevation. The m coordinate represents a measurement. -All Geometry classes described in this specification are defined so that instances of Geometry are topologically closed, i.e. all represented geometries include their boundary as point sets. This does not affect their representation, and open version of the same classes may be used in other circumstances, such as topological representations. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf geo:Geometry . - -sf:GeometryCollection a rdfs:Class, - owl:Class ; - rdfs:label "Geometry Collection"@en ; - rdfs:comment """ -A GeometryCollection is a geometric object that is a collection of some number of geometric objects. -All the elements in a GeometryCollection shall be in the same Spatial Reference System. This is also the Spatial Reference System for the GeometryCollection. -GeometryCollection places no other constraints on its elements. Subclasses of GeometryCollection may restrict membership based on dimension and may also place other constraints on the degree of spatial overlap between elements. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:Geometry . - -sf:Line a rdfs:Class, - owl:Class ; - rdfs:label "Line"@en ; - rdfs:comment """ -A Line is a LineString with exactly 2 Points. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:LineString . - -sf:LineString a rdfs:Class, - owl:Class ; - rdfs:label "Line String"@en ; - rdfs:comment """ -A LineString is a Curve with linear interpolation between Points. Each consecutive pair of Points defines a Line segment. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:Curve . - -sf:LinearRing a rdfs:Class, - owl:Class ; - rdfs:label "Linear Ring"@en ; - rdfs:comment """ -A LinearRing is a LineString that is both closed and simple. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:LineString . - -sf:MultiCurve a rdfs:Class, - owl:Class ; - rdfs:label "Multi Curve"@en ; - rdfs:comment """ -A MultiCurve is a 1-dimensional GeometryCollection whose elements are Curves. -A MultiCurve defines a set of methods for its subclasses and is included for reasons of extensibility. -A MultiCurve is simple if and only if all of its elements are simple and the only intersections between any two elements occur at Points that are on the boundaries of both elements. -The boundary of a MultiCurve is obtained by applying the mod 2 union rule: A Point is in the boundary of a MultiCurve if it is in the boundaries of an odd number of elements of the MultiCurve. -A MultiCurve is closed if all of its elements are closed. The boundary of a closed MultiCurve is always empty. -A MultiCurve is defined as topologically closed. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:GeometryCollection . - -sf:MultiLineString a rdfs:Class, - owl:Class ; - rdfs:label "Multi Line String"@en ; - rdfs:comment """ -A MultiLineString is a MultiCurve whose elements are LineStrings. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:MultiCurve . - -sf:MultiPoint a rdfs:Class, - owl:Class ; - rdfs:label "Multi Point"@en ; - rdfs:comment """ -A MultiPoint is a 0-dimensional GeometryCollection. The elements of a MultiPoint are restricted to Points. ThePoints are not connected or ordered in any semantically important way. -A MultiPoint is simple if no two Points in the MultiPoint are equal (have identical coordinate values in X and Y). -Every MultiPoint is spatially equal to a simple Multipoint. -The boundary of a MultiPoint is the empty set. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:GeometryCollection . - -sf:MultiPolygon a rdfs:Class, - owl:Class ; - rdfs:label "Multi Polygon"@en ; - rdfs:comment """ -A MultiPolygon is a MultiSurface whose elements are Polygons. -The assertions for MultiPolygons are as follows. -a) The interiors of 2 Polygons that are elements of a MultiPolygon may not intersect. -b) The boundaries of any 2 Polygons that are elements of a MultiPolygon may not cross and may touch at only a finite number of Points. -c) A MultiPolygon is defined as topologically closed. -d) A MultiPolygon may not have cut lines, spikes or punctures, a MultiPolygon is a regular closed Point set, -e) The interior of a MultiPolygon with more than 1 Polygon is not connected; the number of connected components of the interior of a MultiPolygon is equal to the number of Polygons in the MultiPolygon. -The boundary of a MultiPolygon is a set of closed Curves (LineStrings) corresponding to the boundaries of its element Polygons. Each Curve in the boundary of the MultiPolygon is in the boundary of exactly 1 element Polygon, and every Curve in the boundary of an element Polygon is in the boundary of the MultiPolygon. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:MultiSurface . - -sf:MultiSurface a rdfs:Class, - owl:Class ; - rdfs:label "Multi Surface"@en ; - rdfs:comment """ -A MultiSurface is a 2-dimensional GeometryCollection whose elements are Surfaces, all using coordinates from the same coordinate reference system. The geometric interiors of any two Surfaces in a MultiSurface may not intersect in the full coordinate system. The boundaries of any two coplanar elements in a MultiSurface may intersect, at most, at a finite number of Points. If they were to meet along a curve, they could be merged into a single surface. -A MultiSurface may be used to represent heterogeneous surfaces collections of polygons and polyhedral surfaces. It defines a set of methods for its subclasses. The subclass of MultiSurface is MultiPolygon corresponding to a collection of Polygons only. Other collections shall use MultiSurface. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:GeometryCollection . - -sf:Point a rdfs:Class, - owl:Class ; - rdfs:label "Point"@en ; - rdfs:comment """ -A Point is a 0-dimensional geometric object and represents a single location in coordinate space. -A Point has an x-coordinate value, a y-coordinate value. If called for by the associated Spatial Reference System, it may also have coordinate values for z and m. -The boundary of a Point is the empty set. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:Geometry . - -sf:Polygon a rdfs:Class, - owl:Class ; - rdfs:label "Polygon"@en ; - rdfs:comment """ -A Polygon is a planar Surface defined by 1 exterior boundary and 0 or more interior boundaries. Each interior boundary defines a hole in the Polygon. -The exterior boundary LinearRing defines the top of the surface which is the side of the surface from which the exterior boundary appears to traverse the boundary in a counter clockwise direction. The interior LinearRings will have the opposite orientation, and appear as clockwise when viewed from the top, -The assertions for Polygons (the rules that define valid Polygons) are as follows: -a) Polygons are topologically closed; -b) The boundary of a Polygon consists of a set of LinearRings that make up its exterior and interior boundaries; -c) No two Rings in the boundary cross and the Rings in the boundary of a Polygon may intersect at a Point but only as a tangent. -d) A Polygon may not have cut lines, spikes or punctures. -e) The interior of every Polygon is a connected point set; -f) The exterior of a Polygon with 1 or more holes is not connected. Each hole defines a connected component of the exterior. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:Surface . - -sf:PolyhedralSurface a rdfs:Class, - owl:Class ; - rdfs:label "Polyhedral Surface"@en ; - rdfs:comment """ -A PolyhedralSurface is a contiguous collection of polygons, which share common boundary segments. For each pair of polygons that touch, the common boundary shall be expressible as a finite collection of LineStrings. Each such LineString shall be part of the boundary of at most 2 Polygon patches. -For any two polygons that share a common boundary, the top of the polygon shall be consistent. This means that when two LinearRings from these two Polygons traverse the common boundary segment, they do so in opposite directions. Since the Polyhedral surface is contiguous, all polygons will be thus consistently oriented. This means that a non-oriented surface (such as Mbius band) shall not have single surface representations. They may be represented by a MultiSurface. -If each such LineString is the boundary of exactly 2 Polygon patches, then the PolyhedralSurface is a simple, closed polyhedron and is topologically isomorphic to the surface of a sphere. By the Jordan Surface Theorem (Jordans Theorem for 2-spheres), such polyhedrons enclose a solid topologically isomorphic to the interior of a sphere; the ball. In this case, the top of the surface will either point inward or outward of the enclosed finite solid. If outward, the surface is the exterior boundary of the enclosed surface. If inward, the surface is the interior of the infinite complement of the enclosed solid. A Ball with some number of voids (holes) inside can thus be presented as one exterior boundary shell, and some number in interior boundary shells. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:Surface . - -sf:Surface a rdfs:Class, - owl:Class ; - rdfs:label "Surface"@en ; - rdfs:comment """ -A Surface is a 2-dimensional geometric object. -A simple Surface may consists of a single patch that is associated with one exterior boundary and 0 or more interior boundaries. A single such Surface patch in 3-dimensional space is isometric to planar Surfaces, by a simple affine rotation matrix that rotates the patch onto the plane z = 0. If the patch is not vertical, the projection onto the same plane is an isomorphism, and can be represented as a linear transformation, i.e. an affine. -Polyhedral Surfaces are formed by stitching together such simple Surfaces patches along their common boundaries. Such polyhedral Surfaces in a 3-dimensional space may not be planar as a whole, depending on the orientation of their planar normals. If all the patches are in alignment (their normals are parallel), then the whole stitched polyhedral surface is co-planar and can be represented as a single patch if it is connected. -The boundary of a simple Surface is the set of closed Curves corresponding to its exterior and interior boundaries. -A Polygon is a simple Surface that is planar. A PolyhedralSurface is a simple surface, consisting of some number of Polygon patches or facets. If a PolyhedralSurface is closed, then it bounds a solid. A MultiSurface containing a set of closed PolyhedralSurfaces can be used to represent a Solid object with holes. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:Geometry . - -sf:TIN a rdfs:Class, - owl:Class ; - rdfs:label "Triangulated Irregular Network"@en ; - rdfs:comment """ -A TIN (triangulated irregular network) is a PolyhedralSurface consisting only of Triangle patches. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:PolyhedralSurface . - -sf:Triangle a rdfs:Class, - owl:Class ; - rdfs:label "Triangle"@en ; - rdfs:comment """ - A Triangle is a polygon with 3 distinct, non-collinear vertices and no interior boundary. - """@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf sf:Polygon . - - a owl:Ontology ; - owl:imports . diff --git a/imports/skos.ttl b/imports/skos.ttl deleted file mode 100644 index 11b6483..0000000 --- a/imports/skos.ttl +++ /dev/null @@ -1,288 +0,0 @@ -@prefix dcterms: . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix skos: . -@prefix xml: . -@prefix xsd: . - -skos:altLabel a rdf:Property, - owl:AnnotationProperty ; - rdfs:label "alternative label"@en ; - rdfs:comment "The range of skos:altLabel is the class of RDF plain literals."@en, - "skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise disjoint properties."@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf rdfs:label ; - skos:definition "An alternative lexical label for a resource."@en ; - skos:example "Acronyms, abbreviations, spelling variants, and irregular plural/singular forms may be included among the alternative labels for a concept. Mis-spelled terms are normally included as hidden labels (see skos:hiddenLabel)."@en . - -skos:changeNote a rdf:Property, - owl:AnnotationProperty ; - rdfs:label "change note"@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:note ; - skos:definition "A note about a modification to a concept."@en . - -skos:definition a rdf:Property, - owl:AnnotationProperty ; - rdfs:label "definition"@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:note ; - skos:definition "A statement or formal explanation of the meaning of a concept."@en . - -skos:editorialNote a rdf:Property, - owl:AnnotationProperty ; - rdfs:label "editorial note"@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:note ; - skos:definition "A note for an editor, translator or maintainer of the vocabulary."@en . - -skos:exactMatch a rdf:Property, - owl:ObjectProperty, - owl:SymmetricProperty, - owl:TransitiveProperty ; - rdfs:label "has exact match"@en ; - rdfs:comment "skos:exactMatch is disjoint with each of the properties skos:broadMatch and skos:relatedMatch."@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:closeMatch ; - skos:definition "skos:exactMatch is used to link two concepts, indicating a high degree of confidence that the concepts can be used interchangeably across a wide range of information retrieval applications. skos:exactMatch is a transitive property, and is a sub-property of skos:closeMatch."@en . - -skos:example a rdf:Property, - owl:AnnotationProperty ; - rdfs:label "example"@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:note ; - skos:definition "An example of the use of a concept."@en . - -skos:hiddenLabel a rdf:Property, - owl:AnnotationProperty ; - rdfs:label "hidden label"@en ; - rdfs:comment "The range of skos:hiddenLabel is the class of RDF plain literals."@en, - "skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise disjoint properties."@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf rdfs:label ; - skos:definition "A lexical label for a resource that should be hidden when generating visual displays of the resource, but should still be accessible to free text search operations."@en . - -skos:historyNote a rdf:Property, - owl:AnnotationProperty ; - rdfs:label "history note"@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:note ; - skos:definition "A note about the past state/use/meaning of a concept."@en . - -skos:member a rdf:Property, - owl:ObjectProperty ; - rdfs:label "has member"@en ; - rdfs:domain skos:Collection ; - rdfs:isDefinedBy ; - rdfs:range [ a owl:Class ; - owl:unionOf ( skos:Concept skos:Collection ) ] ; - skos:definition "Relates a collection to one of its members."@en . - -skos:memberList a rdf:Property, - owl:FunctionalProperty, - owl:ObjectProperty ; - rdfs:label "has member list"@en ; - rdfs:comment """For any resource, every item in the list given as the value of the - skos:memberList property is also a value of the skos:member property."""@en ; - rdfs:domain skos:OrderedCollection ; - rdfs:isDefinedBy ; - rdfs:range rdf:List ; - skos:definition "Relates an ordered collection to the RDF list containing its members."@en . - -skos:notation a rdf:Property, - owl:DatatypeProperty ; - rdfs:label "notation"@en ; - rdfs:isDefinedBy ; - skos:definition "A notation, also known as classification code, is a string of characters such as \"T58.5\" or \"303.4833\" used to uniquely identify a concept within the scope of a given concept scheme."@en ; - skos:scopeNote "By convention, skos:notation is used with a typed literal in the object position of the triple."@en . - -skos:prefLabel a rdf:Property, - owl:AnnotationProperty ; - rdfs:label "preferred label"@en ; - rdfs:comment "A resource has no more than one value of skos:prefLabel per language tag, and no more than one value of skos:prefLabel without language tag."@en, - "The range of skos:prefLabel is the class of RDF plain literals."@en,"""skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise - disjoint properties."""@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf rdfs:label ; - skos:definition "The preferred lexical label for a resource, in a given language."@en . - -skos:relatedMatch a rdf:Property, - owl:ObjectProperty, - owl:SymmetricProperty ; - rdfs:label "has related match"@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:mappingRelation, - skos:related ; - skos:definition "skos:relatedMatch is used to state an associative mapping link between two conceptual resources in different concept schemes."@en . - -skos:scopeNote a rdf:Property, - owl:AnnotationProperty ; - rdfs:label "scope note"@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:note ; - skos:definition "A note that helps to clarify the meaning and/or the use of a concept."@en . - -skos:OrderedCollection a owl:Class ; - rdfs:label "Ordered Collection"@en ; - rdfs:isDefinedBy ; - rdfs:subClassOf skos:Collection ; - skos:definition "An ordered collection of concepts, where both the grouping and the ordering are meaningful."@en ; - skos:scopeNote "Ordered collections can be used where you would like a set of concepts to be displayed in a specific order, and optionally under a 'node label'."@en . - -skos:broadMatch a rdf:Property, - owl:ObjectProperty ; - rdfs:label "has broader match"@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:broader, - skos:mappingRelation ; - owl:inverseOf skos:narrowMatch ; - skos:definition "skos:broadMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes."@en . - -skos:closeMatch a rdf:Property, - owl:ObjectProperty, - owl:SymmetricProperty ; - rdfs:label "has close match"@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:mappingRelation ; - skos:definition "skos:closeMatch is used to link two concepts that are sufficiently similar that they can be used interchangeably in some information retrieval applications. In order to avoid the possibility of \"compound errors\" when combining mappings across more than two concept schemes, skos:closeMatch is not declared to be a transitive property."@en . - -skos:hasTopConcept a rdf:Property, - owl:ObjectProperty ; - rdfs:label "has top concept"@en ; - rdfs:domain skos:ConceptScheme ; - rdfs:isDefinedBy ; - rdfs:range skos:Concept ; - owl:inverseOf skos:topConceptOf ; - skos:definition "Relates, by convention, a concept scheme to a concept which is topmost in the broader/narrower concept hierarchies for that scheme, providing an entry point to these hierarchies."@en . - -skos:inScheme a rdf:Property, - owl:ObjectProperty ; - rdfs:label "is in scheme"@en ; - rdfs:isDefinedBy ; - rdfs:range skos:ConceptScheme ; - skos:definition "Relates a resource (for example a concept) to a concept scheme in which it is included."@en ; - skos:scopeNote "A concept may be a member of more than one concept scheme."@en . - -skos:narrowMatch a rdf:Property, - owl:ObjectProperty ; - rdfs:label "has narrower match"@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:mappingRelation, - skos:narrower ; - owl:inverseOf skos:broadMatch ; - skos:definition "skos:narrowMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes."@en . - -skos:related a rdf:Property, - owl:ObjectProperty, - owl:SymmetricProperty ; - rdfs:label "has related"@en ; - rdfs:comment "skos:related is disjoint with skos:broaderTransitive"@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:semanticRelation ; - skos:definition "Relates a concept to a concept with which there is an associative semantic relationship."@en . - -skos:topConceptOf a rdf:Property, - owl:ObjectProperty ; - rdfs:label "is top concept in scheme"@en ; - rdfs:domain skos:Concept ; - rdfs:isDefinedBy ; - rdfs:range skos:ConceptScheme ; - rdfs:subPropertyOf skos:inScheme ; - owl:inverseOf skos:hasTopConcept ; - skos:definition "Relates a concept to the concept scheme that it is a top level concept of."@en . - -skos:broader a rdf:Property, - owl:ObjectProperty ; - rdfs:label "has broader"@en ; - rdfs:comment "Broader concepts are typically rendered as parents in a concept hierarchy (tree)."@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:broaderTransitive ; - owl:inverseOf skos:narrower ; - skos:definition "Relates a concept to a concept that is more general in meaning."@en ; - skos:scopeNote "By convention, skos:broader is only used to assert an immediate (i.e. direct) hierarchical link between two conceptual resources."@en . - -skos:broaderTransitive a rdf:Property, - owl:ObjectProperty, - owl:TransitiveProperty ; - rdfs:label "has broader transitive"@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:semanticRelation ; - owl:inverseOf skos:narrowerTransitive ; - skos:definition "skos:broaderTransitive is a transitive superproperty of skos:broader." ; - skos:scopeNote "By convention, skos:broaderTransitive is not used to make assertions. Rather, the properties can be used to draw inferences about the transitive closure of the hierarchical relation, which is useful e.g. when implementing a simple query expansion algorithm in a search application."@en . - -skos:narrower a rdf:Property, - owl:ObjectProperty ; - rdfs:label "has narrower"@en ; - rdfs:comment "Narrower concepts are typically rendered as children in a concept hierarchy (tree)."@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:narrowerTransitive ; - owl:inverseOf skos:broader ; - skos:definition "Relates a concept to a concept that is more specific in meaning."@en ; - skos:scopeNote "By convention, skos:broader is only used to assert an immediate (i.e. direct) hierarchical link between two conceptual resources."@en . - -skos:narrowerTransitive a rdf:Property, - owl:ObjectProperty, - owl:TransitiveProperty ; - rdfs:label "has narrower transitive"@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:semanticRelation ; - owl:inverseOf skos:broaderTransitive ; - skos:definition "skos:narrowerTransitive is a transitive superproperty of skos:narrower." ; - skos:scopeNote "By convention, skos:narrowerTransitive is not used to make assertions. Rather, the properties can be used to draw inferences about the transitive closure of the hierarchical relation, which is useful e.g. when implementing a simple query expansion algorithm in a search application."@en . - -skos:Collection a owl:Class ; - rdfs:label "Collection"@en ; - rdfs:isDefinedBy ; - owl:disjointWith skos:Concept, - skos:ConceptScheme ; - skos:definition "A meaningful collection of concepts."@en ; - skos:scopeNote "Labelled collections can be used where you would like a set of concepts to be displayed under a 'node label' in the hierarchy."@en . - -skos:ConceptScheme a owl:Class ; - rdfs:label "Concept Scheme"@en ; - rdfs:isDefinedBy ; - owl:disjointWith skos:Concept ; - skos:definition "A set of concepts, optionally including statements about semantic relationships between those concepts."@en ; - skos:example "Thesauri, classification schemes, subject heading lists, taxonomies, 'folksonomies', and other types of controlled vocabulary are all examples of concept schemes. Concept schemes are also embedded in glossaries and terminologies."@en ; - skos:scopeNote "A concept scheme may be defined to include concepts from different sources."@en . - -skos:mappingRelation a rdf:Property, - owl:ObjectProperty ; - rdfs:label "is in mapping relation with"@en ; - rdfs:comment "These concept mapping relations mirror semantic relations, and the data model defined below is similar (with the exception of skos:exactMatch) to the data model defined for semantic relations. A distinct vocabulary is provided for concept mapping relations, to provide a convenient way to differentiate links within a concept scheme from links between concept schemes. However, this pattern of usage is not a formal requirement of the SKOS data model, and relies on informal definitions of best practice."@en ; - rdfs:isDefinedBy ; - rdfs:subPropertyOf skos:semanticRelation ; - skos:definition "Relates two concepts coming, by convention, from different schemes, and that have comparable meanings"@en . - -skos:semanticRelation a rdf:Property, - owl:ObjectProperty ; - rdfs:label "is in semantic relation with"@en ; - rdfs:domain skos:Concept ; - rdfs:isDefinedBy ; - rdfs:range skos:Concept ; - skos:definition "Links a concept to a concept related by meaning."@en ; - skos:scopeNote "This property should not be used directly, but as a super-property for all properties denoting a relationship of meaning between concepts."@en . - -skos:note a rdf:Property, - owl:AnnotationProperty ; - rdfs:label "note"@en ; - rdfs:isDefinedBy ; - skos:definition "A general note, for any purpose."@en ; - skos:scopeNote "This property may be used directly, or as a super-property for more specific note types."@en . - -skos:Concept a owl:Class ; - rdfs:label "Concept"@en ; - rdfs:isDefinedBy ; - skos:definition "An idea or notion; a unit of thought."@en . - - a owl:Ontology ; - dcterms:contributor "Dave Beckett", - "Nikki Rogers", - "Participants in W3C's Semantic Web Deployment Working Group." ; - dcterms:creator "Alistair Miles", - "Sean Bechhofer" ; - dcterms:description "An RDF vocabulary for describing the basic structure and content of concept schemes such as thesauri, classification schemes, subject heading lists, taxonomies, 'folksonomies', other types of controlled vocabulary, and also concept schemes embedded in glossaries and terminologies."@en ; - dcterms:title "SKOS Vocabulary"@en ; - rdfs:seeAlso .