小编Wol*_*ang的帖子

Amcharts SerialChart多个线图不同的类别值成员路径(Silverlight)

编辑我改写了我的问题,以便在与Tony谈话之后让它更容易理解(谢谢!).

目标在同一图表中渲染多个折线图(假设为2).图表具有不同的x/y值对.对于一个x值,我不知道两个y值.

我正在使用Silverlight.可用的课程是SerialChartLineGraph.两个图的数据源相同,并在该SerialChart级别设置.两个graph(CategoryValueMemberPath)也定义了x轴的属性名称.

正如amCharts文档所建议的那样,我们需要创建具有类别轴(x轴)属性的对象,然后每个图形创建一个属性.我们称它们为"Graph1"和"Graph2".所以数据源看起来像这样:

List<MyClass> data = new List<MyClass>()
{
   new MyClass() { Category = 0.1, Graph1 = 0.14, Graph2 = ??? }
  ,new MyClass() { Category = 0.15, Graph1 = ???, Graph2 = 0.05 }
  ,new MyClass() { Category = 0.2, Graph1 = 0.35, Graph2 = ??? }
  ,new MyClass() { Category = 0.18, Graph1 = ???, Graph2 = 0.12 }
  ... and so on ...
}
Run Code Online (Sandbox Code Playgroud)

问题关于"???"我该怎么办?值?我没有该类别值的该图表的实际值. …

silverlight linegraph amcharts

7
推荐指数
1
解决办法
1万
查看次数

本体,OWL,Sparql:建模"某些东西不存在"和性能考虑因素

我们想模拟"某些东西不在那里",而不是缺少信息,例如"患者未接受化疗"或"患者没有呼吸困难"的明确陈述与缺少患者是否有患者的信息不同呼吸困难.

我们考虑了几种方法,例如

  • 使用否定类:"No_Dyspnea".但这似乎在语义上存在问题,因为那个类会是什么类型的?它不能成为"呼吸困难"类的后代.
  • 使用"not there"对象属性,例如"denies"或"does_not_have",然后使用Dyspnea根类的个体作为该三元组的对象.
  • 使用空白节点描述个人属于没有呼吸困难的事物组.例如:

    dat:PatientW2 a [ rdf:type owl:Class;
                  owl:complementOf [
                    rdf:type owl:Restriction ;
                        owl:onProperty roo:has_finding;
                        owl:someValuesFrom nci:Dyspnea;
                  ]
                ] .
    
    Run Code Online (Sandbox Code Playgroud)

我们觉得第三种选择是表达这一点的最"本体论正确"的方式.但是,在使用它时,我们在简单的场景中遇到了严重的性能问题.

我们将Sesame与OWLIM-Lite商店一起使用,并将NCI词库(280MB,大约80,000个概念)和另一个非常小的本体导入商店,并添加了两个人,一个具有该补充/限制类.

以下查询永远执行,我在15分钟后终止它:

select *
where {
  ?s a [ rdf:type owl:Class;
                      owl:complementOf [
                        rdf:type owl:Restriction ;
                        owl:onProperty roo:has_finding;
                        owl:someValuesFrom nci:Dyspnea;
                  ]
                ] .
} Limit 100
Run Code Online (Sandbox Code Playgroud)

有人知道为什么吗?我会假设这种方法会创建大量空白节点,并且查询引擎必须通过整个NCI词库并将所有空白节点与此进行比较?

如果我将此三元组放在单独的图形中并且仅查询该图形,则查询会立即返回结果.

总结一下.这两个基本问题是:

  • 第三种方法真的是最好的建模"有些东西不存在"
  • 这会影响查询性能吗?

编辑1

我们讨论了提议的选项.它实际上帮助我们澄清了我们真正想要实现的目标:

  • 我们希望能够在特定时间点陈述"患者有呼吸困难"或"患者没有呼吸困难".

  • 在将来,可能/将会有关于该患者的更多信息,例如他/她现在患有呼吸困难.

  • 我们希望能够编写Sparql查询,询问"所有患有呼吸困难的患者"和"所有没有呼吸困难的患者".

  • 我们希望尽可能简单直观地保持Sparql.例如,只使用一个属性"has_finding",而不是必须知道两个属性(一个用于"has_exclusion").或者必须知道一些复杂的空白节点构造.

我们玩弄了各种选择:

  • 否定财产断言:这听起来像是这个问题的最佳解决方案,因为我们声称一个人与该财产上的另一个人无关.问题是我们必须为了拥有某些东西而创造一个呼吸困难的个体owl:targetIndividual.而且我们找不到一种方法来轻易地查询负面断言,然后通过整个链owl:sourceIndividualowl:targetIndividual链.这使得Sparql非常冗长,并且给编写查询的人带来了负担.
  • 补空的空白节点:我们会说这个我们不想陈述的东西.这将说明"患者1永远不会发现呼吸困难".虽然我们想说"患者1现在没有发现呼吸困难(或在第X天)".所以我们不应该使用这种方法.

  • 使用排除/包含类型(选项1和2):仔细观察Jeen的建议后,我们认为使用一般:Exclusion:Inclusion类以及仅一个属性has_finding并给予呼吸困难个体包含/排除类型是最容易理解,查询和提供足够的推理能力.例: …

performance modeling sesame ontology sparql

6
推荐指数
1
解决办法
400
查看次数

Sparql变量在块内部未绑定的块之外

在针对Sesame内存存储的Sparql查询中,我想将查询条件分开,例如"Patient is male"与我生成查询结果的查询的其余部分.

让我们考虑一下这个简单的查询:

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX nci:<http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#>
PREFIX roo: <http://www.cancerdata.org/roo/>

SELECT DISTINCT *
WHERE { 
  ?Patient a nci:C16960 . 
  ?Patient roo:100018 ?gender .
  ?gender a nci:C20197 .
  BIND(bound(?Patient) as ?bound0) .
  { 
    BIND(bound(?Patient) as ?bound1) .
  } 
  UNION { 
    ?Patient a nci:C16960 . 
    BIND(bound(?Patient) as ?bound2) .
  } 
} 
Run Code Online (Sandbox Code Playgroud)

Bound0始终为true(如预期的那样).Bound1始终为false,并且Bound2在结果集中根本没有值(有和没有额外的?Patient triple).

这是否意味着?Patient变量在第一个块中是已知的,但没有绑定,并且它在第二个块中根本不存在(即使我再次声明它)?为什么会有区别?

我的目标是首先定义复杂的查询条件,并将结果集减少到只匹配所有条件的患者.然后使用已经减少的?患者来收集输出中请求的所有数据.

在此先感谢您的帮助!

编辑

为了进一步说明我的意图,这是一个更复杂的查询.我可以用OPTIONAL而不是UNION编写相同的查询.但是当我使用OPTIONAL时,结果集中的行数会保持快速增长,每个OPTIONAL块返回的命中次数也会增加.如果两个块都返回多个匹配,则结果包含hits1*hits2记录.我认为我可以通过在高级别使用UNION使其更可预测并将其保持在hits1 + hits2中.是否有显着的性能差异?

SELECT DISTINCT ?Patient ?Gender ?Neoplastic_Process ?MStage ?TStage
WHERE { 
 ?Patient a nci:C16960 . 
     { 
     ?Patient roo:100018 ?Gender …
Run Code Online (Sandbox Code Playgroud)

variables union sparql

1
推荐指数
1
解决办法
271
查看次数