 (s/fdef extract-knowledge
         :args (s/cat :sites ::sites 
                      :site-extractor ::site-extractor
-                     :crawled-extractors ::site-extractor))
+                     :crawled-extractors ::site-extractor)
+        :ret ::attr-knowledge)
 (defn extract-knowledge
   "extracts knwoledge from the specified site"
   [sites site-extractor crawled-extractors]

  (loop [attr-knowledge {}
         s-extractors site-extractors
         crawled-extractors {}]
    (uncrawled-extractors s-extractors crawled-extractors)
    nil))

           (org.jsoup.nodes Element)
           (info.debatty.java.stringsimilarity Jaccard)))

(s/def ::attribute keyword?)
(s/def ::attributes (s/coll-of ::attribute))
(s/def ::sites (s/map-of string? #(instance? java.util.regex.Pattern %)))
(s/def ::knowledge (s/coll-of string?))
(s/def ::attr-knowledge (s/map-of  ::attribute ::knowledge))
(s/def ::attr-extractor (s/map-of keyword? (s/or :complete string? :empty nil?)))
(s/def ::container-extractor string?)
(s/def ::complete-attr-extractor (s/map-of keyword? string?))
(s/def ::extractor (s/map-of ::container-extractor ::attr-extractor))
