opengeospatial / SELFIE

Second Environmental Linked Feature Interoperability Experiment
https://opengeospatial.github.io/ELFIE
14 stars 8 forks source link

Is this JSON-LD conformant to SELFIE #69

Closed denevers closed 4 years ago

denevers commented 5 years ago

It does not use contexts. This has been generated automatically by Jena

{
  "@graph" : [ {
    "@id" : "http://geosciences.ca/def/hydraulic#HY_Catchment",
    "@type" : [ "rdfs:Resource", "http://www.w3.org/2002/07/owl#Class", "rdfs:Class" ],
    "label" : [ {
      "@language" : "en",
      "@value" : "Catchment"
    }, {
      "@language" : "fr",
      "@value" : "Bassin de drainage"
    } ],
    "subClassOf" : [ "rdfs:Resource", "http://www.w3.org/2002/07/owl#Thing", "http://geosciences.ca/def/hydraulic#HY_Catchment" ],
    "equivalentClass" : "http://geosciences.ca/def/hydraulic#HY_Catchment"
  }, {
    "@id" : "http://w-stf-a128913.nrn.nrcan.gc.ca/data/catchment/HYF/WSCSSSDA/NRCAN/02OJ*DE",
    "conformsTo" : "https://www.opengis.net/def/gwml2",
    "format" : [ "text/html", "application/vnd.geo+json" ],
    "provider" : "http://gin.gw-info.net"
  }, {
    "@id" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ",
    "@type" : [ "http://www.w3.org/2002/07/owl#Thing", "rdfs:Resource", "http://geosciences.ca/def/hydraulic#HY_Catchment" ],
    "contains" : [ "http://w-stf-a128913.nrn.nrcan.gc.ca/id/swmonitoring/WSC_02OJ016", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*AA", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_DG", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_DH", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DD", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*CD", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53510", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*CE", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DA", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DB", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_CB", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*CB", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53515", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53542", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/swmonitoring/WSC_02OJ007", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_BB", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_AB", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_CA", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_DE", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_DF", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_CF", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*CC", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*BC", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*BA", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*CA", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_BA", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53541", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DG", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53523", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DH", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/swmonitoring/MDDELCC_030415", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_AA", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/swmonitoring/MDDELCC_030430", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/swmonitoring/MDDELCC_030421", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53537", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53529", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53632", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/swmonitoring/MDDELCC_030429", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_DD", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_CD", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_CE", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_DC", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/swmonitoring/WSC_02OJ026", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*BB", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*AB", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/swmonitoring/WSC_02OJ024", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DE", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DF", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*CF", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DC", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53517", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53518", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53544", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53545", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_BC", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_CC", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_DA", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_DB" ],
    "name" : "Watershed : Richelieu",
    "label" : [ {
      "@language" : "en",
      "@value" : "Watershed: Richelieu"
    }, {
      "@language" : "fr",
      "@value" : "Bassin versant: Richelieu"
    } ],
    "sameAs" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ"
  }, {
    "@id" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DE",
    "@type" : [ "http://geosciences.ca/def/hydraulic#HY_Catchment", "rdfs:Resource", "http://www.w3.org/2002/07/owl#Thing" ],
    "contains" : [ "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_DE", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53510" ],
    "drains-into" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DF",
    "inside" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ",
    "overlaps" : [ "http://w-stf-a128913.nrn.nrcan.gc.ca/id/hydrogeounits/Richelieu2", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/hydrogeounits/Richelieu5" ],
    "name" : [ "02OJ*DE", "Watershed : Ruisseau Coderre" ],
    "subjectOf" : "http://w-stf-a128913.nrn.nrcan.gc.ca/data/catchment/HYF/WSCSSSDA/NRCAN/02OJ*DE",
    "label" : [ {
      "@language" : "en",
      "@value" : "Watershed: Ruisseau Coderre"
    }, {
      "@language" : "fr",
      "@value" : "Bassin versant: Ruisseau Coderre"
    } ],
    "sameAs" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DE"
  }, {
    "@id" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DF",
    "@type" : [ "http://geosciences.ca/def/hydraulic#HY_Catchment", "rdfs:Resource", "http://www.w3.org/2002/07/owl#Thing" ],
    "contains" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_DF",
    "drains" : [ "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DD", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DE" ],
    "drains-into" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DH",
    "inside" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ",
    "overlaps" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/hydrogeounits/Richelieu2",
    "name" : "Watershed : Ruisseau des Ormes - Riviere Richelieu",
    "label" : [ {
      "@language" : "en",
      "@value" : "Watershed: Ruisseau des Ormes - Riviere Richelieu"
    }, {
      "@language" : "fr",
      "@value" : "Bassin versant: Ruisseau des Ormes - Riviere Richelieu"
    } ],
    "sameAs" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DF"
  }, {
    "@id" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_DE",
    "@type" : [ "rdfs:Resource", "http://www.w3.org/2002/07/owl#Thing" ],
    "inside" : [ "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DE" ],
    "label" : [ {
      "@language" : "fr",
      "@value" : "Puits a l'interieur du bassin 02OJ_DE"
    }, {
      "@language" : "en",
      "@value" : "Wells inside watershed 02OJ_DE"
    } ],
    "sameAs" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/featureCollection/wellsIn02OJ_DE"
  }, {
    "@id" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53510",
    "@type" : [ "http://geosciences.ca/def/gwml/2.1#GW_MonitoringStation", "http://www.w3.org/2002/07/owl#Thing", "rdfs:Resource" ],
    "inside" : [ "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DE", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/hydrogeounits/Richelieu2", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ" ],
    "measures" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/hydrogeounits/Richelieu2",
    "near" : [ "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1978_51800_300", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1978_51798_300", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1978_51814_300", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1978_51817_300", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1982_5075_100", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1982_8654_100", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1978_51799_300", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1985_850_100", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1978_51818_300", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1978_23560_100", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1978_51816_300", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1978_51815_300", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1978_23559_100", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1982_5074_100", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1978_51811_300", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1978_51819_300", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/waterwells/qc.1986_1139_100" ],
    "subjectOf" : "http://w-stf-a128913.nrn.nrcan.gc.ca/data/gwmon/WML2/historical/GIN/prj_27.53510",
    "label" : [ {
      "@language" : "fr",
      "@value" : "Station prj_27.53510"
    }, {
      "@language" : "en",
      "@value" : "Station prj_27.53510"
    } ],
    "sameAs" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53510"
  }, {
    "@id" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/hydrogeounits/Richelieu2",
    "@type" : [ "http://www.w3.org/2002/07/owl#Thing", "rdfs:Resource", "http://geosciences.ca/def/groundwater#GW_HydrogeoUnit" ],
    "gwAquiferSystem" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/aquiferSystems/Richelieu",
    "contains" : [ "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53526", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53541", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53524", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53525", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53513", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53543", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53523", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53539", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/swmonitoring/MDDELCC_030429", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53540", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53542", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53522", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53518", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53510" ],
    "measuredBy" : [ "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53524", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53525", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53541", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53539", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53526", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53522", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53542", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53513", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53523", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53543", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53510", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53540", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53518" ],
    "overlaps" : [ "http://w-stf-a128913.nrn.nrcan.gc.ca/id/geologicUnits/015000/GSCC00053015084", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/geologicUnits/006000/GSCC00053006880", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DB", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*AB", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DG", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/geologicUnits/012000/GSCC00053012027", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/geologicUnits/001000/GSCC00053001039", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DD", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/geologicUnits/010000/GSCC00053010757", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DC", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*BC", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DE", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DH", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/geologicUnits/010000/GSCC00053010658", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DA", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DF", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/geologicUnits/006000/GSCC00053006003", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*AA", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*CF", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/geologicUnits/015000/GSCC00053015716" ],
    "description" : "\r\nThe context of the northern part of the platform of St. Lawrence (North Lowlands) is characterized by low relief and especially by relatively thick clayey sediments (> 20 m). These conditions imply a minimum recharge of the regional bedrock aquifer and a very low groundwater flow. This situation implies the presence of brackish water in the North Lowlands bedrock aquifer is due to partial leaching Champlain Sea water. This brackish water is not potable, resulting in a low aquifer potential for the bedrock, explaining the minimal use of groundwater and the use of surface water for water supply. The portion of the Yamaska between Montérégiennes and the St. Lawrence River is an important discharge. Other low diffuse dicharges are found where the clay is thinner, especially in rivers. The clay unit protects the bedrock aquifer, reducing the risk of contamination from the surface. Surficial sediment deposits such as sands overlying clay and the undifferentiated sediments in underlying clay form superficial granular aquifers.\r\n",
    "image" : "http://gin.gw-info.net/service/ngwds//en/wms/ngwd-wms/inset?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&LAYERS=area&STYLES=&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&SRS=EPSG:4326&BBOX=-73.5986876377091,45.3337367828915,-72.5095434474234,46.1505949256057&WIDTH=400&HEIGHT=300&TABLE=gw_data.hydrogeological_units&FIELD=id&ID=2",
    "name" : "Hydrogeologic unit : Northern St Lawrence Platform",
    "label" : [ {
      "@language" : "en",
      "@value" : "Hydrogeologic unit : Northern St Lawrence Platform"
    }, {
      "@language" : "fr",
      "@value" : "Unite hydrogeologique : Plate-forme du St-Laurent nord"
    } ],
    "sameAs" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/hydrogeounits/Richelieu2"
  }, {
    "@id" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/hydrogeounits/Richelieu5",
    "@type" : [ "http://geosciences.ca/def/groundwater#GW_HydrogeoUnit", "http://www.w3.org/2002/07/owl#Thing", "rdfs:Resource" ],
    "gwAquiferSystem" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/aquiferSystems/Richelieu",
    "contains" : [ "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53632", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53532" ],
    "measuredBy" : [ "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53532", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/gwmonitoring/prj_27.53632" ],
    "overlaps" : [ "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*AA", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DC", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DB", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*CE", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*BC", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/geologicUnits/010000/GSCC00053010757", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/geologicUnits/012000/GSCC00053012027", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DE", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*DA", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/catchment/02OJ*AB", "http://w-stf-a128913.nrn.nrcan.gc.ca/id/geologicUnits/006000/GSCC00053006880" ],
    "description" : "\r\nThe hydrogeological unit of Monteregian intrusions overlap St. Lawrence Platform and Appalachian formation in a roughly east-west axis. These intrusions are mainly associated with Mont Saint-Bruno, Saint-Hilaire, Rougemont, Yamaska, Saint-Grégoire, Shefford and Brome. Those hills are composed of intrusive igneous rocks; the most common are gabbros and syenites. This hydrogeological unit designates a regional recharge area of the bedrock aquifer. The unit has two types of aquifers presenting aquifer potential: bedrock aquifer and the surficial deposits on the southern part of the Monteregian hills where the coarse permeable sediments accumulations are significant. Bedrock and granular aquifers are relatively vulnerable to surface contaminations. Groundwater flows radially from the top of the hills. In terms of water quality, this unit is characterized by a distinct type of water, reflecting both local recharge and supply of advanced water. However, there are significant drinkable criteria exceeding for fluorine (F) and barium (Ba) in the groundwater of the bedrock aquifer.\r\n",
    "image" : "http://gin.gw-info.net/service/ngwds//en/wms/ngwd-wms/inset?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&LAYERS=area&STYLES=&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&SRS=EPSG:4326&BBOX=-73.3885747084599,45.1204099338932,-72.5268975189717,45.7666678260093&WIDTH=400&HEIGHT=300&TABLE=gw_data.hydrogeological_units&FIELD=id&ID=5",
    "name" : "Hydrogeologic unit : Monteregian intrusions",
    "label" : [ {
      "@language" : "fr",
      "@value" : "Unite hydrogeologique : Intrusions Monteregiennes"
    }, {
      "@language" : "en",
      "@value" : "Hydrogeologic unit : Monteregian intrusions"
    } ],
    "sameAs" : "http://w-stf-a128913.nrn.nrcan.gc.ca/id/hydrogeounits/Richelieu5"
  }, {
    "@id" : "rdfs:Resource",
    "@type" : [ "rdfs:Resource", "http://www.w3.org/2002/07/owl#Class", "rdfs:Class" ],
    "subClassOf" : "rdfs:Resource",
    "equivalentClass" : "rdfs:Resource"
  }, {
    "@id" : "http://www.w3.org/2002/07/owl#Thing",
    "@type" : [ "rdfs:Resource", "http://www.w3.org/2002/07/owl#Class", "rdfs:Class" ],
    "subClassOf" : [ "rdfs:Resource", "http://www.w3.org/2002/07/owl#Thing" ],
    "equivalentClass" : "http://www.w3.org/2002/07/owl#Thing"
  } ],
  "@context" : {
    "equivalentClass" : {
      "@id" : "http://www.w3.org/2002/07/owl#equivalentClass",
      "@type" : "@id"
    },
    "subClassOf" : {
      "@id" : "http://www.w3.org/2000/01/rdf-schema#subClassOf",
      "@type" : "@id"
    },
    "sameAs" : {
      "@id" : "http://www.w3.org/2002/07/owl#sameAs",
      "@type" : "@id"
    },
    "inside" : {
      "@id" : "http://geosciences.ca/def/hydraulic#inside",
      "@type" : "@id"
    },
    "label" : {
      "@id" : "http://www.w3.org/2000/01/rdf-schema#label"
    },
    "drains-into" : {
      "@id" : "http://geosciences.ca/def/hydraulic#drains-into",
      "@type" : "@id"
    },
    "contains" : {
      "@id" : "http://geosciences.ca/def/hydraulic#contains",
      "@type" : "@id"
    },
    "overlaps" : {
      "@id" : "http://geosciences.ca/def/hydraulic#overlaps",
      "@type" : "@id"
    },
    "drains" : {
      "@id" : "http://geosciences.ca/def/hydraulic#drains",
      "@type" : "@id"
    },
    "name" : {
      "@id" : "http://schema.org/name"
    },
    "provider" : {
      "@id" : "http://schema.org/provider",
      "@type" : "@id"
    },
    "format" : {
      "@id" : "http://purl.org/dc/terms/format"
    },
    "conformsTo" : {
      "@id" : "http://purl.org/dc/terms/conformsTo",
      "@type" : "@id"
    },
    "measuredBy" : {
      "@id" : "http://geosciences.ca/def/hydraulic#measuredBy",
      "@type" : "@id"
    },
    "gwAquiferSystem" : {
      "@id" : "http://geosciences.ca/def/groundwater#gwAquiferSystem",
      "@type" : "@id"
    },
    "description" : {
      "@id" : "http://schema.org/description"
    },
    "image" : {
      "@id" : "http://schema.org/image"
    },
    "subjectOf" : {
      "@id" : "http://schema.org/subjectOf",
      "@type" : "@id"
    },
    "near" : {
      "@id" : "http://geosciences.ca/def/hydraulic#near",
      "@type" : "@id"
    },
    "measures" : {
      "@id" : "http://geosciences.ca/def/hydraulic#measures",
      "@type" : "@id"
    },
    "schema" : "http://schema.org/",
    "dct" : "http://purl.org/dc/terms/",
    "rdfs" : "http://www.w3.org/2000/01/rdf-schema#"
  }
}
alpha-beta-soup commented 5 years ago

In what sense does it not use a context, when there's a @context property?

denevers commented 5 years ago

oh, there it is, at the very end.. Sorry, my bad. So is this ok ?

afeliachi commented 5 years ago

@denevers Can you please precise what do you mean by "conformant"? the content or the form? is this JSON-LD content supposed to be concerning one main resource?

From what I see it's a graph containing a lot of mixed things, from owl classes definitions to resources descriptions. Only two resources have related DIRs.

Can you please provide some details please :)

denevers commented 5 years ago

@abhritchie created a series of contexts that we should use to create MIR instances. I did not use (or looked) at any of them because I hope Jena RDF library can create them directly from the triple store.

I notice Jena wraps the document into a graph for instance. Does it matter ?

afeliachi commented 5 years ago

Ok I see. I think that the output needs some refining using the json-ld library. It provides a way to compact/format a jsonl-ld load by binding it to som contexts. I tried with JS, works fine. we should look it up with java.

Regarding the graph, I am afraid id does matter. I remember discussing that in ELFIE. By putting everything in a json-ld graph we lose the ELFIE pattern, i.e. first level describing the main entity + nested levels for describing related entities. In your example I see a lot of entities put on same first level since it's a graph. This is why I asked what NIR is this json-ld about.

In addition the output contains the OWL definition of some classes such as owl:Thing, HY_Catchment. I think in (S)ELFIE we decided to include only assertions about the data, and not about the ontologies. I notice also there are a lot of owl:sameAs relations that relate objects to themselfs (I don't understand that).

denevers commented 4 years ago

After discussion with @afeliachi and @sgrellet , I understand that the problem is we can't identify the resource this MIR is about. Because of the tree structure of JSON-LD, we can infer it's the resource at the root. We can't do this in TTL (and not garantee it in other encoding as well, such as N3 or even RDF/XML, although it would be possible to force it in RDF/XML). So, this solution only works for JSON-LD and RDF/XML.

In a typical move from myself to avoid unnecessary work, would it be a more robust solution to infer that the context resource (the one the MIR is about) is the resource that has a schema:subjectOf.

This works for all encoding, and would also work if the MIR is about more that one resource (and an acid test to figure if the MIR is leggit - no subjectOf, not a MIR).

The extra owl bit, I can remove easily

I notice also there are a lot of owl:sameAs relations that relate objects to themselfs (I don't understand that).

I'll check, but I think Jena is inference engine just concluded a sameAs means that resources are the same as themselves. Jena thinks we are dumb.

denevers commented 4 years ago

This works fine (I'm not a python programmer, don't judge)

import urllib
import rdflib
from rdflib import URIRef

EN_US = "This is not a MIR"
EN_CA = EN _US + ", eh"
FR_FR = "Ceci n'est pas un MIR -- Magritte" # ok.. he's Belgian. I know
FR_CA = "C'est pas un MIR, ta patente"
SCHEMAS_ORG = rdflib.Namespace("http://schema.org/")

TEST_FEATURE = "https://raw.githubusercontent.com/opengeospatial/SELFIE/master/docs/examples/meta-resource-2.geojson"

def getContextResource(g):
    ''' we assume there is at most one '''
    for subjet,obj in g.subject_objects(SCHEMAS_ORG["subjectOf"]):
        return subjet # return the first
    return None

g=rdflib.Graph()
g.parse(TEST_FEATURE,format='json-ld')
context = getContextResource(g)
if context is None:
    print(EN_US)
    print(EN_CA)
    print(FR_FR)
    print(FR_CA)
else:
    print(context)
denevers commented 4 years ago

Wait.. this does not work if there are no representations. Can a resource have no representation ?

abhritchie commented 4 years ago

Theoretically yes. We can identify a resource without creating any statements about it - say, minting a URI for a site that is to be visited. Arguably unwise and to be discouraged but not at all wrong.

abhritchie commented 4 years ago

Check out the ELFIE Context READ ME @denevers . It has a few guidelines for the structure/layout of (S)ELFIE JSON-LD documents. These will grow as we do more work.

denevers commented 4 years ago

To be honest, this is precisely the bit I wanted to avoid, hoping Jena would do the work for me.

denevers commented 4 years ago

ok.. there's hope : https://jena.apache.org/documentation/io/rdf-output.html#json-ld

dblodgett-usgs commented 4 years ago

@denevers Has this issue played its self out? Should we go ahead and close or represent anything from here in the ER?

dblodgett-usgs commented 4 years ago

Given no response and other threads we've opened up, I'm going to close this.

dblodgett-usgs commented 4 years ago

I've re-opened this issue due to a moment of (what I think to be) clarity on this.

I've been uncomfortable with the title of this issue since it was first opened. "Conformant" is the wrong way to think about what we are doing in SELFIE. We have some lightly modified ELFIE JSON-LD contexts which provide guidance. From the ELFIE ER (¶2 here emphasis added):

...the JSON-LD context was chosen as the most appropriate technical solution to express the graph views. The ELFIE contexts are meant to be precise descriptions of what the IE found to be the most appropriate linked data properties (attributes and relations) and types. They are not intended to be used as a schema to specify or validate the contents of a given document.

Given this, let's consider the dichotomy of representations that's been raised in #76. That is, (1) linked data confined to the <script> header of one or more html representations and (2) linked data representations that are ostensibly part of a LoD graph.

This issue illustrates the difficulty of getting (2) to behave in a way that would be "nice" for (1). But if we treat these as two different use cases with different requirements that relate to each other then we are freed up to let the graph be the graph (and not behave) and hack the pretty JSON-LD together however is most appropriate.

From an implementation point of view, I think this could actually be pretty slick. If we have a (2) flavor representation that comes out of a triple store, and we have templating to html, we can add (1) content to a <script> tag with templating from the full linked data graph the same as we would the rest of the html.

Using GSIP pages as an example,

  1. https://webcache.googleusercontent.com/search?q=cache:fW2VxiC1kkkJ:https://geoconnex.ca/id/hydrogeounits/Richelieu1
  2. https://geoconnex.ca/gsip/info/hydrogeounits/Richelieu1?f=ttl
  3. https://geoconnex.ca/gsip/info/hydrogeounits/Richelieu1?f=html
  4. view-source:https://geoconnex.ca/gsip/info/hydrogeounits/Richelieu1?f=html

  5. is the content that google holds in its cache about: https://geoconnex.ca/id/hydrogeounits/Richelieu1
  6. Is the full (2) linked data graph that https://geoconnex.ca/gsip/ has decided to expose through the "info" route of its API.
  7. Is the (1) html representation of that graph including templated html that https://geoconnex.ca/gsip/ thought would be useful to humans and link-hungry crawlers.
  8. Note that the source of the html page has the full graph in it.

Now the question I have is -- is there any reason not to include the full graph in the <script> tag other than it getting pretty heavy for an HTML page load?

One perspective could be if you didn't want or didn't have schema.org content in your knowledge graph, you could template schema.org content into the html page?

Is there an argument that the content of that script tag should be the same as what you get back from a json-ld or ttl representation of the same resource?

denevers commented 4 years ago

The original intent of this issue was more on the actual formatting on the JSON-LD more than content. I can generate JSON-LD from various libraries - I use Jena - and they should be "conformant" to JSON-LD. But, following some discussion with @abhritchie and @afeliachi , it seems there are extra rules in the formatting to "hint" a client of what is the context resource (the resource we are talking about). The context resource needs to be the "root" node in the JSON nesting. In fact, the same rule would need to have RDF/XML and TTL equivalents (XML encoding has nesting, but TTL is flat). So it seems we are really talking on a SELFIE (ELFIE) profile of RDF/JSON-LD

dblodgett-usgs commented 4 years ago

I understand that was the original intent, but I'm trying to get at a broader point that it brings up -- That formatting of the LD really only matters in the html <script> tag. And even then, do we really know that it does?

denevers commented 4 years ago

Good - just to be sure we were not on cross conversations.

And even then, do we really know that it does?

When you get it during dereference, no because you already know what is the context resource, it's the one you just dereferenced. But maybe there are other use cases