Introduction
我正在用haskell编写一个语义web应用程序。
使用hsparql http://hackage.haskell.org/package/hsparql,我可以访问我的Tripple商店。目前我使用http://4store.org/ (主要是因为它易于安装)。我使用snap http://snapframework.com/进行servlet编程(Yesod也非常酷!!)
目前,我使用SKOS来表示RDF中的书签类别。
SKOS上的链接:
基本上,目的概念是一个范畴。它有一个URL (作为一种ID)和一个标签。进一步的目的概念可以有子概念,定义为“更广泛”和“更窄”。
例如,在我的书签中,有一个SKOS概念“所有书签”,还有一个子概念"haskell书签“。这两个概念都有一个URL (例如ID)和一个标签。此外,"haskell书签“有一个关系,更广泛的概念是”所有书签“。
我的问题
我需要为SKOS在haskell的数据结构。
我现在的一个是:
-- Type Aliases.
type Url = String
type Label = String
-- Date Structure.
data SkosConcept = SkosConcept {
url :: Url
, label :: Label
, subConcepts :: [SkosConcept]
} deriving (Show)我觉得这不是个好办法,但我不知道更好的方法。
此外,在未来的数据结构需要扩展到多个标签,和手段存储相关的概念,
此外,有些概念可能没有任何子概念。
任何关于如何改进数据结构或“正确做好”的指示?
=====编辑:======
问题是,一个skos概念可能有多个更广泛的skos概念。因此,我的"haskell书签“可以有两个更广泛的skos概念(例如类别),称为”编程书签“和”我的重要书签“。
我目前唯一能想到的解决办法是使用:
发布于 2011-11-22 00:18:23
与其直接存储双向结构,不如使用标准图方法,并存储包含概念集和概念之间关系集的元组?
cf:http://hackage.haskell.org/package/fgl
https://stackoverflow.com/questions/8032731
复制相似问题