Buzz’s Blog: On Web 3.0 and the Semantic Web


July 9, 2011  10:49 PM

Websites versus Web services, Part 1



Posted by: Roger King

So, what’s the difference between a website and a web service?

A lot of people have been asking this question.

It’s actually quite simple: A web service is a web application that is not accessed interactively by a human, but rather by a program.

An alternative to using a browser interactively.

To make use of a website, we load a URL into a browser and visit the site. Once we’re there, we might – even if we don’t realize it – be operating a very sophisticated application, like Amazon. We can search their inventory – which sits inside a very large database – via Amazon’s search form.

Using a programatic interface.

But there’s something else you can do with Amazon. We can access their inventory via a web service. Or more precisely, we can build programs that can access their inventory by communicating with programs (called web services) that they have provided. Our programs and their programs talk to each other directly.

More powerful access.

These services can be used to do things that would usually would be very time-consuming, and in fact, often intractable, if performed with a browser. Their web services also allow third party vendors to post their stock on Amazon, and in return for a fee, let Amazon sell and ship their products.

The way a web service works is by the provider of the service (such as Amazon) making the interface to the software that implements the service publicly accessible over the Internet. Such an interface is called an Application Programming Interface, or API. This way, anyone who wants to write a program that will access the service over the web knows exactly how to write their program to talk to the web service. These programs that access web services are called “client” applications.

There is a wide class of web services available on the Internet, and many of them provide APIs that allow programmers to write software that can access vast databases of such things as news and real estate information.

We will come back to this.

July 3, 2011  3:30 AM

What is multimedia?



Posted by: Roger King

Just what is “multimedia”?

At one level, it simply refers to applications that manipulate, store, and/or present multiple kinds of media, such as text, video, relational data, sound, animation, etc.

Blob and continuous data.

More pragmatically, it refers to the introduction of blob and continuous forms of data into applications that traditionally manage simple data, like character strings and numbers.

What do images “mean”?

One reason this is actually very interesting is that blob data is often stored in a semantics-less fashion, usually as simple binary or character data. Common forms of blob data are images, such as photographs, screen captures, or diagrams.

The key issue is that blob data is difficult to interpret in an automated way.  We can’t process it like we do numeric data and character data, which is typically processed in a completely automatic way with SQL.

SQL therefore lets us scale our apps up to the level of using vast amounts of data.

What does War and Peace “mean”?

Continuous data is even more challenging.  It has a temporal aspect. Video, sound, and natural language are good examples.  Again, they are very hard to process with software because their “meanings” can be extremely complex, subjective, and subtle.

And given that they can be very large, the problem can be overwhelming.  How many pieces of video can a human download from a server, view and interpret interactively in real time?

How about super smart software?

Our best hope is using image processing, audio processing, and natural language interpretation software. But this stuff is extraordinarily complex in itself, and the user may have little idea as to how the software is performing its job.  This leaves us open to potentially devastatingly wrong interpretations.

Back to “What is multimedia?”

In its most aggressive form, multimedia refers to the sophisticated integration of traditional, blob, and continuous data into integrated data forms that convey their own semantics, their own highly intricate meaning.



June 18, 2011  2:56 AM

So, what is the Semantic Web?



Posted by: Roger King
Semantic Web, Web 2.0

There has a been a lot written about the “Semantic Web” and “Web 2.0”.

What are they and are they the same thing?

We need a couple of definitions.

Web applications.

A Web Application is a website that provides some sort of substantive functionality other than simply filtering and presenting information. Evernote is a fantastic web app that stores your notes on a server, and allows you to create, group, and annotate your notes. Some folks say that a web app makes it clear that there is an application at the other end of your browser, and not just a bunch of static data. This is admittedly a pretty soft definition, but it’s reasonable. Another way to look at it is that a web app provides what would otherwise be a desktop application, but makes it accessible from a server so that users do not have to install and maintain an application.

Web 2.0.

