RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCV7g5xZTQ516P1IZug08h7vX+zOfoBnYnnuFjbVCsQrQPuwrx+MqWhZMA0lioNmRw/UKl9tSiIyYCa+QDYEFwK99KhsIXNKL4Ghr6+5rYJW8hrQ1znQ+ufYgHyjLBU+yZo0RopXBrtGz/1n2HGil90mC1puyyXBVul08To0JsCWwIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjDGQCS1S+SRnERDuYDXOugdYUP0efEquHJEEHAbU/uLzBVlga89zqrNPCS7fBE6lArBUWEmT8eLKdMapyqvAzI1J3jUWTMhDJF+XFBkUiuiFfNSc4vJJcmi0yujtnuzXsRIG202jyaP4f5ULoskFwaZOSBZJfiE0dsB3D7DTIAQIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB
RSA
TEST+this+is+not+a+real+key
Tobias Kuhn
Tobias Kuhn
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCV7g5xZTQ516P1IZug08h7vX+zOfoBnYnnuFjbVCsQrQPuwrx+MqWhZMA0lioNmRw/UKl9tSiIyYCa+QDYEFwK99KhsIXNKL4Ghr6+5rYJW8hrQ1znQ+ufYgHyjLBU+yZo0RopXBrtGz/1n2HGil90mC1puyyXBVul08To0JsCWwIDAQAB
RSA
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlo0jLDJQTVxyYFILSFoShmousrJ3yjMOgQMIusVffDOj+tAmWq2tiB1p2mIfExZWbl8sWxNaC21Q23lhMI/eYuM/FpHktwAVPmIwAHQqNFo7YDz4wxXzqvJFkvmiIm8MHp7I/0H+JEAS3ksLmP4QpY0Di+rCyANgvF7y/p5o3tLC+arYqaifFvBG5ZDoOv46Y5LytyTrqFi6pKRuc48mJ2brPj3LkI7y+lzQXpqE0JzVRY1s7z8hSdtnc0RcfKOJEqOTKRIPAmDltBjz5/AINq8YyuZ6z7BqW+E+GIHLF8tGaucGkmdinHSaj33RvdFdyDw8tsIupUy87csheUHJ9QIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjDGQCS1S+SRnERDuYDXOugdYUP0efEquHJEEHAbU/uLzBVlga89zqrNPCS7fBE6lArBUWEmT8eLKdMapyqvAzI1J3jUWTMhDJF+XFBkUiuiFfNSc4vJJcmi0yujtnuzXsRIG202jyaP4f5ULoskFwaZOSBZJfiE0dsB3D7DTIAQIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD4Wj537OijfOWVtsHMznuXKISqBhtGDQZfdO6pbb4hg9EHMcUFGTLbWaPrP783PHv8HMAAPjvEkHLaOHMIknqhaIa5236lfBO3r+ljVdYBElBcLvROmwG+ZGtmPNZf7lMhI15xf5TfoaSa84AFRd5J2EXekK6PhaFQhRm1IpSYtwIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB
Tobias Kuhn
Tobias Kuhn
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCV7g5xZTQ516P1IZug08h7vX+zOfoBnYnnuFjbVCsQrQPuwrx+MqWhZMA0lioNmRw/UKl9tSiIyYCa+QDYEFwK99KhsIXNKL4Ghr6+5rYJW8hrQ1znQ+ufYgHyjLBU+yZo0RopXBrtGz/1n2HGil90mC1puyyXBVul08To0JsCWwIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjDGQCS1S+SRnERDuYDXOugdYUP0efEquHJEEHAbU/uLzBVlga89zqrNPCS7fBE6lArBUWEmT8eLKdMapyqvAzI1J3jUWTMhDJF+XFBkUiuiFfNSc4vJJcmi0yujtnuzXsRIG202jyaP4f5ULoskFwaZOSBZJfiE0dsB3D7DTIAQIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD4Wj537OijfOWVtsHMznuXKISqBhtGDQZfdO6pbb4hg9EHMcUFGTLbWaPrP783PHv8HMAAPjvEkHLaOHMIknqhaIa5236lfBO3r+ljVdYBElBcLvROmwG+ZGtmPNZf7lMhI15xf5TfoaSa84AFRd5J2EXekK6PhaFQhRm1IpSYtwIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCV7g5xZTQ516P1IZug08h7vX+zOfoBnYnnuFjbVCsQrQPuwrx+MqWhZMA0lioNmRw/UKl9tSiIyYCa+QDYEFwK99KhsIXNKL4Ghr6+5rYJW8hrQ1znQ+ufYgHyjLBU+yZo0RopXBrtGz/1n2HGil90mC1puyyXBVul08To0JsCWwIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjDGQCS1S+SRnERDuYDXOugdYUP0efEquHJEEHAbU/uLzBVlga89zqrNPCS7fBE6lArBUWEmT8eLKdMapyqvAzI1J3jUWTMhDJF+XFBkUiuiFfNSc4vJJcmi0yujtnuzXsRIG202jyaP4f5ULoskFwaZOSBZJfiE0dsB3D7DTIAQIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDiPsiQ+To8TLZ93QQzNLNoA2vbGsRzkFtZAkSDar4Y8wz0/G+L/n9oaR050HlsJ67s/xUQmz+4fjM+ysQeBEHBB9DXFXR2ItCzeJj6cpf0/voKEIEN/8lOrwQv3CMhzKQXtLYppCDMHpeUcrri8OwW6VoKqQlNmFKN3QRG5R6gcwIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB
Tobias Kuhn
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCV7g5xZTQ516P1IZug08h7vX+zOfoBnYnnuFjbVCsQrQPuwrx+MqWhZMA0lioNmRw/UKl9tSiIyYCa+QDYEFwK99KhsIXNKL4Ghr6+5rYJW8hrQ1znQ+ufYgHyjLBU+yZo0RopXBrtGz/1n2HGil90mC1puyyXBVul08To0JsCWwIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjDGQCS1S+SRnERDuYDXOugdYUP0efEquHJEEHAbU/uLzBVlga89zqrNPCS7fBE6lArBUWEmT8eLKdMapyqvAzI1J3jUWTMhDJF+XFBkUiuiFfNSc4vJJcmi0yujtnuzXsRIG202jyaP4f5ULoskFwaZOSBZJfiE0dsB3D7DTIAQIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB
Tobias Kuhn
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCV7g5xZTQ516P1IZug08h7vX+zOfoBnYnnuFjbVCsQrQPuwrx+MqWhZMA0lioNmRw/UKl9tSiIyYCa+QDYEFwK99KhsIXNKL4Ghr6+5rYJW8hrQ1znQ+ufYgHyjLBU+yZo0RopXBrtGz/1n2HGil90mC1puyyXBVul08To0JsCWwIDAQAB
RSA
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB
Tobias Kuhn
About me
I am CEO and Founder at Knowledge Pixels (and a former academic) focussing on how we can apply semantic technologies in a user-friendly manner to radically improve the communication of knowledge.
GitHub
Google Scholar
LinkedIn profile
Mastodon
my website
Around five years after I first started working on this document about the vision of a Knowledge Space, I am finally ready to call this version 1.0! 😁 And it's now actually more than just a vision, as all the main parts have been implemented (see "Current Implementations"). I'm always curious to hear feedback, and there will be follow-ups on the implementation side.
2026-04-27
Knowledge Space 1.0
Now at a session centered around Oomnium and its crowd-financing platform.
2026-04-09
Oomnium
Interesting: Pivotal AG, a company that helps startups pivoting. (Right now listening to its CEO Stefan Zanetti)
2026-04-09
Pivotal AG
At the Swiss Startup Association's Founders Day today all day. Really enjoying it :)
2026-04-09
Founders Day
Now at a session on sales strategy. Julian Liniger (Relai): "Product has to come first, sales afterwards. You need to fully focus the first few years on making a great product. Only then sales makes even sense."
2026-04-09
Sales strategies
Listening to Tobias Rain on the story of GetYourGuide.
2026-04-09
GetYourGuide
Attending Founders Day (https://swissstartupassociation.ch/founders-day-2026/), where Cristian Grossman (Beekeeper) is saying: "as an early stage startup, you shoul fall in love with the problem, not with your solution".
2026-04-09
Cristian Grossman at Founders Day
Now session on investor views: "don't tailor your story to the investor - find the right investor for your story"
2026-04-09
Investor views
<p>I just gave my talk "Aligning and Globally Indexing Diverse FDOs with Nanopublications" at the FDO Conference (<a href="https://docs.google.com/presentation/d/11NSdx7CrWQzA-IjSTsddRfzHKrT_zfgZC0xVs_f_YCk/edit?usp=sharing">slides</a>). I think it went really well and we now have 39 participants listed on the <a href="https://w3id.org/spaces/fdo-conference-2026">Nanodash space for the conference</a>. 😊</p>
2026-03-26
Nanopubs4FDO presentation at FDO Conference
Greetings from the night train to Vienna, looking forward to participating in the FDO conference starting tomorrow! :)
2026-03-23
Night train to Vienna
<p>Next week I'll be at the FDO Conference in Vienna (March 24–27) with two contributions:</p>
<p>🎓 Tuesday: Nanopublications tutorial on the pre-conference training day — a hands-on introduction to nanopublication-based FAIR Digital Objects</p>
<p>🎤 Thursday: "Aligning and globally indexing diverse FDOs with nanopublications" — how nanopublications can serve as a bridge to connect and index different FDO implementations</p>
<p>If you're attending and interested in how structured, machine-readable knowledge sharing works in practice, come join us!</p>
<a href="https://fairdo.org/fdo-conference-2026/">https://fairdo.org/fdo-conference-2026/</a>
2026-03-20
Presenting at FDO Conference next week
Yes, you get what you optimize/incentivize for.
Sometimes quantitative metrics are needed and helpful though. But for these cases there is quite a simple recipe: Base these metrics on open data, use a bunch of them for different contexts, and reconsider and adjust them regularly. Like that any kind of long-term gaming of these metrics can be canceled out by future versions of the metrics, and thereby the incentive to game them in the first place is (mostly) gone.
2026-03-10
Reply to "Who could have predicted that ..."
This is a very good post. And while we are at switching to a new system, we should re-think the concepts of "papers" and "publications". Or rather think about to what extent we should retire these vessels, and establish new forms of (fast, structured, reliable) scientific knowledge sharing.
2026-03-05
"The one science reform we can all agree on, but we're too cowardly to do"
2026-09-15
SEMANTICS-2026
Communications in Computer and Information Science
2025
Aligning Data Management Plans with Community Standards Using FAIR Implementation Profiles
171
159
Ronald Siebes
Navroop K. Singh
Shuai Wang
Tobias Kuhn
Angelica Maineri
Jacco van Ossenbruggen
Mark Bruyneel
Stephanie van de Sandt
Tycho Hofstra
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Erasmus University Rotterdam, Rotterdam, Netherlands
Biodiversity Information Science and Standards
2024-12-05
Nanopublications: Universal, Anti-Silo and FAIR Method for Publishing, Annotating and Sharing of Open Linked Data for Biodiversity
8
Teodor Georgiev
Jeremy Miller
Tobias Kuhn
Lyubomir Penev
Wouter Addink
Mathias Dillen
Dimitris Koureas
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Meise Botanic Garden, Meise, Belgium
Pensoft Publishers, Sofia, Bulgaria
Naturalis Biodiversity Center, Leiden, Netherlands
Studies on the Semantic Web
Traditional dataset retrieval systems rely on metadata for indexing, rather than on the underlying data values. However, high-quality metadata creation and enrichment often require manual annotations, which is a labour-intensive and challenging process to automate. In this study, we propose a method to support metadata enrichment using topic annotations generated by three Large Language Models (LLMs): ChatGPT-3.5, GoogleBard, and GoogleGemini. Our analysis focuses on classifying column headers based on domain-specific topics from the Consortium of European Social Science Data Archives (CESSDA), a Linked Data controlled vocabulary. Our approach operates in a zero-shot setting, integrating the controlled topic vocabulary directly within the input prompt. This integration serves as a Large Context Windows approach, with the aim of improving the results of the topic classification task. We evaluated the performance of the LLMs in terms of internal consistency, inter-machine alignment, and agreement with human classification. Additionally, we investigate the impact of contextual information (i.e., dataset description) on the classification outcomes. Our findings suggest that ChatGPT and GoogleGemini outperform GoogleBard in terms of internal consistency as well as LLM-human-agreement. Interestingly, we found that contextual information had no significant impact on LLM performance. This work proposes a novel approach that leverages LLMs for topic classification of column headers using a controlled vocabulary, presenting a practical application of LLMs and Large Context Windows within the Semantic Web domain. This approach has the potential to facilitate automated metadata enrichment, thereby enhancing dataset retrieval and the Findability, Accessibility, Interoperability, and Reusability (FAIR) of research data on the Web.
2024-09-11
Zero-Shot Topic Classification of Column Headers: Leveraging LLMs for Metadata Enrichment
Margherita Martorana
Tobias Kuhn
Lise Stork
Jacco van Ossenbruggen
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Journal of Biomedical Semantics
Background: In today's landscape of data management, the importance of knowledge graphs and ontologies is escalating as critical mechanisms aligned with the FAIR Guiding Principles—ensuring data and metadata are Findable, Accessible, Interoperable, and Reusable. We discuss three challenges that may hinder the effective exploitation of the full potential of FAIR knowledge graphs. Results: We introduce "semantic units" as a conceptual solution, although currently exemplified only in a limited prototype. Semantic units structure a knowledge graph into identifiable and semantically meaningful subgraphs by adding another layer of triples on top of the conventional data layer. Semantic units and their subgraphs are represented by their own resource that instantiates a corresponding semantic unit class. We distinguish statement and compound units as basic categories of semantic units. A statement unit is the smallest, independent proposition that is semantically meaningful for a human reader. Depending on the relation of its underlying proposition, it consists of one or more triples. Organizing a knowledge graph into statement units results in a partition of the graph, with each triple belonging to exactly one statement unit. A compound unit, on the other hand, is a semantically meaningful collection of statement and compound units that form larger subgraphs. Some semantic units organize the graph into different levels of representational granularity, others orthogonally into different types of granularity trees or different frames of reference, structuring and organizing the knowledge graph into partially overlapping, partially enclosed subgraphs, each of which can be referenced by its own resource. Conclusions: Semantic units, applicable in RDF/OWL and labeled property graphs, offer support for making statements about statements and facilitate graph-alignment, subgraph-matching, knowledge graph profiling, and for management of access restrictions to sensitive data. Additionally, we argue that organizing the graph into semantic units promotes the differentiation of ontological and discursive information, and that it also supports the differentiation of multiple frames of reference within the graph.
2024-05-27
Semantic units: organizing knowledge graphs into semantically meaningful units of representation
Robert Hoehndorf
Tobias Kuhn
Lars Vogt
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
King Abdullah University of Science and Technology (KAUST)
TIB – Leibniz Information Centre for Science and Technology and University Library
Communications in Computer and Information Science
2024
FAIR Implementation Profiles for Social Science
290
284
Navroop K. Singh
Shuai Wang
Tobias Kuhn
Angelica Maineri
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Erasmus University Rotterdam, Rotterdam, Netherlands
2023-12-05
The Role of Serendipity in User-Curated Music Playlists
147
140
Valentina Maccatrozzo
Tobias Kuhn
Davide Ceolin
Jacco Van Ossenbruggen
Vrije Universiteit Amsterdam
Centrum Wiskunde & Informatica, Amsterdam, Netherlands
Proceedings of the 12th Knowledge Capture Conference 2023
In response to the increasing volume of research data being generated, more and more data portals have been designed to facilitate data findability and accessibility. However, a significant portion of this data remains confidential or restricted due to its sensitive nature, such as patient data or census microdata. While maintaining confidentiality prohibits its public release, the emergence of portals supporting rich metadata can help enable researchers to at least discover the existence of restricted access data, empowering them to assess the suitability of the data before requesting access. Existing standards, such as CSV on the Web and RDF Data Cube, have been adopted to facilitate data management, integration, and re-use of data on the Web. However, the current landscape still lacks adequate standards not only to effectively describe restricted access data while preserving confidentiality but also to facilitate its discovery. In this work, we investigate the relationship between the structural, statistical, and semantic elements of restricted access tabular data, and we explore how such relationship can be formally modeled in a way that is Findable, Accessible, Interoperable, and Reusable. We introduce the DataSet-Variable Ontology (DSV), that by combining CSV on the Web and RDF Data Cube standards, leveraging semantic technologies and Linked Data principles, and introducing variable-level metadata, aims to capture high-quality metadata to support the management and re-use of restricted access data on the Web. As evaluation, we conducted a case study where we applied DSV to four different datasets from different statistical governmental agencies. We employed a set of competency questions to assess the ontology's ability to support knowledge discovery and data exploration. By describing high-quality metadata, both at the dataset- and variable levels, while maintaining data privacy, this novel ontology facilitates data interoperability, discovery, and re-use and it empowers researchers to manage, integrate, and analyze complex restricted access data sources.
2023-12-05
Advancing data sharing and reusability for restricted access data on the Web: introducing the DataSet-Variable Ontology
91
83
Margherita Martorana
Ronald Siebes
Tobias Kuhn
Jacco van Ossenbruggen
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Proceedings of the 12th Knowledge Capture Conference (K-CAP 2023)
Biodiversity Information Science and Standards
2023-08-09
Nanopublications for Biodiversity Go Live
7
Teodor Georgiev
Daniel Mietchen
Tobias Kuhn
Lyubomir Penev
Richard L. Pyle
Seyhan Demirov
Iva Boyadzhieva
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Pensoft Publishers, Sofia, Bulgaria
FIZ Karlsruhe – Leibniz Institute for Information Infrastructure, Karlsruhe, Germany
Bishop Museum, Honolulu, United States
PeerJ Computer Science
2023-02-21
Nanopublication-based semantic publishing and reviewing: a field study with formalization papers
e1159
9
Tobias Kuhn
Davide Ceolin
Cristina-Iulia Bucur
Jacco van Ossenbruggen
Vrije Universiteit Amsterdam
Centrum Wiskunde & Informatica, Amsterdam, Netherlands
Research Ideas and Outcomes
Beginning in 1995, early Internet pioneers proposed Digital Objects as encapsulations of data and metadata made accessible through persistent identifier resolution services. In recent years, this Digital Object Architecture has been extended to include the FAIR Guiding Principles, resulting in the concept of a FAIR Digital Object (FDO), a minimal, uniform container making any digital resource machine-actionable. Beginning in 2009, nanopublications were independently conceived as a minimal, uniform container making individual semantic assertions and their associated provenance metadata, machine-actionable. These two technologies share the same vision of a data infrastructure, and act as instances of Machine-Actionable Containers (MACs) that make use of minimal uniform standards to enable FAIR operations. Here, we compare the structure and computational behaviors of the existing nanopublication infrastructure, to those in the proposed FAIR Digital Object Framework. Although developed independently there are clear parallels between the vision and the approach of nanopublication and FDOF. We find a remarkable congruence between the currently proposed FDO requirements and the existing nanopublication infrastructure, including several FDO-like qualities already embodied in the nanopublication ecosystem.
2022-10-12
The Comparative Anatomy of Nanopublications and FAIR Digital Objects
8
Marek Suchánek
Erik Schultes
Luiz Bonino da Silva Santos
Tobias Kuhn
Barbara Magagna
Barend Mons
University of Twente, Enschede, Netherlands
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Czech Technical University in Prague, Prague, Czech Republic
Leiden University Medical Center, Leiden, Netherlands
Research Ideas and Outcomes
2022-10-12
FIPs and Practice
8
Marek Suchánek
Erik Schultes
Tobias Kuhn
Barbara Magagna
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Czech Technical University in Prague, Prague, Czech Republic
PeerJ Computer Science
Understanding the complexity of restricted research data is vitally important in the current new era of Open Science. While the FAIR Guiding Principles have been introduced to help researchers to make data Findable, Accessible, Interoperable and Reusable, it is still unclear how the notions of FAIR and Openness can be applied in the context of restricted data. Many methods have been proposed in support of the implementation of the principles, but there is yet no consensus among the scientific community as to the suitable mechanisms of making restricted data FAIR. We present here a systematic literature review to identify the methods applied by scientists when researching restricted data in a FAIR-compliant manner in the context of the FAIR principles. Through the employment of a descriptive and iterative study design, we aim to answer the following three questions: (1) What methods have been proposed to apply the FAIR principles to restricted data?, (2) How can the relevant aspects of the methods proposed be categorized?, (3) What is the maturity of the methods proposed in applying the FAIR principles to restricted data?. After analysis of the 40 included publications, we noticed that the methods found, reflect the stages of the Data Life Cycle, and can be divided into the following Classes: Data Collection, Metadata Representation, Data Processing, Anonymization, Data Publication, Data Usage and Post Data Usage. We observed that a large number of publications used 'Access Control' and 'Usage and License Terms' methods, while others such as 'Embargo on Data Release' and the use of 'Synthetic Data' were used in fewer instances. In conclusion, we are presenting the first extensive literature review on the methods applied to confidential data in the context of FAIR, providing a comprehensive conceptual framework for future research on restricted access data.
2022-07-20
Aligning restricted access data with FAIR: a systematic review
Margherita Martorana
Ronald Siebes
Tobias Kuhn
Jacco van Ossenbruggen
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
JMIRx Med
Background: In the poorly studied field of physician suicide, various factors can contribute to misinformation or information distortion, which in turn can influence evidence-based policies and prevention of suicide in this unique population. Objective: The aim of this paper is to use nanopublications as a scientific publishing approach to establish a citation network of claims in peer-reviewed publications about the rate of suicide among US physicians. Methods: A list of articles from a previously published scoping literature review on physician suicide was used to identify those articles that commented on or investigated suicidal behaviors of physician populations, including students, postgraduate trainees, and practicing physicians. The included articles were from peer-reviewed publications and asserted a claim about the annual rate of physician suicide. Manual data extraction was performed to collect article (or resource) type, title, authors, digital object identifier or URI, publication year, claim (about annual physician suicide rate), data of last access of the article (eg, for a webpage), and citations supporting the claim. Additional articles, websites, or other links were only added to the set of claims if they were cited by a peer-reviewed article already included in the data set. A nanopublication was created for each article or resource using Nanobench with an investigator-developed literature-based claim nanopublication template. Results: A set of 49 claims concerning the rate of US physician suicide was represented as nanopublications. Analysis of the claim network revealed that (1) the network is not fully connected, (2) no single primary source of the claim could be identified, and (3) all end-point citations had a claim with no further citation, had no apparent claim, or could not be accessed to verify the claim. The nanopublication strategy also enabled the capture of variant claims published on a website. Conclusions: Nanopublications remain to be adopted in broader scientific publishing in medicine, especially in publishing about physician mental health and suicide. This proof-of-concept study highlights an opportunity for more coordinated research efforts in the subject of physician suicide. Our work integrates these various claims and enables the verification of nonauthoritative assertions, thereby better equipping researchers to advance evidence-based knowledge and to make informed statements in the advocacy of physician suicide prevention. Representing physician suicide rate claims as nanopublications can be extended and improved in future work.
2022-07-01
Representing Physician Suicide Claims as Nanopublications: Proof-of-Concept Study Creating Claim Networks
Tobias Kuhn
Tiffany I. Leung
Michel Dumontier
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Maastricht University
Data Science
2022-03-15
Special Issue on Semantic Publishing with Formalization Papers
9
1
Tobias Kuhn
Cristina-Iulia Bucur
Vrije Universiteit Amsterdam
Lecture Notes in Computer Science
2022
Documenting the Creation, Manipulation and Evaluation of Links for Reuse and Reproducibility
96
81
Tobias Kuhn
Veruska Zamborlini
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Federal University of Espírito Santo, Vitória, Brazil
Al Idrissou
2021-12-02
User-friendly Composition of FAIR Workflows in a Notebook Environment
8
1
Remzi Celebi
Tobias Kuhn
Lars Ridder
Robin A. Richardson
Sven van der Burg
Djura Smits
Michel Dumontier
Vrije Universiteit Amsterdam
Netherlands eScience Center, Amsterdam, Netherlands
Maastricht University
Proceedings of the 11th Knowledge Capture Conference
The use of semantic technologies is gaining significant traction in science communication with a wide array of applications in disciplines including the life sciences, computer science, and the social sciences. Languages like RDF, OWL, and other formalisms based on formal logic are applied to make scientific knowledge accessible not only to human readers but also to automated systems. These approaches have mostly focused on the structure of scientific publications themselves, on the used scientific methods and equipment, or on the structure of the used datasets. The core claims or hypotheses of scientific work have only been covered in a shallow manner, such as by linking mentioned entities to established identifiers. In this research, we therefore want to find out whether we can use existing semantic formalisms to fully express the content of high-level scientific claims using formal semantics in a systematic way. Analyzing the main claims from a sample of scientific articles from all disciplines, we find that their semantics are more complex than what a straight-forward application of formalisms like RDF or OWL account for, but we managed to elicit a clear semantic pattern which we call the "super-pattern". We show here how the instantiation of the five slots of this super-pattern leads to a strictly defined statement in higher-order logic. We successfully applied this super-pattern to an enlarged sample of scientific claims. We show that knowledge representation experts, when instructed to independently instantiate the super-pattern with given scientific claims, show a high degree of consistency and convergence given the complexity of the task and the subject. These results therefore open the door on the longer run for allowing researchers to express their high-level scientific findings in a manner they can be automatically interpreted. This in turn will allow for automated consistency checking, question answering, aggregation, and much more.
2021-12-02
Expressing High-Level Scientific Claims with Formal Semantics
240
233
Tobias Kuhn
Davide Ceolin
Cristina-Iulia Bucur
Jacco van Ossenbruggen
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Centrum Wiskunde & Informatica, Amsterdam, Netherlands
Proceedings of the 11th Knowledge Capture Conference (K-CAP 2021)
2021-12-02
Living Literature Reviews
248
241
Tobias Kuhn
Michel Wijkstra
Timo Lek
Mickey Steijaert
Kasper Welbers
Vrije Universiteit Amsterdam
Proceedings of the 11th Knowledge Capture Conference (K-CAP 2021)
F1000Research
Scientific data analyses often combine several computational tools in automated pipelines, or workflows. Thousands of such workflows have been used in the life sciences, though their composition has remained a cumbersome manual process due to a lack of standards for annotation, assembly, and implementation. Recent technological advances have returned the long-standing vision of automated workflow composition into focus. This article summarizes a recent Lorentz Center workshop dedicated to automated composition of workflows in the life sciences. We survey previous initiatives to automate the composition process, and discuss the current state of the art and future perspectives. We start by drawing the “big picture” of the scientific workflow development life cycle, before surveying and discussing current methods, technologies and practices for semantic domain modelling, automation in workflow development, and workflow assessment. Finally, we derive a roadmap of individual and community-based actions to work toward the vision of automated workflow development in the forthcoming years. A central outcome of the workshop is a general description of the workflow life cycle in six stages: 1) scientific question or hypothesis, 2) conceptual workflow, 3) abstract workflow, 4) concrete workflow, 5) production workflow, and 6) scientific results. The transitions between stages are facilitated by diverse tools and methods, usually incorporating domain knowledge in some form. Formal semantic domain modelling is hard and often a bottleneck for the application of semantic technologies. However, life science communities have made considerable progress here in recent years and are continuously improving, renewing interest in the application of semantic technologies for workflow exploration, composition and instantiation. Combined with systematic benchmarking with reference data and large-scale deployment of production-stage workflows, such technologies enable a more systematic process of workflow development than we know today. We believe that this can lead to more robust, reusable, and sustainable workflows in the future.
2021-09-07
Perspectives on automated composition of workflows in the life sciences
897
Jon Ison
Timothy J. Griffin
Alireza Khanteymoori
Yolanda Gil
Hans Ienasescu
Stian Soiland-Reyes
Vedran Kasalica
Salvador Capella-Gutierrez
Tobias Kuhn
Katherine Wolstencroft
Matúš Kalaš
Ilkay Altintas
Michael R. Crusoe
Magnus Palmblad
Robert Stevens
Paulos Charonyktakis
Steffen Möller
Hervé Ménager
Vincent Robert
Suzan Verberne
Veit Schwämmle
Robin A. Richardson
Paul Groth
Aswin Verhoeven
Pratik Jagtap
Carole Goble
Hailiang Mei
Anna-Lena Lamprecht
Christopher J. O. Baker
Mohammad Sadnan Al Manir
Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Netherlands eScience Center, Amsterdam, Netherlands
University of Virginia, Charlottesville, United States
University of California San Diego, La Jolla, United States
University of Minnesota, Minneapolis, United States
University of Freiburg, Freiburg, Germany
Leiden University, Leiden, Netherlands
University of Manchester, Manchester, United Kingdom
Westerdijk Fungal Biodiversity Institute, Utrecht, Netherlands
University of Southern California, Los Angeles, United States
University of Southern Denmark, Odense, Denmark
University of Bergen, Bergen, Norway
Institut Français de Bioinformatique, Évry, France
Institut Pasteur, Paris, France
University of Amsterdam, Amsterdam, Netherlands
Rostock University Medical Center, Rostock, Germany
Utrecht University, Utrecht, Netherlands
Technical University of Denmark, Kongens Lyngby, Denmark
University of New Brunswick, Saint John, Canada
Barcelona Supercomputing Center, Barcelona, Spain
Leiden University Medical Center, Leiden, Netherlands
Ammar Ben Hadj Amor
Szoke Szaniszlo
PeerJ Computer Science
While the publication of Linked Data has become increasingly common, the process tends to be a relatively complicated and heavy-weight one. Linked Data is typically published by centralized entities in the form of larger dataset releases, which has the downside that there is a central bottleneck in the form of the organization or individual responsible for the releases. Moreover, certain kinds of data entries, in particular those with subjective or original content, currently do not fit into any existing dataset and are therefore more difficult to publish. To address these problems, we present here an approach to use nanopublications and a decentralized network of services to allow users to directly publish small Linked Data statements through a simple and user-friendly interface, called Nanobench, powered by semantic templates that are themselves published as nanopublications. The published nanopublications are cryptographically verifiable and can be queried through a redundant and decentralized network of services, based on the grlc API generator and a new quad extension of Triple Pattern Fragments. We show here that these two kinds of services are complementary and together allow us to query nanopublications in a reliable and efficient manner. We also show that Nanobench makes it indeed very easy for users to publish Linked Data statements, even for those who have no prior experience in Linked Data publishing.
2021-03-08
Semantic micro-contributions with decentralized nanopublication services
Ruben Taelman
Stian Soiland-Reyes
Tobias Kuhn
Vincent Emonet
Michel Dumontier
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
IDLab, Ghent University, Ghent, Belgium
SciFY, Athens, Greece
Department of Computer Science, The University of Manchester, Manchester, UK
Institute of Data Science, Maastricht University, Maastricht, Netherlands
Informatics Institute, University of Amsterdam, Amsterdam, Netherlands
Haris Antonatos
PeerJ Computer Science
2020-09-21
Towards FAIR protocols and workflows: the OpenPREDICT use case
Remzi Celebi
Tobias Kuhn
Joao Rebelo Moreira
Lars Ridder
Ahmed A. Hassan
Michel Dumontier
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Department of Medical Informatics, Stanford University, Stanford, United States
Netherlands eScience Center, Amsterdam, Netherlands
Institute of Data Science, Maastricht University, Maastricht, Netherlands
Sandeep Ayyar
Lecture Notes in Computer Science
2020
Reusable FAIR Implementation Profiles as Accelerators of FAIR Convergence
147
138
Marek Suchánek
Erik Schultes
Tobias Kuhn
Kristina Maria Hettne
Barbara Magagna
Robert Pergl
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Leiden University, Leiden, Netherlands
Czech Technical University in Prague, Prague, Czech Republic
Lecture Notes in Computer Science
Scientific publishing is the means by which we communicate and share scientific knowledge, but this process currently often lacks transparency and machine-interpretable representations. Scientific articles are published in long coarse-grained text with complicated structures, and they are optimized for human readers and not for automated means of organization and access. Peer reviewing is the main method of quality assessment, but these peer reviews are nowadays rarely published and their own complicated structure and linking to the respective articles is not accessible. In order to address these problems and to better align scientific publishing with the principles of the Web and Linked Data, we propose here an approach to use nanopublications as a unifying model to represent in a semantic way the elements of publications, their assessments, as well as the involved processes, actors, and provenance in general. To evaluate our approach, we present a dataset of 627 nanopublications representing an interlinked network of the elements of articles (such as individual paragraphs) and their reviews (such as individual review comments). Focusing on the specific scenario of editors performing a meta-review, we introduce seven competency questions and show how they can be executed as SPARQL queries. We then present a prototype of a user interface for that scenario that shows different views on the set of review comments provided for a given manuscript, and we show in a user study that editors find the interface useful to answer their competency questions. In summary, we demonstrate that a unified and semantic publication model based on nanopublications can make scientific communication more effective and user-friendly.
2020
A Unified Nanopublication Model for Effective and User-Friendly Access to the Elements of Scientific Publishing
119
104
Tobias Kuhn
Davide Ceolin
Cristina-Iulia Bucur
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Centrum Wiskunde & Informatica, Amsterdam, Netherlands
Communications in Computer and Information Science
2020
Nanocitation: Complete and Interoperable Citations of Nanopublications
187
182
Tobias Kuhn
Erika Fabris
Gianmaria Silvello
University of Padua, Padua, Italy
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Scientific publishing seems to be at a turning point. Its paradigm has stayed basically the same for 300 years but is now challenged by the increasing volume of articles that makes it very hard for scientists to stay up to date in their respective fields. In fact, many have pointed out serious flaws of current scientific publishing practices, including the lack of accuracy and efficiency of the reviewing process. To address some of these problems, we apply here the general principles of the Web and the Semantic Web to scientific publishing, focusing on the reviewing process. We want to determine if a fine-grained model of the scientific publishing workflow can help us make the reviewing processes better organized and more accurate, by ensuring that review comments are created with formal links and semantics from the start. Our contributions include a novel model called Linkflows that allows for such detailed and semantically rich representations of reviews and the reviewing processes. We evaluate our approach on a manually curated dataset from several recent Computer Science journals and conferences that come with open peer reviews. We gathered ground-truth data by contacting the original reviewers and asking them to categorize their own review comments according to our model. Comparing this ground truth to answers provided by model experts, peers, and automated techniques confirms that our approach of formally capturing the reviewers' intentions from the start prevents substantial discrepancies compared to when this information is later extracted from the plain-text comments. In general, our analysis shows that our model is well understood and easy to apply, and it revealed the semantic properties of such review comments.
2019-09-23
Peer Reviewing Revisited: Assessing Research with Interlinked Semantic Comments
187
179
Tobias Kuhn
Davide Ceolin
Cristina-Iulia Bucur
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Centrum Wiskunde & Informatica, Amsterdam, Netherlands
Proceedings of the 10th International Conference on Knowledge Capture (K-CAP 2019)
Scientific Data
2019-09-20
Evaluating FAIR maturity through a scalable, automated, community-governed framework
6
Susanna-Assunta Sansone
Mark D. Wilkinson
Erik Schultes
Mario Prieto
Philippe Rocca-Serra
Luiz Olavo Bonino da Silva Santos
Tobias Kuhn
Dominique Batista
Mercè Crosas
Peter McQuilton
Michel Dumontier
Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Maastricht University, Maastricht, Netherlands
Universidad Politécnica de Madrid, Madrid, Spain
Harvard University, Cambridge, United States
University of Oxford, Oxford, United Kingdom
Leiden University Medical Center, Leiden, Netherlands
PeerJ Computer Science
The analysis of literary works has experienced a surge in computer-assisted processing. To obtain insights into the community structures and social interactions portrayed in novels, the creation of social networks from novels has gained popularity. Many methods rely on identifying named entities and relations for the construction of these networks, but many of these tools are not specifically created for the literary domain. Furthermore, many of the studies on information extraction from literature typically focus on 19th and early 20th century source material. Because of this, it is unclear if these techniques are as suitable to modern-day literature as they are to those older novels. We present a study in which we evaluate natural language processing tools for the automatic extraction of social networks from novels as well as their network structure. We find that there are no significant differences between old and modern novels but that both are subject to a large amount of variance. Furthermore, we identify several issues that complicate named entity recognition in our set of novels and we present methods to remedy these. We see this work as a step in creating more culturally-aware AI systems.
2019-04-18
Evaluating named entity recognition tools for extracting social networks from novels
Marieke van Erp
Tobias Kuhn
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
KNAW Humanities Cluster, Amsterdam, Netherlands
Niels Dekker
Lecture Notes in Computer Science
2019
Easy Web API Development with SPARQL Transformer
470
454
Tobias Kuhn
Raphaël Troncy
Pasquale Lisena
Albert Meroño-Peñuela
Vrije Universiteit Amsterdam
EURECOM, Sophia Antipolis, France
Lecture Notes in Computer Science
2019
A Framework for Citing Nanopublications
83
70
Tobias Kuhn
Erika Fabris
Gianmaria Silvello
University of Padua, Padua, Italy
Vrije Universiteit Amsterdam
2018-10
Nanopublications: A Growing Resource of Provenance-Centric Scientific Linked Data
92
83
Christine Chichester
Egon Willighagen
Juan M. Banda
Tobias Kuhn
Tareq B. Malas
Chris Evelo
Allen H. Hurlbert
Friederike Ehrhart
Alexander Malic
Laura I. Furlong
Núria Queralt-Rosinach
Emilio Centeno Ortiz
Jorrit H. Poelen
Albert Meroño-Peñuela
Michel Dumontier
Vrije Universiteit Amsterdam, Amsterdam, Netherlands
University of North Carolina at Chapel Hill, United States
Scripps Research Institute, La Jolla, United States
Maastricht University, Maastricht, Netherlands
Georgia State University, Atlanta, United States
Hospital del Mar Research Institute (IMIM), Barcelona, Spain
Leiden University Medical Center, Leiden, Netherlands
2018 IEEE 14th International Conference on e-Science (e-Science)
Frontiers in Artificial Intelligence and Applications
Scientific communication still mainly relies on natural language written in scientific papers, which makes the described knowledge very difficult to access with automatic means. We can therefore only make limited use of formal knowledge organization methods to support researchers and other interested parties with features such as automatic aggregations, fact checking, consistency checking, question answering, and powerful semantic search. Existing approaches to solve this problem by improving the scientific communication methods have either very restricted coverage, require formal logic skills on the side of the researchers, or depend on unreliable machine learning for the formalization of knowledge. Here, I propose an approach to this problem that is general, intuitive, and flexible. It is based on a unique kind of controlled natural language, called AIDA, consisting of English sentences that are atomic, independent, declarative, and absolute. Such sentences can then serve as nodes in a network of scientific claims linked to publications, researchers, and domain elements. I present here some small studies on preliminary applications of this language. The results indicate that it is well accepted by users and provides a good basis for the creation of a knowledge graph of scientific findings.
2018
Using the AIDA Language to Formally Organize Scientific Claims
Tobias Kuhn
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Data Science
2017-12-08
Data Science – Methods, infrastructure, and applications
5
1
Tobias Kuhn
Michel Dumontier
Vrije Universiteit Amsterdam
Maastricht University
Data Science
2017-10-17
Genuine semantic publishing
154
139
1
Tobias Kuhn
Michel Dumontier
Vrije Universiteit Amsterdam
Maastricht University
Lecture Notes in Computer Science
Climate change, vaccination, abortion, Trump: Many topics are surrounded by fierce controversies. The nature of such heated debates and their elements have been studied extensively in the social science literature. More recently, various computational approaches to controversy analysis have appeared, using new data sources such as Wikipedia, which help us now better understand these phenomena. However, compared to what social sciences have discovered about such debates, the existing computational approaches mostly focus on just a few of the many important aspects around the concept of controversies. In order to link the two strands, we provide and evaluate here a controversy model that is both, rooted in the findings of the social science literature and at the same time strongly linked to computational methods. We show how this model can lead to computational controversy analytics that have full coverage over all the crucial aspects that make up a controversy.
2017
Computational Controversy
300
288
Kaspar Beelen
Lora Aroyo
Tobias Kuhn
Benjamin Timmermans
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Lecture Notes in Computer Science
2017
Reliable Granular References to Changing Linked Data
451
436
Egon Willighagen
Tobias Kuhn
Chris Evelo
Laura I. Furlong
Núria Queralt-Rosinach
Emilio Centeno
Vrije Universiteit Amsterdam
Scripps Research Institute, La Jolla, United States
Maastricht University
Hospital del Mar Research Institute (IMIM), Barcelona, Spain
Communications in Computer and Information Science
The number of scientific articles has grown rapidly over the years and there are no signs that this growth will slow down in the near future. Because of this, it becomes increasingly difficult to keep up with the latest developments in a scientific field. To address this problem, we present here an approach to help researchers learn about the latest developments and findings by extracting in a normalized form core claims from scientific articles. This normalized representation is a controlled natural language of English sentences called AIDA, which has been proposed in previous work as a method to formally structure and organize scientific findings and discourse. We show how such AIDA sentences can be automatically extracted by detecting the core claim of an article, checking for AIDA compliance, and – if necessary – transforming it into a compliant sentence. While our algorithm is still far from perfect, our results indicate that the different steps are feasible and they support the claim that AIDA sentences might be a promising approach to improve scientific communication in the future.
2017
Extracting Core Claims from Scientific Articles
46
32
Tobias Kuhn
Department of Computer Science, Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Tom Jansen
Language Resources and Evaluation
2016-11-19
LRE journal CNL introduction
11
9
Tobias Kuhn
Brian Davis
Vrije Universiteit Amsterdam
University of Galway (NUI Galway), Galway, Ireland
Nuance Communications, Vienna, Austria
Kaarel Kaljurand
PeerJ Computer Science
2016-08-22
Decentralized provenance-aware publishing with nanopublications
e78
2
Christine Chichester
Axel-Cyrille Ngonga Ngomo
Tobias Kuhn
Michael Krauthammer
Ruben Verborgh
Núria Queralt-Rosinach
Raffaele Viglianti
Michel Dumontier
Vrije Universiteit Amsterdam
IDLab, Ghent University, Ghent, Belgium
Stanford University, Stanford, United States
NCSR Demokritos, Athens, Greece
Leipzig University, Leipzig, Germany
Yale University, New Haven, United States
Hospital del Mar Research Institute (IMIM), Barcelona, Spain
University of Maryland, College Park, United States
George Giannakopoulos
Semantic Web
2016-06-23
Publishing DisGeNET as nanopublications
528
519
7
Christine Chichester
Tobias Kuhn
Ferran Sanz
Laura I. Furlong
Núria Queralt-Rosinach
Michel Dumontier
Vrije Universiteit Amsterdam
Stanford University, Stanford, United States
Hospital del Mar Research Institute (IMIM), Barcelona, Spain
Pompeu Fabra University, Barcelona, Spain
Scientific Data
There is an urgent need to improve the infrastructure supporting the reuse of scholarly data. A diverse set of stakeholders—representing academia, industry, funding agencies, and scholarly publishers—have come together to design and jointly endorse a concise and measureable set of principles that we refer to as the FAIR Data Principles. The intent is that these may act as a guideline for those wishing to enhance the reusability of their data holdings. Distinct from peer initiatives that focus on the human scholar, the FAIR Principles put specific emphasis on enhancing the ability of machines to automatically find and use the data, in addition to supporting its reuse by individuals. This Comment is the first formal publication of the FAIR Principles, and includes the rationale behind them, and some exemplar implementations in the community.
2016-03-15
The FAIR Guiding Principles for scientific data management and stewardship
Jeffrey S. Grethe
Susanna-Assunta Sansone
Ingrid Dillo
Scott Edmunds
Rob Hooft
Jun Zhao
Mark D. Wilkinson
Olivier Dumon
Jaap Heringa
Anthony J. Brookes
Erik Schultes
Abel L. Packer
Andra Waagmeester
Philippe Rocca-Serra
IJsbrand Jan Aalbersberg
Morris A. Swertz
Luiz Bonino da Silva Santos
Tobias Kuhn
Katherine Wolstencroft
Richard Finkers
Jan Velterop
Chris T. Evelo
Alasdair J.G. Gray
Joost Kok
Thierry Sengstag
Philip E. Bourne
Mark Thompson
Myles Axton
Maryann E. Martone
Marco Roos
Gabrielle Appleton
Paul Groth
Jan-Willem Boiten
Carole Goble
Mercè Crosas
Erik van Mulligen
Ted Slater
Scott J. Lusher
Arie Baak
Bengt Persson
Alejandra Gonzalez-Beltran
Barend Mons
Tim Clark
Niklas Blomberg
Peter A.C 't Hoen
Michel Dumontier
SIB Swiss Institute of Bioinformatics, Switzerland
Data Archiving and Networked Services (DANS), The Hague, Netherlands
Vrije Universiteit Amsterdam, Amsterdam, Netherlands
Stanford University, Stanford, United States
Netherlands eScience Center, Amsterdam, Netherlands
University of Groningen, Groningen, Netherlands
Elsevier, Amsterdam, Netherlands
BGI Genomics, Shenzhen, China
University of California San Diego, La Jolla, United States
Erasmus MC, Rotterdam, Netherlands
TNO, The Hague, Netherlands
National Institutes of Health, Bethesda, United States
Leiden University, Leiden, Netherlands
University of Manchester, Manchester, United Kingdom
Maastricht University, Maastricht, Netherlands
Universidade Federal de São Paulo, São Paulo, Brazil
Max Planck Computing and Data Facility, Garching, Germany
Universidad Politécnica de Madrid, Madrid, Spain
Harvard University, Cambridge, United States
ELIXIR, Hinxton, United Kingdom
Uppsala University, Uppsala, Sweden
University of Leicester, Leicester, United Kingdom
Heriot-Watt University, Edinburgh, United Kingdom
Wageningen University & Research, Wageningen, Netherlands
University of Oxford, Oxford, United Kingdom
Leiden University Medical Center, Leiden, Netherlands
Albert Mons
George Strawn
Jildau Bouwman
Johan van der Lei
Peter Wittenburg
Rene van Schaik
Ruben Kok
Lecture Notes in Computer Science
2016
The Controlled Natural Language of Randall Munroe’s Thing Explainer
110
102
Tobias Kuhn
Vrije Universiteit Amsterdam
Lecture Notes in Computer Science
2016
Data 2 Documents: Modular and Distributive Content Management in RDF
462
447
Victor de Boer
Tobias Kuhn
Guus Schreiber
Vrije Universiteit Amsterdam
Niels Ockeloen
Language Resources and Evaluation
2015-09-14
Fully automatic multi-language translation with a catalogue of phrases: successful employment for the Swiss avalanche bulletin
35
13
Tobias Kuhn
Kurt Winkler
WSL Institute for Snow and Avalanche Research SLF, Davos, Switzerland
ETH Zurich, Switzerland
IEEE Transactions on Knowledge and Data Engineering
2015-09-01
Making Digital Artifacts on the Web Verifiable and Reliable
2400
2390
27
Tobias Kuhn
Michel Dumontier
Stanford University, Stanford, United States
ETH Zurich, Switzerland
2015-05-18
Science Bots: A Model for the Future of Scientific Computation?
1062
1061
Tobias Kuhn
ETH Zurich, Switzerland
Lecture Notes in Computer Science
2015
Publishing Without Publishers: A Decentralized Approach to Dissemination, Retrieval, and Archiving of Data
672
656
Christine Chichester
Tobias Kuhn
Michael Krauthammer
Michel Dumontier
SIB Swiss Institute of Bioinformatics, Switzerland
Stanford University, Stanford, United States
Yale University, New Haven, United States
ETH Zurich, Switzerland
Lecture Notes in Computer Science
2015
Provenance-Centered Dataset of Drug-Drug Interactions
300
293
Juan M. Banda
Nigam H. Shah
Tobias Kuhn
Michel Dumontier
Stanford University, Stanford, United States
ETH Zurich, Switzerland
Semantic Web
2015
Collaborative multilingual knowledge management based on controlled natural language
258
241
Tobias Kuhn
University of Zurich, Switzerland
Nuance Communications, Vienna, Austria
ETH Zurich, Switzerland
Kaarel Kaljurand
Laura Canedo
Science of Computer Programming
2014-12
Verifiable source code documentation in controlled natural language
140
121
Alexandre Bergel
Tobias Kuhn
Universidad de Chile, Santiago, Chile
ETH Zurich, Switzerland
Physical Review X
2014-11-21
Inheritance Patterns in Citation Networks Reveal Scientific Memes
4
Tobias Kuhn
Matjaž Perc
Dirk Helbing
University of Maribor, Maribor, Slovenia
ETH Zurich, Switzerland
Computational Linguistics
What is here called controlled natural language (CNL) has traditionally been given many different names. Especially during the last four decades, a wide variety of such languages have been designed. They are applied to improve communication among humans, to improve translation, or to provide natural and intuitive representations for formal notations. Despite the apparent differences, it seems sensible to put all these languages under the same umbrella. To bring order to the variety of languages, a general classification scheme is presented here. A comprehensive survey of existing English-based CNLs is given, listing and describing 100 languages from 1930 until today. Classification of these languages reveals that they form a single scattered cloud filling the conceptual space between natural languages such as English on the one end and formal languages such as propositional logic on the other. The goal of this article is to provide a common terminology and a common model for CNL, to contribute to the understanding of their general nature, to provide a starting point for researchers interested in the area, and to help developers to make design decisions.
2014-03
A Survey and Classification of Controlled Natural Languages
Tobias Kuhn
University of Zurich, Switzerland
ETH Zurich, Switzerland
Lecture Notes in Computer Science
2014
Evaluating the Fully Automatic Multi-language Translation of the Swiss Avalanche Bulletin
54
44
Tobias Kuhn
Martin Volk
Kurt Winkler
University of Zurich, Switzerland
WSL Institute for Snow and Avalanche Research SLF, Davos, Switzerland
ETH Zurich, Switzerland
Lecture Notes in Computer Science
2014
Trusty URIs: Verifiable, Immutable, and Permanent Digital Artifacts for Linked Data
410
395
Tobias Kuhn
Michel Dumontier
Stanford University, Stanford, United States
ETH Zurich, Switzerland
Journal of Biomedical Semantics
2014
Mining images in biomedical publications: Detection and analysis of gel diagrams
10
Tobias Kuhn
Michael Krauthammer
Yale University, New Haven, United States
ETH Zurich, Switzerland
Mate Nagy
ThaiBinh Luong
Journal of Logic, Language and Information
2013-01
A Principled Approach to Grammars for Controlled Natural Languages and Predictive Editors
70
33
Tobias Kuhn
ETH Zurich, Switzerland
Lecture Notes in Computer Science
2013
Broadening the Scope of Nanopublications
501
487
Tobias Kuhn
Michael Krauthammer
Yale University, New Haven, United States
ETH Zurich, Switzerland
Mate Levente Nagy
Paolo Emilio Barbano
Lecture Notes in Computer Science
2013
A Multilingual Semantic Wiki Based on Attempto Controlled English and Grammatical Framework
441
427
Tobias Kuhn
University of Zurich, Switzerland
ETH Zurich, Switzerland
Kaarel Kaljurand
Semantic Web
2013
The understandability of OWL statements in controlled English
115
101
4
Tobias Kuhn
University of Zurich, Switzerland
Corpora
In this paper, we present Coral, an interface in which complex corpus queries can be expressed in a controlled subset of natural English. With the help of a predictive editor, users can compose queries and submit them to the Coral system, which then automatically translates them into formal AQL statements. We give an overview of the controlled natural language developed for Coral and describe the functionalities of the predictive editor provided for it. We also report on a user experiment in which the system was evaluated. The results show that, with Coral, corpora of annotated texts can be queried more easily and more quickly than with the existing ANNIS interface. Our system demonstrates that complex corpora can be accessed without the need to learn a complicated, formal query language.
2012-11
Coral: Corpus Access in Controlled Language
206
187
Tobias Kuhn
University of Zurich, Switzerland
Yale University, New Haven, United States
Stefan Höfler
Lecture Notes in Computer Science
2012
Codeco: A Practical Notation for Controlled English Grammars in Predictive Editors
114
95
Tobias Kuhn
Yale University, New Haven, United States
Lecture Notes in Computer Science
2010
Writing Clinical Practice Guidelines in Controlled Natural Language
280
265
Tobias Kuhn
Michael Krauthammer
University of Zurich, Switzerland
Yale University, New Haven, United States
George Michel
Kaarel Kaljurand
Norbert E. Fuchs
Richard N. Shiffman
Lecture Notes in Computer Science
2010
On Controlled Natural Languages: Properties and Prospects
289
281
Krasimir Angelov
Jonathan Pool
Rolf Schwitter
Tobias Kuhn
Adam Wyner
Guntis Barzdins
Brian Davis
Macquarie University, Sydney, Australia
University of Zurich, Zurich, Switzerland
University College London, London, United Kingdom
University of Malta, Msida, Malta
University of Galway, Galway, Ireland
Chalmers University of Technology, Gothenburg, Sweden
University of Latvia, Riga, Latvia
University of Sheffield, Sheffield, United Kingdom
Danica Damljanovic
Kaarel Kaljurand
Ken Jones
Martin Luts
Mike Rosner
Norbert Fuchs
Stefan Hoefler
Lecture Notes in Computer Science
2010
An Evaluation Framework for Controlled Natural Languages
20
1
Tobias Kuhn
University of Zurich, Switzerland
Lecture Notes in Computer Science
2009
Controlled English for Reasoning on the Semantic Web
308
276
Juri Luca De Coi
Tobias Kuhn
University of Zurich, Switzerland
Kaarel Kaljurand
Norbert E. Fuchs
Proceedings of the Fifth International Workshop on Semantic Web User Interaction (SWUI 2008), CEUR Workshop Proceedings
We present AceWiki, a prototype of a new kind of semantic wiki using the controlled natural language Attempto Controlled English (ACE) for representing its content. ACE is a subset of English with a restricted grammar and a formal semantics. The use of ACE has two important advantages over existing semantic wikis. First, we can improve the usability and achieve a shallow learning curve. Second, ACE is more expressive than the formal languages of existing semantic wikis. Our evaluation shows that people who are not familiar with the formal foundations of the Semantic Web are able to deal with AceWiki after a very short learning phase and without the help of an expert.
2008-07-29
AceWiki: A Natural and Expressive Semantic Wiki
Tobias Kuhn
Lecture Notes in Computer Science
2008
Attempto Controlled English for Knowledge Representation
124
104
Tobias Kuhn
University of Zurich, Switzerland
Kaarel Kaljurand
Norbert E. Fuchs
Data Integration in the Life Sciences
Linking the biomedical literature to other data resources is notoriously difficult and requires text mining. Text mining aims to automatically extract facts from literature. Since authors write in natural language, text mining is a great natural language processing challenge, which is far from being solved. We propose an alternative: If authors and editors summarize the main facts in a controlled natural language, text mining will become easier and more powerful. To demonstrate this approach, we use the language Attempto Controlled English (ACE). We define a simple model to capture the main aspects of protein interactions. To evaluate our approach, we collected a dataset of 459 paragraph headings about protein interaction from literature. 56% of these headings can be represented exactly in ACE and another 23% partially. These results indicate that our approach is feasible.
2006
Improving Text Mining with Controlled Natural Language: A Case Study for Protein Interactions
Tobias Kuhn
University of Zurich, Switzerland
Technische Universität Dresden, Dresden, Germany
Loic Royer
Michael Schroeder
Norbert E. Fuchs
2026-03-26
FAIR Digital Objects (FDOs) and nanopublications are emerging paradigms for structured, interoperable data. While conceptually overlapping, they differ in their focus, approach, and implementation. We show how they can be effectively combined to align FDOs of different kinds and to provide global indexing.
Aligning and globally indexing diverse FDOs with nanopublications
2026-03-24
This is a hands-on interactive tutorial about nanopublications given at the FDO Conference 2026.
Nanopublication tutorial
2024-05-20
Nanopublications: rethinking global knowledge sharing
2024-02-28
Nanopublications for FDOs
2017-05-01
Invited talk at DANS Seminar on Linked Data in Research and Cultural Heritage, Den Haag, Netherlands
Nanopublications and Decentralized Publishing
2017-04-04
Invited talk at IOS Press 30 Year Anniversary, Amsterdam, Netherlands
Linked Data Publishing with Nanopublication
2016-11-01
Invited talk at Bring Your Own Rett Syndrome Data workshop, Maastricht University, Netherlands
Nanopublications
2016-07-13
Invited talk at LERU Doctoral Summer School 2016, Leiden University, Netherlands
Nanopublications
2015-06-17
Invited talk at CERN Workshop on Innovations in Scholarly Communication (OAI9), Geneva, Switzerland
A Decentralized Network for Publishing Linked Data
2014-06-11
Invited talk at Quic Inc., San Francisco, USA
Citation Graph Analysis to Identify Memes in Scientific Literature
2013-06-08
Keynote at International Workshop on Terminology, Languages, and Content (LaRC), Pretoria, South Africa
Controlled Natural Language and Opportunities for Standardization
2011-08-23
Invited talk at Grammatical Framework Summer School, Barcelona, Spain
AceWiki
2011-02-01
Invited talk at 16th KnowTalk at KnowGravity Inc., Zurich, Switzerland
Semantic Web für Menschen wie du und ich
2010-09-14
Tutorial at the Second Workshop on Controlled Natural Language, Marettimo Island, Italy
An Introduction to AceWiki
2008-11-20
Invited talk at Semantic Wiki Mini Series, Session 2, Ontolog Conference Call (virtual)
AceWiki: Controlled English in a Semantic Wiki
Douceur. 2002. The Sybil Attack.
2026-05-07
Introduces the term Sybil Attack.
Bigerl et. al. 2020. Tentris – A Tensor-Based Triple Store
2026-05-04
Introduces the Tentris approach: tensor representations for more efficient RDF querying
Sandberg et al. Dissolving the Fermi Paradox. 2018.
2018-06-25
The Fermi Paradox isn't a paradox after all if you consider all the probabilities correctly.
Barabasi & Albert. Emergence of Scaling in Random Networks. 1999.
2014
Algorithm for generating scale-free networks. Power law distribution. Preferential attachment.
Stanley. Scaling, universality, and renormalization: Three pillars of modern critical phenomena. 1999.
2014
Critical points, e.g. temperature when magnet stops working, are badly understood with microscopic models. Scaling laws (?). Universality classes of systems with the same "critical-point exponents and scaling functions". Renormalization (?).
Skinner. Are Theories of Learning Necessary? 1950.
2014
Studying learning and behavior based on animal experiments.
has the end date
has the start date
is a
has name
is further described by
located in
3PFF training
3PFF workshop
FAIR awareness
FAIR convergence
FIP consultation
FIP event
FIP introduction
hybrid event
in-person event
M4M consultation
M4M I-ADOPT
M4M introduction
M4M schema
M4M vocabulary
Orchestration
virtual event
has event assistant
has event facilitator
has event organizer
has event sponsor
has participating community
Event
Space
has as admin
an admin of the event
Defining a 3PFF event as a Space
3PFF
event assistant
community
http://purl.org/nanopub/api/find_signed_things?type=https%3A%2F%2Fw3id.org%2Ffair%2Ffip%2Fterms%2FFAIR-Implementation-Community&searchterm=
date of the event (e.g. 2020-12-31)
[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
end date (and optionally time)
short name, used as URI suffix
https://w3id.org/fair/3pff/
3 PFF event
event type
event facilitator
hours
location of the event (URL or name)
the name of the event
online resource
organizer of the event (ROR, URL or name)
3PFF type
workshop type
sponsor of the event (ROR or name)
start date (and optionally time)
has duration in hours
has the description
is a
has the label
Alliance - (with focus on bringing units together)
Community - (with focus on exchange)
Division - (with focus on structuring into sub-units)
Group - (with focus on getting work done)
Organization - (with focus on formal vessel)
Outlet - (with focus on outreach)
Program - (with focus on coordination)
Space
has as admin
an admin of the Space
Such nanopublications defines an open-ended Space, i.e. an organization, group, program, or community.
Defining an open-ended Space with existing URI
Spaces
the description of the Space
the name of the Space
Space identifier
type of the Space
has guest
Declaring to be a guest of a space
${space} has guest: ${user}
Events
choose the space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
choose user
has host
Declaring to be host of a space
${space} has host: ${user}
Events
choose the space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
choose user
is sub-space of
Such a nanopublication declares that one Space is a sub-space of another. The relation is admitted into the validated space-state once admins of both child and parent have attested to it (either by a single dual-admin publisher, or by two separate single-side declarations).
Declaring a sub-space relation
${child} is sub-space of ${parent}
Spaces
choose the child Space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
choose the parent (super-) Space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
conforms to
is a
has value
fragment selector
specific resource (image with region)
has selector
has source image
This template describes a morphological character used for identifying a taxon, optionally linking to image evidence with region annotations or direct image URLs.
Describing a morphological identification character
${characterLabel}
Biodiversity
short name for the character, used as URI suffix
http://purl.org/nanopub/api/find_signed_things?type=https://w3id.org/spaces/marine-biodiversity/r/ontology/MorphologicalCharacter&searchterm=
URL of the image
a selector
URL of the source image (e.g. a Zenodo file URL)
media fragment selector (e.g. xywh=150,200,80,60)
an image region
the organism taxon, e.g. a species
https://vodex.petapico.org/nidx/query?rows=100&q=label:
has identification character
is represented in
has the text
see also (has root nanopub)
Testing root nanopub placeholder
${message}
Comments
your plain-text message
root nanopub
conforms to the profile
is a
has the label
FAIR Digital Object
has the data
Such a nanopublication declares a basic kind of FDO, with or without data reference.
Creating a basic FDO
FDO
URL of the data file
short ID used as URI suffix
short, human-readable label for the FDO
select FDO (or other thing) as source
http://purl.org/nanopub/api/find_signed_things?type=https://w3id.org/fdof/ontology%23FAIRDigitalObject&searchterm=
FDO type
https://w3id.org/np/l/nanopub-query-1.1/api/RAydXkXhyL-uFqfW6F9DoM6Eu4x0bjux2JsdzQwy9stJM/find-fdo-subclasses
Basic FDO Profile
was derived from
is called - connects a formal identifier (left) to an informal human-readable name (right)
is a subclass of - states that all instances of the class/type to the left are also instances of the class/type to the right
is exactly the same as
is defined as follows: - connects an identifier (left) to a human-readable definition (right)
is related to - connects two things that are somehow related
FAIR Digital Object (FDO)
Such a nanopublication defines a new subclass of a FAIR Digital Objects (FDO) that can then be used as type of specific FDOs.
Defining a type of an FDO
FDO
definition of the FDO type
short name, used as URI suffix
the name of the FDO type
URI of a related entity
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
URI of a class/type that should be treated as fully synonymous
news article
has the body content
was published on
has the title
is part of
is available at
Publish a news article to a Space
${headline}
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
has habitat
is an
has the free-text comment
association of an organism taxon to an environment
links the taxon to the environment
refers to the relation (between taxon and environment)
refers to
refers to the taxon's life cycle stage
is used as defined in
has the name - links a taxon usage to a taxon name
Such a nanopublication expresses an association between an organism taxon (e.g. a species) and an environment, for example expressing that the organisms of the given species inhabit the specified environment, represented by EUNIS identifier.
Expressing an association between an organism taxon and an environment (according to EUNIS)
${taxonname} - ${relation} - ${environment}
Biodiversity
this association
short explanation related to the above statement
the environment (via EUNIS identifier)
https://discodata.eea.europa.eu/sql?query=SELECT%20concat(%27https%3A%2F%2Feunis.eea.europa.eu%2Fhabitats%2F%27%2C%5Bid_habitat%5D)%20as%20%5B%40id%5D%2C%20%5Bscientific_name%5D%20AS%20label%2C%20%5Bhabitat_description%5D%20as%20description%20FROM%20%5BEUNIS%5D.%5Blatest%5D.%5BHabitat_Information%5D%20WHERE%20%5Bhabitat_category%5D%20LIKE%20%27%25EUNISrev%25%27%20AND%20concat(%5Bscientific_name%5D%2C%27%20%27%2C%5Benglish_name%5D%2C%27%20%27%2C%5Beunis_habitat_code%5D)%20LIKE%20%27%25 %25%27&p=1&nrOfHits=50&mail=null&schema=null
the life cycle stage
the type of relation between the taxon and the environment
https://www.ebi.ac.uk/ols/api/select?ontology=ro&fieldList=iri,label,description&q=
a taxon concept
publication DOI (https://doi.org/...) or taxon treatment ID (https://treatment.plazi.org/id/...)
(https://doi.org/|https://treatment.plazi.org/id/).+
search and select from list (if not found, paste identifying URI from IPNI, MycoBank, Index Fungorum, or Zoobank)
https://vodex.petapico.org/nidx/query?rows=100&q=label:
Testing EUNIS lookup
https://discodata.eea.europa.eu/sql?query=SELECT%20concat(%27https%3A%2F%2Feunis.eea.europa.eu%2Fhabitats%2F%27%2C%5Bid_habitat%5D)%20as%20%5B%40id%5D%2C%20%5Bscientific_name%5D%20AS%20label%2C%20%5Bhabitat_description%5D%20as%20description%20FROM%20%5BEUNIS%5D.%5Blatest%5D.%5BHabitat_Information%5D%20WHERE%20%5Bhabitat_category%5D%20LIKE%20%27%25EUNISrev%25%27%20AND%20concat(%5Bscientific_name%5D%2C%27%20%27%2C%5Benglish_name%5D%2C%27%20%27%2C%5Beunis_habitat_code%5D)%20LIKE%20%27%25 %25%27&p=1&nrOfHits=50&mail=null&schema=null
has the description
is a
has the label
has the alternative ID
Alliance - (with focus on bringing units together)
Community - (with focus on exchange)
Division - (with focus on structuring into sub-units)
Group - (with focus on getting work done)
Organization - (with focus on formal vessel)
Outlet - (with focus on outreach)
Program - (with focus on coordination)
Space
has as admin
has the root definition
an admin of the Space
alternative URI
Such nanopublications defines an open-ended Space, i.e. a group, program, outlet, or community.
Defining an open-ended Space (with root definition)
Spaces
the description of the Space
the name of the Space
Space identifier
https://w3id.org/spaces/
https://w3id.org/spaces/
type of the Space
is part of
FAQ entry
is a
has the question
has the answer
has the position string
the answer
Create an FAQ entry
FAQ: ${question}
entity this FAQ entry is part of
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/MaintainedResource
this FAQ entry
string determining the order of the FAQ entries
the question
has the text
is a
is about
is authored by
testimonial
Give a testimonial
author of the testimonial
entity the testimonial is about
this testimonial
text of the testimonial
has the comment
has the label
is relevant for
Expressing something is relevant for something
comment about why this is relevant
the entity that has the relevant resource
the resource being relevant for the entity
label of the resource
has the title
is a
activated view display
deactivated view display
view display
applies to - applies only to this space, and not to parts of it, etc.
applies to all instances of
applies to the namespace
is a display for
is a display of the view
class URI, overriding view definition
namespace (URI prefix)
choose resource
Displaying a view for a maintained resource
${resource} displays view: ${view}
Spaces
this
select whether this display is activated or deactivated
choose the maintained resource
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/MaintainedResource
title, overriding view definition
choose the view
https://w3id.org/np/l/nanopub-query-1.1/api/RAzSFlOt0yD9b-GSNifkGoKfakXEYQ7f6Ic3OMwuJfwts/find-views?appliedViewClass=https://w3id.org/kpxl/gen/terms/MaintainedResource
simple message view
has the abstract
has the publication date
includes - links a thing to a part it includes
is part of
has the title
has
is in journal issue
has end page
has start page
is in journal volume
book chapter - A defined chapter of a book, usually with a separate title or number.
in-use paper - A scholarly work that describes applied and validated solutions such as software tools, systems or architectures that benefit from the use of the technology of a particular scholarly domain.
journal editorial - An editorial published in an issue of a journal.
methods paper - A scholarly work detailing a method, procedure or experimental protocol employed in a particular scholarly domain.
position paper - A scholarly work that reports a particular intellectual position or viewpoint regarding a particular scholarly topic.
research paper - A scholarly work that reports original research contributions addressing theoretical, analytical or experimental aspects of a particular scholarly domain.
resource paper - A scholarly work that describes resources developed to provide experimental materials or facilities, support a research hypothesis, to provide answers to a research question, or that have contributed to the generation of novel scientific work.
review paper - A scholarly work that surveys the state of the art of topics central to a particular subject or relating to a specific domain (e.g. the scope of a certain journal or conference).
scholarly work - A general term that includes all other listed types
has the affiliation
has the email address
is a
has the name
the abstract of the article
Select organization from above
Select author from above
DOI of the article (starting with https://doi.org/10...)
https://doi\.org/10.+
The type of the article
Such a nanopublication contains the main high-level metadata about a scholarly article, including title, authors, and links to other nanopublications.
Describing core article metadata
Article: ${title}
Journals
ORCID ID of the author (starting with https://orcid.org/...)
https://orcid\.org/[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]
email address of author
[A-Za-z0-9._+\-\']+@[A-Za-z0-9.\-]+\.[A-Za-z]{2,}
this author list
full name of author
Select author to specify an email address for
date, e.g. "2023-07-21", "2023-07", or "2023"
(1[0-9][0-9][0-9]|20[0-2][0-9])(-(1[0-2]|0[1-9])(-(3[0-1]|[1-2][0-9]|0[1-9]))?)?
issue number
ISSN of the journal (e.g. "2451-8492")
http://id.crossref.org/issn/
the journal with ISSN
Title of the journal
has at position ${number}
http://www.w3.org/1999/02/22-rdf-syntax-ns#_
includes as element number
[1-9][0-9]*
ROR identifier (https://ror.org/...) or short local URI suffix (e.g. "stanford")
(https://ror\.org/[0-9a-z]+|[a-zA-Z0-9_\-]+)
The name of the organization
end page number
start page number
a part belonging to this article, e.g. a nanopublication
The title of the article
volume number
participates in
The creator of such a nanopublication declares to be a participant in the specified Space.
Declaring the participation in a Space
${participant} is participant in ${space}
Events
choose the participant
choose space (e.g. event)
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
read action
has reader
has read date
has the read item
is a
has comment
has the label
The creator of such a nanopublication declares to have read a specific item (paper, book, article, etc.).
Declaring to have read something
Read: ${label}
Reading
comment or note about the reading
URI of the read item (e.g. DOI URL)
short label (e.g. 'Doe et al. 2024')
date read (YYYY, YYYY-MM, or YYYY-MM-DD)
[0-9]{4}(-[0-9]{2}(-[0-9]{2})?)?
this
who read it
is about
has the title
is a
paragraph
has the content
has the position string
Create a paragraph item
${title}
the full text of the paragraph
entity this is part of
short URI suffix
string determining the order of the paragraphs
title of the paragraph
is part of
has the title
is a
paragraph
has the content
has the position string
Publish a paragraph item for a profile
${title}
text content of the paragraph
short URI suffix
string determining the order of the paragraphs
choose the space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
the title of the paragraph
conforms to
is a
has value
has the label
fragment selector
specific resource (image with region)
has selector
has source image
This template describes a morphological character used for identifying a taxon, optionally linking to image evidence with region annotations or direct image URLs.
Describing a morphological identification character
${characterLabel}
Biodiversity
short name for the character, used as URI suffix
human-readable description of the morphological character
URL of the image
a selector
URL of the source image (e.g. a Zenodo file URL)
media fragment selector (e.g. xywh=150,200,80,60)
an image region
the organism taxon, e.g. a species
https://vodex.petapico.org/nidx/query?rows=100&q=label:
morphological character
has identification character
is represented in image
is a
activated view display
deactivated view display
view display
applies to - only applies to this user, and not to pages that are part of it, etc.
is a display for
is a display of the view
Planned event attendance view
View of read papers by user
Latest nanopubs by user view
List of all Spaces for given agent
Displaying a view on a user page
${resource} displays view: ${view}
Spaces
this
select whether this display is activated or deactivated
choose the user
choose the view
https://w3id.org/np/l/nanopub-query-1.1/api/RAzSFlOt0yD9b-GSNifkGoKfakXEYQ7f6Ic3OMwuJfwts/find-views?appliedViewClass=https://w3id.org/kpxl/gen/terms/IndividualAgent
Simple message view
has the title
is a
activated view display
10/12 columns
2/12 columns
3/12 columns
4/12 columns
5/12 columns
6/12 columns
7/12 columns
8/12 columns
9/12 columns
10/12 columns
12/12 columns
deactivated view display
view display
only applies to resource
applies to all instances of
applies to the namespace
has the display width
has the page size
has the structural position
is a display for
is a display of the view
class URI, overriding view definition
namespace (URI prefix)
namespace, overriding view definition
resource URI
Declare a view that should be displayed for the given resource (e.g. space, user, maintained resource).
Displaying a view for a resource
${resource} displays view: ${view}
Spaces
this
select whether this display is activated or deactivated
page size in number of entries, overriding view definition
[0-9]+
the ID of the resource
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/MaintainedResource
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
structural position id like '5.5.thing', overriding view definition
[1-9]\.[1-9]\..*
title, overriding view definition
choose the view
https://w3id.org/np/l/nanopub-query-1.1/api/RAs7Q2IMbb7C2WzFa98bVwlDMhN3kJ0rrF9cSEybtvLaA/find-embedded-things?type=https://w3id.org/kpxl/gen/terms/ResourceView
display width, overriding view definition
has author
has the presentation date
is described as
is part of
is a
has the label
see also
is about
poster presentation
Publish metadata about a poster presentation, including title, authors, date, event, and optionally a link to the poster or related resources.
Publishing information about a poster presentation
Poster: ${title}
Posters
an author of the poster
date of the poster presentation
abstract or description of the poster
event or conference
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Event
short ID suffix for the poster
URL to poster, DOI, or related resource
title of the poster
topic or subject of the poster
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
is a
activated view display
deactivated view display
view display
applies to - applies only to this space, and not to parts of it, etc.
applies to all instances of
applies to the namespace
is a display for
is a display of the view
class URI, overriding view definition
namespace (URI prefix)
choose resource
Displaying a view for a Space
${resource} displays view: ${view}
Spaces
this
select whether this display is activated or deactivated
choose the space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
choose the view
https://w3id.org/np/l/nanopub-query-1.1/api/RAzSFlOt0yD9b-GSNifkGoKfakXEYQ7f6Ic3OMwuJfwts/find-views?appliedViewClass=https://w3id.org/kpxl/gen/terms/Space
simple message view
is a version of
has the title
is a
has the label
2/12 columns
3/12 columns
4/12 columns
5/12 columns
6/12 columns
7/12 columns
8/12 columns
9/12 columns
10/12 columns
12/12 columns
list view
resource view
tabular view
view entry action - an action that is applied on a result entry of the view
view result action - an action that is applied on the entire result of a view
applies to instances of
applies to the namespace
has the template
has the template part field
has the query mapping
has the template target field
has the display width
has the page size
has the structural position
has the action
has the query
has the query target field
short ID suffix for the action
text shown on the action button
choose the template for this action
https://w3id.org/np/l/nanopub-query-1.1/api/RARD6qOGIXUvfxmf5CQNEDxPqlTVCqeLdWeSg5h8tUcEA/search-templates
the template field URI suffix
resource
put "void" if not applicable
void
table column to template param mapping like 'col:param'
void
the type of the action
classes this view applies to
namespace this view applies to
Declaring a view that to be shown on a resource page (i.e. user/space/maintained resource page).
Declaring a resource view
Spaces
label of the view
number of elements/rows per page
[0-9]+
choose the query
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/grlc/grlc-query
the query placeholder name
resource
digits for section/subsection + short id like '5.5.thing'
[1-9]\.[1-9]\..*
title to be shown as table header
short ID suffix for the view
short suffix or existing URI of view kind
choose the type of view
choose display width
is an
has the free-text comment
links the taxon to the chorotype
has the relation
refers to
refers to the taxon's life cycle stage
is used as defined in
has the name - links a taxon usage to a taxon name
Such a nanopublication expresses an association between an organism taxon (e.g. a species) and a chorotype, for example expressing that the organisms of the given species have a distribution range matching the specified chorotype.
Expressing an association between an organism taxon and a chorotype
${taxonname} - has distribution range - ${chorotype}
Biodiversity
this association
the chorotype to be associated with the taxon
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https%3A%2F%2Fw3id.org%2Fspaces%2Fcarabid-beetles%2Fr%2Fontology%2FChorotype&searchterm=
short explanation related to the above statement
the life cycle stage
a taxon concept
publication DOI (https://doi.org/...) or taxon treatment ID (https://treatment.plazi.org/id/...)
(https://doi.org/|https://treatment.plazi.org/id/).+
search and select from list (if not found, paste identifying URI from IPNI, MycoBank, Index Fungorum, or Zoobank)
https://vodex.petapico.org/nidx/query?rows=100&q=label:
association of an organism taxon to a chorotype
has distribution range
has the presentation date
is described as
is part of
is a
has the label
see also
is presented by
presentation
is about
Publish metadata about a presentation, including title, date, presenter, event, and optionally a link to the slides or a recording.
Publishing information about a presentation
Presentation: ${title}
Presentations
date of the presentation
abstract or description of the presentation
event or conference
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Event
short ID suffix for the presentation
the presenter
URL to slides, recording, or related resource
title of the presentation
topic or subject of the presentation
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
can be described as follows: - gives a thing (left) a human-readable description (right)
is part of
is a - asserts that the given thing (left) belongs to the given class (right)
is called - connects an identifier to a human-readable name for it
is further explained at - connects an identifier to a link with further information about it
named individual - a concrete or abstract thing that is given an identifier and a name
<p>This template defines a new chorotype individual. A chorotype represents a biogeographic distribution pattern or area category used to classify species by their geographic range.</p>
Defining a new chorotype
${name}
Terms
description of the chorotype
short name, used as URI suffix - the formal identifier of the chorotype
the letter code of the chorotype
the name of the chorotype
the numerical code of the chorotype
a URL where more information about this chorotype can be found
vocabulary / ontology
http://purl.org/nanopub/api/find_signed_things?type=http://www.w3.org/2002/07/owl%23Ontology&searchterm=
chorotype - a biogeographic distribution pattern category
has chorotype letter code
has chorotype numerical code
has the label
has the personal URL
Declare personal URLs
label for the URL (e.g. "my website")
URL
is a
deactivated view display
view display
is a display for
is a display of the view
Deactivating a view display for a user
${resource} deactivates view: ${view}
Spaces
this
choose the user
choose the view
https://w3id.org/np/l/nanopub-query-1.1/api/RAs7Q2IMbb7C2WzFa98bVwlDMhN3kJ0rrF9cSEybtvLaA/find-embedded-things?type=https://w3id.org/kpxl/gen/terms/ResourceView
was completed on
is a
has the label
Declaring a replication study outcome according to FORRT
FORRT
describe the overall conclusion about the original claim
choose confidence level
choose completion date
describe the evidence that supports your conclusion
plain-text label for the outcome
describe what limits the conclusions of the study
short URI suffix for outcome ID
repository URL
choose study
http://purl.org/nanopub/api/find_signed_things?type=https://w3id.org/sciencelive/o/terms/FORRT-Replication-Study&searchterm=
choose validation status
contradicted
FORRT Replication Outcome
high - Strong evidence, mostly agrees with original
inconclusive
low - Limited evidence, significant disagreement
moderate - Adequate evidence, partial agreement
not tested
partially supported
validated
very high - Extensive evidence, high agreement with original
very low - Minimal evidence, major disagreement
has the conclusion
has the confidence level
has the evidence
has the limitations
has the repository
has the validation status
is an outcome of
has habitat
is an instance of
has the free-text comment
is the same as
links the organism to the environment
refers to the relation
refers to - links an association to its subject
has the time stamp - points to the date and time associated with this relation or organism (e.g. date of collection); if occurrence URI is given, this is redundant and does not need to be filled in
an association of an organism to an environment
has the depth
has the dissolved oxygen concentration
has the life cycle stage
has the location coordinates - points to the location coordinates associated with this relation or organism (e.g. place of collection); if occurrence URI is given, this is redundant and does not need to be filled in
has the occurrence - links an organism to a record of a specific occurrence of it
has the salinity
is used as defined in
has the name - links a taxon usage to a taxon name
has the temperature
<p>Such a nanopublication expresses an association between an organism instance and an aquatic environment, expressing that the given organism was observed in the specified type of environment, including information about salinity, temperature, and depth.</p>
Expressing an association between an organism and an aquatic environment
Organism of ${taxonname} - ${relation} - ${environment}
Biodiversity
this association
short explanation related to the above statement
lat/long coordinates in format like '+47.37+8.54' or with altitude '+47.37+8.54+410.5'
[+-][0-9]+(\.[0-9]+)?[+-][0-9]+(\.[0-9]+)?([+-][0-9]+(\.[0-9]+)?)?
depth below sea level in meters
the environment to be associated with the organism
https://www.ebi.ac.uk/ols/api/select?ontology=envo&fieldList=iri,label,description&q=
select the life cycle stage of the organism; leave blank if unknown
occurrence URI from GBIF (https://www.gbif.org/occurrence/...) or iDigBio, BOLD, PlutoF, etc.
the organism
any existing URI identifier of organism (e.g. of digital collection specimen or observation in nature)
dissolved oxygen concentration in ml/l
the relation between the organism and the environment
https://www.ebi.ac.uk/ols/api/select?ontology=ro&fieldList=iri,label,description&q=
salinity
the taxon concept
publication DOI (https://doi.org/...) or taxon treatment ID (https://treatment.plazi.org/id/...)
(https://doi.org/|https://treatment.plazi.org/id/).+
search and select from list (if not found, paste identifying URI from IPNI, MycoBank, Index Fungorum, or Zoobank)
https://vodex.petapico.org/nidx/query?rows=100&q=label:
temperature in °C
time expressed in XSD DateTime format, e.g. '2023-03-30T22:17:11Z'
-?([1-9]\d\d\d+|0\d\d\d)-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])T(([01]\d|2[0-3]):[0-5]\d:[0-5]\d(\.\d+)?|24:00:00(\.0+)?)(Z|[+-](0\d|1[0-4]):[0-5]\d)?
conforms to
is defined as follows:
is a
has its subject values from the class (domain)
has the label
has its object values from the class (range)
datatype property - a relation between an object (any entity) and a literal (a text or number)
object property - a relation between two objects (any kinds of entities)
FDO attribute
has the object shape
FAIR Digital Object
FDO Attribute Profile
With this template an object/datatype property is defined in a way it can serve as an FDO attribute of an FDO metadata record.
Defining an RDF property as FDO attribute
FDO
definition of the property
URI of the domain class
how the property is read, e.g. 'contains' or 'is used by'
object shape in SHACL
short URI suffix or full URI
type of property (object or datatype property)
URI of the range class
is a
is about
post
has the text
is authored by
is published on
has the title
has the link
is a response to
Create a post
${title}
choose author
body text of your post
select date
primary URL of this post
this
related (third-party) URL
URL of referenced post
title/headline of the post
has the original source
is a
has the label
choose AIDA sentence of claim
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fpurl.org%2Fpetapico%2Fo%2Fhycl%23AIDA-Sentence&searchterm=
Declaring an original claim according to FORRT
FORRT
Short URI suffix as claim ID
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fpurl.org%2Fpetapico%2Fo%2Fhycl%23AIDA-Sentence&searchterm=
Type of FORRT claim
label of the claim, to find it later
source URI
FORRT claim
corresponds to - linking to an AIDA statement: an English sentence that is Atomic (describing a single thought), Independent (can be understood as a single sentence without further context), Declarative (complete sentence ending with a full stop), and Absolute (describing the core of a claim ignoring certainty and source)
computational performance (Computational & Performance)
scalability (Computational & Performance)
is a
has the label
is related to
Declaring a replication study design according to FORRT
FORRT
choose FORRT claim
http://purl.org/nanopub/api/find_signed_things?type=https://w3id.org/sciencelive/o/terms/FORRT-Claim&searchterm=
Describe any deviations from original methodology.
Choose the scientific discipline
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
choose terms as related keywords
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
label/name of replication study
Describe how the claim is reproduced/replicated.
Describe what part of the claim is reproduced/replicated.
short URI suffix for study ID
choose the study type
FORRT Replication Study
Replication Study - replication with different methodology or conditions
Reproduction/Replication Study - study that is both, reproduction and replication
Reproduction Study - direct reproduction: same methodology, same tools
has the deviation
has the discipline
has the methodology
has the scope
targets the claim
has the original source
is a
Declaring an original claim according to FORRT (deprecated)
FORRT
AIDA sentence URI of claim
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fpurl.org%2Fpetapico%2Fo%2Fhycl%23AIDA-Sentence&searchterm=
Type of FORRT claim
source URI
FORRT claim
computational performance (Computational & Performance)
scalability (Computational & Performance)
Binary format
JSON
PDF
HDF5
PNG
NetCDF
CSV
Zarr
MPEG-4
created by
has description
needs or produces data format
has license
has title
improves upon method
CC-BY-4.0
serves purpose
applies to domains
has source repository
has keywords
uses computational approach
reports performance results
is accessible via
Apache 2.0
BSD 3 Clause
GPL 3.0
MIT
applicable research domains
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
primary computational purpose
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
Template for describing a computational workflow implemented for and supported by a Workflow Management System
Computational Workflow (without target namespace)
Method: ${title}
Computational Workflow
method this improves upon (DOI or URI)
computational approach used
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
URI of the workflow repository
ORCID of creator
https://orcid.org/
ORCID (just the 16-digit ID)
0000-\d{4}-\d{4}-\d{4}
description of what the method does
[\s\S]{10,1000}
DOI URL
https://doi.org/
DOI (starting with '10.')
10.(\d)+/(\S)+
GitHub repository URL
expected input data format
input:
Input:
research keywords from Wikidata
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
software license
produced output format
output:
Output:
quantitative performance measurements
[\s\S]{10,1000}
title of the Workflow
[\s\S]{5,200}
Workflow Management System
uses workflow management system
Nextflow
Snakemake
Galaxy
CWL
has the date
is a
has the label
Declaring a replication study according to FORRT (deprecated)
FORRT
date of the study (completion)
short ID suffiy or full URI (DOI, GitHub URL, etc.)
label/title for the study
FORRT replication study
Assigning a feature to an organism taxon
${taxon} has the feature ${feature}
choose biological feature
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
choose taxon
https://vodex.petapico.org/nidx/query?rows=100&q=label:
has the feature
approves of
disapproves of
choose approve or disapprove
Approving or disapproving of a nanopublication
${approveOrDisapprove} ${nanopub}
Meta
optional free-text comment about the (dis)approval
nanopublication URI
has the comment
is a
activated view display
deactivated view display
view display
only applies to resource
applies to all instances of
applies to the namespace
is a display for
is a display of the view
class URI, overriding view definition
namespace, overriding view definition
resource URI
Displaying a view for a part-level resource
${resource} displays view: ${view}
Spaces
this
select whether this display is activated or deactivated
the ID of the resource
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/MaintainedResource
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
choose the view
https://w3id.org/np/l/nanopub-query-1.1/api/RAs7Q2IMbb7C2WzFa98bVwlDMhN3kJ0rrF9cSEybtvLaA/find-embedded-things?type=https://w3id.org/kpxl/gen/terms/ResourceView
basic view of definition relations
has the description
simple statement
has as object
has as predicate
has as subject
is a
is labeled as
This nanopublication defines an assertion template. Such templates are used to generate the input form for the assertion part of nanopublications.
Defining an assertion template (new version)
${tlabel}
Templates
Nanopublication URI with provenance template
default value of the placeholder
provide a description / instructions for the template here
short ID of grouped statement
label of thing
URI/placeholder mentioned above
the label pattern, e.g. '${abc} links to ${xyz}.' where 'abc' and 'xyz' refer to placeholder names
datatype of the literal
language tag of the literal
[0-9a-zA-Z-]{2,}
literal placeholder
literal placeholder
type of nanopub created (can be class of assertion or nanopub, or main prediate in assertion)
placeholder mentioned above
placeholder
restr/guided choice placeholder
restr/guided choice placeholder
guided choice placeholder
short ID of placeholder
short ID of placeholder
type of placeholder: IRI, literal, restricted, etc.
possible value
nanopublication with possible values
URL prefix for API lookup
URL prefix
label for URL prefix
regular expression
Nanopublication URI with publication info template
short ID of statement
type of statement: simple, optional, repeatable
Tag used as section heading to group templates
the target namespace (URI prefix) in which the nanopublication ID is minted
template can be marked as unlisted here
short ID of grouped statement
name of this template
URI/literal/placeholder of the object
integer value for statement order
URI/placeholder of the predicate
short ID of simple statement
short ID of statement
short ID of simple statement
URI/placeholder of the subject
advanced statement
Agent placeholder
assertion template
Auto-escape URI placeholder
Embedded resource
External URI placeholder
grouped statement
Guided choice placeholder
Introduced resource
Literal placeholder
Local resource
Long literal placeholder
optional statement
repeatable statement
Restricted choice placeholder
Sequence element placeholder
Trusty URI placeholder
Unlisted template
URI placeholder
URI/literal placeholder
has the datatype
has default provenance
has the default value
has the language tag
has the nanopub label pattern - assigns a pattern used to generate a human-readable label for the whole nanopublication
has prefix
has prefix label
has regular expression
has required publication info
includes
has tag
has the target namespace
has the target nanopub type
has as possible value
has possible values from
has possible values from API
has statement order value
conforms to
Declaring uncertainty estimates for a dataset
uncertainty estimates for ${dataset}
URI of dataset
numerical I estimate value
numerical m/z estimate value
numerical RT estimate value
URI of uncertainty model
has I uncertainty estimate
has RT uncertainty estimate
has m/z uncertainty estimate
has habitat
<p>Such a nanopublication expresses an association between an organism instance and an environment, expressing that the given organism was observed in the specified type of environment.</p>
Expressing an association between an organism and an environment
Organism of ${taxonname} - ${relation} - ${environment}
Biodiversity
this association
short explanation related to the above statement
lat/long coordinates in format like '+47.37+8.54' or with altitude '+47.37+8.54+410.5'
[+-][0-9]+(\.[0-9]+)?[+-][0-9]+(\.[0-9]+)?([+-][0-9]+(\.[0-9]+)?)?
the environment to be associated with the organism
https://www.ebi.ac.uk/ols/api/select?ontology=envo&fieldList=iri,label,description&q=
select the life cycle stage of the organism; leave blank if unknown
occurrence URI from GBIF (https://www.gbif.org/occurrence/...) or iDigBio, BOLD, PlutoF, etc.
the organism
any existing URI identifier of organism (e.g. of digital collection specimen or observation in nature)
the relation between the organism and the environment
https://www.ebi.ac.uk/ols/api/select?ontology=ro&fieldList=iri,label,description&q=
the taxon concept
publication DOI (https://doi.org/...) or taxon treatment ID (https://treatment.plazi.org/id/...)
(https://doi.org/|https://treatment.plazi.org/id/).+
search and select from list (if not found, paste identifying URI from IPNI, MycoBank, Index Fungorum, or Zoobank)
https://vodex.petapico.org/nidx/query?rows=100&q=label:
time expressed in XSD DateTime format, e.g. '2023-03-30T22:17:11Z'
-?([1-9]\d\d\d+|0\d\d\d)-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])T(([01]\d|2[0-3]):[0-5]\d:[0-5]\d(\.\d+)?|24:00:00(\.0+)?)(Z|[+-](0\d|1[0-4]):[0-5]\d)?
is an instance of
has the free-text comment
is the same as
links the organism to the environment
refers to the relation
refers to - links an association to its subject
has the time stamp - points to the date and time associated with this relation or organism (e.g. date of collection); if occurrence URI is given, this is redundant and does not need to be filled in
an association of an organism to an environment
has the life cycle stage
has the location coordinates - points to the location coordinates associated with this relation or organism (e.g. place of collection); if occurrence URI is given, this is redundant and does not need to be filled in
has the occurrence - links an organism to a record of a specific occurrence of it
is used as defined in
has the name - links a taxon usage to a taxon name
has the description
has the source
is a
has the label
short ID suffix for approach
Describing an AI in Education approach
choose more specific class
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
description of the approach
short text label/name for the approach
paper reference, e.g. DOI
the label for the reference (citation line)
AI in Education approach
has observer
Declaring to observe a space
${space} has observer: ${user}
Events
choose the observed space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
choose user
has observer
The creator of such a nanopublication declares to have participated in the specified event.
Declaring the participation in an event
${resource} has observer: ${user}
Events
URI of resource that is observed
choose user
bot - a software agent that acts/publishes autonomously
software agent
software tool - a software agent that acts/publishes with direct human interaction
is declared by
has algorithm
has key location
has public key
has the owner
is a
has the name
full URI or short suffix as agent ID
Introducing a software agent
${name}
Meta
choose whether this is a bot or a tool
choose additional type, if applicable
short id of key declaration
URL where the private key is stored
name of the software agent
choose owner
public key
RSA
GenAI agent
this annotation
Such a nanopublication represents an annotation of a text according to the <a href="https://www.w3.org/ns/oa">Web Annotation Vocabulary</a>.
Annotating a text
Annotation of ${source}: '${body-text}'
Annotations
an annotation body
write your annotation text here
choose motivation
the copy of the text being selected
a snippet of text immediately before the selected text
a snippet of text immediately after the selected text
a selector
the URI/URL of the source that is being annotated
a target
is a - connects a thing (left) to the class (right) it belongs to
has the value - links an identifier to its (textual) value
web annotation - a web annotation of a document or other thing
text quote selector - a text quote selector describes a range of text by copying it, and including some of the text immediately before (a prefix) and after (a suffix)
refers to the text - refers to a copy of the text which is being selected
has as body - connects an annotation to its body element
has as selector - connects an annotation to its selector
has the source - links to the source that is being annotated
has as target - connects an annotation to its target
is motivated by
refers to the text right after - refers to a snippet of content that occurs immediately before the content which is being selected
refers to the text right before - refers to a snippet of content that occurs immediately after the content which is being selected
has the description
simple statement
has as object
has as predicate
has as subject
is a
is labeled as
This nanopublication defines an assertion template. Such templates are used to generate the input form for the assertion part of nanopublications.
Defining an assertion template
${tlabel}
Templates
Nanopublication URI with provenance template
default value of the placeholder
provide a description / instructions for the template here
short ID of grouped statement
label of thing
URI/placeholder mentioned above
the label pattern, e.g. '${abc} links to ${xyz}.' where 'abc' and 'xyz' refer to placeholder names
datatype of the literal
language tag of the literal
[0-9a-zA-Z-]{2,}
literal placeholder
literal placeholder
type of nanopub created (can be class of assertion or nanopub, or main prediate in assertion)
placeholder mentioned above
placeholder
restr/guided choice placeholder
restr/guided choice placeholder
guided choice placeholder
short ID of placeholder
short ID of placeholder
type of placeholder: IRI, literal, restricted, etc.
possible value
nanopublication with possible values
URL prefix for API lookup
URL prefix
label for URL prefix
regular expression
Nanopublication URI with publication info template
short ID of statement
type of statement: simple, optional, repeatable
Tag used as section heading to group templates
the target namespace (URI prefix) in which the nanopublication ID is minted
template can be marked as unlisted here
short ID of grouped statement
name of this template
URI/literal/placeholder of the object
integer value for statement order
URI/placeholder of the predicate
short ID of simple statement
short ID of statement
short ID of statement
short ID of simple statement
URI/placeholder of the subject
advanced statement
Agent placeholder
assertion template
Auto-escape URI placeholder
Embedded resource
External URI placeholder
grouped statement
Guided choice placeholder
Introduced resource
Literal placeholder
Local resource
Long literal placeholder
optional statement
repeatable statement
Restricted choice placeholder
Sequence element placeholder
Trusty URI placeholder
Unlisted template
URI placeholder
URI/literal placeholder
has the datatype
has default provenance
has the default value
has the language tag
has the nanopub label pattern - assigns a pattern used to generate a human-readable label for the whole nanopublication
has prefix
has prefix label
has regular expression
has required publication info
includes
has tag
has the target namespace
has the target nanopub type
has as possible value
has possible values from
has possible values from API
has statement order value
is a part of
is a - asserts that the thing on the left belongs to the class on the right
is called - connects a formal identifier (left) to an informal human-readable name (right)
is a subclass of - states that all instances of the class to the left are also instances of the class to the right
class - a class represents a set of concrete or abstract things
deprecated class
is exactly the same as
is defined as follows: - connects an identifier (left) to a human-readable definition (right)
is related to - connects two classes that are somehow related
<p>Such a nanopublication defines a new class. Classes represent sets of concrete or abstract things, and are by convention named with singular nouns (or noun phrases) like 'human', 'cardiovascular disease', or 'approach'.</p><p>If the term you want to define does not refer to a set of things but a single instance, such as the planet Mars or Marie Curie, define them with the template for individuals instead.</p>
Defining a new class (TEST)
short name, used as URI suffix
definition of the class
the name of the class
URI of a related class or other entity
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
URI of a class that should be treated as fully synonymous
the URI of the superclass
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
select class type, if appropriate
vocabulary / ontology
http://purl.org/nanopub/api/find_signed_things?type=http://www.w3.org/2002/07/owl%23Ontology&searchterm=
is declared by
has algorithm
has key location
has public key
has the name
Introducing a user (TEST)
User: ${name}
short id of key declaration
URL where the private key is stored
name of the user
public key
RSA
identifier of the user to be introduced
has the applicable legislation
has the access rights
has the creator
has the description
has the publisher
is a
has the label
Rights Statement (IRI)
URI for legislation
Describing dataset according to Health-DCAT-AP-NL
${title}
Datasets
a contact point
contact point email address
name of contact point
choose creator
dataset URI
description of dataset
keyword string
publisher URI
theme URI
title of the dataset
has the email
has the name
dataset
has the contact point
has the keyword
has the theme
has as favorite
has the comment
Declaring a favorited resource
Favorite: ${favoritedThing}
Social
comment text
URL/URI of the favorited thing
is part of
property
is a
has its subject values from the class (domain)
is read as
has its object values from the class (range)
is a sub-property of
datatype property - a relation between an object (any entity) and a literal (a text or number)
deprecated property
object property - a relation between two objects (any kinds of entities)
is defined as follows:
This template helps to define object properties and datatype properties with domains and ranges from diverse sources.
Defining a new object/datatype property
Terms
definition of the property
URI of the domain class
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
how the property is read, e.g. 'contains' or 'is used by'
ontology or vocabulary
short name, used as URI suffix
type of property (object or datatype property)
URI of the range class
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
super property
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23Property&searchterm=
select additional type, if appropriate
has the description
is a
has the label
Defining a PCC-based research question
a concept
description of the concept
a context
description of the context
description of the review question
label for the review question
a population
description of the population
short ID used as URI suffix
PCC-based review question
has
has
has
AIDA sentence - an English sentence that is Atomic, Independent, Declarative, and Absolute
is supported by
is about - connects a thing (left) to a subject matter that this thing is about (right)
is an - connects a thing (left) to a class it belongs to (right)
is related to
Type your AIDA sentence here (ending with a full stop)
http://purl.org/aida/
The sentence
[\S ]{5,500}\.
<p> Template for expressing a statement about research as an AIDA sentence and linking to its relevant project. Such nanopublications use the concept of an AIDA sentence to express a (scientific) statement in an informal or semi-formal manner, which can be formally linked.</p>
<p>AIDA sentences are:<p>
<ul>
<li><strong>Atomic:</strong> a sentence describing one thought that cannot be further broken down in a practical way</li>
<li><strong>Independent:</strong> a sentence that can stand on its own, without external references like "this effect" or "we"</li>
<li><strong>Declarative:</strong> a complete sentence ending with a full stop that could in theory be either true or false</li>
<li><strong>Absolute:</strong> a sentence describing the core of a claim ignoring the (un)certainty about its truth and ignoring how it was discovered (no "probably" or "evaluation showed that"); typically in present tense</li>
</ul>
<p>You can find more information about AIDA sentences <a href="https://github.com/tkuhn/aida" target="_blank">here</a>.</p>
Expressing a statement about research as an AIDA sentence attributed to Leiden University
AIDA sentence: ${aida}
Claims
URI of related published dataset
URI of nanopublication for related research project
https://w3id.org/np/l/nanopub-query-1.1/api/RAz6f1v82BCG0SjYMfHUe-m927VTVKdwvsuq1X7j1qcA8/find-things?type=https://schema.org/ResearchProject
URI of related scholarly work (e.g. publication)
URI of concept or topic the sentence is about
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
has description
is a part of
is a
is called
has website
is related to
research project
ends on
is funded by
starts on
has research domain
Template for defining a research project at Leiden University.
Defining a research project at Leiden University
Projects
description (if copied, with reference URL)
choose domain
YYYY, YYYY-MM, or YYYY-MM-DD
[0-9][0-9][0-9][0-9](-[01][0-9](-[0-3][0-9])?)?
funder URI or name (between " ") if no URI exists
URI of larger research project
https://w3id.org/np/l/nanopub-query-1.1/api/RAz6f1v82BCG0SjYMfHUe-m927VTVKdwvsuq1X7j1qcA8/find-things?type=https://schema.org/ResearchProject
name of research project
URIs of related research projects
https://w3id.org/np/l/nanopub-query-1.1/api/RAz6f1v82BCG0SjYMfHUe-m927VTVKdwvsuq1X7j1qcA8/find-things?type=https://schema.org/ResearchProject
research project URI from funder or number (between " ") if no URI exists
This research project
YYYY, YYYY-MM, or YYYY-MM-DD
[0-9][0-9][0-9][0-9](-[01][0-9](-[0-3][0-9])?)?
a link to research project's website
has funder-provided identifier
can be described as follows: - gives a thing (left) a human-readable description (right)
is part of
<p>Such nanopublications define a new named individual. Such a named individual represets a single concrete or abstract thing that is in some way relevant. Examples are the planet Mars, Marie Curie, or the Universal Declaration of Human Rights.</p>
<p>Such individuals do <strong>not</strong> represent sets of things, like humans, diseases, or ideas. Such concepts representing sets should be defined with the template for classes.</p>
Defining a new individual
${name}
Terms
the URI of the class this individual belongs to
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
description of the individual
short name, used as URI suffix - the formal identifier of the individual
the name of the individual
a URL where more information about this individual can be found
vocabulary / ontology
http://purl.org/nanopub/api/find_signed_things?type=http://www.w3.org/2002/07/owl%23Ontology&searchterm=
is a - asserts that the given thing (left) belongs to the given class (right)
is called - connects an identifier to a human-readable name for it
is further explained at - connects an identifier to a link with further information about it
named individual - a concrete or abstract thing that is given an identifier and a name
thing - the class representing everything
dataset
has license
has title
supports
is a
has repository
results from
Template for describing a dataset related to Leiden University at summary level and linking to its relevant project.
Describing a Leiden University dataset at summary level
Datasets
URI of published dataset
URI of license of published dataset
URI of nanopublication for research project that produced dataset
https://w3id.org/np/l/nanopub-query-1.1/api/RAz6f1v82BCG0SjYMfHUe-m927VTVKdwvsuq1X7j1qcA8/find-things?type=https://schema.org/ResearchProject
URI of repository where dataset is published
URI of related scholarly work (e.g. publication)
title of published dataset
Declaring a study to be selected for full screening
PRISMA
review URI
choose study
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Frdf-vocabulary.ddialliance.org%2Fdiscovery%23Study&searchterm=
selects for full screening
is a
has the comment
Express thanks
${thanker} thanks ${thanked}
plain-text comment
choose who receives the thank you
choose who gives the thank you
this
enter the reason URI
thanks
is giving thanks to
is from
thanks for
is part of
has the source
scholarly work
study
is a
has my comment
has the label
collection element
Declaring something as a part of a collection
Collections
the collection this item belongs to
http://purl.org/nanopub/api/find_signed_things?type=http://purl.org/dc/dcmitype/Collection&searchterm=
comment about this item
label of the item
source URI, e.g. DOI of paper
short suffix of full URI of item
choose the type of the item
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
collection
has the description
is part of
is a
has the label
Creating a new collection
Collections
URI suffix or full URI of collection
description of the collection
label for the collection
containing resource
collection
has the description
systematic review
is a
has the label
OWL ontology
SKOS concept scheme
maintained resource
has the namespace
is maintained by
Such nanopublications declares a resource maintanced by a space (e.g. organization, group, community).
Defining a maintained resource
Spaces
the description of the resource
the name of the resource
namespace URI prefix
resource identifier
the space maintaining this resource
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
type of the resource
plans to attend
Such a nanopublication declares that the creator plans to attend an event.
Declaring to plan to attend an event
Plan to attend: ${space}
Spaces
URI of event
has the date
has the label
plans to attend
Such a nanopublication declares that the creator plans to attend an event, including extra info like name and date of the event, to make sure this info is available when needed by queries.
Declaring to plan to attend an event (with extra info)
Plan to attend: ${space}
Spaces
(start) date of the event
name of the event
URI of event
fruit body
spore
is an instance of
has the free-text comment
is the same as
has the location
links the organism to the nucleotide sequence
refers to the relation
refers to
has the time stamp - points to the date and time associated with this relation or organism (e.g. date of collection); if occurrence URI is given, this is redundant and does not need to be filled in
an association of an organism to a nucleotide sequence
assembled nucleotide sequence
has the isolation protocol
has the life cycle stage
has the location coordinates - points to the location coordinates associated with this relation or organism (e.g. place of collection); if occurrence URI is given, this is redundant and does not need to be filled in
observed nucleotide sequence
has the occurrence - links an organism to a record of a specific occurrence of it
has the sample type
sequenced nucleotide sequence
has the strain ID
is used as defined in
has the name - links a taxon usage to a taxon name
identified by nucleotide sequence
<p>Such a nanopublication expresses an association between an organism (normally identified as belonging to a certain taxon concept) and a nucleotide sequence (that can correspond to a full genome sequence, a gene, or a subunit of a gene), for example expressing that Sequence ID (INSDC / Genbank accession number or BOLD Process ID) identifies Organism X as belonging to a Taxon Concept Y.</p>
Expressing an association between an organism and a nucleotide sequence (extended)
Organism of ${taxonname} - ${relation} - ${nucleotidesequence}
Biodiversity
this association
short explanation related to the above statement
lat/long e.g. '+47.37+8.54' or with altitude '+47.37+8.54+410.5'
[+-][0-9]+(\.[0-9]+)?[+-][0-9]+(\.[0-9]+)?([+-][0-9]+(\.[0-9]+)?)?
DOI of isolation protocol document
https://doi\.org/.+
select the life cycle stage of the organism; leave blank if unknown
GeoNames location ID (https://sws.geonames.org/.../)
https://sws\.geonames\.org/[0-9]+/
INSDC/Genbank # (e.g. https://www.ncbi.nlm.nih.gov/nuccore/...)
occurrence URI from GBIF (https://www.gbif.org/occurrence/...) or iDigBio, BOLD, PlutoF, etc.
the organism
any existing URI identifier of organism (e.g. of digital collection specimen or observation in nature)
the relation between the organism and the nucleotide sequence
choose the type of sample
https://www.ebi.ac.uk/ols/api/select?ontology=uberon&q=
Strain ID string (e.g. DSMZ, ATCC)
the taxon concept
DOI (https://doi.org/...) or treatment ID (https://treatment.plazi.org/id/...)
(https://doi\.org/|https://treatment\.plazi\.org/id/).+
search and select from list (if not found, paste identifying URI from IPNI, MycoBank, Index Fungorum, or Zoobank)
https://vodex.petapico.org/nidx/query?rows=100&q=label:
time expressed in XSD DateTime format, e.g. '2023-03-30T22:17:11Z'
-?([1-9]\d\d\d+|0\d\d\d)-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])T(([01]\d|2[0-3]):[0-5]\d:[0-5]\d(\.\d+)?|24:00:00(\.0+)?)(Z|[+-](0\d|1[0-4]):[0-5]\d)?
has contributor
has creator
has version
is part of
was published
uses language
data usage license
has data usage license
has publisher
has domain
is a
has description
has the label
has funder
implements
FAIR Digital Object (FDO)
has format
has the format
has its metadata in
is a concrete materialization of
access URL
Declaring a Dataset (adjusted version)
Datasets
class URI
contact email
ORCID of contributor
ORCID of creator
publication date
description
domain
full URI (e.g. handle.net) or short suffix
FAIR Implementation Profile
http://purl.org/nanopub/api/find_signed_things?type=https%3A%2F%2Fw3id.org%2Ffair%2Ffip%2Fterms%2FFAIR-Implementation-Profile&searchterm=
MIME type, such as "text/csv" or "application/trig"
ROR of funder institution
label or name for this FDO
language
http://purl.org/nanopub/api/find_signed_things?type=https%3A%2F%2Fw3id.org%2Ffair%2Ffip%2Fterms%2FData-usage-license&searchterm=
materialization URI
project
https://w3id.org/np/l/nanopub-query-1.1/api/RAFTZ8GqPOOJQOBcEo5IB8lg5vZCFiIyr_RVLKZDQBHMk/get-projects?searchterm=
the ROR of the publishing entity
version
html
has access URL
has contact point
has as team member
Assigning a team member to a Space
${space} has team member ${teamMember}
Space
choose the Space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
choose the team member
is a part of
is a - asserts that the thing on the left belongs to the class on the right
is called - connects a formal identifier (left) to an informal human-readable name (right)
is a subclass of - states that all instances of the class to the left are also instances of the class to the right
class - a class represents a set of concrete or abstract things
deprecated class
is exactly the same as
is defined as follows: - connects an identifier (left) to a human-readable definition (right)
is related to - connects two classes that are somehow related
<p>Such a nanopublication defines a new class. Classes represent sets of concrete or abstract things, and are by convention named with singular nouns (or noun phrases) like 'human', 'cardiovascular disease', or 'approach'.</p>
<p>If the term you want to define does not refer to a set of things but a single instance, such as the planet Mars or Marie Curie, define them with the template for individuals instead.</p>
Defining a new class
Terms
short name, used as URI suffix
definition of the class
the name of the class
URI of a related class or other entity
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
URI of a class that should be treated as fully synonymous
the URI of the superclass
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
select class type, if appropriate
vocabulary / ontology
http://purl.org/nanopub/api/find_signed_things?type=http://www.w3.org/2002/07/owl%23Ontology&searchterm=
is a
has the comment
Awarding a Science Live credit
${awardedAgent} is awarded ${points} Science Live credits
Science Live
choose awarded agent
choose awarding agent
any free-text comment
This credit
number of points (integer)
[0-9]+
URI/URL that represents the reason for the credit
Science Live credit
has the credit points
is awarded by
is awarded for
is awarded to
is a version of
is an
has the label
OWL ontology
ontology version
has the content index
Defining a version of an OWL ontology
Ontologies
choose content index
label of the ontology
URI of the ontology across its versions
ontology version URI
is part of
is a
has the label
Declaring a systematic database search
database URL
date when search was conducted
label of the search
exact search string as executed (copy-paste from database interface)
number of records retrieved from this database
this search
choose the search strategy
http://purl.org/nanopub/api/find_signed_things?type=https://w3id.org/sciencelive/o/terms/SystematicReviewSearchStrategy&searchterm=
URI of systematic review
http://purl.org/nanopub/api/find_signed_things?type=http://purl.org/spar/fabio/SystematicReview&searchterm=
systematic database search
follows the search strategy
has the database URL
has the retrieved record count
has the search query
has the search date
was completed on
used the extraction method
has the quality assessment
includes the study results
is part of
is a
has the label
This template documents study characteristics, eligibility criteria, and risk of bias assessment for included studies in systematic reviews following PRISMA 2020 guidelines. It captures eligibility criteria specification (Item 5), risk of bias assessment methods (Item 11), study characteristics (Item 17), and individual study results (Items 18-19), providing structured documentation for transparent study evaluation and data extraction.
Declaring a PRISMA study assessment dataset
PRISMA
Risk of bias assessment tools and methods used (PRISMA Item 11)
Date of assessment completion
URI where study assessment data is deposited (Zenodo, Figshare, etc.)
Detailed inclusion and exclusion criteria (PRISMA Item 5)
Data extraction methodology and reviewer processes
Label of study assessment dataset
Assessment limitations, modifications, and methodological notes
Risk of bias assessment results for included studies (PRISMA Item 18)
this study assessment dataset
Summary of study characteristics across included studies (PRISMA Item 17)
Individual study results and effect estimates (PRISMA Item 19)
Choose systematic review
http://purl.org/nanopub/api/find_signed_things?type=http://purl.org/spar/fabio/SystematicReview&searchterm=
study assessment dataset
follows the eligibility criteria
has the dataset file location
has the limitations
has the study characteristics
used the assessment technique
has the source
study
is a
has the label
Declaring a study to be included in a systematic review
PRISMA
source URI, e.g. DOI of paper
this study
label for the study
choose the systematic review
http://purl.org/nanopub/api/find_signed_things?type=http://purl.org/spar/fabio/SystematicReview&searchterm=
includes
was completed on
is a part of
is a
has the label
This template documents search execution and initial study selection for systematic reviews following PRISMA 2020 guidelines. It captures verbatim search strategies (Item 7), information source details (Item 6), selection methodology (Item 8), and study flow documentation (Items 16a-16b), providing structured documentation for transparent and reproducible search execution and screening processes.
Declaring a PRISMA search execution dataset
PRISMA
Date of search execution completion
URL where complete search results are deposited (Zenodo, Figshare, etc.)
select DB search
http://purl.org/nanopub/api/find_signed_things?type=https://w3id.org/sciencelive/o/terms/SystematicDatabaseSearch&searchterm=
Deduplication software and methodology (e.g., EndNote 20: automatic + manual verification)
Summary of exclusion reasons with study counts by category
has the exclusion breakdown
Final number of studies included in review
Number of records proceeding to full-text screening
Label of this search execution dataset
Search limitations, protocol modifications, and additional methodological notes
Total records screened
Title/abstract and full-text screening methodology
this search execution dataset
URI of the systematic review
search execution dataset
has the dataset file location
has the final included study count
has full-text screened record count
has the limitations
has the screened record count
included the database search
used the deduplication methodology
Number of reviewers, independence status, disagreement resolution methods
used the review methodology
used the screening methodology
is part of
is a
has the label
is the same as
alternative URI
Defining a chemical
Chemicals
URI of chemical
label for the chemical
ontology URI
chemical
is part of
is a
has the label
has the end date
has the start date
This template allows researchers to document their systematic review search strategy following PRISMA 2020 guidelines. It captures search terms, databases, date ranges, and expected results using Dublin Core Terms and RDFS vocabularies. Corresponds to PRISMA 2020 Item 7 (Search) and supports transparent, reproducible literature searches.
Defining a systematic review search strategy
PRISMA
Database URI (PubMed, scopus, etc.)
End date for literature search
label for the search strategy
choose language
Metholodogy notes
URI of the concept used for the literature search
This search strategy
Start date for literature search
URI of systematic review
a time period
systematic review search strategy
covers the language
covers
includes as methodology notes
searches the database
uses the search terms
Linking a research question to a systematic review
${systematicReview} targets ${researchQuestion}
choose the research question
http://purl.org/nanopub/api/find_signed_things?type=http://data.cochrane.org/ontologies/pico/PICO&searchterm=
URI of the systematic review
targets the research question
PICO-based research question
has
has
has
has
has the description
is a
has the label
Defining a PICO-based research question
a comparator group
description of the comparator group
description of the research question
an intervention group
description of the intervention group
label for the research question
an outcome group
description of the outcome group
short ID used as URI suffix
a population
description of the population
choose the type of research question
causation research question - (Does factor X cause outcome Y?)
descriptive research question - (What are the characteristics of X?)
effectiveness research question - (Does approach X work better than Y?)
experience research question - (How do people experience phenomenon X?)
prediction research question - (What outcomes can we expect from X?)
is a part of
nanopublication index
is an index that appends
is an index that includes as element
is an index that includes as sub-index
is a
has the label
nanopublication URI of the index to be appended
Defining a nanopublication index as part of a resource
${label}
Meta
nanopublication URI of the element to be included
plain-text label for the index
resource of which this index is a part of
nanopublication URI of the index to be included as sub-index
has the speaker
Such a nanopublication declares that somebody is a speaker at a given event.
Declaring a speaker of an event
${space} has speaker ${speaker}
Spaces
choose the event
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Event
choose the speaker
has the description
is a
has the label
has the alternative ID
Alliance - (with focus on bringing units together)
Community - (with focus on exchange)
Division - (with focus on structuring into sub-units)
Group - (with focus on getting work done)
Organization - (with focus on formal vessel)
Outlet - (with focus on outreach)
Program - (with focus on coordination)
Space
has as admin
an admin of the Space
alternative URI
Such nanopublications defines an open-ended Space, i.e. a group, program, outlet, or community.
Defining an open-ended Space
Spaces
the description of the Space
the name of the Space
Space identifier
https://w3id.org/spaces/
https://w3id.org/spaces/
type of the Space
is a - asserts that the thing on the left belongs to the class on the right
concept
is defined as follows: - connects an identifier (left) to a human-readable definition (right)
URI of an equivalent concept
is the same as
is in scheme
has the preferred label
is related to - connects two classes that are somehow related
Such a nanopublication defines a concept according to the SKOS standard.
Defining a new SKOS concept
${label}
Terms
has the broader concept
the URI of a broader concept
http://purl.org/nanopub/api/find_signed_things?type=http://www.w3.org/2004/02/skos/core%23Concept&searchterm=
short suffix or full URI
definition of the concept
the label of the concept
URI of a related concept
http://purl.org/nanopub/api/find_signed_things?type=http://www.w3.org/2004/02/skos/core%23Concept&searchterm=
URI of equivalent concept
scheme URI
http://purl.org/nanopub/api/find_signed_things?type=http://www.w3.org/2004/02/skos/core%23ConceptScheme&searchterm=
has the text
has the link / further info at
is about
Publish a plain-text message for a resource
${message}
Spaces
link your message is about or with additional info
your plain-text message
choose the resource (e.g. Space)
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/MaintainedResource
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
has the title
is a
Space query view
has the query
is for the Space
Declare a view that should be shown for a given Space, based on a query.
Declare a view for a Space (deprecated)
${space} has view for query: ${query}
Spaces
choose the query
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/grlc/grlc-query
choose the Space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
title for the view
this view
has the title
has the name
is a
has the label
space member role
has the inverse property
has the regular property
has the role assignment template
Declaring a space member role
Spaces
inverse property URI (space-to-agent)
the label for the role
short name, e.g. "member"
regular property URI (agent-to-space)
short ID suffix
choose template
https://w3id.org/np/l/nanopub-query-1.1/api/RAvSIHegG4Mb-Q64cWQoghLffvN_2NdDdqxNnOhJSZQfs/search-templates
short header title, e.g. "Members"
is a - connects to class/type
Anchor statement for versioning
<p>This template allows you to create Rosetta Statements following the metamodel described in "Rosetta Statements: Simplifying FAIR Knowledge Graph Construction with a User-Centered Approach".</p>
<p><strong>Rosetta Statements</strong> model the structure of simple English natural language statements rather than attempting to represent a mind-independent reality. They prioritize:</p>
<ul>
<li><strong>Cognitive Interoperability:</strong> Easy to understand for domain experts</li>
<li><strong>Findability:</strong> Supports search without requiring SPARQL knowledge</li>
<li><strong>Semantic Interoperability:</strong> Standardized patterns for each statement type</li>
<li><strong>User-Centered Design:</strong> Reflects natural language structure</li>
</ul>
<p><strong>Key Features:</strong></p>
<ul>
<li><strong>N-ary Support:</strong> Handle statements with multiple objects (not just binary relations)</li>
<li><strong>Dynamic Labels:</strong> Display as natural language sentences in user interfaces</li>
<li><strong>Versioning Support:</strong> Track changes and editing history</li>
<li><strong>Metadata Rich:</strong> Include confidence levels, negation, context, and provenance</li>
<li><strong>Wikidata Integration:</strong> Use Wikidata terms for immediate usability</li>
</ul>
<p><strong>Statement Structure:</strong></p>
<ul>
<li><strong>Subject:</strong> The main entity the statement is about</li>
<li><strong>Predicate:</strong> Captured by the statement type/class</li>
<li><strong>Objects:</strong> Up to 4 object positions (resources or literals)</li>
<li><strong>Constraints:</strong> Type restrictions for each position</li>
</ul>
<p><strong>Example:</strong> "This apple has a weight of 241.68 grams" becomes a 'has-measurement' statement type with subject=apple, object1=weight (quality), object2=241.68 (value), object3=gram (unit).</p>
<p>This approach significantly lowers the barrier for domain experts to create FAIR knowledge graphs without requiring expertise in semantics, RDF, or ontology engineering.</p>
Creating a Rosetta Statement following the natural language statement metamodel
Rosetta Statement: ${dynamicLabelTemplate}
Rosetta Statements
Confidence level (0.0-1.0)
^(0(\.\d+)?|1(\.0+)?)$
Context (e.g., DOI of scholarly publication)
Dynamic label template (e.g., 'SUBJECT has QUALITY of VALUE UNIT')
.{10,200}
"true" or "false"
true|false
First object (required or optional)
Second object (optional)
Third object (optional)
Fourth object (optional)
Source reference supporting this statement
The Rosetta Statement instance
Type of Rosetta Statement (predicate-based classification)
https://w3id.org/np/l/nanopub-query-1.1/api/find-things?type=https://w3id.org/rosetta/RosettaStatementClass
Human-readable label for subject
.{1,100}
Subject resource (Wikidata URI or ontology term)
Version identifier
.{1,50}
Rosetta Statement - a natural language statement modeled semantically
has confidence level - degree of certainty (0-1)
has context - scholarly publication or broader context
has dynamic label - template for natural language display
has source reference - supporting evidence
has statement type - connects to Rosetta Statement class
has version - links to statement version
is negation - whether this statement is negated
has subject - connects statement to its subject resource
has the text
has the link / further info at
is about
Publish a plain-text message for this Space
${message}
Spaces
link your message is about or with additional info
your plain-text message
choose the Space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
has the object
has the predicate
has the subject
is a - connects a thing (left) to the class (right) it belongs to
web annotation - a web annotation of a document or other thing
has as body
has as target - connects an annotation to its target
highlighting
has the purpose of
implied relation
this annotation
Such a nanopublication represents an annotation of a text according to the <a href="https://www.w3.org/ns/oa">Web Annotation Vocabulary</a> in order to highlight an implied relation.
Highlighting an implied relation from a resource
${target} implies: ${relationSubj} ${relationPred} ${relationObj}
Annotations
a relation
the object URI or literal
the predicate URI
the subject URI
the URI/URL of the resource that is being annotated
has the object
has the predicate
has the subject
is a - connects a thing (left) to the class (right) it belongs to
web annotation - a web annotation of a document or other thing
text quote selector - a text quote selector describes a range of text by copying it, and including some of the text immediately before (a prefix) and after (a suffix)
refers to the text - refers to a copy of the text which is being selected
has as body - connects an annotation to its body element
has as selector - connects an annotation to its selector
has the source - links to the source that is being annotated
has as target - connects an annotation to its target
highlighting
has the purpose of
refers to the text right after - refers to a snippet of content that occurs immediately before the content which is being selected
refers to the text right before - refers to a snippet of content that occurs immediately after the content which is being selected
implied relation
this annotation
Such a nanopublication represents an annotation of a text according to the <a href="https://www.w3.org/ns/oa">Web Annotation Vocabulary</a> in order to highlight an implied relation.
Highlighting an implied relation from a text
${source} implies: ${relationSubj} ${relationPred} ${relationObj}
Annotations
the copy of the text being selected
a snippet of text immediately before the selected text
a snippet of text immediately after the selected text
a relation
the object URI or literal
the predicate URI
the subject URI
a selector
the URI/URL of the source that is being annotated
a target
has the project lead
Such a nanopublication declares that somebody is the project lead of a given project
Declaring the lead of a project
${space} has lead ${lead}
Spaces
choose the project lead
choose the project
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Project
retracts
Retracting a nanopublication that I published
Retraction of ${nanopubToBeRetracted}
Meta
optional comment for the retraction
The URI of the nanopublication to be retracted
has the comment
is a member of
Such a nanopublication declares that somebody is a member of a given Space.
Declaring a membership in a Space
${member} is member of ${space}
Spaces
choose the member
choose the space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
conforms to the profile
is a
has the label
has as part
FAIR Digital Object
Such a nanopublication declares an FDO that is an aggregation of other given FDOs.
Creating an aggregate FDO
FDO
short ID used as URI suffix
short, human-readable label for the FDO
select FDO as part
http://purl.org/nanopub/api/find_signed_things?type=https://w3id.org/fdof/ontology%23FAIRDigitalObject&searchterm=
select FDO (or other thing) as source
http://purl.org/nanopub/api/find_signed_things?type=https://w3id.org/fdof/ontology%23FAIRDigitalObject&searchterm=
Aggregate FDO Profile
was derived from
participated in - Connects a person (left) an event (right) he/she is a participant in.
Declaring the participation in Lecture 9 of Knowledge Organization
Participation in Lecture 9 of Knowledge Organization
Events
Lecture 9 of Knowledge Organization
has the text
has the link / further info at
is about
Publishing a plain-text message related to KO Lecture 9
${message}
Comments
link your message is about or with additional info
your plain-text message
Lecture 9 of Knowledge Organization
has the role
Assigning a role to a Space
${space} has role: ${role}
Spaces
select the role
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/SpaceMemberRole
select the space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
has the text
has the link / further info at
is about
Publishing a plain-text message related to Nano Session #24
${message}
Comments
link your message is about or with additional info
your plain-text message
Nano Session #24
has the tag
has the pinned template
Declare a pinned template for a Space
${space} has pinned template: ${template}
Spaces
choose the Space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
the tag, used as title of common template group
choose the template
https://w3id.org/np/l/nanopub-query-1.1/api/RARD6qOGIXUvfxmf5CQNEDxPqlTVCqeLdWeSg5h8tUcEA/search-templates
participated in - Connects a person (left) an event (right) he/she is a participant in.
Declaring the participation in the Nano Session #24
Participation in the Nano Session #24
Events
the Nano Session #24
has the tag
has the pinned query
Declare a pinned query for a Space
${space} has pinned query: ${query}
Spaces
choose the query
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/grlc/grlc-query
choose the Space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space
the tag, used as title of common query group
has the description
has the end date
has the start date
is a
has the label
has the alternative ID
Campaign - (with focus on outreach)
Event - (with focus on exchange)
Initiative - (with focus on coordination)
Project - (with focus on getting work done)
Space
has as admin
an admin of the Space
alternative URI
Such nanopublications defines a time-limited Space, i.e. a project, initiative, campaign, or event.
Defining a time-limited Space
Spaces
the description of the Space
end date (and optionally time)
the name of the Space
Space identifier
https://w3id.org/spaces/
https://w3id.org/spaces/
start date (and optionally time)
type of the Space
has the description
has the end date
has the start date
is a
has the label
Campaign - (with focus on outreach)
Event - (with focus on exchange)
Initiative - (with focus on coordination)
Project - (with focus on getting work done)
Space
has as admin
an admin of the Space
Such nanopublications defines a time-limited Space, i.e. a project, initiative, campaign, or event.
Defining a time-limited Space with existing URI
Spaces
the description of the Space
end date (and optionally time)
the name of the Space
Space identifier
start date (and optionally time)
type of the Space
has admin
an admin of the Space
Declaring an admin of a Space
${space} has admin ${admin}
Spaces
choose a Space
https://w3id.org/np/l/nanopub-query-1.1/api/RAyMrQ89RECTi9gZK5q7gjL1wKTiP8StkLy0NIkkCiyew/find-things?type=https://w3id.org/kpxl/gen/terms/Space&searchterm=
has the date
has the description
is about
is an
has the label
has more info at
Reporting an HTTP resolution issue
Issues
date (and time) of issue
free-text description
This issue
the resource this issue is about
label of the issue
observer of the issue
a pointer to a resource with more info
HTTP Resolution Error
issue occurrence
has the encountered error
was encountered by
has the description
is a
has the label
Nanodash project
has as owner
has as pinned query
has as pinned template
Such nanopublications define project pages that are shown on Nanodash.
Defining a Nanodash Project
Projects
the default provenance template
the description of the project
the name of the project
an owner of the project
project identifier
https://w3id.org/kpxl/custom/project/terms/
project:
a query URI to show the results for
identifier for template (with tag)
tag for the template (used to group them)
has the default provenance
has the tag - This tag is used to group templates on the project page.
has member
Declaring a member of a project
${project} has member ${member}
Projects
a member of the project
project URI
has organizer
Declaring an organizer for an event
${event} has organizer ${organizer}
Events
URI of event
specify organizer
participated in - Connects a person (left) an event (right) he/she participated in.
WikiCite 2025
With this nanopublication, the creator declares to have participated in WikiCite 2025.
Declaring the participation in WikiCite 2025
Participation in WikiCite 2025
Events
conforms to (has FDO profile)
conforms to the profile
is a
has the label
node shape
has the object value
has max count
has min count
has the path
has the property
has the target class
FDO Profile
has the shape
FAIR Digital Object
This template defines a core FDO Profile based on a SHACL shape.
Defining a core FDO Profile
FDO
select property shape from above
select property shape from above
this node shape
object value URI
path predicate URI
http://purl.org/nanopub/api/find_signed_things?type=https://w3id.org/fdoc/o/terms/FdoAttribute&searchterm=
the profile of this profile
human-readable label of the profile
short property shape ID
1
1
select property shape from above
conforms to (has FDO profile)
conforms to
is a
has the label
node shape
has the object value
has max count
has min count
has the path
has the property
has the target class
FDO Profile
has the shape
FAIR Digital Object
This template defines an FDO Profile based on a SHACL shape.
Defining an FDO Profile
FDO
select property shape from above
select property shape from above
this node shape
object value URI
path predicate URI
http://purl.org/nanopub/api/find_signed_things?type=https://w3id.org/fdoc/o/terms/FdoAttribute&searchterm=
human-readable label of the profile
short property shape ID
1
1
select property shape from above
the basic profile for FDO Profiles
simple statement
has as object
has as predicate
has as subject
is a
is labeled as
Defining a publication info template
Pubinfo template: ${tlabel}
Templates
default value of the placeholder
short ID of grouped statement
label of thing
URI/placeholder mentioned above
datatype of the literal
language tag of the literal
[0-9a-zA-Z-]{2,}
literal placeholder
literal placeholder
placeholder mentioned above
placeholder
restr/guided choice placeholder
restr/guided choice placeholder
guided choice placeholder
short ID of placeholder
short ID of placeholder
type of placeholder: IRI, literal, restricted, etc.
possible value
nanopublication with possible values
URL prefix for API lookup
URL prefix
label for URL prefix
regular expression
short ID of statement
type of statement: simple, optional, repeatable
template can be marked as unlisted here
short ID of grouped statement
name of this template
URI/literal/placeholder of the object
integer value for statement order
URI/placeholder of the predicate
short ID of simple statement
short ID of statement
short ID of statement
short ID of simple statement
URI/placeholder of the subject
Agent placeholder
External URI placeholder
grouped statement
Guided choice placeholder
Introduced resource
Literal placeholder
Local resource
Long literal placeholder
optional statement
publication info template
repeatable statement
Restricted choice placeholder
Sequence element placeholder
Trusty URI placeholder
Unlisted template
URI placeholder
URI/literal placeholder
has the datatype
has the default value
has the language tag
has prefix
has prefix label
has regular expression
includes
has as possible value
has possible values from
has possible values from API
has statement order value
simple statement
has as object
has as predicate
has as subject
is a
is labeled as
Defining a provenance template
${tlabel}
Templates
default value of the placeholder
short ID of grouped statement
label of thing
URI/placeholder mentioned above
datatype of the literal
language tag of the literal
[0-9a-zA-Z-]{2,}
literal placeholder
literal placeholder
placeholder mentioned above
short ID of placeholder
restr/guided choice placeholder
restr/guided choice placeholder
guided choice placeholder
short ID of placeholder
short ID of placeholder
type of placeholder: IRI, literal, restricted, etc.
possible value
nanopublication with possible values
URL prefix for API lookup
URL prefix
label for URL prefix
regular expression
short ID of statement
type of statement: simple, optional, repeatable
template can be marked as unlisted here
short ID of grouped statement
name of this template
URI/literal/placeholder of the object
integer value for statement order
URI/placeholder of the predicate
short ID of simple statement
short ID of statement
short ID of statement
short ID of simple statement
URI/placeholder of the subject
Agent placeholder
External URI placeholder
grouped statement
Guided choice placeholder
Introduced resource
Literal placeholder
Local resource
Long literal placeholder
optional statement
provenance template
repeatable statement
Restricted choice placeholder
Sequence element placeholder
Trusty URI placeholder
Unlisted template
URI placeholder
URI/literal placeholder
has the datatype
has the default value
has the language tag
has prefix
has prefix label
has regular expression
includes
has as possible value
has possible values from
has statement order value
has as part
Such a nanopublication expresses a part-of relation.
Expressing a part-of relation
${thing} has part ${part}
General
the URI of the part
the URI of the thing that has the part
Expressing that you know somebody
Knowing ${person}
Social
the person you know
know
is created by
has the part
has the preferred namespace prefix
has the namespace URI
is a - asserts that the thing on the left belongs to the class on the right
is called - connects a formal identifier (left) to an informal human-readable name (right)
ontology - a set of terms like classes and relations
Such a nanopublication defines a new ontology, to which terms like classes and properties can later be added.
Defining a new ontology
Ontology: ${name}
Terms
creator/owner of the ontology
description of the ontology
the name of the ontology
short namespace prefix, e.g. "foaf"
namespace URI (prefix of all contained IDs)
short URI suffix or full URI
term or index of term nanopubs
has the text
has the link / further info at
ESWC 2025
is about
Publishing a plain-text message related to ESWC 2025
${message}
Comments
link your message is about or with additional info
your plain-text message
has the description
has the usage license
is a
has the name
has the endpoint
grlc query
has the query
Defining a grlc query
Queries
description of the query
endpoint URL
license URL
short ID for query, used as URI suffix
SPARQL query template
title of the query
participated in - Connects a person (left) an event (right) he/she participated in.
the nanopub tutorial at ESWC2025
The creator of such a nanopublication declares to have participated in the nanopublication tutorial at ESWC2025.
Declaring the participation in the nanopub tutorial at ESWC2025
Participation in ESWC2025 nanopub tutorial
Events
has the abstract
has the submission date
includes - links a thing to a part it includes
has the title
has
in-use paper - A scholarly work that describes applied and validated solutions such as software tools, systems or architectures that benefit from the use of the technology of a particular scholarly domain.
journal editorial - An editorial published in an issue of a journal.
methods paper - A scholarly work detailing a method, procedure or experimental protocol employed in a particular scholarly domain.
position paper - A scholarly work that reports a particular intellectual position or viewpoint regarding a particular scholarly topic.
preprint
research paper - A scholarly work that reports original research contributions addressing theoretical, analytical or experimental aspects of a particular scholarly domain.
resource paper - A scholarly work that describes resources developed to provide experimental materials or facilities, support a research hypothesis, to provide answers to a research question, or that have contributed to the generation of novel scientific work.
review paper - A scholarly work that surveys the state of the art of topics central to a particular subject or relating to a specific domain (e.g. the scope of a certain journal or conference).
scholarly work - A general term that includes all other listed types
has the affiliation
has the email address
is a
has the name
is a revision of
the abstract of the article
Select organization from above
Select author from above
The type of the article
Such a nanopublication contains the main high-level metadata about a scholarly preprint, including title, authors, and links to other nanopublications.
Describing core preprint metadata
Preprint: ${title}
Journals
ORCID ID of the author (starting with https://orcid.org/...)
https://orcid\.org/[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]
email address of author
[A-Za-z0-9._+\-\']+@[A-Za-z0-9.\-]+\.[A-Za-z]{2,}
this author list
full name of author
Select author to specify an email address for
date, e.g. "2023-07-21", "2023-07", or "2023"
(1[0-9][0-9][0-9]|20[0-2][0-9])(-(1[0-2]|0[1-9])(-(3[0-1]|[1-2][0-9]|0[1-9]))?)?
has at position ${number}
http://www.w3.org/1999/02/22-rdf-syntax-ns#_
includes as element number
[1-9][0-9]*
ROR identifier (https://ror.org/...) or short local URI suffix (e.g. "stanford")
(https://ror\.org/[0-9a-z]+|[a-zA-Z0-9_\-]+)
The name of the organization
a part belonging to this article, e.g. a nanopublication
URL/ID of the preprint
URL/ID of previous revision
The title of the article
Announcing a paper that I have read
Have read: ${paper}
Social
comment text
DOI for the paper starting with '10.'
https://doi.org/
the paper with DOI
10.(\d)+/(\S)+
1
2
have read
has my comment
has the label
This is a minimal template.
Minimal template
write label text here
is a
has the label
has the FDO profile
FAIR Digital Object
has the materialization
This template allows for defining an FDO according to an FDO Profile for testing.
Defining a test FDO
FDO
short ID used as URI suffix
human-readable label of the FDO
URL where file can be accessed
Simple Test FDO Profile
has the description
has the usage license
is a
has the name
has the endpoint
grlc query
has the query
Defining a grlc query (testing)
Queries
description of the query
endpoint URL
license URL
short ID for query, used as URI suffix
SPARQL query template
title of the query
location
is a
has the label
has the bounding box
This template is for nanopublications to introduce a spatial location by bounding box.
Declaring a spatial location
Location
bounding box definition in WKT format
human-readable name of the location
short ID used as URI suffix
person
has the given name
is a
This template describes a person based on schema.org vocabulary.
Describe a person with schema.org
given name of the person
short ID suffix for person
is a
node shape
has max count
has min count
has the path
has the property
has the target class
This template defines a simple SHACL node shape.
Defining a simple SHACL node shape
Validation
maximum property count
select property shape
mimum property count
select property shape
short ID suffix of node shape
path predicate URI
select property shape
short ID suffix for property shape
target class URI
can be described as follows: - gives a thing (left) a human-readable description (right)
Introducing a Digital Object Type (new ID)
FAIR
description of the Digital Object Type or Methodology
the source of the description above
the identifier of the related resource
choose mapping relation
the name of the Digital Object Type or a Methodology
a URL where more information can be found
short name, used as URI suffix - the formal identifier of the Digital Object Type or a Methodology
https://w3id.org/gff/rao/terms/
https://w3id.org/gff/rao/terms/
is a - asserts that the given thing (left) belongs to the given class (right)
has the name - connects an identifier to a human-readable name for it
is further explained at - connects an identifier to a link with further information about it
has parent resource
can in some situations be considered the same as
is (almost) exactly the same as
is related to - links this identifier to other related existing identifiers
is related to
Digital Object Type
has the description source
dataset
has the description
is about
is a
has the label
has the URL
was derived from
gene expression
This templates introduces and describes a piece of raw data from gene expressions study.
Declaration of a gene expression raw data
Science
full URL or short URL suffix
description of the study
label of the study
the study this data originates from
https://w3id.org/np/l/nanopub-query-1.1/api/RAz6f1v82BCG0SjYMfHUe-m927VTVKdwvsuq1X7j1qcA8/find-things?type=http://semanticscience.org/resource/SIO_001066&query=
website URL
has the description
study
is a
has the label
has the URL
has the domain
This templates introduces and describes a scientific study with some basic metadata.
Declaration of a study
Science
description of the study
domain of the study
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
label of the study
full URL or short URL suffix
website URL
is a
has the label
FAIR Digital Object (FDO)
has the format
has the type of
has its metadata in
is a concrete materialization of
Article
Dataset
Ontology
Photograph
Declaring a general FAIR Digital Object (experimental)
FAIR Digital Object: ${label}
FDO
object URI/literal
predicate URI
full URI (e.g. handle.net) or short suffix
MIME type, such as "text/csv" or "application/trig"
https://iana.org/assignments/media-types/
the MIME type
label or name for this FDO
materialization URI
FDO Type URI
https://w3id.org/np/l/nanopub-query-1.1/repo/type/f90cda43071e5afd9dbbd07452380c057c26010dd4e1105cdc108f35fc7280c0?query=prefix%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0Aprefix%20np%3A%20%3Chttp%3A%2F%2Fwww.nanopub.org%2Fnschema%23%3E%0Aprefix%20npa%3A%20%3Chttp%3A%2F%2Fpurl.org%2Fnanopub%2Fadmin%2F%3E%0Aprefix%20npx%3A%20%3Chttp%3A%2F%2Fpurl.org%2Fnanopub%2Fx%2F%3E%0A%0Aselect%20%3Fthing%20%3Flabel%20where%20%7B%0A%20%20graph%20npa%3Agraph%20%7B%0A%20%20%20%20%3Fnp%20npa%3AhasValidSignatureForPublicKey%20%3Fpubkey%20.%0A%20%20%20%20filter%20not%20exists%20%7B%20%3Fnpx%20npx%3Ainvalidates%20%3Fnp%20%3B%20npa%3AhasValidSignatureForPublicKey%20%3Fpubkey%20.%20%7D%0A%20%20%20%20%3Fnp%20npx%3Aintroduces%20%3Fthing%20.%0A%20%20%20%20%3Fnp%20np%3AhasAssertion%20%3Fa%20.%0A%20%20%7D%0A%20%20graph%20%3Fa%20%7B%0A%20%20%20%20%3Fthing%20rdfs%3Alabel%20%3Flabel%20.%0A%20%20%20%20filter%28contains%28lcase%28str%28%3Flabel%29%29%2C%20lcase%28%22 %22%29%29%29%0A%20%20%7D%0A%7D%0Alimit%2010
nanopub service
is a
has label
grlc-based Nanopub API
Nanopub LDF Server
grlc-based Signed Nanopub API
Signed Nanopub LDF Server
Signed Nanopub SPARQL API
Nanopub Monitor
Nanopub Server
Announcing a nanopub service
Nanopub service: ${label}
Infrastructure
the URI of the nanopub service class
short label or comment for the service
the URL of the nanopub service
Nanodash version 2.x
Nanopub Query 1.0
Nanopub Query 1.1
Nanopub Registry 1.0
is declared by
has algorithm
has key location
has public key
Introducing a user
User: ${name}
Meta
short id of key declaration
URL where the private key is stored
name of the user
public key
RSA
identifier of the user to be introduced
has the name
claims
discusses
hypothesizes
investigates
refutes
reviews
Such a nanopublication declares a relation like claiming or refuting between a work or person and a statement.
Asserting a relation between a work/person and a statement
Claims
AIDA URI (starting with "http://purl.org/aida/")
http://purl\.org/aida/.+\.
URI of work (e.g. DOI) or person (e.g. ORCID)
AIDA sentence - an English sentence that is Atomic, Independent, Declarative, and Absolute
is about - connects a thing (left) to a subject matter that this thing is about (right)
is an - connects a thing (left) to a class it belongs to (right)
Type your AIDA sentence here (ending with a full stop)
http://purl.org/aida/
The sentence
[\S ]{5,500}\.
<p>Such nanopublications use the concept of an AIDA sentence to express a (scientific) statement in an informal or semi-formal manner, which can be formally linked.</p>
<p>AIDA sentences are:<p>
<ul>
<li><strong>Atomic:</strong> a sentence describing one thought that cannot be further broken down in a practical way</li>
<li><strong>Independent:</strong> a sentence that can stand on its own, without external references like "this effect" or "we"</li>
<li><strong>Declarative:</strong> a complete sentence ending with a full stop that could in theory be either true or false</li>
<li><strong>Absolute:</strong> a sentence describing the core of a claim ignoring the (un)certainty about its truth and ignoring how it was discovered (no "probably" or "evaluation showed that"); typically in present tense</li>
</ul>
<p>You can find more information about AIDA sentences <a href="https://github.com/tkuhn/aida" target="_blank">here</a>.</p>
Expressing a statement as an AIDA sentence
AIDA sentence: ${aida}
Claims
identifier of concept or topic the sentence is about
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
has a conflicting meaning with
has a consistent meaning with
has a different meaning than
has a more general meaning than
has a more specific meaning than
has a non-opposite meaning of
has the opposite meaning of
has a related meaning as
has the same meaning as
has a unrelated meaning as
is a improved version of
Asserting a relation between two statements
Claims
First AIDA URI (starting with "http://purl.org/aida/")
http://purl\.org/aida/.+\.
Second AIDA URI (starting with "http://purl.org/aida/")
http://purl\.org/aida/.+\.
is a - asserts that the thing on the left belongs to the class on the right
Such a nanopublication assigns an individual to a class.
Assigning an individual to a class
${individual} is a ${class}
General
the URI of the class
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
the URI of the individual
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23NamedIndividual&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
is a
has the label
FAIR Digital Object (FDO)
has the format
has the type of
has its metadata in
is a concrete materialization of
Article
Dataset
Ontology
Photograph
Declaring a FAIR Digital Object (extended)
FAIR Digital Object: ${label}
FDO
object URI/literal
predicate URI
short ID suffix for this FDO
MIME type, such as "text/csv" or "application/trig"
https://iana.org/assignments/media-types/
the MIME type
label or name for this FDO
URL of concrete file
FDO Type URI
https://w3id.org/np/l/nanopub-query-1.1/repo/type/f90cda43071e5afd9dbbd07452380c057c26010dd4e1105cdc108f35fc7280c0?query=prefix%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0Aprefix%20np%3A%20%3Chttp%3A%2F%2Fwww.nanopub.org%2Fnschema%23%3E%0Aprefix%20npa%3A%20%3Chttp%3A%2F%2Fpurl.org%2Fnanopub%2Fadmin%2F%3E%0Aprefix%20npx%3A%20%3Chttp%3A%2F%2Fpurl.org%2Fnanopub%2Fx%2F%3E%0A%0Aselect%20%3Fthing%20%3Flabel%20where%20%7B%0A%20%20graph%20npa%3Agraph%20%7B%0A%20%20%20%20%3Fnp%20npa%3AhasValidSignatureForPublicKey%20%3Fpubkey%20.%0A%20%20%20%20filter%20not%20exists%20%7B%20%3Fnpx%20npx%3Ainvalidates%20%3Fnp%20%3B%20npa%3AhasValidSignatureForPublicKey%20%3Fpubkey%20.%20%7D%0A%20%20%20%20%3Fnp%20npx%3Aintroduces%20%3Fthing%20.%0A%20%20%20%20%3Fnp%20np%3AhasAssertion%20%3Fa%20.%0A%20%20%7D%0A%20%20graph%20%3Fa%20%7B%0A%20%20%20%20%3Fthing%20rdfs%3Alabel%20%3Flabel%20.%0A%20%20%20%20filter%28contains%28lcase%28str%28%3Flabel%29%29%2C%20lcase%28%22 %22%29%29%29%0A%20%20%7D%0A%7D%0Alimit%2010
has as part
is a
has the label
FAIR Digital Object (FDO)
has the type of
has its metadata in
Article
Dataset
Ontology
Photograph
Declaring a FAIR Digital Object
FAIR Digital Object: ${label}
FDO
identifier of contained FDO
http://purl.org/nanopub/api/find_signed_things?type=https%3A%2F%2Fw3id.org%2Ffdof%2Fontology%23FAIRDigitalObject&searchterm=
short ID suffix for this FDO
label or name for this FDO
FDO Type URI
https://w3id.org/np/l/nanopub-query-1.1/repo/type/f90cda43071e5afd9dbbd07452380c057c26010dd4e1105cdc108f35fc7280c0?query=prefix%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0Aprefix%20np%3A%20%3Chttp%3A%2F%2Fwww.nanopub.org%2Fnschema%23%3E%0Aprefix%20npa%3A%20%3Chttp%3A%2F%2Fpurl.org%2Fnanopub%2Fadmin%2F%3E%0Aprefix%20npx%3A%20%3Chttp%3A%2F%2Fpurl.org%2Fnanopub%2Fx%2F%3E%0A%0Aselect%20%3Fthing%20%3Flabel%20where%20%7B%0A%20%20graph%20npa%3Agraph%20%7B%0A%20%20%20%20%3Fnp%20npa%3AhasValidSignatureForPublicKey%20%3Fpubkey%20.%0A%20%20%20%20filter%20not%20exists%20%7B%20%3Fnpx%20npx%3Ainvalidates%20%3Fnp%20%3B%20npa%3AhasValidSignatureForPublicKey%20%3Fpubkey%20.%20%7D%0A%20%20%20%20%3Fnp%20npx%3Aintroduces%20%3Fthing%20.%0A%20%20%20%20%3Fnp%20np%3AhasAssertion%20%3Fa%20.%0A%20%20%7D%0A%20%20graph%20%3Fa%20%7B%0A%20%20%20%20%3Fthing%20rdfs%3Alabel%20%3Flabel%20.%0A%20%20%20%20filter%28contains%28lcase%28str%28%3Flabel%29%29%2C%20lcase%28%22 %22%29%29%29%0A%20%20%7D%0A%7D%0Alimit%2010
is a
has the label
FAIR Digital Object (FDO)
has the format
has the type of
has its metadata in
is a concrete materialization of
Article
Dataset
Ontology
Photograph
Declaring a FAIR Digital Object
FAIR Digital Object: ${label}
FDO
short ID suffix for this FDO
MIME type, such as "text/csv" or "application/trig"
https://iana.org/assignments/media-types/
the MIME type
label or name for this FDO
URL of concrete file
FDO Type URI
https://w3id.org/np/l/nanopub-query-1.1/repo/type/f90cda43071e5afd9dbbd07452380c057c26010dd4e1105cdc108f35fc7280c0?query=prefix%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0Aprefix%20np%3A%20%3Chttp%3A%2F%2Fwww.nanopub.org%2Fnschema%23%3E%0Aprefix%20npa%3A%20%3Chttp%3A%2F%2Fpurl.org%2Fnanopub%2Fadmin%2F%3E%0Aprefix%20npx%3A%20%3Chttp%3A%2F%2Fpurl.org%2Fnanopub%2Fx%2F%3E%0A%0Aselect%20%3Fthing%20%3Flabel%20where%20%7B%0A%20%20graph%20npa%3Agraph%20%7B%0A%20%20%20%20%3Fnp%20npa%3AhasValidSignatureForPublicKey%20%3Fpubkey%20.%0A%20%20%20%20filter%20not%20exists%20%7B%20%3Fnpx%20npx%3Ainvalidates%20%3Fnp%20%3B%20npa%3AhasValidSignatureForPublicKey%20%3Fpubkey%20.%20%7D%0A%20%20%20%20%3Fnp%20npx%3Aintroduces%20%3Fthing%20.%0A%20%20%20%20%3Fnp%20np%3AhasAssertion%20%3Fa%20.%0A%20%20%7D%0A%20%20graph%20%3Fa%20%7B%0A%20%20%20%20%3Fthing%20rdfs%3Alabel%20%3Flabel%20.%0A%20%20%20%20filter%28contains%28lcase%28str%28%3Flabel%29%29%2C%20lcase%28%22 %22%29%29%29%0A%20%20%7D%0A%7D%0Alimit%2010
is called - connects a formal identifier (left) to an informal human-readable name (right)
is a subclass of - states that all instances of the class/type to the left are also instances of the class/type to the right
is exactly the same as
is defined as follows: - connects an identifier (left) to a human-readable definition (right)
is related to - connects two things that are somehow related
FAIR Information Object
Such a nanopublication defines a new FDO type to be used to classify FAIR Digital Objects (FDOs).
Defining an FDO type
FDO Type: ${name}
FDO
short name, used as URI suffix
definition of the FDO type
the name of the FDO type
URI of a related entity
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
URI of a class/type that should be treated as fully synonymous
can be described as follows: - gives a thing (left) a human-readable description (right)
<p>Such nanopublications define a new named individual. Such a named individual represets a single concrete or abstract thing that is in some way relevant. Examples are the planet Mars, Marie Curie, or the Universal Declaration of Human Rights.</p>
<p>Such individuals do <strong>not</strong> represent sets of things, like humans, diseases, or ideas. Such concepts representing sets should be defined with the template for classes.</p>
Defining a new individual in the namespace of the journal Data Science
${name}
Terms
the URI of the class this individual belongs to
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
description of the individual
URI starting with 'https://w3id.org/kpxl/ios/ds/terms/' - the formal identifier of the individual
https://w3id\.org/kpxl/ios/ds/terms/.*
the name of the individual
another URI of exactly the same individual
a URL where more information about this individual can be found
is a - asserts that the given thing (left) belongs to the given class (right)
is called - connects an identifier to a human-readable name for it
is further explained at - connects an identifier to a link with further information about it
named invididual - a concrete or abstract thing that is given an identifier and a name
thing - the class representing everything
is exactly the same as
has the description
is a
is called
has the website
research project
has the research domain
Template for defining a research project
Defining a research project
Projects
description of the research project
the name of your research project
short URI suffix or full URI
a link to the research project's website
is a - asserts that the thing on the left belongs to the class on the right
has the name - connects a formal identifier (left) to an informal human-readable name (right)
is a sub-taxon of - states that all instances of the taxon to the left are also instances of the taxon to the right
is defined as follows: - connects an identifier (left) to a human-readable definition (right)
is related to - connects two taxons that are somehow related
Such a nanopublication defines a new biological taxon, such as a species or a family.
Defining a new biological taxon
New ${taxonType}: ${name}
Biodiversity
free-text definition of the taxon
the name of the taxon
URI of a related entity
http://purl.org/nanopub/api/find_signed_things?type=http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class&searchterm=
https://vodex.petapico.org/nidx/query?rows=100&q=label:
https://www.wikidata.org/w/api.php?action=wbsearchentities&language=en&format=json&limit=5&search=
the URI of the supertaxon
https://vodex.petapico.org/nidx/query?rows=100&q=label:
existing taxon identifier, e.g. from ZooBank
is a
has the description
is called
has data policy document at
can in some situations be considered the same as
is (almost) exactly the same as
is related to
available FAIR Enabling Resource
FAIR Enabling Resource to be developed
Metadata preservation policy
declares minimum metadata preservation in years as
Defining a metadata preservation policy
FAIR
FAIR Enabling Resource that is available or to be developed
description of the metadata preservation policy
link to data policy document
the identifier of the related resource
select equivalence relation
the name of the metadata preservation policy
short name, used as URI suffix
number of years
[0-9]+
specimen - A material entity that has the specimen role.
cites
discusses
publication - any kind of scholarly work, such as an article, book, etc.
is a
Such a nanopublication states that a given specimen was discussed in a given publication.
Declaring a specimen being discussed in a publication (in unpublished manuscript)
Manuscript ${relation} ${specimen}
Biodiversity
The manuscript
select the relation type
DOI (https://doi.org/10...) or other URL of the specimen
specimen - A material entity that has the specimen role.
cites
discusses
publication - any kind of scholarly work, such as an article, book, etc.
is a
Such a nanopublication states that a given specimen was discussed in a given publication.
Declaring a specimen being discussed in a publication
${pub} ${relation} ${specimen}
Biodiversity
DOI (https://doi.org/10...) or other URL of the citing paper
select the relation type
DOI (https://doi.org/10...) or other URL of the specimen
is an instance of - indicates that the individual to the left is an instance of the class to the right
is used as defined in
has the name - links a taxon concept to a taxon name
represents - indicates that the individual to the left is a representative instance of the class to the right
Such a nanopublication expresses an identification of a given specimen, thereby assigning it to a taxon name.
Expressing an identification of a specimen with a taxon name
${specimen} is identified as ${taxonname}
Biodiversity
DOI (https://doi.org/10...) or other URL of the specimen
the taxon concept
publication DOI (https://doi.org/...) or taxon treatment ID (https://treatment.plazi.org/id/...)
(https://doi.org/|https://treatment.plazi.org/id/).+
search and select from list (if not found, paste identifying URI from IPNI, MycoBank, Index Fungorum, or Zoobank)
https://vodex.petapico.org/nidx/query?rows=100&q=label:
value field selector
refers to the field
is a - connects a thing (left) to the class (right) it belongs to
is - links an identifier to its value
web annotation - a web annotation of a document or other thing
contributes - connects an annotation to its body element
is defined by - connects an annotation to its selector
refers to the digital specimen
targets - connects an annotation to its target
this annotation
Adding information to a digital specimen
Adding info to ${source}: ${selector-field} '${body-value}'
Annotations
a field value
the new suggested value
a selector
the field this annotation refers to
the URI of the specimen being annotated
a digital specimen aspect
has the title
Sharing a web link
"${title}"
Social
the link URL
the title of the document (possibly edited)
has the description - attaches a human-readable description (right) to a formal identifier of a thing (left)
is version of
nanopublication service
has the name - attaches a human-readable name (right) to a formal identifier of a thing (left)
is a subclass of
Defining a nanopublication service type
Nanopublication service type: ${servicetype}
Infrastructure
a textual description of the service type
the higher-level entity of which this is a more specific version of
short ID of service type - this is the identifier of the service type
https://w3id.org/np/o/service/terms/
the nanopublication service type
[A-Za-z0-9\-_.]{3,20}
is an
has the free-text comment
association between two organism taxa
refers to - links an association to its object
refers to the relation (between subject taxon and object taxon)
refers to - links an association to its subject
refers to the object taxon's life cycle stage
refers to the subject taxon's life cycle stage
is used as defined in
has the name - links a taxon usage to a taxon name
<p>Such a nanopublication expresses an association between classes of organisms (taxa), a subject taxon and an object taxon, for example expressing that the organisms of the subject taxon prey on organisms of the object taxon.</p>
<p>For expressing observations of interactions between individual organisms, please use the alternative template "Associations between organisms".</p>
Expressing an association between two organism taxa
${subjtaxonname} - ${relation} - ${objtaxonname}
Biodiversity
this association
short explanation related to the above statement
the life cycle stage of the object taxon
the object taxon concept
publication DOI (https://doi.org/...) or taxon treatment ID (https://treatment.plazi.org/id/...)
(https://doi.org/|https://treatment.plazi.org/id/).+
search and select from list (if not found, you may paste URL from IPNI, MycoBank, Index Fungorum, or ZooBank)
https://vodex.petapico.org/nidx/query?rows=100&q=label:
the type of relation between the two taxa
the life cycle stage of the subject taxon
the subject taxon concept
publication DOI (https://doi.org/...) or taxon treatment ID (https://treatment.plazi.org/id/...)
(https://doi.org/|https://treatment.plazi.org/id/).+
search and select from list (if not found, paste identifying URI from IPNI, MycoBank, Index Fungorum, or Zoobank)
https://vodex.petapico.org/nidx/query?rows=100&q=label:
scholarly paper - any kind of scholarly work, such as an article, book, etc.
is a
DOI (https://doi.org/10...) or other URL of the citing article
Such a nanopublication expresses citation relations of a given article based on the CiTO relation types.
Declare citations with CiTO
Citations for: ${article}
Journals
DOI (https://doi.org/10...) or other URL of the cited article
select the citation type
has the title
scholarly manuscript
is a
has as first author
was conducted at
Making a manuscript declaration
Declaration of ${manuscript}: ${title}
Journals
short ID of manuscript (e.g. 'alpha-paper') or URI/DOI
select the organization where this work was conducted
https://api.ror.org/organizations?query.advanced=name:
the title of the manuscript
is a
genuinely written paper
paper with confirmed first author
paper without obvious signs of misconduct
Positively flagging a paper/manuscript
${paper} is a ${class} (...)
Journals
select the appropriate class for the paper
URL/DOI of the paper
This query allows for searching for resources (FERs etc.) together with the info about whether GO FAIR qualified them.
Find GO FAIR qualified things (only valid entries)
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
select distinct ?thing ?label ?description ?np ?date ?pubkey ?qualifier ?qualification_np (group_concat(distinct ?recommender; separator=" ") as ?recommenders) (group_concat(distinct ?recommendation_np; separator=" ") as ?recommendation_nps) (count(distinct ?recommender) as ?recommender_count) (sample(?fairAssessmentLevel) as ?fairAssessmentLevel) (sample(?fairAssessmentLevelNp) as ?fairAssessmentLevelNp) where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
graph npa:graph {
?np npx:hasNanopubType ?__type_iri .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?retraction npx:retracts ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?newversion npx:supersedes ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np (npx:introduces|npx:describes) ?thing .
?np rdfs:label ?label .
?np dct:description ?description .
?np dct:created ?date .
filter(str(?date) > "2022")
}
bind(concat(" ",lcase(str(?label))," ",lcase(str(?description))," ") as ?text)
filter( contains(?text, lcase(str(?_searchterm))) )
optional {
graph npa:graph {
?disapproval npa:hasValidSignatureForPublicKey ?dpubkey .
}
graph ?latest_curators_assertion {
?dpubkeys npx:hasPublicKey ?dpubkey .
}
graph npa:graph {
filter not exists { ?disapproval_x npx:invalidates ?disapproval ; npa:hasValidSignatureForPublicKey ?dpubkey . }
?disapproval np:hasAssertion ?da .
}
graph ?da {
?dsomebody ( npx:disapproves-of | npx:disapprovesOf ) ?np .
}
} filter(!bound(?disapproval)) # Faster than "filter not exists" for some reason
optional {
graph npa:graph {
?recommendation_np npx:hasNanopubType fip:recommended-by .
?recommendation_np npa:hasValidSignatureForPublicKey ?rpubkey .
filter not exists { ?recommendation_np_x npx:invalidates ?recommendation_np ; npa:hasValidSignatureForPublicKey ?rpubkey . }
?recommendation_np np:hasAssertion ?ra .
?recommendation_np np:hasProvenance ?rp .
}
graph ?ra {
?thing fip:recommended-by ?recommender .
}
graph ?rp {
?ra prov:wasDerivedFrom ?rfip_np .
}
graph npa:graph {
?rfip_np npx:hasNanopubType fip:Reference-FAIR-Implementation-Profile .
?rfip_np npa:hasValidSignatureForPublicKey ?rfip_pubkey .
?latest_rfip_np npa:hasValidSignatureForPublicKey ?rfip_pubkey .
filter not exists { ?latest_rfip_npx npx:invalidates ?latest_rfip_np ; npa:hasValidSignatureForPublicKey ?rfip_pubkey . }
}
graph npa:networkGraph {
?latest_rfip_np (npx:supersedes)* ?rfip_np .
}
graph ?rfip_qa {
?rfip_qualifier npx:qualifies ?latest_rfip_np .
}
graph npa:graph {
?rfip_qualification_np np:hasAssertion ?rfip_qa .
?rfip_qualification_np npx:hasNanopubType npx:qualifies .
?rfip_qualification_np npa:hasValidSignatureForPublicKey ?rfip_qpubkey .
filter not exists { ?rfip_qualification_np_x npx:invalidates ?rfip_qualification_np ; npa:hasValidSignatureForPublicKey ?rfip_qpubkey . }
}
graph ?latest_curators_assertion {
?rfip_qpubkeys npx:hasPublicKey ?rfip_qpubkey .
}
}
optional {
graph npa:graph {
?qualification_np npx:hasNanopubType npx:qualifies .
?qualification_np npa:hasValidSignatureForPublicKey ?qpubkey .
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
graph npa:graph {
filter not exists { ?qualification_np_x npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
?qualification_np np:hasAssertion ?qa .
}
graph ?qa {
?qualifier npx:qualifies ?np .
}
}
optional {
graph npa:graph {
?fairAssessmentLevelNp npx:hasNanopubType fip:has-FAIR-assessment .
?fairAssessmentLevelNp npa:hasValidSignatureForPublicKey ?lpubkey .
}
graph ?latest_curators_assertion {
?lpubkeys npx:hasPublicKey ?lpubkey .
}
graph npa:graph {
filter not exists { ?fairAssessmentLevelNp_x npx:invalidates ?fairAssessmentLevelNp ; npa:hasValidSignatureForPublicKey ?lpubkey . }
?fairAssessmentLevelNp np:hasAssertion ?la .
}
graph ?la {
?thing fip:has-FAIR-assessment ?fairAssessmentLevel .
}
} filter(!bound(?levelNp)) # Faster than "filter not exists" for some reason
}
group by ?thing ?label ?description ?np ?date ?pubkey ?retraction ?newversion ?qualifier ?qualification_np
order by desc(?recommender_count) asc(?label)
This query returns the FAQ entries (questions and answers) of an entity, including source nanopub and date. When several nanopubs declare the same FAQ entry, only the most recent one is returned.
Get FAQ entries of an entity
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix schema: <http://schema.org/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?title ?content ?date ?faq ?np where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?faq rdf:type schema:Question .
?faq rdfs:label ?title .
?faq gen:hasContent ?content .
values ?_resource_multi_iri {}
?faq dct:isPartOf ?_resource_multi_iri .
optional { ?faq gen:hasPositionString ?position }
}
filter not exists {
graph npa:graph {
?np2 npa:hasValidSignatureForPublicKeyHash ?pubkey2 .
filter not exists { ?npx2 npx:invalidates ?np2 ; npa:hasValidSignatureForPublicKeyHash ?pubkey2 . }
?np2 dct:created ?date2 .
?np2 np:hasAssertion ?a2 .
filter (?date2 > ?date)
}
graph ?a2 {
?faq rdf:type schema:Question .
}
}
}
order by ?position ?title
This query returns all FIP declarations that are part of the most recent versions of the FIP indexes, as these nanopubs are produced by the FIP Wizard.
Get FIP declarations in indexes
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix dct: <http://purl.org/dc/terms/>
prefix dce: <http://purl.org/dc/elements/1.1/>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix np: <http://www.nanopub.org/nschema#>
prefix prov: <http://www.w3.org/ns/prov#>
select ?fip_index ?fip_title ?fip_source ?decl_np where {
graph npa:graph {
?fip_index npx:hasNanopubType npx:NanopubIndex .
?fip_index npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?index_np_x npx:invalidates ?fip_index ; npa:hasValidSignatureForPublicKey ?pubkey . }
?fip_index np:hasAssertion ?index_a .
?fip_index np:hasPublicationInfo ?index_i .
?fip_index rdfs:label ?fip_title .
?fip_index dct:created ?index_date .
?decl_np npa:hasValidSignatureForPublicKey ?decl_pubkey .
filter not exists { ?decl_np_x npx:invalidates ?decl_np ; npa:hasValidSignatureForPublicKey ?decl_pubkey . }
?decl_np npx:hasNanopubType fip:FIP-Declaration .
?decl_np dct:created ?date .
}
graph ?index_a {
?fip_index npx:includesElement ?decl_np .
}
graph ?index_i {
?fip_index prov:wasDerivedFrom ?fip_source .
}
filter not exists {
graph npa:graph { # Moving this to a separate graph for performance reasons with RDF4J LMDB engine
# Matching on the title string is an ugly hack:
?fip_newer_index rdfs:label ?fip_title .
}
graph npa:graph {
?fip_newer_index npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?fip_newer_index_x npx:invalidates ?fip_newer_index ; npa:hasValidSignatureForPublicKey ?pubkey . }
?fip_newer_index dct:created ?newer_date .
}
filter(?newer_date > ?index_date).
}
}
Lists all entities that have been annotated by nanopubs containing oa:Annotation, ordered by the number of annotation nanopubs targeting each entity.
Get annotated entities
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix oa: <http://www.w3.org/ns/oa#>
select ?entity (count(?np) as ?annotation_count)
(group_concat(str(?np); separator=" ") as ?nps_multi_iri)
(group_concat("^"; separator="\n") as ?nps_label_multi)
where {
{
select distinct ?entity ?np where {
graph npa:graph {
?np np:hasAssertion ?a .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
}
graph ?a {
?annotation a oa:Annotation ;
oa:hasTarget ?target .
?target oa:hasSource ?entity .
}
}
}
}
group by ?entity
order by desc(?annotation_count)
This query returns the papers co-authored by team members of a given Space.
Get papers for team
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix fabio: <http://purl.org/spar/fabio/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select distinct ?paper ?paper_label ?journal ?journal_label ?publication_date ?np ("^" as ?np_label) where {
values ?_space_multi_iri {}
graph npa:graph {
?mnp npa:hasValidSignatureForPublicKeyHash ?mpubkey .
filter not exists { ?mnpx npx:invalidates ?mnp ; npa:hasValidSignatureForPublicKeyHash ?mpubkey . }
?mnp np:hasAssertion ?ma .
}
graph ?ma {
?_space_multi_iri gen:hasTeamMember ?author .
}
graph npa:graph {
?np npx:hasNanopubType fabio:ScholarlyWork .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?paper .
}
graph ?a {
?paper dct:title ?paper_label .
?paper bibo:authorList ?author_list .
?paper dct:date ?publication_date .
?author_list ?rdfseqpred ?author .
filter(strstarts(str(?rdfseqpred), "http://www.w3.org/1999/02/22-rdf-syntax-ns#_"))
optional {
?paper dct:isPartOf ?journal .
?journal dct:title ?journal_label .
}
}
}
order by desc(?publication_date)
Returns a list of all events related to the Three Point FAIRification Framework (3PFF), with multi-value fields pre-rendered as HTML anchor strings. Variant of get-3pff-events intended for consumption by clients (e.g. nanopub-table with data-bind-html) that cannot split space-separated URI lists on their own.
Get 3PFF Events (HTML)
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix tpff: <https://w3id.org/fair/3pff/>
prefix schema: <http://schema.org/>
select
(?event as ?Event_ID)
(?eventShortName as ?Event_ID__label)
(?eventLongName as ?Event_Name)
(?eventDate as ?Date)
(group_concat(distinct concat(
"<a href=\"", str(?eventOrganizer), "\">",
replace(str(?eventOrganizer), "^.*[/#]", ""),
"</a>"
); separator=", ") as ?Organizers)
(group_concat(distinct concat(
"<a href=\"", str(?eventFacilitator), "\">",
replace(str(?eventFacilitator), "^.*[/#]", ""),
"</a>"
); separator=", ") as ?Facilitators)
(group_concat(distinct concat(
"<a href=\"", str(?eventMoreInfoLink), "\">",
replace(str(?eventMoreInfoLink), "^.*[/#]", ""),
"</a>"
); separator=", ") as ?More_Info)
(?np as ?Source)
where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?npDate .
?np dct:creator ?npCreator .
?np np:hasAssertion ?assertion .
?np npx:introduces ?event .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?assertion {
?event a tpff:3PFF-event .
?event rdfs:label ?eventName .
# Date Handling: Check for both predicates
optional { ?event dct:date ?dateDct . }
optional { ?event schema:startDate ?dateSchema . }
bind(coalesce(?dateDct, strBefore(str(?dateSchema), "T")) as ?eventDate)
bind(replace(str(?eventName), ' ?\\|.*$', '') as ?eventShortName)
bind(replace(str(?eventName), '^([A-Z0-9]{2,3}).*$', '$1') as ?eventSeries)
bind(replace(str(?eventName), '^.*\\| ?(.*)$', '$1') as ?eventLongName)
optional {
?event tpff:has-event-organizer ?eventOrganizer .
}
optional {
?event tpff:has-event-facilitator ?eventFacilitator .
}
optional {
?event rdfs:seeAlso ?eventMoreInfoLink .
}
}
}
group by ?event ?eventShortName ?eventLongName ?eventDate ?np
order by desc(?eventDate)
Full-text search over classes that have been declared as FAIR Digital Object (FDO) subclasses in nanopublications. Suitable as an autocomplete lookup source in Nanodash guided-choice placeholders.
Full-text search on FDO subclasses
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix fdof: <https://w3id.org/fdof/ontology#>
select distinct ?thing ?label ?description ?np ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:introduces|npx:describes|npx:embeds ?thing .
?np rdfs:label ?label .
optional { ?np dct:description ?description . }
?np np:hasAssertion ?a .
}
graph ?a {
?thing rdfs:subClassOf fdof:FAIRDigitalObject .
}
filter(contains(lcase(str(?label)), lcase(?_query)))
}
order by desc(?date)
limit 10
Returns the pinned templates for the given resource (Space, agent, or other resource), formatted for list display.
Get pinned templates for resource
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?label ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np npx:hasNanopubType gen:hasPinnedTemplate .
?np dct:created ?date .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?pi .
}
graph ?a {
values ?_resource_multi_iri {}
?_resource_multi_iri gen:hasPinnedTemplate ?template .
}
optional { graph ?pi { ?template nt:hasLabelFromApi ?api_label } }
bind(if(bound(?api_label),
if(contains(?api_label, " - "), strbefore(?api_label, " - "), ?api_label),
str(?template)) as ?rawlabel)
bind(concat("<span><a href=\"/publish?template=", encode_for_uri(str(?template)), "\">", ?rawlabel, "</a></span>") as ?label)
} order by desc(?date)
Returns the pinned queries for the given resource (Space, agent, or other resource), formatted for list display.
Get pinned queries for resource
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?label ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np npx:hasNanopubType gen:hasPinnedQuery .
?np dct:created ?date .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?pi .
}
graph ?a {
values ?_resource_multi_iri {}
?_resource_multi_iri gen:hasPinnedQuery ?query .
}
optional { graph ?pi { ?query nt:hasLabelFromApi ?api_label } }
bind(if(bound(?api_label),
if(contains(?api_label, " - "), strbefore(?api_label, " - "), ?api_label),
str(?query)) as ?rawlabel)
bind(replace(str(?query), "https://w3id.org/np/", "") as ?spec_path)
bind(concat("<span><a href=\"/query?id=", ?spec_path, "\">", ?rawlabel, "</a></span>") as ?label)
} order by desc(?date)
Returns the grlc query nanopublications created by the given user.
Get queries by given user
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix grlc: <https://w3id.org/kpxl/grlc/>
select ?label ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:signedBy ?_user_iri .
?np npa:hasValidSignatureForPublicKeyHash ?pubkeyhash .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkeyhash . }
?np npx:hasNanopubType grlc:grlc-query .
?np npx:introduces|npx:embeds ?query .
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?query grlc:endpoint ?endpoint .
filter(strstarts(str(?endpoint), "https://w3id.org/np/l/nanopub-query"))
optional { ?query rdfs:label ?rawlabel }
}
bind(replace(str(?query), "https://w3id.org/np/", "") as ?spec_path)
bind(concat("<span><a href=\"/query?id=", ?spec_path, "\">", coalesce(?rawlabel, str(?query)), "</a></span>") as ?label)
} order by desc(?date)
Returns the assertion templates created by the given user.
Get templates by given user
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select ?label ?tag ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:signedBy ?_user_iri .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npx:hasNanopubType nt:AssertionTemplate .
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?a rdfs:label ?rawlabel .
optional { ?a nt:hasTag ?tag . }
filter not exists { ?a a nt:UnlistedTemplate }
}
bind(concat("<span><a href=\"/publish?template=", encode_for_uri(str(?np)), "\">", ?rawlabel, "</a></span>") as ?label)
} order by desc(?date)
This query returns the testimonials (about any entity) authored by any of the project leads of the given project.
Get testimonials by project leads
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix schema: <https://schema.org/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?author ?author_label ?about ?about_label ?text ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?lead_np np:hasAssertion ?lead_a .
?lead_np npa:hasValidSignatureForPublicKeyHash ?lead_pubkey .
filter not exists { ?lead_npx npx:invalidates ?lead_np ; npa:hasValidSignatureForPublicKeyHash ?lead_pubkey . }
}
graph ?lead_a {
?_project_iri gen:hasProjectLead ?author .
}
graph npa:graph {
?np npx:hasNanopubType gen:Testimonial .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx2 npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np npx:introduces ?testimonial .
?np np:hasAssertion ?a .
?np dct:created ?date .
}
graph ?a {
?testimonial dct:description ?text .
?testimonial schema:author ?author .
optional { ?testimonial schema:about ?about . }
optional { ?author rdfs:label ?author_label . }
optional { ?about rdfs:label ?about_label . }
}
}
order by desc(?date)
This query returns all classes that specify to be part of a given ontology.
Get the classes of an ontology
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
select ?class ?class_label (?definition as ?description)
(group_concat(distinct str(?superclass); separator=" ") as ?superclasses_multi_iri)
(group_concat(distinct replace(replace(coalesce(?superclass_lbl, str(?superclass)), "\\\\", "\\\\\\\\"), "[\r\n]+", "\\\\n"); separator="\n") as
?superclasses_label_multi)
?np ("^" as ?np_label) where {
values ?_ontology_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType owl:Class .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?class .
?np np:hasAssertion ?a .
}
graph ?a {
?class dct:partOf ?_ontology_multi_iri .
optional { ?class rdfs:label ?class_label . }
optional { ?class skos:definition ?definition . }
optional {
?class rdfs:subClassOf ?superclass .
filter(isIRI(?superclass))
optional { ?superclass rdfs:label ?superclass_lbl . }
}
}
}
group by ?class ?class_label ?definition ?np
order by ?class_label
This query returns all classes that specify to be part of a given ontology.
Get the classes of an ontology
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
select ?class ?class_label (?definition as ?description)
(group_concat(distinct str(?superclass); separator=" ") as ?superclasses_multi_iri)
(group_concat(distinct replace(replace(coalesce(?superclass_lbl, str(?superclass)), "\\\\", "\\\\\\\\"), "[\r\n]+", "\\\\n"); separator="\n") as
?superclasses_label_multi)
?np ("^" as ?np_label)
where {
values ?_ontology_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType owl:Class .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?class .
?np np:hasAssertion ?a .
}
graph ?a {
?class dct:partOf ?_ontology_multi_iri .
optional { ?class rdfs:label ?class_label . }
optional { ?class skos:definition ?definition . }
optional {
?class rdfs:subClassOf ?superclass .
filter(isIRI(?superclass))
optional { ?superclass rdfs:label ?superclass_lbl . }
}
}
}
group by ?class ?class_label ?definition ?np
order by ?class_label
Returns all assertion templates with their label, tag, creator and date, ordered by descending date
Get all templates
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select ?template_iri ?template_iri_label ?tag ?creator ?date where {
graph npa:graph {
?template_iri npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?template_iri ; npa:hasValidSignatureForPublicKey ?pubkey . }
?template_iri npx:hasNanopubType nt:AssertionTemplate .
?template_iri dct:created ?date .
?template_iri np:hasAssertion ?a .
optional { ?template_iri npx:signedBy ?creator . }
}
optional { graph ?a { ?a rdfs:label ?template_iri_label } }
optional { graph ?a { ?a nt:hasTag ?tag . } }
filter not exists { graph ?a { ?a a nt:UnlistedTemplate } }
} order by desc(?date)
This query returns the most used assertion templates of the last 30 days, considering the latest versions of these templates.
Get the most used templates of the last 30 days
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix dct: <http://purl.org/dc/terms/>
select ?template_np ?template_np_label (sum(?npcount) as ?overallcount) {
{ select ?used_template_np (count(distinct ?np) as ?npcount) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np np:hasPublicationInfo ?i .
}
graph ?i {
?np nt:wasCreatedFromTemplate ?used_template_np .
}
} group by ?used_template_np }
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(nt:AssertionTemplate)))) as ?atservice)
{ service ?atservice {
graph npa:networkGraph {
?template_np npx:supersedes* ?used_template_np .
}
graph npa:graph {
?used_template_np npa:hasValidSignatureForPublicKey ?pubkey .
?template_np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?template_npx npx:invalidates ?template_np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?used_template_np np:hasAssertion ?a .
}
graph ?a {
?a rdfs:label ?template_np_label .
}
} }
} group by ?template_np ?template_np_label order by desc(?overallcount) limit 10
Returns the latest nanopublications signed by or created by a given user (signed via npx:signedBy, or created via dct:creator if no npx:signedBy is present).
Get latest nanopublications by user
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?np ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?date .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
}
{
graph npa:graph {
?np npx:signedBy ?_userid_iri .
}
} union {
filter not exists {
graph npa:graph { ?np npx:signedBy ?anyuser . }
}
graph npa:graph {
?np dct:creator ?_userid_iri .
}
}
}
order by desc(?date)
limit 100
Returns the latest nanopublications signed by or created by a given user (signed via npx:signedBy, or created via dct:creator if no npx:signedBy is present).
Get latest nanopublications by user
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?np ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?date .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
}
{
graph npa:graph {
?np npx:signedBy ?_userid_iri .
}
} union {
filter not exists {
graph npa:graph { ?np npx:signedBy ?_userid_iri . }
}
graph npa:graph {
?np dct:creator ?_userid_iri .
}
}
}
order by desc(?date)
limit 100
This query returns a list of suggested templates to get started, so it can be shown e.g. on Nanodash.
Get suggested templates to get started
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
select ?template_iri ?template_iri_label where {
graph npa:graph {
?np npx:hasNanopubType <https://w3id.org/kpxl/gen/terms/SuggestedTemplateToGetStarted> .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter(?pubkey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD4Wj537OijfOWVtsHMznuXKISqBhtGDQZfdO6pbb4hg9EHMcUFGTLbWaPrP783PHv8HMAAPjvEkHLaOHMIknqhaIa5236lfBO3r+ljVdYBElBcLvROmwG+ZGtmPNZf7lMhI15xf5TfoaSa84AFRd5J2EXekK6PhaFQhRm1IpSYtwIDAQAB")
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?template_iri a <https://w3id.org/kpxl/gen/terms/SuggestedTemplateToGetStarted> .
}
optional {
graph npa:graph {
?template_iri rdfs:label ?raw_label .
}
bind(replace(str(?raw_label), "^Template: ", "") as ?template_iri_label)
}
} order by desc(?date)
Returns the latest users who have introduced themselves, with the user IRI in the user_iri column for display.
Get latest users v2
prefix np: <http://www.nanopub.org/nschema#>
prefix npx: <http://purl.org/nanopub/x/>
prefix npa: <http://purl.org/nanopub/admin/>
prefix dct: <http://purl.org/dc/terms/>
select ?user_iri where {
{
select ?user_iri (min(?date) as ?mindate) where {
graph npa:graph {
?intronp npa:hasValidSignatureForPublicKey ?introPubkey .
filter not exists { ?intronpx npx:retracts ?intronp ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?intronp npx:supersedes ?intronpx . }
?intronp dct:created ?date .
?intronp np:hasAssertion ?a .
}
graph ?a {
?keydeclaration npx:declaredBy ?user_iri .
?keydeclaration npx:hasPublicKey ?pubkey .
}
}
group by ?user_iri
}
}
order by desc(?mindate)
limit 100
This query returns a list of suggested templates to get started, so it can be shown e.g. on Nanodash.
Get suggested templates to get started
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
select ?template_iri ?template_iri_label where {
graph npa:graph {
?np npx:hasNanopubType <https://w3id.org/kpxl/gen/terms/SuggestedTemplateToGetStarted> .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?template_iri a <https://w3id.org/kpxl/gen/terms/SuggestedTemplateToGetStarted> .
optional { ?template_iri rdfs:label ?template_iri_label . }
}
} order by desc(?date)
This query returns the 10 creators who created most nanopublications during the last 30 days.
Get the top-10 creators of the last 30 days
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?user_iri where {
{ graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:creator ?user_iri .
} }
union
{
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasAssertion ?assertion .
?np np:hasProvenance ?prov .
}
graph ?prov {
?assertion prov:wasAttributedTo ?user_iri .
}
}
filter(?user_iri != <https://orcid.org/1234-1234-1234-1234>)
filter(?user_iri != <https://orcid.org/0000-0000-0000-0000>)
filter(!regex(str(?user_iri), '[^A-Za-z0-9-_]RA[A-Za-z0-9-_]{43}$'))
}
group by ?user_iri
order by desc(count(distinct ?np))
limit 10
This query returns the testimonials about the given entity.
Get testimonials about entity
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix schema: <https://schema.org/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?author ?author_label ?text ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType gen:Testimonial .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np npx:introduces ?testimonial .
?np np:hasAssertion ?a .
?np dct:created ?date .
}
graph ?a {
?testimonial dct:description ?text .
values ?_subject_multi_iri {}
?testimonial schema:about ?_subject_multi_iri .
?testimonial schema:author ?author .
optional { ?author rdfs:label ?author_label . }
}
}
order by desc(?date)
This query returns the testimonials by the given author.
Get testimonials by author
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix schema: <https://schema.org/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?about ?text ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType gen:Testimonial .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np npx:introduces ?testimonial .
?np np:hasAssertion ?a .
?np dct:created ?date .
}
graph ?a {
?testimonial dct:description ?text .
?testimonial schema:author ?_author_iri .
optional { ?testimonial schema:about ?about . }
}
}
order by desc(?date)
Returns R-FIP declarations: FIP declarations whose community has a Reference-FAIR-Implementation-Profile, matched with the latest R-FIP profile for that community.
Get R-FIP declarations in context
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix dct: <http://purl.org/dc/terms/>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix np: <http://www.nanopub.org/nschema#>
prefix schema: <https://schema.org/>
select ?fip_index ?fip_title ?decl_np where {
# Find R-FIP profiles (latest per community)
graph npa:graph {
?fip_index npx:hasNanopubType fip:Reference-FAIR-Implementation-Profile .
?fip_index npa:hasValidSignatureForPublicKeyHash ?pkh .
filter not exists { ?inv npx:invalidates ?fip_index ; npa:hasValidSignatureForPublicKeyHash ?pkh . }
?fip_index np:hasAssertion ?rfip_a .
?fip_index npx:introduces ?rfip .
?fip_index dct:created ?rfip_date .
}
graph ?rfip_a {
?rfip rdfs:label ?fip_title .
?rfip fip:declared-by ?community .
}
# Keep only the latest R-FIP profile per community
filter not exists {
graph npa:graph {
?newer_rfip npx:hasNanopubType fip:Reference-FAIR-Implementation-Profile .
?newer_rfip npa:hasValidSignatureForPublicKeyHash ?nkh .
filter not exists { ?ninv npx:invalidates ?newer_rfip ; npa:hasValidSignatureForPublicKeyHash ?nkh . }
?newer_rfip np:hasAssertion ?nra .
?newer_rfip dct:created ?newer_date .
}
graph ?nra {
?nrfip fip:declared-by ?community .
}
filter(?newer_date > ?rfip_date)
}
# Find FIP declarations from these R-FIP communities that have schema:version
graph npa:graph {
?decl_np npx:hasNanopubType fip:FIP-Declaration .
?decl_np npa:hasValidSignatureForPublicKey ?dpk .
filter not exists { ?dinv npx:invalidates ?decl_np ; npa:hasValidSignatureForPublicKey ?dpk . }
?decl_np np:hasAssertion ?decl_a .
}
graph ?decl_a {
?decl fip:declared-by ?community .
?decl schema:version ?version .
}
}
This query returns the details of all FIP declarations, including schema:version for R-FIP declarations.
Get FIP declaration details
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix dct: <http://purl.org/dc/terms/>
prefix dce: <http://purl.org/dc/elements/1.1/>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix np: <http://www.nanopub.org/nschema#>
prefix dcat: <https://www.w3.org/ns/dcat#>
prefix schema: <https://schema.org/>
select ?decl_np ?community ?c ?question ?q ?sort ?nochoice ?decl ?rel ?resource_id_used ?startdate ?enddate ?date ?version where {
graph npa:graph {
?decl_np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?decl_np_x npx:invalidates ?decl_np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?decl_np npx:hasNanopubType fip:FIP-Declaration .
?decl_np dct:created ?date .
?decl_np np:hasAssertion ?assertion .
}
graph ?assertion {
?decl a fip:FIP-Declaration .
?decl fip:refers-to-question ?question .
{
{ ?decl fip:declares-current-use-of ?resource_id_used . bind(fip:declares-current-use-of as ?rel) }
union
{ ?decl fip:declares-planned-use-of ?resource_id_used . bind(fip:declares-planned-use-of as ?rel) }
union
{ ?decl fip:declares-planned-replacement-of ?resource_id_used . bind(fip:declares-planned-replacement-of as ?rel) }
union
{ ?decl fip:declares-replacement-from ?resource_id_used . bind(fip:declares-replacement-from as ?rel) }
union
{ ?decl fip:declares-replacement-to ?resource_id_used . bind(fip:declares-replacement-to as ?rel) }
}
# grlc gives an error for some reason if these two optional statements are at the end of the graph block:
optional { ?decl dcat:startDate ?startdate . }
optional { ?decl dcat:endDate ?enddate . }
?decl fip:declared-by ?community .
optional { ?decl schema:version ?version . }
}
bind (replace(str(?community), ".*#", "") as ?c)
bind (replace(str(?supercommunity), ".*#", "") as ?sc)
bind (replace(str(?question), "^.*-([^-MD]+(-[MD]+)?)$", "$1") as ?q)
bind (concat(replace(?q, "F|M", "0"), "x") as ?sort)
bind ("" as ?nochoice)
}
This query returns the relevant resources for a given entity (e.g. a Space).
Get relevant resources
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?resource ?resource_label ?comment ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType gen:isRelevantFor .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?label }
}
values ?_entity_multi_iri {}
graph ?a {
?resource gen:isRelevantFor ?_entity_multi_iri .
optional { ?resource rdfs:label ?resource_label . }
optional { ?resource rdfs:comment ?comment . }
}
}
This query returns the paragraphs of an entity (e.g. a space) with their title and content, including source nanopub and date.
Get paragraphs of an entity
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix schema: <http://schema.org/>
prefix schemas: <https://schema.org/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?title ?content ?date ?np where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np dct:creator ?user .
?np np:hasAssertion ?a .
}
graph ?a {
?paragraph schema:title|schemas:title ?title .
?paragraph rdf:type gen:Paragraph .
?paragraph gen:hasContent ?content .
values ?_resource_multi_iri {}
?paragraph schema:isPartOf|schemas:isPartOf|schema:about|schemas:about ?_resource_multi_iri .
optional { ?paragraph gen:hasPositionString ?position }
}
}
order by ?position ?title
This query returns all newer versions of a given nanopublication, including those that since have been superseded or retracted.
Get all newer versions of this nanopublication
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
select ?newerVersion ?date ?retractedBy ?supersededBy where {
graph npa:graph {
?_np_iri npa:hasValidSignatureForPublicKey ?pubkey .
}
graph npa:networkGraph {
?newerVersion (npx:supersedes)* ?_np_iri .
}
graph npa:graph {
?newerVersion npa:hasValidSignatureForPublicKey ?pubkey .
}
optional { graph npa:graph { ?newerVersion dct:created ?date . } }
optional { graph npa:graph { ?retractedBy npx:retracts ?newerVersion ; npa:hasValidSignatureForPublicKey ?pubkey . } }
optional { graph npa:graph { ?supersededBy npx:supersedes ?newerVersion ; npa:hasValidSignatureForPublicKey ?pubkey . } }
}
order by desc(?date) ?newerVersion
This query returns the items a given user has read, covering both schema:ReadAction and paperclub:hasRead nanopubs.
Get reads by reader
prefix schema: <http://schema.org/>
prefix pc: <http://purl.org/petapico/o/paperclub#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
select distinct ?item ?item_label ?date ?comment ?np ("^" as ?np_label) where {
{
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np np:hasAssertion ?a .
?np dct:created ?created .
}
graph ?a {
?ra a schema:ReadAction ;
schema:agent ?_reader_iri ;
schema:object ?item .
optional { ?item rdfs:label ?item_label }
optional { ?ra schema:endTime ?d }
optional { ?ra rdfs:comment ?comment }
}
bind(coalesce(?d, substr(str(?created), 1, 10)) as ?date)
}
union
{
bind(iri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(pc:hasRead)))) as ?hasread_repo)
service ?hasread_repo {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np np:hasAssertion ?a .
?np npx:signedBy ?_reader_iri .
?np dct:created ?created .
}
graph ?a {
?_reader_iri pc:hasRead ?item .
optional { ?item rdfs:comment ?comment }
}
}
bind(substr(str(?created), 1, 10) as ?date)
}
} order by desc(?date)
This query returns all thanks, possibly restricted by thanker, thanked, and/or thank reason.
Get thanks
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix thank: <https://w3id.org/spaces/nanopub/r/thank/>
select (?__thanker_iri as ?thanker) (?__thanked_iri as ?thanked) (?__thankReason_iri as ?thank_reason) ?comment ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:signedBy ?__thanker_iri .
?np np:hasAssertion ?a .
}
graph ?a {
?thanks a thank:Thanks .
?thanks thank:hasThanked ?__thanked_iri .
?thanks thank:hasThanker ?__thanker_iri .
?thanks thank:thanksFor ?__thankReason_iri .
optional { ?thanks rdfs:comment ?comment . }
}
}
order by desc(?date)
Returns all 3PFF events for a given user, including the role they had in each event.
Get 3PFF events for user
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix tpff: <https://w3id.org/fair/3pff/>
prefix schema: <http://schema.org/>
select ?event ?event_label (sample(?ev_name) as ?event_name) (sample(?ev_date) as ?event_date) ?roles_multi_iri ?roles_label_multi ?np_multi_iri ?np_label_multi where {
{
select ?event (replace(str(?event), "^.*/", "") as ?event_label) (group_concat(str(?role); separator=" ") as ?roles_multi_iri) (group_concat(?role_label; separator="\n") as ?roles_label_multi) (group_concat(str(?latest_np); separator=" ") as ?np_multi_iri) (group_concat("^"; separator="\n") as ?np_label_multi) where {
{
select ?event ?role ?role_label (sample(?np) as ?latest_np) where {
values (?role ?role_label) {
(tpff:participatedAsParticipantIn "Participant")
(tpff:participatedAsFacilitatorIn "Facilitator")
(tpff:participatedAsTrainerIn "Trainer")
(tpff:participatedAsFacilitatorAssistantIn "Facilitator Assistant")
(tpff:participatedAsTrainerAssistantIn "Trainer Assistant")
(tpff:participatedAsImplementerIn "Implementer")
(tpff:participatedAsImplementerAspirantIn "Implementer Aspirant")
}
graph npa:graph {
?np npx:hasNanopubType ?role .
?np dct:creator ?_user_iri .
?np npa:hasValidSignatureForPublicKeyHash ?pk .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pk . }
?np np:hasAssertion ?a .
?np dct:created ?date .
}
graph ?a {
?_user_iri ?role ?event .
}
filter not exists {
graph npa:graph {
?np2 npx:hasNanopubType ?role .
?np2 dct:creator ?_user_iri .
?np2 npa:hasValidSignatureForPublicKeyHash ?pk2 .
filter not exists { ?npx2 npx:invalidates ?np2 ; npa:hasValidSignatureForPublicKeyHash ?pk2 . }
?np2 np:hasAssertion ?a2 .
?np2 dct:created ?date2 .
filter(?date2 > ?date)
}
graph ?a2 {
?_user_iri ?role ?event .
}
}
}
group by ?event ?role ?role_label
}
}
group by ?event
}
graph npa:graph {
?enp npx:introduces ?event .
?enp npa:hasValidSignatureForPublicKeyHash ?epk .
filter not exists { ?enpx npx:invalidates ?enp ; npa:hasValidSignatureForPublicKeyHash ?epk . }
?enp np:hasAssertion ?ea .
}
graph ?ea {
?event a tpff:3PFF-event .
?event rdfs:label ?ename .
optional { ?event dct:date ?dateDct . }
optional { ?event schema:startDate ?dateSchema . }
}
bind(coalesce(?dateDct, strBefore(str(?dateSchema), "T")) as ?ev_date)
bind(replace(?ename, "^[^|]*\\| ?", "") as ?ev_name)
}
group by ?event ?event_label ?roles_multi_iri ?roles_label_multi ?np_multi_iri ?np_label_multi
order by desc(sample(?ev_date))
This query returns the past events the given user has participated in.
Get past event participations
prefix wd: <http://www.wikidata.org/entity/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix schema: <http://schema.org/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
select distinct ?event ?event_label ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np np:hasAssertion ?a .
}
graph ?a {
?_user_iri wd:P1344 ?event .
}
optional {
bind(iri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(gen:Space)))) as ?space_repo)
service ?space_repo {
graph npa:graph {
?nps npx:introduces ?event .
?nps npa:hasValidSignatureForPublicKeyHash ?pks .
filter not exists { ?npsx npx:invalidates ?nps ; npa:hasValidSignatureForPublicKeyHash ?pks . }
?nps np:hasAssertion ?as .
}
graph ?as {
?event rdfs:label ?el .
optional {
?event schema:startDate ?datetime .
}
}
}
}
bind(xsd:date(substr(str(?datetime), 0, 11)) as ?date)
bind(?el as ?event_label)
filter(?date < xsd:date(substr(str(now()), 0, 11)))
} order by desc(?date)
This query returns the papers for a given author.
Get papers for author
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix fabio: <http://purl.org/spar/fabio/>
prefix bibo: <http://purl.org/ontology/bibo/>
select ?paper ?paper_label ?journal ?journal_label ?publication_date ?np ("^" as ?np_label) where {
values ?_author_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType fabio:ScholarlyWork .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?paper .
}
graph ?a {
?paper dct:title ?paper_label .
?paper bibo:authorList ?author_list .
?paper dct:date ?publication_date .
?author_list ?rdfseqpred ?_author_multi_iri .
filter(strstarts(str(?rdfseqpred), "http://www.w3.org/1999/02/22-rdf-syntax-ns#_"))
optional {
?paper dct:isPartOf ?journal .
?journal dct:title ?journal_label .
}
}
}
order by desc(?publication_date)
This query returns the personal URLs for a given user.
Get personal URLs
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?urllink ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType rdfs:seeAlso .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np np:hasAssertion ?a .
}
graph ?a {
?_user_iri rdfs:seeAlso ?url .
?url rdfs:label ?url_label .
}
bind(concat("<span><a target=\"_blank\" href=\"", str(?url), "\">", ?url_label, "</a></span>") as ?urllink)
} order by ?url_label
This query returns resources (FERs etc.) together with the info about whether GO FAIR qualified them.
Get GO FAIR qualified things
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
select distinct ?thing ?label ?np ?date ?qualification_np where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
graph npa:graph {
?np npx:hasNanopubType ?__type_iri .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np (npx:introduces|npx:describes) ?thing .
?np rdfs:label ?label .
?np dct:description ?description .
?np dct:created ?date .
filter(str(?date) > "2022")
}
optional {
graph npa:graph {
?disapproval npa:hasValidSignatureForPublicKey ?dpubkey .
}
graph ?latest_curators_assertion {
?dpubkeys npx:hasPublicKey ?dpubkey .
}
graph npa:graph {
filter not exists { ?disapproval_x npx:invalidates ?disapproval ; npa:hasValidSignatureForPublicKey ?dpubkey . }
?disapproval np:hasAssertion ?da .
}
graph ?da {
?dsomebody ( npx:disapproves-of | npx:disapprovesOf ) ?np .
}
} filter(!bound(?disapproval)) # Faster than "filter not exists" for some reason
optional {
optional {
graph npa:graph {
?recommendation_np npx:hasNanopubType fip:recommended-by .
?recommendation_np npa:hasValidSignatureForPublicKey ?rpubkey .
filter not exists { ?recommendation_np_x npx:invalidates ?recommendation_np ; npa:hasValidSignatureForPublicKey ?rpubkey . }
?recommendation_np np:hasAssertion ?ra .
?recommendation_np np:hasProvenance ?rp .
}
graph ?ra {
?thing fip:recommended-by ?recommender .
}
graph ?rp {
?ra prov:wasDerivedFrom ?rfip_np .
}
graph npa:graph {
?rfip_np npx:hasNanopubType fip:Reference-FAIR-Implementation-Profile .
?rfip_np npa:hasValidSignatureForPublicKey ?rfip_pubkey .
?latest_rfip_np npa:hasValidSignatureForPublicKey ?rfip_pubkey .
filter not exists { ?latest_rfip_npx npx:invalidates ?latest_rfip_np ; npa:hasValidSignatureForPublicKey ?rfip_pubkey . }
}
graph npa:networkGraph {
?latest_rfip_np (npx:supersedes)* ?rfip_np .
}
graph ?rfip_qa {
?rfip_qualifier npx:qualifies ?latest_rfip_np .
}
graph npa:graph {
?rfip_qualification_np np:hasAssertion ?rfip_qa .
?rfip_qualification_np npx:hasNanopubType npx:qualifies .
?rfip_qualification_np npa:hasValidSignatureForPublicKey ?rfip_qpubkey .
filter not exists { ?rfip_qualification_np_x npx:invalidates ?rfip_qualification_np ; npa:hasValidSignatureForPublicKey ?rfip_qpubkey . }
}
graph ?latest_curators_assertion {
?rfip_qpubkeys npx:hasPublicKey ?rfip_qpubkey .
}
}
graph npa:graph {
?qualification_np npx:hasNanopubType npx:qualifies .
?qualification_np npa:hasValidSignatureForPublicKey ?qpubkey .
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
graph npa:graph {
filter not exists { ?qualification_np_x npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
?qualification_np np:hasAssertion ?qa .
}
graph ?qa {
?qualifier npx:qualifies ?np .
}
}
optional {
graph npa:graph {
?fairAssessmentLevelNp npx:hasNanopubType fip:has-FAIR-assessment .
?fairAssessmentLevelNp npa:hasValidSignatureForPublicKey ?lpubkey .
}
graph ?latest_curators_assertion {
?lpubkeys npx:hasPublicKey ?lpubkey .
}
graph npa:graph {
filter not exists { ?fairAssessmentLevelNp_x npx:invalidates ?fairAssessmentLevelNp ; npa:hasValidSignatureForPublicKey ?lpubkey . }
?fairAssessmentLevelNp np:hasAssertion ?la .
}
graph ?la {
?thing fip:has-FAIR-assessment ?fairAssessmentLevel .
}
} filter(!bound(?levelNp)) # Faster than "filter not exists" for some reason
}
group by ?thing ?label ?description ?np ?date ?pubkey ?retraction ?newversion ?qualifier ?qualification_np
order by desc(?recommender_count) asc(?label)
This query returns the number of nanopubs per type.
Get nanopub type counts
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select (count(?np) as ?count) ?type where {
graph npa:graph {
?np npx:hasNanopubType ?type .
}
} group by ?type order by desc(?count)
Returns the number of nanopublications published per week (Mon-Sun).
Get weekly nanopub count
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?week (substr(str(min(?date)), 0, 11) as ?firstday) (count(?np) as ?nanopubcount) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?date .
}
bind(if(month(?date) <= 2, year(?date) - 1, year(?date)) as ?y)
bind(if(month(?date) <= 2, month(?date) + 9, month(?date) - 3) as ?m)
bind(365*?y + xsd:integer(?y/4) - xsd:integer(?y/100) + xsd:integer(?y/400) + xsd:integer((153*?m + 2)/5) + day(?date) as ?daynum)
bind(?daynum + 1 - xsd:integer((?daynum + 1) / 7) * 7 as ?dow)
bind(xsd:integer((?daynum - ?dow) / 7) as ?week)
}
group by ?week
order by desc(?week)
This query returns the content (body) of the news entries.
Get news content
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix schema: <http://schema.org/>
prefix schemas: <https://schema.org/>
select ?headline ?body ?datePublished ?link ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np dct:creator ?user .
?np np:hasAssertion ?a .
}
values ?_resource_multi_iri {}
{ graph ?a {
?newsItem schema:headline ?headline .
?newsItem rdf:type schema:NewsArticle .
?newsItem schema:articleBody ?body .
optional { ?newsItem schema:datePublished ?datePublished . }
optional { ?newsItem schema:url ?link . }
?newsItem schema:isPartOf ?_resource_multi_iri .
} } union { graph ?a {
?newsItem schemas:headline ?headline .
?newsItem rdf:type schemas:NewsArticle .
?newsItem schemas:articleBody ?body .
optional { ?newsItem schemas:datePublished ?datePublished . }
optional { ?newsItem schemas:url ?link . }
?newsItem schemas:isPartOf ?_resource_multi_iri .
} }
} order by desc(?datePublished)
This query returns all users who have set up their profile by declaring at least one view to be displayed on their profile page, sorted by date of first view display publication (most recent first).
Get users with profile
prefix np: <http://www.nanopub.org/nschema#>
prefix npx: <http://purl.org/nanopub/x/>
prefix npa: <http://purl.org/nanopub/admin/>
prefix dct: <http://purl.org/dc/terms/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?user (sample(?name) as ?user_label) (min(?date) as ?date) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?display a gen:ViewDisplay .
?display gen:isDisplayFor ?user .
}
graph npa:graph {
?intronp npa:hasValidSignatureForPublicKeyHash ?intropubkey .
filter not exists { ?intronpx npx:invalidates ?intronp ; npa:hasValidSignatureForPublicKeyHash ?intropubkey . }
?intronp np:hasAssertion ?introa .
}
graph ?introa {
?keydecl npx:declaredBy ?user .
optional { ?user foaf:name ?name . }
}
}
group by ?user
order by desc(?date)
This query returns the definition relations of a replication study.
Get replication study definition
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?relation ?relation_label
(group_concat(replace(replace(str(?value), "\\\\", "\\\\\\\\"), "[\r\n]{1,2}", "\\\\n"); separator="\n") as ?value_multi_val)
(group_concat(replace(replace(coalesce(?valueLabel, ""), "\\\\", "\\\\\\\\"), "[\r\n]{1,2}", "\\\\n"); separator="\n") as ?value_label_multi)
?np ("^" as ?np_label) where {
values ?_resource_multi_iri {}
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np np:hasAssertion ?a .
?np npx:introduces ?_resource_multi_iri .
}
values (?relation ?relation_label ?order) {
(<http://www.w3.org/1999/02/22-rdf-syntax-ns#type> "Type:" 1)
(<http://www.w3.org/2000/01/rdf-schema#label> "Label:" 2)
(<https://w3id.org/sciencelive/o/terms/targetsClaim> "Target claim:" 3)
(<https://w3id.org/sciencelive/o/terms/hasScopeDescription> "Scope:" 4)
(<https://w3id.org/sciencelive/o/terms/hasMethodologyDescription> "Methodology:" 5)
(<https://w3id.org/sciencelive/o/terms/hasDeviationDescription> "Deviation:" 6)
(<http://www.w3.org/2004/02/skos/core#related> "Related:" 7)
(<https://w3id.org/sciencelive/o/terms/hasDiscipline> "Discipline:" 8)
}
graph ?a {
?_resource_multi_iri ?relation ?value .
} optional {
service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/29ca2b209f9afb89e9c2c7b61c9c6aa447fb7b941c1db2fd26099346cc4fed29> {
graph npa:graph {
?vnp np:hasAssertion ?va .
?vnp npx:introduces ?value .
?vnp npa:hasValidSignatureForPublicKeyHash ?vpubkey .
filter not exists { ?vnpx npx:invalidates ?vnp ; npa:hasValidSignatureForPublicKeyHash ?vpubkey . }
}
graph ?va {
?value rdfs:label ?valueLabel .
}
}
}
} group by ?relation ?relation_label ?order ?np order by ?order
This query returns the outcome relations of a replication study.
Get replication study outcome
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix sl: <https://w3id.org/sciencelive/o/terms/>
select ?relation ?relation_label (group_concat(replace(replace(str(?value), "\\\\", "\\\\\\\\"), "[\r\n]{1,2}", "\\\\n"); separator="\n") as ?value_multi_val) ?np ("^" as ?np_label) where {
{ select * {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np np:hasAssertion ?a .
?np npx:introduces ?outcome .
}
values ?_replicationStudy_multi_iri {}
graph ?a {
?outcome sl:isOutcomeOf ?_replicationStudy_multi_iri .
}
} order by desc(?date) limit 1 }
values (?relation ?relation_label ?order) {
(<http://www.w3.org/2000/01/rdf-schema#label> "Label:" 1)
(<https://w3id.org/sciencelive/o/terms/hasOutcomeRepository> "Outcome repository:" 2)
(<http://schema.org/endDate> "End date:" 3)
(<https://w3id.org/sciencelive/o/terms/hasValidationStatus> "Validation status:" 4)
(<https://w3id.org/sciencelive/o/terms/hasConclusionDescription> "Conclusion:" 5)
(<https://w3id.org/sciencelive/o/terms/hasEvidenceDescription> "Evidence:" 6)
(<https://w3id.org/sciencelive/o/terms/hasConfidenceLevel> "Confidence level:" 7)
(<https://w3id.org/sciencelive/o/terms/hasLimitationsDescription> "Limitations:" 8)
}
graph ?a {
?outcome ?relation ?value .
}
} group by ?relation ?relation_label ?order ?np order by ?order
This query returns the outcome relations of a replication study.
Get replication study outcome
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix sl: <https://w3id.org/sciencelive/o/terms/>
select ?relation ?relation_label (group_concat(replace(replace(str(?value), "\\\\", "\\\\\\\\"), "[\r\n]{1,2}", "\\\\n")); separator="\n") as ?value_multi_val) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np np:hasAssertion ?a .
?np npx:introduces ?outcome .
}
values ?_replicationStudy_multi_iri {}
graph ?a {
?outcome sl:isOutcomeOf ?_replicationStudy_multi_iri .
}
values (?relation ?relation_label ?order) {
(<http://www.w3.org/2000/01/rdf-schema#label> "Label:" 1)
(<https://w3id.org/sciencelive/o/terms/hasOutcomeRepository> "Outcome repository:" 2)
(<http://schema.org/endDate> "End date:" 3)
(<https://w3id.org/sciencelive/o/terms/hasValidationStatus> "Validation status:" 4)
(<https://w3id.org/sciencelive/o/terms/hasConclusionDescription> "Conclusion:" 5)
(<https://w3id.org/sciencelive/o/terms/hasEvidenceDescription> "Evidence:" 6)
(<https://w3id.org/sciencelive/o/terms/hasConfidenceLevel> "Confidence level:" 7)
(<https://w3id.org/sciencelive/o/terms/hasLimitationsDescription> "Limitations:" 8)
}
graph ?a {
?outcome ?relation ?value .
}
} group by ?relation ?relation_label ?order order by ?order
Returns a summary of 3PFF event participation for a given user, with the number of events per role.
Get 3PFF participation summary for user
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix tpff: <https://w3id.org/fair/3pff/>
select ?role ?role_label (count(distinct ?event) as ?event_count) where {
values (?role ?role_label) {
(tpff:participatedAsParticipantIn "Participant")
(tpff:participatedAsFacilitatorIn "Facilitator")
(tpff:participatedAsTrainerIn "Trainer")
(tpff:participatedAsFacilitatorAssistantIn "Facilitator Assistant")
(tpff:participatedAsTrainerAssistantIn "Trainer Assistant")
(tpff:participatedAsImplementerIn "Implementer")
(tpff:participatedAsImplementerAspirantIn "Implementer Aspirant")
}
graph npa:graph {
?np npx:hasNanopubType ?role .
?np npa:hasValidSignatureForPublicKeyHash ?pk .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pk . }
?np np:hasAssertion ?a .
}
graph ?a {
?_user_iri ?role ?event .
}
graph npa:graph {
?enp npx:introduces ?event .
?enp npa:hasValidSignatureForPublicKeyHash ?epk .
filter not exists { ?enpx npx:invalidates ?enp ; npa:hasValidSignatureForPublicKeyHash ?epk . }
?enp np:hasAssertion ?ea .
}
graph ?ea {
?event a tpff:3PFF-event .
}
}
group by ?role ?role_label
having(count(distinct ?event) > 0)
order by desc(?event_count)
Returns all 3PFF events with participant counts per role (Participants, Facilitators, Trainers, etc.).
Get 3PFF event participation stats
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix tpff: <https://w3id.org/fair/3pff/>
prefix schema: <http://schema.org/>
select ?event ?event_label (sample(?ev_name) as ?event_name) (sample(?ev_date) as ?event_date) (sum(if(?role = tpff:participatedAsParticipantIn, 1, 0)) as ?Participants) (sum(if(?role = tpff:participatedAsFacilitatorIn, 1, 0)) as ?Facilitators) (sum(if(?role = tpff:participatedAsTrainerIn, 1, 0)) as ?Trainers) (sum(if(?role = tpff:participatedAsFacilitatorAssistantIn, 1, 0)) as ?Facilitator_Assistants) (sum(if(?role = tpff:participatedAsTrainerAssistantIn, 1, 0)) as ?Trainer_Assistants) (sum(if(?role = tpff:participatedAsImplementerIn, 1, 0)) as ?Implementers) (sum(if(?role = tpff:participatedAsImplementerAspirantIn, 1, 0)) as ?Implementer_Aspirants) where {
{
select distinct ?event ?role ?user where {
values ?role {
tpff:participatedAsParticipantIn
tpff:participatedAsFacilitatorIn
tpff:participatedAsTrainerIn
tpff:participatedAsFacilitatorAssistantIn
tpff:participatedAsTrainerAssistantIn
tpff:participatedAsImplementerIn
tpff:participatedAsImplementerAspirantIn
}
graph npa:graph {
?np npx:hasNanopubType ?role .
?np npa:hasValidSignatureForPublicKeyHash ?pk .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pk . }
?np np:hasAssertion ?a .
}
graph ?a {
?user ?role ?event .
}
}
}
graph npa:graph {
?enp npx:introduces ?event .
?enp npa:hasValidSignatureForPublicKeyHash ?epk .
filter not exists { ?enpx npx:invalidates ?enp ; npa:hasValidSignatureForPublicKeyHash ?epk . }
?enp np:hasAssertion ?ea .
}
graph ?ea {
?event a tpff:3PFF-event .
?event rdfs:label ?ename .
optional { ?event dct:date ?dateDct . }
optional { ?event schema:startDate ?dateSchema . }
}
bind(replace(str(?event), "^.*/", "") as ?event_label)
bind(coalesce(?dateDct, strBefore(str(?dateSchema), "T")) as ?ev_date)
bind(replace(?ename, "^[^|]*\\| ?", "") as ?ev_name)
}
group by ?event ?event_label
order by desc(sample(?ev_date))
Returns all 3PFF qualifications issued to a given user, including qualification type, issuer, and validity period.
Get 3PFF qualifications for user
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix tpff: <https://w3id.org/fair/3pff/>
prefix schema: <https://schema.org/>
prefix dcat: <https://www.w3.org/ns/dcat#>
select ?qualification ?qualification_label ?issuer ?issuer_label ?startDate ?endDate ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType tpff:3PFF-Qualification .
?np npa:hasValidSignatureForPublicKeyHash ?pk .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pk . }
?np np:hasAssertion ?a .
}
graph ?a {
?np tpff:issued-to ?_user_iri .
?np npx:qualifies ?qualification .
optional { ?np schema:issuedBy ?issuer . }
optional { ?np dcat:startDate ?startDate . }
optional { ?np dcat:endDate ?endDate . }
}
bind(replace(str(?qualification), "^.*/", "") as ?qualification_label)
bind(if(?issuer = <https://ror.org/056j50v04>, "GO FAIR Foundation", replace(str(?issuer), "^.*/", "")) as ?issuer_label)
}
order by desc(?startDate)
Returns all 3PFF qualifications issued to a given user, including qualification type, issuer, and validity period.
Get 3PFF qualifications for user
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix tpff: <https://w3id.org/fair/3pff/>
prefix schema: <https://schema.org/>
prefix dcat: <https://www.w3.org/ns/dcat#>
select ?qualification ?qualification_label ?issuer ?startDate ?endDate ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType tpff:3PFF-Qualification .
?np npa:hasValidSignatureForPublicKeyHash ?pk .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pk . }
?np np:hasAssertion ?a .
}
graph ?a {
?np tpff:issued-to ?_user_iri .
?np npx:qualifies ?qualification .
optional { ?np schema:issuedBy ?issuer . }
optional { ?np dcat:startDate ?startDate . }
optional { ?np dcat:endDate ?endDate . }
}
bind(replace(str(?qualification), "^.*/", "") as ?qualification_label)
}
order by desc(?startDate)
This query returns all FDOs that have the given search string in their labels.
Find FDOs by label search
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix schema: <http://schema.org/>
prefix fdof: <https://w3id.org/fdof/ontology#>
select ?fdo ?profile ?np ?label ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
values ?type { fdof:FAIRDigitalObject npx:RoCrateNanopub }
?np npx:hasNanopubType ?type .
?np npx:introduces ?fdo .
?np np:hasAssertion ?assertion .
?np rdfs:label ?label .
filter(contains(lcase(?label), ?_query))
}
graph ?assertion { {
?fdo dct:conformsTo ?profile .
} union {
?metadata dct:conformsTo ?profile .
?metadata schema:about ?fdo .
} }
} order by desc(?date)
Returns all the spaces a given user belongs to, together with the role names the user has in each space.
Get Spaces and roles for user
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix schema: <http://schema.org/>
select ?space ?space_label (group_concat(distinct str(?role); separator=" ") as ?roles_multi_iri) (group_concat(distinct ?roleName; separator="\n") as ?roles_label_multi) where {
{
{
graph npa:graph {
?spaceRole_np npx:hasNanopubType gen:SpaceMemberRole .
?spaceRole_np npa:hasValidSignatureForPublicKeyHash ?spaceRole_pubkey .
filter not exists { ?spaceRole_npx npx:invalidates ?spaceRole_np ; npa:hasValidSignatureForPublicKeyHash ?spaceRole_pubkey . }
?spaceRole_np np:hasAssertion ?spaceRole_a .
}
graph ?spaceRole_a {
?space gen:hasRole ?role .
}
} union {
bind(<https://w3id.org/np/RA_eEJjQbxzSqYSwPzfjzOZi5sMPpUmHskFNsgJYSws8I/adminRole> as ?role)
}
}
graph ?role_a {
?role a gen:SpaceMemberRole .
?role rdfs:label ?roleLabel .
?role dct:title ?roleTitle .
?role schema:name ?roleName .
}
graph npa:graph {
?role_np npx:embeds ?role .
?role_np np:hasAssertion ?role_a .
}
{
{
graph ?role_a {
?role gen:hasRegularProperty ?reg .
}
graph ?link_a {
?_agent_iri ?reg ?space .
}
} union {
graph ?role_a {
?role gen:hasInverseProperty ?inv .
}
graph ?link_a {
?space ?inv ?_agent_iri .
}
}
}
graph npa:graph {
?link_np np:hasAssertion ?link_a .
?link_np npa:hasValidSignatureForPublicKeyHash ?link_pubkey .
filter not exists { ?link_npx npx:invalidates ?link_np ; npa:hasValidSignatureForPublicKeyHash ?link_pubkey . }
}
optional {
graph npa:graph {
?space_np npx:introduces ?space .
?space_np npa:hasValidSignatureForPublicKeyHash ?space_pubkey .
filter not exists { ?space_npx npx:invalidates ?space_np ; npa:hasValidSignatureForPublicKeyHash ?space_pubkey . }
?space_np rdfs:label ?space_label .
}
}
}
group by ?space ?space_label
order by ?space_label
Returns the properties of an introduced presentation or poster, with human-readable labels for recognized predicates. Known properties are shown first.
Get presentation details
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix wd: <http://www.wikidata.org/entity/>
prefix schema: <https://schema.org/>
select ?property ?property_label ?value ?value_label where {
bind(?_resourceNp_iri as ?np)
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np np:hasAssertion ?a .
?np npx:introduces ?_resource_iri .
}
graph ?a {
?_resource_iri ?pred ?value .
optional { ?value rdfs:label ?value_label_raw . }
}
bind(?pred as ?property)
bind(
if(?pred = rdf:type && ?value = wd:Q604733, "Presentation",
if(?pred = rdf:type && ?value = <https://w3id.org/kpxl/gen/terms/PosterPresentation>, "Poster presentation",
?value_label_raw)) as ?value_label)
bind(
if(?pred = rdf:type, "Type",
if(?pred = rdfs:label, "Title",
if(?pred = dct:date, "Date",
if(?pred = wd:P823, "Speaker",
if(?pred = dct:creator, "Author",
if(?pred = dct:isPartOf, "Part of",
if(?pred = dct:description, "Description",
if(?pred = rdfs:seeAlso, "Link",
if(?pred = schema:about, "Topic",
str(?pred)))))))))) as ?property_label)
bind(
if(?pred = rdf:type, 0,
if(?pred = rdfs:label, 1,
if(?pred = dct:date, 2,
if(?pred = wd:P823, 3,
if(?pred = dct:creator, 4,
if(?pred = dct:isPartOf, 5,
if(?pred = dct:description, 6,
if(?pred = rdfs:seeAlso, 7,
if(?pred = schema:about, 8,
99))))))))) as ?sort)
} order by ?sort
Returns all poster presentations for a given event, with title, date, authors, and nanopub link.
Get poster presentations for event
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?poster ?poster_label ?date
(group_concat(str(?author); separator=" ") as ?authors_multi_iri)
(group_concat(replace(replace(?authorname, "\\\\", "\\\\\\\\"), "\\n", "\\\\n"); separator="\n") as ?authors_label_multi)
?np ("^" as ?np_label)
where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np dct:created ?npdate .
?np np:hasAssertion ?a .
?np npx:introduces ?poster .
}
values ?_event_multi_iri {}
graph ?a {
?poster a gen:PosterPresentation .
?poster dct:isPartOf ?_event_multi_iri .
?poster dct:creator ?author .
optional { ?author rdfs:label ?authorname . }
optional { ?poster rdfs:label ?poster_label . }
optional { ?poster dct:date ?date . }
}
}
group by ?poster ?poster_label ?date ?np
order by desc(?date)
This query returns plain-text messages about the given resource, including messages about things that are declared to be part of it (recursively up to 2 levels) or whose URI starts with the resource URI.
Get messages about resource and its parts
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix schema: <https://schema.org/>
select ?about ?text (group_concat(concat('<span><a href="', str(?link), '">link</a></span>'); separator=", ") as ?link) ?user ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np dct:creator ?user .
?np np:hasAssertion ?a .
}
graph ?a {
?a rdfs:label ?text .
?a schema:about ?about .
values ?_resource_multi_iri {}
filter(
strstarts(str(?about), str(?_resource_multi_iri))
|| exists {
graph npa:graph {
?np2 npa:hasValidSignatureForPublicKeyHash ?pubkey2 .
filter not exists { ?npx2 npx:invalidates ?np2 ; npa:hasValidSignatureForPublicKeyHash ?pubkey2 . }
?np2 np:hasAssertion ?a2 .
}
graph ?a2 {
{ ?about dct:isPartOf ?_resource_multi_iri . }
union
{ ?_resource_multi_iri dct:hasPart ?about . }
}
}
|| exists {
graph npa:graph {
?np3 npa:hasValidSignatureForPublicKeyHash ?pubkey3 .
filter not exists { ?npx3 npx:invalidates ?np3 ; npa:hasValidSignatureForPublicKeyHash ?pubkey3 . }
?np3 np:hasAssertion ?a3 .
}
graph ?a3 {
?about dct:isPartOf ?mid .
}
filter(
strstarts(str(?mid), str(?_resource_multi_iri))
|| exists {
graph npa:graph {
?np4 npa:hasValidSignatureForPublicKeyHash ?pubkey4 .
filter not exists { ?npx4 npx:invalidates ?np4 ; npa:hasValidSignatureForPublicKeyHash ?pubkey4 . }
?np4 np:hasAssertion ?a4 .
}
graph ?a4 {
{ ?mid dct:isPartOf ?_resource_multi_iri . }
union
{ ?_resource_multi_iri dct:hasPart ?mid . }
}
}
)
}
)
optional { ?a rdfs:seeAlso ?link . }
}
}
group by ?about ?text ?user ?date ?np
order by desc(?date)
This query returns all publications with their authors, returning author IDs concatenated by spaces and author names concatenated by newlines (with backslashes and newlines escaped).
Get all publications
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix fabio: <http://purl.org/spar/fabio/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?paper ?paper_label ?journal ?journal_label ?publication_date
(group_concat(str(?author_id); separator=" ") as ?authors_multi_iri)
(group_concat(replace(replace(?author_name, "\\\\", "\\\\\\\\"), "\\n", "\\\\n"); separator="\n") as ?authors_label_multi)
?np ("^" as ?np_label)
where {
graph npa:graph {
?np npx:hasNanopubType fabio:ScholarlyWork .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np np:hasAssertion ?a .
?np npx:introduces ?paper .
}
graph ?a {
?paper dct:title ?paper_label .
?paper bibo:authorList ?author_list .
optional { ?paper dct:date ?publication_date . }
?author_list ?rdfseqpred ?author_id .
filter(strstarts(str(?rdfseqpred), "http://www.w3.org/1999/02/22-rdf-syntax-ns#_"))
optional { ?author_id foaf:name ?author_name_raw . }
bind(coalesce(?author_name_raw, "") as ?author_name)
optional {
?paper dct:isPartOf ?journal .
?journal dct:title ?journal_label .
}
}
}
group by ?paper ?paper_label ?journal ?journal_label ?publication_date ?np
order by desc(?publication_date)
Returns all recent, ongoing, and upcoming events that are defined as Spaces.
Get recent and upcoming events
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix schema: <http://schema.org/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
select ?event ?event_label ?status ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np npx:introduces ?event .
?np np:hasAssertion ?a .
?np dct:created ?npDate .
filter not exists {
?np2 npx:introduces ?event .
?np2 npa:hasValidSignatureForPublicKeyHash ?pubkey2 .
filter not exists { ?npx2 npx:invalidates ?np2 ; npa:hasValidSignatureForPublicKeyHash ?pubkey2 . }
?np2 dct:created ?npDate2 .
filter(?npDate2 > ?npDate)
}
}
graph ?a {
?event a gen:Space .
?event a gen:Event .
?event rdfs:label ?event_label .
?event schema:startDate ?datetime .
optional { ?event schema:endDate ?endDatetime . }
}
bind(xsd:date(substr(str(?datetime), 0, 11)) as ?date)
bind(xsd:date(substr(str(now()), 0, 11)) as ?today)
optional { bind(xsd:date(substr(str(?endDatetime), 0, 11)) as ?endDate) }
bind(if(bound(?endDate), ?endDate, ?date) as ?effectiveEnd)
filter(?date >= ?today || ?effectiveEnd >= ?today - "P7D"^^xsd:duration)
bind(if(?effectiveEnd < ?today, 1, if(?date > ?today, 3, 2)) as ?statusOrder)
bind(if(?date > ?today, "upcoming", if(?effectiveEnd >= ?today, "ongoing", "recently concluded")) as ?status)
} order by ?statusOrder ?date
Returns all upcoming events that are defined as Spaces, ordered by start date.
Get upcoming events
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix schema: <http://schema.org/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
select ?event ?event_label ?date ?description ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np npx:introduces ?event .
?np np:hasAssertion ?a .
}
graph ?a {
?event a gen:Space .
?event a gen:Event .
?event rdfs:label ?event_label .
?event schema:startDate ?datetime .
optional { ?event dct:description ?description . }
}
bind(xsd:date(substr(str(?datetime), 0, 11)) as ?date)
filter(?date >= xsd:date(substr(str(now()), 0, 11)))
} order by ?date
Returns all resource view declarations that do not have a gen:appliesToInstancesOf relation.
Get resource views without appliesToInstancesOf
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select ?view ?view_label ?type ?query ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?pi .
}
graph ?pi {
?np nt:wasCreatedFromTemplate <https://w3id.org/np/RARLsTlqbTesu1b0WJZ-zL1z96xumOiqbK3l_vV6iZoww> .
}
graph ?a {
?view a gen:ResourceView .
optional {
?view a ?type .
filter(?type != gen:ResourceView)
}
optional { ?view rdfs:label ?view_label . }
optional { ?view gen:hasViewQuery ?query . }
filter not exists { ?view gen:appliesToInstancesOf ?class . }
}
} order by desc(?date)
This query finds views by a text query for auto-complete lookup.
Find views
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select distinct ?thing ?label ?description ?np ?pubkey ?date where {
graph npa:graph {
?np npx:hasNanopubType gen:ResourceView .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:embeds ?thing .
?np rdfs:label ?label .
optional { ?np dct:description ?description . }
bind(concat(?label, " ", coalesce(?description, "")) as ?text)
filter(contains(lcase(?label), lcase(?_query)))
?np np:hasAssertion ?a .
}
graph ?a {
?thing gen:appliesToInstancesOf ?__appliedViewClass_iri .
}
}
limit 10
Returns the cumulative number of human users (with ORCID) who have published an introduction nanopub, per week (Mon-Sun).
Get cumulative user count by week
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?week (substr(str(min(?fd1)), 0, 11) as ?firstday) (count(distinct ?u2) as ?totalusers) where {
{
select ?u1 ?fd1 ?w1 where {
{
select ?u1 (min(?d1) as ?fd1) where {
graph npa:graph {
?np1 npa:hasValidSignatureForPublicKey ?pk1 .
?np1 dct:creator ?u1 .
?np1 dct:created ?d1 .
?np1 np:hasAssertion ?a1 .
}
graph ?a1 {
?decl1 npx:declaredBy ?agent1 .
}
filter(strstarts(str(?u1), "https://orcid.org/"))
filter(?u1 != <https://orcid.org/0000-0000-0000-0000>)
filter(?u1 != <https://orcid.org/1234-1234-1234-1234>)
}
group by ?u1
}
bind(if(month(?fd1) <= 2, year(?fd1) - 1, year(?fd1)) as ?y1)
bind(if(month(?fd1) <= 2, month(?fd1) + 9, month(?fd1) - 3) as ?m1)
bind(365*?y1 + xsd:integer(?y1/4) - xsd:integer(?y1/100) + xsd:integer(?y1/400) + xsd:integer((153*?m1 + 2)/5) + day(?fd1) as ?dn1)
bind(?dn1 + 1 - xsd:integer((?dn1 + 1) / 7) * 7 as ?dw1)
bind(xsd:integer((?dn1 - ?dw1) / 7) as ?w1)
}
}
{
select ?u2 ?w2 where {
{
select ?u2 (min(?d2) as ?fd2) where {
graph npa:graph {
?np2 npa:hasValidSignatureForPublicKey ?pk2 .
?np2 dct:creator ?u2 .
?np2 dct:created ?d2 .
?np2 np:hasAssertion ?a2 .
}
graph ?a2 {
?decl2 npx:declaredBy ?agent2 .
}
filter(strstarts(str(?u2), "https://orcid.org/"))
filter(?u2 != <https://orcid.org/0000-0000-0000-0000>)
filter(?u2 != <https://orcid.org/1234-1234-1234-1234>)
}
group by ?u2
}
bind(if(month(?fd2) <= 2, year(?fd2) - 1, year(?fd2)) as ?y2)
bind(if(month(?fd2) <= 2, month(?fd2) + 9, month(?fd2) - 3) as ?m2)
bind(365*?y2 + xsd:integer(?y2/4) - xsd:integer(?y2/100) + xsd:integer(?y2/400) + xsd:integer((153*?m2 + 2)/5) + day(?fd2) as ?dn2)
bind(?dn2 + 1 - xsd:integer((?dn2 + 1) / 7) * 7 as ?dw2)
bind(xsd:integer((?dn2 - ?dw2) / 7) as ?w2)
}
}
bind(?w1 as ?week)
filter(?w2 <= ?week)
}
group by ?week
order by desc(?week)
Returns the number of human users who published their first introduction nanopub per week (Mon-Sun).
Get weekly new user count
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?week (substr(str(min(?firstdate)), 0, 11) as ?firstday) (count(distinct ?userid) as ?newusercount) where {
{
select ?userid (min(?date) as ?firstdate) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np npx:signedBy ?userid .
?np npx:hasNanopubType npx:declaredBy .
?np dct:created ?date .
}
filter(strstarts(str(?userid), "https://orcid.org/"))
filter(?userid != <https://orcid.org/0000-0000-0000-0000>)
filter(?userid != <https://orcid.org/1234-1234-1234-1234>)
}
group by ?userid
}
bind(if(month(?firstdate) <= 2, year(?firstdate) - 1, year(?firstdate)) as ?y)
bind(if(month(?firstdate) <= 2, month(?firstdate) + 9, month(?firstdate) - 3) as ?m)
bind(365*?y + xsd:integer(?y/4) - xsd:integer(?y/100) + xsd:integer(?y/400) + xsd:integer((153*?m + 2)/5) + day(?firstdate) as ?daynum)
bind(?daynum + 1 - xsd:integer((?daynum + 1) / 7) * 7 as ?dow)
bind(xsd:integer((?daynum - ?dow) / 7) as ?week)
}
group by ?week
order by desc(?week)
Returns the number of active human users (with ORCID) per week (Mon-Sun).
Get weekly active human user count
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?week (substr(str(min(?date)), 0, 11) as ?firstday) (count(distinct ?userid) as ?usercount) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np npx:signedBy ?userid .
?np dct:created ?date .
}
filter(strstarts(str(?userid), "https://orcid.org/"))
filter(?userid != <https://orcid.org/0000-0000-0000-0000>)
filter(?userid != <https://orcid.org/1234-1234-1234-1234>)
bind(if(month(?date) <= 2, year(?date) - 1, year(?date)) as ?y)
bind(if(month(?date) <= 2, month(?date) + 9, month(?date) - 3) as ?m)
bind(365*?y + xsd:integer(?y/4) - xsd:integer(?y/100) + xsd:integer(?y/400) + xsd:integer((153*?m + 2)/5) + day(?date) as ?daynum)
bind(?daynum + 1 - xsd:integer((?daynum + 1) / 7) * 7 as ?dow)
bind(xsd:integer((?daynum - ?dow) / 7) as ?week)
}
group by ?week
order by desc(?week)
Returns the number of active users per week (Mon-Sun).
Get weekly active user count
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?week (substr(str(min(?date)), 0, 11) as ?firstday) (count(distinct ?userid) as ?usercount) where {
{ graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:creator ?userid .
?np dct:created ?date .
} }
union
{
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasAssertion ?assertion .
?np np:hasProvenance ?prov .
?np dct:created ?date .
?np dct:creator ?tool .
values ?tool { <https://fip-wizard.ds-wizard.org/wizard> }
}
graph ?prov {
?assertion prov:wasAttributedTo ?userid .
}
}
filter not exists {
graph npa:graph { ?np npa:hasSubIri ?userid . }
}
bind(if(month(?date) <= 2, year(?date) - 1, year(?date)) as ?y)
bind(if(month(?date) <= 2, month(?date) + 9, month(?date) - 3) as ?m)
bind(365*?y + xsd:integer(?y/4) - xsd:integer(?y/100) + xsd:integer(?y/400) + xsd:integer((153*?m + 2)/5) + day(?date) as ?daynum)
bind(?daynum + 1 - xsd:integer((?daynum + 1) / 7) * 7 as ?dow)
bind(xsd:integer((?daynum - ?dow) / 7) as ?week)
}
group by ?week
order by desc(?week)
This query returns the number of active users, separated by whether they are an ORCID or not, for the given time period (start and end date).
Get active user counts in time period
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select (count(distinct ?userid) as ?userCount) ?isOrcid where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np npx:signedBy ?userid .
?np dct:created ?date .
}
filter not exists {
graph npa:graph { ?np npa:hasSubIri ?userid . }
}
bind(substr(str(?date), 1, 10) as ?dateStr)
filter(?dateStr >= ?_startDate)
filter(?dateStr <= ?_endDate)
bind(strstarts(str(?userid), "https://orcid.org/") as ?isOrcid)
}
group by ?isOrcid
order by ?isOrcid
This query returns all the spaces where the given user has the team member role.
Get team member spaces for user
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select distinct ?space ?space_label ?np ("^" as ?np_label) where {
graph npa:graph {
?np np:hasAssertion ?a .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
}
graph ?a {
?space gen:hasTeamMember ?_user_iri .
}
graph npa:graph {
?space_np npx:introduces ?space .
?space_np npa:hasValidSignatureForPublicKeyHash ?space_pubkey .
filter not exists { ?space_npx npx:invalidates ?space_np ; npa:hasValidSignatureForPublicKeyHash ?space_pubkey . }
?space_np np:hasAssertion ?space_a .
}
graph ?space_a {
?space rdfs:label ?space_label .
}
}
order by ?space_label
Returns all presentations of the given event, with label, date, event, and nanopub link.
Get presentations for event
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix wd: <http://www.wikidata.org/entity/>
select ?presentation ?presentation_label ?date ?speaker ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np dct:created ?npdate .
?np np:hasAssertion ?a .
?np npx:introduces ?presentation .
}
values ?_event_multi_iri {}
graph ?a {
?presentation a wd:Q604733 .
?presentation dct:isPartOf ?_event_multi_iri .
?presentation wd:P823 ?speaker .
optional { ?presentation rdfs:label ?presentation_label . }
optional { ?presentation dct:date ?date . }
}
} order by desc(?date)
Get nanopubs mentioning relevant entities
Get nanopubs mentioning relevant entities
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select distinct ?np ?label ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
optional { ?np rdfs:label ?label . }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
?np np:hasAssertion ?a .
}
graph ?a {
?subj ?pred ?resource .
}
values ?_entity_multi_iri {}
graph ?relevantA {
?resource gen:isRelevantFor ?_entity_multi_iri .
optional { ?resource rdfs:label ?resource_label . }
}
graph npa:graph {
?relevantNp npx:hasNanopubType gen:isRelevantFor .
?relevantNp npa:hasValidSignatureForPublicKeyHash ?relevantPubkey .
filter not exists { ?relevantNpx npx:invalidates ?relevantNp ; npa:hasValidSignatureForPublicKeyHash ?relevantPubkey . }
}
} order by desc(?date) limit 100
Returns all presentations by a given speaker, with label, date, event, and nanopub link.
Get presentations by speaker
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix wd: <http://www.wikidata.org/entity/>
select ?presentation ?presentation_label ?date ?event ?event_label ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np dct:created ?npdate .
?np np:hasAssertion ?a .
?np npx:introduces ?presentation .
}
graph ?a {
?presentation a wd:Q604733 .
?presentation wd:P823 ?_speaker_iri .
optional { ?presentation rdfs:label ?presentation_label . }
optional { ?presentation dct:date ?date . }
optional {
?presentation dct:isPartOf ?event .
optional { ?event rdfs:label ?event_label . }
}
}
} order by desc(?date)
Returns all I-ADOPT variables with their label, entity of interest, creator, and date.
Get all I-ADOPT variables
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix iadopt: <https://w3id.org/iadopt/ont/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
select ?variable ?variable_label ?entity ?entity_label ?creator ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType iadopt:Variable .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?variable .
?np npx:signedBy ?creator .
}
graph ?a {
?variable a iadopt:Variable .
optional { ?variable rdfs:label ?variable_label . }
optional {
?variable iadopt:hasObjectOfInterest ?entity .
optional { ?entity rdfs:label ?entity_label . }
}
}
}
order by desc(?date)
Returns all resource view declarations with their basic structure: view ID, kind, type, label, query, template count, first template, and date.
Get all resource views
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select ?view ?view_label ?viewKind ?type ?query (count(distinct ?actionTemplate) as ?template_count) (min(?actionTemplate) as ?first_template) (min(?actionLabel) as ?first_template_label) ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?pi .
}
graph ?pi {
?np nt:wasCreatedFromTemplate <https://w3id.org/np/RARLsTlqbTesu1b0WJZ-zL1z96xumOiqbK3l_vV6iZoww> .
}
graph ?a {
?view a gen:ResourceView .
optional {
?view a ?type .
filter(?type != gen:ResourceView)
}
optional { ?view rdfs:label ?view_label . }
optional { ?view dct:isVersionOf ?viewKind . }
optional { ?view gen:hasViewQuery ?query . }
optional {
?view gen:hasViewAction ?action .
?action gen:hasActionTemplate ?actionTemplate .
optional { ?action rdfs:label ?actionLabel . }
}
}
} group by ?view ?view_label ?viewKind ?type ?query ?date ?np
order by desc(?date)
This query returns the future events the given user plans to attend.
Get future planned event attendances
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix schema: <http://schema.org/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
select distinct ?event ?event_label ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType gen:plansToAttend .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np npx:signedBy ?_user_iri .
?np np:hasAssertion ?a .
}
graph ?a {
?_user_iri gen:plansToAttend ?event .
optional { ?event rdfs:label ?event_label }
optional { ?event dct:date ?date1 }
}
optional {
bind(iri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(gen:Space)))) as ?space_repo)
service ?space_repo {
graph npa:graph {
?nps npx:introduces ?event .
?nps npa:hasValidSignatureForPublicKeyHash ?pks .
filter not exists { ?npsx npx:invalidates ?nps ; npa:hasValidSignatureForPublicKeyHash ?pks . }
?nps np:hasAssertion ?as .
}
graph ?as {
?event schema:startDate ?datetime .
bind(xsd:date(substr(str(?datetime), 0, 11)) as ?date2)
}
}
}
bind(coalesce(?date1, ?date2) as ?date)
filter(?date >= xsd:date(substr(str(now()), 0, 11)))
} order by ?date
This query returns the latest nanopublications by user ID.
Get latest nanopubs by user
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select distinct ?np ?label ?date where {
graph npa:graph {
?np npx:signedBy ?_user_iri .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
optional { ?np rdfs:label ?label . }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
}
} order by desc(?date) limit 100
This is just to test SPARQL Contruct queries.
Testing SPARQL Construct queries...
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
construct {
?np rdfs:label ?label .
} where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np rdfs:label ?label .
}
} limit 10
This query returns the posts by the given user.
Get posts by given user
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix schema: <https://schema.org/>
select ?title ?about ?text ?date ?url ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType schema:SocialMediaPosting .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np npx:introduces ?post .
?np np:hasAssertion ?a .
}
graph ?a {
?post schema:headline ?title .
?post schema:articleBody ?text .
?post schema:datePublished ?date .
?post schema:author ?_author_iri .
optional { ?post schema:url ?url . }
optional { ?post rdfs:seeAlso ?about . }
}
}
order by desc(?date)
This query returns RO-Crate nanopubs.
Get RO-Crate nanopubs
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select distinct ?rocrate ?date (?__agent_iri as ?agent) ?np (?__pubkeyhash as ?pubkey) where {
graph npa:graph {
?np npx:hasNanopubType npx:RoCrateNanopub .
?np npa:hasValidSignatureForPublicKeyHash ?__pubkeyhash .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?__pubkeyhash . }
?np dct:created ?date .
?np npx:introduces ?rocrate .
?np npx:signedBy ?__agent_iri .
}
}
order by desc(?date)
This query returns all paragraphs that are part of a given version of an ontology.
Get the paragraphs of an ontology version
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix schema: <https://schema.org/>
select distinct ?title ?content ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?_ontologyVersionNp_iri npx:introduces ?ontologyVersion .
?_ontologyVersionNp_iri np:hasAssertion ?ontologyVersionNpA .
}
graph ?ontologyVersionNpA {
?ontologyVersion a owl:Ontology .
?ontologyVersion gen:hasContentIndex ?contentIndex .
}
graph npa:graph {
?contentIndex np:hasAssertion ?contentIndexA .
}
graph ?contentIndexA {
?contentIndex npx:includesElement ?itemNp .
}
graph npa:graph {
?itemNp dct:created ?date .
?itemNp npx:introduces ?paragraph .
?itemNp np:hasAssertion ?itemNpA .
}
graph ?itemNpA {
?paragraph schema:title ?title .
?paragraph a gen:Paragraph .
?paragraph gen:hasContent ?content .
}
}
order by ?title
This query returns all named individuals that are part of a given version of an ontology.
Get the individuals of an ontology version
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select distinct ?individual ?individual_label (?definition as ?description) (?termNp as ?np) ("^" as ?np_label) where {
graph npa:graph {
?_ontologyVersionNp_iri npx:introduces ?ontologyVersion .
?_ontologyVersionNp_iri np:hasAssertion ?ontologyVersionNpA .
}
graph ?ontologyVersionNpA {
?ontologyVersion a owl:Ontology .
?ontologyVersion gen:hasContentIndex ?contentIndex .
}
graph npa:graph {
?contentIndex np:hasAssertion ?contentIndexA .
}
graph ?contentIndexA {
?contentIndex npx:includesElement ?termNp .
}
graph npa:graph {
}
graph npa:graph {
?termNp dct:created ?date .
?termNp npx:introduces ?individual .
?termNp np:hasAssertion ?termNpA .
}
graph ?termNpA {
?individual a owl:NamedIndividual .
optional { ?individual rdfs:label ?individual_label . }
optional { ?individual skos:definition ?definition . }
}
}
order by ?individual_label
This query returns all properties that are part of a given version of an ontology.
Get the properties of an ontology version
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select distinct ?property ?property_label (?definition as ?description) (?termNp as ?np) ("^" as ?np_label)where {
graph npa:graph {
?_ontologyVersionNp_iri npx:introduces ?ontologyVersion .
?_ontologyVersionNp_iri np:hasAssertion ?ontologyVersionNpA .
}
graph ?ontologyVersionNpA {
?ontologyVersion a owl:Ontology .
?ontologyVersion gen:hasContentIndex ?contentIndex .
}
graph npa:graph {
?contentIndex np:hasAssertion ?contentIndexA .
}
graph ?contentIndexA {
?contentIndex npx:includesElement ?termNp .
}
graph npa:graph {
}
graph npa:graph {
?termNp dct:created ?date .
?termNp npx:introduces ?property .
?termNp np:hasAssertion ?termNpA .
}
graph ?termNpA {
?property a rdf:Property .
optional { ?property rdfs:label ?property_label . }
optional { ?property skos:definition ?definition . }
}
}
order by ?property_label
This query returns all classes that are part of a given version of an ontology.
Get the classes of an ontology version
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select distinct ?class ?class_label (?definition as ?description) (?termNp as ?np) ("^" as ?np_label) where {
graph npa:graph {
?_ontologyVersionNp_iri npx:introduces ?ontologyVersion .
?_ontologyVersionNp_iri np:hasAssertion ?ontologyVersionNpA .
}
graph ?ontologyVersionNpA {
?ontologyVersion a owl:Ontology .
?ontologyVersion gen:hasContentIndex ?contentIndex .
}
graph npa:graph {
?contentIndex np:hasAssertion ?contentIndexA .
}
graph ?contentIndexA {
?contentIndex npx:includesElement ?termNp .
}
graph npa:graph {
}
graph npa:graph {
?termNp dct:created ?date .
?termNp npx:introduces ?class .
?termNp np:hasAssertion ?termNpA .
}
graph ?termNpA {
?class a owl:Class .
optional { ?class rdfs:label ?class_label . }
optional { ?class skos:definition ?definition . }
}
}
order by ?class_label
This query returns the ontology versions for a given ontology.
Get ontology versions
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?ontologyVersion ?ontologyVersion_label ?creator ?np ("^" as ?np_label) where {
values ?_ontology_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType owl:Ontology .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?ontologyVersion .
?np npx:signedBy ?creator .
}
graph ?a {
?ontologyVersion rdfs:label ?ontologyVersion_label .
?ontologyVersion dct:isVersionOf ?_ontology_multi_iri .
?ontologyVersion gen:hasContentIndex ?contentIndex .
}
}
order by desc(?ontologyVersion)
This query returns all definition nanopublications that define the elements of a given OWL ontology, like classes and properties, including those that match the namespace and including paragraphs describing the ontology.
Get the definitions of an ontology including namespace and descriptions
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
prefix schema: <https://schema.org/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select distinct ?np ("^" as ?np_label) ?item ?item_label ?creator ?date where {
values ?_ontology_multi_iri {}
graph npa:graph {
values ?itemType { owl:Class rdf:Property owl:ObjectProperty owl:DatatypeProperty owl:NamedIndividual gen:Paragraph }
?np npx:hasNanopubType ?itemType .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?item .
optional { ?np npx:signedBy ?creator . }
?np np:hasAssertion ?a .
}
graph ?a {
{{
?item a ?itemType .
filter(strstarts(str(?item), ?__ontologyNamespace))
} union {
?item a ?itemType .
?item dct:partOf|schema:isPartOf ?_ontology_multi_iri .
}}
optional { ?item rdfs:label|schema:title ?item_label . }
}
}
order by ?label
This query returns the events the given user plans to attend.
Get planned event attendances
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix schema: <http://schema.org/>
select distinct ?event ?event_label ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType gen:plansToAttend .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np npx:signedBy ?_user_iri .
?np np:hasAssertion ?a .
}
graph ?a {
?_user_iri gen:plansToAttend ?event .
optional { ?event rdfs:label ?event_label }
optional { ?event dct:date ?date1 }
}
optional {
bind(iri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(gen:Space)))) as ?space_repo)
service ?space_repo {
graph npa:graph {
?nps npx:introduces ?event .
?nps npa:hasValidSignatureForPublicKeyHash ?pks .
filter not exists { ?npsx npx:invalidates ?nps ; npa:hasValidSignatureForPublicKeyHash ?pks . }
?nps np:hasAssertion ?as .
}
graph ?as {
?event schema:startDate ?datetime .
bind(xsd:date(substr(str(?datetime), 0, 11)) as ?date2)
}
}
}
bind(coalesce(?date1, ?date2) as ?date)
} order by desc(?date)
Get FAIR-Enabling Resources by type.
Get FERs by type (with community count)
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?np ?thing ?description ?label ?date ?types ?qualifier (group_concat(distinct ?community; separator=" ") as ?communities) (count(distinct ?community) as ?community_count) where {
{ select ?latest_curators_assertion where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
} }
{ select ?np ?thing ?label ?description ?date (group_concat(distinct ?type; separator=" ") as ?types) where {
graph npa:graph {
?np rdfs:label ?label ;
dct:description ?description ;
npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date .
?np npx:introduces|npx:describes ?thing .
filter(str(?date) > "2022")
filter exists { ?np npx:hasNanopubType ?fsr_type . values ?fsr_type { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource } }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np npx:hasNanopubType ?_type_iri .
?np npx:hasNanopubType ?type .
values ?type {
fip:Authentication-and-authorization-service
fip:Editor
fip:FAIR-Representation-Service
fip:FAIR-Supporting-Software
fip:Identifier-service
fip:Provenance-Tracking-Service
fip:Registry
fip:Validation-Service
fip:Web-API
fip:Communication-protocol
fip:Crosswalk
fip:FAIR-Implementation-Profile
fip:Knowledge-representation-language
fip:Metadata-schema
fip:Metadata-data-linking-schema
fip:Provenance-model
fip:Semantic-model
fip:Structured-vocabulary
fip:FAIR-Data-Policy
fip:Data-usage-license
fip:Metadata-preservation-policy
fip:Persistency-Policy
fip:FAIR-Practice
}
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
filter not exists {
graph ?da {
?disapprover npx:disapprovesOf ?np .
}
graph npa:graph {
?disapproval_np np:hasAssertion ?da ;
npa:hasValidSignatureForPublicKey ?dpubkey .
filter not exists { ?disapproval_npx npx:invalidates ?disapproval_np ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?dpubkey .
}
}
} group by ?np ?thing ?label ?description ?date }
optional {
graph ?qa {
?qualifier npx:qualifies ?np .
}
graph npa:graph {
?qualification_np np:hasAssertion ?qa ;
npa:hasValidSignatureForPublicKey ?qpubkey .
filter not exists { ?qualification_npx npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
}
optional {
graph npa:graph {
?decl_np npx:hasNanopubType fip:FIP-Declaration .
?decl_np np:hasAssertion ?decl_a ;
npa:hasValidSignatureForPublicKey ?decl_pubkey .
filter not exists { ?decl_npx npx:invalidates ?decl_np ; npa:hasValidSignatureForPublicKey ?decl_pubkey . }
}
graph ?decl_a {
?decl a fip:FIP-Declaration .
# ----
# not really needed but seems to make query faster:
values ?use { fip:declares-current-use-of fip:declares-planned-use-of fip:declares-planned-development-of fip:declares-planned-replacement-of }
?decl ?use ?thing .
# ----
?decl fip:declared-by ?community .
}
}
} group by ?np ?thing ?description ?label ?date ?types ?qualifier order by desc(?community_count)
This Construct query returns the definition of an I-Adopt variable, corresponding to the assertion of its defining nanopublication.
Get I-Adopt variable definition
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix iadopt: <https://w3id.org/iadopt/ont/>
construct {
?subj ?pred ?obj .
} where {
graph npa:graph {
?np npx:introduces ?_variable_iri .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
filter not exists {
?np2 npx:introduces ?_variable_iri .
?np2 npa:hasValidSignatureForPublicKeyHash ?pubkey2 .
filter not exists { ?np2x npx:invalidates ?np2 ; npa:hasValidSignatureForPublicKeyHash ?pubkey2 . }
?np2 dct:created ?date2 .
filter(?date2 > ?date)
}
}
graph npa:graph {
?np np:hasAssertion ?a .
}
graph ?a {
?subj ?pred ?obj .
}
}
order by ?subj ?pred ?obj
This query returns the co-authors of a given author.
Get co-authors
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix fabio: <http://purl.org/spar/fabio/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?coauthor ?coauthor_label (count(distinct ?paper) as ?paper_count) where {
values ?_author_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType fabio:ScholarlyWork .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?paper .
}
graph ?a {
?paper dct:title ?paper_label .
?paper bibo:authorList ?author_list .
?paper dct:date ?publication_date .
?author_list ?rdfseqpred1 ?_author_multi_iri .
filter(strstarts(str(?rdfseqpred1), "http://www.w3.org/1999/02/22-rdf-syntax-ns#_"))
?author_list ?rdfseqpred2 ?coauthor_id .
filter(strstarts(str(?rdfseqpred2), "http://www.w3.org/1999/02/22-rdf-syntax-ns#_"))
?coauthor_id foaf:name ?coauthor_label .
bind(if(strstarts(str(?coauthor_id), "https://orcid.org/"), ?coauthor_id, ?coauthor_label) as ?coauthor)
filter(?coauthor_id != ?_author_multi_iri)
optional {
?paper dct:isPartOf ?journal .
?journal dct:title ?journal_label .
}
}
}
group by ?coauthor ?coauthor_label
order by desc(?paper_count)
This query allows for searching for resources (FERs etc.) together with the info about whether GO FAIR qualified them.
Find GO FAIR qualified things (with unchecked recommenders)
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
select distinct ?thing ?label ?description ?np ?date ?pubkey ?retraction ?newversion ?qualifier ?qualification_np (group_concat(distinct ?recommender; separator=" ") as ?recommenders) (group_concat(distinct ?recommendation_np; separator=" ") as ?recommendation_nps) (count(distinct ?recommender) as ?recommender_count) (sample(?fairAssessmentLevel) as ?fairAssessmentLevel) (sample(?fairAssessmentLevelNp) as ?fairAssessmentLevelNp) where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
graph npa:graph {
?np npx:hasNanopubType ?__type_iri .
?np npa:hasValidSignatureForPublicKey ?pubkey .
optional { ?retraction npx:retracts ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
optional { ?newversion npx:supersedes ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np (npx:introduces|npx:describes) ?thing .
?np rdfs:label ?label .
?np dct:description ?description .
?np dct:created ?date .
filter(str(?date) > "2022")
}
bind(concat(" ",lcase(str(?label))," ",lcase(str(?description))," ") as ?text)
filter( contains(?text, lcase(str(?_searchterm))) )
optional {
graph npa:graph {
?disapproval npa:hasValidSignatureForPublicKey ?dpubkey .
}
graph ?latest_curators_assertion {
?dpubkeys npx:hasPublicKey ?dpubkey .
}
graph npa:graph {
filter not exists { ?disapproval_x npx:invalidates ?disapproval ; npa:hasValidSignatureForPublicKey ?dpubkey . }
?disapproval np:hasAssertion ?da .
}
graph ?da {
?dsomebody ( npx:disapproves-of | npx:disapprovesOf ) ?np .
}
} filter(!bound(?disapproval)) # Faster than "filter not exists" for some reason
optional {
graph npa:graph {
?recommendation_np npx:hasNanopubType fip:recommended-by .
?recommendation_np npa:hasValidSignatureForPublicKey ?rpubkey .
filter not exists { ?recommendation_np_x npx:invalidates ?recommendation_np ; npa:hasValidSignatureForPublicKey ?rpubkey . }
?recommendation_np np:hasAssertion ?ra .
?recommendation_np np:hasProvenance ?rp .
}
graph ?ra {
?thing fip:recommended-by ?recommender .
}
#graph ?rp {
# ?ra prov:wasDerivedFrom ?rfip_np .
#}
#graph npa:graph {
# ?rfip_np npx:hasNanopubType fip:Reference-FAIR-Implementation-Profile .
# ?rfip_np npa:hasValidSignatureForPublicKey ?rfip_pubkey .
# ?latest_rfip_np npa:hasValidSignatureForPublicKey ?rfip_pubkey .
# filter not exists { ?latest_rfip_npx npx:invalidates ?latest_rfip_np ; npa:hasValidSignatureForPublicKey ?rfip_pubkey . }
#}
#graph npa:networkGraph {
# ?latest_rfip_np (npx:supersedes)* ?rfip_np .
#}
#graph ?rfip_qa {
# ?rfip_qualifier npx:qualifies ?latest_rfip_np .
#}
#graph npa:graph {
# ?rfip_qualification_np np:hasAssertion ?rfip_qa .
# ?rfip_qualification_np npx:hasNanopubType npx:qualifies .
# ?rfip_qualification_np npa:hasValidSignatureForPublicKey ?rfip_qpubkey .
# filter not exists { ?rfip_qualification_np_x npx:invalidates ?rfip_qualification_np ; npa:hasValidSignatureForPublicKey ?rfip_qpubkey . }
#}
#graph ?latest_curators_assertion {
# ?rfip_qpubkeys npx:hasPublicKey ?rfip_qpubkey .
#}
}
optional {
graph npa:graph {
?qualification_np npx:hasNanopubType npx:qualifies .
?qualification_np npa:hasValidSignatureForPublicKey ?qpubkey .
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
graph npa:graph {
filter not exists { ?qualification_np_x npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
?qualification_np np:hasAssertion ?qa .
}
graph ?qa {
?qualifier npx:qualifies ?np .
}
}
optional {
graph npa:graph {
?fairAssessmentLevelNp npx:hasNanopubType fip:has-FAIR-assessment .
?fairAssessmentLevelNp npa:hasValidSignatureForPublicKey ?lpubkey .
}
graph ?latest_curators_assertion {
?lpubkeys npx:hasPublicKey ?lpubkey .
}
graph npa:graph {
filter not exists { ?fairAssessmentLevelNp_x npx:invalidates ?fairAssessmentLevelNp ; npa:hasValidSignatureForPublicKey ?lpubkey . }
?fairAssessmentLevelNp np:hasAssertion ?la .
}
graph ?la {
?thing fip:has-FAIR-assessment ?fairAssessmentLevel .
}
} filter(!bound(?levelNp)) # Faster than "filter not exists" for some reason
}
group by ?thing ?label ?description ?np ?date ?pubkey ?retraction ?newversion ?qualifier ?qualification_np
order by desc(?recommender_count) asc(?label)
This query returns the uncertainty estimates for datasets.
Get uncertainty estimates
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix mac: <https://w3id.org/spaces/mac/r/ontology/>
select ?dataset ?mz_estimate ?rt_estimate ?i_estimate ?uncertainty_model ?creator ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType mac:uncertainty_model .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:signedBy ?creator .
?np np:hasAssertion ?a .
}
graph ?a {
?dataset mac:has_mz_uncertainty_estimate ?mz_estimate .
?dataset mac:has_RT_uncertainty_estimate ?rt_estimate .
?dataset mac:has_I_uncertainty_estimate ?i_estimate .
?a dct:conformsTo ?uncertainty_model .
}
}
order by desc(?date)
This query returns the environments associated to the given taxon.
Get environments for taxon
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix biolink: <https://w3id.org/biolink/vocab/>
prefix biodiv: <https://w3id.org/kpxl/biodiv/terms/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select distinct ?relation ?relation_label ?environment ?environment_label ?source ?creator ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType biolink:OrganismTaxonToEnvironmentAssociation .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?association .
?np np:hasAssertion ?a .
?np np:hasProvenance ?p .
?np np:hasPublicationInfo ?i .
?np npx:signedBy ?creator .
}
graph ?a {
?association a biolink:OrganismTaxonToEnvironmentAssociation .
?association biolink:subject ?taxonConcept .
?taxonConcept biodiv:hasTaxonName ?_taxonname_iri .
?association biolink:predicate ?relation .
?association biolink:object ?environment .
}
optional { graph ?p { ?a dct:source ?source } }
optional { graph ?i { ?relation nt:hasLabelFromApi ?relation_label } }
optional { graph ?i { ?environment nt:hasLabelFromApi ?environment_label } }
}
Returns the number of active users per (approximate) week.
Get weekly active user count
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?approxweek (substr(str(min(?date)), 0, 11) as ?firstday) (count(distinct ?userid) as ?usercount) where {
{ graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:creator ?userid .
?np dct:created ?date .
} }
union
{
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasAssertion ?assertion .
?np np:hasProvenance ?prov .
?np dct:created ?date .
?np dct:creator ?tool .
values ?tool { <https://fip-wizard.ds-wizard.org/wizard> }
}
graph ?prov {
?assertion prov:wasAttributedTo ?userid .
}
}
filter not exists {
graph npa:graph { ?np npa:hasSubIri ?userid . }
}
bind(xsd:integer((year(?date)*365 + month(?date)*365/12 + day(?date)) / 7) as ?approxweek)
}
group by ?approxweek
order by desc(?approxweek)
This query returns all classes that specify to be part of a given ontology or use its namespace.
Get the classes of an ontology including via namespace
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
select distinct ?class ?class_label (?definition as ?description) ?np ("^" as ?np_label) where {
values ?_ontology_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType owl:Class .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?class .
?np np:hasAssertion ?a .
}
graph ?a {
{{
?class a owl:Class .
filter(strstarts(str(?class), ?__ontologyNamespace))
} union {
?class a owl:Class .
?class dct:partOf ?_ontology_multi_iri .
}}
optional { ?class rdfs:subClassOf ?superclass . }
optional { ?class rdfs:label ?class_label . }
optional { ?class skos:definition ?definition . }
}
}
order by ?class_label
This query returns all the spaces to which the given agent has membership relations
Get Spaces for agent
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix schema: <http://schema.org/>
select distinct ?space where {
values ?_agent_multi_iri {}
{
{
graph npa:graph {
?spaceRole_np npx:hasNanopubType gen:SpaceMemberRole .
?spaceRole_np npa:hasValidSignatureForPublicKeyHash ?spaceRole_pubkey .
filter not exists { ?spaceRole_npx npx:invalidates ?spaceRole_np ; npa:hasValidSignatureForPublicKeyHash ?spaceRole_pubkey . }
?spaceRole_np np:hasAssertion ?spaceRole_a .
}
graph ?spaceRole_a {
?space gen:hasRole ?role .
}
} union {
bind(<https://w3id.org/np/RA_eEJjQbxzSqYSwPzfjzOZi5sMPpUmHskFNsgJYSws8I/adminRole> as ?role)
}
}
graph ?role_a {
?role a gen:SpaceMemberRole .
?role rdfs:label ?roleLabel .
?role dct:title ?roleTitle .
?role schema:name ?roleName .
}
graph npa:graph {
?role_np npx:embeds ?role .
?role_np np:hasAssertion ?role_a .
}
{
{
graph ?role_a {
?role gen:hasRegularProperty ?reg .
}
graph ?link_a {
?_agent_multi_iri ?reg ?space .
}
bind(?reg as ?property)
bind(false as ?inverse)
} union {
graph ?role_a {
?role gen:hasInverseProperty ?inv .
}
graph ?link_a {
?space ?inv ?_agent_multi_iri .
}
bind(?inv as ?property)
bind(true as ?inverse)
}
}
graph npa:graph {
?link_np np:hasAssertion ?link_a .
?link_np npa:hasValidSignatureForPublicKeyHash ?link_pubkey .
filter not exists { ?link_npx npx:invalidates ?link_np ; npa:hasValidSignatureForPublicKeyHash ?link_pubkey . }
?link_np dct:created ?link_date .
}
}
order by desc(?link_date)
This query returns all the spaces to which the given agent has membership relations, and shows the respective roles.
Get Spaces and roles for agent
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix schema: <http://schema.org/>
select distinct ?space (group_concat(?role; separator=" ") as ?roles) where {
values ?_agent_multi_iri {}
{
{
graph npa:graph {
?spaceRole_np npx:hasNanopubType gen:SpaceMemberRole .
?spaceRole_np npa:hasValidSignatureForPublicKeyHash ?spaceRole_pubkey .
filter not exists { ?spaceRole_npx npx:invalidates ?spaceRole_np ; npa:hasValidSignatureForPublicKeyHash ?spaceRole_pubkey . }
?spaceRole_np np:hasAssertion ?spaceRole_a .
}
graph ?spaceRole_a {
?space gen:hasRole ?role .
}
} union {
bind(<https://w3id.org/np/RA_eEJjQbxzSqYSwPzfjzOZi5sMPpUmHskFNsgJYSws8I/adminRole> as ?role)
}
}
graph ?role_a {
?role a gen:SpaceMemberRole .
?role rdfs:label ?roleLabel .
?role dct:title ?roleTitle .
?role schema:name ?roleName .
}
graph npa:graph {
?role_np npx:embeds ?role .
?role_np np:hasAssertion ?role_a .
}
{
{
graph ?role_a {
?role gen:hasRegularProperty ?reg .
}
graph ?link_a {
?_agent_multi_iri ?reg ?space .
}
bind(?reg as ?property)
bind(false as ?inverse)
} union {
graph ?role_a {
?role gen:hasInverseProperty ?inv .
}
graph ?link_a {
?space ?inv ?_agent_multi_iri .
}
bind(?inv as ?property)
bind(true as ?inverse)
}
}
graph npa:graph {
?link_np np:hasAssertion ?link_a .
?link_np npa:hasValidSignatureForPublicKeyHash ?link_pubkey .
filter not exists { ?link_npx npx:invalidates ?link_np ; npa:hasValidSignatureForPublicKeyHash ?link_pubkey . }
?link_np dct:created ?link_date .
}
}
group by ?space
order by ?space
This query returns all organism associations to the environment of "city".
Get urban organism associations
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix biolink: <https://w3id.org/biolink/vocab/>
prefix biodiv: <https://w3id.org/kpxl/biodiv/terms/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select ?relation ?relation_label ?taxon_name ?taxon_name_label ?creator ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType biodiv:OrganismToEnvironmentAssociation .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np dct:creator ?creator .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i .
optional { ?np rdfs:label ?label }
}
graph ?a {
?association a biodiv:OrganismToEnvironmentAssociation .
?association biolink:subject ?organism .
?organism a ?taxonConcept .
?taxonConcept biodiv:hasTaxonName ?taxon_name .
?association biolink:predicate ?relation .
?association biolink:object <http://purl.obolibrary.org/obo/ENVO_00000856> .
}
optional { graph ?i { ?taxon_name nt:hasLabelFromApi ?taxon_name_label . } }
optional { graph ?i { ?relation nt:hasLabelFromApi ?relation_label . } }
optional { graph ?i { values (?relation ?relation_label) { ( <http://purl.obolibrary.org/obo/RO_0002303> "has habitat" ) } } }
}
order by desc(?date)
This query returns all approaches in AI for Education
Get AI in Education approaches
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?approach ?approach_label ?class ?reference ?reference_label ?creator ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType <https://w3id.org/spaces/AI-in-education/r/terms/AI-in-Education-approach> .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:signedBy ?creator .
?np np:hasAssertion ?a .
?np npx:introduces ?approach .
}
graph ?a {
?approach a <https://w3id.org/spaces/AI-in-education/r/terms/AI-in-Education-approach> .
optional {
?approach a ?class .
filter(?class != <https://w3id.org/spaces/AI-in-education/r/terms/AI-in-Education-approach>)
}
?approach rdfs:label ?approach_label .
?approach dct:source ?reference .
?reference rdfs:label ?reference_label .
}
}
This query returns all taxon-taxon relations according to the BioLink schema.
Get all taxon-taxon relation nanopublications
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix biolink: <https://w3id.org/biolink/vocab/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix biodiv: <https://w3id.org/kpxl/biodiv/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select distinct ?np ?label ?subjtaxonname ?subjtaxonlabel ?rel ?objtaxonname ?objtaxonlabel ?source ?date where {
graph npa:graph {
?np npx:hasNanopubType biolink:OrganismTaxonToOrganismTaxonAssociation .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np np:hasProvenance ?p .
?np np:hasPublicationInfo ?i .
optional { ?np rdfs:label ?label }
}
graph ?a {
?association a biolink:OrganismTaxonToOrganismTaxonAssociation .
?association biolink:subject ?subjtaxon .
?subjtaxon biodiv:hasTaxonName ?subjtaxonname .
?association biolink:predicate ?rel .
?association biolink:object ?objtaxon .
?objtaxon biodiv:hasTaxonName ?objtaxonname .
}
graph <http://purl.org/np/RAVTdAMPj7oOfekUVyIcrXX9HheGa_0QCC5-PK7Di8DPg/assertion> {
?rel rdfs:label ?rellabel .
}
optional {
graph ?p {
?a prov:wasDerivedFrom ?source
}
}
graph ?i {
optional { ?subjtaxonname nt:hasLabelFromApi ?subjtaxonlabel . }
optional { ?objtaxonname nt:hasLabelFromApi ?objtaxonlabel . }
}
}
order by desc(?date)
This query returns plain-text messages about the given resource.
Get messages about resource
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix schema: <https://schema.org/>
select ?text (group_concat(concat('<span><a href="', str(?link), '">link</a></span>'); separator=", ") as ?link) ?user ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np dct:creator ?user .
?np np:hasAssertion ?a .
}
graph ?a {
?a rdfs:label ?text .
values ?_resource_multi_iri {}
?a schema:about ?_resource_multi_iri .
optional { ?a rdfs:seeAlso ?link . }
}
}
group by ?text ?user ?date ?np
order by desc(?date)
This query returns the items of a collection
Get items of collection
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?item ?item_label ?type ?source ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType gen:CollectionElement .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?item .
}
graph ?a {
?item a ?type .
filter(?type != gen:CollectionElement)
?item rdfs:label ?item_label .
optional { ?item dct:source ?source }
values ?_collection_multi_iri {}
?item dct:isPartOf ?_collection_multi_iri .
}
}
order by ?item_label
This query returns a filtered list of nanopublications.
Get filtered nanopub list (new version)
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?np ?label ?date (group_concat(distinct ?t; separator=' ') as ?types) (?__pubkeys_multi as ?pubkey) where {
graph npa:graph {
values ?__pubkeys_multi {}
?np npa:hasValidSignatureForPublicKeyHash ?__pubkeys_multi .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?__pubkeys_multi . }
values ?__types_multi_iri {}
?np npx:hasNanopubType ?__types_multi_iri .
?np npx:hasNanopubType ?t .
?np dct:created ?date .
bind(coalesce(?__endtime, "9999") as ?endtime)
filter(?endtime > str(?date))
bind(coalesce(?__starttime, "0000") as ?starttime)
filter(?starttime < str(?date))
optional { ?np rdfs:label ?label }
}
}
group by ?np ?label ?date ?__pubkeys_multi
order by desc(?date)
limit 100
This query returns the sub-resources of a Space or Maintained Resource.
Get sub-resources of Space or Maintained Resource
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?resource ?resource_label ?entity_main_type ?np where {
graph npa:graph {
values ?entity_main_type { gen:Space gen:MaintainedResource }
?np npx:hasNanopubType ?entity_main_type .
?np npx:introduces ?resource .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
{ {
values ?_super_resource_multi_iri {}
?resource a ?entity_main_type .
filter(strstarts(str(?resource), concat(str(?_super_resource_multi_iri), "/")))
bind(substr(str(?resource), strlen(str(?_super_resource_multi_iri)) + 2, strlen(str(?resource)) - strlen(str(?_super_resource_multi_iri)) - 1) as ?suffix)
filter(!contains(?suffix, "/"))
} union {
values ?_super_resource_multi_iri {}
?resource a gen:Space .
?resource dct:isPartOf ?_super_resource_multi_iri .
} union {
values ?_super_resource_multi_iri {}
?resource a gen:MaintainedResource .
?resource gen:isMaintainedBy ?_super_resource_multi_iri .
} }
filter exists { ?resource a ?__resource_type_iri }
?resource rdfs:label ?resource_label .
}
} order by ?resource_label
This query returns all user IDs, introductions, and associated pubkeys.
Get all user intros
prefix np: <http://www.nanopub.org/nschema#>
prefix npx: <http://purl.org/nanopub/x/>
prefix npa: <http://purl.org/nanopub/admin/>
prefix dct: <http://purl.org/dc/terms/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?user ?name ?isSoftware ?intronp ?date ?pubkey ?pubkeyHash ?authoritative ?keyLocation where {
graph npa:graph {
?intronp npa:hasValidSignatureForPublicKey ?introPubkey .
filter not exists { ?intronpx npx:invalidates ?intronp ; npa:hasValidSignatureForPublicKey ?introPubkey . }
?intronp dct:created ?date .
?intronp np:hasAssertion ?a .
}
graph ?a {
?keydeclaration npx:declaredBy ?user .
?keydeclaration npx:hasPublicKey ?pubkey .
optional {
?user foaf:name ?name .
}
optional {
?keydeclaration npx:hasKeyLocation ?keyLocation .
}
bind(exists { ?user a npx:SoftwareAgent } as ?isSoftware)
}
bind(?pubkey = ?introPubkey as ?authoritative)
bind(sha256(?pubkey) as ?pubkeyHash)
}
order by ?user desc(?authoritative) desc(?date)
This query returns all collections that are part of the given resource
Get collections for resource
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix dcmitype: <http://purl.org/dc/dcmitype/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?collection ?collection_label ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType dcmitype:Collection .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?collection
}
graph ?a {
?collection a dcmitype:Collection .
?collection rdfs:label ?collection_label .
optional { ?collection dct:description ?description }
values ?_resource_multi_iri {}
?collection dct:isPartOf|gen:isMaintainedBy ?_resource_multi_iri .
}
}
order by ?collection_label
This query returns the latest variables declared according to the I-ADOPT framework.
Get latest variables
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix iadopt: <https://w3id.org/iadopt/ont/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
select ?variable (coalesce(?variable_prefLabel, min(?variable_label)) as ?variable_label) ?creator ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType iadopt:Variable .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?variable .
?np npx:signedBy ?creator .
}
graph ?a {
?variable a iadopt:Variable .
optional { ?variable rdfs:label ?variable_label . }
optional { ?variable skos:prefLabel ?variable_prefLabel . }
}
}
group by ?variable ?variable_prefLabel ?creator ?np ?date
order by desc(?date)
This query returns highlights stated according to the Web Annotation Ontology.
Get highlights
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix oa: <http://www.w3.org/ns/oa#>
select ?comment ?source ?text_quote ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType oa:Annotation .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?annotation .
?np np:hasAssertion ?a .
}
graph ?a {
?annotation a oa:Annotation .
?annotation oa:motivatedBy oa:highlighting .
?annotation oa:hasBody ?body .
?body rdf:value ?comment .
?annotation oa:hasTarget ?target .
?target oa:hasSource ?source .
?target oa:hasSelector ?selector .
?selector oa:exact ?text_quote .
}
}
order by desc(?date)
This query returns the FAIR-Supporting Resources (FSRs) that are recommended by the FAIR community.
Get recommended FSRs
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix fip: <https://w3id.org/fair/fip/terms/>
select distinct ?fsr ?fsr_label (group_concat(distinct ?community_link; separator = ', ') as ?communities) where {
graph npa:graph {
?np npx:hasNanopubType fip:recommended-by .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?fsr fip:recommended-by ?community .
}
{ select ?fsr ?fsr_label where {
{ select ?latest_curators_assertion where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
} }
graph npa:graph {
?np npx:introduces|npx:describes ?fsr .
?np rdfs:label ?fsr_label ;
npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date .
filter(str(?date) > "2022")
filter exists { ?np npx:hasNanopubType ?fsr_type . values ?fsr_type { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource } }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
filter not exists {
graph ?da {
?disapprover npx:disapprovesOf ?np .
}
graph npa:graph {
?disapproval_np np:hasAssertion ?da ;
npa:hasValidSignatureForPublicKey ?dpubkey .
filter not exists { ?disapproval_npx npx:invalidates ?disapproval_np ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?dpubkey .
}
}
} }
{ select ?community ?community_label where {
graph npa:graph {
?np npx:hasNanopubType fip:FAIR-Implementation-Community .
?np npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date ;
np:hasAssertion ?a .
?np npx:introduces|npx:describes ?community .
?np dct:created ?date . filter(str(?date) > "2022")
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?a {
?community a fip:FAIR-Implementation-Community ;
rdfs:label ?community_label .
}
} }
bind(concat('<span><a href="', str(?community), '">', str(?community_label), '</a></span>') as ?community_link)
}
group by ?fsr ?fsr_label
order by ?fsr_label
This query returns all metadata records for datasets.
Get all datasets
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?dataset ?dataset_label ?publisher ?np ("^" as ?np_label) where {
graph npa:graph {
values ?npType { <https://www.w3.org/ns/dcat#Dataset> <https://w3id.org/fair/ff/terms/Dataset> }
?np npx:hasNanopubType ?npType .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?dataset .
?np np:hasAssertion ?a .
}
graph ?a {
?dataset rdfs:label ?dataset_label .
?dataset dct:publisher ?publisher .
}
}
order by desc(?date)
This query returns the favorited things of a given user.
Get favorites for user
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix cito: <http://purl.org/spar/cito/>
select ?liked_resource ?comment ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType cito:likes .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?_user_iri cito:likes ?liked_resource .
optional { ?liked_resource rdfs:comment ?comment . }
}
}
This query returns all reference FAIR Implementation Profiles (rFIPs).
Get reference FIPs
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix schema: <https://schema.org/>
select (?rfip as ?rFIP) (?rfip_label as ?rFIP_label) ?version ?community ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType fip:Reference-FAIR-Implementation-Profile .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?rfip .
}
graph ?a {
?rfip a fip:Reference-FAIR-Implementation-Profile .
?rfip rdfs:label ?rfip_label .
?rfip fip:declared-by ?community .
optional { ?rfip schema:version ?version . }
}
}
This query returns related things, like datasets, software, and claims, that are linked to the given systematic review.
Get related things for systematic review
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix sl: <https://w3id.org/sciencelive/o/terms/>
select ?thing ?thing_label ?type ?np ("^" as ?np_label) where {
graph npa:graph {
?qnp npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?qnpx npx:invalidates ?qnp ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?qnp dct:created ?date .
?qnp np:hasAssertion ?a .
}
values ?_systematicReview_multi_iri { }
graph ?a {
?_systematicReview_multi_iri sl:targetsResearchQuestion ?research_question .
}
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?ppubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?ppubkey . }
?np np:hasAssertion ?pa .
}
graph ?pa {
?thing a ?type .
values ?type { <http://purl.org/petapico/o/hycl#AIDA-Sentence> <http://purl.org/dc/dcmitype/Software> <http://www.w3.org/ns/dcat#Dataset> }
?thing dct:isPartOf ?research_question .
optional { ?thing rdfs:label ?label . }
optional { ?thing dct:title ?title . }
bind(coalesce(?label, ?title) as ?thing_label)
}
}
order by ?type ?thing_label
This query returns all communities that have at least one FAIR Implementation Profile (FIP).
Get FIP communities
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select ?community ?community_label (count(distinct ?fipnp) as ?fip_count) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date ;
npx:hasNanopubType fip:FAIR-Implementation-Community ;
np:hasAssertion ?a .
?np npx:introduces|npx:describes ?community .
?np dct:created ?date . filter(str(?date) > "2022")
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?a {
?community a fip:FAIR-Implementation-Community ;
rdfs:label ?community_label .
}
service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/92efd7a0ea4be4e01ec0817ccec87f975203b30addcc3166a204498ffed73b66> { # (https://w3id.org/fair/fip/terms/FAIR-Implementation-Profile)
select ?fipnp ?fip ?fiplabel ?community {
graph npa:graph {
?fipnp np:hasAssertion ?fa .
optional { ?fipnp rdfs:label ?fiplabel . }
?fipnp npx:introduces|npx:describes ?fip .
?fipnp npa:hasValidSignatureForPublicKey ?fpubkey .
?fipnp npx:hasNanopubType fip:FAIR-Implementation-Profile .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?fipnpx npx:invalidates ?fipnp ; npa:hasValidSignatureForPublicKey ?fpubkey . }
}
graph ?fa {
?fip fip:declared-by ?community .
}
}
}
}
group by ?community ?community_label
order by desc(?fip_count)
This query returns all full-screening paper comments that are linked to the given systematic review.
Get paper comments for systematic review
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix sl: <https://w3id.org/sciencelive/o/terms/>
select ?paper ?quoted_text ?comment ?np ("^" as ?np_label) where {
graph npa:graph {
?qnp npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?qnpx npx:invalidates ?qnp ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?qnp dct:created ?date .
?qnp np:hasAssertion ?a .
}
values ?_systematicReview_multi_iri {}
graph ?a {
?_systematicReview_multi_iri sl:targetsResearchQuestion ?research_question .
}
service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/2c1cce3f3152738c1009d59251409392aaaa3b0324bcb5fdfb4b7b944b8f0c18> {
select ?np ?paper ?quoted_text ?comment ?research_question {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?ppubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?ppubkey . }
?np np:hasAssertion ?pa .
}
graph ?pa {
?paper dct:isPartOf ?research_question .
optional { ?paper <http://purl.org/spar/cito/hasQuotedText> ?quoted_text . }
?paper rdfs:comment ?comment .
}
}
}
}
This query returns all database searches for the given systematic review.
Get DB searches for review
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix sl: <https://w3id.org/sciencelive/o/terms/>
select ?dbsearch ?dbsearch_label ?dbUrl ?searchQuery ?retrievedRecordCount ?creator ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:signedBy ?creator .
?np npx:introduces ?dbsearch .
?np np:hasAssertion ?a .
}
values ?_systematicReview_multi_iri {}
graph ?a {
?dbsearch a sl:SystematicDatabaseSearch .
?dbsearch rdfs:label ?dbsearch_label .
?dbsearch dct:isPartOf ?_systematicReview_multi_iri .
?dbsearch sl:hasDatabaseUrl ?dbUrl .
?dbsearch sl:hasSearchQuery ?searchQuery .
?dbsearch sl:hasRetrievedRecordCount ?retrievedRecordCount .
}
}
order by ?dbsearch_label
This query returns all claims attributed to Leiden University.
Get claims attributed to Leiden University
prefix prov: <http://www.w3.org/ns/prov#>
prefix schema: <https://schema.org/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select distinct ?claim ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np np:hasProvenance ?p .
}
graph ?a {
?claim a <http://purl.org/petapico/o/hycl#AIDA-Sentence> .
}
graph ?p {
?a prov:wasAttributedTo <https://ror.org/027bh9e22> .
}
}
This query returns all projects attributed to Leiden University.
Get projects attributed to Leiden University
prefix prov: <http://www.w3.org/ns/prov#>
prefix schema: <https://schema.org/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select distinct ?project ?project_label ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np np:hasProvenance ?p .
}
graph ?a {
?project a <https://schema.org/ResearchProject> .
optional { ?project rdfs:label ?project_label . }
}
graph ?p {
?a prov:wasAttributedTo <https://ror.org/027bh9e22> .
}
}
This query returns all properties that specify to be part of a given ontology or use its namespace.
Get the properties of OWL ontology including namespace
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
select distinct ?property ?property_label (?definition as ?description) ?np ("^" as ?np_label) where {
values ?_ontology_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType rdf:Property .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?property .
?np np:hasAssertion ?a .
}
graph ?a {
{{
?property a rdf:Property .
filter(strstarts(str(?property), ?__ontologyNamespace))
} union {
?property a rdf:Property .
?property dct:partOf ?_ontology_multi_iri .
}}
optional { ?property rdfs:label ?property_label . }
optional { ?property skos:definition ?definition . }
}
}
order by ?property_label
Testing how HTML values show up.
HTML test
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select * where {
bind("<p>this is a <strong>test</strong></p>" as ?html)
} limit 10
This query returns all individuals that specify to be part of a given ontology or use its namespace.
Get the individuals of an ontology including via namespace
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
select distinct ?individual ?individual_label ?class (coalesce(?desc, ?def) as ?description) ?np ("^" as ?np_label) where {
values ?_ontology_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType owl:NamedIndividual .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?individual .
?np np:hasAssertion ?a .
}
graph ?a {
{{
?individual a owl:NamedIndividual .
filter(strstarts(str(?individual), ?__ontologyNamespace))
} union {
?individual a owl:NamedIndividual .
?individual dct:partOf ?_ontology_multi_iri .
}}
optional {
?individual a ?class .
filter(?class != owl:NamedIndividual)
}
optional { ?individual rdfs:label ?individual_label . }
optional { ?individual skos:definition ?def . }
optional { ?individual dct:description ?desc . }
}
}
order by ?class ?individual_label
This query returns all research questions that are linked to the given systematic review.
Get research questions for systematic review
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix sl: <https://w3id.org/sciencelive/o/terms/>
select ?research_question ?research_question_label ?np ("^" as ?np_label) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:signedBy ?creator .
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?label }
}
values ?_systematicReview_multi_iri {}
graph ?a {
?_systematicReview_multi_iri sl:targetsResearchQuestion ?research_question .
}
service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/e7590fad93a7eff7bc7dd8570a694d400662afc24a65294b64dcf614c5d39d94> {
select ?research_question ?research_question_label {
graph npa:graph {
?rqnp npx:introduces ?research_question .
?rqnp npa:hasValidSignatureForPublicKeyHash ?rqpubkey .
filter not exists { ?rqnpx npx:invalidates ?rqnp ; npa:hasValidSignatureForPublicKeyHash ?rqpubkey . }
?rqnp np:hasAssertion ?rqa .
}
graph ?rqa {
?research_question rdfs:label ?research_question_label .
}
}
}
}
This query performs a full-text search on the nanopublication.
Full-text search
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select ?np ?label ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?__pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?__pubkey . }
optional { ?np rdfs:label ?label . }
?np dct:created ?date .
}
?np search:matches [
search:query ?_query ;
search:property npa:hasFilterLiteral ;
search:score ?score ;
search:snippet ?snippet ] .
}
limit 100
This query returns the search strategy (or strategies) for the given systematic review.
Get search strategy for systematic review
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix sl: <https://w3id.org/sciencelive/o/terms/>
select ?searchStrategy ?searchStrategy_label ?creator ?date ?np ("^" as ?np_label) where {
graph npa:graph {
?np npx:hasNanopubType sl:SystematicReviewSearchStrategy .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:signedBy ?creator .
?np npx:introduces ?searchStrategy .
?np rdfs:label ?searchStrategy_label .
?np np:hasAssertion ?a .
}
values ?_systematicReview_multi_iri {}
graph ?a {
?searchStrategy dct:isPartOf ?_systematicReview_multi_iri .
}
}
Testing...
Query to test np labeling
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?type ?date ?np ("^" as ?np_label) where {
npa:thisRepo ?pred ?obj .
graph npa:graph {
?np npx:hasNanopubType ?type .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?label }
}
} limit 10
This query returns the search execution dataset for the given systematic review.
Get search execution dataset
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix sl: <https://w3id.org/sciencelive/o/terms/>
select ?dataset ?dataset_label ?dataset_creation_date ?screened_record_count ?fulltext_screened_record_count ?final_included_study_count ?np where {
graph npa:graph {
?np npx:hasNanopubType sl:SearchExecutionDataset .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:signedBy ?creator .
?np npx:introduces ?dataset .
?np np:hasAssertion ?a .
}
values ?_systematicReview_multi_iri {}
graph ?a {
?dataset a sl:SearchExecutionDataset .
?dataset dct:isPartOf ?_systematicReview_multi_iri .
?dataset rdfs:label ?dataset_label .
?dataset sl:hasScreenedRecordCount ?screened_record_count .
?dataset sl:hasFulltextScreenedRecordCount ?fulltext_screened_record_count .
?dataset sl:hasFinalIncludedStudyCount ?final_included_study_count .
?dataset dct:created ?dataset_creation_date .
}
}
This queries returns the full list of studies that are selected for full screening for the given systematic review.
Get studies selected for full screening
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix sl: <https://w3id.org/sciencelive/o/terms/>
prefix disco: <http://rdf-vocabulary.ddialliance.org/discovery#>
select ?study ?study_label ?studySource ?np ?date where {
graph npa:graph {
?np npx:hasNanopubType sl:selectsForFullScreening .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?_review_iri sl:selectsForFullScreening ?study .
}
service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/272b689e2954bc73f05f423720a0c77780db086e9c0d29800105ac87e59b4e14> {
graph npa:graph {
?stnp npx:introduces ?study .
?stnp npx:hasNanopubType disco:Study .
?stnp npa:hasValidSignatureForPublicKeyHash ?stpubkey .
filter not exists { ?stnpx npx:invalidates ?stnp ; npa:hasValidSignatureForPublicKeyHash ?stpubkey . }
?stnp np:hasAssertion ?sta .
}
graph ?sta {
?study rdfs:label ?study_label .
?study dct:source ?studySource .
}
}
}
order by desc(?date)
Searches for concepts in the given SKOS scheme.
Find concepts in SKOS scheme
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
select ?thing ?label ?np ?date where {
graph npa:graph {
?np npx:hasNanopubType skos:Concept .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?thing .
}
graph ?a {
?thing a skos:Concept .
?thing skos:inScheme ?_scheme_iri .
?thing skos:prefLabel ?label .
filter(contains(?label, ?_searchterm))
}
}
order by ?conceptLabel
This query returns all organism-to-nucleotide-sequence associations.
Get Organism to Nucleotide Sequence Associations
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix biodiv: <https://w3id.org/kpxl/biodiv/terms/>
prefix biolink: <https://w3id.org/biolink/vocab/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select ?taxonName ?taxonName_label ?relation ?nucleotideSequence ?creator ?date ?np where {
graph npa:graph {
?np npx:hasNanopubType biodiv:OrganismToNucleotideSequenceAssociation .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i .
?np npx:introduces ?association .
optional { ?np npx:signedBy ?creator . }
}
graph ?a {
?association a biodiv:OrganismToNucleotideSequenceAssociation .
?association biolink:predicate ?relation .
?association biolink:subject ?organism .
?organism a ?taxonConcept .
?taxonConcept biodiv:hasTaxonName ?taxonName .
?association biolink:object ?nucleotideSequence .
}
graph ?i {
optional { ?taxonName nt:hasLabelFromApi ?taxonName_label }
}
}
order by desc(?date)
This query returns the read papers (and comments if applicable) for a given user.
Get read papers by user
prefix pc: <http://purl.org/petapico/o/paperclub#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?paper ?comment ?np ?date where {
graph npa:graph {
?np npx:hasNanopubType pc:hasRead .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:signedBy ?_user_iri .
?np np:hasAssertion ?a .
}
graph ?a {
?_user_iri pc:hasRead ?paper .
optional { ?paper rdfs:comment ?comment . }
}
} order by desc(?date)
This query returns all named individuals that specify to be part of a given ontology or use its namespace.
Get the named individuals of an ontology including via namespace
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
select distinct ?individual ?individual_label (?definition as ?description) ?np where {
values ?_ontology_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType owl:NamedIndividual .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?individual .
?np np:hasAssertion ?a .
}
graph ?a {
{{
?individual a owl:NamedIndividual .
filter(strstarts(str(?individual), ?__ontologyNamespace))
} union {
?individual a owl:NamedIndividual .
?individual dct:partOf ?_ontology_multi_iri .
}}
optional { ?individual rdfs:label ?individual_label . }
optional { ?individual skos:definition ?definition . }
}
}
order by ?individual_label
This query returns all Science Live credits.
Get all Science Live credits
prefix sl: <https://w3id.org/sciencelive/o/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?credit ?points ?awardedAgent ?awardingAgent ?reason ?comment where {
graph npa:graph {
?np npx:hasNanopubType sl:ScienceLiveCredit .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?credit .
}
graph ?a {
?credit a sl:ScienceLiveCredit .
?credit sl:hasCreditPoints ?points .
?credit sl:isAwardedTo ?awardedAgent .
?credit sl:isAwardedBy ?awardingAgent .
?credit sl:isAwardedFor ?reason .
?credit rdfs:comment ?comment .
}
}
This query returns all Science Live credits.
Get all Science Live credits
prefix sl: <https://w3id.org/sciencelive/o/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?credit ?points ?awardedAgent ?awardingAgent ?reason ?comment where {
graph npa:graph {
?np npx:hasNanopubType sl:ScienceLiveCredit .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?credit .
}
graph ?a {
?credit a sl:ScienceLiveCredit .
?credit sl:hasCreditPoints ?points .
?credit sl:isAwardedTo ?awardedAgent .
?credit sl:isAwardedBy ?awardingAgent .
?credit sl:isAwardedFor ?reason .
?credit rdfs:comment ?comment .
}
}
This query returns all properties that specify to be part of a given ontology.
Get the properties of an ontology
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
select ?property ?property_label ?domain ?range (?definition as ?description) ?np where {
values ?_ontology_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType rdf:Property .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?property .
?np np:hasAssertion ?a .
}
graph ?a {
?property dct:partOf ?_ontology_multi_iri .
optional { ?property skos:definition ?definition . }
optional { ?property rdfs:label ?property_label . }
optional { ?property rdfs:domain ?domain . }
optional { ?property rdfs:range ?range . }
}
}
order by ?property_label
This query returns all nanopub services announced in nanopublications.
Get all nanopub services (simple view)
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?service ?service_label ?serviceType ?np where {
graph npa:graph {
?np npx:hasNanopubType npx:NanopubService .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
optional { ?np dct:created ?date . }
?np np:hasAssertion ?a .
}
graph ?a {
?service a npx:NanopubService .
?service a ?serviceType .
?service rdfs:label ?service_label .
filter(?serviceType != npx:NanopubService)
}
} order by ?service_label
This query returns all instances of Space membership instances.
Get all Space membership instances
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix schema: <http://schema.org/>
select (?__agent_multi_iri as ?agent) ?role ?roleName ?property ?inverse (?__space_multi_iri as ?space) where {
values ?__space_multi_iri {}
values ?__agent_multi_iri {}
{
{
graph npa:graph {
?spaceRole_np npx:hasNanopubType gen:SpaceMemberRole .
?spaceRole_np npa:hasValidSignatureForPublicKeyHash ?spaceRole_pubkey .
filter not exists { ?spaceRole_npx npx:invalidates ?spaceRole_np ; npa:hasValidSignatureForPublicKeyHash ?spaceRole_pubkey . }
?spaceRole_np np:hasAssertion ?spaceRole_a .
}
graph ?spaceRole_a {
?__space_multi_iri gen:hasRole ?role .
}
} union {
bind(<https://w3id.org/np/RA_eEJjQbxzSqYSwPzfjzOZi5sMPpUmHskFNsgJYSws8I/adminRole> as ?role)
}
}
graph ?role_a {
?role a gen:SpaceMemberRole .
?role rdfs:label ?roleLabel .
?role dct:title ?roleTitle .
?role schema:name ?roleName .
}
graph npa:graph {
?role_np npx:embeds ?role .
?role_np np:hasAssertion ?role_a .
}
{
{
graph ?role_a {
?role gen:hasRegularProperty ?reg .
}
graph ?link_a {
?__agent_multi_iri ?reg ?__space_multi_iri .
}
bind(?reg as ?property)
bind(false as ?inverse)
} union {
graph ?role_a {
?role gen:hasInverseProperty ?inv .
}
graph ?link_a {
?__space_multi_iri ?inv ?__agent_multi_iri .
}
bind(?inv as ?property)
bind(true as ?inverse)
}
}
graph npa:graph {
?link_np np:hasAssertion ?link_a .
?link_np npa:hasValidSignatureForPublicKeyHash ?link_pubkey .
filter not exists { ?link_npx npx:invalidates ?link_np ; npa:hasValidSignatureForPublicKeyHash ?link_pubkey . }
}
}
Get FAIR-Enabling Resources by type.
Get FERs by type (simple result)
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?resource ?resource_label ?types ?qualifier (group_concat(distinct ?community; separator=" ") as ?communities) ?date ?np where {
{ select ?latest_curators_assertion where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
} }
{ select ?np ?resource ?resource_label ?description ?date (group_concat(distinct ?type; separator=" ") as ?types) where {
graph npa:graph {
?np rdfs:label ?resource_label ;
dct:description ?description ;
npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date .
?np npx:introduces|npx:describes ?resource .
filter(str(?date) > "2022")
filter exists { ?np npx:hasNanopubType ?fsr_type . values ?fsr_type { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource } }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np npx:hasNanopubType ?_type_iri .
?np npx:hasNanopubType ?type .
values ?type {
fip:Authentication-and-authorization-service
fip:Editor
fip:FAIR-Representation-Service
fip:FAIR-Supporting-Software
fip:Identifier-service
fip:Provenance-Tracking-Service
fip:Registry
fip:Validation-Service
fip:Web-API
fip:Communication-protocol
fip:Crosswalk
fip:FAIR-Implementation-Profile
fip:Knowledge-representation-language
fip:Metadata-schema
fip:Metadata-data-linking-schema
fip:Provenance-model
fip:Semantic-model
fip:Structured-vocabulary
fip:FAIR-Data-Policy
fip:Data-usage-license
fip:Metadata-preservation-policy
fip:Persistency-Policy
fip:FAIR-Practice
}
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
filter not exists {
graph ?da {
?disapprover npx:disapprovesOf ?np .
}
graph npa:graph {
?disapproval_np np:hasAssertion ?da ;
npa:hasValidSignatureForPublicKey ?dpubkey .
filter not exists { ?disapproval_npx npx:invalidates ?disapproval_np ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?dpubkey .
}
}
} group by ?np ?resource ?resource_label ?description ?date }
optional {
graph ?qa {
?qualifier npx:qualifies ?np .
}
graph npa:graph {
?qualification_np np:hasAssertion ?qa ;
npa:hasValidSignatureForPublicKey ?qpubkey .
filter not exists { ?qualification_npx npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
}
optional {
graph npa:graph {
?decl_np npx:hasNanopubType fip:FIP-Declaration .
?decl_np np:hasAssertion ?decl_a ;
npa:hasValidSignatureForPublicKey ?decl_pubkey .
filter not exists { ?decl_npx npx:invalidates ?decl_np ; npa:hasValidSignatureForPublicKey ?decl_pubkey . }
}
graph ?decl_a {
?decl a fip:FIP-Declaration .
# ----
# not really needed but seems to make query faster:
values ?use { fip:declares-current-use-of fip:declares-planned-use-of fip:declares-planned-development-of fip:declares-planned-replacement-of }
?decl ?use ?resource .
# ----
?decl fip:declared-by ?community .
}
}
} group by ?np ?resource ?resource_label ?date ?types ?qualifier ?maxscore order by desc(?maxscore)
This query returns the instances assigned to the given class.
Get instances for class (simple result)
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select ?instance ?instance_label ?date ?np where {
graph ?g {
?instance a ?_class_iri .
}
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npa:hasGraph ?g .
?np np:hasPublicationInfo ?i .
?np dct:created ?date .
}
optional { graph ?g { ?instance rdfs:label ?instanceLabel1 . } }
optional { graph ?g { ?instance dct:title ?instanceLabel2 . } }
optional { graph ?i { ?instance rdfs:label ?instanceLabel3 . } }
optional { graph ?i { ?instance nt:hasLabelFromApi ?instanceLabel4 . } }
bind(coalesce(?instanceLabel1, ?instanceLabel2, ?instanceLabel3, ?instanceLabel4) as ?instance_label)
}
order by desc(?date)
This query returns all the view displays declared for a given resource.
Get view displays
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select distinct ?display ?view (coalesce(?viewKindOptional, ?view) as ?viewKind) ?label ?displayType ?displayMode ?np ?pubkey ?date where {
values ?_resource_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType gen:ViewDisplay .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:embeds ?display .
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?label }
}
graph ?a {
?display gen:isDisplayOfView ?view .
?display gen:isDisplayFor ?_resource_multi_iri .
optional {
values ?displayType { gen:PartLevelViewDisplay gen:TopLevelViewDisplay }
?display a ?displayType .
}
optional {
values ?displayMode { gen:ActivatedViewDisplay gen:DeactivatedViewDisplay }
?display a ?displayMode .
}
}
optional { service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/ec6722efa3b44e0a18aa63afe5964158a1fdb7f0413ea5f23bfddf5c03ca0221> {
select ?view ?viewKindOptional {
graph npa:graph {
?np npx:hasNanopubType gen:ResourceView .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np npx:embeds ?view .
?np np:hasAssertion ?a .
}
graph ?a {
?view a gen:ResourceView .
?view dct:isVersionOf ?viewKindOptional .
}
}
} }
}
order by desc(?date)
This query performs a full-text search on the things embedded in nanopublications.
Full-text search on embedded things
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?thing ?label ?description ?np ?pubkey ?date where {
graph npa:graph {
?np npx:hasNanopubType ?__type_iri .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:embeds ?thing .
?np rdfs:label ?label .
optional { ?np dct:description ?description . }
?np np:hasAssertion ?a .
}
?np search:matches [
search:query ?_query ;
search:property rdfs:label ;
search:score ?score ;
search:snippet ?snippet ] .
}
limit 10
This query returns the study assessment datasets according to PRISMA for the given systematic review.
Get study assessment datasets
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix sl: <https://w3id.org/sciencelive/o/terms/>
select ?studyAssessmentDataset ?studyAssessmentDataset_label ?np ?creator ?date where {
graph npa:graph {
?np npx:hasNanopubType sl:StudyAssessmentDataset .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:signedBy ?creator .
?np npx:introduces ?studyAssessmentDataset .
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?studyAssessmentDataset_label }
}
values ?_systematicReview_multi_iri {}
graph ?a {
?studyAssessmentDataset dct:isPartOf ?_systematicReview_multi_iri .
}
}
This query returns the studies included in the given systematic review.
Get studies of systematic review
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix disco: <http://rdf-vocabulary.ddialliance.org/discovery#>
prefix sl: <https://w3id.org/sciencelive/o/terms/>
select ?study ?study_label ?np ?creator ?date where {
graph npa:graph {
?np npx:hasNanopubType disco:Study .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?study .
?np npx:signedBy ?creator .
}
values ?_systematicReview_multi_iri {}
graph ?a {
?study a disco:Study .
?study rdfs:label ?study_label .
?study dct:source ?source .
?_systematicReview_multi_iri sl:includesStudy ?study .
}
}
This query returns a list of all RO-Crates.
Get RO-Crate list
prefix schema: <http://schema.org/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?rocrate ?rocrate_label ?np ?date where {
graph npa:graph {
?np npx:hasNanopubType npx:RoCrateNanopub .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?rocrate .
?np np:hasAssertion ?a .
}
graph ?a {
?rocrate schema:name ?rocrate_label .
}
}
order by desc(?date)
This query returns all chemicals defined in the given ontology.
Get chemicals for ontology
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?chemical ?chemical_label ?np where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?chemical .
optional { ?np rdfs:label ?label }
}
values ?_ontology_multi_iri {}
graph ?a {
?chemical rdfs:label ?chemical_label .
?chemical dct:isPartOf ?_ontology_multi_iri .
}
}
This query returns PICO questions based on a search query on its population field
Get PICO question by population query
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix pico: <http://data.cochrane.org/ontologies/pico/>
select ?question ?populationDescription ?np ?creator ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?question .
?np npx:signedBy ?creator .
optional { ?np rdfs:label ?label }
}
graph ?a {
?question pico:population ?population .
?population dct:description ?populationDescription .
}
filter(contains(?populationDescription, ?_populationQuery))
}
This query allows for searching for resources (FERs etc.) together with the info about whether GO FAIR qualified them.
Find GO FAIR qualified things
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
select distinct ?thing ?label ?description ?np ?date ?pubkey ?retraction ?newversion ?qualifier ?qualification_np (group_concat(distinct ?recommender; separator=" ") as ?recommenders) (group_concat(distinct ?recommendation_np; separator=" ") as ?recommendation_nps) (count(distinct ?recommender) as ?recommender_count) (sample(?fairAssessmentLevel) as ?fairAssessmentLevel) (sample(?fairAssessmentLevelNp) as ?fairAssessmentLevelNp) where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
graph npa:graph {
?np npx:hasNanopubType ?__type_iri .
?np npa:hasValidSignatureForPublicKey ?pubkey .
optional { ?retraction npx:retracts ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
optional { ?newversion npx:supersedes ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np (npx:introduces|npx:describes) ?thing .
?np rdfs:label ?label .
?np dct:description ?description .
?np dct:created ?date .
filter(str(?date) > "2022")
}
bind(concat(" ",lcase(str(?label))," ",lcase(str(?description))," ") as ?text)
filter( contains(?text, lcase(str(?_searchterm))) )
optional {
graph npa:graph {
?disapproval npa:hasValidSignatureForPublicKey ?dpubkey .
}
graph ?latest_curators_assertion {
?dpubkeys npx:hasPublicKey ?dpubkey .
}
graph npa:graph {
filter not exists { ?disapproval_x npx:invalidates ?disapproval ; npa:hasValidSignatureForPublicKey ?dpubkey . }
?disapproval np:hasAssertion ?da .
}
graph ?da {
?dsomebody ( npx:disapproves-of | npx:disapprovesOf ) ?np .
}
} filter(!bound(?disapproval)) # Faster than "filter not exists" for some reason
optional {
optional {
graph npa:graph {
?recommendation_np npx:hasNanopubType fip:recommended-by .
?recommendation_np npa:hasValidSignatureForPublicKey ?rpubkey .
filter not exists { ?recommendation_np_x npx:invalidates ?recommendation_np ; npa:hasValidSignatureForPublicKey ?rpubkey . }
?recommendation_np np:hasAssertion ?ra .
?recommendation_np np:hasProvenance ?rp .
}
graph ?ra {
?thing fip:recommended-by ?recommender .
}
graph ?rp {
?ra prov:wasDerivedFrom ?rfip_np .
}
graph npa:graph {
?rfip_np npx:hasNanopubType fip:Reference-FAIR-Implementation-Profile .
?rfip_np npa:hasValidSignatureForPublicKey ?rfip_pubkey .
?latest_rfip_np npa:hasValidSignatureForPublicKey ?rfip_pubkey .
filter not exists { ?latest_rfip_npx npx:invalidates ?latest_rfip_np ; npa:hasValidSignatureForPublicKey ?rfip_pubkey . }
}
graph npa:networkGraph {
?latest_rfip_np (npx:supersedes)* ?rfip_np .
}
graph ?rfip_qa {
?rfip_qualifier npx:qualifies ?latest_rfip_np .
}
graph npa:graph {
?rfip_qualification_np np:hasAssertion ?rfip_qa .
?rfip_qualification_np npx:hasNanopubType npx:qualifies .
?rfip_qualification_np npa:hasValidSignatureForPublicKey ?rfip_qpubkey .
filter not exists { ?rfip_qualification_np_x npx:invalidates ?rfip_qualification_np ; npa:hasValidSignatureForPublicKey ?rfip_qpubkey . }
}
graph ?latest_curators_assertion {
?rfip_qpubkeys npx:hasPublicKey ?rfip_qpubkey .
}
}
graph npa:graph {
?qualification_np npx:hasNanopubType npx:qualifies .
?qualification_np npa:hasValidSignatureForPublicKey ?qpubkey .
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
graph npa:graph {
filter not exists { ?qualification_np_x npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
?qualification_np np:hasAssertion ?qa .
}
graph ?qa {
?qualifier npx:qualifies ?np .
}
}
optional {
graph npa:graph {
?fairAssessmentLevelNp npx:hasNanopubType fip:has-FAIR-assessment .
?fairAssessmentLevelNp npa:hasValidSignatureForPublicKey ?lpubkey .
}
graph ?latest_curators_assertion {
?lpubkeys npx:hasPublicKey ?lpubkey .
}
graph npa:graph {
filter not exists { ?fairAssessmentLevelNp_x npx:invalidates ?fairAssessmentLevelNp ; npa:hasValidSignatureForPublicKey ?lpubkey . }
?fairAssessmentLevelNp np:hasAssertion ?la .
}
graph ?la {
?thing fip:has-FAIR-assessment ?fairAssessmentLevel .
}
} filter(!bound(?levelNp)) # Faster than "filter not exists" for some reason
}
group by ?thing ?label ?description ?np ?date ?pubkey ?retraction ?newversion ?qualifier ?qualification_np
order by desc(?recommender_count) asc(?label)
This query returns all search strategies for systematic reviews.
Get systematic review search strategies
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix sl: <https://w3id.org/sciencelive/o/terms/>
select ?searchStrategy ?searchStrategy_label ?creator ?date ?np where {
graph npa:graph {
?np npx:hasNanopubType sl:SystematicReviewSearchStrategy .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:signedBy ?creator .
?np npx:introduces ?searchStrategy .
?np rdfs:label ?searchStrategy_label .
}
}
This query returns all PICO-based research questions.
Get PICO research questions
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix pico: <http://data.cochrane.org/ontologies/pico/>
select ?question ?question_label ?creator ?date ?np where {
graph npa:graph {
?np npx:hasNanopubType pico:PICO .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:signedBy ?creator .
?np npx:introduces ?question .
?np rdfs:label ?question_label .
}
}
This query returns all definition nanopublications that define the elements of a given OWL ontology, like classes and properties.
Get the definitions of an ontology
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
select distinct ?np ?term ?term_label ?creator ?date where {
values ?_ontology_multi_iri {}
graph npa:graph {
values ?termType { owl:Class rdf:Property owl:ObjectProperty owl:DatatypeProperty owl:NamedIndividual }
?np npx:hasNanopubType ?termType .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?term .
?np npx:signedBy ?creator .
?np np:hasAssertion ?a .
}
graph ?a {
?term dct:partOf ?_ontology_multi_iri .
optional { ?term rdfs:label ?term_label . }
}
}
order by ?label
This query returns the nanopublication indexes that are declared to be part of a given resource
Get indexes for resource
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?np (min(?label) as ?np_label) (count(?element) as ?size) ?creator ?date where {
values ?_resource_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType npx:NanopubIndex .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np rdfs:label ?label .
?np npx:signedBy ?creator .
}
graph ?a {
?np dct:isPartOf ?_resource_multi_iri .
?np npx:includesElement ?element .
}
}
group by ?np ?creator ?date
This query returns the publications that are part of the given outlet (e.g. journal).
Get the publications for outlet
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix fabio: <http://purl.org/spar/fabio/>
select ?publication ?publication_label ?publicationDate where {
values ?_outlet_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType fabio:ScholarlyWork .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np npx:introduces ?publication .
?np np:hasAssertion ?a .
}
graph ?a {
?publication dct:title ?publication_label .
?publication dct:date ?publicationDate .
?publication dct:isPartOf ?_outlet_multi_iri .
}
}
order by desc(?publicationDate)
This query returns the FAIR Implementation Profiles (FIPs) per scientific domain.
FIP by domain
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?fipnp ?fip ?fip_label ?community (min(?communitylabel) as ?community_label) (group_concat(distinct ?domain; separator=" ") as ?domains) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date ;
npx:hasNanopubType fip:FAIR-Implementation-Community ;
np:hasAssertion ?a .
?np npx:introduces|npx:describes ?community .
?np dct:created ?date . filter(str(?date) > "2022")
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?a {
?community a fip:FAIR-Implementation-Community ;
rdfs:label ?communitylabel ;
fip:has-research-domain ?domain .
?community fip:has-research-domain ?domainx .
}
graph <http://purl.org/np/RArRAOwj4QOppEPCR8WVvOBmrX7oRKOrPi-asX-7AY66I#assertion> {
?domainx rdfs:subClassOf* ?_domain_iri .
}
service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/92efd7a0ea4be4e01ec0817ccec87f975203b30addcc3166a204498ffed73b66> { # (https://w3id.org/fair/fip/terms/FAIR-Implementation-Profile)
select ?fipnp ?fip ?fip_label ?community {
graph npa:graph {
?fipnp np:hasAssertion ?fa .
optional { ?fipnp rdfs:label ?fip_label . }
?fipnp npx:introduces|npx:describes ?fip .
?fipnp npa:hasValidSignatureForPublicKey ?fpubkey .
?fipnp npx:hasNanopubType fip:FAIR-Implementation-Profile .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?fipnpx npx:invalidates ?fipnp ; npa:hasValidSignatureForPublicKey ?fpubkey . }
}
graph ?fa {
?fip fip:declared-by ?community .
}
}
}
}
group by ?fipnp ?fip ?fip_label ?community
This query returns the domains of all FAIR Implementation Profiles (FIPs).
Get FIP domains
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select ?domain ?domain_label (count(distinct ?fipnp) as ?count) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date ;
npx:hasNanopubType fip:FAIR-Implementation-Community ;
np:hasAssertion ?a .
?np npx:introduces|npx:describes ?community .
?np dct:created ?date . filter(str(?date) > "2022")
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?a {
?community a fip:FAIR-Implementation-Community ;
rdfs:label ?communitylabel .
?community fip:has-research-domain ?domainx .
}
graph <http://purl.org/np/RArRAOwj4QOppEPCR8WVvOBmrX7oRKOrPi-asX-7AY66I#assertion> {
?domainx rdfs:subClassOf* ?domain .
}
graph <https://w3id.org/np/RAGL6Knsrg3GPi4Guhkn4NRXLxgGxoHngDXYwcrG3lUMA#assertion> {
?domain rdfs:label ?domain_label .
}
service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/92efd7a0ea4be4e01ec0817ccec87f975203b30addcc3166a204498ffed73b66> { # (https://w3id.org/fair/fip/terms/FAIR-Implementation-Profile)
select ?fipnp ?fip ?fiplabel ?community {
graph npa:graph {
?fipnp np:hasAssertion ?fa .
optional { ?fipnp rdfs:label ?fiplabel . }
?fipnp npx:introduces|npx:describes ?fip .
?fipnp npa:hasValidSignatureForPublicKey ?fpubkey .
?fipnp npx:hasNanopubType fip:FAIR-Implementation-Profile .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?fipnpx npx:invalidates ?fipnp ; npa:hasValidSignatureForPublicKey ?fpubkey . }
}
graph ?fa {
?fip fip:declared-by ?community .
}
}
}
}
group by ?domain ?domain_label
order by desc(?count)
This query returns the domains of all FIP communities.
Get FIP community domains
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
select ?domain ?domain_label (count(distinct ?np) as ?count) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey ;
npx:hasNanopubType fip:FAIR-Implementation-Community ;
np:hasAssertion ?a .
?np dct:created ?date . filter(str(?date) > "2022")
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?a {
?community a fip:FAIR-Implementation-Community ;
rdfs:label ?label ;
rdfs:comment ?comment ;
fip:has-research-domain ?domain .
}
graph <https://w3id.org/np/RAGL6Knsrg3GPi4Guhkn4NRXLxgGxoHngDXYwcrG3lUMA#assertion> {
?domain rdfs:label ?domain_label .
}
}
group by ?domain ?domain_label
order by desc(?count)
This query returns all concepts that specify to be in the given SKOS scheme.
Get the concepts of a SKOS scheme
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
select ?concept ?label ?broaderConcept (?definition as ?description) ?np (group_concat(?flagLabel; separator=" ") as ?flags) where {
values ?_scheme_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType skos:Concept .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?concept .
?np np:hasAssertion ?a .
}
optional {
graph npa:graph {
values (?flag ?flagLabel) { ( npx:ExampleNanopub "Example") ( npx:DraftNanopub "Draft") }
?np npx:hasNanopubType ?flag .
}
}
graph ?a {
?concept skos:inScheme ?_scheme_multi_iri .
optional { ?concept skos:broader ?broaderConcept . }
optional { ?concept skos:prefLabel ?label . }
optional { ?concept skos:definition ?definition . }
}
}
group by ?concept ?label ?broaderConcept ?definition ?np
order by ?label
This query returns all Spaces, i.e. groups, projects, events, etc.
Get Spaces
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?space ?label ?type ?np ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?space .
?np npx:hasNanopubType <https://w3id.org/kpxl/gen/terms/Space> .
?np npx:hasNanopubType ?__type_iri .
filter(strstarts(str(?__type_iri), "https://w3id.org/kpxl/gen/terms/"))
filter(?__type_iri != <https://w3id.org/kpxl/gen/terms/Space>)
bind(?__type_iri as ?type)
?np rdfs:label ?label .
?np np:hasAssertion ?a .
filter not exists {
?npx npx:introduces ?space .
?npx dct:created ?datex .
filter(?datex > ?date)
}
}
} order by ?label
This query returns the relations (predicate-object) of the assertion part of an introduction nanopublication for a given resource.
Get intro relations
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?pred ?obj where {
bind(?_resourceNp_iri as ?np)
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np np:hasAssertion ?a .
?np npx:introduces ?_resource_iri .
}
graph ?a {
?_resource_iri ?pred ?obj .
}
}
This query returns all the nanopubs that introduce, describe, or embed the given term.
Get term definitions
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?np ?npLabel ?creator ?date where {
values ?__pubkey_multi {}
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?__pubkey_multi .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?__pubkey_multi . }
?np dct:created ?date .
?np npx:introduces|npx:describes|npx:embeds ?_term_iri .
optional { ?np rdfs:label ?npLabel . }
optional { ?np npx:signedBy ?creator . }
}
}
order by desc(?date)
This query returns all maintained resources and their nanopublications, optionally filtered by space.
Get maintained resources
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?resource ?label (?__space_multi_iri as ?space) ?namespace ?np ?pubkey ?date where {
values ?__space_multi_iri {}
graph npa:graph {
?np npx:hasNanopubType gen:MaintainedResource .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?resource .
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?label }
}
graph ?a {
?resource gen:isMaintainedBy ?__space_multi_iri .
optional { ?resource gen:hasNamespace ?namespace . }
}
}
order by desc(?date)
The query returns all FAIR Supporting Resources (FSRs).
Get all FSRs
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?thing ?label ?description (group_concat(distinct ?type; separator=" ") as ?types) ?np ?date where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
graph npa:graph {
?np rdfs:label ?label ;
npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date .
?np npx:introduces|npx:describes ?thing .
filter(str(?date) > "2022")
filter exists { ?np npx:hasNanopubType ?fsr_type . values ?fsr_type { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource fip:Available-FAIR-Enabling-Resource } }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np npx:hasNanopubType ?type .
filter(?type != fip:FAIR-Enabling-Resource)
filter(?type != fip:Available-FAIR-Enabling-Resource)
filter(?type != fip:FAIR-Enabling-Resource-to-be-Developed)
filter(?type != fip:FAIR-Supporting-Resource)
filter(?type != fip:Available-FAIR-Supporting-Resource)
filter(?type != fip:FAIR-Supporting-Resource-to-be-Developed)
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np np:hasAssertion ?a .
}
graph ?a {
?thing rdfs:comment ?description .
}
filter not exists {
graph npa:graph {
?disapproval_np npx:hasNanopubType <http://purl.org/nanopub/x/disapprovesOf> .
?disapproval_np np:hasAssertion ?da ;
npa:hasValidSignatureForPublicKey ?dpubkey .
filter not exists { ?disapproval_npx npx:invalidates ?disapproval_np ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?dpubkey .
}
graph ?da {
?disapprover npx:disapprovesOf ?np .
}
}
} group by ?np ?thing ?description ?label ?date order by ?label
This query runs a text search on templates.
Search templates
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?thing ?label ?description ?pubkey ?date where {
graph npa:graph {
?thing npx:hasNanopubType nt:AssertionTemplate .
filter not exists { ?thing npx:hasNanopubType nt:UnlistedTemplate . }
?thing npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?thing ; npa:hasValidSignatureForPublicKey ?pubkey . }
?thing dct:created ?date .
?thing rdfs:label ?label .
optional { ?thing dct:description ?description . }
}
?thing search:matches [
search:query ?_query ;
search:property rdfs:label ;
search:score ?score ;
search:snippet ?snippet ] .
}
limit 10
This query returns all highlighted implied relations published as Web Annotations.
Get highlighted implied relations
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix oa: <http://www.w3.org/ns/oa#>
select ?subject ?predicate ?object ?source ?np ?label ?annotator ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:introduces ?annotation .
?np npx:signedBy ?annotator .
optional { ?np rdfs:label ?label }
}
graph ?a {
?annotation a oa:Annotation .
?annotation oa:motivatedBy oa:highlighting .
?annotation oa:hasTarget ?target .
optional { ?target oa:hasSource ?sourcex . }
bind(coalesce(?sourcex, ?target) as ?source)
?annotation oa:hasBody ?relation .
?relation rdf:subject ?subject .
?relation rdf:predicate ?predicate .
?relation rdf:object ?object .
}
}
order by desc(?date)
This query returns all FAIR Communities.
Get all FAIR Communities
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
select distinct ?communityLabel ?community ?np where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
graph npa:graph {
?np rdfs:label ?communityLabel ;
npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date ;
npx:hasNanopubType fip:FAIR-Implementation-Community ;
npx:introduces ?community ;
np:hasAssertion ?a .
?np dct:created ?date . filter(str(?date) > "2022")
filter(strends(str(?date), "Z"))
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
filter not exists {
graph npa:graph {
?disapproval_np np:hasAssertion ?da ;
npa:hasValidSignatureForPublicKey ?dpubkey .
filter not exists { ?disapproval_npx npx:invalidates ?disapproval_np ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?dpubkey .
}
graph ?da {
?disapprover npx:disapprovesOf ?np .
}
}
}
order by ?communityLabel
This query returns the roles of a given Space.
Get Space member roles
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix schema: <http://schema.org/>
select ?role ?roleLabel ?roleName ?roleTitle ?roleAssignmentTemplate (group_concat(?reg; separator=' ') as ?regularProperties) (group_concat(?inv; separator=' ') as ?inverseProperties) ?np ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?rel_a .
}
graph ?rel_a {
values ?_space_multi_iri {}
?_space_multi_iri gen:hasRole ?role .
}
graph npa:graph {
?role_np npx:embeds ?role .
?role_np np:hasAssertion ?role_a .
}
graph ?role_a {
?role a gen:SpaceMemberRole .
?role rdfs:label ?roleLabel .
?role dct:title ?roleTitle .
?role schema:name ?roleName .
optional { ?role gen:hasRoleAssignmentTemplate ?roleAssignmentTemplate }
optional { ?role gen:hasRegularProperty ?reg }
optional { ?role gen:hasInverseProperty ?inv }
}
} group by ?role ?roleLabel ?roleName ?roleTitle ?roleAssignmentTemplate ?np ?pubkey ?date
order by desc(?date)
This query returns plain-text messages about the given Space.
Get messages about Space
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix schema: <https://schema.org/>
select ?text ?np ?user ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np dct:creator ?user .
?np np:hasAssertion ?a .
}
graph ?a {
?a rdfs:label ?text .
values ?_space_multi_iri {}
?a schema:about ?_space_multi_iri .
}
} order by desc(?date)
This query returns all the view declarations for a given Space.
Get views for Space
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?query ?title ?np ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?view a gen:SpaceQueryView .
?view dct:title ?title .
?view gen:hasViewQuery ?query .
values ?_space_multi_iri {}
?view gen:isViewForSpace ?_space_multi_iri .
}
} order by desc(?date)
This query returns an monthly overview of published nanopublications by types for the past 12 months for the given pubkey hashes.
Get type overview of monthly nanopubs by pubkeys
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?type ?month ?npCount ?npCountType where {
{ select ?type ?month (count(?np) as ?npCount) where {
graph npa:graph {
values ?_pubkey_multi {}
?np npa:hasValidSignatureForPublicKeyHash ?_pubkey_multi .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?_pubkey_multi . }
?np dct:created ?date .
?np npx:hasNanopubType ?type .
bind(substr(str(?date), 0, 8) as ?month)
bind(now() as ?now)
bind(concat(str(year(?now)), '-', if(month(?now)>9,'','0'), str(month(?now))) as ?lastMonth)
bind(concat(str(year(?now)-1), '-', if(month(?now)>9,'','0'), str(month(?now))) as ?firstMonth)
filter(?month > ?firstMonth && ?month <= ?lastMonth)
}
}
group by ?type ?month
order by ?type desc(?month)
}
{ select ?type (count(?np) as ?npCountType) where {
graph npa:graph {
values ?_pubkey_multi {}
?np npa:hasValidSignatureForPublicKeyHash ?_pubkey_multi .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?_pubkey_multi . }
?np dct:created ?date .
?np npx:hasNanopubType ?type .
bind(substr(str(?date), 0, 8) as ?month)
bind(now() as ?now)
bind(concat(str(year(?now)), '-', if(month(?now)>9,'','0'), str(month(?now))) as ?lastMonth)
bind(concat(str(year(?now)-1), '-', if(month(?now)>9,'','0'), str(month(?now))) as ?firstMonth)
filter(?month > ?firstMonth && ?month <= ?lastMonth)
}
}
group by ?type
order by desc(?npCountType)
}
}
order by desc(?npCountType) ?type desc(?month)
This query returns plain-text messages about Lecture 9 of Knowledge Organization.
Messages about Lecture 9 of Knowledge Organization
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix schema: <https://schema.org/>
select ?text ?np ?user ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np dct:creator ?user .
?np np:hasAssertion ?a .
}
graph ?a {
?a rdfs:label ?text .
?a schema:about <https://w3id.org/spaces/knowledgepixels/ko2025lecture9> .
}
} order by desc(?date)
This query returns the latest nanopublications by pubkey hashes.
Get the latest nanopubs by pubkeys
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select distinct ?np ?label ?date where {
graph npa:graph {
values ?_memberHash_multi {}
?np npa:hasValidSignatureForPublicKeyHash ?_memberHash_multi .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?_memberHash_multi . }
?np dct:created ?date .
optional { ?np rdfs:label ?label . }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
}
} order by desc(?date) limit 100
This query returns the roles of a given Space.
Get Space member roles (obsolete)
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?role ?roleName ?isInverse (group_concat(?eq; separator=' ') as ?equivalent) (group_concat(?inv; separator=' ') as ?inverse) ?np ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?role a gen:SpaceMemberRole .
?role dct:title ?roleName .
values ?_space_multi_iri {}
?role gen:isRoleOf ?_space_multi_iri .
bind( exists { ?role a gen:InverseSpaceMemberRole } as ?isInverse )
optional { ?role owl:equivalentProperty ?eq }
optional { ?role owl:inverseOf ?inv }
}
} group by ?role ?roleName ?isInverse ?np ?pubkey ?date
order by desc(?date)
This query returns plain-text messages about the Nano Session #24.
Messages about Nano Session #24
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix schema: <https://schema.org/>
select ?text ?np ?creator ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np dct:creator ?creator .
?np np:hasAssertion ?a .
}
graph ?a {
?a rdfs:label ?text .
?a schema:about <https://w3id.org/spaces/nanopub/nanosessions/session24> .
}
} order by desc(?date)
This query returns all the view declarations for a given Space.
Get views for Space
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?query ?np ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
values ?_space_multi_iri {}
?_space_multi_iri gen:hasView ?query .
}
} order by desc(?date)
This query returns all pinned template declarations for the given Spaces.
Get pinned templates
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?template ?tag ?np ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?label }
}
graph ?a {
values ?_space_multi_iri {}
?_space_multi_iri gen:hasPinnedTemplate ?template .
optional { ?template gen:hasPinGroupTag ?tag . }
}
} order by desc(?date)
This query returns all pinned querie declarations for the given Space.
Get pinned queries
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?query ?tag ?np ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?label }
}
graph ?a {
values ?_space_multi_iri {}
?_space_multi_iri gen:hasPinnedQuery ?query .
optional { ?query gen:hasPinGroupTag ?tag . }
}
} order by desc(?date)
This query returns the members (of different roles) of a given Space.
Get Space members
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?member ?role ?np ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
values ?_space_multi_iri {}
{
{ graph ?a {
values ?__role_multi_iri {}
filter(bound(?__role_multi_iri))
bind(?__role_multi_iri as ?r)
?member ?r ?_space_multi_iri .
bind(?r as ?role)
} }
union
{ graph ?a {
values ?__invrole_multi_iri {}
filter(bound(?__invrole_multi_iri))
bind(?__invrole_multi_iri as ?i)
?_space_multi_iri ?i ?member .
bind(?i as ?role)
} }
}
} order by desc(?date)
This query returns the admins of a given unit.
Get admins
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?admin ?np ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
values ?_space_multi_iri {}
?_space_multi_iri gen:hasAdmin ?admin .
}
}
Optional multi-placeholder test
Optional multi-placeholder test
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?np ?label ?date where {
graph npa:graph {
values ?__type_multi_iri {}
?np npx:hasNanopubType ?__type_multi_iri .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
optional { ?np rdfs:label ?label }
}
}
order by desc(?date)
limit 100
Multi-placeholder test
Multi-placeholder test
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?np ?label ?date where {
graph npa:graph {
values ?_type_multi_iri {}
?np npx:hasNanopubType ?_type_multi_iri .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
?np dct:created ?date .
optional { ?np rdfs:label ?label }
}
}
order by desc(?date)
limit 100
This query returns the 10 nanopublications that were most recently published.
Get the most recent nanopublications
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select distinct ?np ?label ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?date .
optional { ?np rdfs:label ?label . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
}
} order by desc(?date) limit 100
This query returns the latest users who have introduced themselves in an intro nanopub.
Get latest users
prefix np: <http://www.nanopub.org/nschema#>
prefix npx: <http://purl.org/nanopub/x/>
prefix npa: <http://purl.org/nanopub/admin/>
prefix dct: <http://purl.org/dc/terms/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?user (min(?date) as ?date) where {
graph npa:graph {
?intronp npa:hasValidSignatureForPublicKey ?introPubkey .
filter not exists { ?intronpx npx:retracts ?intronp ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?intronp npx:supersedes ?intronpx . }
?intronp dct:created ?date .
?intronp np:hasAssertion ?a .
}
graph ?a {
?keydeclaration npx:declaredBy ?user .
?keydeclaration npx:hasPublicKey ?pubkey .
}
}
group by ?user
order by desc(?date)
limit 100
This query allows for searching for resources (FERs etc.) together with the info about whether GO FAIR qualified them.
Find valid GO FAIR qualified things
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
select distinct ?thing ?label ?description ?np ?date ?pubkey ?qualifier ?qualification_np (group_concat(distinct ?recommender; separator=" ") as ?recommenders) (group_concat(distinct ?recommendation_np; separator=" ") as ?recommendation_nps) (count(distinct ?recommender) as ?recommender_count) where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
graph npa:graph {
?np npx:hasNanopubType ?__type_iri .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np (npx:introduces|npx:describes) ?thing .
?np rdfs:label ?label .
?np dct:description ?description .
?np dct:created ?date .
filter(str(?date) > "2022")
}
bind(concat(" ",lcase(str(?label))," ",lcase(str(?description))," ") as ?text)
filter( contains(?text, lcase(str(?_searchterm))) )
optional {
graph npa:graph {
?disapproval npa:hasValidSignatureForPublicKey ?dpubkey .
}
graph ?latest_curators_assertion {
?dpubkeys npx:hasPublicKey ?dpubkey .
}
graph npa:graph {
filter not exists { ?disapproval_x npx:invalidates ?disapproval ; npa:hasValidSignatureForPublicKey ?dpubkey . }
?disapproval np:hasAssertion ?da .
}
graph ?da {
?dsomebody ( npx:disapproves-of | npx:disapprovesOf ) ?np .
}
} filter(!bound(?disapproval)) # Faster than "filter not exists" for some reason
optional {
optional {
graph npa:graph {
?recommendation_np npx:hasNanopubType fip:recommended-by .
?recommendation_np npa:hasValidSignatureForPublicKey ?rpubkey .
filter not exists { ?recommendation_np_x npx:invalidates ?recommendation_np ; npa:hasValidSignatureForPublicKey ?rpubkey . }
?recommendation_np np:hasAssertion ?ra .
?recommendation_np np:hasProvenance ?rp .
}
graph ?ra {
?thing fip:recommended-by ?recommender .
}
graph ?rp {
?ra prov:wasDerivedFrom ?rfip_np .
}
graph npa:graph {
?rfip_np npx:hasNanopubType fip:Reference-FAIR-Implementation-Profile .
?rfip_np npa:hasValidSignatureForPublicKey ?rfip_pubkey .
?latest_rfip_np npa:hasValidSignatureForPublicKey ?rfip_pubkey .
filter not exists { ?latest_rfip_npx npx:invalidates ?latest_rfip_np ; npa:hasValidSignatureForPublicKey ?rfip_pubkey . }
}
graph npa:networkGraph {
?latest_rfip_np (npx:supersedes)* ?rfip_np .
}
graph ?rfip_qa {
?rfip_qualifier npx:qualifies ?latest_rfip_np .
}
graph npa:graph {
?rfip_qualification_np np:hasAssertion ?rfip_qa .
?rfip_qualification_np npx:hasNanopubType npx:qualifies .
?rfip_qualification_np npa:hasValidSignatureForPublicKey ?rfip_qpubkey .
filter not exists { ?rfip_qualification_np_x npx:invalidates ?rfip_qualification_np ; npa:hasValidSignatureForPublicKey ?rfip_qpubkey . }
}
graph ?latest_curators_assertion {
?rfip_qpubkeys npx:hasPublicKey ?rfip_qpubkey .
}
}
graph npa:graph {
?qualification_np npx:hasNanopubType npx:qualifies .
?qualification_np npa:hasValidSignatureForPublicKey ?qpubkey .
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
graph npa:graph {
filter not exists { ?qualification_np_x npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
?qualification_np np:hasAssertion ?qa .
}
graph ?qa {
?qualifier npx:qualifies ?np .
}
}
}
group by ?thing ?label ?description ?np ?date ?pubkey ?retraction ?newversion ?qualifier ?qualification_np
order by desc(?recommender_count) asc(?label)
This query performs a full-text search on the things introduced in nanopublications.
Full-text search on things
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?thing ?label ?description ?np ?pubkey ?date where {
graph npa:graph {
?np npx:hasNanopubType ?__type_iri .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:introduces|npx:describes|npx:embeds ?thing .
?np rdfs:label ?label .
optional { ?np dct:description ?description . }
?np np:hasAssertion ?a .
}
?np search:matches [
search:query ?_query ;
search:property rdfs:label ;
search:score ?score ;
search:snippet ?snippet ] .
}
limit 10
Returns the number of active users per quarter since 2022. Two sequences of non-organic acquisition (as part of university course) are filtered out.
Get quarterly active organic user count
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?quarter (count(distinct ?userid) as ?usercount) where {
{ graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:creator ?userid .
?np dct:created ?date .
} }
union
{
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasAssertion ?assertion .
?np np:hasProvenance ?prov .
?np dct:created ?date .
}
graph ?prov {
?assertion prov:wasAttributedTo ?userid .
}
}
filter not exists {
graph npa:graph { ?np npa:hasSubIri ?userid . }
}
filter(str(?date) > "2022")
filter(str(?date) < "2023-10-03" || str(?date) > "2023-10-12")
filter(str(?date) < "2024-09-27" || str(?date) > "2024-10-07")
bind(substr(str(?date), 0, 8) as ?month)
bind(replace(?month, "-0[1-3]$", "-Q1") as ?quarter_temp1)
bind(replace(?quarter_temp1, "-0[4-6]$", "-Q2") as ?quarter_temp2)
bind(replace(?quarter_temp2, "-0[7-9]$", "-Q3") as ?quarter_temp3)
bind(replace(?quarter_temp3, "-1[0-9]$", "-Q4") as ?quarter)
}
group by ?quarter
order by desc(?quarter)
This query returns the members of a given unit.
Get members
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?member ?np ?pubkeyhash ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkeyhash .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkeyhash . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?_unit_iri foaf:member ?member .
}
}
This query returns a filtered list of nanopublicatoins.
Get filtered nanopub list
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?np ?label ?date (group_concat(distinct ?t; separator=' ') as ?types) ?pubkey where {
graph npa:graph {
#=================== MULTI-VALUE PLACEHOLDER ====================#------ config: ------
{ select ?pubkey { # <- VAR pubkey
#bind("1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 2a6683923dcbd9810ef4e5debda8c4152c297b12303e286622bbbb0ed1884384" as ?_pubkeys)
bind(?__pubkeys as ?v) # <- VAR _pubkeys
{select*{optional{?a ?b ?c}}limit 1} # (for some Virtuoso v.) #
values ?x{0 1 2 3 4 5 6 7 8 9} values ?y{0 1 2 3 4 5 6 7 8 9} #
bind((10*?x)+?y as ?n) # (works for a maximum of 100 values) #
bind(" " as ?sep) # (separator as regex-compatible character) # <- CONST sep
bind(concat("^([^",?sep,"]*",?sep,"){",str(?n),"}") as ?p) #
bind(concat(?sep,".*") as ?p0) #
filter(if(?n=0,true,regex(?v,?p))) # (=0 check for Virtuoso) #
bind(replace(if(?n=0,?v,replace(?v,?p,"")),?p0,"") as ?pubkey) # <- VAR pubkey
} } #
#================================================================#---------------------
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
#=================== MULTI-VALUE PLACEHOLDER ====================#------ config: ------
{ select ?type { # <- VAR type
#bind("https://w3id.org/kpxl/grlc/grlc-query http://purl.org/nanopub/x/ExampleNanopub" as ?_types)
bind(?__types as ?v) # <- VAR _types
{select*{optional{?a ?b ?c}}limit 1} # (for some Virtuoso v.) #
values ?x{0 1 2 3 4 5 6 7 8 9} values ?y{0 1 2 3 4 5 6 7 8 9} #
bind((10*?x)+?y as ?n) # (works for a maximum of 100 values) #
bind(" " as ?sep) # (separator as regex-compatible character) # <- CONST sep
bind(concat("^([^",?sep,"]*",?sep,"){",str(?n),"}") as ?p) #
bind(concat(?sep,".*") as ?p0) #
filter(if(?n=0,true,regex(?v,?p))) # (=0 check for Virtuoso) #
bind(replace(if(?n=0,?v,replace(?v,?p,"")),?p0,"") as ?typel) # <- VAR type
bind(uri(?typel) as ?type)
} } #
#================================================================#---------------------
?np npx:hasNanopubType ?type .
?np npx:hasNanopubType ?t .
?np dct:created ?date .
#bind("2024-11-30" as ?__endtime)
bind(coalesce(?__endtime, "9999") as ?endtime)
filter(?endtime > str(?date))
#bind("2024-11-29" as ?__starttime)
bind(coalesce(?__starttime, "0000") as ?starttime)
filter(?starttime < str(?date))
optional { ?np rdfs:label ?label }
}
}
group by ?np ?label ?date ?pubkey
order by desc(?date)
limit 100
This query returns an monthly overview of published nanopublications by types for the past 12 months for the given creator.
Get type overview of nanopubs last 12 months
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?type ?month ?npCount ?npCountType where {
{ select ?type ?month (count(?np) as ?npCount) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np dct:creator ?_creator_iri .
?np npx:hasNanopubType ?type .
bind(substr(str(?date), 0, 8) as ?month)
bind(now() as ?now)
bind(concat(str(year(?now)), '-', if(month(?now)>9,'','0'), str(month(?now))) as ?lastMonth)
bind(concat(str(year(?now)-1), '-', if(month(?now)>9,'','0'), str(month(?now))) as ?firstMonth)
filter(?month > ?firstMonth && ?month <= ?lastMonth)
}
}
group by ?type ?month
order by ?type desc(?month)
}
{ select ?type (count(?np) as ?npCountType) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np dct:creator ?_creator_iri .
?np npx:hasNanopubType ?type .
bind(substr(str(?date), 0, 8) as ?month)
bind(now() as ?now)
bind(concat(str(year(?now)), '-', if(month(?now)>9,'','0'), str(month(?now))) as ?lastMonth)
bind(concat(str(year(?now)-1), '-', if(month(?now)>9,'','0'), str(month(?now))) as ?firstMonth)
filter(?month > ?firstMonth && ?month <= ?lastMonth)
}
}
group by ?type
order by desc(?npCountType)
}
}
order by desc(?npCountType) ?type desc(?month)
This query returns the user IDs of all active users of the last 6 months.
Get active users of last 6 months
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix prov: <http://www.w3.org/ns/prov#>
select distinct ?user where {
{ graph npa:graph {
bind(now() - "P6M"^^xsd:duration as ?sixmonthsago)
?np dct:creator ?user .
?np dct:created ?date .
filter(?date > ?sixmonthsago)
} }
union
{
graph npa:graph {
bind(now() - "P6M"^^xsd:duration as ?sixmonthsago)
?np np:hasAssertion ?assertion .
?np np:hasProvenance ?prov .
?np dct:created ?date .
filter(?date > ?sixmonthsago)
}
graph ?prov {
?assertion prov:wasAttributedTo ?user .
}
}
filter not exists {
graph npa:graph { ?np npa:hasSubIri ?user . }
}
} order by ?user
This query returns the list of people who declared their participation in the WikiCite 2025 event.
Get the WikiCite 2025 participants
prefix wd: <http://www.wikidata.org/entity/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?participant ?name ?np ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i .
}
graph ?a {
?participant wd:P1344 wd:Q133846580 .
}
optional { graph ?i {
?participant foaf:name ?name .
} }
} order by desc(?date)
This query returns all event participation declarations together with roles like "organizer".
Get event participants
prefix wd: <http://www.wikidata.org/entity/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
prefix http: <http://www.w3.org/2011/http#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?event ?eventLabel ?participant ?participantLabel ?role ?np ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i .
}
{
{ graph ?a {
?participant wd:P1344 ?event .
bind("participant" as ?role)
} }
union
{ graph ?a {
?event wd:P664 ?participant .
bind("organizer" as ?role)
} }
}
optional { graph ?i {
?participant foaf:name ?participantLabel1 .
} }
optional { graph ?i {
?participant rdfs:label ?participantLabel2 .
} }
bind(coalesce(?participantLabel1, ?participantLabel2) as ?participantLabel)
optional { graph ?i {
?event rdfs:label ?eventLabel .
} }
} order by desc(?date)
This query returns all Nanodash projects
Get Nanodash projects
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?project ?label ?np ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:introduces ?project .
filter(strstarts(str(?project), "https://w3id.org/kpxl/custom/project/terms/"))
?np npx:hasNanopubType <https://w3id.org/kpxl/gen/terms/NanodashProject> .
?np rdfs:label ?label .
?np np:hasAssertion ?a .
filter not exists {
?npx npx:introduces ?project .
?npx dct:created ?datex .
filter(?datex > ?date)
}
}
} order by ?label
This query returns all places (geosparql:Feature) located in Africa.
Get places in Africa
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix geosparql: <http://www.opengis.net/ont/geosparql#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix geof: <http://www.opengis.net/def/function/geosparql/>
select distinct ?np ?location ?locationLabel ?wkt where {
graph ?assertion {
?paper dct:spatial ?location .
?location a geosparql:Feature .
?location rdfs:label ?locationLabel .
?location geosparql:hasGeometry ?geometry .
?geometry geosparql:asWKT ?wkt .
# Find locations that intersect with East Africa bounding box
filter(geof:sfIntersects(strdt(?wkt, geosparql:wktLiteral), "POLYGON((28 -12, 40 -12, 40 5, 28 5, 28 -12))"^^geosparql:wktLiteral))
}
graph npa:graph {
?np np:hasAssertion ?assertion .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
}
This query returns an overview of the types of FAIR-Enabling Resources.
Get types of FAIR-Enabling Resources
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
select ?type (count(distinct ?np) as ?count) where {
{
bind(iri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(fip:FAIR-Enabling-Resource)))) as ?fer_service)
service ?fer_service {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey ;
npx:hasNanopubType fip:FAIR-Enabling-Resource .
?np dct:created ?date . filter(str(?date) > "2022")
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npx:hasNanopubType ?type .
values ?type {
fip:Authentication-and-authorization-service
fip:Editor
fip:FAIR-Representation-Service
fip:FAIR-Supporting-Software
fip:Identifier-service
fip:Provenance-Tracking-Service
fip:Registry
fip:Validation-Service
fip:Web-API
fip:Communication-protocol
fip:Crosswalk
fip:FAIR-Implementation-Profile
fip:Knowledge-representation-language
fip:Metadata-schema
fip:Metadata-data-linking-schema
fip:Provenance-model
fip:Semantic-model
fip:Structured-vocabulary
fip:FAIR-Data-Policy
fip:Data-usage-license
fip:Metadata-preservation-policy
fip:Persistency-Policy
fip:FAIR-Practice
}
}
}
} union {
bind(iri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(fip:FAIR-Supporting-Resource)))) as ?fer_service)
service ?fer_service {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey ;
npx:hasNanopubType fip:FAIR-Supporting-Resource .
?np dct:created ?date . filter(str(?date) > "2022")
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npx:hasNanopubType ?type .
values ?type {
fip:Authentication-and-authorization-service
fip:Editor
fip:FAIR-Representation-Service
fip:FAIR-Supporting-Software
fip:Identifier-service
fip:Provenance-Tracking-Service
fip:Registry
fip:Validation-Service
fip:Web-API
fip:Communication-protocol
fip:Crosswalk
fip:FAIR-Implementation-Profile
fip:Knowledge-representation-language
fip:Metadata-schema
fip:Metadata-data-linking-schema
fip:Provenance-model
fip:Semantic-model
fip:Structured-vocabulary
fip:FAIR-Data-Policy
fip:Data-usage-license
fip:Metadata-preservation-policy
fip:Persistency-Policy
fip:FAIR-Practice
}
}
}
}
}
group by ?type
order by desc(?count)
Get FAIR-Enabling Resources by type.
Get FERs by type
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?np ?thing ?description ?label ?date ?types ?qualifier (group_concat(distinct ?community; separator=" ") as ?communities) ?maxscore where {
{ select ?latest_curators_assertion where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
} }
{ select ?np ?thing ?label ?description ?date (group_concat(distinct ?type; separator=" ") as ?types) where {
graph npa:graph {
?np rdfs:label ?label ;
dct:description ?description ;
npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date .
?np npx:introduces|npx:describes ?thing .
filter(str(?date) > "2022")
filter exists { ?np npx:hasNanopubType ?fsr_type . values ?fsr_type { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource } }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np npx:hasNanopubType ?_type_iri .
?np npx:hasNanopubType ?type .
values ?type {
fip:Authentication-and-authorization-service
fip:Editor
fip:FAIR-Representation-Service
fip:FAIR-Supporting-Software
fip:Identifier-service
fip:Provenance-Tracking-Service
fip:Registry
fip:Validation-Service
fip:Web-API
fip:Communication-protocol
fip:Crosswalk
fip:FAIR-Implementation-Profile
fip:Knowledge-representation-language
fip:Metadata-schema
fip:Metadata-data-linking-schema
fip:Provenance-model
fip:Semantic-model
fip:Structured-vocabulary
fip:FAIR-Data-Policy
fip:Data-usage-license
fip:Metadata-preservation-policy
fip:Persistency-Policy
fip:FAIR-Practice
}
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
filter not exists {
graph ?da {
?disapprover npx:disapprovesOf ?np .
}
graph npa:graph {
?disapproval_np np:hasAssertion ?da ;
npa:hasValidSignatureForPublicKey ?dpubkey .
filter not exists { ?disapproval_npx npx:invalidates ?disapproval_np ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?dpubkey .
}
}
} group by ?np ?thing ?label ?description ?date }
optional {
graph ?qa {
?qualifier npx:qualifies ?np .
}
graph npa:graph {
?qualification_np np:hasAssertion ?qa ;
npa:hasValidSignatureForPublicKey ?qpubkey .
filter not exists { ?qualification_npx npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
}
optional {
graph npa:graph {
?decl_np npx:hasNanopubType fip:FIP-Declaration .
?decl_np np:hasAssertion ?decl_a ;
npa:hasValidSignatureForPublicKey ?decl_pubkey .
filter not exists { ?decl_npx npx:invalidates ?decl_np ; npa:hasValidSignatureForPublicKey ?decl_pubkey . }
}
graph ?decl_a {
?decl a fip:FIP-Declaration .
# ----
# not really needed but seems to make query faster:
values ?use { fip:declares-current-use-of fip:declares-planned-use-of fip:declares-planned-development-of fip:declares-planned-replacement-of }
?decl ?use ?thing .
# ----
?decl fip:declared-by ?community .
}
}
} group by ?np ?thing ?description ?label ?date ?types ?qualifier ?maxscore order by desc(?maxscore)
Full-text search for FAIR Enabling Resources
FER search
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?np ?thing ?description ?label ?date ?types ?qualifier (group_concat(distinct ?community; separator=" ") as ?communities) ?maxscore where {
{ select ?np ?thing ?label ?date (group_concat(distinct ?type; separator=" ") as ?types) (max(?score) as ?maxscore) ?latest_curators_assertion where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
graph npa:graph {
?np rdfs:label ?label ;
npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date .
?np npx:introduces|npx:describes ?thing .
filter(str(?date) > "2022")
filter exists { ?np npx:hasNanopubType ?fsr_type . values ?fsr_type { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource fip:Available-FAIR-Enabling-Resource } }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np npx:hasNanopubType ?__type_iri .
?np npx:hasNanopubType ?type .
filter(?type != fip:FAIR-Enabling-Resource)
filter(?type != fip:Available-FAIR-Enabling-Resource)
filter(?type != fip:FAIR-Enabling-Resource-to-be-Developed)
filter(?type != fip:FAIR-Supporting-Resource)
filter(?type != fip:Available-FAIR-Supporting-Resource)
filter(?type != fip:FAIR-Supporting-Resource-to-be-Developed)
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
?np search:matches [
search:query ?_query ;
search:property rdfs:label ;
search:score ?score ;
search:snippet ?snippet ] .
bind(iri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256("http://purl.org/nanopub/x/disapprovesOf"))) as ?disappr_service)
filter not exists { service ?disappr_service {
graph npa:graph {
?disapproval_np np:hasAssertion ?da ;
npa:hasValidSignatureForPublicKey ?dpubkey .
filter not exists { ?disapproval_npx npx:invalidates ?disapproval_np ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?dpubkey .
}
graph ?da {
?disapprover npx:disapprovesOf ?np .
}
} }
} group by ?np ?thing ?label ?date ?latest_curators_assertion order by desc(?maxscore) limit 20 }
optional { service <https://w3id.org/np/l/nanopub-query-1.1/repo/full> {
graph npa:graph {
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i .
}
graph ?a {
?thing rdfs:comment ?description .
}
} }
bind(iri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256("http://purl.org/nanopub/x/qualifies"))) as ?qualifies_service)
optional { service ?qualifies_service {
graph npa:graph {
?qualification_np np:hasAssertion ?qa ;
npa:hasValidSignatureForPublicKey ?qpubkey .
filter not exists { ?qualification_npx npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
graph ?qa {
?qualifier npx:qualifies ?np .
}
} }
bind(iri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256("https://w3id.org/fair/fip/terms/FIP-Declaration"))) as ?fip_service)
optional { service ?fip_service {
graph npa:graph {
?decl_np np:hasAssertion ?decl_a ;
npa:hasValidSignatureForPublicKey ?decl_pubkey .
filter not exists { ?decl_npx npx:invalidates ?decl_np ; npa:hasValidSignatureForPublicKey ?decl_pubkey . }
}
graph ?decl_a {
?decl a fip:FIP-Declaration .
# ----
# not really needed but seems to make query faster:
values ?use { fip:declares-current-use-of fip:declares-planned-use-of fip:declares-planned-development-of fip:declares-planned-replacement-of }
?decl ?use ?thing .
# ----
?decl fip:declared-by ?community .
}
} }
} group by ?np ?thing ?description ?label ?date ?types ?qualifier ?maxscore order by desc(?maxscore)
Returns the basic info of all assertion templates
Get assertion templates
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select ?np ?pubkey ?pubkeyhash ?date ?label ?tag ?unlisted ?creator where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npa:hasValidSignatureForPublicKeyHash ?pubkeyhash .
?np npx:hasNanopubType nt:AssertionTemplate .
?np dct:created ?date .
?np np:hasAssertion ?a .
optional { ?np npx:signedBy ?creator . }
}
optional { graph ?a { ?a rdfs:label ?label } }
optional { graph ?a { ?a nt:hasTag ?tag . } }
bind(exists { graph ?a { ?a a nt:UnlistedTemplate } } as ?unlisted)
} order by desc(?date)
List all non-qualified FAIR Enabling/Supporting Resources.
List non-qualified FERs/FSRs
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix fip: <https://w3id.org/fair/fip/terms/>
select distinct ?np ?label (group_concat(distinct ?typelabel; separator = ", ") as ?types) ?date where {
service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/16fb6a38f21730f443f6fc7c4a7340a54364973a0b078db497206a13fc5d33f4> { select ?latest_curators_assertion where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
} }
values ?service {
<https://w3id.org/np/l/nanopub-query-1.1/repo/type/3ef5b11551ebc44e34f4bca614b387204447656ce195314532769ca7b20143fe>
<https://w3id.org/np/l/nanopub-query-1.1/repo/type/070fa9a0f87a189bc2eb9d4c1a14f68f11538cc2229b9f4fd6ac026a3d2ce570>
}
service ?service {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?np npx:hasNanopubType <https://w3id.org/fair/3pff/3PFF-event> . }
filter not exists { ?np npx:hasNanopubType fip:FAIR-Implementation-Community . }
filter not exists { ?np npx:hasNanopubType fip:FAIR-Implementation-Profile . }
filter not exists { ?np npx:hasNanopubType fip:Semantic-Interoperability-Profile . }
?np dct:created ?date .
filter(str(?date) > "2022")
?np np:hasAssertion ?a .
}
graph ?a {
#?thing a <https://w3id.org/fair/fip/terms/FAIR-Supporting-Resource> .
?thing a ?type .
?thing rdfs:label ?labelx .
}
}
filter( ?type != <https://w3id.org/fair/fip/terms/FAIR-Supporting-Resource> )
filter( ?type != <https://w3id.org/fair/fip/terms/Available-FAIR-Supporting-Resource> )
filter( ?type != <https://w3id.org/fair/fip/terms/FAIR-Supporting-Resource-to-be-Developed> )
filter( ?type != <https://w3id.org/fair/fip/terms/FAIR-Enabling-Resource> )
filter( ?type != <https://w3id.org/fair/fip/terms/Available-FAIR-Enabling-Resource> )
filter( ?type != <https://w3id.org/fair/fip/terms/FAIR-Enabling-Resource-to-be-Developed> )
bind(replace(str(?type), '^.*/([^/]+)$', '$1') as ?typelabel)
bind(str(?labelx) as ?label)
optional { select ?np ?disapproval { service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/39692876d0a7881c82e9a2cb6dc8859fb16fa69fb41cea2ace2f8fa70bc52aed> {
graph npa:graph {
?disapproval npa:hasValidSignatureForPublicKey ?dpubkey .
?disapproval np:hasAssertion ?da .
filter not exists { ?disapprovalx npx:invalidates ?disapproval ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph ?latest_curators_assertion {
?dpubkeys npx:hasPublicKey ?dpubkey .
}
graph ?da {
?dsomebody npx:disapprovesOf ?np .
}
} } }
filter(!bound(?disapproval))
optional { select ?np ?qualification { service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/cd51a3ac3e109fd12aacd5a324e14ebff644ce209c916e4250a3f50c2ddf0051> {
graph npa:graph {
?qualification npa:hasValidSignatureForPublicKey ?qpubkey .
?qualification np:hasAssertion ?qa .
filter not exists { ?qualificationx npx:invalidates ?qualification ; npa:hasValidSignatureForPublicKey ?qpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
graph ?qa {
?qsomebody npx:qualifies ?np .
}
} } }
filter(!bound(?qualification))
}
group by ?np ?label ?date
order by desc(?date)
Returns the basic info of all publication info templates.
Get pubinfo templates
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select ?np ?pubkey ?pubkeyhash ?date ?label ?creator where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npa:hasValidSignatureForPublicKeyHash ?pubkeyhash .
?np npx:hasNanopubType nt:PubinfoTemplate .
?np dct:created ?date .
?np np:hasAssertion ?a .
optional { ?np npx:signedBy ?creator . }
}
graph ?a {
?a rdfs:label ?label .
}
} order by desc(?date)
Returns the basic info of all provenance templates.
Get provenance templates
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select ?np ?pubkey ?pubkeyhash ?date ?label ?creator where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npa:hasValidSignatureForPublicKeyHash ?pubkeyhash .
?np npx:hasNanopubType nt:ProvenanceTemplate .
?np dct:created ?date .
?np np:hasAssertion ?a .
optional { ?np npx:signedBy ?creator . }
}
graph ?a {
?a rdfs:label ?label .
}
} order by desc(?date)
Returns the number of active users per quarter since 2022. Two sequences of non-organic acquisition (as part of university course) are filtered out.
Get quarterly active organic user count
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?quarter (count(distinct ?userid) as ?usercount) where {
{ graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:creator ?userid .
?np dct:created ?date .
} }
union
{
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasAssertion ?assertion .
?np np:hasProvenance ?prov .
?np dct:created ?date .
}
graph ?prov {
?assertion prov:wasAttributedTo ?userid .
}
}
filter not exists {
graph npa:graph { ?np npa:hasSubIri ?userid . }
}
filter(str(?date) > "2022")
filter(str(?date) < "2023-10-03" || str(?date) > "2023-10-12")
filter(str(?date) < "2024-09-27" || str(?date) > "2024-10-07")
bind(substr(str(?date), 0, 8) as ?month)
bind(replace(?month, "-0[1-3]$", "-Q1") as ?quarter_temp1)
bind(replace(?quarter_temp1, "-0[4-6]$", "-Q2") as ?quarter_temp2)
bind(replace(?quarter_temp2, "-0[7-9]$", "-Q3") as ?quarter_temp3)
bind(replace(?quarter_temp3, "-1[0-9]$", "-Q4") as ?quarter)
}
group by ?quarter
order by desc(?quarter)
This query returns the latest FDOs.
Get latest FDOs
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?fdo ?np ?label ?profile ?creator ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:hasNanopubType <https://w3id.org/fdof/ontology#FAIRDigitalObject> .
?np npx:introduces ?fdo .
optional { ?np rdfs:label ?label }
optional { ?np npx:signedBy ?creator }
?np np:hasAssertion ?a .
}
optional {
graph ?a {
?fdo dct:conformsTo ?profile .
}
}
} order by desc(?date) limit 10
This query returns the latest FDOs from the specified creator.
Get FDO feed
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?fdo ?np ?label ?profile ?creator ?date where {
graph npa:graph {
?np npx:signedBy ?__creator_iri .
bind(?__creator_iri as ?creator)
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:hasNanopubType <https://w3id.org/fdof/ontology#FAIRDigitalObject> .
?np npx:introduces ?fdo .
optional { ?np rdfs:label ?label }
?np np:hasAssertion ?a .
}
optional {
graph ?a {
?fdo dct:conformsTo ?profile .
}
}
} order by desc(?date) limit 1000
This query returns all RO-Crates of which the metadata were published as nanopublications.
Get RO-Crates
PREFIX schema: <http://schema.org/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select distinct ?np ?metadata ?obj (group_concat(distinct ?objType; separator=" ") as ?objTypes) (group_concat(distinct ?keyword; separator=" ") as ?keywords) ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?label }
}
graph ?a {
optional { ?metadata_a <http://schema.org/about> ?obj_a . filter(strends(str(?metadata_a), "ro-crate-metadata.json")) }
optional { ?metadata_b <http://schema.org/about> ?obj_b . filter(strends(str(?metadata_b), "ro-crate-metadata.jsonld")) }
filter(bound(?metadata_a) || bound(?metadata_b))
bind(coalesce(?metadata_a, ?metadata_b) as ?metadata)
bind(coalesce(?obj_a, ?obj_b) as ?obj)
}
optional { graph ?a { ?obj schema:datePublished ?datePublished . } }
optional { graph ?a { ?obj schema:dateCreated ?dateCreated . } }
bind(coalesce(?datePublished, ?dateCreated) as ?date)
optional { graph ?a { ?obj a ?objType . } }
optional { graph ?a { ?obj schema:keywords ?keyword . } }
}
group by ?np ?metadata ?obj ?date
order by desc(?date)
This query returns the things denoted as parts of the given thing.
Get parts of a thing
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select distinct ?part (sample(?partLabel) as ?partLabel) ?np ?npLabel ?date ?pubkey where {
{ graph ?g {
?_thing_iri dct:hasPart ?part .
}
filter not exists {
graph npa:graph {
?part npx:hasNanopubType npx:NanopubIndex .
}
}
} union
{ graph ?g {
?part dct:partOf ?_thing_iri .
}
} union
{ graph ?gx {
?_thing_iri dct:hasPart ?index .
}
graph npa:graph {
?index npx:hasNanopubType npx:NanopubIndex .
?index np:hasAssertion ?a .
}
graph ?a {
?index npx:includesElement ?np .
}
graph npa:graph {
?np npx:introduces ?part .
}
}
graph npa:graph {
?np npa:hasGraph ?g .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np np:hasPublicationInfo ?i .
?np dct:created ?date .
optional { ?np rdfs:label ?npLabel . }
}
optional { graph ?g { ?part rdfs:label ?partLabel1 . } }
optional { graph ?g { ?part dct:title ?partLabel2 . } }
optional { graph ?i { ?part rdfs:label ?partLabel3 . } }
optional { graph ?i { ?part nt:hasLabelFromApi ?partLabel4 . } }
optional { graph ?x { ?part rdfs:label ?partLabel5 . } }
bind(coalesce(?partLabel1, ?partLabel2, ?partLabel3, ?partLabel4, ?partLabel5) as ?partLabel)
}
group by ?part ?np ?npLabel ?date ?pubkey
limit 1000
Full-text search for FAIR communities restricted by domain
FAIR community search by domain
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?np ?community ?label ?comment ?date (group_concat(distinct ?domain; separator=" ") as ?domains) ?qualifier (max(?score) as ?maxscore) (count(distinct ?fip) as ?fipcount) where {
{ select ?latest_curators_assertion where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
} }
graph npa:graph {
?np rdfs:label ?label ;
npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date ;
npx:hasNanopubType fip:FAIR-Implementation-Community ;
npx:introduces ?community ;
np:hasAssertion ?a .
?np dct:created ?date . filter(str(?date) > "2022")
filter(strends(str(?date), "Z"))
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
?np search:matches [
search:query ?_query ;
search:property npa:hasFilterLiteral ;
search:score ?score ;
search:snippet ?snippet ] .
service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/6a09747868afc83837e38d1bac79362fbcc3e2032cff2f2d244f4e24cbd085c6> { # (https://w3id.org/fair/fip/terms/FAIR-Implementation-Community)
graph ?a {
?community a fip:FAIR-Implementation-Community ;
rdfs:label ?label ;
rdfs:comment ?comment .
?community fip:has-research-domain ?domainx .
}
graph ?latest_curators_assertion {
?domainx rdfs:subClassOf* ?_domain_iri .
}
graph ?a {
?community fip:has-research-domain ?domain .
}
}
optional { service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/cd51a3ac3e109fd12aacd5a324e14ebff644ce209c916e4250a3f50c2ddf0051> { # (http://purl.org/nanopub/x/qualifies)
graph ?qa {
?qualifier npx:qualifies ?np .
}
graph npa:graph {
?qualification_np np:hasAssertion ?qa ;
npa:hasValidSignatureForPublicKey ?qpubkey .
filter not exists { ?qualification_npx npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
} }
optional { service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/92efd7a0ea4be4e01ec0817ccec87f975203b30addcc3166a204498ffed73b66> { # (https://w3id.org/fair/fip/terms/FAIR-Implementation-Profile)
graph ?fa {
?fip fip:declared-by ?community .
}
graph npa:graph {
?fipnp np:hasAssertion ?fa .
?fipnp npa:hasValidSignatureForPublicKey ?fpubkey .
?fipnp npx:hasNanopubType fip:FAIR-Implementation-Profile .
filter not exists { ?fipnpx npx:invalidates ?fipnp ; npa:hasValidSignatureForPublicKey ?fpubkey . }
}
} }
filter not exists { service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/39692876d0a7881c82e9a2cb6dc8859fb16fa69fb41cea2ace2f8fa70bc52aed> { # (http://purl.org/nanopub/x/disapprovesOf)
graph ?da {
?disapprover npx:disapprovesOf ?np .
}
graph npa:graph {
?disapproval_np np:hasAssertion ?da ;
npa:hasValidSignatureForPublicKey ?dpubkey .
filter not exists { ?disapproval_npx npx:invalidates ?disapproval_np ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?dpubkey .
}
} }
}
group by ?np ?community ?label ?comment ?date ?qualifier
order by desc(?maxscore)
Full-text search for FAIR communities.
FAIR community search
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?np ?community ?label ?comment ?date (group_concat(distinct ?domain; separator=" ") as ?domains) ?qualifier (max(?score) as ?maxscore) (count(distinct ?fip) as ?fipcount) where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
graph npa:graph {
?np rdfs:label ?label ;
npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date ;
npx:hasNanopubType fip:FAIR-Implementation-Community ;
npx:introduces ?community ;
np:hasAssertion ?a .
?np dct:created ?date . filter(str(?date) > "2022")
filter(strends(str(?date), "Z"))
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
?np search:matches [
search:query ?_query ;
search:property npa:hasFilterLiteral ;
search:score ?score ;
search:snippet ?snippet ] .
optional { service <https://query.np.trustyuri.net/repo/full> {
graph ?a {
?community a fip:FAIR-Implementation-Community ;
rdfs:label ?label ;
rdfs:comment ?comment ;
fip:has-research-domain ?domain .
}
} }
optional { service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/cd51a3ac3e109fd12aacd5a324e14ebff644ce209c916e4250a3f50c2ddf0051> { # (http://purl.org/nanopub/x/qualifies)
graph npa:graph {
?qualification_np np:hasAssertion ?qa ;
npa:hasValidSignatureForPublicKey ?qpubkey .
filter not exists { ?qualification_npx npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
graph ?qa {
?qualifier npx:qualifies ?np .
}
} }
optional { service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/92efd7a0ea4be4e01ec0817ccec87f975203b30addcc3166a204498ffed73b66> { # (https://w3id.org/fair/fip/terms/FAIR-Implementation-Profile)
graph npa:graph {
?fipnp np:hasAssertion ?fa .
?fipnp npa:hasValidSignatureForPublicKey ?fpubkey .
?fipnp npx:hasNanopubType fip:FAIR-Implementation-Profile .
filter not exists { ?fipnpx npx:invalidates ?fipnp ; npa:hasValidSignatureForPublicKey ?fpubkey . }
}
graph ?fa {
?fip fip:declared-by ?community .
}
} }
filter not exists { service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/39692876d0a7881c82e9a2cb6dc8859fb16fa69fb41cea2ace2f8fa70bc52aed> { # (http://purl.org/nanopub/x/disapprovesOf)
graph npa:graph {
?disapproval_np np:hasAssertion ?da ;
npa:hasValidSignatureForPublicKey ?dpubkey .
filter not exists { ?disapproval_npx npx:invalidates ?disapproval_np ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?dpubkey .
}
graph ?da {
?disapprover npx:disapprovesOf ?np .
}
} }
}
group by ?np ?community ?label ?comment ?date ?qualifier
order by desc(?maxscore)
This query returns all GO FAIR Foundation curators for metadata of FAIR Supporting Resources.
Get GFF curators
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select distinct ?facilitatorName ?facilitatorId ?pubkey where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?pk .
?latest npa:hasValidSignatureForPublicKey ?pk .
filter not exists { ?npx npx:invalidates ?latest ; npa:hasValidSignatureForPublicKey ?pk . }
?latest dct:created ?date .
?latest np:hasAssertion ?assertion .
}
graph npa:networkGraph {
?latest (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?x npx:supersedes ?latest }
}
graph ?assertion {
?pubkeys npx:hasPublicKey ?pubkey .
}
service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/77757cabf6184c51c20b8b0fe5dc5e1365b7f628448335184ad54319a0affdfc> { # (http://purl.org/nanopub/x/declaredBy)
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey ;
np:hasAssertion ?a .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?a {
?decl npx:hasPublicKey ?pubkey ;
npx:declaredBy ?facilitatorId .
?facilitatorId foaf:name ?facilitatorName .
}
}
} order by ?facilitatorName
Full-text search for FAIR Implementation Profiles
FIP search
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?np ?label ?description ?community ?date ?qualifier (max(?score) as ?maxscore) where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
?latest_curators_np np:hasAssertion ?latest_curators_assertion .
}
graph npa:networkGraph {
?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
}
graph npa:graph {
?np rdfs:label ?label ;
npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date .
filter exists { ?np npx:hasNanopubType fip:FAIR-Implementation-Profile . }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
optional { service <https://query.np.trustyuri.net/repo/full> {
graph npa:graph {
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i .
}
graph ?a {
?fip dct:description ?description .
?fip fip:declared-by ?community .
}
graph ?i {
?np npx:introduces ?fip .
}
} }
?np search:matches [
search:query ?_query ;
search:property ?property ;
search:score ?score ;
search:snippet ?snippet ] .
optional { service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/cd51a3ac3e109fd12aacd5a324e14ebff644ce209c916e4250a3f50c2ddf0051> { # (http://purl.org/nanopub/x/qualifies)
graph npa:graph {
?qualification_np np:hasAssertion ?qa ;
npa:hasValidSignatureForPublicKey ?qpubkey .
filter not exists { ?qualification_npx npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
graph ?qa {
?qualifier npx:qualifies ?np .
}
} }
filter not exists { service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/39692876d0a7881c82e9a2cb6dc8859fb16fa69fb41cea2ace2f8fa70bc52aed> { # (http://purl.org/nanopub/x/disapprovesOf)
graph npa:graph {
?disapproval_np np:hasAssertion ?da ;
npa:hasValidSignatureForPublicKey ?dpubkey .
filter not exists { ?disapproval_npx npx:invalidates ?disapproval_np ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?dpubkey .
}
graph ?da {
?disapprover npx:disapprovesOf ?np .
}
} }
}
group by ?np ?description ?label ?community ?date ?qualifier
order by desc(?maxscore)
This query returns the FDOs whose records refer to the given ID.
Get FDOs by reference
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select distinct ?fdo ?np ?label ?creator ?date where {
optional { <x:> <x:> ?_refid } # for grlc to pick up the placeholder
bind(if(strstarts(?_refid, "https://") || strstarts(?_refid, "http://"), iri(?_refid), iri(concat("https://hdl.handle.net/", str(?_refid)))) as ?ref)
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:hasNanopubType <https://w3id.org/fdof/ontology#FAIRDigitalObject> .
?np npx:introduces ?fdo .
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?label }
optional { ?np npx:signedBy ?creator }
}
optional { graph ?a {
?subj ?ref ?obj .
bind(true as ?inpred)
} }
optional { graph ?a {
?subj ?pred ?ref .
bind(true as ?inobj)
} }
filter(?inpred || ?inobj)
} order by desc(?date)
This query returns all research programmes.
Get research programmes
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX np: <http://www.nanopub.org/nschema#>
PREFIX npa: <http://purl.org/nanopub/admin/>
PREFIX npx: <http://purl.org/nanopub/x/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX prov: <http://www.w3.org/ns/prov#>
SELECT ?n1 ?label ?thing ?date where {
GRAPH npa:graph {
?n1 npx:introduces ?thing .
?n1 npx:hasNanopubType <https://w3id.org/fair/ff/terms/Research-Programme> .
?n1 npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists {
?np2 npx:invalidates ?n1 ;
npa:hasValidSignatureForPublicKey ?pubkey .
}
?n1 dct:created ?date .
?n1 rdfs:label ?label .
filter(contains(lcase(?label), lcase(?_searchterm)) )
}
}
This query returns all calls for proposals
Get calls for proposals
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?thing ?label ?np ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?thing <https://w3id.org/fdof/ontology#hasInformationObjectType> <https://w3id.org/gff/rao/terms/Call-for-Proposals> .
?thing rdfs:label ?label .
?thing rdfs:comment ?desc .
filter(contains(lcase(?label), lcase(?_searchterm)) || contains(lcase(?desc), lcase(?_searchterm)))
}
}
This query returns the things the given user has declared to be their favorites (using cito:likes).
Get favorite things
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?favoritedThing ?label ?np ?creator ?date where {
graph npa:graph {
?np npx:signedBy ?__creator_iri .
bind(?__creator_iri as ?creator)
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:hasNanopubType <http://purl.org/spar/cito/likes> .
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?label }
}
graph ?a {
?subj <http://purl.org/spar/cito/likes> ?favoritedThing .
}
}
order by desc(?date)
Returns the number of active users per year.
Get yearly active user count
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?year (count(distinct ?userid) as ?usercount) where {
{ graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:creator ?userid .
?np dct:created ?date .
} }
union
{
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasAssertion ?assertion .
?np np:hasProvenance ?prov .
?np dct:created ?date .
}
graph ?prov {
?assertion prov:wasAttributedTo ?userid .
}
}
filter not exists {
graph npa:graph { ?np npa:hasSubIri ?userid . }
}
bind(substr(str(?date), 0, 5) as ?year)
}
group by ?year
order by desc(?year)
This query performs a full-text search on the FDO nanopublications.
FDO text search
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select ?fdo ?np ?label ?date where {
graph npa:graph {
?np npx:hasNanopubType <https://w3id.org/fdof/ontology#FAIRDigitalObject> .
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np npx:introduces ?fdo .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
optional { ?np rdfs:label ?label . }
?np dct:created ?date .
}
?np search:matches [
search:query ?_query ;
search:property rdfs:label ;
search:score ?score ;
search:snippet ?snippet ] .
}
limit 100
This query returns all research programmes.
Get research programmes
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?thing ?label ?np ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?thing <https://w3id.org/fdof/ontology#hasInformationObjectType> <https://w3id.org/gff/rao/terms/Research-Programme> .
?thing rdfs:label ?label .
filter(contains(?label, ?_searchterm))
}
}
This query returns the FDO info for a given FDO identifier
Get FDO by ID
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?np ?label ?fdo ?creator ?date where {
bind(if(strstarts(?_fdoid, "https://") || strstarts(?_fdoid, "http://"), iri(?_fdoid), iri(concat("https://hdl.handle.net/", str(?_fdoid)))) as ?fdo)
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:hasNanopubType <https://w3id.org/fdof/ontology#FAIRDigitalObject> .
?np npx:introduces ?fdo .
optional { ?np rdfs:label ?label }
optional { ?np npx:signedBy ?creator }
}
optional {
graph npa:graph {
?np_first npa:hasSubIri ?fdo .
bind(true as ?isSubIri)
}
}
optional {
filter(bound(?isSubIri))
graph npa:graph {
?np_first npa:hasValidSignatureForPublicKey ?pubkey .
}
graph npa:networkGraph {
?np npx:supersedes* ?np_first .
}
bind(true as ?isValidSubIri)
}
bind(if(bound(?isSubIri) && ?isSubIri, bound(?isValidSubIri) && ?isValidSubIri, true) as ?valid)
filter(?valid)
} order by desc(?date)
This query returns all FDO attributes with their definitions
Get FDO attributes
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?np ?label ?attribute ?creator ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:hasNanopubType <https://w3id.org/fdoc/o/terms/FdoAttribute> .
?np npx:introduces ?attribute .
optional { ?np rdfs:label ?label }
optional { ?np npx:signedBy ?creator }
}
} order by desc(?date)
This query returns all FDO profiles.
Get FDO profiles
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?np ?label ?profile ?creator ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:hasNanopubType <https://w3id.org/fdoc/o/terms/FdoProfile> .
?np npx:introduces ?profile .
optional { ?np rdfs:label ?label }
optional { ?np npx:signedBy ?creator }
}
} order by desc(?date)
This query returns all participation links.
Get participation links
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix wd: <http://www.wikidata.org/entity/>
select ?person ?event ?np ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?label }
}
graph ?a {
?person wd:P1344 ?event .
}
} order by desc(?date)
This query returns plain-text messages about ESWC 2025.
Get messages about ESWC 2025
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix schema: <https://schema.org/>
select ?text ?np ?creator ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np dct:creator ?creator .
?np np:hasAssertion ?a .
}
graph ?a {
?a rdfs:label ?text .
?a schema:about <https://2025.eswc-conferences.org/> .
}
} order by desc(?date)
This query returns the participants of the ESWC2025 nanopublication tutorial.
Get participants of ESWC2025 nanopub tutorial
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix wd: <http://www.wikidata.org/entity/>
select ?person ?np ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?label }
}
graph ?a {
?person wd:P1344 <https://nanopub.net/docs/tutorials/eswc2025#event> .
}
} order by desc(?date)
Returns all nanopublications that declare a grlc query, thereby defining an API.
Get all grlc query nanopubs
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix grlc: <https://w3id.org/kpxl/grlc/>
select ?np ?label ?pubkeyhash ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkeyhash .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkeyhash . }
?np dct:created ?date .
?np npx:introduces|npx:embeds ?query .
?np np:hasAssertion ?a .
?np npx:hasNanopubType grlc:grlc-query .
optional { ?np rdfs:label ?label }
}
graph ?a {
?query grlc:endpoint ?endpoint .
filter(strstarts(str(?endpoint), "https://w3id.org/np/l/nanopub-query"))
}
} order by desc(?date)
This is just a test query, now updated with the final template... and updated once more...
test query
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix grlc: <https://w3id.org/kpxl/grlc/>
select ?np ?label ?pubkeyhash ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?pubkeyhash .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkeyhash . }
?np dct:created ?date .
?np npx:introduces ?query .
?np np:hasAssertion ?a .
?np npx:hasNanopubType grlc:grlc-query .
optional { ?np rdfs:label ?label }
}
graph ?a {
?query grlc:endpoint ?endpoint .
filter(strstarts(str(?endpoint), "https://w3id.org/np/l/nanopub-query"))
}
} order by desc(?date)
This query returns all latest versions of a given nanopublication and thing URI that is introduced or described therein.
Get latest nanopubs defining a thing
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
select ?latestVersion ?date where {
graph npa:graph {
?_np_iri npa:hasValidSignatureForPublicKey ?pubkey .
?_np_iri npx:introduces|npx:describes ?_thing_iri .
}
graph npa:networkGraph {
?latestVersion (npx:supersedes)* ?_np_iri .
}
graph npa:graph {
filter exists { ?latestVersion npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?npx npx:invalidates ?latestVersion ; npa:hasValidSignatureForPublicKey ?pubkey . }
?latestVersion dct:created ?date .
?latestVersion npx:introduces|npx:describes ?_thing_iri .
}
}
order by desc(?date) ?latestVersion
This query performs a full-text search on FAIR Specifications.
Search on FAIR Specifications
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?thing ?label ?description ?np ?pubkey ?date where {
graph npa:graph {
values ?type { fip:FAIR-Specification fip:Metadata-schema fip:Semantic-model fip:Structured-vocabulary fip:Provenance-model }
?np npx:hasNanopubType ?type .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:introduces|npx:describes ?thing .
?np rdfs:label ?label .
optional { ?np dct:description ?description . }
?np np:hasAssertion ?a .
}
?np search:matches [
search:query ?_query ;
search:property rdfs:label ;
search:score ?score ;
search:snippet ?snippet ] .
}
limit 10
This query returns the nanopubs describing studies (http://semanticscience.org/resource/SIO_001066).
Get all nanopubs describing studies
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?np ?label ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:hasNanopubType <http://semanticscience.org/resource/SIO_001066> .
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?label }
}
} limit 100
This query returns all datasets attributed to Leiden University.
Get datasets attributed to Leiden University
prefix prov: <http://www.w3.org/ns/prov#>
prefix schema: <https://schema.org/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select distinct ?dataset ?label ?repository where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np np:hasProvenance ?p .
}
graph ?a {
?dataset a <http://purl.org/dc/dcmitype/Dataset> .
optional { ?dataset dct:title ?label . }
optional { ?dataset schema:maintainer ?repository . }
}
graph ?p {
?a prov:wasAttributedTo <https://ror.org/027bh9e22> .
}
}
This query returns the latest FAIR-Enabling Resources (FERs).
Get the latest FAIR-Enabling Resources
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?np ?label ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
optional { ?np rdfs:label ?label }
}
} order by desc(?date) limit 10
This query returns all cito:cites nanopubs.
Get the cite nanopubs
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?np ?label ?creator ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npx:hasNanopubType <http://purl.org/spar/cito/cites> .
?np dct:created ?date .
?np np:hasAssertion ?a .
?np npx:signedBy ?creator .
optional { ?np rdfs:label ?label }
}
} order by desc(?date)
This query performs a full-text search on the nanopublication labels, including also invalidated nanopublications.
Full-text search on labels
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select ?np ?label ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?__pubkey .
optional { ?np rdfs:label ?label . }
?np dct:created ?date .
}
?np search:matches [
search:query ?_query ;
search:property rdfs:label ;
search:score ?score ;
search:snippet ?snippet ] .
}
limit 100
This query performs a full-text search on the things introduced in nanopublications, including invalidated ones.
Full-text search on things
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?thing ?label ?description ?np ?pubkey ?date where {
graph npa:graph {
?np npx:hasNanopubType ?__type_iri .
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?date .
?np npx:introduces|npx:describes ?thing .
?np rdfs:label ?label .
optional { ?np dct:description ?description . }
?np np:hasAssertion ?a .
}
?np search:matches [
search:query ?_query ;
search:property rdfs:label ;
search:score ?score ;
search:snippet ?snippet ] .
}
limit 10
This query performs a full-text search on the things introduced in nanopublications, excluding invalidated ones.
Full-text search on things
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?thing ?label ?description ?np ?pubkey ?date where {
graph npa:graph {
?np npx:hasNanopubType ?__type_iri .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:introduces|npx:describes ?thing .
?np rdfs:label ?label .
optional { ?np dct:description ?description . }
?np np:hasAssertion ?a .
}
?np search:matches [
search:query ?_query ;
search:property rdfs:label ;
search:score ?score ;
search:snippet ?snippet ] .
}
limit 10
This query returns all nanopubs (including invalidated ones) for the given pattern
find nanopubs with pattern
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?np ?graphpred ?subj ?pred ?obj ?date ?pubkey where {
graph ?g {
?__subj_iri ?__pred_iri ?__obj_iri .
bind(?__subj_iri as ?subj)
bind(?__pred_iri as ?pred)
bind(?__obj_iri as ?obj)
}
graph npa:graph {
?np ?__graphpred_iri ?g .
bind(?__graphpred_iri as ?graphpred)
values ?graphpred { np:hasAssertion np:hasProvenance np:hasPublicationInfo }
}
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?__pubkey .
bind(?__pubkey as ?pubkey)
?np dct:created ?date .
}
} limit 1000
This query returns all non-invalidated nanopubs for the given pattern
find valid nanopubs with pattern
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?np ?graphpred ?subj ?pred ?obj ?date ?pubkey where {
graph ?g {
?__subj_iri ?__pred_iri ?__obj_iri .
bind(?__subj_iri as ?subj)
bind(?__pred_iri as ?pred)
bind(?__obj_iri as ?obj)
}
graph npa:graph {
?np ?__graphpred_iri ?g .
bind(?__graphpred_iri as ?graphpred)
values ?graphpred { np:hasAssertion np:hasProvenance np:hasPublicationInfo }
}
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?__pubkey .
bind(?__pubkey as ?pubkey)
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
}
} limit 1000
This query returns all newer versions of a given nanopublication, including those that since have been superseded or retracted.
Get all newer versions of this nanopublication
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
select ?newerVersion ?date ?retractedBy ?supersededBy where {
graph npa:graph {
?_np_iri npa:hasValidSignatureForPublicKey ?pubkey .
}
graph npa:networkGraph {
?newerVersion (npx:supersedes)* ?_np_iri .
}
graph npa:graph {
filter exists { ?newerVersion npa:hasValidSignatureForPublicKey ?pubkey . }
?newerVersion dct:created ?date .
}
optional { graph npa:graph { ?retractedBy npx:retracts ?newerVersion ; npa:hasValidSignatureForPublicKey ?pubkey . } }
optional { graph npa:graph { ?supersededBy npx:supersedes ?newerVersion ; npa:hasValidSignatureForPublicKey ?pubkey . } }
}
order by desc(?date) ?newerVersion
This query returns the latest nanopublications from the given set of pubkey hashes.
Get the latest nanopublications from pubkeys
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?np ?label ?pubkey ?date where {
#==================== MULTI-VALUE PLACEHOLDER =====================#------ config: ------
{ select ?pkh { # <- VAR pkh
bind(?_pubkeyhashes as ?vs) # <- VAR _pubkeyhashes
{select*{optional{<x:> <x:> <x:>}}} # (for some Virtuoso ver.) #
values ?x {0 1 2 3 4 5 6 7 8 9} values ?y {0 1 2 3 4 5 6 7 8 9} #
bind((10*?x)+?y as ?n) # (works up to a maximum of 100 values) #
bind(" " as ?sep) # (separator as single regex-compatible char) # <- CONST sep
bind(concat("^([^",?sep,"]*",?sep,"){",str(?n),"}") as ?p) #
bind(concat(?sep,".*") as ?p0) #
filter(if(?n=0,true,regex(?vs,?p))) # (?n=0 check for Viruoso) #
bind(replace(if(?n=0,?vs,replace(?vs,?p,"")),?p0,"") as ?pkh) # <- VAR pkh
filter(!bound(?pkh) || exists {?any_np npa:hasValidSignatureForPublicKeyHash ?pkh }) # Filter out the hashes for which no repo exists; try to do this better with future versions of Nanopub Query
} } #
#==================================================================#---------------------
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/pubkey/", ?pkh)) as ?pubkeyservice)
service ?pubkeyservice {
select ?np ?pubkey ?date ?label {
{ select ?np ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?date .
} } order by desc(?date) }
graph npa:graph {
?np dct:creator ?__userid_iri .
optional { ?np rdfs:label ?label }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
}
} limit 100
}
}
order by desc(?date)
limit 100
This query returns the most frequent predicates used in assertions
Get most frequent assertion predicates
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?pred (count(distinct ?np) as ?predcount) where {
graph npa:graph {
?np np:hasAssertion ?a .
}
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?a {
?subj ?pred ?obj .
}
} group by ?pred
order by desc(?predcount)
limit 50
This query returns the basic info of all user introductions.
Get all user intro info
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npx: <http://purl.org/nanopub/x/>
prefix npa: <http://purl.org/nanopub/admin/>
prefix dct: <http://purl.org/dc/terms/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?user ?name ?intronp ?date ?pubkey where {
graph npa:graph {
?intronp npx:hasNanopubType npx:declaredBy .
?intronp npa:hasValidSignatureForPublicKey ?intronp_pubkey .
filter not exists { ?intronp_x npx:invalidates ?intronp ; npa:hasValidSignatureForPublicKey ?intronp_pubkey . }
?intronp np:hasAssertion ?a .
?intronp dct:created ?date .
}
graph ?a {
?keydeclaration npx:declaredBy ?user .
?keydeclaration npx:hasPublicKey ?pubkey .
optional {
?user foaf:name ?name .
}
}
}
order by ?user desc(?date)
This query returns a list of all FIP communities that have supercommunities.
Get FIP supercommunities
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix fip: <https://w3id.org/fair/fip/terms/>
select distinct ?community (group_concat(distinct ?supercommunity; separator=" ") as ?supercommunities) (group_concat(distinct ?sc; separator=" ") as ?sc) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npx:hasNanopubType fip:FAIR-Implementation-Community .
?np (npx:introduces|npx:describes) ?community .
?np np:hasAssertion ?a .
}
graph ?a {
?community dct:isPartOf ?supercommunity .
}
optional {
graph npa:graph {
?disapproval np:hasAssertion ?da .
?disapproval npa:hasValidSignatureForPublicKey ?dpubkey .
filter not exists { ?disapproval_x npx:invalidates ?disapproval ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph <https://w3id.org/np/RAkVk6aKWsmgcuKtPA7OSp2h-GbDfx8xrz_kJAAgY8Xa4#assertion> {
?dpubkeys npx:hasPublicKey ?dpubkey .
}
graph ?da {
?dsomebody ( npx:disapproves-of | npx:disapprovesOf ) ?np .
}
} filter(!bound(?disapproval)) # for some reason this is much faster than "filter not exists"
bind(replace(str(?supercommunity), ".*#", "") as ?sc)
} group by ?community
This query returns the details of all FIP declarations.
Get FIP declaration details
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix dct: <http://purl.org/dc/terms/>
prefix dce: <http://purl.org/dc/elements/1.1/>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix np: <http://www.nanopub.org/nschema#>
prefix dcat: <https://www.w3.org/ns/dcat#>
select ?decl_np ?community ?c ?question ?q ?sort ?nochoice ?decl ?rel ?resource_id_used ?startdate ?enddate ?date where {
graph npa:graph {
?decl_np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?decl_np_x npx:invalidates ?decl_np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?decl_np npx:hasNanopubType fip:FIP-Declaration .
?decl_np dct:created ?date .
?decl_np np:hasAssertion ?assertion .
}
graph ?assertion {
?decl a fip:FIP-Declaration .
?decl fip:refers-to-question ?question .
{
{ ?decl fip:declares-current-use-of ?resource_id_used . bind(fip:declares-current-use-of as ?rel) }
union
{ ?decl fip:declares-planned-use-of ?resource_id_used . bind(fip:declares-planned-use-of as ?rel) }
union
{ ?decl fip:declares-planned-replacement-of ?resource_id_used . bind(fip:declares-planned-replacement-of as ?rel) }
union
{ ?decl fip:declares-replacement-from ?resource_id_used . bind(fip:declares-replacement-from as ?rel) } # unofficial
union
{ ?decl fip:declares-replacement-to ?resource_id_used . bind(fip:declares-replacement-to as ?rel) } # unofficial
}
# grlc gives an error for some reason if these two optional statements are at the end of the graph block:
optional { ?decl dcat:startDate ?startdate . }
optional { ?decl dcat:endDate ?enddate . }
?decl fip:declared-by ?community .
}
bind (replace(str(?community), ".*#", "") as ?c)
bind (replace(str(?supercommunity), ".*#", "") as ?sc)
bind (replace(str(?question), "^.*-([^-MD]+(-[MD]+)?)$", "$1") as ?q)
bind (concat(replace(?q, "F|M", "0"), "x") as ?sort)
bind ("" as ?nochoice)
}
This query returns the preferred IDs of FAIR-Enabling Resources (FERs) as an extra list to the get-fer-pref-ids list, adding the ones that are *only* tagged as fip:FAIR-Enabling-Resource-to-be-Developed.
Get FER preferred IDs (extra to-be-developed FERs)
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix fip: <https://w3id.org/fair/fip/terms/>
select distinct ?resource_pref_id ?res ?reslabel ?res_np_date ?resourcetype ?res_np ?np_pre ?pubkey_hash ?np_pre_pubkey_hash where {
graph npa:graph {
?res_np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?res_np ; npa:hasValidSignatureForPublicKey ?pubkey . }
bind(sha256(?pubkey) as ?pubkey_hash) ## workaround due to https://github.com/knowledgepixels/nanopub-query/issues/14
?res_np npx:hasNanopubType fip:FAIR-Enabling-Resource-to-be-Developed .
filter not exists { ?res_np npx:hasNanopubType fip:FAIR-Enabling-Resource . }
?res_np (npx:introduces|npx:describes) ?resource_pref_id .
bind(replace(str(?resource_pref_id), "^.*?(#|/)([^/#]*/?[^/#]*)/?$", "$2") as ?res)
?res_np dct:created ?res_np_date .
?res_np rdfs:label ?reslabel .
bind(fip:FAIR-Enabling-Resource-to-be-Developed as ?resourcetype)
}
optional { select * { graph npa:networkGraph {
?res_np npx:supersedes* ?np_pre_x .
} } }
bind(coalesce(?np_pre_x, ?res_np) as ?np_pre)
bind(concat(str(?np_pre), " ", ?pubkey_hash) as ?np_pre_pubkey_hash)
} order by ?resource_pref_id ?res_np
This query returns the preferred IDs of FAIR-Enabling Resources (FERs) as an extra list to the get-fer-pref-ids list, adding the ones that are *only* tagged as fip:Available-FAIR-Enabling-Resource.
Get FER preferred IDs (extra available FERs)
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix fip: <https://w3id.org/fair/fip/terms/>
select distinct ?resource_pref_id ?res ?reslabel ?res_np_date ?resourcetype ?res_np ?np_pre ?pubkey_hash ?np_pre_pubkey_hash where {
graph npa:graph {
?res_np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?res_np ; npa:hasValidSignatureForPublicKey ?pubkey . }
bind(sha256(?pubkey) as ?pubkey_hash) ## workaround due to https://github.com/knowledgepixels/nanopub-query/issues/14
?res_np npx:hasNanopubType fip:Available-FAIR-Enabling-Resource .
filter not exists { ?res_np npx:hasNanopubType fip:FAIR-Enabling-Resource . }
?res_np (npx:introduces|npx:describes) ?resource_pref_id .
bind(replace(str(?resource_pref_id), "^.*?(#|/)([^/#]*/?[^/#]*)/?$", "$2") as ?res)
?res_np dct:created ?res_np_date .
?res_np rdfs:label ?reslabel .
bind(fip:Available-FAIR-Enabling-Resource as ?resourcetype)
}
optional { select * { graph npa:networkGraph {
?res_np npx:supersedes* ?np_pre_x .
} } }
bind(coalesce(?np_pre_x, ?res_np) as ?np_pre)
bind(concat(str(?np_pre), " ", ?pubkey_hash) as ?np_pre_pubkey_hash)
} order by ?resource_pref_id ?res_np
This query returns the preferred IDs of FAIR-Enabling Resources (FERs), including the references to previous nanopublications with older term definitions.
Get FER preferred IDs
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix fip: <https://w3id.org/fair/fip/terms/>
select distinct ?resource_pref_id ?res ?reslabel ?res_np_date ?resourcetype ?res_np ?np_pre ?pubkey_hash ?np_pre_pubkey_hash where {
graph npa:graph {
?res_np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?res_np ; npa:hasValidSignatureForPublicKey ?pubkey . }
bind(sha256(?pubkey) as ?pubkey_hash) ## workaround due to https://github.com/knowledgepixels/nanopub-query/issues/14
?res_np npx:hasNanopubType fip:FAIR-Enabling-Resource .
?res_np (npx:introduces|npx:describes) ?resource_pref_id .
bind(replace(str(?resource_pref_id), "^.*?(#|/)([^/#]*/?[^/#]*)/?$", "$2") as ?res)
?res_np dct:created ?res_np_date .
?res_np rdfs:label ?reslabel .
bind( exists { ?res_np npx:hasNanopubType fip:Available-FAIR-Enabling-Resource } as ?available_resource )
bind( exists { ?res_np npx:hasNanopubType fip:FAIR-Enabling-Resource-to-be-Developed } as ?tobedeveloped_resource )
bind(if(?available_resource, fip:Available-FAIR-Enabling-Resource,
if(?tobedeveloped_resource, fip:FAIR-Enabling-Resource-to-be-Developed,
fip:FAIR-Enabling-Resource
)
) as ?resourcetype )
}
optional { select * { graph npa:networkGraph {
?res_np npx:supersedes* ?np_pre_x .
} } }
bind(coalesce(?np_pre_x, ?res_np) as ?np_pre)
bind(concat(str(?np_pre), " ", ?pubkey_hash) as ?np_pre_pubkey_hash)
} order by ?resource_pref_id ?res_np
This query returns the IDs of the qualified nanopublications by the GO FAIR Foundation (GFF).
Get GFF qualifications
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select distinct ?res_np ?qualification_np where {
values ?qpubkey {
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtpcftn7kbe6toJbOTDQaCcCssEFSWqt6J4rZ02w+TfY7/eIOgJZYOlpL6G3AzO2RNmVYWRPSlMiykaFuaRuBitvk1GKfGdprfZbvXwmeOxpqCTRBQX9EnFyQyd+Ra/ajfw/UsG8skeu1xnUEpnQbpgbQYc/fvhJNN0UwEc77mOwIDAQAB"^^xsd:string
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDO4xkU+/dGujq1raR66QtRqquMxiJ9hm2uzc2uBj7bCBBRnWhTw7M8f77BqAFHShgxqxYTr2do7/tVmoKeM51ISyttxWrh9ebZRoz5o6Muxt7HyA4sLHAmnixeZ5VJfZzsKAmVN23Y2ZiCqMoXjtcp5jO2lOC0AXaGPftnaA8b9QIDAQAB"^^xsd:string
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCFntPrMZqvg2kVhCNArNnEn37ddXGwZ/0r4C8CS4lDry7C7YkYgng9yb0UMZQUHiTVkR/5A4m/xjE+Vy+AnwcWUeB75SfGZjE5ylI6VeHjTHi9+2hh2PHYIWnkhU4WHl3COEnxSSa/VouvPzZ2BIWLH6fTrq7NNL3RF5hGegGG0QIDAQAB"^^xsd:string
}
graph npa:graph {
?qualification_np npa:hasValidSignatureForPublicKey ?qpubkey .
filter not exists { ?qualification_np_x npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
?qualification_np np:hasAssertion ?qa .
}
graph ?qa {
?qualifier npx:qualifies ?res_np .
}
} order by ?res_np ?qualification_np
This query returns the IDs of FAIR-Enabling Resources (FERs), including older outdated IDs.
Get FER IDs
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix dct: <http://purl.org/dc/terms/>
prefix dce: <http://purl.org/dc/elements/1.1/>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix np: <http://www.nanopub.org/nschema#>
prefix dcat: <https://www.w3.org/ns/dcat#>
select distinct ?resource_id ?np_pre ?pubkey_hash ?np_pre_pubkey_hash where {
graph npa:graph {
?np_pre npa:hasValidSignatureForPublicKeyHash ?pubkey_hash .
?np_pre np:hasAssertion ?res_a .
?np_pre (npx:introduces|npx:describes) ?resource_id .
values ?resourcetype { fip:Available-FAIR-Enabling-Resource fip:FAIR-Enabling-Resource-to-be-Developed fip:FAIR-Enabling-Resource }
?np_pre npx:hasNanopubType ?resourcetype .
}
bind(concat(str(?np_pre), " ", ?pubkey_hash) as ?np_pre_pubkey_hash)
} order by ?resource_id ?np_pre
This query returns the latest nanopublications marked as examples, excluding superseded and retracted ones.
Get the latest example nanopublications
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select distinct ?np ?label ?creator ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np npx:hasNanopubType npx:ExampleNanopub .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
?np dct:created ?date .
optional { ?np rdfs:label ?label . }
optional { ?np npx:signedBy ?creator . }
}
} order by desc(?date) limit 100
This query returns the latest nanopublications, excluding superseded, retracted, or example ones.
Get the latest nanopublications
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select distinct ?np ?label ?creator ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np dct:created ?date .
optional { ?np rdfs:label ?label . }
optional { ?np npx:signedBy ?creator . }
}
} order by desc(?date) limit 100
This query returns the latest nanopublications, excluding superseded, retracted, or example ones.
Get the latest nanopublications
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select distinct ?np ?label ?creator ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np dct:created ?date .
optional { ?np rdfs:label ?label . }
optional { ?np npx:signedBy ?creator . }
}
} order by desc(?date) limit 100
This query returns the top things being claimed to be underrated.
Get top underrated things
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix opo: <https://w3id.org/kpxl/opo/terms/>
select distinct (count(distinct ?person) as ?count) ?thing (min(?thingLabel) as ?thingLabel) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npx:hasNanopubType opo:thinksIsUnderrated .
?np dct:created ?date .
?np dct:creator ?person .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i.
}
graph ?a {
?person opo:thinksIsUnderrated ?thing .
}
optional { graph ?i {
?thing nt:hasLabelFromApi ?thingLabel1 .
} }
optional { graph <http://purl.org/np/RA6p8TsYKPUmy6yoKuxjBKn2vRKczjIWrcS2lyyX61myE#assertion> {
?thing rdfs:label ?thingLabel2 .
} }
bind(coalesce(?thingLabel2, ?thingLabel1) as ?thingLabel)
}
group by ?thing
order by desc(?count)
This query returns the top things being claimed to be overrated.
Get top overrated things
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix opo: <https://w3id.org/kpxl/opo/terms/>
select distinct (count(distinct ?person) as ?count) ?thing (min(?thingLabel) as ?thingLabel) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npx:hasNanopubType opo:thinksIsOverrated .
?np dct:created ?date .
?np dct:creator ?person .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i.
}
graph ?a {
?person opo:thinksIsOverrated ?thing .
}
optional { graph ?i {
?thing nt:hasLabelFromApi ?thingLabel1 .
} }
optional { graph <http://purl.org/np/RA6p8TsYKPUmy6yoKuxjBKn2vRKczjIWrcS2lyyX61myE#assertion> {
?thing rdfs:label ?thingLabel2 .
} }
bind(coalesce(?thingLabel2, ?thingLabel1) as ?thingLabel)
}
group by ?thing
order by desc(?count)
This query returns all entries where users express under-/overrated opinion.
Get under-/overrated entries
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix opo: <https://w3id.org/kpxl/opo/terms/>
select distinct ?person ?rel ?thing ?np ?date where {
{ {
graph npa:graph {
?np np:hasAssertion ?a .
?np npx:hasNanopubType opo:thinksIsOverrated .
bind(opo:thinksIsOverrated as ?rel)
}
graph ?a {
?person opo:thinksIsOverrated ?thing .
}
} union {
graph npa:graph {
?np np:hasAssertion ?a .
?np npx:hasNanopubType opo:thinksIsUnderrated .
}
graph ?a {
?person opo:thinksIsUnderrated ?thing .
bind(opo:thinksIsUnderrated as ?rel)
}
} }
graph npa:graph {
?np np:hasPublicationInfo ?i.
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npa:hasValidSignatureForPublicKey ?pubkey .
}
graph ?i {
?np dct:creator ?person .
}
}
order by desc(?date)
This query returns all nanopub services announced in nanopublications.
Get all nanopub services
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?np ?service ?serviceType ?date ?pubkey where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
optional { ?np dct:created ?date . }
?np np:hasAssertion ?a .
}
graph ?a {
?service a npx:NanopubService .
?service a ?serviceType .
filter(?serviceType != npx:NanopubService)
}
} order by desc(?date)
This query returns all datasets found.
Get datasets
prefix prov: <http://www.w3.org/ns/prov#>
prefix schema: <https://schema.org/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select distinct ?dataset ?label ?repository where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
?np np:hasProvenance ?p .
}
graph ?a {
?dataset a <http://purl.org/dc/dcmitype/Dataset> .
optional { ?dataset dct:title ?label . }
optional { ?dataset schema:maintainer ?repository . }
}
graph ?p {
?a prov:wasAttributedTo ?agent .
}
}
This query returns all nanopublications approved by somebody.
Get approved nanopubs
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select ?approved_np ?approver ?pubkey ?np ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npx:hasNanopubType npx:approvesOf .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np dct:created ?date .
?np dct:creator ?approver .
?np np:hasAssertion ?a .
}
graph ?a {
?approver npx:approvesOf ?approved_np .
filter(regex(str(?approved_np), '^.*[^A-Za-z0-9-_]RA[A-Za-z0-9-_]{43}$'))
}
}
This query returns the nanopub or nanopubs that are introducing the given thing, sorted by recency.
Get nanopub introducing given thing
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?np ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npx:introduces ?_thing_iri .
?np dct:created ?date .
}
} order by desc(?date)
This query returns all nanopub IDs for the given pubkey hash and (optionally) type.
Get nanopubs for pubkey and type
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select distinct ?np where {
{ graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?_pubkeyhash .
?np npx:hasNanopubType ?_type_iri .
} }
union
{ graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?_pubkeyhash .
?np npx:invalidates ?npx .
?npx npx:hasNanopubType ?_type_iri .
} }
}
This query returns all nanopub IDs for the given pubkey hash.
Get nanopubs for pubkey
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?np where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKeyHash ?_pubkeyhash .
}
}
This query returns all known pubkeys
Get all pubkeys
prefix npa: <http://purl.org/nanopub/admin/>
select distinct ?pubkey ?pubkeyhash where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np npa:hasValidSignatureForPublicKeyHash ?pubkeyhash .
}
} order by ?pubkey
Returns the number of active users per month.
Get monthly active user count
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?month (count(distinct ?userid) as ?usercount) where {
{ graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:creator ?userid .
?np dct:created ?date .
} }
union
{
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasAssertion ?assertion .
?np np:hasProvenance ?prov .
?np dct:created ?date .
}
graph ?prov {
?assertion prov:wasAttributedTo ?userid .
}
}
filter not exists {
graph npa:graph { ?np npa:hasSubIri ?userid . }
}
bind(substr(str(?date), 0, 8) as ?month)
}
group by ?month
order by desc(?month)
Returns a list of all events related to the Three Point FAIRification Framework (3PFF)
Get 3PFF Events
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix tpff: <https://w3id.org/fair/3pff/>
select (?event as ?Event_ID) (?eventShortName as ?Event_ID__label) (?eventLongName as ?Event_Name) (?eventDate as ?Date) (group_concat(distinct ?eventOrganizer; separator=" ") as ?Organizers) (group_concat(distinct ?eventFacilitator; separator=" ") as ?Facilitators) (group_concat(distinct ?eventMoreInfoLink; separator=" ") as ?More_Info) (?np as ?Source) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?npDate .
?np dct:creator ?npCreator .
?np np:hasAssertion ?assertion .
?np npx:introduces ?event .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?assertion {
?event a tpff:3PFF-event .
?event rdfs:label ?eventName .
bind(replace(str(?eventName), ' ?\\|.*$', '') as ?eventShortName)
bind(replace(str(?eventName), '^([A-Z0-9]{2,3}).*$', '$1') as ?eventSeries)
bind(replace(str(?eventName), '^.*\\| ?(.*)$', '$1') as ?eventLongName)
?event dct:date ?eventDate .
optional {
?event tpff:has-event-organizer ?eventOrganizer .
}
optional {
?event tpff:has-event-facilitator ?eventFacilitator .
}
#optional {
# values ?eventType { tpff:In-Person-Event tpff:Hybrid-Event tpff:Virtual-Event }
# ?event a ?eventType .
# bind(replace(str(?eventType), '^.*/', '') as ?eventTypeName)
#}
optional {
?event rdfs:seeAlso ?eventMoreInfoLink .
}
}
}
group by ?event ?eventShortName ?eventLongName ?eventDate ?np
order by desc(?eventDate)
This query returns the assertion templates that use the given URI in their statements.
Get the templates using given URI
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select distinct ?np ?npLabel ?date ?pubkey where {
graph ?assertion {
?statement ?relation ?_thing_iri .
values ?relation { rdf:subject rdf:predicate rdf:object nt:possibleValue }
}
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?np npx:hasNanopubType nt:UnlistedTemplate . }
?np np:hasAssertion ?assertion .
?np dct:created ?date .
optional { ?np rdfs:label ?npLabel }
}
} limit 1000
This query returns the labels that have been assigned to the thing of the given URI.
Get the labels assigned to a thing
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select ?label ?relation ?np ?npLabel ?date ?pubkey where {
graph ?g {
?_thing_iri ?relation ?label .
values ?relation { rdfs:label dct:title nt:hasLabelFromApi }
}
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npa:hasGraph ?g .
?np dct:created ?date .
optional { ?np rdfs:label ?npLabel }
}
} limit 1000
This query returns the classes that have been assigned to the thing of the given URI.
Get the classes assigned to a thing
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select ?class ?classLabel ?np ?npLabel ?date ?pubkey where {
graph ?g {
?_thing_iri a ?class .
}
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npa:hasGraph ?g .
?np np:hasPublicationInfo ?i .
?np dct:created ?date .
optional { ?np rdfs:label ?npLabel }
}
optional { graph ?g { ?class rdfs:label ?classLabel1 . } }
optional { graph ?g { ?class dct:title ?classLabel2 . } }
optional { graph ?i { ?class rdfs:label ?classLabel3 . } }
optional { graph ?i { ?class nt:hasLabelFromApi ?classLabel4 . } }
bind(coalesce(?classLabel1, ?classLabel2, ?classLabel3, ?classLabel4) as ?classLabel)
} limit 1000
This query returns the instances assigned to the given class.
Get instances for class
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
select ?instance ?instanceLabel ?np ?npLabel ?date ?pubkey where {
graph ?g {
?instance a ?_class_iri .
}
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npa:hasGraph ?g .
?np np:hasPublicationInfo ?i .
?np dct:created ?date .
optional { ?np rdfs:label ?npLabel . }
}
optional { graph ?g { ?instance rdfs:label ?instanceLabel1 . } }
optional { graph ?g { ?instance dct:title ?instanceLabel2 . } }
optional { graph ?i { ?instance rdfs:label ?instanceLabel3 . } }
optional { graph ?i { ?instance nt:hasLabelFromApi ?instanceLabel4 . } }
bind(coalesce(?instanceLabel1, ?instanceLabel2, ?instanceLabel3, ?instanceLabel4) as ?instanceLabel)
} limit 1000
This query returns the nanopublications that reference the given URI in subject, predicate, or object position.
Find referencing nanopubs
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select distinct ?np ?date ?pubkey where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
}
graph npa:graph {
?np npa:hasGraph ?g .
}
graph ?g {
{ { ?_ref_iri ?pred ?obj . } union { ?subj ?_ref_iri ?obj . } union { ?subj ?pred ?_ref_iri . } }
}
} limit 1000
This query returns the latest nanopublications where an instance is assigned to the given class.
Get latest instance nanopubs
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?instance ?np ?label ?date ?pubkey where {
graph ?g {
?instance a ?_class_iri .
}
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npa:hasGraph ?g .
?np dct:created ?date .
optional { ?np rdfs:label ?label }
}
} order by desc(?date) limit 10
This query returns the number of known instances for the given class IRI.
Get instance count
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select (count(?instance) as ?count) where {
graph ?g {
?instance a ?_class_iri .
}
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npa:hasGraph ?g .
}
}
This query performs a full-text search on the labels for the 3PFF events.
Find 3PFF events
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?thing ?label ?description ?np ?pubkey ?date where {
graph npa:graph {
?np npx:hasNanopubType <https://w3id.org/fair/3pff/3PFF-event> .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np npx:introduces|npx:describes ?thing .
?np rdfs:label ?label .
optional { ?np dct:description ?description . }
?np np:hasAssertion ?a .
}
?np search:matches [
search:query ?_query ;
search:property rdfs:label ;
search:score ?score ;
search:snippet ?snippet ] .
filter not exists { service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/39692876d0a7881c82e9a2cb6dc8859fb16fa69fb41cea2ace2f8fa70bc52aed> { # (http://purl.org/nanopub/x/disapprovesOf)
graph npa:graph {
?disapproval_np np:hasAssertion ?da ;
npa:hasValidSignatureForPublicKey ?dpubkey .
filter not exists { ?disapproval_npx npx:invalidates ?disapproval_np ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph <https://w3id.org/np/RA5PyVZnfPpd5ozkVjzQQbWyfLXCmeApLfhsyl8Rgnmh8#assertion> {
?qpubkeys npx:hasPublicKey ?dpubkey .
}
graph ?da {
?disapprover npx:disapprovesOf ?np .
}
} }
}
limit 10
This query performs a full-text search on the nanopublication labels.
Full-text search on labels
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select ?np ?label ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?__pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?__pubkey . }
optional { ?np rdfs:label ?label . }
?np dct:created ?date .
}
?np search:matches [
search:query ?_query ;
search:property rdfs:label ;
search:score ?score ;
search:snippet ?snippet ] .
}
limit 100
This query returns the nanopublication(s) that introduces the given thing.
Get introducing nanopub for thing
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
select ?np ?label ?pubkey ?date where {
graph npa:graph {
?np npx:introduces ?_thing_iri .
?np npa:hasValidSignatureForPublicKey ?pubkey .
optional { ?np rdfs:label ?label . }
?np dct:created ?date .
}
}
This query returns all valid nanopublications of the given type.
Get nanopublications by type
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
select ?np ?label ?pubkey ?date where {
graph npa:graph {
?np npx:hasNanopubType ?_type_iri .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
optional { ?np rdfs:label ?label . }
?np dct:created ?date .
}
}
This query returns candidate nanopublications for submission at the RIO Journal.
Get latest candidate nanopublications for RIO
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix biolink: <https://w3id.org/biolink/vocab/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix biodiv: <https://w3id.org/kpxl/biodiv/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
select distinct ?np ?label ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np rdfs:label ?label .
values ?type {
<https://w3id.org/kpxl/rel/terms/hasRelationTo>
<https://w3id.org/kpxl/rel/terms/tendsToHaveRelationTo>
<https://w3id.org/linkflows/superpattern/terms/SuperPatternInstance>
<http://purl.org/petapico/o/hycl#AIDA-Sentence>
<https://w3id.org/biolink/vocab/related_to>
<http://www.w3.org/2004/02/skos/core#relatedMatch>
}
?np npx:hasNanopubType ?type .
?np dct:creator ?__creator_iri .
?np dct:created ?date .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
}
order by desc(?date)
This query returns all reactions published for articles in the journal Data Science.
Get reactions for Data Science
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix biolink: <https://w3id.org/biolink/vocab/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix biodiv: <https://w3id.org/kpxl/biodiv/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
select distinct ?np ?label ?comment ?ref_np ?pubkey ?date where {
graph npa:graph {
?ref_np npa:hasValidSignatureForPublicKey ?ref_pubkey .
values ?ref_type { <https://w3id.org/kpxl/rel/terms/hasRelationTo> <https://w3id.org/kpxl/rel/terms/tendsToHaveRelationTo> <https://w3id.org/linkflows/superpattern/terms/SuperPatternInstance> <http://purl.org/petapico/o/hycl#AIDA-Sentence> <https://w3id.org/biolink/vocab/related_to> <http://www.w3.org/ns/mls#Run> }
?ref_np npx:hasNanopubType ?ref_type .
filter not exists { ?ref_np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?ref_npx npx:invalidates ?ref_np ; npa:hasValidSignatureForPublicKey ?ref_pubkey . }
graph npa:networkGraph {
?np npa:refersToNanopub ?ref_np .
}
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np npx:hasNanopubType <http://purl.org/spar/cito/cites> .
?np rdfs:label ?label .
?np dct:created ?date .
service <https://query.knowledgepixels.com/repo/type/2c1cce3f3152738c1009d59251409392aaaa3b0324bcb5fdfb4b7b944b8f0c18> {
select ?np ?comment where {
graph npa:graph {
?np np:hasAssertion ?a .
}
graph ?a {
?a rdfs:comment ?comment .
}
}
}
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
} order by desc(?date)
This query returns candidate nanopublications for submission at the journal Data Science.
Get latest candidate nanopublications for Data Science
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix biolink: <https://w3id.org/biolink/vocab/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix biodiv: <https://w3id.org/kpxl/biodiv/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
select distinct ?np ?label ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np rdfs:label ?label .
values ?type { <https://w3id.org/kpxl/rel/terms/hasRelationTo> <https://w3id.org/kpxl/rel/terms/tendsToHaveRelationTo> <https://w3id.org/linkflows/superpattern/terms/SuperPatternInstance> <http://purl.org/petapico/o/hycl#AIDA-Sentence> <https://w3id.org/biolink/vocab/related_to> <http://www.w3.org/ns/mls#Run> }
?np npx:hasNanopubType ?type .
?np dct:creator ?__creator_iri .
?np dct:created ?date .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
}
order by desc(?date)
This query returns nanopublications referencing the given URI in subject, predicate, or object position.
Find URI references
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?np (?__graphpred_iri as ?graphpred) ?subj ?pred ?obj ?date (?__pubkey as ?pubkey) where {
graph ?g {
{ { bind(?_ref_iri as ?subj) } union { bind(?_ref_iri as ?pred) } union { bind(?_ref_iri as ?obj) } }
?subj ?pred ?obj .
}
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?__pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?__pubkey . }
?np dct:created ?date .
?np ?__graphpred_iri ?g .
values ?__graphpred_iri { np:hasAssertion np:hasProvenance np:hasPublicationInfo }
}
} limit 100
This query returns the latest accepted nanopublications at the Biodiversity Data Journal (BDJ).
Get latest nanopublications accepted at BDJ
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix bibo: <http://purl.org/ontology/bibo/>
select ?np ?label ?firstAuthor ?date where {
values ?pubkey { "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37" "cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0" "170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6" }
graph npa:graph {
?np dct:created ?date .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
?np rdfs:label ?label .
?np np:hasPublicationInfo ?i .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
}
graph ?i {
?np bibo:authorList ?authorList .
?authorList rdf:_1 ?firstAuthor .
}
}
order by desc(?date)
limit 100
This query returns the latest accepted nanopublications at the RIO journal.
Get latest nanopublications accepted at RIO
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix bibo: <http://purl.org/ontology/bibo/>
select ?np ?label ?firstAuthor ?date where {
values ?pubkey { "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37" "cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0" "170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6" }
graph npa:graph {
?np dct:created ?date .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
?np rdfs:label ?label .
?np np:hasPublicationInfo ?i .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
}
graph ?i {
?np bibo:authorList ?authorList .
?authorList rdf:_1 ?firstAuthor .
}
}
order by desc(?date)
limit 100
This query returns the latest accepted nanopublications at the Data Science journal.
Get latest nanopublications accepted at Data Science
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix bibo: <http://purl.org/ontology/bibo/>
select ?np ?label ?firstAuthor ?date where {
values ?pubkey { "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37" "cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0" "170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6" }
graph npa:graph {
?np dct:created ?date .
?np npa:hasValidSignatureForPublicKeyHash ?pubkey .
?np rdfs:label ?label .
?np np:hasPublicationInfo ?i .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }
}
graph ?i {
?np bibo:authorList ?authorList .
?authorList rdf:_1 ?firstAuthor .
}
}
order by desc(?date)
limit 100
This query returns reactions for a given nanopublication, as shown by the Nanodash connectors.
Get reactions
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix cito: <http://purl.org/spar/cito/>
select distinct ?np ?person ?rel ?reltext ?pub ?text ?date ?pubkey where {
graph npa:networkGraph {
?_pub_iri npx:supersedes* ?pub .
}
graph npa:graph {
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i.
?np dct:created ?date .
?np dct:creator ?person .
?np npx:hasNanopubType cito:cites .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?a {
?a dct:creator ?person .
?a ?rel ?pub .
optional { ?a rdfs:comment ?text . }
filter(strstarts(str(?rel), str(cito:)))
}
graph <http://purl.org/np/RA6d0qLmlRdXd-ubre83LxP22auJdJjXGzaW3W3qH4Neo#assertion> {
?rel rdfs:label ?reltext .
}
}
order by desc(?date)
This query returns the latest candidate nanopublications in biodiversity.
Get latest candidate nanopubs in biodiversity
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix biolink: <https://w3id.org/biolink/vocab/>
prefix biodiv: <https://w3id.org/kpxl/biodiv/terms/>
select ?np ?label ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np rdfs:label ?label .
?np dct:creator ?__creator_iri .
?np npx:hasNanopubType biodiv:BiodivNanopub .
filter(not exists { ?np npx:hasNanopubType <https://w3id.org/kpxl/pensoft/rio/terms/RIOJournalNanopub> } )
filter(not exists { ?np npx:hasNanopubType <https://w3id.org/kpxl/pensoft/bdj/terms/BiodiversityDataJournalNanopub> } )
filter(not exists { ?np npx:hasNanopubType <https://w3id.org/kpxl/ios/ds/terms/DataScienceNanopub> } )
}
}
order by desc(?date)
limit 100
This query returns all creator / pubkey pairs, independent of their approval status.
Get all creator / pubkey pairs
prefix np: <http://www.nanopub.org/nschema#>
prefix npx: <http://purl.org/nanopub/x/>
prefix npa: <http://purl.org/nanopub/admin/>
prefix dct: <http://purl.org/dc/terms/>
select distinct ?creator ?pubkey where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:creator ?creator .
filter(!strstarts(str(?creator), str(?np)))
}
}
order by ?creator
This query returns autocomplete suggestions for full-text queries. The 'query' parameter needs to be a single token ending in '*', e.g. 'ab*'.
Get autocomplete suggestions
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?suggestion {
{ select ?suggestion where {
graph npa:graph {
?np rdfs:label ?label .
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?date .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
filter(!contains(?_query, " "))
filter(strEnds(?_query, "*"))
?np search:matches [
search:query ?_query ;
search:property rdfs:label ;
search:score ?score ;
search:snippet ?snippet ] .
bind(replace(?snippet, ".*<B>(.*)</B>.*", "$1") as ?suggestion)
} limit 100 }
} group by ?suggestion
This queries returns a list of suggested templates to get started, so it can be shown e.g. on Nanodash.
Get suggested templates to get started
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
select ?template_np ?label ?date where {
graph npa:graph {
?np npx:hasNanopubType <https://w3id.org/kpxl/gen/terms/SuggestedTemplateToGetStarted> .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np np:hasAssertion ?a .
}
graph ?a {
?template_np a <https://w3id.org/kpxl/gen/terms/SuggestedTemplateToGetStarted> .
}
} order by desc(?date)
This query returns the latest version(s) of a given nanopublication, if any.
Get the latest version of a nanopublication
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix dct: <http://purl.org/dc/terms/>
select ?latest ?date where {
graph npa:graph {
?_np_iri npa:hasValidSignatureForPublicKey ?pubkey .
?latest npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?latest ; npa:hasValidSignatureForPublicKey ?pubkey . }
?latest dct:created ?date .
}
graph npa:networkGraph {
?latest (npx:supersedes)* ?_np_iri .
}
}
This query returns the latest nanopublications published of the given type
Get the latest nanopublications of given type
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?np ?label ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?date .
?np npx:hasNanopubType ?_type_iri .
optional { ?np rdfs:label ?label }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
}
}
order by desc(?date)
limit 100
This query returns some general user statistics from the given pubkey hashes in the form of number of valid/invalidated/accepted nanopublications published.
Get some general user statistics from user pubkeys
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix pav: <http://purl.org/pav/>
select ?key ?value where {
{
select ?key (count(?np) as ?value) where {
#==================== MULTI-VALUE PLACEHOLDER =====================#------ config: ------
{ select ?pkh { # <- VAR pkh
bind(?_pubkeyhashes as ?vs) # <- VAR _pubkeyhashes
{select*{optional{<x:> <x:> <x:>}}} # (for some Virtuoso ver.) #
values ?x {0 1 2 3 4 5 6 7 8 9} values ?y {0 1 2 3 4 5 6 7 8 9} #
bind((10*?x)+?y as ?n) # (works up to a maximum of 100 values) #
bind(" " as ?sep) # (separator as single regex-compatible char) # <- CONST sep
bind(concat("^([^",?sep,"]*",?sep,"){",str(?n),"}") as ?p) #
bind(concat(?sep,".*") as ?p0) #
filter(if(?n=0,true,regex(?vs,?p))) # (?n=0 check for Viruoso) #
bind(replace(if(?n=0,?vs,replace(?vs,?p,"")),?p0,"") as ?pkh) # <- VAR pkh
filter(!bound(?pkh) || exists {?any_np npa:hasValidSignatureForPublicKeyHash ?pkh }) # Filter out the hashes for which no repo exists; try to do this better with future versions of Nanopub Query
} } #
#==================================================================#---------------------
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/pubkey/", ?pkh)) as ?pubkeyservice)
service ?pubkeyservice { select distinct ?np ?invalidated { optional {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:creator ?_userid_iri .
bind( exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . } as ?invalidated )
}
} } }
bind(if(?invalidated,"invalidatedNpCount","validNpCount") as ?key)
values ?key { "invalidatedNpCount" "validNpCount" }
}
group by ?key ?invalidated
}
union
{
select ?key (sum(?npcount) as ?value) where {
bind("acceptedNpCount" as ?key)
values ?npType {
<https://w3id.org/kpxl/pensoft/rio/terms/RIOJournalNanopub>
<https://w3id.org/kpxl/pensoft/bdj/terms/BiodiversityDataJournalNanopub>
<https://w3id.org/kpxl/ios/ds/terms/DataScienceNanopub>
}
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(?npType)))) as ?service)
service ?service { select (count(distinct ?np) as ?npcount) where { optional {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasPublicationInfo ?i .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
{ {
graph ?i { ?np pav:authoredBy ?_userid_iri . }
} union {
graph ?i {
?np bibo:authorList ?authorList .
?authorList ?hasElement ?_userid_iri .
filter(strstarts(str(?hasElement), str(rdf:_)))
}
} }
} }
group by ?np
} }
group by ?key
}
}
order by ?key
This query returns some general user statistics in the form of number of valid/invalidated/accepted nanopublications published.
Get some general user statistics
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix pav: <http://purl.org/pav/>
select ?key ?value where {
{
select ?key (count(?np) as ?value) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:creator ?_userid_iri .
bind( exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . } as ?invalidated )
}
bind(if(?invalidated,"invalidatedNpCount","validNpCount") as ?key)
values ?key { "invalidatedNpCount" "validNpCount" }
}
group by ?key ?invalidated
}
union
{
select ?key (sum(?npcount) as ?value) where {
bind("acceptedNpCount" as ?key)
optional { <x:> <x:> ?_userid_iri } # ensure grlc is picking up the placeholder
values ?npType {
<https://w3id.org/kpxl/pensoft/rio/terms/RIOJournalNanopub>
<https://w3id.org/kpxl/pensoft/bdj/terms/BiodiversityDataJournalNanopub>
<https://w3id.org/kpxl/ios/ds/terms/DataScienceNanopub>
}
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(?npType)))) as ?service)
service ?service { select (count(distinct ?np) as ?npcount) where { optional {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasPublicationInfo ?i .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
{ {
graph ?i { ?np pav:authoredBy ?_userid_iri . }
} union {
graph ?i {
?np bibo:authorList ?authorList .
?authorList ?hasElement ?_userid_iri .
filter(strstarts(str(?hasElement), str(rdf:_)))
}
} }
} }
group by ?np
} }
group by ?key
}
}
order by ?key
This query returns the latest nanopublications from the given user IRI.
Get the latest nanopublications from userid
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?np ?label ?pubkey ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?date .
?np dct:creator ?_userid_iri .
optional { ?np rdfs:label ?label }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
}
}
order by desc(?date)
limit 100
This query returns some general user statistics in the form of number of valid/invalidated/accepted nanopublications published.
Get some general user statistics
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix pav: <http://purl.org/pav/>
select ?key ?value where {
{
select ?key (count(?np) as ?value) where {
#==================== MULTI-VALUE PLACEHOLDER =====================#------ config: ------
{ select ?pkh { # <- VAR pkh
bind(?__pubkeyhashes as ?pubkeyhashes) # <- VAR __pubkeyhashes
bind(if(bound(?pubkeyhashes), ?pubkeyhashes, "") as ?vs) #
{select*{optional{?a ?b ?c}}limit 1} # (for some Virtuoso ver.) #
values ?x {0 1 2 3 4 5 6 7 8 9} values ?y {0 1 2 3 4 5 6 7 8 9} #
bind((10*?x)+?y as ?n) # (works up to a maximum of 100 values) #
bind(" " as ?sep) # (separator as single regex-compatible char) # <- CONST sep
bind(concat("^([^",?sep,"]*",?sep,"){",str(?n),"}") as ?p) #
bind(concat(?sep,".*") as ?p0) #
filter(if(?n=0,true,regex(?vs,?p))) # (?n=0 check for Viruoso) #
bind(replace(if(?n=0,?vs,replace(?vs,?p,"")),?p0,"") as ?pkh) # <- VAR pkh
filter(!bound(?pkh) || exists {?any_np npa:hasValidSignatureForPublicKeyHash ?pkh }) # Filter out the hashes for which no repo exists; try to do this better with future versions of Nanopub Query
} } #
#==================================================================#---------------------
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/pubkey/", ?pkh)) as ?pubkeyservice)
bind(if(bound(?pkh), ?pubkeyservice, <https://w3id.org/np/l/nanopub-query-1.1/repo/full>) as ?service) # Should be /meta once RDF4J bug is resolved and we can allow for >1 concurrent queries
service ?service { select distinct ?np ?invalidated { optional {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:creator ?_userid_iri .
bind( exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . } as ?invalidated )
}
} } }
bind(if(?invalidated,"invalidatedNpCount","validNpCount") as ?key)
values ?key { "invalidatedNpCount" "validNpCount" }
}
group by ?key ?invalidated
}
union
{
select ?key (sum(?npcount) as ?value) where {
bind("acceptedNpCount" as ?key)
optional { <x:> <x:> ?_userid_iri } # ensure grlc is picking up the placeholder
values ?npType {
<https://w3id.org/kpxl/pensoft/rio/terms/RIOJournalNanopub>
<https://w3id.org/kpxl/pensoft/bdj/terms/BiodiversityDataJournalNanopub>
<https://w3id.org/kpxl/ios/ds/terms/DataScienceNanopub>
}
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(?npType)))) as ?service)
service ?service { select (count(distinct ?np) as ?npcount) where { optional {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasPublicationInfo ?i .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
{ {
graph ?i { ?np pav:authoredBy ?_userid_iri . }
} union {
graph ?i {
?np bibo:authorList ?authorList .
?authorList ?hasElement ?_userid_iri .
filter(strstarts(str(?hasElement), str(rdf:_)))
}
} }
} }
group by ?np
} }
group by ?key
}
}
order by ?key
This query returns a list of FDOs, possibly restricted by type of search term.
Get FDOs
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fdof: <https://w3id.org/fdof/ontology#>
select ?fdo ?label ?type ?np ?creator where {
graph npa:graph {
?np npx:hasNanopubType fdof:FAIRDigitalObject .
?np dct:creator ?creator .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np np:hasAssertion ?a .
}
graph ?a {
?fdo fdof:hasInformationObjectType ?__type_iri .
bind(?__type_iri as ?type)
?fdo rdfs:label ?label .
bind(?__query as ?query)
filter(if(bound(?query), contains(lcase(str(?label)), lcase(?query)), true))
}
}
This query returns all the nanopublications created in the last 30 days, sorted by recency.
Get all nanopubs of the last 30 days
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select distinct ?np ?label ?userid ?date where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?date .
optional { ?np rdfs:label ?label . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
optional { ?np dct:creator ?userid . }
}
} order by desc(?date)
This query is for auto-complete lookup of FDO types.
FDO type lookup
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
select ?thing ?label where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np npx:introduces ?thing .
?np np:hasAssertion ?a .
}
graph ?a {
?thing rdfs:label ?label .
filter(contains(lcase(str(?label)), lcase(?_query)))
}
}
limit 10
This query returns the 10 creators who created most nanopublications during the last 30 days.
Get the top-10 creators of the last 30 days
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select distinct ?userid (count(distinct ?np) as ?count) where {
{ graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:creator ?userid .
} }
union
{
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasAssertion ?assertion .
?np np:hasProvenance ?prov .
}
graph ?prov {
?assertion prov:wasAttributedTo ?userid .
}
}
filter(?userid != <https://orcid.org/1234-1234-1234-1234>)
filter(?userid != <https://orcid.org/0000-0000-0000-0000>)
filter(!regex(str(?userid), '[^A-Za-z0-9-_]RA[A-Za-z0-9-_]{43}$'))
}
group by ?userid
order by desc(?count)
limit 10
This query returns the latest nanopublications from the given set of pubkey hashes.
Get the latest nanopublications from pubkeys
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?np ?label ?pubkey ?date where {
#==================== MULTI-VALUE PLACEHOLDER =====================#------ config: ------
{ select ?pkh { # <- VAR pkh
bind(?_pubkeyhashes as ?vs) # <- VAR _pubkeyhashes
{select*{optional{?a ?b ?c}}limit 1} # (for some Virtuoso ver.) #
values ?x {0 1 2 3 4 5 6 7 8 9} values ?y {0 1 2 3 4 5 6 7 8 9} #
bind((10*?x)+?y as ?n) # (works up to a maximum of 100 values) #
bind(" " as ?sep) # (separator as single regex-compatible char) # <- CONST sep
bind(concat("^([^",?sep,"]*",?sep,"){",str(?n),"}") as ?p) #
bind(concat(?sep,".*") as ?p0) #
filter(if(?n=0,true,regex(?vs,?p))) # (?n=0 check for Viruoso) #
bind(replace(if(?n=0,?vs,replace(?vs,?p,"")),?p0,"") as ?pkh) # <- VAR pkh
filter(exists {?any_np npa:hasValidSignatureForPublicKeyHash ?pkh }) # Filter out the hashes for which no repo exists; try to do this better with future versions of Nanopub Query
} } #
#==================================================================#---------------------
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/pubkey/", ?pkh)) as ?service)
service ?service {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?date .
optional { ?np rdfs:label ?label }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkeyx . filter(contains(?_pubkeyhashes, sha256(str(?pubkeyx)))) }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
}
}
}
order by desc(?date)
limit 100
This query returns the latest nanopublications from the given set of pubkey hashes and/or from the given user IRI.
Get the latest nanopublications from pubkeys/userid
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?np ?label ?pubkey ?date where {
#==================== MULTI-VALUE PLACEHOLDER =====================#------ config: ------
{ select ?pkh { # <- VAR pkh
bind(if(?__pubkeyhashes = "", ?unbound, ?__pubkeyhashes) as ?vs) # <- VAR __pubkeyhashes
{select*{optional{?a ?b ?c}}limit 1} # (for some Virtuoso ver.) #
values ?x {0 1 2 3 4 5 6 7 8 9} values ?y {0 1 2 3 4 5 6 7 8 9} #
bind((10*?x)+?y as ?n) # (works up to a maximum of 100 values) #
bind(" " as ?sep) # (separator as single regex-compatible char) # <- CONST sep
bind(concat("^([^",?sep,"]*",?sep,"){",str(?n),"}") as ?p) #
bind(concat(?sep,".*") as ?p0) #
filter(if(?n=0,true,regex(?vs,?p))) # (?n=0 check for Viruoso) #
bind(replace(if(?n=0,?vs,replace(?vs,?p,"")),?p0,"") as ?pkh) # <- VAR pkh
} } #
#==================================================================#---------------------
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/pubkey/", ?pkh)) as ?pubkeyservice)
bind(if(bound(?pkh), ?pubkeyservice, <https://w3id.org/np/l/nanopub-query-1.1/repo/meta>) as ?service)
service ?service {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?date .
?np dct:creator ?__userid_iri .
optional { ?np rdfs:label ?label }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter not exists { ?np npx:hasNanopubType npx:retracts . }
}
}
}
order by desc(?date)
limit 100
This query returns some general user statistics in the form of number of valid/invalidated/accepted nanopublications published.
Get some general user statistics
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix pav: <http://purl.org/pav/>
select ?key ?value where {
{
select ?key (count(?np) as ?value) where {
optional { <x:> <x:> ?_pubkeyhashes } # ensure grlc is picking up the placeholder
#==================== MULTI-VALUE PLACEHOLDER =====================#------ config: ------
{ select ?pkh { # <- VAR pkh
bind(?_pubkeyhashes as ?vs) # <- VAR _pubkeyhashes
{select*{optional{?a ?b ?c}}limit 1} # (for some Virtuoso ver.) #
values ?x {0 1 2 3 4 5 6 7 8 9} values ?y {0 1 2 3 4 5 6 7 8 9} #
bind((10*?x)+?y as ?n) # (works up to a maximum of 100 values) #
bind(" " as ?sep) # (separator as single regex-compatible char) # <- CONST sep
bind(concat("^([^",?sep,"]*",?sep,"){",str(?n),"}") as ?p) #
bind(concat(?sep,".*") as ?p0) #
filter(if(?n=0,true,regex(?vs,?p))) # (?n=0 check for Viruoso) #
bind(replace(if(?n=0,?vs,replace(?vs,?p,"")),?p0,"") as ?pkh) # <- VAR pkh
} } #
#==================================================================#---------------------
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/pubkey/", ?pkh)) as ?service)
service ?service { select distinct ?np ?invalidated { optional {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
bind( exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkeyx . filter(contains(?_pubkeyhashes, sha256(str(?pubkeyx)))) } as ?invalidated )
}
} } }
bind(if(?invalidated,"invalidatedNpCount","validNpCount") as ?key)
values ?key { "invalidatedNpCount" "validNpCount" }
}
group by ?key ?invalidated
}
union
{
select ?key (sum(?npcount) as ?value) where {
bind("acceptedNpCount" as ?key)
optional { <x:> <x:> ?_userid_iri } # ensure grlc is picking up the placeholder
values ?npType {
<https://w3id.org/kpxl/pensoft/rio/terms/RIOJournalNanopub>
<https://w3id.org/kpxl/pensoft/bdj/terms/BiodiversityDataJournalNanopub>
<https://w3id.org/kpxl/ios/ds/terms/DataScienceNanopub>
}
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(?npType)))) as ?service)
service ?service { select (count(distinct ?np) as ?npcount) where { optional {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasPublicationInfo ?i .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
{ {
graph ?i { ?np pav:authoredBy ?_userid_iri . }
} union {
graph ?i {
?np bibo:authorList ?authorList .
?authorList ?hasElement ?_userid_iri .
filter(strstarts(str(?hasElement), str(rdf:_)))
}
} }
} }
group by ?np
} }
group by ?key
}
}
order by ?key
This query returns all nanopublications accepted at a journal by the given author.
Get all nanopublications by given author
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix pav: <http://purl.org/pav/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select ?np ?label ?npType ?timestamp where {
values (?npType ?pubkeys) {
(<https://w3id.org/kpxl/pensoft/rio/terms/RIOJournalNanopub> "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
(<https://w3id.org/kpxl/pensoft/bdj/terms/BiodiversityDataJournalNanopub> "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
(<https://w3id.org/kpxl/ios/ds/terms/DataScienceNanopub> "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
}
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(?npType)))) as ?service)
service ?service { select distinct ?np ?label ?timestamp where {
graph npa:graph {
?np dct:created ?timestamp .
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np rdfs:label ?label .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter(contains(?pubkeys, sha256(?pubkey)))
}
{ {
graph ?i { ?np pav:authoredBy ?_author_iri . }
} union {
graph ?i {
?np bibo:authorList ?authorList .
?authorList ?hasElement ?_author_iri .
filter(strstarts(str(?hasElement), str(rdf:_)))
}
} }
}
group by ?np ?label ?timestamp
} }
order by desc(?timestamp)
This query returns the final publisher version of the given nanopublication, or an empty result if no such version is found.
Returns the final publisher version of the given nanopublication
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix prov: <http://www.w3.org/ns/prov#>
select ?publisher_version_np ?npType ?journalName where {
graph npa:graph {
bind(replace(str(?_npid), "^.*[^a-zA-Z0-9-_](RA[a-zA-Z0-9-_]{43})$", "$1") as ?ac)
?np npa:artifactCode ?ac .
}
values (?npType ?journalName ?pubkeys) {
(<https://w3id.org/kpxl/pensoft/rio/terms/RIOJournalNanopub> "RIO Journal" "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
(<https://w3id.org/kpxl/pensoft/bdj/terms/BiodiversityDataJournalNanopub> "Biodiversity Data Journal" "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
(<https://w3id.org/kpxl/ios/ds/terms/DataScienceNanopub> "Data Science" "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
}
bind(?__type_iri as ?t)
filter(!bound(?t) || ?t = ?npType)
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(?npType)))) as ?service)
service ?service {
graph npa:graph {
?publisher_version_np npa:hasValidSignatureForPublicKey ?pubkey .
?publisher_version_np np:hasPublicationInfo ?i .
filter not exists { ?publisher_version_np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?publisher_version_np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter(contains(?pubkeys, sha256(?pubkey)))
}
graph ?i {
?publisher_version_np prov:wasDerivedFrom ?np .
}
}
}
This query returns all the reactions modeled with CiTO and published as nanopublications that refer to a given paper (e.g. by DOI) or other nanopublication.
Get all reactions on a paper or nanopublication
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix oa: <http://www.w3.org/ns/oa#>
select distinct ?np ?user ?rel ?reltext ?pub ?text ?date ?pubkey where {
graph npa:networkGraph {
?_pub_iri npx:supersedes* ?pub .
}
graph npa:graph {
?np np:hasAssertion ?a .
?np dct:created ?date .
?np dct:creator ?user .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?a {
?a dct:creator ?user .
?a ?rel ?pub .
optional { ?a rdfs:comment ?text . }
filter regex(str(?rel), "http://purl.org/spar/cito/.*")
}
graph <http://purl.org/np/RA6d0qLmlRdXd-ubre83LxP22auJdJjXGzaW3W3qH4Neo#assertion> {
?rel rdfs:label ?reltext .
}
}
order by desc(?date)
This query returns all the nanopublications that refer to (e.g. annotate) a given paper.
Get nanopublications refering to a given paper
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix oa: <http://www.w3.org/ns/oa#>
select distinct ?np ?user ?type ?subj ?subjLabel ?rel ?relLabel ?text ?selection ?date where {
graph npa:graph {
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i.
?np dct:created ?date .
?np dct:creator ?user .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?a {
?subj ?rel ?_paper_iri .
}
optional { ?a rdfs:comment ?textPre . bind(str(?textPre) as ?text) }
optional { graph <http://purl.org/np/RA6d0qLmlRdXd-ubre83LxP22auJdJjXGzaW3W3qH4Neo#assertion> {
?rel rdfs:label ?relLabelPre .
bind("cito" as ?typePre)
} }
optional { graph ?a {
?annotation oa:hasTarget ?annotationtarget ;
oa:hasBody ?annotationbody .
?annotationbody rdf:value ?annotationtext .
?annotationtarget oa:hasSource ?_paper_iri ;
oa:hasSelector ?annotationSelector .
optional { ?annotationSelector oa:prefix ?annotatedprefix . }
?annotationSelector oa:exact ?annotatedtext .
optional { ?annotationSelector oa:suffix ?annotatedsuffix . }
bind("oa" as ?typePre)
bind(str(?annotationtext) as ?text)
bind(concat(?annotatedprefix, "<h>", ?annotatedtext, "</h>", ?annotatedsuffix) as ?selection)
} }
bind(replace(str(?subj), '^.*?([a-zA-Z0-9\\-\\_]+)$', '$1') as ?subjLabel).
bind(coalesce(str(?relLabelPre), replace(str(?rel), '^.*?([a-zA-Z0-9\\-\\_]+)$', '$1')) as ?relLabel).
bind(coalesce(?typePre, "other") as ?type).
}
order by desc(?date)
This query returns all biodiversity-relation nanopublications.
Get biodiversity-related nanopublications
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix biolink: <https://w3id.org/biolink/vocab/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix biodiv: <https://w3id.org/kpxl/biodiv/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
select distinct ?np ?label (group_concat(distinct ?creator; separator = ", ") as ?creators) ?pubkey ?date ?provtlabel ?provsrc where {
graph npa:graph {
?np np:hasPublicationInfo ?i.
?np np:hasProvenance ?p.
?np np:hasAssertion ?a.
?np dct:created ?date .
?np rdfs:label ?labelx .
bind(str(?labelx) as ?label)
?np dct:creator ?__creator_iri .
bind(?__creator_iri as ?creator)
?np npx:hasNanopubType biodiv:BiodivNanopub .
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np npx:hasNanopubType ?__type_iri .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?i {
?np nt:wasCreatedFromProvenanceTemplate ?provtnp .
}
optional {
graph ?p {
?a prov:wasDerivedFrom ?provsrc .
}
}
optional { graph npa:graph {
?provtnp rdfs:label ?provtlabelx .
bind(str(?provtlabelx) as ?provtlabel)
} }
}
group by ?np ?label ?type ?pubkey ?date ?provtlabel ?provsrc
order by desc(?date)
This query returns some basic info - creator, author, label, etc. - on the head version of a nanopublication, i.e. the user-generated original version or - if available - a publisher-accepted version at a journal.
Get info on the head version of a nanopublication
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix pav: <http://purl.org/pav/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix prov: <http://www.w3.org/ns/prov#>
select ?head_version_np ?author_version_np ?publisher_version_np ?np_type ?journal_name ?main_author_or_creator ?creator ?main_author ?author_count ?label ?date ?author_version_date {
{ select ?given_np ?head_version_np ?author_version_np_pre ?publisher_version_np ?np_type ?journal_name ?author_version_date where {
graph npa:graph {
bind(replace(str(?_np_iri), "^.*[^a-zA-Z0-9-_](RA[a-zA-Z0-9-_]{43})$", "$1") as ?ac)
?given_np npa:artifactCode ?ac .
}
optional {
values (?np_type ?journal_name ?pubkeys) {
(<https://w3id.org/kpxl/pensoft/rio/terms/RIOJournalNanopub> "RIO Journal" "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
(<https://w3id.org/kpxl/pensoft/bdj/terms/BiodiversityDataJournalNanopub> "Biodiversity Data Journal" "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
(<https://w3id.org/kpxl/ios/ds/terms/DataScienceNanopub> "Data Science" "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
}
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(?np_type)))) as ?service)
service ?service {
graph npa:graph {
?publisher_version_np npa:hasValidSignatureForPublicKey ?pubkey .
?publisher_version_np np:hasPublicationInfo ?i .
filter not exists { ?publisher_version_np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?publisher_version_np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter(contains(?pubkeys, sha256(?pubkey)))
}
{ graph ?i {
?publisher_version_np prov:wasDerivedFrom ?given_np .
bind(?given_np as ?author_version_np_pre)
} } union { graph ?i {
filter(?publisher_version_np = ?given_np)
?publisher_version_np prov:wasDerivedFrom ?author_version_np_pre .
} }
}
}
} }
bind(coalesce(?author_version_np_pre, ?given_np) as ?author_version_np)
graph npa:graph {
?author_version_np dct:created ?author_version_date .
}
bind(coalesce(?publisher_version_np, ?author_version_np) as ?head_version_np)
bind(?head_version_np as ?np)
{ select distinct ?np (coalesce(?signer, min(?declaredCreator)) as ?creator) (coalesce(?firstAuthor, min(?author), min(?creator)) as ?main_author) (if(count(distinct ?author)>0,count(distinct ?author),count(distinct ?creator)) as ?author_count) ?label ?date where {
graph npa:graph {
?np dct:created ?date .
?np rdfs:label ?label .
?np np:hasPublicationInfo ?i .
?np dct:creator ?declaredCreator .
optional { ?np npx:signedBy ?signer . }
}
optional {
graph ?i { ?np pav:authoredBy ?author . }
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList ?hasElement ?author .
filter(strstarts(str(?hasElement), str(rdf:_)))
}
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList rdf:_1 ?firstAuthor .
}
}
} group by ?np ?signer ?introducedThing ?label ?date ?firstAuthor }
bind(coalesce(?main_author, ?creator) as ?main_author_or_creator)
}
This query returns the 10 authors with the most nanopublications accepted in journals.
Get the top-10 authors
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix oa: <http://www.w3.org/ns/oa#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix pav: <http://purl.org/pav/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select ?author (count(distinct ?np) as ?npcount) where {
values (?npType ?journalName ?pubkeys) {
(<https://w3id.org/kpxl/pensoft/rio/terms/RIOJournalNanopub> "RIO Journal" "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
(<https://w3id.org/kpxl/pensoft/bdj/terms/BiodiversityDataJournalNanopub> "Biodiversity Data Journal" "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
(<https://w3id.org/kpxl/ios/ds/terms/DataScienceNanopub> "Data Science" "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
}
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(?npType)))) as ?service)
service ?service {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasPublicationInfo ?i .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
optional {
graph ?i { ?np pav:authoredBy ?author . }
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList ?hasElement ?author .
filter(strstarts(str(?hasElement), str(rdf:_)))
}
}
}
filter(bound(?author))
}
group by ?author
order by desc(?npcount)
limit 10
This query returns the latest nanopublications accepted at a journal, currently covering RIO, Biodiversity Data Journal, and Data Science.
get latest accepted nanopubs
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix oa: <http://www.w3.org/ns/oa#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix pav: <http://purl.org/pav/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select ?np ?label ?npType ?mainAuthor ?authorEtAl ?timestamp ?date where {
values (?npType ?pubkeys) {
(<https://w3id.org/kpxl/pensoft/rio/terms/RIOJournalNanopub> "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
(<https://w3id.org/kpxl/pensoft/bdj/terms/BiodiversityDataJournalNanopub> "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
(<https://w3id.org/kpxl/ios/ds/terms/DataScienceNanopub> "1162349fdeaf431e71ab55898cb2a425b971d466150c2aa5b3c1beb498045a37 cfe248c38933693b1ddeb62e17976a4d2396b0c738af5356bfffbe559d1a3de0 170211c91a70e67992d52c760de3f0052c8c7271bd3c225ef0347245e8517ff6")
}
bind(uri(concat("https://w3id.org/np/l/nanopub-query-1.1/repo/type/", sha256(str(?npType)))) as ?service)
service ?service { select distinct ?np ?label (coalesce(?firstAuthor, min(?author), min(?creator)) as ?mainAuthor) (if(if(count(distinct ?author)>0, count(distinct ?author), count(distinct ?creator)) > 1, " et al.", "") as ?authorEtAl) ?timestamp (substr(str(?timestamp), 0, 11) as ?date) where {
graph npa:graph {
?np dct:created ?timestamp .
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np rdfs:label ?label .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
filter(contains(?pubkeys, sha256(?pubkey)))
}
optional {
graph ?i { ?np pav:authoredBy ?author . }
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList ?hasElement ?author .
filter(strstarts(str(?hasElement), str(rdf:_)))
}
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList rdf:_1 ?firstAuthor .
}
}
}
group by ?np ?label ?timestamp
} }
order by desc(?timestamp)
limit 10
This query returns the 10 templates that were used most during the last 30 days.
Get the top-10 templates of the last 30 days
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select distinct ?template (count(distinct ?np) as ?count) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasPublicationInfo ?i .
}
graph ?i {
?np nt:wasCreatedFromTemplate ?template .
}
}
group by ?template
order by desc(?count)
limit 10
This query returns the 10 creators who created most nanopublications during the last 30 days.
Get the top-10 creators of the last 30 days
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select distinct ?userid (count(distinct ?np) as ?count) where {
{ graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:creator ?userid .
} }
union
{
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasAssertion ?assertion .
?np np:hasProvenance ?prov .
}
graph ?prov {
?assertion prov:wasAttributedTo ?userid .
}
}
filter(strstarts(str(?userid), "https://orcid.org/"))
}
group by ?userid
order by desc(?count)
limit 10
This query returns the final nanopublications of the given author that have been accepted at the Biodiversity Data Journal.
Get latest nanopublications at Biodiversity Data Journal by given author
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix oa: <http://www.w3.org/ns/oa#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix pav: <http://purl.org/pav/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select distinct ?np ?label (coalesce(?firstAuthor, min(?author), min(?creator)) as ?mainAuthor) (if(if(count(distinct ?author)>0, count(distinct ?author), count(distinct ?creator)) > 1, " et al.", "") as ?authorEtAl) ?timestamp (substr(str(?timestamp), 0, 11) as ?date) where {
graph npa:graph {
?np dct:created ?timestamp .
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np rdfs:label ?label .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?i {
?np bibo:authorList ?authorList .
?authorList ?hasElement ?_author_iri .
filter(strstarts(str(?hasElement), str(rdf:_)))
}
optional {
graph ?i { ?np pav:authoredBy ?author . }
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList ?hasElement ?author .
filter(strstarts(str(?hasElement), str(rdf:_)))
}
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList rdf:_1 ?firstAuthor .
}
}
}
group by ?np ?label ?timestamp
order by desc(?timestamp)
limit 10
This query returns the most used taxon names in accepted nanopublications of the Biodiversity Data Journal.
Get the most used taxons in BDJ
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix oa: <http://www.w3.org/ns/oa#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix pav: <http://purl.org/pav/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select ?taxonName (max(?taxonNameLabel) as ?taxonNameLabel) (count(?taxonName) as ?taxonNameCount) where {
graph npa:graph {
?np dct:created ?timestamp .
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np rdfs:label ?label .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?a {
?association <https://w3id.org/kpxl/biodiv/terms/hasTaxonName> ?taxonName .
}
optional {
graph ?i {
?taxonName <https://w3id.org/np/o/ntemplate/hasLabelFromApi> ?taxonNameLabel .
}
}
}
group by ?taxonName
order by desc(?taxonNameCount)
limit 10
This query returns the number of accepted nanopublications per journal, for all known journals with nanopublications.
Get number of nanopublications per journal
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix oa: <http://www.w3.org/ns/oa#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix pav: <http://purl.org/pav/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select distinct ?journal (count(?np) as ?npcount) where {
{
service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/4bd6efc556b296ff29805b28082513e9a66c850f7ae38d176568f447863ba1da> {
bind("Biodiversity Data Journal" as ?journal)
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
}
} union {
service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/26df80496b38ffcad72b10e137bc78dbc6087e9eb171c09b10f2c9bf4240abc6> {
bind("Data Science" as ?journal)
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
}
} union {
service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/9d535811c66bd27b8c44331f56c51b3290b40e8e26c1b1638b4de5d4b13ec159> {
bind("RIO Journal" as ?journal)
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
}
}
}
group by ?journal
order by desc(?npcount)
This query returns the final nanopublications that have been accepted at the Data Science journal.
Get latest nanopublications at Data Science journal
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix oa: <http://www.w3.org/ns/oa#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix pav: <http://purl.org/pav/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select distinct ?np ?label (coalesce(?firstAuthor, min(?author), min(?creator)) as ?mainAuthor) (if(if(count(distinct ?author)>0, count(distinct ?author), count(distinct ?creator)) > 1, " et al.", "") as ?authorEtAl) ?timestamp (substr(str(?timestamp), 0, 11) as ?date) where {
graph npa:graph {
?np dct:created ?timestamp .
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np rdfs:label ?label .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
optional {
graph ?i { ?np pav:authoredBy ?author . }
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList ?hasElement ?author .
filter(strstarts(str(?hasElement), str(rdf:_)))
}
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList rdf:_1 ?firstAuthor .
}
}
}
group by ?np ?label ?timestamp
order by desc(?timestamp)
limit 10
This query returns the final nanopublications that have been accepted at the Biodiversity Data Journal.
Get latest nanopublications at Biodiversity Data Journal
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix oa: <http://www.w3.org/ns/oa#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix pav: <http://purl.org/pav/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select distinct ?np ?label (coalesce(?firstAuthor, min(?author), min(?creator)) as ?mainAuthor) (if(if(count(distinct ?author)>0, count(distinct ?author), count(distinct ?creator)) > 1, " et al.", "") as ?authorEtAl) ?timestamp (substr(str(?timestamp), 0, 11) as ?date) where {
graph npa:graph {
?np dct:created ?timestamp .
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np rdfs:label ?label .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
optional {
graph ?i { ?np pav:authoredBy ?author . }
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList ?hasElement ?author .
filter(strstarts(str(?hasElement), str(rdf:_)))
}
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList rdf:_1 ?firstAuthor .
}
}
}
group by ?np ?label ?timestamp
order by desc(?timestamp)
limit 10
This query returns the final nanopublications that have been accepted at the RIO Journal.
Get latest nanopublications at RIO Journal
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix oa: <http://www.w3.org/ns/oa#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix pav: <http://purl.org/pav/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select distinct ?np ?label (coalesce(?firstAuthor, min(?author), min(?creator)) as ?mainAuthor) (if(if(count(distinct ?author)>0, count(distinct ?author), count(distinct ?creator)) > 1, " et al.", "") as ?authorEtAl) ?timestamp (substr(str(?timestamp), 0, 11) as ?date) where {
graph npa:graph {
?np dct:created ?timestamp .
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np rdfs:label ?label .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
optional {
graph ?i { ?np pav:authoredBy ?author . }
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList ?hasElement ?author .
filter(strstarts(str(?hasElement), str(rdf:_)))
}
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList rdf:_1 ?firstAuthor .
}
}
}
group by ?np ?label ?timestamp
order by desc(?timestamp)
limit 10
Testing API updating...
API updating test
select * where { bind("third version" as ?t) }
This query returns the core info - creator, author, label, etc. - of a given nanopublication.
Get the core info of a nanopublication
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix oa: <http://www.w3.org/ns/oa#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix pav: <http://purl.org/pav/>
prefix bibo: <http://purl.org/ontology/bibo/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select distinct ?np (coalesce(?signer, min(?declaredCreator)) as ?creator) (coalesce(?firstAuthor, min(?author), min(?creator)) as ?mainAuthor) (if(count(distinct ?author)>0,count(distinct ?author),count(distinct ?creator)) as ?authorCount) ?introducedThing ?label ?date where {
graph npa:graph {
bind(replace(str(?_np_iri), "^.*[^a-zA-Z0-9-_](RA[a-zA-Z0-9-_]{43})$", "$1") as ?ac)
?np npa:artifactCode ?ac .
optional {<x:> <x:> ?_np_iri} # for grlc to pick up the placeholder
?np npa:hasHeadGraph ?h .
?np dct:created ?date .
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np rdfs:label ?label .
?np np:hasPublicationInfo ?i .
?np dct:creator ?declaredCreator .
optional { ?np npx:signedBy ?signer . }
optional { ?np npx:introduces ?introducedThing . }
}
optional {
graph ?i { ?np pav:authoredBy ?author . }
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList ?hasElement ?author .
filter(strstarts(str(?hasElement), str(rdf:_)))
}
}
optional {
graph ?i {
?np bibo:authorList ?authorList .
?authorList rdf:_1 ?firstAuthor .
}
}
}
group by ?np ?signer ?introducedThing ?label ?date ?firstAuthor
Returns all references (in the assertion graph) of the given subject IRI.
Subject References
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
select ?pred ?obj ?date ?creator where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np dct:created ?date .
?np dct:creator ?creator .
?np np:hasAssertion ?assertion .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?assertion {
?_subj_iri ?pred ?obj .
}
}
order by desc(?date)
Returns all annotations with field value selectors (experimental)
Get all field value annotations
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
prefix oa: <http://www.w3.org/ns/oa#>
select ?target_source ?field ?value ?np ?user where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i .
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?a {
?ann a oa:Annotation .
?ann oa:hasTarget ?target .
?target oa:hasSource ?target_source .
?target oa:hasSelector ?selector .
?selector a <http://example.org/FieldValueSelector> .
?selector <http://example.org/hasField> ?field .
?ann oa:hasBody ?body .
?body rdf:value ?value .
}
graph ?i {
optional {
?sig npx:hasSignatureTarget ?np .
?sig npx:signedBy ?user .
}
}
} order by desc(?date)
Thanks for implementing this feature.
I find this useful.
more testing...
a bit of testing...
just testing...
testing...
discussing our next steps...
demoing new features...
The README file of Nanodash.
SHACL is great for validating RDF.