iolanta 1.2.9__tar.gz → 1.2.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. {iolanta-1.2.9 → iolanta-1.2.11}/PKG-INFO +2 -2
  2. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/cli/main.py +1 -1
  3. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/cyberspace/processor.py +44 -15
  4. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/page_title.py +1 -2
  5. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_browser/page_switcher.py +8 -1
  6. iolanta-1.2.11/iolanta/facets/textual_ontology/sparql/visualization-vocab.sparql +3 -0
  7. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/iolanta.py +1 -3
  8. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/parse_quads.py +0 -1
  9. {iolanta-1.2.9 → iolanta-1.2.11}/pyproject.toml +2 -2
  10. iolanta-1.2.9/iolanta/facets/textual_ontology/sparql/visualization-vocab.sparql +0 -3
  11. {iolanta-1.2.9 → iolanta-1.2.11}/README.md +0 -0
  12. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/__init__.py +0 -0
  13. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/base_plugin.py +0 -0
  14. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/cli/__init__.py +0 -0
  15. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/cli/formatters/__init__.py +0 -0
  16. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/cli/formatters/choose.py +0 -0
  17. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/cli/formatters/csv.py +0 -0
  18. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/cli/formatters/json.py +0 -0
  19. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/cli/formatters/pretty.py +0 -0
  20. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/cli/models.py +0 -0
  21. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/cli/pretty_print.py +0 -0
  22. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/context.py +0 -0
  23. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/conversions.py +0 -0
  24. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/cyberspace/__init__.py +0 -0
  25. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/cyberspace/inference/wikibase-claim.sparql +0 -0
  26. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/cyberspace/inference/wikibase-statement-property.sparql +0 -0
  27. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/data/cli.yaml +0 -0
  28. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/data/context.yaml +0 -0
  29. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/data/html.yaml +0 -0
  30. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/data/iolanta.yaml +0 -0
  31. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/data/textual-browser.yaml +0 -0
  32. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/ensure_is_context.py +0 -0
  33. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/entry_points.py +0 -0
  34. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/errors.py +0 -0
  35. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/__init__.py +0 -0
  36. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/cli/__init__.py +0 -0
  37. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/cli/base.py +0 -0
  38. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/cli/default.py +0 -0
  39. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/cli/record.py +0 -0
  40. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/cli/sparql/link.sparql +0 -0
  41. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/cli/sparql/record.sparql +0 -0
  42. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/errors.py +0 -0
  43. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/facet.py +0 -0
  44. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/foaf_person_title/__init__.py +0 -0
  45. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/foaf_person_title/facet.py +0 -0
  46. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/foaf_person_title/sparql/names.sparql +0 -0
  47. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/generic/__init__.py +0 -0
  48. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/generic/bool_literal.py +0 -0
  49. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/generic/date_literal.py +0 -0
  50. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/generic/default.py +0 -0
  51. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/generic/sparql/default.sparql +0 -0
  52. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/html/__init__.py +0 -0
  53. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/html/base.py +0 -0
  54. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/html/code_literal.py +0 -0
  55. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/html/default.py +0 -0
  56. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/icon.py +0 -0
  57. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/locator.py +0 -0
  58. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/qname.py +0 -0
  59. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_browser/__init__.py +0 -0
  60. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_browser/app.py +0 -0
  61. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_browser/facet.py +0 -0
  62. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_browser/history.py +0 -0
  63. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_browser/home.py +0 -0
  64. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_browser/location.py +0 -0
  65. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_browser/models.py +0 -0
  66. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_browser/page.py +0 -0
  67. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_class/__init__.py +0 -0
  68. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_class/facets.py +0 -0
  69. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_class/sparql/instances.sparql +0 -0
  70. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_default/__init__.py +0 -0
  71. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_default/facets.py +0 -0
  72. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_default/sparql/inverse-properties.sparql +0 -0
  73. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_default/sparql/label.sparql +0 -0
  74. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_default/sparql/nodes-for-property.sparql +0 -0
  75. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_default/sparql/properties.sparql +0 -0
  76. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_default/tcss/default.tcss +0 -0
  77. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_default/templates/default.md +0 -0
  78. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_default/triple_uri_ref.py +0 -0
  79. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_default/widgets.py +0 -0
  80. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_graph/__init__.py +0 -0
  81. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_graph/facets.py +0 -0
  82. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_graph/sparql/triples.sparql +0 -0
  83. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_graph_triples.py +0 -0
  84. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_link/__init__.py +0 -0
  85. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_link/facet.py +0 -0
  86. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_nanopublication/__init__.py +0 -0
  87. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_nanopublication/facet.py +0 -0
  88. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_nanopublication/models.py +0 -0
  89. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_nanopublication/nanopublication_widget.py +0 -0
  90. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_nanopublication/term_list_widget.py +0 -0
  91. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_nanopublication/term_widget.py +0 -0
  92. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_ontology/__init__.py +0 -0
  93. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_ontology/facets.py +0 -0
  94. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_ontology/sparql/terms.sparql +0 -0
  95. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_provenance/__init__.py +0 -0
  96. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_provenance/facets.py +0 -0
  97. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_provenance/sparql/graphs.sparql +0 -0
  98. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/textual_provenance/sparql/triples.sparql +0 -0
  99. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/title/__init__.py +0 -0
  100. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/title/facets.py +0 -0
  101. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/title/sparql/title.sparql +0 -0
  102. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/wikibase_statement_title/__init__.py +0 -0
  103. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/wikibase_statement_title/facets.py +0 -0
  104. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/facets/wikibase_statement_title/sparql/statement-title.sparql +0 -0
  105. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/loaders/__init__.py +0 -0
  106. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/loaders/base.py +0 -0
  107. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/loaders/data_type_choice.py +0 -0
  108. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/loaders/dict_loader.py +0 -0
  109. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/loaders/errors.py +0 -0
  110. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/loaders/http.py +0 -0
  111. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/loaders/local_directory.py +0 -0
  112. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/loaders/local_file.py +0 -0
  113. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/loaders/scheme_choice.py +0 -0
  114. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/models.py +0 -0
  115. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/namespaces.py +0 -0
  116. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/node_to_qname.py +0 -0
  117. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/parsers/__init__.py +0 -0
  118. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/parsers/base.py +0 -0
  119. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/parsers/dict_parser.py +0 -0
  120. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/parsers/errors.py +0 -0
  121. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/parsers/json.py +0 -0
  122. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/parsers/markdown.py +0 -0
  123. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/parsers/yaml.py +0 -0
  124. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/plugin.py +0 -0
  125. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/reformat_blank_nodes.py +0 -0
  126. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/resolvers/__init__.py +0 -0
  127. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/resolvers/base.py +0 -0
  128. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/resolvers/python_import.py +0 -0
  129. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/shortcuts.py +0 -0
  130. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/stack.py +0 -0
  131. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/widgets/__init__.py +0 -0
  132. {iolanta-1.2.9 → iolanta-1.2.11}/iolanta/widgets/mixin.py +0 -0
  133. {iolanta-1.2.9 → iolanta-1.2.11}/ldflex/__init__.py +0 -0
  134. {iolanta-1.2.9 → iolanta-1.2.11}/ldflex/ldflex.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iolanta
3
- Version: 1.2.9
3
+ Version: 1.2.11
4
4
  Summary: Semantic Web browser
5
5
  License: MIT
6
6
  Author: Anatoly Scherbakov
@@ -33,7 +33,7 @@ Requires-Dist: rich (>=13.3.1)
33
33
  Requires-Dist: textual (>=0.83.0)
34
34
  Requires-Dist: typer (>=0.9.0)
35
35
  Requires-Dist: watchfiles (>=1.0.4,<2.0.0)
36
- Requires-Dist: yaml-ld (>=1.1.4)
36
+ Requires-Dist: yaml-ld (>=1.1.7)
37
37
  Requires-Dist: yarl (>=1.9.4)
38
38
  Description-Content-Type: text/markdown
39
39
 
@@ -112,7 +112,7 @@ def render_command( # noqa: WPS231, WPS238, WPS210, C901
112
112
 
113
113
  try:
114
114
  renderable, stack = iolanta.render(
115
- node=node,
115
+ node=URIRef(node),
116
116
  as_datatype=URIRef(as_datatype),
117
117
  )
118
118
 
@@ -50,6 +50,9 @@ NORMALIZE_TERMS_MAP = MappingProxyType({
50
50
 
51
51
  REASONING_ENABLED = True
52
52
  OWL_REASONING_ENABLED = False
53
+ INDICES = [
54
+ URIRef('https://iolanta.tech/visualizations/index.yaml'),
55
+ ]
53
56
 
54
57
 
55
58
  REDIRECTS = MappingProxyType({
@@ -67,7 +70,10 @@ REDIRECTS = MappingProxyType({
67
70
  # This one does not answer via HTTPS :(
68
71
  URIRef('https://xmlns.com/foaf/0.1/'): URIRef('http://xmlns.com/foaf/0.1/'),
69
72
  URIRef('https://www.nanopub.org/nschema'): URIRef(
70
- 'https://www.nanopub.net/nschema',
73
+ 'https://www.nanopub.net/nschema#',
74
+ ),
75
+ URIRef('https://nanopub.org/nschema'): URIRef(
76
+ 'https://nanopub.net/nschema#',
71
77
  ),
72
78
  URIRef(PROV): URIRef('https://www.w3.org/ns/prov-o'),
73
79
  })
@@ -278,6 +284,15 @@ def _extract_nanopublication_uris(
278
284
  )
279
285
 
280
286
 
287
+ def apply_redirect(source: URIRef) -> URIRef:
288
+ """Rewrite the URL."""
289
+ for pattern, destination in REDIRECTS.items():
290
+ if source.startswith(pattern):
291
+ return destination
292
+
293
+ return source
294
+
295
+
281
296
  @dataclasses.dataclass(frozen=True)
282
297
  class GlobalSPARQLProcessor(Processor): # noqa: WPS338, WPS214
283
298
  """
@@ -294,6 +309,7 @@ class GlobalSPARQLProcessor(Processor): # noqa: WPS338, WPS214
294
309
  def __post_init__(self):
295
310
  """Note that we do not presently need OWL inference."""
296
311
  self.graph.last_not_inferred_source = None
312
+ self.graph._indices_loaded = False
297
313
 
298
314
  def _infer_with_sparql(self):
299
315
  """
@@ -353,17 +369,12 @@ class GlobalSPARQLProcessor(Processor): # noqa: WPS338, WPS214
353
369
  ]
354
370
  self.graph.addN(inferred_quads)
355
371
 
356
- def _apply_redirect(self, source: URIRef) -> URIRef:
357
- for pattern, destination in REDIRECTS.items():
358
- if source.startswith(pattern):
359
- self.logger.info(
360
- 'Rewriting: {source} → {destination}',
361
- source=source,
362
- destination=destination,
363
- )
364
- return destination
372
+ def _maybe_load_indices(self):
373
+ if not self.graph._indices_loaded:
374
+ for index in INDICES:
375
+ self.load(index)
365
376
 
366
- return source
377
+ self.graph._indices_loaded = True
367
378
 
368
379
  def query( # noqa: WPS211, WPS210, WPS231, C901
369
380
  self,
@@ -378,6 +389,8 @@ class GlobalSPARQLProcessor(Processor): # noqa: WPS338, WPS214
378
389
  namespaces. The given base is used to resolve relative URIs in
379
390
  the query and will be overridden by any BASE given in the query.
380
391
  """
392
+ self._maybe_load_indices()
393
+
381
394
  initBindings = initBindings or {}
382
395
  initNs = initNs or {}
383
396
 
@@ -406,7 +419,7 @@ class GlobalSPARQLProcessor(Processor): # noqa: WPS338, WPS214
406
419
  try:
407
420
  self.load(url)
408
421
  except Exception as err:
409
- self.logger.error('Failed to load %s: %s', url, err)
422
+ self.logger.error(f'Failed to load {url}: {err}', url, err)
410
423
 
411
424
  self.maybe_apply_inference()
412
425
 
@@ -451,6 +464,15 @@ class GlobalSPARQLProcessor(Processor): # noqa: WPS338, WPS214
451
464
  URIRef('iolanta://_meta'),
452
465
  ))
453
466
 
467
+ def _follow_is_visualized_with_links(self, uri: URIRef):
468
+ """Follow `dcterms:isReferencedBy` links."""
469
+ self.logger.info(f'Following links for {uri}…')
470
+ triples = self.graph.triples((uri, DCTERMS.isReferencedBy, None))
471
+ for _, _, visualization in triples:
472
+ if isinstance(visualization, URIRef):
473
+ self.load(visualization)
474
+ self.logger.info('Links followed.')
475
+
454
476
  def load( # noqa: C901, WPS210, WPS212, WPS213, WPS231
455
477
  self,
456
478
  source: URIRef,
@@ -473,10 +495,17 @@ class GlobalSPARQLProcessor(Processor): # noqa: WPS338, WPS214
473
495
  # TODO: It works differently for JSON-LD documents AFAIK. Need to
474
496
  # double check that.
475
497
  url = url.with_fragment(None)
476
- source = URIRef(str(url))
498
+ source = URIRef(str(f'{url}#'))
499
+
500
+ self._follow_is_visualized_with_links(source)
477
501
 
478
- new_source = self._apply_redirect(source)
502
+ new_source = apply_redirect(source)
479
503
  if new_source != source:
504
+ self.logger.info(
505
+ 'Rewriting: {source} → {new_source}',
506
+ source=source,
507
+ new_source=new_source,
508
+ )
480
509
  return self.load(new_source)
481
510
 
482
511
  source_uri = normalize_term(source)
@@ -601,7 +630,7 @@ class GlobalSPARQLProcessor(Processor): # noqa: WPS338, WPS214
601
630
  quads = list(
602
631
  parse_quads(
603
632
  quads_document=ld_rdf,
604
- graph=source, # type: ignore
633
+ graph=source_uri,
605
634
  blank_node_prefix=str(source),
606
635
  ),
607
636
  )
@@ -45,8 +45,7 @@ class PageTitle(IolantaWidgetMixin, Static):
45
45
  title = event.worker.result
46
46
  if self.extra:
47
47
  title = f'{title} {self.extra}'
48
- self.renderable = title
49
- self.refresh()
48
+ self.update(title)
50
49
 
51
50
  case WorkerState.ERROR:
52
51
  raise ValueError(event)
@@ -258,6 +258,10 @@ class PageSwitcher(IolantaWidgetMixin, ContentSwitcher): # noqa: WPS214
258
258
  return not is_loading
259
259
  case 'abort':
260
260
  return is_loading
261
+ case 'back':
262
+ return bool(self.history.past)
263
+ case 'forward':
264
+ return bool(self.history.future)
261
265
 
262
266
  return True
263
267
 
@@ -288,12 +292,15 @@ class PageSwitcher(IolantaWidgetMixin, ContentSwitcher): # noqa: WPS214
288
292
  def action_back(self):
289
293
  """Go backward."""
290
294
  self.current = self.history.back().page_id
291
- self.focus()
295
+ if page := self.visible_content:
296
+ page.focus()
292
297
 
293
298
  def action_forward(self):
294
299
  """Go forward."""
295
300
  self.current = self.history.forward().page_id
296
301
  self.focus()
302
+ if page := self.visible_content:
303
+ page.focus()
297
304
 
298
305
 
299
306
  class ConsoleSwitcher(ContentSwitcher):
@@ -0,0 +1,3 @@
1
+ SELECT ?vocab WHERE {
2
+ ?iri dcterms:isReferencedBy ?vocab .
3
+ }
@@ -300,9 +300,7 @@ class Iolanta: # noqa: WPS214
300
300
  self.add(plugin.data_files)
301
301
  except Exception as error:
302
302
  self.logger.error(
303
- 'Cannot load %s plugin data files: %s',
304
- plugin,
305
- error,
303
+ f'Cannot load {plugin} plugin data files: {error}',
306
304
  )
307
305
 
308
306
  def __post_init__(self):
@@ -23,7 +23,6 @@ def parse_term( # noqa: C901
23
23
  term_value = term['value']
24
24
 
25
25
  if term_type == 'IRI':
26
- raise_if_term_is_qname(term_value)
27
26
  return URIRef(term_value)
28
27
 
29
28
  if term_type == 'literal':
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "iolanta"
3
- version = "1.2.9"
3
+ version = "1.2.11"
4
4
  description = "Semantic Web browser"
5
5
  authors = ["Anatoly Scherbakov <altaisoft@gmail.com>"]
6
6
  license = "MIT"
@@ -29,7 +29,7 @@ textual = ">=0.83.0"
29
29
  iolanta-tables = {version = "^0.1.7", optional = true}
30
30
  yarl = ">=1.9.4"
31
31
  boltons = ">=24.0.0"
32
- yaml-ld = ">=1.1.4"
32
+ yaml-ld = ">=1.1.7"
33
33
  reasonable = ">=0.2.6"
34
34
  oxrdflib = ">=0.4.0"
35
35
  loguru = ">=0.7.3"
@@ -1,3 +0,0 @@
1
- SELECT ?vocab WHERE {
2
- ?iri iolanta:visualized-with ?vocab .
3
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes