From 21a3917c0376999763e830dcdbc77afafb37d050 Mon Sep 17 00:00:00 2001 From: situx Date: Thu, 11 Apr 2024 19:06:21 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=2019bf5?= =?UTF-8?q?8056e7400a29c9b3f59bbfddce275ed8dd3=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- a00086.html | 6 +- a00089.html | 840 ++++++++++++++++++++++++++------------------ a00089.js | 2 + functions_d.html | 6 + functions_func.html | 6 + navtreeindex1.js | 20 +- 6 files changed, 523 insertions(+), 357 deletions(-) diff --git a/a00086.html b/a00086.html index 3a538741..609cfc97 100644 --- a/a00086.html +++ b/a00086.html @@ -77,8 +77,10 @@ detectGeometryObjectRelations(self)GraphUtils detectLiteralType(self, configuration, credentialUserName, credentialPassword, authmethod, capabilitylist)GraphUtils detectNamespaces(self, subpredobj, progress, triplestoreurl, credentialUserName=None, credentialPassword=None, authmethod=None)GraphUtils - detectTripleStoreConfiguration(self, triplestorename, triplestoreurl, detectnamespaces, prefixstore, progress, credentialUserName=None, credentialPassword=None, authmethod=None)GraphUtils - detectTripleStoreType(self, configuration, credentialUserName, credentialPassword, authmethod, capabilitylist)GraphUtils + detectSubClassOfProperty(self, triplestoreurl, credentialUserName, credentialPassword, authmethod, configuration=None)GraphUtils + detectTripleStoreConfiguration(self, triplestorename, triplestoreurl, detectnamespaces, prefixstore, progress, credentialUserName=None, credentialPassword=None, authmethod=None)GraphUtils + detectTripleStoreType(self, configuration, credentialUserName, credentialPassword, authmethod, capabilitylist)GraphUtils + detectTypeProperty(self, triplestoreurl, credentialUserName, credentialPassword, authmethod, configuration=None)GraphUtils feasibleConfigurationGraphUtils messageGraphUtils testQueriesGraphUtilsstatic diff --git a/a00089.html b/a00089.html index 65c38f5d..75833c2e 100644 --- a/a00089.html +++ b/a00089.html @@ -93,6 +93,10 @@ def detectNamespaces (self, subpredobj, progress, triplestoreurl, credentialUserName=None, credentialPassword=None, authmethod=None)  Detects namespaces available in the given triple store in subject, predicate and object position. More...
  +def detectTypeProperty (self, triplestoreurl, credentialUserName, credentialPassword, authmethod, configuration=None) +  +def detectSubClassOfProperty (self, triplestoreurl, credentialUserName, credentialPassword, authmethod, configuration=None) +  def detectEquivalentProperties (self, triplestoreurl, credentialUserName, credentialPassword, authmethod, configuration=None, equivalentPropProperty="http://www.w3.org/2002/07/owl#equivalentProperty", query="SELECT DISTINCT ?prop ?equivprop ?label WHERE { ?prop %%equivprop%% ?equivprop . OPTIONAL { ?equivprop %%labelproperty%% ?label .} }")   def detectEquivalentClasses (self, triplestoreurl, credentialUserName, credentialPassword, authmethod, configuration=None, equivalentClassProperty="http://www.w3.org/2002/07/owl#equivalentClass", query="SELECT DISTINCT ?cls ?equivcls ?label WHERE { { ?cls <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> owl:Class } UNION { ?ind <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?cls } ?cls %%equivprop%% ?equivcls . OPTIONAL { ?equivcls %%labelproperty%% ?label .} }") @@ -151,12 +155,12 @@

-
35  def __init__(self,testURL):
-
36  self.feasibleConfiguration=False
-
37  self.configuration={}
-
38  self.testURL=testURL
-
39  self.message=""
-
40 
+
37  def __init__(self,testURL):
+
38  self.feasibleConfiguration=False
+
39  self.configuration={}
+
40  self.testURL=testURL
+
41  self.message=""
+
42 
@@ -210,43 +214,43 @@

