介绍一个直接浏览微软知识库文章的工具

130 篇文章 0 订阅
85 篇文章 0 订阅
  介绍
    如果你曾查过微软的知识库文章的话,一定有这样的不爽经历:先用浏览器访问msdn.microsoft.com,在那个小小的搜索编辑框中输入文章号码,然后等待查询结果返回,最后还要点击搜索结果中至少一篇文章的链接。这样做耽误相当多的时间。现在使用本文提供的工具后,一切都变得简单了。
这个工具叫做KBLaunch,它是个对“运行”命令对话框的外壳扩展,只要在“运行”菜单的编辑框中输入:“?+微软知识库文章号”,见下图:

当你按下“确定”按钮,KBLaunch便会启动默认的浏览器并显示你输入的微软知识库文章。

KBLaunch的实现方法
KBLaunch将自己注册为外壳执行钩子。外壳执行钩子在两种情况下被调用:
1、 当使用ShellExecute() 或 ShellExecuteEx()来运行一个程序时。包括在资源管理器中双击一个文件。
2、 当用户在“运行”对话框中输入内容时。

    有趣的是用户在“运行”对话框中怎么可以输入非可运行程序名呢?。IE在这方面是个很好的例子——如果输入一个URL(以http,ftp,www,或其它通用前缀),IE提供的外壳扩展钩子解释前缀并启动默认浏览器。
    而KBLaunch找到前缀“?q”并检查命令行的其余部分是否为正数,KBLaunch构造微软知识库文章的URL并用ShellExecute()运行默认的浏览器,将构造好的URL传递给它。注意这是使用IE特有的外壳扩展钩子启动浏览器,所以要安装IE3或更高版本。
    外壳执行钩扩展其实没什么复杂的——只要实现一个接口,并且这个接口只有一个方法。这个方法就是IShellExecuteHook::Execute(),它接受一个SHELLEXECUTEINFO结构指针,这个结构包含一组运行程序的信息。Execute()句柄解析命令行并运行浏览器。具体代码在例子工程的KBLaunchShlExt.cpp文件中。请参考。
最近几年,例如YAGO和DBpedia等大规模知识库发展有了很大的进步。知识库提供了大量的不同种类的实体信息,如人、国家、河流、城市大学等等,同时知识库包含了大量的在实体(entity)间的关系既事实(fact)。当今的知识库包含的数据量是巨大的通常有百万个实体和上亿个描述实体间关系的事实数据。 虽然目前的知识库存在大量的实体和事实数据,但是这样大规模的数据仍然不完整。目前构建知识库的方法主要有两种,一种是从大量的文本中抽取事实但这种方法必然会带来大量的噪声数据,第二是人工扩展,但这样的方法对于时间的开销是极大的。如果确保一个知识库是完整的则必须花费很大的努力来抽取大量的事实,并检查事实的正确性,因为只有正确的事实加入到知识库中才是有意义的。同时知识库的本身由于有足够的信息可以推理出更多的新的事实。例如有这样一个例子,一个知识库包含一组事实是孩子c有一个妈妈m,这样可以推理得出孩子妈妈的丈夫f很可能是孩子的父亲。该逻辑规则形式化的描述如下: motherof(m,c)∧marriedTo(m,f)⟹fatherof(f,c) 挖掘这种规则可帮助做一下四种事情:1、利用这种规则来推理出新的事实,而这些被挖掘出的新的事实可以使知识库更完整。2、这些规则可以检测出知识库潜在的错误例如一个陈述是一个一个男孩无关的人是这个男孩的父亲,这样的陈述很可能是错误的。3、有很多推理工具依赖其他工具提供规则,所以这些被挖掘出来的规则可以用于推理。4、这些规则描述一个普遍的规律,这些规律可以帮我我们理解分析知识库中的数据,如找到一些国家通常与说同一种语言的国家交易。或结婚是一个对称关系,或使用同一个乐器的音乐家通常互相影响等等。 AMIE的目标是从RDF格式的知识库中挖掘如上所述的逻辑规则,在语义网(Semantic Web)中存在大量的RDF知识库如YAGO、Freebase和DBpedia等。这些知识库使用RDF三元组(S,P,O)提供二元关系(binary relation)的描述。由于知识库一般只包含正例而(S,P,O)没有反例(S,¬P,O),所以RDF这样的知识库中仅能通过正例来推理。进一步来说在RDF知识库上的操作是基于开放世界假设(OWA)的。在开放世界假设下,一个事实没有在知识库中存在那么我们不能说这个事实是错误的,只能说这个陈述是未知的。这与标准的数据库在封闭世界假设的设定有本质上的区别。例如在知识库中没有包含marry(a,b),在封闭世界假设中我们可以得出这个a没有和b结婚而在开放世界假设下我们只能说a可能结婚了也可能单身。 压缩包内包含AMIE可运行源代码与相应文档资料,欢迎下载参考
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值