On Schema Languages
Internet2 Trust and Identity Schema
Revision: 06, (2021-01-26)
Self-link: https://github.internet2.edu/api-schema/onSchemaLanguages
Editor: Keith Hazelton, hazelton@internet2.edu
2020-09-02 12:46 JSON, YAML, XML, APIs linters, converters, validators, document and code generators
https://codebeautify.org/jsonvalidator ⇐ multi-tool, well done
- https://codebeautify.org/yaml-to-json-xml-csv
- https://codebeautify.org/json-to-yaml
https://json-schema.org/specification.html
https://editor.swagger.io/
https://app.swaggerhub.com
https://www.asyncapi.com/ ⇐ See Tooling tab
https://github.com/OpenAPITools/openapi-generator ⇐ generate code from OpenAPI spec
schema.adoc
2020-06-05 10:21 Success: Defined workflow from Protégé OWL Ontology to JSON-LD representation
Define Person, Attribute and properties in Protégé OWL.
Protégé OWL 5.5 has a Save As / json-ld option
Copy contents of json-ld representation of ontology
Paste into JSON-LD Playground
2020-05-27 11:12 Revised proposal for workflow from ontology to json-ld
-
Start w OWL for ontology / information model drafting
-
Could this be the native Axiom representation?
-
-
Save to RDF(a) (trivial re-representation, "save as")
-
Re-express RDF as JSON-LD (From RDF to JSON-LD, https://w3c.github.io/json-ld-api/tests/fromRdf-manifest.html)
-
Optionally map OWL to Neo4j graph representation (lots of tools, e.g. neosemantics)
.
2020-05-26 22:18 Axiom constructs to OWL entities and properties
objects ←→ entities
properties ←→ object properties, data properties ?
containers ←→ DAG fragments ?
object references ←→ entity IRIs
value metadata ←→ simple property ?
2020-05-26 10:27 JSON-LD & RDF & OWL
https://github.com/VirtualFlyBrain/neo4j2owl ⇐ !! A model approach to building information models
https://github.com/VirtualFlyBrain/VFB_neo4j
https://github.com/VirtualFlyBrain/VFB_owl ⇐ To be deprecated when VFB 2.0 is released
https://neo4j.com/graphgist/books-management-graph
https://www.slideshare.net/thesimonjupp/ontologies-neo4jgraphworkshopberlin
https://neo4j.com/blog/neo4j-rdf-graph-database-reasoning-engine/
https://elixir-europe.org/about-us/how-funded/eu-projects/excelerate ⇐ Another Horizon 2020-funded project
https://elixir-europe.org/platforms
https://drive.google.com/file/d/1DNugP5P3qmw1YHqcD9ZS4ogi34vCVtjU/view ⇐ Selected Elixir Core Data Resources
- https://www.uniprot.org/ ⇐ protein sequence and functional information
- https://string-db.org/cgi/input.pl ⇐ Protein-Protein Interaction Networks, Functional Enrichment Analysis
- https://www.ebi.ac.uk/pdbe/ ⇐ collection, org & dissemination of data on biological macromolecular structures
- https://www.ebi.ac.uk/intact/ ⇐ free, open source database system and analysis tools for molecular interaction data
- https://www.proteinatlas.org/ ⇐ Human protein atlas
- https://europepmc.org/ ⇐ Europe PMC
- https://europepmc.org/About ⇐ open science platform for access to a worldwide collection of life science pubs
- https://www.ebi.ac.uk/chebi/ ⇐ Chemical Entities of Biological Interest
- https://www.brenda-enzymes.org/ ⇐ Comprehensive Enzyme Information System
original plan
-
Start w Neo4J for information model drafting
-
Could this be the native Axiom representation?
-
-
Migrate up to OWL (using neo4j2owl)
-
Save to RDF(a) (trivial re-representation, "save as")
-
Re-express RDF as JSON-LD (From RDF to JSON-LD, https://w3c.github.io/json-ld-api/tests/fromRdf-manifest.html)
https://www.researchgate.net/publication/266388960_Semantic_Web_and_Big_Data_meets_Applied_Ontology_The_Ontology_Summit_2014
https://www.w3.org/TR/vocab-dcat-2/ ⇐ Data Catalog Vocabulary v2
https://niem.github.io/reference/domain-modeling-guide/content/
https://www.niem.gov/tools-catalog
2020-05-25 21:49 IM and DM
https://tools.ietf.org/html/rfc3444 ⇐ On the difference between Information Models and Data Models http://docs.geppetto.org/en/latest/devdocs.html ⇐ open neuro-sci info modeling
2020-05-26 08:05 Schema.org as reference point
2020-05-13 18:08 Road to Axiom
https://evolveum.com/data-provenance-milestone-1/ ⇐ Evolveum blog post by Radovan Semancik
https://evolveum.com/a-road-to-axiom/ ⇐ Evolveum blog post by Radovan Semancik
2020-05-04 16:05 Thoughts on Axiom
Why the ongoing dissatisfaction with existing schema languages?
-
lack of common schema metadata
-
clunky extensibility
-
lack of human-friendly syntax
-
lack of libraries for programmatic handling
Look at Evolveum complaints
https://j.mp/evosow ⇐ Item 1, April 28, 2020: Evolveum on schema
Suggestion: JSON-LD’s @context gives a perfect way to avoid collisions in extensions
2020-04-29 12:37 alignment of COmanage and Minimal Registry Person
corePersonJsonSchema.json ⇐ started with JSON Schema for Minimal Registry Person
2020-04-23 15:17 DW (Incl FM) Schema
see icpData.adoc
2020-04-21 09:33 Evolveum Axiom Schema Language proposal
https://docs.evolveum.com/midpoint/midprivacy/phases/01-data-provenance-prototype/axiom/
https://wiki.evolveum.com/display/midPoint/Prism+Schema ⇐ related
2020-04-08 15:39 OpenAPI 3.1 and JSON Schema-09
https://apisyouwonthate.com/blog/openapi-v31-and-json-schema-2019-09 ⇐ new phil sturgeon article celebrating convergence
https://stoplight.io/open-source/spectral/ ⇐ Spectral, an Open Source JSON/YAML Linter
https://swagger.io/specification/ ⇐ version 3.0.3
2020-01-14 12:50 schema across TAP components
? json schema vs xml (midPoint)
Quick Thoughts
Challenge: Express the Axiom Design Draft using currently available schema languages.
-
JSON-LD provides the ability to declare and use multiple namespaces.
-
See if the rest of the Axiom specification can be expressed in JSON-LD (which is itself valid JSON)
-
See if the identified shortcomings of other schema languages can be overcome with this approach
-
Midpoint user list as a place to start the discussion once this document is shareable
JSON-LD Example:
{
"@context": "http://id.internet2.edu/schema",
"@type": "person",
"name": "Brian Anderson",
"jobTitle": "IAM Technologist",
"url": "https://foo.edu/~banderson",
"address": {
"@type": "PostalAddress",
"streetAddress": "2020 Ginko Ave",
"addressLocality": "Nutown",
"addressRegion": "New Florida",
"postalCode": "94453",
"addressCountry": "US"
},
"email": "banderson@gmail.com",
"telephone": "+1 608 467-6846",
"birthDate": "1997-03-10"
}
References and Links
https://evolveum.com/a-road-to-axiom/ ⇐ A Road to Axiom, a blog post by Radovan Semancik
https://dzone.com/articles/json-ld-building-meaningful-data-apis-via-codeship ⇐ Why JSON-LD, An Introduction
https://json-ld.org/primer/latest/ ⇐ JSON-LD Primer A Context-based JSON Serialization for Linked Data
https://github.com/w3c/json-ld-syntax ⇐ JSON-LD 1.1 Specification
https://github.com/digitalbazaar/jsonld.js/ ⇐ JSON-LD Library; Any JSON tool will recognize JSON-LD as valid
https://github.com/digitalbazaar/jsonld-cli ⇐ CLI version of the JSON API
The Axiom Schema Language
“Axiom is a [proposed] data modeling language used to model data and metadata for Prism and the midPrivacy project, with the intention to replace XSD as the go-to modeling language for Prism.”
ConnID 2.0 Notes ⇐ Toward a next generation connector framework
Evolveum team is prototyping Axiom use in the mP UI
Background: Connid-dev Google Groups posts re ConnID 2.0
https://docs.evolveum.com/midpoint/midprivacy/ ⇐ midPrivacy Project: Develop open source privacy-enhancing identity management solution on top of midPoint.
https://docs.evolveum.com/midpoint/midprivacy/phases/01-data-provenance-prototype/ ⇐ Data Provenance Prototype: First work package in midPrivacy Project: To improve transparency and accountability of personal data processing.