-
41  def addDefaultConfigurationParameters(self,triplestorename,triplestoreurl,credentialUserName=None,credentialPassword=None,authmethod=None):
-
42  self.configuration = {}
-
43  self.configuration["name"] = triplestorename
-
44  self.configuration["resource"]={}
-
45  if isinstance(triplestoreurl,str):
-
46  self.configuration["type"] = "sparqlendpoint"
-
47  self.configuration["resource"]["type"]="endpoint"
-
48  self.configuration["resource"]["url"] = triplestoreurl
-
49  else:
-
50  self.configuration["type"] = "file"
-
51  self.configuration["resource"]["type"]="file"
-
52  self.configuration["resource"]["instance"] = triplestoreurl
-
53  self.configuration["geoconceptlimit"] = 500
-
54  self.configuration["crs"] = 4326
-
55  if credentialUserName!=None and credentialUserName!="" and credentialPassword!=None and credentialPassword!=None:
-
56  self.configuration["auth"]={}
-
57  self.configuration["auth"]["userCredential"] = credentialUserName
-
58  self.configuration["auth"]["userPassword"] = credentialPassword
-
59  self.configuration["auth"]["method"]=authmethod
-
60  self.configuration["typeproperty"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
-
61  self.configuration["labelproperty"] = ["http://www.w3.org/2000/01/rdf-schema#label"]
-
62  self.configuration["subclassproperty"] = "http://www.w3.org/2000/01/rdf-schema#subClassOf"
-
63  self.configuration["whattoenrichquery"] = "SELECT DISTINCT (COUNT(distinct ?con) AS ?countcon) (COUNT(?rel) AS ?countrel) ?rel ?valtype\n WHERE { ?con %%typeproperty%% %%concept%% .\n ?con ?rel ?val .\n BIND( datatype(?val) AS ?valtype )\n } GROUP BY ?rel ?valtype\n ORDER BY DESC(?countrel)"
-
64  self.configuration["staticconcepts"] = []
-
65  self.configuration["mandatoryvariables"] = []
-
66  self.configuration["active"] = True
-
67  self.configuration["prefixes"] = {"owl": "http://www.w3.org/2002/07/owl#",
-
68  "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
-
69  "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
-
70  "geosparql": "http://www.opengis.net/ont/geosparql#",
-
71  "geof": "http://www.opengis.net/def/function/geosparql/",
-
72  "geor": "http://www.opengis.net/def/rule/geosparql/",
-
73  "sf": "http://www.opengis.net/ont/sf#",
-
74  "wgs84_pos": "http://www.w3.org/2003/01/geo/wgs84_pos#"}
-
75  self.configuration["whattoenrichquery"] = "SELECT DISTINCT (COUNT(distinct ?con) AS ?countcon) (COUNT(?rel) AS ?countrel) ?rel ?valtype\n WHERE {\n ?con %%typeproperty%% %%concept%% .\n ?con ?rel ?val .\n BIND( datatype(?val) AS ?valtype )\n } GROUP BY ?rel ?valtype \n ORDER BY DESC(?countrel)"
-
76  return self.configuration
-
77 
+
43  def addDefaultConfigurationParameters(self,triplestorename,triplestoreurl,credentialUserName=None,credentialPassword=None,authmethod=None):
+
44  self.configuration = {}
+
45  self.configuration["name"] = triplestorename
+
46  self.configuration["resource"]={}
+
47  if isinstance(triplestoreurl,str):
+
48  self.configuration["type"] = "sparqlendpoint"
+
49  self.configuration["resource"]["type"]="endpoint"
+
50  self.configuration["resource"]["url"] = triplestoreurl
+
51  else:
+
52  self.configuration["type"] = "file"
+
53  self.configuration["resource"]["type"]="file"
+
54  self.configuration["resource"]["instance"] = triplestoreurl
+
55  self.configuration["geoconceptlimit"] = 500
+
56  self.configuration["crs"] = 4326
+
57  if credentialUserName!=None and credentialUserName!="" and credentialPassword!=None and credentialPassword!=None:
+
58  self.configuration["auth"]={}
+
59  self.configuration["auth"]["userCredential"] = credentialUserName
+
60  self.configuration["auth"]["userPassword"] = credentialPassword
+
61  self.configuration["auth"]["method"]=authmethod
+
62  self.configuration["typeproperty"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
+
63  self.configuration["labelproperty"] = ["http://www.w3.org/2000/01/rdf-schema#label"]
+
64  self.configuration["subclassproperty"] = "http://www.w3.org/2000/01/rdf-schema#subClassOf"
+
65  self.configuration["whattoenrichquery"] = "SELECT DISTINCT (COUNT(distinct ?con) AS ?countcon) (COUNT(?rel) AS ?countrel) ?rel ?valtype\n WHERE { ?con %%typeproperty%% %%concept%% .\n ?con ?rel ?val .\n BIND( datatype(?val) AS ?valtype )\n } GROUP BY ?rel ?valtype\n ORDER BY DESC(?countrel)"
+
66  self.configuration["staticconcepts"] = []
+
67  self.configuration["mandatoryvariables"] = []
+
68  self.configuration["active"] = True
+
69  self.configuration["prefixes"] = {"owl": "http://www.w3.org/2002/07/owl#",
+
70  "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+
71  "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+
72  "geosparql": "http://www.opengis.net/ont/geosparql#",
+
73  "geof": "http://www.opengis.net/def/function/geosparql/",
+
74  "geor": "http://www.opengis.net/def/rule/geosparql/",
+
75  "sf": "http://www.opengis.net/ont/sf#",
+
76  "wgs84_pos": "http://www.w3.org/2003/01/geo/wgs84_pos#"}
+
77  self.configuration["whattoenrichquery"] = "SELECT DISTINCT (COUNT(distinct ?con) AS ?countcon) (COUNT(?rel) AS ?countrel) ?rel ?valtype\n WHERE {\n ?con %%typeproperty%% %%concept%% .\n ?con ?rel ?val .\n BIND( datatype(?val) AS ?valtype )\n } GROUP BY ?rel ?valtype \n ORDER BY DESC(?countrel)"
+
78  return self.configuration
+
79 

References GraphUtils.configuration.

@@ -281,13 +285,13 @@

Creates a String representation of the capabilities of the triple store.

-
79  def createCapabilityMessage(self,capabilitylist):
-
80  capabilitymessage="URL depicts a valid SPARQL Endpoint with the following capabilities: <ul>"
-
81  for cap in capabilitylist:
-
82  capabilitymessage+="<li>"+cap+"</li>"
-
83  capabilitymessage+="</ul>Would you like to add this SPARQL endpoint?"
-
84  return capabilitymessage
-
85 
+
81  def createCapabilityMessage(self,capabilitylist):
+
82  capabilitymessage="URL depicts a valid SPARQL Endpoint with the following capabilities: <ul>"
+
83  for cap in capabilitylist:
+
84  capabilitymessage+="<li>"+cap+"</li>"
+
85  capabilitymessage+="</ul>Would you like to add this SPARQL endpoint?"
+
86  return capabilitymessage
+
87 

Referenced by GraphUtils.detectTripleStoreConfiguration().

@@ -354,21 +358,21 @@

-
233  def detectEquivalentClasses(self,triplestoreurl,credentialUserName,credentialPassword, authmethod,configuration=None,equivalentClassProperty="http://www.w3.org/2002/07/owl#equivalentClass",query="SELECT DISTINCT ?cls ?equivcls ?label WHERE { { ?cls <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> owl:Class } UNION { ?ind <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?cls } ?cls %%equivprop%% ?equivcls . OPTIONAL { ?equivcls %%labelproperty%% ?label .} }"):
-
234  #QgsMessageLog.logMessage("Execute query: "+str(query), MESSAGE_CATEGORY, Qgis.Info)
-
235  query=query.replace("%%equivprop%%","<"+equivalentClassProperty+">").replace("%%labelproperty%%","<http://www.w3.org/2000/01/rdf-schema#label>")
-
236  results=SPARQLUtils.executeQuery(triplestoreurl,query,{"auth":{"method":authmethod,"userCredential":credentialUserName,"userPassword":credentialPassword}})
-
237  #QgsMessageLog.logMessage("Query results: "+str(results), MESSAGE_CATEGORY, Qgis.Info)
-
238  res={}
-
239  if results!=False:
-
240  for restup in results["results"]["bindings"]:
-
241  if str(restup["cls"]) not in res:
-
242  res[str(restup["cls"])]=[]
-
243  res[str(restup["cls"])].append({"uri":restup["equivcls"]})
-
244  if configuration!=None:
-
245  configuration["equivalentClasses"]=res
-
246  return res
-
247 
+
266  def detectEquivalentClasses(self,triplestoreurl,credentialUserName,credentialPassword, authmethod,configuration=None,equivalentClassProperty="http://www.w3.org/2002/07/owl#equivalentClass",query="SELECT DISTINCT ?cls ?equivcls ?label WHERE { { ?cls <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> owl:Class } UNION { ?ind <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?cls } ?cls %%equivprop%% ?equivcls . OPTIONAL { ?equivcls %%labelproperty%% ?label .} }"):
+
267  #QgsMessageLog.logMessage("Execute query: "+str(query), MESSAGE_CATEGORY, Qgis.Info)
+
268  query=query.replace("%%equivprop%%","<"+equivalentClassProperty+">").replace("%%labelproperty%%","<http://www.w3.org/2000/01/rdf-schema#label>")
+
269  results=SPARQLUtils.executeQuery(triplestoreurl,query,{"auth":{"method":authmethod,"userCredential":credentialUserName,"userPassword":credentialPassword}})
+
270  #QgsMessageLog.logMessage("Query results: "+str(results), MESSAGE_CATEGORY, Qgis.Info)
+
271  res={}
+
272  if results!=False:
+
273  for restup in results["results"]["bindings"]:
+
274  if str(restup["cls"]) not in res:
+
275  res[str(restup["cls"])]=[]
+
276  res[str(restup["cls"])].append({"uri":restup["equivcls"]})
+
277  if configuration!=None:
+
278  configuration["equivalentClasses"]=res
+
279  return res
+
280 

Referenced by GraphUtils.detectTripleStoreConfiguration().

@@ -435,21 +439,21 @@

-
218  def detectEquivalentProperties(self,triplestoreurl,credentialUserName,credentialPassword, authmethod,configuration=None,equivalentPropProperty="http://www.w3.org/2002/07/owl#equivalentProperty",query="SELECT DISTINCT ?prop ?equivprop ?label WHERE { ?prop %%equivprop%% ?equivprop . OPTIONAL { ?equivprop %%labelproperty%% ?label .} }"):
-
219  #QgsMessageLog.logMessage("Execute query: "+str(query), MESSAGE_CATEGORY, Qgis.Info)
-
220  query=query.replace("%%equivprop%%","<"+equivalentPropProperty+">").replace("%%labelproperty%%","<http://www.w3.org/2000/01/rdf-schema#label>")
-
221  results=SPARQLUtils.executeQuery(triplestoreurl,query,{"auth":{"method":authmethod,"userCredential":credentialUserName,"userPassword":credentialPassword}})
-
222  #QgsMessageLog.logMessage("Query results: "+str(results), MESSAGE_CATEGORY, Qgis.Info)
-
223  res={}
-
224  if results!=False:
-
225  for restup in results["results"]["bindings"]:
-
226  if "prop" in restup and str(restup["prop"]) not in res:
-
227  res[str(restup["prop"])]=[]
-
228  res[str(restup["prop"])].append({"uri":restup["equivprop"]})
-
229  if configuration != None:
-
230  configuration["equivalentProperties"] = res
-
231  return res
-
232 
+
251  def detectEquivalentProperties(self,triplestoreurl,credentialUserName,credentialPassword, authmethod,configuration=None,equivalentPropProperty="http://www.w3.org/2002/07/owl#equivalentProperty",query="SELECT DISTINCT ?prop ?equivprop ?label WHERE { ?prop %%equivprop%% ?equivprop . OPTIONAL { ?equivprop %%labelproperty%% ?label .} }"):
+
252  #QgsMessageLog.logMessage("Execute query: "+str(query), MESSAGE_CATEGORY, Qgis.Info)
+
253  query=query.replace("%%equivprop%%","<"+equivalentPropProperty+">").replace("%%labelproperty%%","<http://www.w3.org/2000/01/rdf-schema#label>")
+
254  results=SPARQLUtils.executeQuery(triplestoreurl,query,{"auth":{"method":authmethod,"userCredential":credentialUserName,"userPassword":credentialPassword}})
+
255  #QgsMessageLog.logMessage("Query results: "+str(results), MESSAGE_CATEGORY, Qgis.Info)
+
256  res={}
+
257  if results!=False:
+
258  for restup in results["results"]["bindings"]:
+
259  if "prop" in restup and str(restup["prop"]) not in res:
+
260  res[str(restup["prop"])]=[]
+
261  res[str(restup["prop"])].append({"uri":restup["equivprop"]})
+
262  if configuration != None:
+
263  configuration["equivalentProperties"] = res
+
264  return res
+
265 

Referenced by GraphUtils.detectTripleStoreConfiguration().

@@ -498,17 +502,17 @@

-
248  def detectGeometryLiteralRelations(self,configuration,credentialUserName,credentialPassword, authmethod):
-
249  newrels=[]
-
250  results=self.testTripleStoreConnection(configuration["resource"], self.testQueries["discoverLiteralRels"],
-
251  credentialUserName, credentialPassword, authmethod)
-
252  for result in results["results"]["bindings"]:
-
253  if "rel" in result and result["rel"]["value"] not in SPARQLUtils.geoproperties:
-
254  configuration["geotriplepattern"].append(" ?item <"+result["rel"]["value"]+"> ?geo . ")
-
255  newrels.append(result["rel"]["value"])
-
256  return newrels
-
257 
-
258 
+
281  def detectGeometryLiteralRelations(self,configuration,credentialUserName,credentialPassword, authmethod):
+
282  newrels=[]
+
283  results=self.testTripleStoreConnection(configuration["resource"], self.testQueries["discoverLiteralRels"],
+
284  credentialUserName, credentialPassword, authmethod)
+
285  for result in results["results"]["bindings"]:
+
286  if "rel" in result and result["rel"]["value"] not in SPARQLUtils.geoproperties:
+
287  configuration["geotriplepattern"].append(" ?item <"+result["rel"]["value"]+"> ?geo . ")
+
288  newrels.append(result["rel"]["value"])
+
289  return newrels
+
290 
+
291 

References GraphUtils.testQueries, and GraphUtils.testTripleStoreConnection().

@@ -529,42 +533,42 @@

-
259  def detectGeometryObjectRelations(self):
-
260  if "geotriplepattern" in self.configuration and len(self.configuration["geotriplepattern"]) > 0:
-
261  thequery = "SELECT DISTINCT ?acon ?rel WHERE { ?a <" + str(
-
262  self.configuration["typeproperty"]) + "> ?acon . ?a ?rel ?item. "
-
263  if len(self.configuration["geotriplepattern"]) > 0:
-
264  thequery += str(self.configuration["geotriplepattern"][0]) + " }"
-
265  else:
-
266  first = True
-
267  for pat in self.configuration["geotriplepattern"]:
-
268  if first:
-
269  first = False
-
270  thequery += "{ " + pat + " }"
-
271  else:
-
272  thequery += " UNION { " + pat + " }"
-
273  thequery += "}}"
-
274  results = SPARQLUtils.executeQuery(self.configuration["resource"], thequery)
-
275  if results != False:
-
276  self.configuration["geoobjproperty"] = []
-
277  self.configuration["geoclasses"] = {}
-
278  for result in results["results"]["bindings"]:
-
279  if "rel" in result \
-
280  and result["rel"]["value"] not in SPARQLUtils.georelationproperties \
-
281  and SPARQLUtils.namespaces["owl"] not in result["rel"]["value"] \
-
282  and SPARQLUtils.namespaces["rdfs"] not in result["rel"]["value"] \
-
283  and SPARQLUtils.namespaces["skos"] not in result["rel"]["value"]:
-
284  if not result["rel"]["value"] in self.configuration["geoobjproperty"]:
-
285  self.configuration["geoobjproperty"].append(result["rel"]["value"])
-
286  if "acon" in result:
-
287  if result["acon"]["value"] not in self.configuration["geoclasses"]:
-
288  self.configuration["geoclasses"][result["acon"]["value"]] = []
-
289  if not result["rel"]["value"] in self.configuration["geoclasses"][result["acon"]["value"]]:
-
290  self.configuration["geoclasses"][result["acon"]["value"]].append(result["rel"]["value"])
-
291  for cls in self.configuration["geoclasses"]:
-
292  self.configuration["geoclasses"][cls] = list(self.configuration["geoclasses"][cls])
-
293  # QgsMessageLog.logMessage(str(self.configuration["geoobjproperty"])
-
294 
+
292  def detectGeometryObjectRelations(self):
+
293  if "geotriplepattern" in self.configuration and len(self.configuration["geotriplepattern"]) > 0:
+
294  thequery = "SELECT DISTINCT ?acon ?rel WHERE { ?a <" + str(
+
295  self.configuration["typeproperty"]) + "> ?acon . ?a ?rel ?item. "
+
296  if len(self.configuration["geotriplepattern"]) > 0:
+
297  thequery += str(self.configuration["geotriplepattern"][0]) + " }"
+
298  else:
+
299  first = True
+
300  for pat in self.configuration["geotriplepattern"]:
+
301  if first:
+
302  first = False
+
303  thequery += "{ " + pat + " }"
+
304  else:
+
305  thequery += " UNION { " + pat + " }"
+
306  thequery += "}}"
+
307  results = SPARQLUtils.executeQuery(self.configuration["resource"], thequery)
+
308  if results != False:
+
309  self.configuration["geoobjproperty"] = []
+
310  self.configuration["geoclasses"] = {}
+
311  for result in results["results"]["bindings"]:
+
312  if "rel" in result \
+
313  and result["rel"]["value"] not in SPARQLUtils.georelationproperties \
+
314  and SPARQLUtils.namespaces["owl"] not in result["rel"]["value"] \
+
315  and SPARQLUtils.namespaces["rdfs"] not in result["rel"]["value"] \
+
316  and SPARQLUtils.namespaces["skos"] not in result["rel"]["value"]:
+
317  if not result["rel"]["value"] in self.configuration["geoobjproperty"]:
+
318  self.configuration["geoobjproperty"].append(result["rel"]["value"])
+
319  if "acon" in result:
+
320  if result["acon"]["value"] not in self.configuration["geoclasses"]:
+
321  self.configuration["geoclasses"][result["acon"]["value"]] = []
+
322  if not result["rel"]["value"] in self.configuration["geoclasses"][result["acon"]["value"]]:
+
323  self.configuration["geoclasses"][result["acon"]["value"]].append(result["rel"]["value"])
+
324  for cls in self.configuration["geoclasses"]:
+
325  self.configuration["geoclasses"][cls] = list(self.configuration["geoclasses"][cls])
+
326  # QgsMessageLog.logMessage(str(self.configuration["geoobjproperty"])
+
327 

References GraphUtils.configuration.

@@ -621,117 +625,117 @@

-
86  def detectLiteralType(self,configuration,credentialUserName,credentialPassword, authmethod,capabilitylist):
-
87  configuration["geotriplepattern"]=[]
-
88  configuration["querytemplate"] = []
-
89  gottype=False
-
90  geomobjprop="?item ?rel ?item_geom . "
-
91  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasGeometry"],
-
92  credentialUserName, credentialPassword, authmethod):
-
93  configuration["geometryproperty"] = ["http://www.opengis.net/ont/geosparql#hasGeometry"]
-
94  geomobjprop = "?item <http://www.opengis.net/ont/geosparql#hasGeometry> ?item_geom . "
-
95  #configuration["geotriplepattern"].append(str(geomobjprop) + " ?item_geom ?georel ?geo . ")
-
96  elif self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasWgs84Geometry"],
-
97  credentialUserName, credentialPassword, authmethod):
-
98  configuration["geometryproperty"] = ["http://www.w3.org/2003/01/geo/wgs84_pos#geometry"]
-
99  geomobjprop="?item <http://www.w3.org/2003/01/geo/wgs84_pos#geometry> ?item_geom . "
-
100  #configuration["geotriplepattern"].append(str(geomobjprop) + " ?item_geom ?georel ?geo . ")
-
101  if self.testTripleStoreConnection(configuration["resource"],self.testQueries["hasWKT"],credentialUserName,credentialPassword,authmethod):
-
102  capabilitylist.append("WKT Literals")
-
103  configuration["mandatoryvariables"] = ["item", "geo"]
-
104  if "geometryproperty" not in configuration:
-
105  configuration["geometryproperty"] = ["http://www.opengis.net/ont/geosparql#asWKT"]
-
106  configuration["geotriplepattern"].append(str(geomobjprop) + " ?item_geom <http://www.opengis.net/ont/geosparql#asWKT> ?geo . ")
-
107  configuration["geotriplepattern"].append(" ?item <http://www.opengis.net/ont/geosparql#asWKT> ?geo . ")
-
108  gottype=True
-
109  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasGML"],
-
110  credentialUserName, credentialPassword, authmethod):
-
111  capabilitylist.append("GML Literals")
-
112  configuration["mandatoryvariables"] = ["item", "geo"]
-
113  configuration["geotriplepattern"].append(str(geomobjprop)+" ?item_geom <http://www.opengis.net/ont/geosparql#asGML> ?geo . ")
-
114  configuration["geotriplepattern"].append(" ?item <http://www.opengis.net/ont/geosparql#asGML> ?geo . ")
-
115  if "geometryproperty" not in configuration:
-
116  configuration["geometryproperty"] = ["http://www.opengis.net/ont/geosparql#asGML"]
-
117  gottype = True
-
118  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasKML"],
-
119  credentialUserName, credentialPassword, authmethod):
-
120  capabilitylist.append("KML Literals")
-
121  configuration["mandatoryvariables"] = ["item", "geo"]
-
122  configuration["geotriplepattern"].append(str(geomobjprop)+" ?item_geom <http://www.opengis.net/ont/geosparql#asKML> ?geo . ")
-
123  configuration["geotriplepattern"].append(" ?item <http://www.opengis.net/ont/geosparql#asKML> ?geo . ")
-
124  if "geometryproperty" not in configuration:
-
125  configuration["geometryproperty"] = ["http://www.opengis.net/ont/geosparql#asKML"]
-
126  gottype = True
-
127  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasGeoJSON"],
-
128  credentialUserName, credentialPassword, authmethod):
-
129  capabilitylist.append("GeoJSON Literals")
-
130  configuration["mandatoryvariables"] = ["item", "geo"]
-
131  configuration["geotriplepattern"].append(str(geomobjprop)+" ?item_geom <http://www.opengis.net/ont/geosparql#asGeoJSON> ?geo . ")
-
132  configuration["geotriplepattern"].append(" ?item <http://www.opengis.net/ont/geosparql#asGeoJSON> ?geo . ")
-
133  if "geometryproperty" not in configuration:
-
134  configuration["geometryproperty"] = ["http://www.opengis.net/ont/geosparql#asGeoJSON"]
-
135  gottype = True
-
136  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasWgs84LatLon"],
-
137  credentialUserName, credentialPassword, authmethod):
-
138  capabilitylist.append("WGS84 Lat/Lon")
-
139  configuration["geometryproperty"] = ["http://www.w3.org/2003/01/geo/wgs84_pos#long",
-
140  "http://www.w3.org/2003/01/geo/wgs84_pos#lat"]
-
141  configuration["mandatoryvariables"] = ["item", "lat","lon"]
-
142  configuration["geotriplepattern"].append(" ?item <http://www.w3.org/2003/01/geo/wgs84_pos#lat> ?lat . ?item <http://www.w3.org/2003/01/geo/wgs84_pos#long> ?lon . ")
-
143  gottype = True
-
144  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasSchemaOrgGeoLatLonHTTPS"],
-
145  credentialUserName, credentialPassword, authmethod):
-
146  capabilitylist.append("Schema.org Lat/Lon")
-
147  configuration["mandatoryvariables"] = ["item", "lat", "lon"]
-
148  configuration["geometryproperty"] = ["https://schema.org/geo"]
-
149  configuration["geotriplepattern"].append(" ?item <https://schema.org/latitude> ?lat . ?item <https://schema.org/longitude> ?lon . ")
-
150  gottype = True
-
151  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasSchemaOrgGeoLatLonHTTP"],
-
152  credentialUserName, credentialPassword, authmethod):
-
153  capabilitylist.append("Schema.org Lat/Lon")
-
154  configuration["mandatoryvariables"] = ["item", "lat", "lon"]
-
155  configuration["geometryproperty"] = ["http://schema.org/geo"]
-
156  configuration["geotriplepattern"].append(" ?item <http://schema.org/latitude> ?lat . ?item <http://schema.org/longitude> ?lon . ")
-
157  gottype = True
-
158  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasSchemaOrgGeoPolygonHTTPS"],
-
159  credentialUserName, credentialPassword, authmethod):
-
160  capabilitylist.append("Schema.org Geo Polygon")
-
161  configuration["mandatoryvariables"] = ["item", "geo"]
-
162  configuration["geometryproperty"] = ["https://schema.org/polygon"]
-
163  configuration["geotriplepattern"].append(" ?item <https://schema.org/polygon> ?geo . ")
-
164  gottype = True
-
165  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasSchemaOrgGeoPolygonHTTP"],
-
166  credentialUserName, credentialPassword, authmethod):
-
167  capabilitylist.append("Schema.org Geo Polygon")
-
168  configuration["mandatoryvariables"] = ["item", "geo"]
-
169  configuration["geometryproperty"] = ["http://schema.org/polygon"]
-
170  configuration["geotriplepattern"].append(" ?item <http://schema.org/polygon> ?geo . ")
-
171  gottype = True
-
172  #self.detectGeometryLiteralRelations(configuration, credentialUserName, credentialPassword, authmethod) #Does not terminate on most triple stores
-
173  geoconceptquery="SELECT DISTINCT ?class WHERE {\n"
-
174  if len(configuration["geotriplepattern"])==1:
-
175  geoconceptquery+="?item %%typeproperty%% ?class . "+str(configuration["geotriplepattern"][0])
-
176  else:
-
177  index=0
-
178  for pat in configuration["geotriplepattern"]:
-
179  if index==0:
-
180  geoconceptquery += "{ ?item %%typeproperty%% ?class . " + str(pat)+"} "
-
181  else:
-
182  geoconceptquery += " UNION { ?item %%typeproperty%% ?class . " + str(pat) + "} "
-
183  index+=1
-
184  geoconceptquery+="} ORDER BY ?class"
-
185  configuration["geoconceptquery"] = geoconceptquery
-
186  if "geotriplepattern" in self.configuration and len(self.configuration["geotriplepattern"])>0:
-
187  self.configuration["querytemplate"].append(
-
188  {"label": "10 Random Geometries",
-
189  "query": "SELECT ?item ?lat ?lon WHERE {\n ?item %%typeproperty%% <%%concept%%> .\n "+str(self.configuration["geotriplepattern"][0])+"\n } LIMIT 10"})
-
190  self.configuration[
-
191  "subclassquery"] = "SELECT DISTINCT ?subclass ?label WHERE { ?item %%typeproperty%% ?subclass . ?item ?rel ?item_geom . " + str(
-
192  configuration["geotriplepattern"][
-
193  0]) + " ?item_geom <http://www.opengis.net/ont/geosparql#asWKT> ?wkt ."" OPTIONAL { ?subclass %%labelproperty%% ?label . } ?subclass rdfs:subClassOf %%concept%% . }"
-
194  self.configuration["geocollectionquery"] = "SELECT DISTINCT ?colinstance ?label WHERE { ?colinstance %%typeproperty%% %%concept%% . OPTIONAL { ?colinstance %%labelproperty%% ?label . } }"
-
195  return gottype
-
196 
+
88  def detectLiteralType(self,configuration,credentialUserName,credentialPassword, authmethod,capabilitylist):
+
89  configuration["geotriplepattern"]=[]
+
90  configuration["querytemplate"] = []
+
91  gottype=False
+
92  geomobjprop="?item ?rel ?item_geom . "
+
93  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasGeometry"],
+
94  credentialUserName, credentialPassword, authmethod):
+
95  configuration["geometryproperty"] = ["http://www.opengis.net/ont/geosparql#hasGeometry"]
+
96  geomobjprop = "?item <http://www.opengis.net/ont/geosparql#hasGeometry> ?item_geom . "
+
97  #configuration["geotriplepattern"].append(str(geomobjprop) + " ?item_geom ?georel ?geo . ")
+
98  elif self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasWgs84Geometry"],
+
99  credentialUserName, credentialPassword, authmethod):
+
100  configuration["geometryproperty"] = ["http://www.w3.org/2003/01/geo/wgs84_pos#geometry"]
+
101  geomobjprop="?item <http://www.w3.org/2003/01/geo/wgs84_pos#geometry> ?item_geom . "
+
102  #configuration["geotriplepattern"].append(str(geomobjprop) + " ?item_geom ?georel ?geo . ")
+
103  if self.testTripleStoreConnection(configuration["resource"],self.testQueries["hasWKT"],credentialUserName,credentialPassword,authmethod):
+
104  capabilitylist.append("WKT Literals")
+
105  configuration["mandatoryvariables"] = ["item", "geo"]
+
106  if "geometryproperty" not in configuration:
+
107  configuration["geometryproperty"] = ["http://www.opengis.net/ont/geosparql#asWKT"]
+
108  configuration["geotriplepattern"].append(str(geomobjprop) + " ?item_geom <http://www.opengis.net/ont/geosparql#asWKT> ?geo . ")
+
109  configuration["geotriplepattern"].append(" ?item <http://www.opengis.net/ont/geosparql#asWKT> ?geo . ")
+
110  gottype=True
+
111  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasGML"],
+
112  credentialUserName, credentialPassword, authmethod):
+
113  capabilitylist.append("GML Literals")
+
114  configuration["mandatoryvariables"] = ["item", "geo"]
+
115  configuration["geotriplepattern"].append(str(geomobjprop)+" ?item_geom <http://www.opengis.net/ont/geosparql#asGML> ?geo . ")
+
116  configuration["geotriplepattern"].append(" ?item <http://www.opengis.net/ont/geosparql#asGML> ?geo . ")
+
117  if "geometryproperty" not in configuration:
+
118  configuration["geometryproperty"] = ["http://www.opengis.net/ont/geosparql#asGML"]
+
119  gottype = True
+
120  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasKML"],
+
121  credentialUserName, credentialPassword, authmethod):
+
122  capabilitylist.append("KML Literals")
+
123  configuration["mandatoryvariables"] = ["item", "geo"]
+
124  configuration["geotriplepattern"].append(str(geomobjprop)+" ?item_geom <http://www.opengis.net/ont/geosparql#asKML> ?geo . ")
+
125  configuration["geotriplepattern"].append(" ?item <http://www.opengis.net/ont/geosparql#asKML> ?geo . ")
+
126  if "geometryproperty" not in configuration:
+
127  configuration["geometryproperty"] = ["http://www.opengis.net/ont/geosparql#asKML"]
+
128  gottype = True
+
129  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasGeoJSON"],
+
130  credentialUserName, credentialPassword, authmethod):
+
131  capabilitylist.append("GeoJSON Literals")
+
132  configuration["mandatoryvariables"] = ["item", "geo"]
+
133  configuration["geotriplepattern"].append(str(geomobjprop)+" ?item_geom <http://www.opengis.net/ont/geosparql#asGeoJSON> ?geo . ")
+
134  configuration["geotriplepattern"].append(" ?item <http://www.opengis.net/ont/geosparql#asGeoJSON> ?geo . ")
+
135  if "geometryproperty" not in configuration:
+
136  configuration["geometryproperty"] = ["http://www.opengis.net/ont/geosparql#asGeoJSON"]
+
137  gottype = True
+
138  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasWgs84LatLon"],
+
139  credentialUserName, credentialPassword, authmethod):
+
140  capabilitylist.append("WGS84 Lat/Lon")
+
141  configuration["geometryproperty"] = ["http://www.w3.org/2003/01/geo/wgs84_pos#long",
+
142  "http://www.w3.org/2003/01/geo/wgs84_pos#lat"]
+
143  configuration["mandatoryvariables"] = ["item", "lat","lon"]
+
144  configuration["geotriplepattern"].append(" ?item <http://www.w3.org/2003/01/geo/wgs84_pos#lat> ?lat . ?item <http://www.w3.org/2003/01/geo/wgs84_pos#long> ?lon . ")
+
145  gottype = True
+
146  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasSchemaOrgGeoLatLonHTTPS"],
+
147  credentialUserName, credentialPassword, authmethod):
+
148  capabilitylist.append("Schema.org Lat/Lon")
+
149  configuration["mandatoryvariables"] = ["item", "lat", "lon"]
+
150  configuration["geometryproperty"] = ["https://schema.org/geo"]
+
151  configuration["geotriplepattern"].append(" ?item <https://schema.org/latitude> ?lat . ?item <https://schema.org/longitude> ?lon . ")
+
152  gottype = True
+
153  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasSchemaOrgGeoLatLonHTTP"],
+
154  credentialUserName, credentialPassword, authmethod):
+
155  capabilitylist.append("Schema.org Lat/Lon")
+
156  configuration["mandatoryvariables"] = ["item", "lat", "lon"]
+
157  configuration["geometryproperty"] = ["http://schema.org/geo"]
+
158  configuration["geotriplepattern"].append(" ?item <http://schema.org/latitude> ?lat . ?item <http://schema.org/longitude> ?lon . ")
+
159  gottype = True
+
160  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasSchemaOrgGeoPolygonHTTPS"],
+
161  credentialUserName, credentialPassword, authmethod):
+
162  capabilitylist.append("Schema.org Geo Polygon")
+
163  configuration["mandatoryvariables"] = ["item", "geo"]
+
164  configuration["geometryproperty"] = ["https://schema.org/polygon"]
+
165  configuration["geotriplepattern"].append(" ?item <https://schema.org/polygon> ?geo . ")
+
166  gottype = True
+
167  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["hasSchemaOrgGeoPolygonHTTP"],
+
168  credentialUserName, credentialPassword, authmethod):
+
169  capabilitylist.append("Schema.org Geo Polygon")
+
170  configuration["mandatoryvariables"] = ["item", "geo"]
+
171  configuration["geometryproperty"] = ["http://schema.org/polygon"]
+
172  configuration["geotriplepattern"].append(" ?item <http://schema.org/polygon> ?geo . ")
+
173  gottype = True
+
174  #self.detectGeometryLiteralRelations(configuration, credentialUserName, credentialPassword, authmethod) #Does not terminate on most triple stores
+
175  geoconceptquery="SELECT DISTINCT ?class WHERE {\n"
+
176  if len(configuration["geotriplepattern"])==1:
+
177  geoconceptquery+="?item %%typeproperty%% ?class . "+str(configuration["geotriplepattern"][0])
+
178  else:
+
179  index=0
+
180  for pat in configuration["geotriplepattern"]:
+
181  if index==0:
+
182  geoconceptquery += "{ ?item %%typeproperty%% ?class . " + str(pat)+"} "
+
183  else:
+
184  geoconceptquery += " UNION { ?item %%typeproperty%% ?class . " + str(pat) + "} "
+
185  index+=1
+
186  geoconceptquery+="} ORDER BY ?class"
+
187  configuration["geoconceptquery"] = geoconceptquery
+
188  if "geotriplepattern" in self.configuration and len(self.configuration["geotriplepattern"])>0:
+
189  self.configuration["querytemplate"].append(
+
190  {"label": "10 Random Geometries",
+
191  "query": "SELECT ?item ?lat ?lon WHERE {\n ?item %%typeproperty%% <%%concept%%> .\n "+str(self.configuration["geotriplepattern"][0])+"\n } LIMIT 10"})
+
192  self.configuration[
+
193  "subclassquery"] = "SELECT DISTINCT ?subclass ?label WHERE { ?item %%typeproperty%% ?subclass . ?item ?rel ?item_geom . " + str(
+
194  configuration["geotriplepattern"][
+
195  0]) + " ?item_geom <http://www.opengis.net/ont/geosparql#asWKT> ?wkt ."" OPTIONAL { ?subclass %%labelproperty%% ?label . } ?subclass %%subclassproperty%% %%concept%% . }"
+
196  self.configuration["geocollectionquery"] = "SELECT DISTINCT ?colinstance ?label WHERE { ?colinstance %%typeproperty%% %%concept%% . OPTIONAL { ?colinstance %%labelproperty%% ?label . } }"
+
197  return gottype
+
198 

