analysis_matrix

Published

Dec 20, 2025, 06:29:06

Ontological Modeling and Analysis using R Scripting

Madeleine

library(jsonlite)
library(dplyr)

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(tidyr)
library(DT)

Extract Data from Fuseki

  • You need to build and load oml before running below scripts.
library(tansakusuR)

Attaching package: 'tansakusuR'
The following object is masked from 'package:dplyr':

    show_query
endpoint_url <- "http://localhost:3030/example/sparql"

SPARQL CODE

query_string <- '
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX base:        <http://imce.jpl.nasa.gov/foundation/base#>
PREFIX operational:        <http://opencaesar.io/example/vocabulary/operational#>

#SELECT DISTINCT ?iri ?id ?name ?type
SELECT DISTINCT* 
WHERE {
    ?iri a operational:Capability ;
        base:hasDescription ?m_name .
    OPTIONAL{
        ?iri operational:isRequiredBy ?miri.
  }
}
ORDER BY ?m_id
'

Query

df_query <- send_query(endpoint_url,query_string)

Create Matrix

library(stringr)
df <- df_query %>%
  select(iri,miri) 

df$iri <- str_extract(df$iri, "(?<=#).*")
df$miri <- str_extract(df$miri, "(?<=#).*")

# Add "x" for relationships
df$value <- "x"

# Create Matrix
pivot_df <- df %>%
  pivot_wider(names_from = iri, values_from = value, values_fill = "") %>%
  arrange(miri)

# 表示
datatable(pivot_df)