Since 2009, Janeiro Digital has been executing some of the most complex technologies behind high-end, mission-critical digital transformations.
From ensuring that nuclear plants don’t melt down to rearchitecting and launching one of the largest online retailers, we’ve done it all.
user Pods:
Category | Name | Type | Description | Status |
Core | URI | Protocol | Universal Resource Identifier | 1998 Internet Standard |
Core | HTTP | Protocol | Hypertext Transport Protocol | 1999 Internet Standard |
Core | RDF/XML | Data Format | RDF serialization in XML | 2004 Recommendation |
Core | Turtle | Data Format | Alternate, more human readable RDF serialization | 2011 Team Submission |
Core+ | SPARQL | Query + Update | SPARQL is to RDF what SQL is to RDBMS | 2008 1.0 Recommendation2011 1.1 Last Call Draft |
Core+ | SPARQL Graph Store HTTP Protocol | Protocol | HTTP/REST for managing RDF graphs | 2011 Last Call Draft |
Semantic Analysis | RDFS | Schema | Schema language for defining vocabularies | 2004 Recommendation |
Semantic Analysis | OWL | Schema | Richer schema language for defining ontologies | 2009 Recommendation |
Bridge | RDFa | Data Format | RDF serialization for embedding in HTML pages | 2008 1.0 Recommendation2011 1.1 Last Call Draft |
Bridge | R2RML | Data Format | Language to define mappings of relational data to RDF | 2011 Working Draft |
Bridge | Direct Mapping of Relational Data to RDF | Data Format | Standard mapping of relational data to RDF | 2011 Working Draft |
"The spec on a cup"
★ Available on the web (whatever format) but with an open licence, to be Open Data
★★ Available as machine-readable structured data (e.g. excel instead of image scan of a table)
★★★ As (2) plus non-proprietary format (e.g. CSV instead of excel)
★★★★ All the above plus, Use open standards from W3C (RDF and SPARQL) to identify things, so that people can point at your stuff
★★★★★ All the above, plus: Link your data to other people’s data to provide context
Emphasizes Open data
Linked data plus:
PREFIX ns0: <http://example.org/ontology/>
PREFIX dc: <http://purl.org/dc/terms/>
PREFIX ns1: <http://www.w3.org/ns/ldp#>
<http://example.org/netWorth/nw1>
a <http://example.org/ontology/NetWorth> ;
ns0:asset <http://example.org/netWorth/nw1/assetContainer/a1>, <http://example.org/netWorth/nw1/assetContainer/a2> .
<http://example.org/netWorth/nw1/assetContainer>
a <http://www.w3.org/ns/ldp#DirectContainer> ;
dc:title "The assets of JohnZSmith" ;
ns1:membershipResource <http://example.org/netWorth/nw1> ;
ns1:hasMemberRelation ns0:asset .
Some vestigial files still aren't RDF!
Solid leverages OAuth2 / OpenID Connect
Both work.
#1 works with e.g. Active Directory, LDAP.
amy:Obs1 a fhir:Observation; fhir:Observation.code [ a fhir:CodeableConcept; fhir:CodeableConcept.coding [ a fhir:Coding; fhir:Coding.system [ fhir:value "http://snomed.info/sct" ]; fhir:Coding.code [ fhir:value "69896004" ] ] ] .
fhir:Patient a owl:Class ; rdfs:label "fhir patient" . fhir:Observation.code a owl:ObjectProperty; rdfs:label "fhir:Observation.code" . fhir:CodeableConcept.coding a owl:ObjectProperty; rdfs:label "fhir:CodeableConcept.coding" . fhir:Coding.system a owl:ObjectProperty; rdfs:label "fhir:Coding.system" . fhir:Coding.code a owl:ObjectProperty; rdfs:label "fhir:Coding.code" . fhir:value a owl:DatatypeProperty; rdfs:label "fhir value" .
fhir:Observation.code some ( fhir:CodeableConcept.coding some ( fhir:Coding.code some (fhir:value value "69896004") ) )
Data:
amy:Obs1 a fhir:Observation; fhir:Observation.code [ a fhir:CodeableConcept; fhir:CodeableConcept.coding [ a fhir:Coding; fhir:Coding.system [ fhir:value "http://snomed.info/sct" ]; fhir:Coding.code [ fhir:value "69896004" ] ] ] .
fhir:Observation.code some ( fhir:CodeableConcept.coding some ( fhir:Coding.code some (fhir:value value "69896004") ) )
fhir:Observation-of-Rheumatoid_arthritis-disorder a owl:Class ; rdfs:label "fhir Observation of Rheumatoidarthritis (disorder)" ; owl:equivalentClass [ owl:onProperty fhir:Observation.code ; owl:someValuesFrom [ owl:onProperty fhir:CodeableConcept.coding ; owl:someValuesFrom [ owl:onProperty fhir:Coding.code ; owl:someValuesFrom [ owl:onProperty fhir:value ; owl:hasValue "69896004" ] ] ] ] .
fhir:Observation.code some ( fhir:CodeableConcept.coding some ( fhir:Coding.system some (fhir:value value "http://snomed.info/sct") and fhir:Coding.code some (fhir:value value "69896004") ) )
fhir:Observation-of-Rheumatoid_arthritis-disorder a owl:Class ; rdfs:label "fhir Observation of Rheumatoidarthritis (disorder)" ; owl:equivalentClass [ owl:onProperty fhir:Observation.code ; owl:someValuesFrom [ owl:onProperty fhir:CodeableConcept.coding ; owl:someValuesFrom [ owl:intersectionOf ( [ owl:onProperty fhir:Coding.code ; owl:someValuesFrom [ owl:onProperty fhir:value ; owl:hasValue "69896004" ] ] [ owl:onProperty fhir:Coding.system ; owl:someValuesFrom [ owl:onProperty fhir:value ; owl:hasValue "http://snomed.info/sct" ] ] ) ] ] ] .
[ owl:intersectionOf ( [ owl:onProperty fhir:Coding.code ; owl:someValuesFrom [ owl:onProperty fhir:value ; owl:hasValue "69896004" ] ] [ owl:onProperty fhir:Coding.system ; owl:someValuesFrom [ owl:onProperty fhir:value ; owl:hasValue "http://snomed.info/sct" ] ] ) ] rdfs:subClassOf fhir:Codinng-of-Rheumatoid_arthritis-disorder .
later fixed with fhir:concept links
fhir:Observation.code some ( fhir:CodeableConcept.coding some fhir:Codinng-of-Rheumatoid_arthritis-disorder )
fhir:Observation-of-Rheumatoid_arthritis-disorder a owl:Class ; rdfs:label "fhir Observation of Rheumatoidarthritis (disorder)" ; owl:equivalentClass [ owl:onProperty fhir:Observation.code ; owl:someValuesFrom [ owl:onProperty fhir:CodeableConcept.coding ; owl:someValuesFrom snomedct:Rheumatoid_arthritis-disorder ] ] .
fhir:Observation.code some ( fhir:CodeableConcept.coding some snomedct:Rheumatoid_arthritis-disorder )
fhir:Observation-of-Rheumatoid_arthritis-disorder a owl:Class ; rdfs:label "fhir Observation of Rheumatoidarthritis (disorder)" ; owl:equivalentClass [ owl:onProperty fhir:Observation.code ; owl:someValuesFrom [ owl:onProperty fhir:CodeableConcept.coding ; owl:someValuesFrom snomedct:Rheumatoid_arthritis-disorder ] ] .
fhir:Observation.code some ( fhir:CodeableConcept.coding some ( fhir:concept some snomedct:Rheumatoid_arthritis-disorder ) )
fhir:Observation-of-Rheumatoid_arthritis-disorder a owl:Class ; rdfs:label "fhir Observation of Rheumatoidarthritis (disorder)" ; owl:equivalentClass [ owl:onProperty fhir:Observation.code ; owl:someValuesFrom [ owl:onProperty fhir:CodeableConcept.coding ; owl:someValuesFrom [ owl:onProperty fhir:concept ; owl:someValuesFrom snomedct:Rheumatoid_arthritis-disorder ] ] ] .
connect FHIR coding to SNOMED concept
fhir:Codinng-of-Rheumatoid_arthritis-disorder rdfs:subClassOf [ owl:onProperty fhir:concept ; owl:someValuesFrom snomedct:Rheumatoid_arthritis-disorder ].
by direct subclass:
fhir:Observation.code some ( fhir:CodeableConcept.coding some ( fhir:concept some snomedct:Arthritis-disorder ) )
by class restriction:
fhir:Observation.code some ( fhir:CodeableConcept.coding some ( fhir:concept some (snomedct:Inflammatory_disorder-disorder and (snomedct:role_group-attr some (snomedct:Associated_morphology-attr some snomedct:Inflammatory_morphology-morph and snomedct:Finding_site-attr some snomedct:Structure_of_musculoskeletal_system-body)) )))
axiom:
[ owl:intersectionOf ( [ owl:onProperty fhir:Coding.code ; owl:someValuesFrom [ owl:onProperty fhir:value ; owl:hasValue "69896004" ] ] [ owl:onProperty fhir:Coding.system ; owl:someValuesFrom [ owl:onProperty fhir:value ; owl:hasValue "http://snomed.info/sct" ] ] ) ] rdfs:subClassOf fhir:Codinng-of-Rheumatoid_arthritis-disorder .
data:
amy:Obs1 a fhir:Observation; fhir:Observation.code [ a fhir:CodeableConcept; fhir:CodeableConcept.coding [ a fhir:Coding; fhir:Coding.system [ fhir:value "http://snomed.info/sct" ]; fhir:Coding.code [ fhir:value "69896004" ] ] ] .
amy:Obs1 fhir:Observation.code [ fhir:concept snomedct:Rheumatoid_arthritis-disorder # <-? fhir:CodeableConcept.coding [ fhir:concept snomedct:Rheumatoid_arthritis-disorder ] ] .
recognizers:
[ owl:intersectionOf ( [ owl:onProperty fhir:Coding.code ; owl:someValuesFrom [ owl:onProperty fhir:value ; owl:hasValue "69896004" ] ] [ owl:onProperty fhir:Coding.system ; owl:someValuesFrom [ owl:onProperty fhir:value ; owl:hasValue "http://snomed.info/sct" ] ] ) ] rdfs:subClassOf fhir:Coding-of-Rheumatoid_arthritis-disorder .
connective tissue:
fhir:Coding-of-Rheumatoid_arthritis-disorder rdfs:subClassOf [ owl:onProperty fhir:concept ; owl:someValuesFrom snomedct:Rheumatoid_arthritis-disorder ].
F1. (Meta)data are assigned a globally unique and persistent identifier
F2. Data are described with rich metadata (defined by R1 below)
F3. Metadata clearly and explicitly include the identifier of the data they describe
F4. (Meta)data are registered or indexed in a searchable resource
A1. (Meta)data are retrievable by their identifier using a standardised communications protocol
A1.1 The protocol is open, free, and universally implementable
A1.2 The protocol allows for an authentication and authorisation procedure, where necessary
A2. Metadata are accessible, even when the data are no longer available
Can the discoverability mechansim work for scientific data?
<BPShape> { :subject @<PatientShape> ; :code @<vs_BP-Code> ; :bodySite @<vs_BP-Site> ; :component { comp:code @<vs_BP-Systolic> } ? :component { comp:code @<vs_BP-Diastolic> } ? } <vs_BP-Systolic> @<CodeableConcept> AND { code:coding { cc:system [<http://loinc.org/>] ; cc:code ["8480-6"] } }