I have a very large dataset of HTML tables (extracted originally from Wikipedia). I want to extract meaningful tripleSet from each of these tables (This is not to be conflicted with extracting triples from wikipedia infoboxes which is relatively a lot easier task). 

The triples has to be semantically meaningful, to the humans, not like DBpedia where triples are extracted to be URIs and other formats. So I am ok with just extracting the table text values.

Keep in mind the variety of table orientation and shapes.
The main task I see is to extract the main Entity of the table records (The student name in a school record for example), so that it can be used as the triple's "Subject".

**Example**
![enter image description here](https://i.stack.imgur.com/qwfJ8.png)

for a table like this, we should know the main entity is "Server" and the others are only objects, so relations should be like: 

```
<AOLserver> <Developed by> <NaviSoft>.
<AOLserver> <Open Source> <Yes>.
<AOLserver> <Software license> <Mozilla>.
<AOLserver> <Last stable version> <4.5.1>.
<AOLserver> <Release date> <2009-02-02>.

```

Also, keep in mind that not always the main Entity lies in the First column of the table, there's even tables that are not by any means talk about the same subject.

This is a table where the main Entity is the last column not the first:

![enter image description here](https://i.stack.imgur.com/OY38q.png)

This table should generate relations like: 

```
<Arsène Wenger> <Position> <Manager>.
<Steve Bould> <Position> <Assistant manager>

```

**Questions**

My first question is can this be done using rule based methods, to craft some rules around examples and try to generalize so that I can detect the right Entity? can you suggest example rules?

Second question is about evaluation, how can I evaluate such a system? how can I measure my performance, so that I can enhance it?