Some data to power the knowledge base.

PREFIX : <http://justin.abrah.ms/knowledge_base#>
 
:SteamCooked :title "Steaming" .
 
:KoreanFood
  :title "Korean Food" ;
  :linksTo :SteamCooked
  .
 
:AlternativeMedicine :title "Alternative Medicine" .
 
:Cheong
  :title "Cheong (food)";
  :linksTo :KoreanFood;
  :linksTo :AlternativeMedicine .
 
 
<<:Cheong :linksTo :KoreanFood >> :inParagraph "Cheong (청; 淸) is a name for various sweetened foods in the form of syrups, marmalades, and fruit preserves. In Korean cuisine, cheong is used as a tea base, as a honey-or-sugar-substitute in cooking, as a condiment, and also as an alternative medicine to treat the common cold and other minor illnesses." .
 
<< :Cheong :linksTo :alternativeMedicine >> :inParagraph "Cheong (청; 淸) is a name for various sweetened foods in the form of syrups, marmalades, and fruit preserves. In Korean cuisine, cheong is used as a tea base, as a honey-or-sugar-substitute in cooking, as a condiment, and also as an alternative medicine to treat the common cold and other minor illnesses." .
 
<< :Cheong :linksTo :AlternativeMedicine >> :with "testing" .

Query for the paths between a node.

PREFIX : <http://justin.abrah.ms/knowledge_base#>
 
SELECT ?midNode WHERE {
    ?am :title "Alternative Medicine" .
    ?steam :title "Steaming" .
    ?am (:linksTo|^:linksTo)* ?midNode .
  	?midNode (:linksTo|^:linksTo)* ?steam .
}

That same query, but extract the inParagraph relationship so we know where/how it is connected.

PREFIX : <http://justin.abrah.ms/knowledge_base#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
 
SELECT ?s ?o ?paragraph WHERE {
    ?am :title "Alternative Medicine" .
    ?kf :title "Korean Food" .
 
    ?term :inParagraph ?paragraph .
    filter(rdf:isTriple(?term)) .
    bind(rdf:subject(?term) as ?s) .
    bind(rdf:object(?term) as ?o) .
    filter(rdf:subject(?term) = ?midNode)
 
    ?am (:linksTo|^:linksTo)* ?midNode .
  	?midNode (:linksTo|^:linksTo)* ?kf .
 
    filter(?midNode = ?s) .
}