References GraphUtils.configuration, GraphUtils.testQueries, and GraphUtils.testTripleStoreConnection().

@@ -796,29 +800,107 @@

Detects namespaces available in the given triple store in subject, predicate and object position.

-
198  def detectNamespaces(self, subpredobj,progress,triplestoreurl,credentialUserName=None,credentialPassword=None,authmethod=None):
-
199  if subpredobj < 0 or subpredobj == None:
-
200  query = "select distinct ?ns where { ?s ?p ?o . bind( replace( str(?s), \"(#|/)[^#/]*$\", \"$1\" ) as ?ns )} limit 10"
-
201  elif subpredobj == 0:
-
202  query = "select distinct ?ns where { ?s ?p ?o . bind( replace( str(?p), \"(#|/)[^#/]*$\", \"$1\" ) as ?ns )} limit 10"
-
203  newtext = "\n".join(progress.labelText().split("\n")[0:-1])
-
204  progress.setLabelText(newtext + "\nCurrent Task: Namespace detection (2/3)")
-
205  else:
-
206  query = "select distinct ?ns where { ?s ?p ?o . bind( replace( str(?o), \"(#|/)[^#/]*$\", \"$1\" ) as ?ns )} limit 10"
-
207  newtext = "\n".join(progress.labelText().split("\n")[0:-1])
-
208  progress.setLabelText(newtext + "\nCurrent Task: Namespace detection (3/3)")
-
209  results=SPARQLUtils.executeQuery(triplestoreurl,query,{"auth":{"method":authmethod,"userCredential":credentialUserName,"userPassword":credentialPassword}})
-
210  if results==False:
-
211  return []
-
212  reslist = []
-
213  for nss in results["results"]["bindings"]:
-
214  if "ns" in nss:
-
215  reslist.append(nss["ns"]["value"])
-
216  return reslist
-
217 
+
200  def detectNamespaces(self, subpredobj,progress,triplestoreurl,credentialUserName=None,credentialPassword=None,authmethod=None):
+
201  if subpredobj < 0 or subpredobj == None:
+
202  query = "select distinct ?ns where { ?s ?p ?o . bind( replace( str(?s), \"(#|/)[^#/]*$\", \"$1\" ) as ?ns )} limit 10"
+
203  elif subpredobj == 0:
+
204  query = "select distinct ?ns where { ?s ?p ?o . bind( replace( str(?p), \"(#|/)[^#/]*$\", \"$1\" ) as ?ns )} limit 10"
+
205  newtext = "\n".join(progress.labelText().split("\n")[0:-1])
+
206  progress.setLabelText(newtext + "\nCurrent Task: Namespace detection (2/3)")
+
207  else:
+
208  query = "select distinct ?ns where { ?s ?p ?o . bind( replace( str(?o), \"(#|/)[^#/]*$\", \"$1\" ) as ?ns )} limit 10"
+
209  newtext = "\n".join(progress.labelText().split("\n")[0:-1])
+
210  progress.setLabelText(newtext + "\nCurrent Task: Namespace detection (3/3)")
+
211  results=SPARQLUtils.executeQuery(triplestoreurl,query,{"auth":{"method":authmethod,"userCredential":credentialUserName,"userPassword":credentialPassword}})
+
212  if results==False:
+
213  return []
+
214  reslist = []
+
215  for nss in results["results"]["bindings"]:
+
216  if "ns" in nss:
+
217  reslist.append(nss["ns"]["value"])
+
218  return reslist
+
219 

Referenced by GraphUtils.detectTripleStoreConfiguration().

+
+

+ +

◆ detectSubClassOfProperty()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def detectSubClassOfProperty ( self,
 triplestoreurl,
 credentialUserName,
 credentialPassword,
 authmethod,
 configuration = None 
)
+
+
229  def detectSubClassOfProperty(self,triplestoreurl,credentialUserName,credentialPassword, authmethod,configuration=None):
+
230  QgsMessageLog.logMessage("Execute query: "+str(self.testQueries["hassubClassOf"].replace("<"," ").replace(">"," ")), MESSAGE_CATEGORY, Qgis.Info)
+
231  results=SPARQLUtils.executeQuery(triplestoreurl,self.testQueries["hassubClassOf"],{"auth":{"method":authmethod,"userCredential":credentialUserName,"userPassword":credentialPassword}})
+
232  QgsMessageLog.logMessage("Execute query: " + str(results), MESSAGE_CATEGORY,
+
233  Qgis.Info)
+
234  if "boolean" in results and results["boolean"]:
+
235  if configuration!=None:
+
236  configuration["subclassproperty"]="http://www.w3.org/2000/01/rdf-schema#subClassOf"
+
237  return "http://www.w3.org/2000/01/rdf-schema#subClassOf"
+
238  QgsMessageLog.logMessage(
+
239  "Execute query: " + str(self.testQueries["hasSKOSTopConcept"].replace("<", " ").replace(">", " ")),
+
240  MESSAGE_CATEGORY, Qgis.Info)
+
241  results = SPARQLUtils.executeQuery(triplestoreurl, self.testQueries["hasSKOSTopConcept"], {
+
242  "auth": {"method": authmethod, "userCredential": credentialUserName, "userPassword": credentialPassword}})
+
243  QgsMessageLog.logMessage("Execute query: " + str(results), MESSAGE_CATEGORY,
+
244  Qgis.Info)
+
245  if "boolean" in results and results["boolean"]:
+
246  if configuration!=None:
+
247  configuration["subclassproperty"]="http://www.w3.org/2004/02/skos/core#hasTopConcept"
+
248  return "http://www.w3.org/2004/02/skos/core#hasTopConcept"
+
249  return ""
+
250 
+
+

References GraphUtils.testQueries.

+ +

Referenced by GraphUtils.detectTripleStoreConfiguration().

+
@@ -896,55 +978,56 @@

335  def detectTripleStoreConfiguration(self,triplestorename,triplestoreurl,detectnamespaces,prefixstore,progress,credentialUserName=None,credentialPassword=None,authmethod=None):
-
336  self.configuration=self.addDefaultConfigurationParameters(triplestorename,triplestoreurl,credentialUserName,credentialPassword,authmethod)
-
337  capabilitylist=[]
-
338  if self.testTripleStoreConnection(self.configuration["resource"],self.testQueries["available"],credentialUserName,credentialPassword,authmethod):
-
339  capabilitylist=self.detectTripleStoreType(self.configuration,credentialUserName,credentialPassword,authmethod,capabilitylist)
-
340  gottype=self.detectLiteralType(self.configuration,credentialUserName,credentialPassword,authmethod,capabilitylist)
-
341  equivprops=self.detectEquivalentProperties( self.configuration["resource"],credentialUserName, credentialPassword, authmethod,self.configuration)
-
342  equivcls=self.detectEquivalentClasses( self.configuration["resource"],credentialUserName, credentialPassword, authmethod,self.configuration)
-
343  if not gottype:
-
344  self.message = "SPARQL endpoint does not seem to include the following geometry relations:<ul><li>geo:asWKT</li><li>geo:asGeoJSON</li><li> geo:lat, geo:long</li></ul><br>A manual configuration is probably necessary to include this SPARQL endpoint if it contains geometries<br>Do you still want to add this SPARQL endpoint?"
-
345  self.feasibleConfiguration = True
-
346  res = set()
-
347  if isinstance(triplestoreurl,Graph):
-
348  for nstup in triplestoreurl.namespaces():
-
349  if str(nstup[1]) in prefixstore["reversed"]:
-
350  self.configuration["prefixes"][prefixstore["reversed"][str(nstup[1])]] = str(nstup[0])
-
351  else:
-
352  self.configuration["prefixes"][nstup[0]] = nstup[1]
-
353  elif detectnamespaces:
-
354  newtext = "\n".join(progress.labelText().split("\n")[0:-1])
-
355  progress.setLabelText(newtext + "\nCurrent Task: Namespace detection (1/3)")
-
356  res = set(self.detectNamespaces(-1,progress,self.configuration["resource"],credentialUserName,credentialPassword,authmethod) + self.detectNamespaces(0,progress,self.configuration["resource"],credentialUserName,credentialPassword,authmethod) + self.detectNamespaces(1,progress,self.configuration["resource"],credentialUserName,credentialPassword,authmethod))
-
357  i = 0
-
358  for ns in res:
-
359  if ns != "http://" and ns.startswith("http://"):
-
360  if ns in prefixstore["reversed"]:
-
361  self.configuration["prefixes"][prefixstore["reversed"][ns]] = ns
-
362  else:
-
363  self.configuration["prefixes"]["ns" + str(i)] = ns
-
364  i = i + 1
-
365  self.feasibleConfiguration = True
-
366  QgsMessageLog.logMessage(str(self.configuration))
-
367  if self.testTripleStoreConnection(self.configuration["resource"],self.testQueries["hasDCTermsTitleLabel"]):
-
368  self.configuration["labelproperty"].append("http://purl.org/dc/terms/title")
-
369  if self.testTripleStoreConnection(self.configuration["resource"],self.testQueries["hasSKOSPrefLabel"]):
-
370  self.configuration["labelproperty"].append("http://www.w3.org/2004/02/skos/core#prefLabel")
-
371  self.configuration["classfromlabelquery"] = "SELECT DISTINCT ?class ?label { ?class %%typeproperty%% <http://www.w3.org/2002/07/owl#Class> . \n"+SPARQLUtils.resolvePropertyToTriplePattern("%%labelproperty%%","?label","?class",self.configuration,"OPTIONAL","")+" FILTER(CONTAINS(?label,\"%%label%%\"))} LIMIT 100 "
-
372  self.configuration[
-
373  "propertyfromlabelquery"] = "SELECT DISTINCT ?class ?label { ?class %%typeproperty%% <http://www.w3.org/2002/07/owl#ObjectProperty> . \n"+SPARQLUtils.resolvePropertyToTriplePattern("%%labelproperty%%","?label","?class",self.configuration,"OPTIONAL","")+" FILTER(CONTAINS(?label,\"%%label%%\"))} LIMIT 100 "
-
374  #QgsMessageLog.logMessage(str("SELECT DISTINCT ?acon ?rel WHERE { ?a a ?acon . ?a ?rel ?item. "+str(self.configuration["geotriplepattern"][0])+" }"))
-
375  self.detectGeometryObjectRelations()
-
376  else:
-
377  self.message = "URL does not depict a valid SPARQL Endpoint!"
-
378  self.feasibleConfiguration = False
-
379  return False
-
380  self.message=self.createCapabilityMessage(capabilitylist)
-
381  return True
+
368  def detectTripleStoreConfiguration(self,triplestorename,triplestoreurl,detectnamespaces,prefixstore,progress,credentialUserName=None,credentialPassword=None,authmethod=None):
+
369  self.configuration=self.addDefaultConfigurationParameters(triplestorename,triplestoreurl,credentialUserName,credentialPassword,authmethod)
+
370  capabilitylist=[]
+
371  if self.testTripleStoreConnection(self.configuration["resource"],self.testQueries["available"],credentialUserName,credentialPassword,authmethod):
+
372  capabilitylist=self.detectTripleStoreType(self.configuration,credentialUserName,credentialPassword,authmethod,capabilitylist)
+
373  gottype=self.detectLiteralType(self.configuration,credentialUserName,credentialPassword,authmethod,capabilitylist)
+
374  subclassof=self.detectSubClassOfProperty(self.configuration["resource"],credentialUserName, credentialPassword, authmethod,self.configuration)
+
375  equivprops=self.detectEquivalentProperties(self.configuration["resource"],credentialUserName, credentialPassword, authmethod,self.configuration)
+
376  equivcls=self.detectEquivalentClasses(self.configuration["resource"],credentialUserName, credentialPassword, authmethod,self.configuration)
+
377  if not gottype:
+
378  self.message = "SPARQL endpoint does not seem to include the following geometry relations:<ul><li>geo:asWKT</li><li>geo:asGeoJSON</li><li> geo:lat, geo:long</li></ul><br>A manual configuration is probably necessary to include this SPARQL endpoint if it contains geometries<br>Do you still want to add this SPARQL endpoint?"
+
379  self.feasibleConfiguration = True
+
380  res = set()
+
381  if isinstance(triplestoreurl,Graph):
+
382  for nstup in triplestoreurl.namespaces():
+
383  if str(nstup[1]) in prefixstore["reversed"]:
+
384  self.configuration["prefixes"][prefixstore["reversed"][str(nstup[1])]] = str(nstup[0])
+
385  else:
+
386  self.configuration["prefixes"][nstup[0]] = nstup[1]
+
387  elif detectnamespaces:
+
388  newtext = "\n".join(progress.labelText().split("\n")[0:-1])
+
389  progress.setLabelText(newtext + "\nCurrent Task: Namespace detection (1/3)")
+
390  res = set(self.detectNamespaces(-1,progress,self.configuration["resource"],credentialUserName,credentialPassword,authmethod) + self.detectNamespaces(0,progress,self.configuration["resource"],credentialUserName,credentialPassword,authmethod) + self.detectNamespaces(1,progress,self.configuration["resource"],credentialUserName,credentialPassword,authmethod))
+
391  i = 0
+
392  for ns in res:
+
393  if ns != "http://" and ns.startswith("http://"):
+
394  if ns in prefixstore["reversed"]:
+
395  self.configuration["prefixes"][prefixstore["reversed"][ns]] = ns
+
396  else:
+
397  self.configuration["prefixes"]["ns" + str(i)] = ns
+
398  i = i + 1
+
399  self.feasibleConfiguration = True
+
400  QgsMessageLog.logMessage(str(self.configuration))
+
401  if self.testTripleStoreConnection(self.configuration["resource"],self.testQueries["hasDCTermsTitleLabel"]):
+
402  self.configuration["labelproperty"].append("http://purl.org/dc/terms/title")
+
403  if self.testTripleStoreConnection(self.configuration["resource"],self.testQueries["hasSKOSPrefLabel"]):
+
404  self.configuration["labelproperty"].append("http://www.w3.org/2004/02/skos/core#prefLabel")
+
405  self.configuration["classfromlabelquery"] = "SELECT DISTINCT ?class ?label { ?class %%typeproperty%% <http://www.w3.org/2002/07/owl#Class> . \n"+SPARQLUtils.resolvePropertyToTriplePattern("%%labelproperty%%","?label","?class",self.configuration,"OPTIONAL","")+" FILTER(CONTAINS(?label,\"%%label%%\"))} LIMIT 100 "
+
406  self.configuration[
+
407  "propertyfromlabelquery"] = "SELECT DISTINCT ?class ?label { ?class %%typeproperty%% <http://www.w3.org/2002/07/owl#ObjectProperty> . \n"+SPARQLUtils.resolvePropertyToTriplePattern("%%labelproperty%%","?label","?class",self.configuration,"OPTIONAL","")+" FILTER(CONTAINS(?label,\"%%label%%\"))} LIMIT 100 "
+
408  #QgsMessageLog.logMessage(str("SELECT DISTINCT ?acon ?rel WHERE { ?a a ?acon . ?a ?rel ?item. "+str(self.configuration["geotriplepattern"][0])+" }"))
+
409  self.detectGeometryObjectRelations()
+
410  else:
+
411  self.message = "URL does not depict a valid SPARQL Endpoint!"
+
412  self.feasibleConfiguration = False
+
413  return False
+
414  self.message=self.createCapabilityMessage(capabilitylist)
+
415  return True
-

References GraphUtils.addDefaultConfigurationParameters(), GraphUtils.configuration, GraphUtils.createCapabilityMessage(), GraphUtils.detectEquivalentClasses(), GraphUtils.detectEquivalentProperties(), GraphUtils.detectGeometryObjectRelations(), GraphUtils.detectLiteralType(), GraphUtils.detectNamespaces(), GraphUtils.detectTripleStoreType(), GraphUtils.feasibleConfiguration, GraphUtils.message, GraphUtils.testQueries, and GraphUtils.testTripleStoreConnection().

+

References GraphUtils.addDefaultConfigurationParameters(), GraphUtils.configuration, GraphUtils.createCapabilityMessage(), GraphUtils.detectEquivalentClasses(), GraphUtils.detectEquivalentProperties(), GraphUtils.detectGeometryObjectRelations(), GraphUtils.detectLiteralType(), GraphUtils.detectNamespaces(), GraphUtils.detectSubClassOfProperty(), GraphUtils.detectTripleStoreType(), GraphUtils.feasibleConfiguration, GraphUtils.message, GraphUtils.testQueries, and GraphUtils.testTripleStoreConnection().

@@ -997,35 +1080,98 @@

-
295  def detectTripleStoreType(self,configuration,credentialUserName,credentialPassword, authmethod,capabilitylist):
-
296  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["sparql11"], credentialUserName,
-
297  credentialPassword, authmethod):
-
298  configuration["resource"]["sparql11"] = True
-
299  capabilitylist.append("SPARQL 1.1 Support")
-
300  else:
-
301  configuration["resource"]["sparql11"] = False
-
302  capabilitylist.append("SPARQL 1.0 Support")
-
303  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["geosparql"], credentialUserName,
-
304  credentialPassword, authmethod):
-
305  configuration["resource"]["geosparql10"] = True
-
306  configuration["featurecollectionclasses"] = ["http://www.opengis.net/ont/geosparql#FeatureCollection"]
-
307  configuration["geometrycollectionclasses"] = ["http://www.opengis.net/ont/geosparql#GeometryCollection"]
-
308  configuration["type"] = "geosparqlendpoint"
-
309  configuration["bboxquery"] = {}
-
310  configuration["bboxquery"]["type"] = "geosparql"
-
311  configuration["bboxquery"][
-
312  "query"] = "FILTER(<http://www.opengis.net/def/function/geosparql/sfIntersects>(?geo,\"POLYGON((%%x1%% %%y1%%, %%x1%% %%y2%%, %%x2%% %%y2%%, %%x2%% %%y1%%, %%x1%% %%y1%%))\"^^<http://www.opengis.net/ont/geosparql#wktLiteral>))"
-
313  capabilitylist.append("GeoSPARQL 1.0 Support")
-
314  else:
-
315  configuration["resource"]["geosparql10"] = False
-
316  capabilitylist.append("No GeoSPARQL Support")
-
317  return capabilitylist
-
318 
+
328  def detectTripleStoreType(self,configuration,credentialUserName,credentialPassword, authmethod,capabilitylist):
+
329  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["sparql11"], credentialUserName,
+
330  credentialPassword, authmethod):
+
331  configuration["resource"]["sparql11"] = True
+
332  capabilitylist.append("SPARQL 1.1 Support")
+
333  else:
+
334  configuration["resource"]["sparql11"] = False
+
335  capabilitylist.append("SPARQL 1.0 Support")
+
336  if self.testTripleStoreConnection(configuration["resource"], self.testQueries["geosparql"], credentialUserName,
+
337  credentialPassword, authmethod):
+
338  configuration["resource"]["geosparql10"] = True
+
339  configuration["featurecollectionclasses"] = ["http://www.opengis.net/ont/geosparql#FeatureCollection"]
+
340  configuration["geometrycollectionclasses"] = ["http://www.opengis.net/ont/geosparql#GeometryCollection"]
+
341  configuration["type"] = "geosparqlendpoint"
+
342  configuration["bboxquery"] = {}
+
343  configuration["bboxquery"]["type"] = "geosparql"
+
344  configuration["bboxquery"][
+
345  "query"] = "FILTER(<http://www.opengis.net/def/function/geosparql/sfIntersects>(?geo,\"POLYGON((%%x1%% %%y1%%, %%x1%% %%y2%%, %%x2%% %%y2%%, %%x2%% %%y1%%, %%x1%% %%y1%%))\"^^<http://www.opengis.net/ont/geosparql#wktLiteral>))"
+
346  capabilitylist.append("GeoSPARQL 1.0 Support")
+
347  else:
+
348  configuration["resource"]["geosparql10"] = False
+
349  capabilitylist.append("No GeoSPARQL Support")
+
350  return capabilitylist
+
351 

