ISE-FIZKarlsruhe / nfdicore

NFDI Core Ontology
Creative Commons Zero v1.0 Universal
9 stars 1 forks source link

build docs verification

NFDI Core Ontology

Introduction

This is version v2.0.0 of the NFDIcore ontology.

The National Research Data Infrastructure (NFDI) initiative has seen the establishment of various consortia, each dedicated to developing a research data infrastructure tailored to its respective domain. To facilitate interoperability across these consortia, the NFDIcore ontology (prefix nfdicore) has been developed and serves as a mid level ontology for representing metadata about NFDI resources such as individuals, organizations, projects, data portals, etc.

Recognizing the diverse needs of consortia, NFDIcore establishes mappings to a wide array of standards across domains, including the Basic Formal Ontology (BFO) and schema.org, which is crucial for advancing knowledge representation, data exchange, and collaboration across diverse domains. To answer domain-specific research questions, NFDIcore is extended following a modular approach, as e.g. with the culture ontology module CTO, matwerk ontology module MWO, etc.

Aligning with IAO and SCHEMA, NFDIcore focuses on describing 3 main concepts:

  1. Digital Information Artifacts (nfdicore:Resource), e.g. data sets, data portals, publications, services, software, etc.
  2. Independent Continuants that act autonomously (nfdicore:Agent), e.g. organizations and persons
  3. Planned processes and events, e.g. nfdicore:Project, nfdicore:Contributing, nfdicore:Event.

A documentation of nfdicore.ttl (version 2.0.0) can be found at the namespace https://nfdi.fiz-karlsruhe.de/ontology.

NFDIcore Competency Questions (CQs) and SPARQL Queries

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 xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX ex: <http://example.org/>
PREFIX nfdicore: <https://nfdi.fiz-karlsruhe.de/ontology/>
PREFIX bfo: <http://purl.obolibrary.org/obo/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>

NFDI-MatWerk

All NFDI-MatWerk Use Cases are available at the MatWerk Consortium Webpage

Use Case 1

Use Case 2

Use Case 03

Use Case 04

Use Case 05

Use Case 06

Use Case 08

Use Case 09

Use Case 10

Use Case 12

Use Case 13

Use Case 15

Use Case 16

Use Case 17

NFDI4DataScience

All NFDI4DataScience Use Cases (Personas) are available at the NFDI4DataScience Consortium Webpage

Use Case Alex

Use Case Ben

Use Case Cassie

?r rdf:type ?type }


### Use Case David

- **CQ:** Who is a contact point of specific data (experimental)? What is their expertise?
- **SPARQL:**
```sparql
SELECT ?resource ?resourceType ?contactPoint
WHERE {
?resource rdf:type ?resourceType ;
nfdicore:contactPoint ?contactPoint .
?resourceType rdfs:subClassOf* nfdicore:Resource .
}

Use Case Emma

Use Case Finn

Use Case Gina

Use Case Hassan

NFDI4Culture

All NFDI4Culture Use Cases are available at the NFDI4Culture Consortium Webpage

Use Case 1

SELECT ?resource ?event ?process
WHERE
{  { ?resource bfo:RO_0000056 ?process} UNION { ?event bfo:BFO_0000050 ?process . } 
?resource rdf:type nfdicore:Service .
}

Use Case 2

SELECT ?resourceType ?standard ?contactPoint
WHERE {
?resource rdf:type ?resourceType ;
nfdicore:standard ?standard .
?standard nfdicore:contactPoint ?contactPoint.
?resourceType rdfs:subClassOf* nfdicore:Resource .
}
SELECT ?resource ?event
WHERE
{  
?resource bfo:RO_0000056 ?event ;
rdf:type ?resourceType .
?event rdf:type ?eventType ;
?eventType rdfs:subClassOf* nfdicore:Event .
?resourceType rdfs:subClassOf* nfdicore:Service .
}

Use Case 3

SELECT ?bestpractice ?acDisc
WHERE {
?resource rdf:type ?resourceType ;
nfdicore:bestPractice ?bestpractice ;
nfdicore:subjectArea ?acDisc .
?resourceType rdfs:subClassOf* nfdicore:Resource .
}
SELECT ?bestPractice ?acDisc
WHERE {
?process rdf:type bfo:IAO_0000444 ;
bfo:OBI_0000299 ?resource .
?resource nfdicore:subjectArea ?acDisc .
?bestPractice bfo:RO_0000056 ?process ;
rdf:type ?type .
VALUES ?type {nfdicore:Specification nfdicore:Standard}
}
SELECT ?task ?event ?start ?end 
WHERE {
?event rdf:type nfdicore:Event ;
nfdicore:startDate ?start ;
nfdicore:endDate ?end ;
bfo:BFO_0000050 ?task .
}

Use Case 4

SELECT ?context ?domain ?range
WHERE 
{
?publProcess rdf:type bfo:IAO_0000444 .
{?publProcess ?context ?object} UNION {?subject ?context ?publProcess}
OPTIONAL {?context rdfs:domain ?domain ;
rdfs:range ?range .}
}

Use Case 5

SELECT ?resource ?event
WHERE
{  
?resource bfo:RO_0000056 ?event ;
rdf:type ?resourceType .
?event rdf:type ?eventType ;
?eventType rdfs:subClassOf* nfdicore:Event .
?resourceType rdfs:subClassOf* nfdicore:Service .
}
SELECT ?license ?mediaType 
WHERE 
{
?resource rdf:type nfdicore:Dataset ;
nfdicore:mediaType ?mediaType ;
nfdicore:license ?license. 
}
SELECT ?resource ?contactPoint
WHERE 
{
?resource rdf:type ?resourceType;
nfdicore:contactPoint ?contactPoint .
?resourceType rdfs:subClassOf* nfdicore:Service .
}
SELECT ?event ?task
WHERE
{?event bfo:BFO_0000050 ?task ;
rdf:type nfdicore:Event }

Use Case 6

SELECT ?bestPractice ?acDis
WHERE {
?process rdf:type bfo:IAO_0000444 ;
bfo:OBI_0000299 ?resource .
?resource nfdicore:subjectArea ?acDis ;
rdf:type nfdicore:Software .
?bestPractice bfo:RO_0000056 ?process ;
rdf:type ?type .
VALUES ?type {nfdicore:Specification nfdicore:Standard}
}

Use Case 7

SELECT ?academicDisc ?mediaType ?license
WHERE {
?resource nfdicore:mediaType ?mediaType ;
nfdicore:subjectArea ?academicDisc ;
nfdicore:license ?license .
}
SELECT ?service ?acDis
WHERE {
?service rdf:type nfdicore:Learning\&Teaching ;
nfdicore:subjectArea ?acDis .
}
SELECT ?guideline ?resource ?acDis
WHERE {
?process rdf:type bfo:IAO_0000572 ; 
bfo:BFO_0000050 ?dataPublProcess ; 
bfo:OBI_0000293 ?resource ;
bfo:OBI_0000299 ?guideline .
?resource rdf:type ?resourceType ;
nfdicore:subjectArea ?acDis .
?guideline rdf:type nfdicore:Publication .
?resourceType rdfs:subClassOf* nfdicore:Resource .
 }

Use Case 8

SELECT distinct ?process ?resourceType ?acDis
WHERE {
?process rdf:type ?processType .
?processType rdfs:subClassOf* bfo:OBI_0000011 .
{?process bfo:OBI_0000293|bfo:OBI_0000299|bfo:RO_0000057 ?resource.} UNION {?resource bfo:RO_0000056 ?process}
?resource rdf:type ?resourceType ;
nfdicore:subjectArea ?acDis .
?resourceType rdfs:subClassOf* nfdicore:Resource .
 }

Use Case 9

SELECT ?bestPractice
WHERE {
?process rdf:type bfo:IAO_0000444 ;
bfo:OBI_0000299 ?resource .
?bestPractice bfo:RO_0000056 ?process ;
rdf:type ?type .
VALUES ?type {nfdicore:Specification nfdicore:Standard}
}

Use Case 10

SELECT ?agent ?process
WHERE
{ 
?agent rdf:type ?agentType ;
bfo:RO_0000056 ?process . 
?resource bfo:RO_0000056 ?process ;
rdf:type ?type .
?type rdfs:subClassOf* nfdicore:CreativeWork .
?agentType rdfs:subClassOf* nfdicore:Agent .
}

Use Case 11

SELECT ?resource ?acDis ?standard
WHERE
{ 
?resource rdf:type ?resourceType ;
nfdicore:subjectArea ?acDis ;
nfdicore:standard ?standard .
?standard nfdicore:semanticExpressivity ?conVoc .
?conVoc rdf:type nfdicore:ControlledVocabulary .
?resourceType rdfs:subClassOf* nfdicore:Resource .}

Use Case 12

SELECT distinct ?r ?type ?process
WHERE
{ {?r bfo:RO_0000056 ?process ;
rdf:type nfdicore:Learning\&Teaching ;}
UNION 
{ ?r bfo:BFO_0000050 ?process ;
rdf:type nfdicore:Event }
?r rdf:type ?type 
}

Use Case 14

SELECT ?resource ?acDis ?mediaType ?quality 
WHERE{
?resource rdf:type ?resourcetype ;
nfdicore:subjectArea ?acDis ;
nfdicore:mediaType ?mediaType ;
?p ?quality .
?p rdfs:subPropertyOf* bfo:RO_0000086 .
?resourcetype rdfs:subClassOf* nfdicore:Resource .
}

Use Case 15

SELECT distinct ?resource ?acDis ?semExpressivityType
WHERE {
?resource rdf:type ?resourcetype ;
nfdicore:subjectArea ?acDis ;
nfdicore:semanticExpressivity ?semExpressivity .
?semExpressivity rdf:type ?semExpressivityType .
}
SELECT ?service ?acDis
WHERE {
?service rdf:type nfdicore:Learning\&Teaching ;
nfdicore:subjectArea ?acDis .
}

Use Case 16

SELECT ?service ?acDis
WHERE {
?service rdf:type ?serviceType ;
nfdicore:subjectArea ?acDis .
VALUES ?serviceType {nfdicore:Linkage\&Enrichment nfdicore:Publication\&Dissemination}
}
SELECT ?collection ?place
WHERE {
?collection rdf:type nfdicore:Collection ;
nfdicore:location ?place .
}

Use Case 17

SELECT ?service ?serviceType
WHERE {
?service rdf:type ?serviceType ;
VALUES ?serviceType {nfdicore:Linkage\&Enrichment nfdicore:Storage\&Preservation}
}

Use Case 18

SELECT ?agent ?expertise ?service
WHERE {
        ?agent rdf:type ?agentType .
        ?agentType rdfs:subClassOf* nfdicore:Agent .
OPTIONAL {?agent nfdicore:member ?organisation .}
         ?agent nfdicore:subjectArea ?expertise .
         ?service nfdicore:contactPoint ?agent ;
         rdf:type ?serviceType .
         ?serviceType rdfs:subClassOf* nfdicore:Service .}

Use Case 20

SELECT ?resourceType ?location
WHERE {
?resource rdf:type ?resourceType ;
nfdicore:location ?location .
?resourceType rdfs:subClassOf* nfdicore:Resource .
}

Use Case 21

SELECT ?bestPractice ?acDisc
WHERE {
?process rdf:type bfo:IAO_0000444 ;
bfo:OBI_0000299 ?resource .
?resource nfdicore:subjectArea ?acDisc .
?bestPractice bfo:RO_0000056 ?process ;
rdf:type ?type .
VALUES ?type {nfdicore:Specification nfdicore:Standard}
}

Use Case 22

SELECT ?resource ?event
WHERE
{  
?resource bfo:RO_0000056 ?event ;
rdf:type ?type .
?event rdf:type ?eventType .
?eventType rdfs:subClassOf* nfdicore:Event .
{?type rdfs:subClassOf* nfdicore:Service} UNION {?type rdfs:subClassOf* nfdicore:Software}
}

Use Case 23

SELECT ?academicDisc ?resource
WHERE {
?resource rdf:type ?type;
nfdicore:subjectArea ?academicDisc .
?type rdfs:subClassOf* nfdicore:Software .
}
SELECT ?service ?acDis
WHERE {
?service rdf:type nfdicore:Learning\&Teaching ;
nfdicore:subjectArea ?acDis .
}

Use Case 24

SELECT ?academicDisc ?resource
WHERE {
?resource rdf:type ?type;
nfdicore:subjectArea ?academicDisc .
?type rdfs:subClassOf* nfdicore:Resource .
}

Use Case 25

SELECT distinct ?resource ?event ?mediaType ?semExpType
WHERE
{  
?resource bfo:RO_0000056 ?event ;
rdf:type ?type ;
nfdicore:mediaType ?mediaType .
?event rdf:type ?eventType .
?eventType rdfs:subClassOf* nfdicore:Event .
?type rdfs:subClassOf* nfdicore:Resource .
OPTIONAL {
?resource nfdicore:semanticExpressivity ?semExp.
?semExp rdf:type ?semExpType . }
}

Use Case 26

SELECT ?resource ?project ?agent
WHERE {
?resource rdf:type ?type ;
bfo:RO_0000056 ?process.
?process rdf:type nfdicore:Contributing ;
bfo:BFO_0000050 ?project .
?project rdf:type nfdicore:Project .
?role bfo:BFO_0000054 ?process . 
?type rdfs:subClassOf* nfdicore:Software .
?agent bfo:RO_0000056 ?process;
bfo:RO_0000087 ?role .
?role rdf:type nfdicore:ContributorRole . }
SELECT ?resource ?type ?project ?agent
WHERE {
?resource rdf:type ?type ;
bfo:RO_0000056 ?process.
?process rdf:type nfdicore:Contributing ;
bfo:BFO_0000050 ?project .
?project rdf:type nfdicore:Project .
?role bfo:BFO_0000054 ?process . 
?type rdfs:subClassOf* nfdicore:Resource .
?agent bfo:RO_0000056 ?process;
bfo:RO_0000087 ?role .
?role rdf:type nfdicore:ContributorRole . }
SELECT ?agent ?project ?acDis
WHERE {
{?agent bfo:RO_0000056 ?process ;
bfo:BFO_0000050 ?project. } UNION
{?agent bfo:RO_0000056 ?project.}
?project rdf:type nfdicore:Project .
?agent nfdicore:subjectArea ?acDis ;
rdf:type ?agentType .
?agentType rdfs:subClassOf* nfdicore:Agent .
}
SELECT ?resource ?project ?agent
WHERE {
?resource rdf:type nfdicore:Learning\&Teaching ;
bfo:RO_0000056 ?process.
?process rdf:type nfdicore:Contributing ;
bfo:BFO_0000050 ?project .
?project rdf:type nfdicore:Project .
?role bfo:BFO_0000054 ?process . 
?agent bfo:RO_0000056 ?process;
bfo:RO_0000087 ?role .
?role rdf:type nfdicore:ContributorRole . }

Use Case 27

SELECT ?resourcetype ?specification ?mediatype
WHERE {
  ?resource rdf:type ?resourcetype .
  ?resourcetype rdfs:subClassOf* nfdicore:Resource .
  OPTIONAL { ?resource nfdicore:specification ?specification . }
  OPTIONAL { ?resource nfdicore:mediaType ?mediatype . }
}

Use Case 28

SELECT ?resourceType ?standard
WHERE
{ 
?resource rdf:type ?resourceType ;
nfdicore:standard ?standard .
?standard nfdicore:semanticExpressivity ?conVoc .
?conVoc rdf:type nfdicore:ControlledVocabulary .
?resourceType rdfs:subClassOf* nfdicore:Resource .}

NFDI4Memory

All NFDI4Memory Use Cases are available at the NFDI4Memory Consortium Webpage

Use Case 1

SELECT ?contactPoint
WHERE {
?service rdf:type nfdicore:Learning\&Teaching ;
nfdicore:contactPoint ?contactPoint .
?contactPoint rdf:type nfdicore:Person ;
nfdicore:subjectArea ex:IT .
}

Use Case 3

SELECT ?bestpractice
WHERE {
?resource rdf:type ?resourceType ;
nfdicore:bestPractice ?bestpractice .
?resourceType rdfs:subClassOf* nfdicore:Resource .
}

Use Case 5

SELECT ?software (count(?software) as ?count) ?contactPoint
WHERE {
    ?software nfdicore:contactPoint ?contactPoint .
    ?resource nfdicore:software ?software .
}
GROUP BY ?software ?contactPoint
ORDER BY DESC(?count)

Use Case 6

SELECT ?standard
WHERE {
ex:NFDI4Memory bfo:RO_0000056 ?process ;
bfo:RO_0000087 ex:Repository .
?role bfo:BFO_0000054 ?process . 
?process rdf:type nfdicore:Contributing .
?resource bfo:RO_0000056 ?process ;
nfdicore:standard ?standard .
?standard nfdicore:semanticExpressivity ?controlledVoc .
?controlledVoc rdf:type nfdicore:ControlledVocabulary . }
SELECT ?service ?task
WHERE { 
?service rdf:type ?serviceType .
?serviceType rdfs:subClassOf* nfdicore:Service ;
rdfs:label ?task .
}

Use Case 7

SELECT ?license (count (distinct ?license) as ?count) ?resourceType
WHERE {
?resource rdf:type ?resourceType ;
nfdicore:license ?license .
?resourceType rdfs:subClassOf* nfdicore:Resource .
}
GROUP BY ?license ?resourceType

Use Case 8

SELECT ?resource
WHERE {
?process rdf:type bfo:IAO_0000572 ; %documenting
bfo:BFO_0000050 ex:ResearchDataPublication ; %partOf
bfo:OBI_0000299 ?resource .   %has_specified_output
?resource rdf:type nfdicore:Publication .
 }

Use Case 9

SELECT DISTINCT ?organization ?resource ?license 
WHERE {
?organization rdf:type nfdicore:Organization ; 
nfdicore:location ex:Germany ;
bfo:RO_0000087 ?role ;
bfo:RO_0000056 ?process .
?resource rdf:type nfdicore:Resource ;
bfo:RO_0000056 ?process ;
nfdicore:license ?license . 
}
SELECT ?guideline ?resourceType
WHERE {
?process rdf:type bfo:IAO_0000572 ;
bfo:BFO_0000050 ?dataprovenance ;
bfo:OBI_0000293 ?resource ;
bfo:OBI_0000299 ?guideline .   
?guideline rdf:type nfdicore:Publication .
?resource rdf:type ?resourceType .
?resourceType rdfs:subClassOf* nfdicore:Resource .
 }

Use Case 11

SELECT ?organization ?member 
WHERE {
        ?organization rdf:type nfdicore:Organisation .
        ?person rdf:type nfdicore:Person ;
         nfdicore:member ?organization .
        { ?person nfdicore:subjectArea ex:ComputerScience . } 
UNION { ?person nfdicore:subjectArea ex:InformationTechnology . 
} 
}

Use Case 13

SELECT ?academicDisc ?mediaType
WHERE {
?resource nfdicore:mediaType ?mediaType ;
nfdicore:subjectArea ?academicDisc .
}

Use Case 14

SELECT ?license ?mediaType
WHERE {
?resource rdf:type ?resourceType ;
nfdicore:mediaType ?mediaType ;
nfdicore:license ?license .
?resourceType rdfs:subClassOf* nfdicore:Resource .
}

Use Case 15

SELECT ?service ?task
WHERE { 
?service rdf:type ?serviceType .
?serviceType rdfs:subClassOf* nfdicore:Service ;
rdfs:label ?task .
}
SELECT ?resource ?academicDisc
WHERE {
?resource rdf:type nfdicore:Software ;
nfdicore:subjectArea ?academicDisc .
}

Use Case 16

SELECT ?orga
WHERE {
?orga rdf:type nfdicore:Organization .
?person nfdicore:member ?orga .
{?orga nfdicore:subjectArea ex:IT } UNION {?person nfdicore:subjectArea ex:IT}
}
SELECT distinct ?service ?agent
WHERE {
?orga rdf:type nfdicore:Organization .
?service rdf:type ?serviceType .
?service nfdicore:contactPoint ?agent .
?serviceType rdfs:subClassOf* nfdicore:Service . 
{?agent rdf:type nfdicore:Organization} UNION {?person nfdicore:member ?agent}
}

Use Case 17

SELECT ?resource
WHERE {
?resource rdf:type ?resourceType ;
nfdicore:subjectArea ex:ComputerScience .
?resourceType rdfs:subClassOf* nfdicore:Service .
}

Use Case 23

SELECT ?bestPractice ?license
WHERE {
?process rdf:type bfo:IAO_0000444 ;
bfo:OBI_0000299 ?resource .
?resource nfdicore:license ?license .
?bestPractice bfo:RO_0000056 ?process ;
rdf:type ?type .
VALUES ?type {nfdicore:Specification nfdicore:Standard}
}

Use Case 42

SELECT ?standard 
WHERE {
?process rdf:type bfo:IAO_0000444 ;
bfo:OBI_0000299 ?resource .
?resource nfdicore:standard ?standard .
?standard nfdicore:semanticExpressivity ?conVoc .
?conVoc rdf:type nfdicore:ControlledVocabulary .
}
SELECT ?standard
WHERE {
?process rdf:type bfo:IAO_0000444 ;
bfo:OBI_0000299 ?resource .
?standard bfo:RO_0000056 ?process ;
rdf:type ?type ;
nfdicore:semanticExpressivity ?conVoc .
?conVoc rdf:type nfdicore:ControlledVocabulary .
VALUES ?type {nfdicore:Specification nfdicore:Standard}
}