<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Csjain</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Csjain"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Csjain"/>
	<updated>2026-07-01T18:10:23Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=M1752_Implement_the_Microdata_API&amp;diff=109876</id>
		<title>M1752 Implement the Microdata API</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=M1752_Implement_the_Microdata_API&amp;diff=109876"/>
		<updated>2017-10-27T15:09:19Z</updated>

		<summary type="html">&lt;p&gt;Csjain: moved M1752 Implement the Microdata API to CSC/ECE 517 Fall 2017/M1752 Implement the Microdata API&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[CSC/ECE 517 Fall 2017/M1752 Implement the Microdata API]]&lt;/div&gt;</summary>
		<author><name>Csjain</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/M1752_Implement_the_Microdata_API&amp;diff=109875</id>
		<title>CSC/ECE 517 Fall 2017/M1752 Implement the Microdata API</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/M1752_Implement_the_Microdata_API&amp;diff=109875"/>
		<updated>2017-10-27T15:09:19Z</updated>

		<summary type="html">&lt;p&gt;Csjain: moved M1752 Implement the Microdata API to CSC/ECE 517 Fall 2017/M1752 Implement the Microdata API&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=M1752 : Implement the Microdata API= &lt;br /&gt;
=='''Introduction'''== &lt;br /&gt;
&lt;br /&gt;
==='''HTML Specification'''===&lt;br /&gt;
The WHATWG Microdata HTML specification allows web data to be enriched in that it allows machines to learn more about the data in a web page. &lt;br /&gt;
A typical example of real-world using of Microdata is illustrated [https://code.tutsplus.com/tutorials/html5-microdata-welcome-to-the-machine--net-12356 here]&lt;br /&gt;
&lt;br /&gt;
The attributes ‘itemtype’ and ‘itemprop’ are in scope of this project.&lt;br /&gt;
&lt;br /&gt;
More information about the Microdata specification is available [https://html.spec.whatwg.org/multipage/microdata.html here]&lt;br /&gt;
&lt;br /&gt;
Some popular websites like Google, Skype and Microsoft use the Microdata. The number of websites that use Microdata is growing; currently about 13% of websites use Microdata (statistics courtesy w3techs.com)&lt;br /&gt;
&lt;br /&gt;
==='''Servo'''===&lt;br /&gt;
Servo is a modern, high-performance browser engine designed for both application and embedded use and written in the Rust programming language.&lt;br /&gt;
It is currently developed on 64bit OS X, 64bit Linux, and Android.&lt;br /&gt;
&lt;br /&gt;
==='''Rust'''===&lt;br /&gt;
Rust is a systems programming language focuses on memory safety and concurrency. It is similar to C++ but ensures memory safetely and high performance. &lt;br /&gt;
More information about the Rust programming language is available [https://servo.org here]&lt;br /&gt;
=='''Scope'''==&lt;br /&gt;
The scope of this project is to implement initial support for Microdata API specification by allowing the Servo engine to read Microdata API tags from web pages and interpret them in the DOM. This should lay a groundwork for future improvements to implement features to created vCard and JSON data from Microdata on the ServoShell. &lt;br /&gt;
Additional project information is available [https://github.com/servo/servo/wiki/Microdata-project here]&lt;br /&gt;
 &lt;br /&gt;
=='''Design'''==&lt;br /&gt;
As for the initial stage of this project, the scope did not require any major changes to the engine design. We implemented a DOM method to handle appropriate attributes in the Microdata API. The below diagram shows an overview of components involved in the design. The highlighted blocks have been modified.&lt;br /&gt;
&lt;br /&gt;
[[File:Design.png]]&lt;br /&gt;
&lt;br /&gt;
=='''Implementation'''==&lt;br /&gt;
The implementation involved updates to the Web Interface Definition Language (webidl) files and its Rust implementation.&lt;br /&gt;
 &lt;br /&gt;
===='''HTMLElement.WebIDL'''====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method Name&lt;br /&gt;
! Return Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
|  propertyNames()&lt;br /&gt;
| String&lt;br /&gt;
| Method definition only. The implementation is done in htmlelement.rs&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
===='''htmlelement.rs'''====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method Name &lt;br /&gt;
! Return Type &lt;br /&gt;
! Description &lt;br /&gt;
! Location&lt;br /&gt;
|-&lt;br /&gt;
| parse_plain_attributes()  &lt;br /&gt;
| AttrValue &lt;br /&gt;
| This method returns a value of an attribute associated to an the HTML Element. &lt;br /&gt;
| '''traits''' Virtual_Methods&lt;br /&gt;
|-&lt;br /&gt;
|  propertyNames() &lt;br /&gt;
| Option&amp;lt;Vec&amp;lt;DOMString&amp;gt;&amp;gt;&lt;br /&gt;
| This method parses the space-separated values of the 'item-type' attributes' &lt;br /&gt;
| '''struct''' HTMLElement&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==='''Configuration'''===&lt;br /&gt;
The preference &amp;lt;code&amp;gt;[Pref=&amp;quot;dom.microdata.testing.enabled&amp;quot;]&amp;lt;/code&amp;gt; was added to resources.pref toggle the experimental microdata methods during development.&lt;br /&gt;
 &lt;br /&gt;
==='''Testing'''===&lt;br /&gt;
testharness is used as the testing framework.&lt;br /&gt;
&lt;br /&gt;
==='''Dependencies'''===&lt;br /&gt;
'''html5ever''' - HTML attribute names are fetched in Servo from a lookup file in the html5ever module. The html5ever module was augmented with the 'itemprop' and 'itemtype' attributes for use in Servo. &lt;br /&gt;
&lt;br /&gt;
==='''Pull Request'''===&lt;br /&gt;
&lt;br /&gt;
The pull request used to incorporate our changes upstream is available [https://github.com/servo/servo/pull/19038 here]&lt;br /&gt;
&lt;br /&gt;
=='''References'''==&lt;br /&gt;
1. https://servo.org &lt;br /&gt;
2. http://html5doctor.com/microdata/ &lt;br /&gt;
3. https://html.spec.whatwg.org/multipage/microdata.html &lt;br /&gt;
4. https://code.tutsplus.com/tutorials/html5-microdata-welcome-to-the-machine--net-12356 &lt;br /&gt;
5. http://www.servo.org&lt;/div&gt;</summary>
		<author><name>Csjain</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Vhhebbar&amp;diff=109870</id>
		<title>User:Vhhebbar</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Vhhebbar&amp;diff=109870"/>
		<updated>2017-10-27T15:07:23Z</updated>

		<summary type="html">&lt;p&gt;Csjain: moved User:Vhhebbar to M1752 Implement the Microdata API: Project wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[M1752 Implement the Microdata API]]&lt;/div&gt;</summary>
		<author><name>Csjain</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/M1752_Implement_the_Microdata_API&amp;diff=109869</id>
		<title>CSC/ECE 517 Fall 2017/M1752 Implement the Microdata API</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2017/M1752_Implement_the_Microdata_API&amp;diff=109869"/>
		<updated>2017-10-27T15:07:23Z</updated>

		<summary type="html">&lt;p&gt;Csjain: moved User:Vhhebbar to M1752 Implement the Microdata API: Project wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=M1752 : Implement the Microdata API= &lt;br /&gt;
=='''Introduction'''== &lt;br /&gt;
&lt;br /&gt;
==='''HTML Specification'''===&lt;br /&gt;
The WHATWG Microdata HTML specification allows web data to be enriched in that it allows machines to learn more about the data in a web page. &lt;br /&gt;
A typical example of real-world using of Microdata is illustrated [https://code.tutsplus.com/tutorials/html5-microdata-welcome-to-the-machine--net-12356 here]&lt;br /&gt;
&lt;br /&gt;
The attributes ‘itemtype’ and ‘itemprop’ are in scope of this project.&lt;br /&gt;
&lt;br /&gt;
More information about the Microdata specification is available [https://html.spec.whatwg.org/multipage/microdata.html here]&lt;br /&gt;
&lt;br /&gt;
Some popular websites like Google, Skype and Microsoft use the Microdata. The number of websites that use Microdata is growing; currently about 13% of websites use Microdata (statistics courtesy w3techs.com)&lt;br /&gt;
&lt;br /&gt;
==='''Servo'''===&lt;br /&gt;
Servo is a modern, high-performance browser engine designed for both application and embedded use and written in the Rust programming language.&lt;br /&gt;
It is currently developed on 64bit OS X, 64bit Linux, and Android.&lt;br /&gt;
&lt;br /&gt;
==='''Rust'''===&lt;br /&gt;
Rust is a systems programming language focuses on memory safety and concurrency. It is similar to C++ but ensures memory safetely and high performance. &lt;br /&gt;
More information about the Rust programming language is available [https://servo.org here]&lt;br /&gt;
=='''Scope'''==&lt;br /&gt;
The scope of this project is to implement initial support for Microdata API specification by allowing the Servo engine to read Microdata API tags from web pages and interpret them in the DOM. This should lay a groundwork for future improvements to implement features to created vCard and JSON data from Microdata on the ServoShell. &lt;br /&gt;
Additional project information is available [https://github.com/servo/servo/wiki/Microdata-project here]&lt;br /&gt;
 &lt;br /&gt;
=='''Design'''==&lt;br /&gt;
As for the initial stage of this project, the scope did not require any major changes to the engine design. We implemented a DOM method to handle appropriate attributes in the Microdata API. The below diagram shows an overview of components involved in the design. The highlighted blocks have been modified.&lt;br /&gt;
&lt;br /&gt;
[[File:Design.png]]&lt;br /&gt;
&lt;br /&gt;
=='''Implementation'''==&lt;br /&gt;
The implementation involved updates to the Web Interface Definition Language (webidl) files and its Rust implementation.&lt;br /&gt;
 &lt;br /&gt;
===='''HTMLElement.WebIDL'''====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method Name&lt;br /&gt;
! Return Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
|  propertyNames()&lt;br /&gt;
| String&lt;br /&gt;
| Method definition only. The implementation is done in htmlelement.rs&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
===='''htmlelement.rs'''====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method Name &lt;br /&gt;
! Return Type &lt;br /&gt;
! Description &lt;br /&gt;
! Location&lt;br /&gt;
|-&lt;br /&gt;
| parse_plain_attributes()  &lt;br /&gt;
| AttrValue &lt;br /&gt;
| This method returns a value of an attribute associated to an the HTML Element. &lt;br /&gt;
| '''traits''' Virtual_Methods&lt;br /&gt;
|-&lt;br /&gt;
|  propertyNames() &lt;br /&gt;
| Option&amp;lt;Vec&amp;lt;DOMString&amp;gt;&amp;gt;&lt;br /&gt;
| This method parses the space-separated values of the 'item-type' attributes' &lt;br /&gt;
| '''struct''' HTMLElement&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==='''Configuration'''===&lt;br /&gt;
The preference &amp;lt;code&amp;gt;[Pref=&amp;quot;dom.microdata.testing.enabled&amp;quot;]&amp;lt;/code&amp;gt; was added to resources.pref toggle the experimental microdata methods during development.&lt;br /&gt;
 &lt;br /&gt;
==='''Testing'''===&lt;br /&gt;
testharness is used as the testing framework.&lt;br /&gt;
&lt;br /&gt;
==='''Dependencies'''===&lt;br /&gt;
'''html5ever''' - HTML attribute names are fetched in Servo from a lookup file in the html5ever module. The html5ever module was augmented with the 'itemprop' and 'itemtype' attributes for use in Servo. &lt;br /&gt;
&lt;br /&gt;
==='''Pull Request'''===&lt;br /&gt;
&lt;br /&gt;
The pull request used to incorporate our changes upstream is available [https://github.com/servo/servo/pull/19038 here]&lt;br /&gt;
&lt;br /&gt;
=='''References'''==&lt;br /&gt;
https://servo.org &lt;br /&gt;
http://html5doctor.com/microdata/ &lt;br /&gt;
https://html.spec.whatwg.org/multipage/microdata.html &lt;br /&gt;
https://code.tutsplus.com/tutorials/html5-microdata-welcome-to-the-machine--net-12356 &lt;br /&gt;
http://www.servo.org&lt;/div&gt;</summary>
		<author><name>Csjain</name></author>
	</entry>
</feed>