DreamBlooms/HansPub-15000-to-45000 huggingface dataset:
system: [SYSTEM]

user: 摘 要 利用Borel-Cantelli引理得到一个对M-值随机序列普遍成立的滑动平均的强极限定理。值得注意的是，本文中的结论对随机变量的相依性无任何要求。 关键词 :M-值随机序列，强极限定理 Copyright © 2017 by authors and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
system: [SYSTEM]

user: 1. 引言 强极限定理是概率论极限理论中一个极其重要的方向。二十世纪六十年代，独立随机序列的极限理论在Gnegenko和Kolmogrove等学者的共同努力下获得了完善的发展。此后，各种混和随机序列、相依随机序列，以及鞅的理论有了很大发展，其主要成果可参考文献 [ 1 ] [ 2 ] [ 3 ] 及其序列文献。我国学者在这方面也做出了许多出色的工作，在国际上也有一定的影响，参见 [ 4 ] 。本文得到一个对M值随机序列滑动平均普遍成立的强极限定理，推广了 [ 5 ] 中的结果。值得注意的是，本文中的结论对随机变量的相依性没有任何要求。 定义 设 是定义在概率空间 上的一随机序列，其联合分布为 ， (1) 称 为M值随机序列。
system: [SYSTEM]

user: 2. 主要结论 引理 [ 6 ] 设 是概率空间 上的两个概率函数， 是列单调递增的取整数值序列，且 。令 ， 则 a.s. 定理 设 是由(1)定义的r.v.序列， 满足引理的条件。记 ，则 a.s. (2) a.s. (3) 证 设 ，定义函数如下： (4) 易知， 令 ， (5) 由引理，知 a.s..(6) 由(4)，(5)，(6)有 a.s.. 取 并使 ，由 及不等式 和(6)式，有 故(2)式成立。取 并使 ，由(6)式，有 故(3)式成立，定理证毕。 推论1 设 是一列取值于 的独立随机变量序列，则 a.s. a.s. 推论2 设 是一列取值于 的独立同分布随机变量序列，则 a.s.
system: [SYSTEM]

user: 摘 要 在云存储中，一些处理敏感数据(如政府文件、资产数据、健康数据等)的用户需要限制数据存储的地理位置，而目前大多数云存储供应商并没有向用户提供验证数据存储位置的方法。针对这个问题，采用可信硬件来标识物理机器并利用可信第三方来验证数据实际存储位置。此外，还可以验证云存储供应商提供的物理机器的可信性。分析结果表明，本文提出的方法具有很高的安全性，通过采用TCM芯片及额外的位置审计，能够可靠地验证数据存储的实际位置。 关键词 :云存储安全，可信计算，数据存储位置，可信密码模块 Copyright © 2017 by authors and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
system: [SYSTEM]

user: 1. 背景 基于云的存储服务越来越流行，用户可以采用云存储服务远程备份自己的数据、从任何连接设备上访问数据并且能够通过访问共享数据与其他用户合作。例如，Amazon S3和Google Storage可以为用户、企业和其他云存储服务供应商提供可扩展的存储服务。Dropbox，Apple iCloud和Google Drive可以在多用户和多设备的环境下为用户提供文件共享和文件同步服务 [ 1 ] 。云存储服务使用户在较低成本下便利地存储和访问数据，并且减轻了用户维护巨大的本地数据存储的成本。 除了云存储服务的安全和隐私问题，一些处理敏感数据(如财务数据、健康数据以及个人身份数据)的用户对数据存储的地理位置有要求，如何对要存储的数据提供有效的地理位置保障和检测机制，也成为云存储供应商和用户面临的一个比较重要的问题。 目前，一些云存储服务提供商(如Amazon S3)允许用户在服务协定中选择数据存储的地理位置，但是作为用户，并没有途径去检测提供商是否履行了协议，而当你发现他们违反协定时(无意地或偶然地)，损害却已经造成了。近年来，发生了几起出租的商业服务中断运行的情况，导致用户在相当长的一段时间无法访问自己的数据。例如，2012年12月24日，部署在AWS上的Netflix服务，对用户中断服务长达12小时 [ 2 ] 。类似的情况还在Dropbox用户 [ 2 ] [ 3 ] 以及Xbox用户中也发生过 [ 3 ] 。为了解决这个问题，云存储服务商可能会把这些数据转移到其他地方，那么如何确定云存储服务商是否遵守了服务协议中的位置条款就成了用户关心的一个重要问题。并且，为了提高数据的可用性，一些云存储提供商可能在多个数据中心存储数据的复制版本，比如Microsoft Azure，这使情况变得更糟，用户需要能够验证云存储中数据的实际存储位置的要求就更加强烈。 目前，也已经有一些研究者提出采用可信硬件来保障虚拟资源(数据或者程序)的存放位置。NIST做了第一个尝试 [ 4 ] ，他们提出了将服务器的地理位置信息写入可信平台模块TPM (Trusted Platform Module)的PCR中并提出了一个应用原型，当服务器收到存储请求后，它首先检查它的位置请求，然后根据自身的位置决策返回响应，但是此方案仅适用于云存储服务商内部使用，并不对用户提供位置保障和检测机制。Hsin-Jung Yang等人基于TPM提出了通过验证虚拟资源(数据或程序)的位置信息来提供一个可信授权机制 [ 5 ] 。Ali Noman等人采用TPM与数据持有性证明协议PDP (Provable Data Possession)设计了一个可供用户验证的保障数据存储位置的方法 [ 6 ] 。 本文提出一个检测数据存储地理位置的方法，防止云存储供应商在用户不知情的情况下将数据移动到用户不愿存储的地方。本文将绑定在云存储设施中物理机器上的可信硬件作为唯一身份识别符，每一个物理机器都含有唯一的可信硬件。可信硬件的地理位置由可信第三方来保证。用户可以利用可信硬件可靠地定位他们的数据存储位置并且验证他们正在使用的云存储设施的可信性，检测是否存在云存储提供商或者其他人的恶意操作。 本文的组织结构如下：第一部分介绍了本文的研究背景；第二部分介绍了可信密码模块相关研究；第三部分介绍了基于可信硬件的数据存储位置验证方法；第四部分分析了方法的安全性；第五部分对本文的研究做出了总结。
system: [SYSTEM]