References GraphUtils.testQueries, and GraphUtils.testTripleStoreConnection().

Referenced by GraphUtils.detectTripleStoreConfiguration().

+
+

+ +

◆ detectTypeProperty()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def detectTypeProperty ( self,
 triplestoreurl,
 credentialUserName,
 credentialPassword,
 authmethod,
 configuration = None 
)
+
+
220  def detectTypeProperty(self,triplestoreurl,credentialUserName,credentialPassword, authmethod,configuration=None):
+
221  QgsMessageLog.logMessage("Execute query: "+str(self.testQueries["hasRDFType"]), MESSAGE_CATEGORY, Qgis.Info)
+
222  results=SPARQLUtils.executeQuery(triplestoreurl,self.testQueries["hasRDFType"],{"auth":{"method":authmethod,"userCredential":credentialUserName,"userPassword":credentialPassword}})
+
223  if results!=False:
+
224  if configuration!=None:
+
225  configuration["typeProperty"]="http:/www.w3.org/1999/02/22-rdf-syntax-ns#type"
+
226  return "http:/www.w3.org/1999/02/22-rdf-syntax-ns#type"
+
227  return ""
+
228 
+
+

References GraphUtils.testQueries.

+
@@ -1077,20 +1223,20 @@

-
319  def testTripleStoreConnection(self, triplestoreurl, query="SELECT ?a ?b ?c WHERE { ?a ?b ?c .} LIMIT 1",credentialUserName=None,credentialPassword=None,authmethod=None):
-
320  #QgsMessageLog.logMessage("Execute query: "+str(query), MESSAGE_CATEGORY, Qgis.Info)
-
321  results=SPARQLUtils.executeQuery(triplestoreurl,query,{"auth":{"method":authmethod,"userCredential":credentialUserName,"userPassword":credentialPassword}})
-
322  #QgsMessageLog.logMessage("Query results: "+str(results), MESSAGE_CATEGORY, Qgis.Info)
-
323  if results!=False:
-
324  if self.testURL and not self.testConfiguration:
-
325  self.message = "URL depicts a valid SPARQL Endpoint!"
-
326  if "ASK" in query:
-
327  #QgsMessageLog.logMessage("Result: "+str(results["boolean"]), MESSAGE_CATEGORY, Qgis.Info)
-
328  return results["boolean"]
-
329  self.feasibleConfiguration = True
-
330  return True
-
331  return results
-
332 
+
352  def testTripleStoreConnection(self, triplestoreurl, query="SELECT ?a ?b ?c WHERE { ?a ?b ?c .} LIMIT 1",credentialUserName=None,credentialPassword=None,authmethod=None):
+
353  #QgsMessageLog.logMessage("Execute query: "+str(query), MESSAGE_CATEGORY, Qgis.Info)
+
354  results=SPARQLUtils.executeQuery(triplestoreurl,query,{"auth":{"method":authmethod,"userCredential":credentialUserName,"userPassword":credentialPassword}})
+
355  #QgsMessageLog.logMessage("Query results: "+str(results), MESSAGE_CATEGORY, Qgis.Info)
+
356  if results!=False:
+
357  if self.testURL and not self.testConfiguration:
+
358  self.message = "URL depicts a valid SPARQL Endpoint!"
+
359  if "ASK" in query:
+
360  #QgsMessageLog.logMessage("Result: "+str(results["boolean"]), MESSAGE_CATEGORY, Qgis.Info)
+
361  return results["boolean"]
+
362  self.feasibleConfiguration = True
+
363  return True
+
364  return results
+
365 

References GraphUtils.feasibleConfiguration, GraphUtils.message, and GraphUtils.testURL.

@@ -1174,7 +1320,9 @@

"hasRDFSLabel": "PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> ASK { ?a rdfs:label ?c . }",

"hasSKOSPrefLabel": "PREFIX skos:<http://www.w3.org/2004/02/skos/core#> ASK { ?a skos:prefLabel ?c . }",
"hasDCTermsTitleLabel": "PREFIX dc:<http://purl.org/dc/terms/> ASK { ?a dc:title ?c . }",
-
"hasRDFType": "PREFIX rdf:<http:/www.w3.org/1999/02/22-rdf-syntax-ns#> ASK { ?a <http:/www.w3.org/1999/02/22-rdf-syntax-ns#type> ?c . }",
+
"hasRDFType": "ASK { ?a <http:/www.w3.org/1999/02/22-rdf-syntax-ns#type> ?c . }",
+
"hassubClassOf": "ASK { ?a <http://www.w3.org/2000/01/rdf-schema#subClassOf> ?c . }",
+
"hasSKOSTopConcept": "ASK { ?a <http://www.w3.org/2004/02/skos/core#hasTopConcept> ?c . }",
"hasWKT": "PREFIX geosparql:<http://www.opengis.net/ont/geosparql#> ASK { ?a geosparql:asWKT ?c .}",
"hasGeometry": "PREFIX geosparql:<http://www.opengis.net/ont/geosparql#> ASK { ?a geosparql:hasGeometry ?c .}",
"hasJusoGeometry": "PREFIX juso:<http://rdfs.co/juso/> ASK { ?a juso:geometry ?c .}",
@@ -1190,7 +1338,7 @@

"namespaceQuery": "select distinct ?ns where { ?s ?p ?o . bind( replace( str(?s), \"(#|/)[^#/]*$\", \"$1\" ) as ?ns )} limit 10"

}

-

Referenced by GraphUtils.detectGeometryLiteralRelations(), GraphUtils.detectLiteralType(), GraphUtils.detectTripleStoreConfiguration(), and GraphUtils.detectTripleStoreType().

+

Referenced by GraphUtils.detectGeometryLiteralRelations(), GraphUtils.detectLiteralType(), GraphUtils.detectSubClassOfProperty(), GraphUtils.detectTripleStoreConfiguration(), GraphUtils.detectTripleStoreType(), and GraphUtils.detectTypeProperty().

diff --git a/a00089.js b/a00089.js index 7372f071..3332d237 100644 --- a/a00089.js +++ b/a00089.js @@ -9,8 +9,10 @@ var a00089 = [ "detectGeometryObjectRelations", "a00089.html#a775388a7d026d00670925645614fae01", null ], [ "detectLiteralType", "a00089.html#a10dfb51d3a68c3a8042e0c95935dd094", null ], [ "detectNamespaces", "a00089.html#a47f96800874cd6dd8f7ac2ae921260c1", null ], + [ "detectSubClassOfProperty", "a00089.html#a97468458a542246743171ac0f990c260", null ], [ "detectTripleStoreConfiguration", "a00089.html#aee6439c3e1b4677746fbeea5b2848d1d", null ], [ "detectTripleStoreType", "a00089.html#aca8d177d3f7ceabe0c0ef700254a19a3", null ], + [ "detectTypeProperty", "a00089.html#a00b1bd3eccdd2827c8599f70a9b5a717", null ], [ "testTripleStoreConnection", "a00089.html#a7b3140b0ee9f5c06eb66a002de8ccef0", null ], [ "configuration", "a00089.html#a32c97d3f8cd6089ccf54e7c423020b7a", null ], [ "feasibleConfiguration", "a00089.html#ab0144ff6d482c292e0fe86404f386f7b", null ], diff --git a/functions_d.html b/functions_d.html index 46181a50..347eae69 100644 --- a/functions_d.html +++ b/functions_d.html @@ -111,12 +111,18 @@

- d -

  • detectNamespaces() : GraphUtils
  • +
  • detectSubClassOfProperty() +: GraphUtils +
  • detectTripleStoreConfiguration() : GraphUtils
  • detectTripleStoreType() : GraphUtils
  • +
  • detectTypeProperty() +: GraphUtils +
  • dlg : EnrichmentTab , InterlinkingTab diff --git a/functions_func.html b/functions_func.html index 160ea28a..4ce88104 100644 --- a/functions_func.html +++ b/functions_func.html @@ -199,12 +199,18 @@

    - d -

    diff --git a/navtreeindex1.js b/navtreeindex1.js index 66fd208a..9b85e4c6 100644 --- a/navtreeindex1.js +++ b/navtreeindex1.js @@ -35,22 +35,24 @@ var NAVTREEINDEX1 = "a00085.html#a87030b4985e39b57aeea787ef0af34b9":[1,0,2,2,0,2,7], "a00085.html#af5af50facce4d4c1e55416043b1f6dd2":[1,0,2,2,0,2,3], "a00089.html":[1,0,2,2,1,0], +"a00089.html#a00b1bd3eccdd2827c8599f70a9b5a717":[1,0,2,2,1,0,12], "a00089.html#a10dfb51d3a68c3a8042e0c95935dd094":[1,0,2,2,1,0,7], -"a00089.html#a32c97d3f8cd6089ccf54e7c423020b7a":[1,0,2,2,1,0,12], +"a00089.html#a32c97d3f8cd6089ccf54e7c423020b7a":[1,0,2,2,1,0,14], "a00089.html#a47f96800874cd6dd8f7ac2ae921260c1":[1,0,2,2,1,0,8], "a00089.html#a4c3813d297c22a10eeeca9f8129c0958":[1,0,2,2,1,0,3], "a00089.html#a775388a7d026d00670925645614fae01":[1,0,2,2,1,0,6], -"a00089.html#a7b3140b0ee9f5c06eb66a002de8ccef0":[1,0,2,2,1,0,11], +"a00089.html#a7b3140b0ee9f5c06eb66a002de8ccef0":[1,0,2,2,1,0,13], "a00089.html#a82771cd4f04e72965618ce340ea9ecb0":[1,0,2,2,1,0,1], "a00089.html#a91016df63ca738ab0444ed301bbf418c":[1,0,2,2,1,0,5], +"a00089.html#a97468458a542246743171ac0f990c260":[1,0,2,2,1,0,9], "a00089.html#aa74795873f7d527a2c0a8148687873fc":[1,0,2,2,1,0,4], -"a00089.html#aacac69f65111f90a0c0d4749ff99a530":[1,0,2,2,1,0,16], -"a00089.html#ab0144ff6d482c292e0fe86404f386f7b":[1,0,2,2,1,0,13], -"a00089.html#ab8140947611504abcb64a4c277effcf5":[1,0,2,2,1,0,14], -"a00089.html#ab8d466aab9fc4839ea58f2f2f717154c":[1,0,2,2,1,0,15], +"a00089.html#aacac69f65111f90a0c0d4749ff99a530":[1,0,2,2,1,0,18], +"a00089.html#ab0144ff6d482c292e0fe86404f386f7b":[1,0,2,2,1,0,15], +"a00089.html#ab8140947611504abcb64a4c277effcf5":[1,0,2,2,1,0,16], +"a00089.html#ab8d466aab9fc4839ea58f2f2f717154c":[1,0,2,2,1,0,17], "a00089.html#ac2d9d02c106d1b6a3cf912e3efa1edf0":[1,0,2,2,1,0,2], -"a00089.html#aca8d177d3f7ceabe0c0ef700254a19a3":[1,0,2,2,1,0,10], -"a00089.html#aee6439c3e1b4677746fbeea5b2848d1d":[1,0,2,2,1,0,9], +"a00089.html#aca8d177d3f7ceabe0c0ef700254a19a3":[1,0,2,2,1,0,11], +"a00089.html#aee6439c3e1b4677746fbeea5b2848d1d":[1,0,2,2,1,0,10], "a00089.html#afe97d29cbe1aef01a45a2ac42176e8a3":[1,0,2,2,1,0,0], "a00093.html":[1,0,2,2,2,0], "a00093.html#a10a63be619f27e74faae765db238c9aa":[1,0,2,2,2,0,6], @@ -163,8 +165,8 @@ var NAVTREEINDEX1 = "annotated.html":[1,0], "classes.html":[1,1], "files.html":[2,0], -"functions.html":[1,3,0], "functions.html":[1,3,0,0], +"functions.html":[1,3,0], "functions_a.html":[1,3,0,1], "functions_b.html":[1,3,0,2], "functions_c.html":[1,3,0,3],