Swirrl / grafter

Linked Data & RDF Manufacturing Tools in Clojure
Eclipse Public License 1.0
188 stars 17 forks source link

Convert resource objects to quads #144

Open RickMoynihan opened 5 years ago

RickMoynihan commented 5 years ago

Something like this would be useful:

(defn resource-obj->statements
  [{:keys [grafter.rdf/uri] :as res-obj}]
  (let [po-pairs (dissoc res-obj :grafter.rdf/uri)]
    (mapcat (fn [[p os]]
              (if (or (set? os) (seq? os))
                (map (fn [o]
                       (pr/->Triple uri p o)) os)
                [(pr/->Triple uri p os)])) po-pairs)))

Ideally we should extend to-statements to do this, via clojure 1.10.0's metadata protocols....

Actually thinking about this, we should put this in matcha not here. It will depend on #145.