user: 2. 可信密码模块TCM 硬件系统的安全和操作系统的安全是信息系统安全的基础，密码、网络安全等技术是关键技术。只有从信息系统硬件和软件的底层采取安全措施，才能有效地保障信息系统的安全，这促进了可信计算的迅速发展。 为了解决个人计算机结构上的安全问题，并从底层入手提高其可信性，Intel、Microsoft、IBM、HP、Compaq等著名的信息技术企业在1999年10月共同发起并成立了可信计算平台联盟(Trusted Computing Platform Alliance， TCPA)。TCPA定义了具有安全存储和密码功能的可信平台模块(Trusted Platform Module， TPM)，并于2001年1月发布了基于硬件系统的“可信计算平台规范”(V1.0)。TCPA的成立标志着可信计算高潮阶段的出现。2003年3月，TCPA更名为可信计算组织(Trusted Computing Group， TCG) [ 7 ] ，其目的是在计算和通信系统中广泛使用基于硬件安全模块的可信计算平台，以提高整体的安全性，扩展可信范围。 可信计算的基本思想是在计算机系统中首先建立一个信任根，再建立一条信任链，从信任根到硬件平台到操作系统再到应用，一级测量认证一级，一级信任一级，把信任关系扩大到整个计算机系统，从而确保计算机系统的可信。 可信密码模块(Trusted Cryptography Module， TCM)是我国借鉴国际可信计算框架与技术理念，结合我们信息安全管理国情，在可信计算领域自主研制的安全芯片。可信密码模块的主要核心功能是提供基于硬件的国产密码算法和密钥保护；唯一地标识平台身份；度量平台完整性。 TCM芯片 [ 8 ] 可以为加密密钥提供安全存储并且为随机数发生器、密钥发生器、哈希计算提供硬件加速计算引擎。TCM提供的密钥类型包括采用SM2-3和SMS4算法的存储密钥、采用SM2-3和SMS4算法的绑定密钥、采用SM2-1算法的签名密钥、采用SM2-1算法的身份密钥和采用SM2-3算法的平台加密密钥。 当一个用户第一次激活一个平台时，TCM使用TCM_TakeOwnership命令进行初始化，此时访问TCM的用户密码被设置。这个过程不能远程执行，并且一个新的初始化需要TCM的实体存在以及一系列的重置命令。 每个TCM拥有唯一的背书密钥(Endorsement Key， EK)，TCM出厂时都会由TCM厂商签发背书证书来唯一标识可信平台的身份。EK的私钥部分EK priv 受TCM保护，永久存储在TCM内部。由于安全与隐私问题，EK priv 不能用于签名操作，它只能被用来解密用EK pub 加密过的敏感数据。背书证书(Endorsement Credentials， EC)包含EK pub ，TCM厂商使用私钥对背书证书进行签名，以便于验证TCM和EK的有效性。 除了背书证书，TCM还含有一致性证书(Conformance Credentials，CC)和平台证书(Platform Credential， PC)来证明TCM的组件符合《可信密码模块规范》的要求。一致性证书由评估机构(如平台制造商、供应商或者独立实验室)颁发，确保可信构造基(Trusted Building Blocks， TBB)与TCM说明相一致。平台一致性证书由平台制造商、供应商或者其他独立实体颁发，保证平台包含背书证书中的TCM芯片。 平台身份密钥(Platform Identity Key， PIK)用于对完整性值和其他密钥的数字签名。平台身份密钥是一个SM2密钥对，必须在所有者授权的情况下才能够生成。TCM采用TCM_MakeIdentity命令生成PIK。平台身份证书(Platform Identity Credential， PIC)用来证明此PIK与有效的背书证书、平台证书以及一致性证书绑定。PIK证书的构建需要认证机构(Certification authority， CA)的参与。 CA是证书的签发机构，它是公钥基础设施的核心。证书是公钥体制的一种密钥管理媒介。它是一种权威的电子文档，形同网络计算环境中的一种身份证，用于证明某一主体的身份及其公开密钥的合法性。因此，公钥体制环境必须有一个可信的机构CA来对任何一个个体的公钥进行公证，证明主体的身份及它与公钥的匹配关系。 TCM向CA发送一个包含PIK pub 、背书证书EC、一致性证书CC、平台证书PC的请求，并使用PIK priv 对请求进行签名。如果证书是有效的，CA产生平台身份证书，使用背书证书中的EK pub 加密PIC，将其发送回TCM。 由于密钥的数量可能非常庞大，而TCM内部的存储空间有限，那么一些密钥(如PIK)，可以选择存储在外部如硬盘上。每一个存储在外部的密钥都需要被存储根密钥(Storage Root Key， SRK)加密。SRK是一个不可迁移密钥对，它建立了密钥存储的可信根。SRK以非易失的方式存储在TCM内部，并且永远不在TCM外部使用。当一个新用户被授权时，SRK可以被重置。 为了安全存储度量结果，TCM在内部开辟了专门的完整性值存储空间—平台配置寄存器(Platform Configuration Registers， PCRs)。平台启动时，PCR值会被重置为默认值。平台启动之后，以扩展的方式更改PCR值。软件组件(BIOS，bootloader，操作系统，应用程序)在执行前被度量，通过扩展之前的哈希值得到新的哈希值被写入到特定的PCR中： 。SHA1代表TCM使用的哈希密码函数， 代表连接操作。这条信任链的信任根是可信度量根(Core Root of Trust Measurement， CRTM)，它在BIOS中，并且在平台加电时被第一个执行。接着，CRTM度量它自身以及BIOS，然后将控制权交给信任链中的下一个软件组件。对每一个被度量的组件，一个事件被创建并存储在存储度量日志(Stored Measurement Log， SML)中。这样，采用 [ 9 ] 中提出的完整性度量框架(Integrity Measurement Architecture， IMA)，一个远程实体就可以通过PCR和SML来证明平台状态。为开始一个证明，挑战者创建一个随机数并发送给证明系统，证明系统的TCM使用PIK对随机数和PCR签名并将此签名、随机数以及SML发送回挑战者。挑战者检验签名与SML中对应的值是否一致来判断系统的完整性。
system: [SYSTEM]

user: 4. 安全性分析 本节主要分析上文提出的原型的安全性。我们假设云存储提供商试图将用户的数据移动到更便宜的地方来节约成本。 对我们的原型而言，我们假设TCM的位置是被检测过的并且它们的实际位置与它们在CA中注册的位置一致。我们假设敌手无法破坏TCM的抗损坏机制来读取密钥或者损坏任何密码机制，例如，敌手无法在不知道私钥的情况下伪造签名或者破解哈希函数。 对本文而言，敌手可以采用两个方法攻击我们的原型：伪造机器位置或者进行重放攻击。 对于第一种情况，敌手试图伪造机器位置来满足用户要求。由于初始化阶段是在审计期间被验证的，敌手只能在验证阶段进行攻击。敌手需要通过步骤5a到5d (表2)的验证，直接访问安全存储在TCM中的PIK priv 来产生签名SigMA。为了获得PIK priv ，敌手必须破坏TCM的抗损坏机制，这与上文的假设相冲突。或者，敌手可以将绑定到某机器上的TCM芯片移动到其他位置的机器上。然而，这会在下一次审计的最后一步被检测出来。所以，审计操作需要以一个合理的频率定期执行，这样，敌手这种卸载、转移、重装TCM芯片的经济成本就会很大。 对于第二种情况，敌手需要两台机器来执行一个重放攻击。机器M A 对于用户的要求而言，位于一个正确的位置，没有被修改过并且正确运行。这台机器同时运行着恶意供应商的虚拟机VM x 。敌手的另外一台机器M B 位于一个不符合用户要求的位置。在M B 上，虚拟机监视器以及LICT B 被修改，被修改过的模块将消息传送到机器M A 上的虚拟机VM x 中的修改过的LocCheck x 模块。基于这种方式，敌手可以将虚拟机VM 1 从M A 移动到M B 上并且可以转发所有的协议消息，验证依然会通过。为了解决这个问题，我们通过扩展对虚拟机VM 1 的验证将基于软件的证明应用到我们的协议原型中。绑定在机器上的TCM对特定虚拟机的内存区块 的哈希值产生签名SigMA。为了通过机器M A 的验证，敌手的虚拟机VM x 必须与运行在机器M B 上的虚拟机VM 1 完全相同。这样，敌手的重放攻击就不存在任何意义了，因为他必须在机器M A 上保存一个VM 1 的副本，也就是浪费了机器M B 上一倍的存储空间。 远程证明中存在的一个普遍的问题是，在验证和使用的间隙，敌手可能会改变机器的状态。所以，我们建议有规律地进行重复验证。
system: [SYSTEM]

user: 5. 总结 随着云存储的应用越来越广泛，云存储中的数据安全问题也越来越重要。用户可能需要自定义安全策略来保障自身数据安全，其中一个重要的方面便是数据存储和处理的地理位置，例如，有些用户要求数据存储在国内而不能存储到国外的服务器上。本文提出的方法基于可信密码模块及可信第三方使用户能够验证数据存储的实际位置以及云存储供应商提供的机器的可信性。我们提出的证明协议能够验证云存储供应商提供的机器的平台配置的完整性，并且能够唯一地标识绑定在机器上的TCM的身份。TCM的实际位置以及用于检测云存储供应商提供的机器平台完整性的数据存储在可信第三方上。数据的实际存储位置以及平台完整性可以通过与第三方通信来证明。本文的安全性分析说明了我们的原型具有很高的安全性。与前人的研究相比，我们的方法通过采用TCM芯片及额外的位置审计，能够可靠地验证数据存储的实际位置。
system: [SYSTEM]

user: 摘 要 21世纪，移动互联网飞跃式的发展，全球互联网用户数量急速上升。为了满足不同用户在不同使用场景下的需求，移动应用不断推陈出新，在其不断完善的同时，人们对移动应用也产生了依赖性。所以，为了适应市场不断变化的需求和使用场景，各类服务提供商不得不快速的迭代产品。反之，由于产品的过于快速的迭代，使用户需要不断的更新和下载应用，造成用户体验较差。本文通过对Objective-C加载Class的机制的研究，采用包bundle机制在iOS和OS X平台上实现了动态加载。从而实现了让用户不用重新安装APK就实现应用升级更新功能。 关键词 :动态加载，应用更新，更新，移动互联网 Copyright © 2017 by authors and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
system: [SYSTEM]

user: 1. 研究背景 在如今，智能手机与互联网高速发展，也是未来的方向。而iOS系统手机作为高端智能手机的代表，将引领全球进入智能时代。Objective-C作为iOS系统的主要开发语言，拥有相当多的动态特性，这些特性在运行程序时发挥作用，而不是在编译或链接代码时发挥作用。Objective-C运行时系统实现了这些特性，而这些功能为Objective-C语言提供了非常多的强大功能和灵活性。开发人员使用它们能够以实时方式促进程序的开发和更新，而无需重新编译和重新部署软件。在运行时，Objective-C语言会执行其他语言在程序编译或链接时会执行的许多常规操作，如确定类型和方法解析。这些操作还可以提供API，使编写的程序能够执行额外的运行时操作，如动态内省和以动态方式创建和加载代码 [ 1 ] 。 在早期的iOS市场上发布应用，如果应用中含有广告，可能会审核不通过，那么一些个人开发者会在服务器端配置一个开关，审核时关闭开关，应用就不显示广告了，通过审核后，再通过服务器端把广告开关打开，这样就可以很好的规避应用市场的审核。之后，应用市场通过扫描APK内的manifest甚至dex文件，以此来确定开发者是否在APK包里植入广告代码。在服务器端配置开关参数的方法不行了，很多开发者就另辟蹊径。在应用的原生APK代码内部写入广告代码，在用户下载安装运行后，再从服务器下载广告代码，运行，实现广告的功能。该方法是可行的，这就是动态加载 [ 2 ] 。 那么接下来我们将具体来说明动态加载。1、应用能够通过在本地加载一些不存在的文件来实现特定的功能；2、这些可执行文件具有可替换性；3、动态加载不包括静态资源(如：启动图，主题，广告在服务器端的控制参数开关等) [ 3 ] 。对Objective-C语言的动态特性的研究不仅能提高编程的灵活性，还能大大提升系统的运行效率，对于iOS系统的发展甚至智能手机的发展都有着深远的影响。
system: [SYSTEM]

user: 2. 传统的动态加载技术 传统PC端，动态加载技术被广泛使用，比如有些输入法，在初次安装的时候没有截图功能，在用户第一次使用的时候，会自行从服务器端下载安装，这样就能使用截图功能了 [ 4 ] 。此外，DLL文件(Dynamic Link Library)在许多软件的安装目录中大量存在，一些特定的功能就是PC软件通过调用这些DLL里的代码执行的，这些技术就是一种动态加载 [ 4 ] 。在JAVA中，JAR作为其可执行文件，运行于虚拟机JVM上，虚拟机则通过ClassLoader加载JAR文件，并执行其中的代码。所以在JAVA中的动态加载，也是通过动态调用JAR文件来实现的 [ 5 ] 。
system: [SYSTEM]

user: 3. 基于Objective-C运行时系统的动态加载技术的优势 Objective-C程序通过动态加载功能可以根据加载可执行代码和源代码，而无需在启动程序时就加载程序的所有组件。可执行代码(在加载前就链接好的)可以含有新的类，并使这些新类在运行程序时整合到整个程序中 [ 6 ] 。这种程序代码和数据资源的延迟加载方式可以提高程序的整体性能，因为它降低了对系统内存的需求。该方法还提高了程序可拓展性，因为它能够使新软件在不更改已存在程序的情况下，以动态方式将新增代码添加到程序中 [ 7 ] 。
system: [SYSTEM]

user: 4. Objective-C动态协议类型 运行时系统通过动态类型功能可以在运行时程序时决定对象的类型，因而可以使运行时因素能够在程序中指定哪种对象 [ 8 ] 。Objective-C通过id类型支持动态类型。id数据类型是一种Objective-C独有的数据类型。其变量可以存储任何数据类型的Objective-C对象，而不论该对象是哪种类的实例。以下是静态类型和动态类型的使用： 由于Objective-C既支持静态类型又支持动态类型，所以可在方法声明中使用不同等级的类型信息：
system: [SYSTEM]

user: 5. Objective-C动态绑定 动态绑定指在运行程序时(而不是在编译时)将消息与方法对应起来的处理过程。因为许多接收器对象可能会实现相同的方法，调用方法的方式会动态变化。因此，动态绑定实现了OPP的多态性，可以在不影响既有代码的情况下，将新对象和代码连接或添加到系统中，从而降低对象之间的耦合度。同时通过消除用于处理多选情景的条件逻辑，动态绑定还能够降低程序的复杂程度 [ 9 ] 。以下面代码段为例(Hydrogen类为Atom类的子类，而logInfo方法定义在Atom类中)： 执行这段代码时，运行时系统会通过动态绑定确定变量atom的实际类型，然后使用消息选择器将该消息与接收器的实例方法对应起来。在本例中，atom的类型被设置为Hydrogen*，因此运行时系统会搜索Hydrogen类的实例方法logInfo，如果没有找到，就会在Hydrogen类的父类中寻找相应的实例方法。运行时系统会一直在类层次结果中寻找该实例方法，直到找到它为止。 动态绑定是Objective-C的一种继承特性，它不需要任何API。使用动态绑定甚至可以将消息选择器设置为在运行程序时确定的变量 [ 10 ] 。
system: [SYSTEM]

user: 6. Objective-C动态加载的方法和过程 Objective-C程序通过动态加载功能可以根据需要加载可执行代码和源代码，而无需在启动程序时就加载程序的所有组件。该方式不仅降低了对系统内存的需求，还提高了程序的可扩展性，因为它能够使新软件在不更改已存在程序的情况下，以动态方式将新增代码添加到程序中。苹果公司提供了以动态方式加载软件的包bundle机制 [ 11 ] 。 包是一种软件交付机制。它由具有标准层次结构的目录以及该目录中的可执行代码和源代码构成。包可以含有可执行代码、图像、音频文件、和其他类型的代码与资源整合。它还含有一个运行时配置文件，即信息属性列表info.plist [ 12 ] 。包可以分为3类： 1) 应用程序包； 2) 框架包(如Foundation框架)； 3) 可选加载包(也称为插件，用于动态加载的自定义包)。 可以使用Foundation框架中的NSBundle类管理包。一个NSBundle对象就代表文件系统中的一个存储位置，该位置存储着可在程序中使用的代码和数据资源。 下面是使用NSbundle API动态加载自己编写的框架包的示例，共需要创建两个工程，一个命令行程序和一个可选包。 创建一个协议和一个遵守该协议的类用于测试： Greeter协议： BasicGreeter类： 创建可选包 新建工程中选择OS X->Framework&Library->Bundle： 先将Greeter.h添加到可选包中。再创建一个遵守Greeter协议的类 CustomGreeter类： 传入包路径 接下需要将可选包的路径作为参数传入命令行程序的main函数中： 选择工程中的bundle文件(记得先编译一次，不然bundle文件是红色的，无法使用)，然后将bundle文件完整路径复制下来。 回到命令行程序，点击DynaLoader，选择Edit Scheme，在弹出窗口的run->Arguments->Arguments Passed On Launch位置粘贴刚刚复制的bundle文件路径。 这样就完成了参数的传入。 最后就可在main.m中使用可选包：
system: [SYSTEM]

user: 7. 动态加载技术的作用与代价 凡事都有两面性，特别是这种非官方支持的非常规开发方式，在采用前一定要权衡清楚其作用与代价。如果决定了要采用动态加载技术，个人推荐可以现在实际项目的一些比较独立的模块使用这种框架，把遇到的一些问题解决之后，再慢慢引进到项目的核心模块；如果遇到了一些无法跨越的问题，要有能够迅速投入生产的替代方案。 作用： 1、规避APK覆盖安装升级的局限性，提高了用户体验，而且也能规避一些安卓市场的限制； 2、动态修复一些比较紧急的bug； 3、提高启动速度，因为插件模块可以在需要时才初始化，叫做懒加载； 4、主项目和插件项目可以并行开发，特别是应用体积较大时，可以把一些模块改为动态加载，以插件的形式，这样也可以减少主项目的体积，提高项目的编译速度； 5、减少主项目的DEX方法数量，彻底解决65535问题； 6、从项目管理的角度上来说，分割模块的方式，也做到了代码分离，大大降低了模块之间的耦合度，利于代码管理和bug走查； 7、在Android应用的推广其他应用时，可以利用动态加载技术，让用户在不用下载新的APK的情况下体验新应用的功能。 代价： 1、开发方式繁琐，和常规开发不同； 2、非常规的开发方式，存在兼容性的风险，特别是在一些老旧机型上； 3、随着动态加载框架复杂程度的加深，项目的构建过程也变得复杂，有可能要主项目和插件项目分别构建，再整； 4、由于插件项目可能是独立开发，可能遇到主项目和插件项目的运行环境的不同，代码逻辑容易出现bug，而且在主项目中调试插件十分繁琐； 5、兼容性问题，也是采用动态加载的产检在使用系统资源时经常发生的。
system: [SYSTEM]

user: 8. 结束语 本文详细阐述了移动互联网时代下iOS应用的动态加载技术。从Objective-C的NSBundle类入手，提出了可实行的解决方案，一定程度上的解决了应用更新快用户反复安装的烦恼。也提出了动态加载技术的优势和劣势。系统中用到的技术在应用快速迭代上的性能和用户体验的提高上具有重要的价值和广阔的应用前景。
system: [SYSTEM]

user: 摘 要 随着信息技术的高速发展，Internet上积累了大量的优秀的教学资源，人们开始利用网络这个学习平台来访问这些优秀资源，以达到自主学习的目的。为了能够快速访问到所需资源，必须对繁杂的资源进行分类。传统的人工分类难以完成这一工作，利用文本自动化分类技术，则可以实现对教学资源进行快速而有效的分类。本文将利用GA-KNN及线性规划来实现教育资源的自动化分类，从实验结果来看，它基本达到了预期的效果，大大提高了分类的精度。 关键词 :GA-KNN，教学资源，辅助决策，线性规划，神经网络 Copyright © 2017 by authors and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
system: [SYSTEM]

user: 1. 引言 随着网络和网络教育的发展，Internet上的教学资源也在迅速增长，如何有效管理这类数据对学生、教育科学工作者和家长获取重要的信息具有至关重要的意义。针对教育领域的多资源、多属性、多要素特征及分类机制依赖的资源库必须满足快速检索及时支持用户使用的要求，确立了教学资源分类规范化这一关键技术问题。 本研究以教育部教育资源建设技术规范为基础来对教学资源中的信息进行向量化处理，通过结合客观的资源分类方法和主观的专家经验，研究基于本体的教学资源分类方案。
system: [SYSTEM]

user: 2. 基于本体的教学资源分类研究现状 本体是一个源于哲学的概念，原意指关于存在及其本质和规律的学说，后来被计算机科学领域引入，特指对共享概念模型所作的明确化、形式化、规范化说明，它强调领域中的本质概念，也强调这些本质概念之间的关联。某个领域的本体能够将该领域中的各种概念及概念之间的关系显性地、形式化地表达出来，从而将概念中包含的语义表达出来 [ 1 ] 。本文中对教育资源分类遵循的标准是CELTS-41 (教育资源建设技术规范) [ 2 ] 。教学资源库建设是教育信息化的基础，面对网上的海量信息，人工选择并加以分类整理的做法不但耗费大量的人力、物力，而且还存在分类结果和实际结果一致性不高的问题。文本自动分类技术为解决这个问题提供了一个新思路。国内外在文本自动分类方面的研究取得了可喜的成果。目前，较为常用的分类算法包括支持向量机、K近邻法、贝叶斯方法、神经网络法、线性最小二乘法等。VSM在文本分类中被广泛使用，KNN就是其中的一种，研究表明，KNN分类算法是向量模型中最好的分类算法之一 [ 3 ] 。 2005年，钱晓东、正欧在《基于改进KNN的文本分类方法》 [ 3 ] 一文针对VSM (向量空间模型)中KNN (K最近邻算法)在文本处理环境下的不足，根据SOM (自组织映射神经网络)理论、特征选取和模式聚合理论，提出了一种改进的KNN文本分类方法，提出应用SOM神经网络进行VSM模型各维权重的计算。此后，2012年杜尔斌、李翔、林祥针对我国教学资源的特点在《改进的KNN文本分类算法》 [ 4 ] 一文中针对传统KNN算法中对特征项的非监督权重分配的不足之处做了改进，采取x2统计量方法和信息增益这两种监督权重分配方法，有效地利用了训练集标签信息，提高了KNN算法的精确度。但这两种方法均没有考虑结合主观经验来进行推理，即没有利用教育专家的先验知识参与对机器学习学到参数进行调整来提高分类的精度。 因此，我们提出了一种借助GA-KNN及线性规划的基于本体的教学资源分类方案，这种方案可以利用教育专家的先验知识在数据筛选阶段对机器学习学到参数进行调整，从而为训练神经网络提供与待分类资源相关性较高的资源作为训练集，并最终达到提高整个系统的分类精度的目的。
system: [SYSTEM]

user: 3. 借助GA-KNN及线性规划的基于本体的教学资源分类方案 在使用系统输出决策前，需要进行建模。本方案的建模过程分为两个主要阶段：第一阶段，使用GA-KNN算法及线性规划选取出与待分类资源最相似的资源的集合。第二阶段，将这些检索出的资源作为训练集，训练一个以资源为输入并且以分类结果为输出的神经网络。 3.1. 筛选相似资源 主要方法是利用GA-KNN算法计算出每个量化的属性的权重，然后借助线性规划方法使用专家对机器学习计算出的结果的评价对已学习到的权重进行调整并达到优化的目的。并利用最终得到的权重执行加权的KNN算法，检索出与待分类资源最相似的案例集。 3.1.1. GA-KNN算法 GA-KNN (GA(Genetic algorithm)算法也就是遗传算法)算法采用遗传算法和交叉验证搜索出特征变量的最优权重，将最优权重加入相似度计算以决定最近邻 [ 5 ] 。 1) 初始化阶段 遗传算法采用二维编码来表征属性的权重，染色体对应加权策略。采用随机数生成算法产生一定数量的随机向量，为优化过程提供初始种群。 2) 加权的KNN算法 使用加权的KNN 邻近算法 [ 6 ] 从资源库中搜索出相似资源，该方法强调的是资源的一对一的属性匹配。首先为资源的每一个属性指定一个权值，检索资源的时候可以根据输入资源中各组成成份的权值求出与资源库中各属性的匹配程度，即相似度。具体做法为，给出资源间距离(即相似度)的定义，根据这个定义，计算出当前资源与资源库中所有资源间的距离，然后从中选出距离最小者。其中数值型属性的相似度计算采用基于欧几里德距离公式演化而来的一种计算确定数值型属性的相似度算法。设使用l个属性来描述每个资源，并且每个属性具有一个权重，于是权重的集合是 对于资源库 中的任意的两个资源， 和 。把两个资源的距离记作 ，则我们使用下式来计算这个距离 (1) (2) 对于资源库中的任意两个个体 和 ，定义 (3) 称 为第i个体与第j个体之间的相似度。 3) 遗传算法操作过程 为每个染色体计算适应性函数，并进行遗传算法 [ 7 ] 的进化操作。首先，进入初始资源库的构建阶段，通过反复运行传统GA获得多个局部最优解，根据局部最优解间的相似程度，将不相似的局部最优解增加到资源库中，保证资源的多样性，为优化过程提供初始种群。在测试数据上进行加权的KNN算法的推理，然后计算适应函数的值，选择适应函数比较大的产生下一代，并进行相应的交叉、变异的操作算法使得自带向着适应度函数最大的方向进化。将适应度函数的输出值与算法在测试集上运行得到的结果的正确率成正比，与该结果的错误率成反比，具体可定义为： (4) 其中 表示将该次遗传算法的迭代获得的权重用于加权的KNN算法时，得到的正确分类的资源的总数。N表示测试集中的资源数量。 采用单点交叉 [ 8 ] 方式，再通过轮盘赌的方式选择出的两组权重的二进制码串上随机选择某位，然后以此点为界将其分为左右部分，根据设定的交叉概率大小决定是否将两组权重的左右部分互相交换，最后生成两组新的权重。轮盘赌的方式 [ 9 ] 具体来讲，就是通过各个个体的选择概率计算其累计概率，第K个个体的累计概率为 间然后产生0到1之间的随机数e与 进行比较来决定选择的个体，若 ，则选择第k个个体。为了提高遗传算法的全局搜索能力，还需要执行变异操作。从交叉后的每组权重中，对个体编码串以变异概率P随机指定某一位或某几位基因进行变异操作。 这个过程循环地执行，直到在所有个体的适应度中的最大值超过预定义的要求，即大于某个实数值，我们将这个数记作 。这个过程如图1中所示。 3.1.2. 线性规划问题 由于在本文之前的方案并没有利用专家的先验知识对机器学习学到的模型参数(即筛选相似资源的加权KNN算法的权重)进行评估，因此，往往得到主观上难以理解的结果，同时，利用先验知识能够有效提高模型的精度。继而，本文提出的方案允许专家参与对模型参数的评价，并能够利用评估的结论进一步优化权重。 GA-KNN算法返回的结果是与待分类资源最相似的资源的集合。在专家参与参数调整的过程中，令专家得到系统提供的最相似的n个资源，然后根据专家经验对这n个资源按照与待分类资源的相似度从大到小进行排序，并再次输入系统的线性规划模块。 (5) 另外，设专家排序后的资源的序列为 ，其中专家认为这些资源与待分类资源的相似度具 图1. GA-KNN算法执行过程 有以下关系： (6) 这些资源到达测试资源 的距离记作 ，其中距离的定义与等式(1)中定义的一致。 由等式(2)和不等式组(5)看出专家给出的这个排序可以看作是按距离的从小到大的排序，因此，我们有关于 的线性不等式组： (7) 我们仍希望满足以上等式与不等式的约束的新的权重能够与我们已经求解的权重的差异尽量小，于是最大化两个权重的相关性，即最小化这个相关性的相反数，这个式子仍然是关于 是线性的： (8) 其中 是我们之前使用GA-KNN算法求解出的最佳权重。 在(5)和(6)的线性约束下最小化一个线性函数(7)，这是典型的线性规划问题。于是，我们将其解出。假设有m名专家对最近邻检索的结果进行排序，那么我们就将进行m次上面的这种过程。 把我们之前求解的最佳权重与线性规划解出的权重组成一个权重的种群，然后将这个种群作为遗传算法的初始种群，执行GA-KNN算法再次执行权重优化。 3.2. 神经网络训练及决策输出阶段 神经网络是对人脑若干基本特性的抽象利模拟。它是以人的大脑工作模式为基础，研究自适应及非程序的信息处理方法。这种工作机制的特点表现为通过网络中大量神经元的作用来体现它自身的处理功能，从模拟人脑的结构和单个神经元功能出发，达到模拟人脑处理信息的目的 [ 10 ] 。它是一种客观的机器学习方法。 为了在利用主观先验知识的同时体现分类结果良好的客观公正性，本文方案将人工参与调解的模型(即得到的加权KNN模型)与人工神经元网络进行组合。将资源的各种分类等级输入到神经网络中，利用神经网络的学习和推理能力，得到最终的分类结果，从而为资源的分类提供客观公正的等级参考。 我们将资源分为16类，即每一类对应神经网络中的一个输出节点。同时，我们按照提取好的资源特征将教学资源向量化表示，因此，神经网络的输入数据应具有61个属性。于是，我们的神经网络应具有61个输入节点。本文使用传统的三层神经网络，即该网络具有一个输入层、一个隐藏层和一个输出层。我们使用公式来计算隐藏节点的个数： (9) 其中，m是可视节点的个数，n是隐藏节点的个数，o是通过计算的到的隐藏节点的个数。本文中使用的神经元网络具有61个输入节点和16个输出节点，因此，我们计算得到的隐藏节点个数为20个。另外，在我们的神经网络中的相邻层之间的节点间是全连接的。 在图2中，我们给出了具有传统的三层网络结构并且能适用于本文研究的教育资源分类决策的课题的神经网络结构示意图。
system: [SYSTEM]

user: 4. 结论 本研究的实验数据从1200个教学资源文书中获取。以教育部教育资源建设技术规范为基础，将1200篇文档中的信息提取为向量形式的数据。我们将其中的1000条数据作为训练集，将另外200条数据作为测试集。 整个过程共有15名教育专家参与参数调整的过程。在求解最优权重的过程中，我们进行了10轮的GA-KNN算法求解过程，每次GA-KNN算法求得一个最佳权重以及20个与待分类资源最接近的资源，然后由专家从主观经验上对这些相似资源按照与待分类资源的近似程度来进行排序。排序后的结果用于产生新的权重的初始种群，这个初始种群再次经过GA-KNN算法来求得最优权重。 以上过程进行10轮之后，便得到了最终的最优权重，此权重将用作加权的KNN算法的属性权重。 在获取最终的KNN算法的最优权重之后，我们就从测试集中随即抽取一个资源作为待分类资源，使用加权的KNN算法从1200个资源中检索出100个与待分类资源最相似的资源作为三层神经网络的训练集。我们将这100个最相似资源的属性作为神经网络的输入，将表示其分类结果类型的向量作为神经网络的输出。并使用随机梯度下降法来训练我们的神经网络。这100个资源的数据将在训练过程中被重复使用，在本研究中，我们设训练的迭代次数为100次到500次。 作为对照组实验，我们再次执行由GA-KNN算法来求解加权KNN算法的最优权重并且使用加权的KNN算法检索出来的资源用作三层神经网络的训练数据集过程。这个过程的每个操作的执行次数与上面提出的实验完全相同。这个过程与本文提出的方案的唯一区别在于，这个过程没有专家评审的步骤。 我们提出的方案是一种机器学习结合人类主观经验来进行分类的过程。而对照组的实验的学习过程则完全依赖于机器学习方法来完成。从而，这两组实验所求得的最佳的加权KNN算法的属性权重是不同的。理论分析的结果与实验结果符合，如图3所示。 图2. 神经网络结构示意图 图3. 对照实验的权重对比 图4. 对照实验精度对比 从图中可以看出，两组实验所求得的权重在某些属性上有显著的差异。从而，尽管我们使用该权重加权的KNN算法来检索相似资源并且把这些相似资源作为神经网络的训练数据，同时保证神经网络的结构相同，但是由于使用了不同的权重来检索相似资源从而导致神经网络的训练数据与待分类资源的相似程度不同，因而影响了神经网络的训练效果，进而两组实验获得的决策精度是不同的。神经网络的训练迭代次数是100次到500次，我们所得到的精度曲线图如图4中所示。 因此，本文将GA-KNN算法、线性规划与神经网络学习相结合，形成了借助GA-KNN及线性规划的基于本体的教学资源分类方案，该方案继承了机器学习客观公正的特点，同时又使用了主观经验来进一步提高系统的分类精度。实验证明，本方案与传统分类方案相比，在分类的精度上有更好的表现。
system: [SYSTEM]

user: 摘 要 随着时代发展，三维地理信息系统(3DGIS)的重点正由室外转向室内，但是室内模型获取较困难，现有方法存在效率过低、成本偏高，模型数据质量不佳等问题。建筑信息模型(BIM)是建筑行业信息化的产物，其数据完整、全面，可以作为潜在3DGIS建筑模型数据的一个重要来源。本文基于GIS的建模标准CityGML与BIM的IFC标准，研究了两种标准的异同点，建立两种标准的对应关系并进行了模型间的转换，将基于IFC的BIM建筑模型转换成了满足CityGML标准的3DGIS模型数据。 关键词 :BIM，CityGML，建筑模型转换 Copyright © 2017 by authors and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
system: [SYSTEM]

user: 1. 引言 随着城市的发展，各种各样的建筑也随之建起。这些建筑物造型各异，内部设备也千奇百怪，想要准确的表达建筑模型室内的数据，有方法存在效率过低、成本偏高，模型数据质量不佳等问题。更多情况下，除了直接进入室内进行室内测绘，多数方法都只能获得建筑物的表面模型，模型实际上仅仅是“空壳”，难以进入模型内部，更不论室内空间信息的查询和分析 [ 1 ] 。 BIM (Building Information Model，建筑信息模型)是随着信息技术在建筑行业中应用的深入和发展而出现的 [ 2 ] 。其精细程度高，包括几何、物理、规则等丰富的建筑空间和语义信息，可用来实现对工程全生命周期(设计、施工建造、运营、拆除)的数字化管理 [ 3 ] 。BIM模型的标准数据格式是IFC，所有BIM模型都可以转换为IFC标准数据文件输出 [ 4 ] 。 CityGML是基于OGC [ 5 ] 发布的另一个标准GML3 (Geography Markup Language 3，地理标记语言)开发的，最早是由德国柏林科技大学的Thomas H. Kolbe教授开始研究。CityGML充分考虑了区域模型中的几何、语义、拓扑以及纹理等信息，并且面向整个城市，定义了城市中各类地理对象之间的关系。对于室内外三维建模、数据共享具有非常重要的意义 [ 6 ] 。 目前，3DGI在室内表达的一个问题在于如何快速、低成本地获取可用于室内空间三维建模的数据。 将BIM模型作为数据源集成到3DGIS中，包括两种方式：即直接方式与间接方式 [ 7 ] 。无论是否遵循IFC标准，均可尝试通过直接方式将BIM模型转换成3DGIS能够使用的数据格式。曹国等 [ 8 ] 基于WorldWind三维地理信息浏览平台(NASA发布的开源地理科普软件平台)，采用插件(Plug-in)的方式在WorldWind中添加了一个三维建筑漫游系统，实现了室内外场景的无缝衔接。然而，由于不遵循IFC标准的BIM模型本身就存在数据交换困难、语义信息不完整等先天不利于室内空间提取的缺陷；再者，IFC模型在其较早版本(IFC2x3)中就已有600多个实体定义以及300多个类型定义 [ 9 ] 。如何将蕴含丰富信息的IFC模型转换到3DGIS数据模型，是个非常艰巨的难题。 目前，无论是建筑领域还是GIS领域，大多数的研究热点都是集中于利用IFC和CityGML这两种各自领域提出的数据标准进行转换以及信息交流。如何制定以IFC为代表的BIM模型向3DGIS进行转换的规则，成为本文和今后研究的重点。针对目前相关领域对于BIM模型与3DGIS融合的研究，本文遵循CityGML标准，设计制定一套可行的流程方案，将IFC标准建筑文件转换成附带语义信息的几何模型，为进一步实现室内空间应用做好铺垫。
system: [SYSTEM]

user: 2. IFC与CityGML介绍 2.1. IFC文件 IFC标准是建筑行业信息化过程中必定会出现的产物，具有两个非常重要的特点：1.IFC标准是完全开放的；2.IFC是数据交换标准，用于异构系统之间交换数据、共享信息 [ 10 ] 。 IFC定义超过600个建筑实体以及超过300个抽象类型，共计逾900种定义 [ 11 ] 。构件种类繁多，构件与构件之间的空间关系异常复杂 [ 12 ] 。要想对IFC进行模型转换，就需要对建筑构件进行归纳分类，根据转换的实际需求，保留需要转换的几何类型与语义信息，去除在3DGIS领域不需要的信息，避免为转换增加难度的同时又降低转换的效率。 IFC建筑构件主要是在共享层中定义的，共享建筑构件以及共享建筑服务构件构成主要的构件实体与相关抽象类型所属超类。 共享建筑构件定义的实体数量总共为47个，可以大致归为14种类型。表1罗列了部分实体。 共享建筑服务构件定义的实体数量为31个。不过这些实体主要用于领域层内的暖通工程领域、建筑管理领域、防火管理领域等领域。这些领域有许多设备实体并不是3DGIS领域需要或者关心的内容，但也有一些可以为CityGML进入室内时提供一些实体结构的数据源。表2罗列了部分共享建筑服务构件定义的实体。 2.2. CityGML文件 CityGML是用以表达三维城市模板的通用数据模型。它定义了城市和区域中最常见的地表目标的类型及相互关系，并顾及了目标的几何、拓扑、语义、外观等方面的属性，包括专题类型之间的层次、聚合、目标间的关系以及空间属性等 [ 13 ] 。这些专题信息不仅仅是一种图形交换格式，同时可以将虚拟三维城市模型用于各种应用领域中的高级分析 [ 14 ] ，例如模拟、城市数据挖掘、设施管理、专题题查询等。 在很多层面上，室内空间区别于室外空间。在3DGIS进入室内的过程中，诸多基本概念、数据模型以及相关标准都需要重新定义才能符合室内空间应用的要求，而室内空间信息的形式、内容都与具体的应用类型息息相关。 建筑模块的实体定义在OGC发布的CityGML Schema中的building.xsd。表3罗列了抽象基类_AbstractBuilding的元素。 2.3. IFC与CityGML比较 从时间上来看，IFC的出生略早于CityGML。由于各自应用的领域不同，IFC与CityGML采用不同的策略进行何建模、语义表达等。IFC采用EXPRESS语言规范进行描述，语句更为紧凑，而CityGML遵循GML规范，语句繁琐但更容易让人理解，两种表示方法见表4。
system: [SYSTEM]

user: 3. 数据融合方法描述 IFC作为一种精细建模的三维模型，其精度可以认为与CityGML的LOD4层级一致，而CityGML其他LOD层级的数据精度要求都小于LOD4层级。因此，理论上IFC模型是可以分别转换为符合LOD1-LOD4各层级精度要求的CityGML模型的。下面针对LOD4层次模型进行介绍。 CityGML在LOD4层级进入室内进行真实表达，许多几何与语义定义都与其他层级不同，这个层级也是整个IFC-3DGIS转换最为关键同时也是最有难度的地方。图1为OGC发布的CityGML LOD4 demo数据。 如图1所示，从图中可以看到室内有一把红色座椅，代表可移动的家具。不可移动的室内设施在图 Table 1 IFC Shared Building Components Lis 实体名称 类别 实体名称 IfcBeam 横梁 IfcRailing IfcColumn 柱 IfcRelConnectsPathElements IfcColumnType IfcConnectionTypeEnum IfcColumnTypeEnum IfcRoof IfcCurtainWall 窗帘幕墙 IfcRoofTypeEnum IfcCurtainWallType IfcSlab IfcCurtainWallTypeEnum IfcSlabType IfcDoor 门 IfcSlabTypeEnum IfcDoorStyleOperationEnum IfcWallStandardCase IfcMember 支撑板 IfcWallType IfcMemberType IfcWallTypeEnum IfcMemberTypeEnum IfcWindow IfcPlate 平面板 IfcWindowLiningProperties IfcPlateType IfcWindowPanelProperties IfcPlateTypeEnum IfcWindowStyle IfcRamp 斜坡横梁 IfcWindowPanelOperationEnum IfcRampFlight IfcWindowPanelPositionEnum 表1. IFC共享建筑构件列表 Table 2 List of shared building service component 实体名称 实体名称 IfcDistributionChamberElement IfcFlowSegmentType IfcDistributionChamberElementType IfcFlowStorageDevice IfcDistributionChamberElementTypeEnum IfcFlowStorageDeviceType IfcDistributionControlElement IfcFlowTerminal IfcDistributionControlElementType IfcFlowTerminalType IfcDistributionFlowElement IfcFlowTreatmentDevice IfcDistributionFlowElementType IfcFlowTreatmentDeviceType IfcElectricalBaseProperties IfcFluidFlowProperties IfcEnergyConversionDeviceType IfcSoundValue 表2. 共享建筑服务构件列表 中没有明显表现。由于涉及到室内空间Room的提取与生成以及连通设施在不同边界面之间的逻辑归属(射击孔面)，这一层级的转换要考虑许多层面的因素。IFC中有一个定义为IfcSpace的实体概念，是指建筑内外部具有特定功能或特别指定的空间区域，一般是与楼层相关联的。其与CityGML中的Room有相似的地方，但并非是同一个概念，也不能直接由IfcSpace转换生成Room。LOD4层级中内外墙、地板天花板等边界面要根据空间位置以及语义信息从IfcSlab、IfcMember以及IfcPlate中选择最为合适的进行转 Table 3 _AbstractBuilding Element lis 元素(element) 数据类型 class gml:CodeType function gml:CodeType usage gml:CodeType yearOfConstruction xs:gYear yearOfDemolition xs:gYear roofType gml:CodeType measuredHeight gml:LengthType storeysAboveGround xs:nonNegativeInteger storeyHeightsAboveGround gml:MeasureOrNullListType lod0FootPrint gml:MultiSurfacePropertyType lod1MultiSurface gml:MultiSurfacePropertyType lod2TerrainIntersection gml:MultiCurvePropertyType interiorBuildingInstallation IntBuildingInstallationPropertyType boundedBy BoundarySurfacePropertyType interiorRoom InteriorRoomPropertyType 表3. _AbstractBuilding元素列表 Table 4 Comparison of IFC and CityGML Dat IFC CityGML 几何建模 边界描述 边界描述 拉伸、旋转扫描体 构造实体几何 语义信息 大量的建筑细节描述以及建筑构件之间的空间关系 多层级语义信息分类 模型外观 不支持纹理贴图，以材质呈现为主 丰富的纹理特征，定义Appearance模块进行模型外观管理 空间定位 工程坐标系与构件坐标系组合定位 带有坐标基准的全球坐标系或局部坐标系 表4. IFC与CityGML数据表达比较 图1. CityGML LOD4模型实例 换获取。对应CityGML中IntBuildingInstallation，IFC中没有特意定义这种类型，只能根据具体的实体定义与语义信息来判断是否属于IntBuildingInstallation，例如IfcBeam、IfcColumn、IfcStair、IfcRailing以及IfcRamp等实体；而对于BuildingFurniture，IFC中将可移动的家具统称为IfcFurnishingElement。要注意的是，无论是IntBuildingInstallation亦或是BuildingFurniture，具体的数据类型为表5所示的AbstractiCityObjectType。表5说明了LOD4映射关系中相关的IFC实体与CityGML实体。