logic_population.rb revision 08464a6b0d787688a7a3d60e22c7dc9a62e30b71
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio# A logic propulation procedure.
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio#
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio# TODO Transform this code in an iterator to enable unit testing
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio#
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio# Author: Daniel Couto Vale <danielvale@uni-bremen.de>
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio#
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncioclass LogicPopulation
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio def initialize(store)
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio @store = store
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio end
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio def list
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio typeIri = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type'
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio labelIri = 'http://www.w3.org/2000/01/rdf-schema#label'
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio commentIri = 'http://www.w3.org/2000/01/rdf-schema#comment'
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio definedIri = 'http://www.w3.org/2000/01/rdf-schema#isDefinedBy'
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio logicTypeIri = 'http://purl.net/dol/1.0/rdf#Logic'
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio logicIris = @store.subjects(typeIri, logicTypeIri)
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio logicIris.map do |logicIri|
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio logicNames = @store.objects(logicIri, labelIri)
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio logicDescs = @store.objects(logicIri, commentIri)
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio logicDefis = @store.objects(logicIri, definedIri)
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio logicName = logicNames == [] ? logicIri : logicNames[0]
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio logicDesc = logicDescs == [] ? logicIri : logicDescs[0]
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio logicDefi = logicDefis == [] ? logicIri : logicDefis[0]
21909d3b620d97e81dd946b959a47efe88d2b7d8Fabiano Fidêncio Logic.new \
21909d3b620d97e81dd946b959a47efe88d2b7d8Fabiano Fidêncio iri: logicIri,
21909d3b620d97e81dd946b959a47efe88d2b7d8Fabiano Fidêncio name: logicName,
21909d3b620d97e81dd946b959a47efe88d2b7d8Fabiano Fidêncio description: logicDesc,
21909d3b620d97e81dd946b959a47efe88d2b7d8Fabiano Fidêncio defined_by: logicDefi
21909d3b620d97e81dd946b959a47efe88d2b7d8Fabiano Fidêncio end
21909d3b620d97e81dd946b959a47efe88d2b7d8Fabiano Fidêncio end
21909d3b620d97e81dd946b959a47efe88d2b7d8Fabiano Fidêncioend
21909d3b620d97e81dd946b959a47efe88d2b7d8Fabiano Fidêncio
21909d3b620d97e81dd946b959a47efe88d2b7d8Fabiano Fidêncio