iodepo / odis-arch Goto Github PK
View Code? Open in Web Editor NEWDevelopment of the Ocean Data and Information System (ODIS) architecture
Home Page: https://book.oceaninfohub.org/
Development of the Ocean Data and Information System (ODIS) architecture
Home Page: https://book.oceaninfohub.org/
The goal of this issue is to review the technology, standards, and readiness level of the Pacific data portals. The following SPREP and SPC portals have been identified as potential data sources for the OceanInfoHub in the PSIDS region:
Some resources:
@fils in our Latin America regional meeting, we discussed the importance of systematically recording and gathering memoranda of understanding.
These will be essential in transparency, and to help users understand which data flows / sharing structures are endorsed and trusted by partners.
When the document pattern is more stable, I think this should be a special case / template of this pattern, that records the IRI/DOI to the MoU, and unique identifiers for the partners involved, as well as metadata like a lifetime for the MoU.
I have started a document to collect information on metadata standards relevant to the architecture, feel free to contribute or suggest changes to the structure.
publisher
key for schema.orgoih-partner
The Map type is just a subclass of Documents. So anything in Documents can move across to Maps.
This is not clear in the documentation and makes the Maps docs look oddly sparse.
Connect these two better.
Issues #3 and #4 here present two different takes on an information model to describe hubs, developed in the early stage of our work. They represent a bare minimum of thinking about what a hub provides to the notional ODIS network and some dynamics of its technology. We need to further flesh this idea as we move along to eventually create a database of some kind with this information that will become an important organizing part of our eventual system. Ideally, hubs will eventually advertise themselves on the web with information that can align with this model. In the near term, we can create an abstract registry of information to help us learn from what hubs are doing and work at nudging them toward the developing architecture.
Here are some of the properties/characteristics of hubs that might be important. Please comment on this issue with adjustments to these and other important properties. Keep in mind that we have to fill all this information out somewhere in the near term and maintain it for some time period and that hubs will ultimately need to push this information out on the web in some way, so we probably don't want too complicated an information model.
I have started a document to collect information on data sources relevant to the architecture, feel free to contribute or suggest changes to the structure. I suppose ODISCat is supposed to fulfill that role in the long term, but this document could focus on sources that we want to include in the initial proof-of-concept implementation.
EurOcean: Research Infrastructures Database (rid.eurocean.org) is managed by EurOcean and offers a comprehensive list of all existing facilities in Europe which are dedicated to marine sciences broad range of activities. It provides the first level of knowledge and characteristics for each facility, as well as the links and contact to access the further details provided by the operator as it is the case for the Research Vessels: a list of descriptors are here attached.
I suggest to use a Jekyll theme that's a bit more suitable for documentation, hosted on GitHub Pages or somewhere else. For example:
Leverage author https://schema.org/author on Creativework
Can be Org or Person
Reference: https://developers.google.com/search/docs/advanced/structured-data/article
If you are using a controlled list for things like keywords or as additional properties of some sort it would be good if we can get a reference to them.
This would let us ensure that the OIH pattern for these is able to address them. We can keep track of those with and without machine readable versions..
For example the ISCED at http://uis.unesco.org/en/topic/international-standard-classification-education-isced
The Marine Knowledge Gate is a resource pool that we may want to consider as a hub in addition to the Research Infrastructures Database from EurOcean. This list of characteristics builds on what Pieter started in #3.
The Maps documentation is overly focused on Map as "document" or digital object.
Take the Maspiwo example of the bounding box and use it as an example here and better demonstrate the use of spatial with Map.
ODIS record page should include also machine readable information. The recommended format is JSON-LD based on schema.org scheme (for datasets) and additional Google fields. This information helps finding these pages using search engines, and allows also the presentation of additional information in the search results page.
The latest builds of the book have failed, this seems to be caused by a change in the TOC format, see https://executablebooks.org/en/latest/updates/2021-06-18-update-toc.html.
Running Jupyter-Book v0.11.1
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/jupyter_book/cli/main.py", line 243, in build
parse_toc_yaml(toc)
File "/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/sphinx_external_toc/parsing.py", line 82, in parse_toc_yaml
return parse_toc_data(data)
File "/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/sphinx_external_toc/parsing.py", line 88, in parse_toc_data
raise MalformedError(f"toc is not a mapping: {type(data)}")
sphinx_external_toc.parsing.MalformedError: toc is not a mapping: <class 'list'>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.7.10/x64/bin/jupyter-book", line 8, in <module>
sys.exit(main())
File "/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/jupyter_book/cli/main.py", line 246, in build
f"The Table of Contents file is malformed: {exc}\n"
File "/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/jupyter_book/utils.py", line 48, in _error
raise kind(box)
RuntimeError:
===============================================================================
The Table of Contents file is malformed: toc is not a mapping: <class 'list'>
You may need to migrate from the old format, using:
jupyter-book toc migrate /home/runner/work/odis-arch/odis-arch/book/_toc.yml -o /home/runner/work/odis-arch/odis-arch/book/_toc.yml
===============================================================================
the expert information is lacking the notion of nationality which will be needed if regional hubs want to extract only experts in their region
I propose to add https://schema.org/nationality to https://schema.org/Person
(the admin of iodepo/odis-arch will likely have to set this up, as I don't have permissions currently, I manually wrote the url above from a different project)
the content for https://iodepo.github.io/odis-arch/ should be filled with real text, now there is only some placeholder 'lorem ipsum' text
The list of topics for the spatial data and maps is an important list of keywords.
Each one would likely need its own sub-spec (eventually) as part of a variableMeasured or "about" field.
Some of those also connect to EOVs and some, like the tracks of shipping, can cross over to the vessels pattern.
This is related to the https://book.oceaninfohub.org/appendix/list.html
So we have leveraged shema.org/knowsAbout in the Person thematic to indicate a person knows about a Thing.
A few comments.
However, lets say as a group we wanted to subset the definition of this property (not saying we do though). That definition being:
Of a [[Person]], and less typically of an [[Organization]], to indicate a topic that is known about - suggesting possible expertise but not implying it. We do not distinguish skill levels here, or relate this to educational content, events, objectives or [[JobPosting]] descriptions
For argument let's say we want to imply knowAbout does indicate they have a recognized skill based on taking a course. Since knowsAbout is a Property (ie schema.org/Property we could add a new description to it.
There are a lot of semantic issues with this of course. (well.. maybe just 1 or 2 big ones). There is though... https://schema.org/disambiguatingDescription but this isn't really what it's meant for.
The real question I guess is...
How does a group indicate their interpretation of a schema.org property that they feel is simply their interpretation of schema.org's definition. Note, this is likely the power of schema.org.. to enable broad interpretation... this is simply trying to pass along additional info. Since there is no cardinality to anything in schema.org (correct?) can we simply just add in another description along with the schema.org one?
For reference:
{
"@id": "schema:knowsAbout",
"@type": "rdf:Property",
"rdfs:comment": "Of a [[Person]], and less typically of an [[Organization]], to indicate a topic that is known about - suggesting possible expertise but not implying it. We do not distinguish skill levels here, or relate this to educational content, events, objectives or [[JobPosting]] descriptions.",
"rdfs:label": "knowsAbout",
"schema:domainIncludes": [
{
"@id": "schema:Person"
},
{
"@id": "schema:Organization"
}
],
"schema:isPartOf": {
"@id": "https://pending.schema.org"
},
"schema:rangeIncludes": [
{
"@id": "schema:Text"
},
{
"@id": "schema:URL"
},
{
"@id": "schema:Thing"
}
],
"schema:source": [
{
"@id": "https://github.com/schemaorg/schemaorg/issues/1688"
},
{
"@id": "https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#TP"
}
]
},
provider
) valuewe should add https://schema.org/member -> person to the organizations
Need to do some repository re-organization
Review the book from the POV and partner on-boarding with Jeff.
instrument
in OceanExpert we do not have a real provider for a training but rather organizers, how do we fit this in?
we should add https://schema.org/url to the organizationsd
I have started a document to collect information on vocabularies relevant to the architecture, feel free to contribute or suggest changes to the structure.
the members (both organization and persons) should have some unique id attached so they can be matched with other elements
I still have a few remaining issues around escaped characters for the Ocean Experts Learning resources.
There are really on 4 issues. Also, The error log at the end has a double entry for each document, so it's longer than it should be.
I think all the errors are either ' \t an escaped " " or & issues. So resolving these 4 points should remove all remaining encoding issues.
So for example the ' character is fine, but the escape of it ' is not in the resource https://www.oceanexpert.org/event/1000
The interesting one is the escapes space? Take a look at https://www.oceanexpert.org/event/2019 and run it's JSON-LD through the JSON-LD playground at https://json-ld.org/playground/
I think these are the last of them! Appreciate the help of ferreting these out!
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1000 Action: json.Unmarshal call Error: invalid character '\'' in string escape code
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1000 Action: Getting normalized sha Error: invalid character '\'' in string escape code
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1054 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1054 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1082 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1082 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1293 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1293 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/583 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/583 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/584 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/584 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/2004 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/2004 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/2006 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/2006 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1083 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1083 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/768 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/768 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/2018 Action: json.Unmarshal call Error: invalid character ' ' in string escape code
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/2018 Action: Getting normalized sha Error: invalid character ' ' in string escape code
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1311 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1311 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1085 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1085 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1086 Action: json.Unmarshal call Error: invalid character '\'' in string escape code
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1086 Action: Getting normalized sha Error: invalid character '\'' in string escape code
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1379 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1379 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1389 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1389 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/429 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/429 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1090 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1090 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/2019 Action: json.Unmarshal call Error: invalid character ' ' in string escape code
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/2019 Action: Getting normalized sha Error: invalid character ' ' in string escape code
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/2126 Action: json.Unmarshal call Error: invalid character '&' in string escape code
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/2126 Action: Getting normalized sha Error: invalid character '&' in string escape code
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1708 Action: json.Unmarshal call Error: invalid character '&' in string escape code
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1708 Action: Getting normalized sha Error: invalid character '&' in string escape code
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1191 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1191 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/224 Action: json.Unmarshal call Error: invalid character '&' in string escape code
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/224 Action: Getting normalized sha Error: invalid character '&' in string escape code
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/225 Action: json.Unmarshal call Error: invalid character '&' in string escape code
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/225 Action: Getting normalized sha Error: invalid character '&' in string escape code
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1133 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1133 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1410 Action: json.Unmarshal call Error: invalid character '\'' in string escape code
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1410 Action: Getting normalized sha Error: invalid character '\'' in string escape code
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/2595 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/2595 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1129 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1129 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1625 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1625 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1648 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1648 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1741 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1741 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/2403 Action: json.Unmarshal call Error: invalid character '&' in string escape code
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/2403 Action: Getting normalized sha Error: invalid character '&' in string escape code
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/1944 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/1944 Action: Getting normalized sha Error: invalid character '\t' in string literal
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/306 Action: json.Unmarshal call Error: invalid character '&' in string escape code
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/306 Action: Getting normalized sha Error: invalid character '&' in string escape code
logger: acquire.go:151: ERROR: URL: https://www.oceanexpert.org/event/377 Action: json.Unmarshal call Error: invalid character '\t' in string literal
logger: acquire.go:172: ERROR: URL: https://www.oceanexpert.org/event/377 Action: Getting normalized sha Error: invalid character '\t' in string literal
the notion of the knownLanguage (https://schema.org/knowsLanguage) should be added as this can be important for some regions
As we are building the book using Actions we probably want to leave out the _build
directory?
(all of above are just ideas, recorded here initially as a way to throw-ideas-on-the-whiteboard, and each part is fine to remove or add) Goal here is to start the discussion/planning through this ticket.
we should have https://schema.org/memberOf attached to the organizations
Multilingual support in Jupyter Book is not great, but there are approaches for it.
I am reviewing executablebooks/jupyter-book#223 to see what the best approach might be,
I'm making this issue to stake this goal.
(similar to BeBOP-OBON/0_protocol_collection_template#5 )
MASPAWIO
Parsed 149 records
134 exported to JSON-LD
15 were invalid records
AMA
Parsed 596 records
596 exported to JSON-LD
0 were invalid records
BCC
Parsed 180 records
180 exported to JSON-LD
0 were invalid records
Caribbean Marine Atlas
Parsed 358 records
358 exported to JSON-LD
0 were invalid records
I would add a link to the Youtube video you made for the training, found this very well done and clear.
don't we need a place for the authors/contributors in https://github.com/iodepo/odis-arch/tree/master/schema/thematics/docs
Requested edits to current documents
Old title: Ocean Info Hub
New Title: The Ocean InfoHub Project and the development of the ODIS-architecture
Old Introduction
Organizations are increasingly exposing data and resources on the Web. A popular approach to this is using web architecture to expose structured data on the web using the schema.org vocabulary. Doing this makes resources discoverable by a range of organizations leveraging this architecture to build indexes. These include major commercial indexes, large domain focused groups and community focused services.
To add to that Introduction:
The Ocean Data and Information System (ODIS) will provide a schema.org based interoperability layer and supporting technology to allow existing and emerging ocean data and information systems, from any stakeholder, to interoperate with one another. This will enable and accelerate more effective development and dissemination of digital technology and sharing of ocean data, information, and knowledge. As such, ODIS will not be a new portal or centralised system, but will provide a collaborative solution to interlink distributed systems for common goals. Together with global project partners and partners in the three regions, a process of co-design will enable a number of global and regional nodes to test the proof of concept for the ODIS.
The ODIS-architecture development is being supported by the Ocean InfoHub Project, and it has been tested initially on IOC and partner databases. However, the system and standards are open for any institution or initiative that is interested in accessing the global data ecosystem to adopt and implement.
Old next heading: Ocean Info Hub
Replaced with heading: Guidance for the implementation of the ODIS-architecture
Text edit under that heading: just delete the first sentence: "Ocean Info Hub (OIH) is an implementation of this approach for the UN ODIS community."
Old next heading: Further details
Replaced with heading: Key links to the OIH GitHub repository
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.