Web 2.0 refers to web development frameworks and tools that can be used to create highly responsive websites and web applications. AJAX does this, and the conical example people give is Google Maps. AJAX allows data to be retrieved asynchronously while a prior page is being displayed and manipulated by a user, and minimizes the amount of a web page that must be replaced with the next refresh.

A somewhat newer approach is embodied in Adobe Flex and Microsoft Silverlight technologies; in these cases, a web app is sped up by running more of the application’s logic inside a browser plugin (Adobe Flash or Microsoft Silverlight), rather than making the client machine (which runs the user’s browser) continuously talk to the web server. The overall challenge is to make web pages highly dynamic (meaning the data comes from a database and is not hard-coded in the web page) while giving the user response times that approach those of a desktop application running on a dedicated or near-dedicated machine. While this is intractable at this point, it’s a good thing to hold up as a goal.

The Semantic Web.

This term refers to a still emerging body of software tools whose overall goal is to automate the collection and integration of information gleaned from websites. The idea is to free the Google/Yahoo user from painfully interactive, highly repetitive keyword searches where we continue to hone our queries until we seem to be finding the right stuff.

Semantic Web technology includes namespaces, which try to put more smarts in websites by having data tagged with widely shared, standardized sets of tags. And things like XML Schema and XQuery can be employed to leverage namespace technology to support high-volume, set-oriented queries of data stored on web servers.

More soon…


June 11, 2011  1:39 AM

Straight line 3D modeling with Autodesk Maya, part 5: creasing



Posted by: Roger King

We’ve been looking at modeling 3D objects with Maya.  Today we consider creasing.

First, we create a polygon cube.

Now we choose Proxy -> Subdiv Proxy from the main menu, and we get this:

Now we select Proxy -> Crease Tool from the main menu.  This will put us in edge mode.

We select a bottom edge and get this:

Then we push down the middle mouse button and pull to the right.  We get this:

Look carefully – you can see that we sharpened the model along that bottom edge of the cube.

If we select all four top edges and then select the Crease Tool and pull to the right, we get:

There… We did a lot of creasing…


June 2, 2011  6:44 PM

Straight line 3D modeling with polygons, part 4



Posted by: Roger King

Curved line vector modeling for 3D graphics.

In five recent postings, (12345), we looked at the simple, powerful mathematical techniques that underly the specification of curved lines in 3D graphics and how they are used to create 3D models.

Straight line vector modeling for 3D graphics.

In the last three postings (678), we turned to straight lines, and how 3D models can be built entirely out of 2D straight lines, using polygons.  We also looked at the minimal information a graphics or animation application must manage in order to unambiguously represent a 3D object created with straight line geometry – and we saw that it isn’t very complicated at all.

We left off with a Moai that we were modeling using polygons and a handful of very simple Autodesk Maya tools.

Using edge loops to add geometric detail.

Consider the image below.  It shows the Moai statue that we began to build in the last posting of this blog.  We have added more edge loops to give us the detail we need for pulling out the features of our Moai from the cylinder with which we began.

We have selected vertices on these edge loops and pulled on them to create the nose and the mouth of our Moai.

Pulling edges to make the facial features.

Consider the image below:

We have continued to mold the facial features out by selecting edges on the object and pulling them out.  This way, we turn the very narrow features we created by pulling on vertices into wider features that begin to resemble a face.

There is a general concept here: manipulating vertices, edges, and faces.

With polygon modeling, we create an object out of a mesh of polygons.  To craft the model, we can select vertices (where edges of polygons meet), edges (the lines that form polygons), and faces (the surfaces of the polygons themselves) and push/pull them to craft out model from a geometric primitive – in this case, a cylinder that has been sliced in half.

More next time.


May 24, 2011  10:37 PM

Straight line 3D modeling with polygons, part 3



Posted by: Roger King

Please note that you can also read this blog entry on the website I maintain for my animation students at the University of Colorado in Boulder: wordsbybuzz.com.

I have not posted to this blog for over 2 weeks because I was in Chile having a great time. But I am back now.

Creating 3D models with Autodesk Maya.

In five recent postings, (12345), we looked at the simple, powerful mathematical techniques that underly the specification of curved lines in 3D graphics and how they are used to create 3D models.

In the last two postings (67), we turned to straight lines, and how 3D models can be built entirely out of 2D straight lines, using polygons.  We also looked at the minimal information a graphics or animation application must manage in order to unambiguously represent a 3D object created with straight line geometry – and we saw that it isn’t very complicated at all.

Manipulating a 3D object.

Today, we begin to look at the process of molding a 3D model out of basic 3D objects provided by most 3D modeling and/or animation applications.

Recently, I went to Rapa Nui, also known as Easter Island, which is a five hour ride on a jetliner from the coast of Chile.  Over a period of several hundred years, dating back to about the year 1000, the indigenous inhabitants of the island created giant stone statues called Moia.  They consist of heads or upper bodies (including heads), and for the most part are flat in the back.  Here is a photo of a few of them, taken from michaelshull.me:

On my way back from Chile, I hunkered down in my coach seat with my 17 inch Macbook Pro and created a model of one.

A Moai model created with Autodesk Maya.

Consider the following image, which is the beginnings of the Moai’s face.  It is a cylinder with its back sliced off flat, and the bottom of it pulled out to make the chin:

I created this by selecting the bottom semi-circle of the sliced cylinder and pulling it outward.

That’s the first lesson:

We can craft a model by dragging vertices, edges, or faces of polygon obects.

The next thing I wanted to do was to pull the nose out of the face.

Here is our second lesson:

When taking a Maya primitive (in this case, a cylinder) and crafting a model with it, you create detailed geometry when and only when you need it.

Consider this image:

You see that I inserted what is called an “edge loop” that adds geometry about 2/3 of the way down the face.  It is in orange in the image above.  This is what will become our nose.

More next time…


May 8, 2011  1:55 AM

Straight line 3D modeling with polygons, part 2



Posted by: Roger King

Note: this blog entry also appears in the blog I maintain for my animation students.  I have had some trouble with inserting images properly in this ITKE blog.  So, please view this entry at: wordsbybuzz.com.

In five recent postings, (12345), we looked at the simple, powerful mathematical techniques that underly the specification of curved lines in 3D graphics and how they are used to create 3D models.

Modeling with straight lines.

In the last posting (6), we turned to straight lines, and how 3D models can be built entirely out of 2D straight lines, using polygons.

Representing models inside the graphics application.

Today, we look at the way a 3D model can be specified inside a 3D product design, CAD, or animation application.

A reminder: non-angular objects.

As a reminder, we can obviously represent angular objects, like straight back chairs this way, but we can also represent smooth objects, like balls, if we increase the number of polygons until the model looks smooth:

Straight line modeling: coordinates and lines.

How are 3D models represented internally?

And how are they manipulated into dogs and rocket ships?

Let’s consider the first question.  In the next posting, we’ll consider the second question.

The minimal information we need to unambiguously represent a 3D model made entirely out of straight lines is a set of 3D coordinates, along with a set of lines, each beginning and ending with coordinates from this set.

In formal notation.

To put that in mathematical notation, consider the following:

It is as simple as that: a set of points and a set of lines.

Indeed, that’s all we need to specify a model such as this:

But we don’t create objects by laying down points and edges between the points and crafting things out of sticks.  We start with larger things, prefab 3D objects, and deform them to create models.

Next time, we’ll come back to this and look at how, inside an application, we can represent the process of molding the shape of an object.

As a hint, we start with a set of 3D points, along with the edges that connect them, and then we start pushing and pulling points, edges, and polygon surfaces to form the desired shape.  That’s how we can take the ball above, a basic modeling primitive, and turn it into Micky Mouse’s head.


May 3, 2011  2:31 AM

Straight line 3D modeling with polygons, part 1



Posted by: Roger King

I have had some trouble embedding images on this ITKE blog, so to see this blog entry properly formatted, with images, please view it on the blog I keep for my animation students: wordsbybuzz.com.

Curved line 3D modeling.

