weso / hercules-ontology

Development of the Ontology and its Continuos Integration for the Hercules project.
https://herculescrue.github.io/ib-hercules-ontology/current/asio.html
GNU General Public License v3.0
0 stars 5 forks source link

[HOI-0145] Project validation through Shape Expression #145

Closed thewillyhuman closed 4 years ago

thewillyhuman commented 4 years ago

I open this issue to discuss the structure of the shape used to validate the project class of ontology.

Class: https://github.com/weso/hercules-ontology/blob/86659a7b83b6754492885771b3fa730738af7ede/src/asio-core.ttl#L1437-L1439

alejgh commented 4 years ago

These some are of the elements that compose at project. Cardinalities, if given, are tentative and should be discussed. I'm used to shapes from Wikidata where almost all fields are optional since data is extracted from multiple heterogeneous sources, but we need to define what information must exist for something to be a project:

There is still work to do on the following fields:

thewillyhuman commented 4 years ago

What about this?

prefix asio: <http://purl.org/hercules/asio/core#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>

# Asio project node.
asio:ProjectShape EXTRA rdf:type {

  # Project type.
  rdf:type [asio:RegionalProject asio:NationalProject asio:EuropeanProject asio:InternationalProject]+ ;

  # Label and comment.
  rdfs:label rdf:langString + ;
  rdfs:comment rdf:langString * ;

  # Project ID.
  asio:projectId xsd:integer ? ;

  # Project acronym.
  asio:projectAcronym xsd:string ? ;

  # Project coordinator/s.
  asio:coordinatedBy @asio:AgentShape * ;

  # Project aim.
  asio:projectObjective rdf:langString ? ;

  # Project keywords.
  asio:projectKeyword rdf:langString * ;

  # Project dates.
  asio:projectEndDate xsd:date ? ;
  asio:projectStartDate xsd:date ;

  # Project foundings.
  asio:isFundedBy @asio:FundingProgrammeShape * ;

  # Project research field.
  asio:hasResearchField @asio:ResearchFieldShape * ;

  # Project outcome.
  asio:projectOutcome . * ;
}

asio:AgentShape {
  a [ foaf:Agent ] 
}

asio:FundingProgrammeShape {
}

asio:ResearchFieldShape @asio:ESSubjectAreas3rdListShape OR @asio:ESSubjectAreas2ndListShape OR @asio:ESSubjectAreas1ndListShape

asio:ESSubjectAreas3rdListShape { }
asio:ESSubjectAreas2ndListShape { }
asio:ESSubjectAreas1ndListShape { }
alejgh commented 4 years ago

Ok, we are losing some information there since the subject areas schemes (e.g. ESSubjectAreas3rdList) come from asioModules and not from asio (core), but I think that is not important for the validation. Or is it? Maybe we should also update the value of the asio prefix, currently it is in the ontology:

@prefix asio: <http://purl.org/hercules/asio/core#> .
thewillyhuman commented 4 years ago

Prefix updated