Ricordisamoa has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/337219 )
Change subject: Merge stable nuclides query into general nuclides query
......................................................................
Merge stable nuclides query into general nuclides query
Decrease number of WDQS API requests.
Change-Id: Ia02c7e96c1dee82517dec77d76a64db7f1054a22
---
M nuclides.py
1 file changed, 5 insertions(+), 13 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/labs/tools/ptable
refs/changes/19/337219/1
diff --git a/nuclides.py b/nuclides.py
index 6660201..ff0f4b0 100644
--- a/nuclides.py
+++ b/nuclides.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
"""
Copyright © 2015, 2016 ArthurPSmith
-Copyright © 2016 Ricordisamoa
+Copyright © 2016-2017 Ricordisamoa
This file is part of the Wikidata periodic table.
@@ -117,16 +117,17 @@
"""Load nuclide info from Wikidata Sparql endpoint."""
def __iter__(self):
nuclides = defaultdict(Nuclide)
- nuclides_query = "SELECT ?nuclide ?atomic_number ?neutron_number
?label WHERE {{ \
+ nuclides_query = "SELECT ?nuclide ?atomic_number ?neutron_number
?stable ?label WHERE {{ \
?nuclide wdt:P{0}/wdt:P{1}* wd:Q{2} ; \
wdt:P{3} ?atomic_number ; \
wdt:P{4} ?neutron_number ; \
rdfs:label ?label ; \
FILTER NOT EXISTS {{ ?nuclide wdt:P{0} wd:Q{5} . }} \
FILTER(lang(?label) = 'en') \
+ BIND( EXISTS {{ ?nuclide wdt:P{0} wd:Q{6} . }} AS ?stable ) \
}}".format(Nuclide.instance_pid, Nuclide.subclass_pid, Nuclide.isotope_qid,
Nuclide.atomic_number_pid, Nuclide.neutron_number_pid,
- Nuclide.isomer_qid)
+ Nuclide.isomer_qid, Nuclide.stable_qid)
query_result = self.get_sparql(nuclides_query)
for nuclide_result in query_result:
nuclide_uri = nuclide_result['nuclide']['value']
@@ -138,16 +139,7 @@
nuclides[nuclide_uri].label = label
nuclides[nuclide_uri].half_life = None
nuclides[nuclide_uri].item_id = nuclide_uri.split('/')[-1]
-
- stable_query = "SELECT ?nuclide WHERE {{ \
- ?nuclide wdt:P{0}/wdt:P{1}* wd:Q{2} ; \
- wdt:P{0} wd:Q{3} . \
-}}".format(Nuclide.instance_pid, Nuclide.subclass_pid, Nuclide.isotope_qid,
- Nuclide.stable_qid)
- query_result = self.get_sparql(stable_query)
- for nuclide_result in query_result:
- nuclide_uri = nuclide_result['nuclide']['value']
- if nuclide_uri in nuclides:
+ if nuclide_result['stable']['value'] == 'true':
nuclides[nuclide_uri].classes.append('stable')
hl_query = "SELECT ?nuclide ?half_life ?half_life_unit WHERE {{ \
--
To view, visit https://gerrit.wikimedia.org/r/337219
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia02c7e96c1dee82517dec77d76a64db7f1054a22
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/ptable
Gerrit-Branch: master
Gerrit-Owner: Ricordisamoa <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits