Wikidata:Property proposal/emulates

emulates edit

Originally proposed at Wikidata:Property proposal/Natural science

   Done: emulates (P4043) (Talk and documentation)
DescriptionThis property will indicate items are emulated by a piece of emulation software
Data typeItem
Domaininstances of emulator (Q202871) (including subclasses)
Allowed valuesinstances of computing platform (Q241317), operating system (Q9135), central processing unit (Q5300) (subclasses included)
Example
SourceList of computer system emulators
Planned useinformation about what hardware or systems are emulated by a particular emulator
See alsoplatform (P400), operating system (P306), CPU (P880)
Motivation

We need a way to connect these applications with the hardware that they emulate. YULdigitalpreservation (talk) 19:31, 16 December 2016 (UTC)[reply]


Discussion
@SJK: I am concerned that using the word platform in the name of the property increases the potential for ambiguity. Here is a visualization of items that are subclass of platform: Try it here!. I prefer a solution where we are not using the word platform in the name of the property.YULdigitalpreservation (talk) 16:27, 12 April 2017 (UTC)[reply]
@YULdigitalpreservation: Why is the word platform ambiguous? I mean, it is somewhat ambiguous between the meanings of hardware architecture, CPU architecture, operating system, operating system version, etc. But, I don't think that particular ambiguity is a problem for the property, because I think the same property can be used for all of those cases. Or is there some other ambiguity you are concerned with? How would you define platform? I gave a definition above, do you think there is a problem with the definition I gave? SJK (talk) 20:32, 12 April 2017 (UTC)[reply]
@SJK: Yes, the ambiguity of platform as hardware architecture, CPU architecture, OS, OS version, console, web platform is the ambiguity that I am concerned about. I prefer the name of this property to not use platform. To me, because we have an option for the label that does not use the term platform, I would like to create the property with the English label "emulated by" so as to remove the potential for confusion. YULdigitalpreservation (talk) 12:28, 3 May 2017 (UTC)[reply]
@ YULdigitalpreservation: So, my objection to "emulated by" is I think the property should run in the other direction – from emulator to emulated not from emulated to emulator. Your objection to "emulates platform" is you think the word "platform" is ambiguous – well, what if as a compromise we dropped the word "platform" from my proposal and just called it "emulates"? That would answer your objection to the word "platform" and my objection to the direction. SJK (talk) 09:39, 19 May 2017 (UTC)[reply]
@SJK: Thank you for the suggestion. I just revised the label to be "emulates". I appreciate your work to create a solution. YULdigitalpreservation (talk) 08:32, 21 May 2017 (UTC)[reply]
@YULdigitalpreservation: Okay, you've updated the English label according to my proposal, but the French and Russian labels need the same change too. Also, while the English label is now showing the direction I espouse (from emulator to emulated), the examples are still the other way around. SJK (talk) 10:56, 22 May 2017 (UTC)[reply]
@SJK: I reversed the examples and I revised the FR and RU labels. YULdigitalpreservation (talk) 13:05, 1 June 2017 (UTC)[reply]
@YULdigitalpreservation: Also, I don't think this should be just limited to emulators of "hardware". An emulator can emulate hardware, a CPU or an operating system. For example, DOSBox is an emulator of MS-DOS–the emulator doesn't just emulate an x86 CPU and a wide range of PC/PC-compatible hardware devices, it also emulates the MS-DOS operating system. This is why I supported the term "platform", because it is broad enough to include hardware, CPU and operating system. SJK (talk) 20:58, 1 June 2017 (UTC)[reply]
@SJK: I edited the description in English so that it is no longer just hardware. YULdigitalpreservation (talk) 13:03, 5 June 2017 (UTC)[reply]
@YULdigitalpreservation: I made some other changes. This was copying some details from my proposal into yours. If you are happy with these changes I am happy to support your proposal. If you don't agree with my changes feel free to revert them (but please explain why you don't accept them.) Thanks SJK (talk) 22:00, 6 June 2017 (UTC)[reply]
@SJK: I am happy with these changes. YULdigitalpreservation (talk) 13:03, 7 June 2017 (UTC)[reply]
@YULdigitalpreservation: Great. I think we've sorted out all the disputed issues, so this property is ready to create now. SJK (talk) 08:12, 9 June 2017 (UTC)[reply]

emulates platform edit

Originally proposed at Wikidata:Property proposal/Natural science

   Withdrawn
Descriptioncomputing platform which this emulator emulates
Data typeItem
Domaininstances of emulator (Q202871) (including subclasses)
Allowed valuesinstances of computing platform (Q241317), operating system (Q9135), central processing unit (Q5300) (subclasses included)
ExampleVICE (Q647098)Commodore 64 (Q99775), DOSBox (Q479783)DOS (Q170434)
Sourceen:List of computer system emulators
See alsoplatform (P400)
Motivation

This is related to but distinct from platform (P400). P400 means that a given program runs on that platform. Whereas, this would say that the program emulates the platform. If we consider a Commodore 64 emulator running on Microsoft Windows, there are two distinct platforms involved, the native platform (Microsoft Windows) and the emulated platform (Commodore 64). The former platform would be indicated by P400, the latter platform by this property. (Possibly, we could also create emulation versions of operating system (P306) and CPU (P880), although I am unsure if that is necessary or not.) SJK (talk) 13:41, 10 January 2017 (UTC)[reply]

Discussion
  • @SJK: Thank you for proposing this important property. I proposed a similar property in the "Natural Science" category (filed under "informatics"). Perhaps we could combine them? What is your opinion of using "emulated by" vs "emulates platform"? YULdigitalpreservation (talk) 18:23, 10 January 2017 (UTC)[reply]
    • @YULdigitalpreservation: Sorry I didn't notice your proposal before I made this one. I didn't realise "Informatics" was filed under "Natural sciences"–since I don't think of this stuff as natural science–but anyway, that aside–I actually think emulation is more a property of the emulator than the thing being emulated. Potentially, a popular platform could end up with dozens of emulators, and it would be neater to mark each of those emulators with "emulates" than marking the emulated platform with dozens of "emulated by" properties. (The reverse case is less common – a single emulator may emulate dozens of platforms, e.g. MAME, but the vast majority of emulators only emulate a single platform.) From an essentialist viewpoint–putting aside philosophical debates about whether essentialism is right or not–for A to emulate B is part of the essence of A rather than the essence of B–if I write a Commodore 64 emulator, I am not really changing the Commodore 64 platform, I am creating a new and separate thing which happens to emulate that platform. So rather than adding a property to "Commodore 64" pointing to my emulator, I should add a property to my emulator pointing to "Commodore 64". SJK (talk) 20:05, 10 January 2017 (UTC)[reply]
  • @SJK: What would be the difference beetween "implements platform" and "emulates platforms" ? This is a very similar relation conceptually. A software implementing a Java version and a software implementing a gaming device are essentially the same. Would you oppose a generalization and a rename to "implements platform" ? Maybe a problem we would have to face is the quality of the implementation, complete spec versus reversed engineered and imperfect one. author  TomT0m / talk page 08:26, 11 January 2017 (UTC)[reply]
    • @TomT0m: Hmm. Not completely opposed. Although, I wonder how broadly we define "platform". For example, an application server (e.g. WebSphere, WebLogic, JBoss) may implement a certain version of J2EE. But is J2EE a platform? Or is it a standard? Suppose we want a way to say some software implements some standard (ISO, ECMA, etc.) – would we consider those standards to be "platforms" which are implemented? I don't think so in every case – while some ISO standards define things broad enough to be called "platforms" (e.g. ISO 23271 which standardises a big chunk of .Net), other ISO standards define things too narrow to be called a "platform", e.g. ISO 9660 (CD-ROM format). Maybe we need an "implements standard" or "implements specification" property? Well then, "WebSphere implements spec J2EE" would make sense since J2EE is a formal specification which WebSphere implements. Whereas, "VICE implements specification Commodore 64" doesn't make sense since "Commodore 64" was never a formally documented specification intended for implementation by multiple vendors. So, given all of this, I'm a little hesitant about generalising "emulates platform" to "implements platform" – it might make more sense to have a different property like "implements specification" instead? On the other hand, it could be useful as a way of saying multiple computer models all constitute the same platform, e.g. "Mac Classic implements platform 68K Macintosh", "Mac II implements platform 68K Macintosh", "Quadra 840AV implements platform 68K Macintosh". So I don't know. SJK (talk) 03:04, 15 January 2017 (UTC)[reply]
      • @SJK: The naming of the property is not especially important. I think overall whatever is impemented - a platform, a spec, a gaming device - we know what it is by checking the instance of (P31) statement of the object of the claim. So a generic property to capture all those ideas is enough for us. author  TomT0m / talk page 08:36, 15 January 2017 (UTC)[reply]
  • @SJK: I'm concerned about the use of 'platform'. Is IBM207 a platform? If we look at how P400 is used [1] it seems like we would need to expand our understanding of platform to accommodate this proposed property. YULdigitalpreservation (talk) 19:09, 17 January 2017 (UTC)[reply]
    • @YULdigitalpreservation: – I'm confused, what do you mean by "IBM207". I've never heard of any IBM product by that name. SJK (talk) 19:53, 17 January 2017 (UTC)[reply]
      • @SJK: Thanks for catching that. I got the name wrong. I was attempting to talk about IBM System/370 (Q1586139). YULdigitalpreservation (talk) 19:57, 17 January 2017 (UTC)[reply]
        • @YULdigitalpreservation: I don't see why IBM System/370 (Q1586139) could not be considered a platform. "Platform" is a bit of a nebulous term which refers to some combination of hardware, CPU architecture, operating system. (It doesn't refer to an individual model of computer, or an individual OS version, but rather a family of similar computer models–and a new OS version containing incremental changes is probably not enough to constitute a new platform, yet Windows 3.1 and Windows 10 are arguably so far apart as to constitute a different platform.) For example, when we say "Commodore 64" is a platform, we are referring to the 6502 CPU, the various Commodore interface chips and peripherals, and the KERNAL ROM software–"Apple II" is a quite different platform despite having the same CPU, since the interface chips, peripherals, and software (whether in ROM or on disk) are quite different. System/370 is a series of IBM mainframe models, including the CPU and peripherals – since 370s never used off-the-shelf CPUs, we don't have the same possibility we have for C64 and Apple II of two distinct platforms both using the same CPU type. But, System/370 is was not a purely IBM platform since there were also clone manufacturers (e.g. Amdahl) which manufactured machines compatible at the hardware layer. Now, System/370 had different operating systems belonging to different OS families – OS/360 descendants such as MFT (which became OS/VS1) and MVT (which became OS/VS2 then SVS then MVS), DOS/360 (which became DOS/VSE), VM/CMS, etc. Does that make each of those operating systems a separate platform? Well, if so, then "Apple II" isn't a single platform either, because it also had multiple operating systems (Apple DOS, ProDOS). Now, the other factor is that IBM 370 is part of a succession of generations: 360, 370, 370/XA, ESA/370, ESA/390, z/Architecture–are each of these generations a distinct platform, or are they successive versions of a single platform? Well, that's a bit like asking if an Apple I and an Apple IIgs are the one platform, or if a 2016 model PC with a 64-bit CPU running Windows 10 is the same platform as the original IBM PC running PC-DOS 1.0–whether you want to consider them as different versions of one platform or as distinct platforms is a bit arbitrary. But, an IBM 360 or 370 is about as far apart from a contemporary z/Architecture mainframe as a contemporary 64-bit PC compatible is from the original IBM PC. SJK (talk) 02:16, 18 January 2017 (UTC)[reply]