In five recent postings, (12345), we looked at the simple, powerful mathematical techniques that underly the specification of curved lines in 3D graphics and how they are used to create surfaces and objects.

Straight line 3D modeling.

Today, we look at modeling 3D objects with straight lines, not curved lines.  This is called polygon modeling, because the surfaces of objects are created out of flat, 2D polygons, usually of 3 and 4 sides.

Look at this:

This is a sphere, created with straight lines.  We see a problem with it, of course.  It’s not very smooth.

Consider this one:

This sphere has the same overall size, but much denser geometry.  This is one way that we can create smooth, seemingly curved objects by using straight line polygon modeling: increasing the number of vertices and lines until the object looks smooth to a human viewing the sphere on a computer display or a movie screen.

An advantage of straight lines.

There is an advantage to doing it this way, instead of using curved lines, which produce smooth objects, no matter how few vertices and (curved) edges are involved.  It is computationally simpler to represent models by using straight lines, and that makes it faster to deform them (to make a human head, for instance).  This shortens rendering time when it comes to generating video of animated objects (objects in motion).

And rendering times can turn a seemingly simple animation project into an intractable effort.

A more subtle advantage.

There is another advantage, too, and this one seems almost ironic.  While it may seem natural to model curved objects with curved lines, this doesn’t mix well with graphics cards. The rendering process consists of software that sits on top of computer hardware, of course, with low level rendering being performed by graphics cards.  And these cards want to render objects with straight lines anyway.

In other words, if you model with curved lines, the object has to be translated into straight line geometry at the time it is handed off by the software to the graphics card, anyway.  So it is all the slower to start with curved lined objects and then deform, animate, and render.

More next time…


April 22, 2011  9:53 PM

Perfect curves: Bezier, part 5



Posted by: Roger King

NOTE: I have been having a lot of trouble inserting images into this ITKE blog.  To properly view this blog entry – with images – please click here and read it on the blog I keep for my animation students. Curves in graphics and animation.

Curves in graphics and animation.

In the previous 4 postings, (1234), we looked a the simple, powerful mathematical techniques that underly the specification of curved lines in 3D graphics.  Today we look at one use of curved lines in the specification of 3D models.

Here are two curves.

One is simply a copy of the other.

They were both created with Autodesk, the arguably most popular and powerful 3D animation application in wide use.

(As we saw in previous postings, NURBS curves are very similar to Bezier curves, and because they are somewhat more precise, they tend to be used in more powerful graphics and animation applications.)

Loft.

Now, with one click on a menu item labelled Loft, we get the following:

Now, we can put a surface on this wireframe and get a boat hull:

A boat hull reshaped.

Now, we can go back to those curves and reshape them in order to refine the shape of the hull – and all we have to do is work with the curves in order to craft what might be the front of the boat hull.

This can be done in a few seconds!


April 15, 2011  8:19 PM

Perfect curves: Bezier, part 4



Posted by: Roger King

I have had some problems posting images in this ITKE blog, so please click here to view this blog, with proper images, in the blog I keep for my 3D animation students at the University of Colorado:

In three previous postings of this blog (see 123), we’ve looked at how the compact, precise technique of Bezier and NURBS mathematics is used as the basis for specifying curves in graphical and animation applications.

Modeling with curves.

In this posting, we will look at one of the ways that curves are used as powerful modeling techniques by graphic artists and animators.  Consider the image below:

A NURBS curve.

This shows the four main design views that are used in the extremely popular Maya 3D animation application.  It is a curve drawn with a handful of mouse clicks and then transformed internally by Maya into a NURBS curve.

Revolving the curve.

Now look at this figure:

This is what happens when Maya is told to revolve this curve through 3-space.  Since the lower right view is flattened along the x axis, we see precisely the shape that results from the revolution.  Keep in mind that this revolution is done with a single command.

A bottle!

We see in the upper right what this shape looks like when viewed with perspective.

Now, look at this:

This was done with a couple of simple commands.  We put a material on the shape and colored it blue.

See how easily we made a perfectly smooth bottle out of a simple curve?

More next time.


Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to: