You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@any23.apache.org by le...@apache.org on 2017/12/19 12:45:20 UTC

[1/3] any23 git commit: ANY23-298 Revisit the OGP.java vocabulary and update it

Repository: any23
Updated Branches:
  refs/heads/master f44be91f9 -> 2b91bbf42


ANY23-298 Revisit the OGP.java vocabulary and update it


Project: http://git-wip-us.apache.org/repos/asf/any23/repo
Commit: http://git-wip-us.apache.org/repos/asf/any23/commit/025fccd6
Tree: http://git-wip-us.apache.org/repos/asf/any23/tree/025fccd6
Diff: http://git-wip-us.apache.org/repos/asf/any23/diff/025fccd6

Branch: refs/heads/master
Commit: 025fccd62312d6196e38ccc352668cc765c287cf
Parents: bcd87e5
Author: Lewis John McGibbney <le...@gmail.com>
Authored: Wed Dec 13 10:26:04 2017 -0800
Committer: Lewis John McGibbney <le...@gmail.com>
Committed: Wed Dec 13 10:26:04 2017 -0800

----------------------------------------------------------------------
 .../main/java/org/apache/any23/vocab/OGP.java   | 160 +++++++++++++++++--
 .../java/org/apache/any23/vocab/OGPArticle.java |  83 ++++++++++
 .../java/org/apache/any23/vocab/OGPBook.java    |  75 +++++++++
 .../java/org/apache/any23/vocab/OGPMusic.java   | 110 +++++++++++++
 .../java/org/apache/any23/vocab/OGPProfile.java |  75 +++++++++
 .../java/org/apache/any23/vocab/OGPVideo.java   |  90 +++++++++++
 .../rdfa/AbstractRDFaExtractorTestCase.java     |   1 -
 .../extractor/rdfa/RDFa11ExtractorTest.java     |  48 ++++--
 .../apache/any23/vocab/RDFSchemaUtilsTest.java  |   4 +-
 .../rdfa/opengraph-music-song-object-type.html  |  18 +++
 .../rdfa/opengraph-structured-properties.html   |  67 ++++++--
 11 files changed, 701 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/any23/blob/025fccd6/api/src/main/java/org/apache/any23/vocab/OGP.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/any23/vocab/OGP.java b/api/src/main/java/org/apache/any23/vocab/OGP.java
index dde75bb..503cd08 100644
--- a/api/src/main/java/org/apache/any23/vocab/OGP.java
+++ b/api/src/main/java/org/apache/any23/vocab/OGP.java
@@ -26,18 +26,26 @@ import org.eclipse.rdf4j.model.IRI;
  */
 public class OGP extends Vocabulary {
 
+    private OGP() {
+        super(NS);
+    }
+
     public static final String NS = "http://ogp.me/ns#";
     
     /* BEGIN: Basic Metadata. */
 
-    /** The title of your object as it should appear within the graph (Facebook Graph API). */
+    /** The title of your object as it should appear within the graph, e.g., "The Rock". */
     public static final String TITLE = "title";
-    /** The type of your object, e.g., <code>video.movie</code>.
-     *  Depending on the type you specify, other properties may also be required. */
+
+    /** The type of your object, e.g., "video.movie". Depending on the 
+     * type you specify, other properties may also be required. */
     public static final String TYPE  = "type";
-    /** An image URL which should represent your object within the graph. */
+
+    /** The canonical URL of your object that will be used as its permanent ID in the 
+     * graph, e.g., "http://www.imdb.com/title/tt0117500/". */
     public static final String URL   = "url";
-    /** The canonical URL of your object that will be used as its permanent ID in the graph (Facebook Graph API). */
+
+    /** An image URL which should represent your object within the graph. */
     public static final String IMAGE = "image";
 
     /* END: Basic Metadata. */
@@ -46,19 +54,25 @@ public class OGP extends Vocabulary {
 
     /** A URL to an audio file to accompany this object. */
     public static final String AUDIO = "audio";
+
     /** A one to two sentence description of your object. */
     public static final String DESCRIPTION = "description";
+
     /** The word that appears before this object's title in a sentence. An enum of (a, an, the, "", auto).
      *  If auto is chosen, the consumer of your data should chose between "a" or "an". Default is "" (blank). */
     public static final String DETERMINER = "determiner";
+
     /** The locale these tags are marked up in. Of the format <code>language_TERRITORY</code>.
      *  Default is <code>en_US</code>. */
     public static final String LOCALE = "locale";
+
     /** An array of other locales this page is available in. */
     public static final String LOCALE__ALTERNATE = "locale:alternate";
+
     /** If your object is part of a larger web site, the name which should be
      *  displayed for the overall site. e.g., <b>IMDb</b>. */
     public static final String SITE_NAME = "site_name";
+
     /** A URL to a video file that complements this object. */
     public static final String VIDEO = "video";
 
@@ -68,33 +82,135 @@ public class OGP extends Vocabulary {
 
     /** Identical to <code>og:image</code>. */
     public static final String IMAGE__URL        = "image:url";
+
     /** An alternate url to use if the webpage requires <b>HTTPS</b>. */
     public static final String IMAGE__SECURE_URL = "image:secure_url";
+
     /** A <i>MIME type</i> for this image. */
     public static final String IMAGE__TYPE       = "image:type";
+
     /** The number of pixels wide. */
     public static final String IMAGE__WIDTH      = "image:width";
+
     /** The number of pixels high. */
     public static final String IMAGE__HEIGHT     = "image:height";
 
+    /** A description of what is in the image (not a caption). 
+     * If the page specifies an og:image it should specify og:image:alt.*/
+    public static final String IMAGE__ALT        = "image:alt";
+
     /** Video URL. */
     public static final String VIDEO__URL        = "video:url";
+
     /** An alternate url to use if the webpage requires <b>HTTPS</b>. */
     public static final String VIDEO__SECURE_URL = "video:secure_url";
+
     /** A <i>MIME type</i> for this video. */
     public static final String VIDEO__TYPE       = "video:type";
+
     /** The number of pixels wide. */
     public static final String VIDEO__WIDTH      = "video:width";
+
     /** The number of pixels height. */
     public static final String VIDEO__HEIGHT     = "video:height";
 
+    /** A description of what is in the video (not a caption). 
+     * If the page specifies an og:video it should specify og:video:alt.*/
+    public static final String VIDEO__ALT        = "video:alt";
+
     /** An alternate url to use if the webpage requires <b>HTTPS</b>. */
     public static final String AUDIO__SECURE_URL = "audio:secure_url";
+
     /** A <i>MIME type</i> for this audio. */
     public static final String AUDIO__TYPE       = "audio:type";
 
+    /** A description of what is in the audio file (not a caption). 
+     * If the page specifies an og:audio it should specify og:audio:alt.*/
+    public static final String AUDIO__ALT        = "audio:alt";
+
     /* END: Structured Properties. */
 
+    /* BEGIN: ogp.me/#type_video.movie */
+
+    /** Actors in the movie. */
+    public static final String VIDEO__ACTOR      = "video:actor";
+
+    /** The role they played. */
+    public static final String VIDEO__ACTOR_ROLE = "video:actor:role";
+
+    /** Directors of the movie. */
+    public static final String VIDEO__DIRECTOR   = "video:director";
+
+    /** Writers of the movie. */
+    public static final String VIDEO__WRITER     = "video:writer";
+
+    /** The movie's length in seconds. */
+    public static final String VIDEO__DURATION   = "video:duration";
+
+    /** The date the movie was released. */
+    public static final String VIDEO__RELEASE_DATE = "video:release_date";
+
+    /** Tag words associated with this movie. */
+    public static final String VIDEO__TAG        = "video:tag";
+
+    /** Which series this episode belongs to. */
+    public static final String VIDEO__SERIES     = "video:series";
+    /* END: ogp.me/#type_video.movie */
+
+    /* BEGIN: http://ogp.me/#type_article */
+
+    /** When the article was first published. */
+    public static final String ARTICLE__PUBLISHED_TIME = "article:published_time";
+
+    /** When the article was last changed. */
+    public static final String ARTICLE__MODIFIED_TIME = "article:modified_time";
+
+    /** When the article is out of date after. */
+    public static final String ARTICLE__EXPIRATION_TIME = "article:expiration_time";
+
+    /** Writers of the article. */
+    public static final String ARTICLE__AUTHOR   = "article:author";
+
+    /** A high-level section name. E.g. Technology */
+    public static final String ARTICLE__SECTION  = "article:section";
+
+    /** Tag words associated with this article. */
+    public static final String ARTICLE__TAG      = "article:tag";
+
+    /* END: http://ogp.me/#type_article */
+
+    /* BEGIN: http://ogp.me/#type_book */
+
+    /** Who wrote this book. */
+    public static final String BOOK__AUTHOR     = "book:author";
+
+    /** The ISBN */
+    public static final String BOOK__ISBN       = "book:isbn";
+
+    /** The date the book was released. */
+    public static final String BOOK__RELEASE_DATE = "book:release_date";
+
+    /** Tag words associated with this book. */
+    public static final String BOOK__TAG       = "book:tag";
+
+    /* END: http://ogp.me/#type_book */
+
+    /* BEGIN: http://ogp.me/#type_profile */
+
+    /** A name normally given to an individual by a parent or self-chosen. */
+    public static final String PROFILE__FIRST_NAME = "profile:first_name";
+
+    /** A name inherited from a family or marriage and by which the individual is commonly known. */
+    public static final String PROFILE__LAST_NAME = "profile:last_name";
+
+    /** A short unique string to identify them. */
+    public static final String PROFILE__USERNAME  = "profile:username";
+
+    /** Their gender. */
+    public static final String PROFILE__GENDER    = "profile:gender";
+
+    /* END: http://ogp.me/#type_profile */
+
     private static OGP instance;
 
     public static OGP getInstance() {
@@ -123,17 +239,47 @@ public class OGP extends Vocabulary {
     public final IRI imageType      = createProperty(IMAGE__TYPE);
     public final IRI imageWidth     = createProperty(IMAGE__WIDTH);
     public final IRI imageHeight    = createProperty(IMAGE__HEIGHT);
+    public final IRI imageAlt       = createProperty(IMAGE__ALT);
 
     public final IRI videoURL       = createProperty(VIDEO__URL);
     public final IRI videoSecureURL = createProperty(VIDEO__SECURE_URL);
     public final IRI videoType      = createProperty(VIDEO__TYPE);
     public final IRI videoWidth     = createProperty(VIDEO__WIDTH);
     public final IRI videoHeight    = createProperty(VIDEO__HEIGHT);
+    public final IRI videoAlt       = createProperty(VIDEO__ALT);
 
     public final IRI audio          = createProperty(AUDIO);
     public final IRI audioSecureURL = createProperty(AUDIO__SECURE_URL);
     public final IRI audioType      = createProperty(AUDIO__TYPE);
+    public final IRI audioAlt       = createProperty(AUDIO__ALT);
+    
+    public final IRI videoActor     = createProperty(VIDEO__ACTOR);
+    public final IRI videoActorRole = createProperty(VIDEO__ACTOR_ROLE);
+    public final IRI videoDirector  = createProperty(VIDEO__DIRECTOR);
+    public final IRI videoWriter    = createProperty(VIDEO__WRITER);
+    public final IRI videoDuration  = createProperty(VIDEO__DURATION);
+    public final IRI videoReleaseDate = createProperty(VIDEO__RELEASE_DATE);
+    public final IRI videoTag       = createProperty(VIDEO__TAG);
+    public final IRI videoSeries    = createProperty(VIDEO__SERIES);
+
+    public final IRI articlePublishedTime = createProperty(ARTICLE__PUBLISHED_TIME);
+    public final IRI articleModifiedTime = createProperty(ARTICLE__MODIFIED_TIME);
+    public final IRI articleExpirationTime = createProperty(ARTICLE__EXPIRATION_TIME);
+    public final IRI articleAuthor  = createProperty(ARTICLE__AUTHOR);
+    public final IRI articleSection = createProperty(ARTICLE__SECTION);
+    public final IRI articleTag     = createProperty(ARTICLE__TAG);
+
+    public final IRI bookAuthor     = createProperty(BOOK__AUTHOR);
+    public final IRI bookIsbn       = createProperty(BOOK__ISBN);
+    public final IRI bookReleaseDate = createProperty(BOOK__RELEASE_DATE);
+    public final IRI bookTag        = createProperty(BOOK__TAG);
+    
+    public final IRI profileFirstName = createProperty(PROFILE__FIRST_NAME);
+    public final IRI profileLastName = createProperty(PROFILE__LAST_NAME);
+    public final IRI profileUsername = createProperty(PROFILE__USERNAME);
+    public final IRI profileGender  = createProperty(PROFILE__GENDER);
 
+    @SuppressWarnings("unused")
     private IRI createClass(String localName) {
         return createClass(NS, localName);
     }
@@ -142,8 +288,4 @@ public class OGP extends Vocabulary {
         return createProperty(NS, localName);
     }
 
-    private OGP() {
-        super(NS);
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/any23/blob/025fccd6/api/src/main/java/org/apache/any23/vocab/OGPArticle.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/any23/vocab/OGPArticle.java b/api/src/main/java/org/apache/any23/vocab/OGPArticle.java
new file mode 100644
index 0000000..0381bd4
--- /dev/null
+++ b/api/src/main/java/org/apache/any23/vocab/OGPArticle.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.any23.vocab;
+
+import org.eclipse.rdf4j.model.IRI;
+
+/**
+ * The <a href="http://ogp.me/">Open Graph Protocol Article Type</a> 
+ * vocabulary.
+ */
+public class OGPArticle extends Vocabulary {
+
+    private OGPArticle() {
+        super(NS);
+    }
+
+    public static final String NS = "http://ogp.me/ns/article#";
+
+    /* BEGIN: http://ogp.me/#type_article */
+
+    /** When the article was first published. */
+    public static final String ARTICLE__PUBLISHED_TIME = "article:published_time";
+
+    /** When the article was last changed. */
+    public static final String ARTICLE__MODIFIED_TIME = "article:modified_time";
+
+    /** When the article is out of date after. */
+    public static final String ARTICLE__EXPIRATION_TIME = "article:expiration_time";
+
+    /** Writers of the article. */
+    public static final String ARTICLE__AUTHOR   = "article:author";
+
+    /** A high-level section name. E.g. Technology */
+    public static final String ARTICLE__SECTION  = "article:section";
+
+    /** Tag words associated with this article. */
+    public static final String ARTICLE__TAG      = "article:tag";
+
+    /* END: http://ogp.me/#type_article */
+
+    private static OGPArticle instance;
+
+    public static OGPArticle getInstance() {
+        if(instance == null) {
+            instance = new OGPArticle();
+        }
+        return instance;
+    }
+
+    public final IRI NAMESPACE = createIRI(NS);
+
+    public final IRI articlePublishedTime = createProperty(ARTICLE__PUBLISHED_TIME);
+    public final IRI articleModifiedTime = createProperty(ARTICLE__MODIFIED_TIME);
+    public final IRI articleExpirationTime = createProperty(ARTICLE__EXPIRATION_TIME);
+    public final IRI articleAuthor  = createProperty(ARTICLE__AUTHOR);
+    public final IRI articleSection = createProperty(ARTICLE__SECTION);
+    public final IRI articleTag     = createProperty(ARTICLE__TAG);
+
+    @SuppressWarnings("unused")
+    private IRI createClass(String localName) {
+        return createClass(NS, localName);
+    }
+
+    private IRI createProperty(String localName) {
+        return createProperty(NS, localName);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/any23/blob/025fccd6/api/src/main/java/org/apache/any23/vocab/OGPBook.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/any23/vocab/OGPBook.java b/api/src/main/java/org/apache/any23/vocab/OGPBook.java
new file mode 100644
index 0000000..2f2debc
--- /dev/null
+++ b/api/src/main/java/org/apache/any23/vocab/OGPBook.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.any23.vocab;
+
+import org.eclipse.rdf4j.model.IRI;
+
+/**
+ * The <a href="http://ogp.me/#type_book">Open Graph Protocol Book Type</a> 
+ * vocabulary.
+ */
+public class OGPBook extends Vocabulary {
+
+    private OGPBook() {
+        super(NS);
+    }
+
+    public static final String NS = "http://ogp.me/ns/book#";
+
+    /* BEGIN: http://ogp.me/#type_book */
+
+    /** Who wrote this book. */
+    public static final String BOOK__AUTHOR     = "book:author";
+
+    /** The ISBN */
+    public static final String BOOK__ISBN       = "book:isbn";
+
+    /** The date the book was released. */
+    public static final String BOOK__RELEASE_DATE = "book:release_date";
+
+    /** Tag words associated with this book. */
+    public static final String BOOK__TAG       = "book:tag";
+
+    /* END: http://ogp.me/#type_book */
+
+    private static OGPBook instance;
+
+    public static OGPBook getInstance() {
+        if(instance == null) {
+            instance = new OGPBook();
+        }
+        return instance;
+    }
+
+    public final IRI NAMESPACE = createIRI(NS);
+
+    public final IRI bookAuthor     = createProperty(BOOK__AUTHOR);
+    public final IRI bookIsbn       = createProperty(BOOK__ISBN);
+    public final IRI bookReleaseDate = createProperty(BOOK__RELEASE_DATE);
+    public final IRI bookTag        = createProperty(BOOK__TAG);
+
+    @SuppressWarnings("unused")
+    private IRI createClass(String localName) {
+        return createClass(NS, localName);
+    }
+
+    private IRI createProperty(String localName) {
+        return createProperty(NS, localName);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/any23/blob/025fccd6/api/src/main/java/org/apache/any23/vocab/OGPMusic.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/any23/vocab/OGPMusic.java b/api/src/main/java/org/apache/any23/vocab/OGPMusic.java
new file mode 100644
index 0000000..405b85e
--- /dev/null
+++ b/api/src/main/java/org/apache/any23/vocab/OGPMusic.java
@@ -0,0 +1,110 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.any23.vocab;
+
+import org.eclipse.rdf4j.model.IRI;
+
+/**
+ * The <a href="http://ogp.me/#type_music">Open Graph Protocol Music Type</a> 
+ * vocabulary.
+ *
+ */
+public class OGPMusic extends Vocabulary {
+
+    private OGPMusic() {
+        super(NS);
+    }
+
+    public static final String NS = "http://ogp.me/ns/music#";
+
+    /* BEGIN: http://ogp.me/#type_music.song */
+
+    /** The song's length in seconds. */
+    public static final String MUSIC__DURATION   = "music:duration";
+
+    /** The album this song is from. */
+    public static final String MUSIC__ALBUM      = "music:album";
+
+    /** Which disc of the album this song is on. */
+    public static final String MUSIC__ALBUM_DISC = "music:album:disc";
+
+    /** Which disc of the album this song is on. */
+    public static final String MUSIC__ALBUM_TRACK = "music:album:track";
+
+    /** Which disc of the album this song is on. */
+    public static final String MUSIC__MUSICIAN    = "music:musician";
+
+    /* END: http://ogp.me/#type_music.song */
+
+    /* BEGIN: http://ogp.me/#type_music.album */
+
+    /** The song on this album. */
+    public static final String MUSIC__SONG       = "music:song";
+
+    /** The same as music:album:disc but in reverse. */
+    public static final String MUSIC__SONG_DISC  = "music:song:disc";
+
+    /** The same as music:album:track but in reverse. */
+    public static final String MUSIC__SONG_TRACK = "music:song:track";
+
+    /** The date the album was released. */
+    public static final String MUSIC__RELEASE_DATE = "music:release_date";
+
+    /* END: http://ogp.me/#type_music.album */
+
+    /* BEGIN: http://ogp.me/#type_music.playlist */
+
+    /** The creator of this playlist if 'music.playlist' or the 
+     * creator of this station if 'music.radio_station' */
+    public static final String MUSIC__CREATOR    = "music:creator";
+
+    /* END: http://ogp.me/#type_music.playlist */
+
+    private static OGPMusic instance;
+
+    public static OGPMusic getInstance() {
+        if(instance == null) {
+            instance = new OGPMusic();
+        }
+        return instance;
+    }
+
+    public final IRI NAMESPACE = createIRI(NS);
+
+    public final IRI musicDuration  = createProperty(MUSIC__DURATION);
+    public final IRI musicAlbum     = createProperty(MUSIC__ALBUM);
+    public final IRI musicAlbumDisc = createProperty(MUSIC__ALBUM_DISC);
+    public final IRI musicAlbumTrack = createProperty(MUSIC__ALBUM_TRACK);
+    public final IRI musicMusician  = createProperty(MUSIC__MUSICIAN);
+    
+    public final IRI musicSong      = createProperty(MUSIC__SONG);
+    public final IRI musicSongDisc  = createProperty(MUSIC__SONG_DISC);
+    public final IRI musicSongTrack = createProperty(MUSIC__SONG_TRACK);
+    public final IRI musicReleaseDate = createProperty(MUSIC__RELEASE_DATE);
+    
+    public final IRI musicCreator   = createProperty(MUSIC__CREATOR);
+
+    @SuppressWarnings("unused")
+    private IRI createClass(String localName) {
+        return createClass(NS, localName);
+    }
+
+    private IRI createProperty(String localName) {
+        return createProperty(NS, localName);
+    }
+}

http://git-wip-us.apache.org/repos/asf/any23/blob/025fccd6/api/src/main/java/org/apache/any23/vocab/OGPProfile.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/any23/vocab/OGPProfile.java b/api/src/main/java/org/apache/any23/vocab/OGPProfile.java
new file mode 100644
index 0000000..48b0b3b
--- /dev/null
+++ b/api/src/main/java/org/apache/any23/vocab/OGPProfile.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.any23.vocab;
+
+import org.eclipse.rdf4j.model.IRI;
+
+/**
+ * The <a href="http://ogp.me/">Open Graph Protocol Profile Type</a> 
+ * vocabulary.
+ */
+public class OGPProfile extends Vocabulary {
+
+    private OGPProfile() {
+        super(NS);
+    }
+
+    public static final String NS = "http://ogp.me/ns/profile#";
+
+    /* BEGIN: http://ogp.me/#type_profile */
+
+    /** A name normally given to an individual by a parent or self-chosen. */
+    public static final String PROFILE__FIRST_NAME = "profile:first_name";
+
+    /** A name inherited from a family or marriage and by which the individual is commonly known. */
+    public static final String PROFILE__LAST_NAME = "profile:last_name";
+
+    /** A short unique string to identify them. */
+    public static final String PROFILE__USERNAME  = "profile:username";
+
+    /** Their gender. */
+    public static final String PROFILE__GENDER    = "profile:gender";
+
+    /* END: http://ogp.me/#type_profile */
+
+    private static OGPProfile instance;
+
+    public static OGPProfile getInstance() {
+        if(instance == null) {
+            instance = new OGPProfile();
+        }
+        return instance;
+    }
+
+    public final IRI NAMESPACE = createIRI(NS);
+
+    public final IRI profileFirstName = createProperty(PROFILE__FIRST_NAME);
+    public final IRI profileLastName = createProperty(PROFILE__LAST_NAME);
+    public final IRI profileUsername = createProperty(PROFILE__USERNAME);
+    public final IRI profileGender  = createProperty(PROFILE__GENDER);
+
+    @SuppressWarnings("unused")
+    private IRI createClass(String localName) {
+        return createClass(NS, localName);
+    }
+
+    private IRI createProperty(String localName) {
+        return createProperty(NS, localName);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/any23/blob/025fccd6/api/src/main/java/org/apache/any23/vocab/OGPVideo.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/any23/vocab/OGPVideo.java b/api/src/main/java/org/apache/any23/vocab/OGPVideo.java
new file mode 100644
index 0000000..774c7fd
--- /dev/null
+++ b/api/src/main/java/org/apache/any23/vocab/OGPVideo.java
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.any23.vocab;
+
+import org.eclipse.rdf4j.model.IRI;
+
+/**
+ * The <a href="http://ogp.me/#type_video">Open Graph Protocol Video Type</a> 
+ * vocabulary.
+ */
+public class OGPVideo extends Vocabulary {
+
+    private OGPVideo() {
+        super(NS);
+    }
+
+    public static final String NS = "http://ogp.me/ns/video#";
+
+    /* BEGIN: ogp.me/#type_video.movie */
+
+    /** Actors in the movie. */
+    public static final String VIDEO__ACTOR      = "video:actor";
+
+    /** The role they played. */
+    public static final String VIDEO__ACTOR_ROLE = "video:actor:role";
+
+    /** Directors of the movie. */
+    public static final String VIDEO__DIRECTOR   = "video:director";
+
+    /** Writers of the movie. */
+    public static final String VIDEO__WRITER     = "video:writer";
+
+    /** The movie's length in seconds. */
+    public static final String VIDEO__DURATION   = "video:duration";
+
+    /** The date the movie was released. */
+    public static final String VIDEO__RELEASE_DATE = "video:release_date";
+
+    /** Tag words associated with this movie. */
+    public static final String VIDEO__TAG        = "video:tag";
+
+    /** Which series this episode belongs to. */
+    public static final String VIDEO__SERIES     = "video:series";
+    /* END: ogp.me/#type_video.movie */
+
+    private static OGPVideo instance;
+
+    public static OGPVideo getInstance() {
+        if(instance == null) {
+            instance = new OGPVideo();
+        }
+        return instance;
+    }
+
+    public final IRI NAMESPACE = createIRI(NS);
+
+    public final IRI videoActor     = createProperty(VIDEO__ACTOR);
+    public final IRI videoActorRole = createProperty(VIDEO__ACTOR_ROLE);
+    public final IRI videoDirector  = createProperty(VIDEO__DIRECTOR);
+    public final IRI videoWriter    = createProperty(VIDEO__WRITER);
+    public final IRI videoDuration  = createProperty(VIDEO__DURATION);
+    public final IRI videoReleaseDate = createProperty(VIDEO__RELEASE_DATE);
+    public final IRI videoTag       = createProperty(VIDEO__TAG);
+    public final IRI videoSeries    = createProperty(VIDEO__SERIES);
+
+    @SuppressWarnings("unused")
+    private IRI createClass(String localName) {
+        return createClass(NS, localName);
+    }
+
+    private IRI createProperty(String localName) {
+        return createProperty(NS, localName);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/any23/blob/025fccd6/core/src/test/java/org/apache/any23/extractor/rdfa/AbstractRDFaExtractorTestCase.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/extractor/rdfa/AbstractRDFaExtractorTestCase.java b/core/src/test/java/org/apache/any23/extractor/rdfa/AbstractRDFaExtractorTestCase.java
index 0e31b33..a187077 100644
--- a/core/src/test/java/org/apache/any23/extractor/rdfa/AbstractRDFaExtractorTestCase.java
+++ b/core/src/test/java/org/apache/any23/extractor/rdfa/AbstractRDFaExtractorTestCase.java
@@ -21,7 +21,6 @@ import org.apache.any23.extractor.html.AbstractExtractorTestCase;
 import org.apache.any23.rdf.RDFUtils;
 import org.apache.any23.vocab.DCTerms;
 import org.apache.any23.vocab.FOAF;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

http://git-wip-us.apache.org/repos/asf/any23/blob/025fccd6/core/src/test/java/org/apache/any23/extractor/rdfa/RDFa11ExtractorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/extractor/rdfa/RDFa11ExtractorTest.java b/core/src/test/java/org/apache/any23/extractor/rdfa/RDFa11ExtractorTest.java
index 67f3f8c..d2034b3 100644
--- a/core/src/test/java/org/apache/any23/extractor/rdfa/RDFa11ExtractorTest.java
+++ b/core/src/test/java/org/apache/any23/extractor/rdfa/RDFa11ExtractorTest.java
@@ -22,6 +22,7 @@ import org.apache.any23.extractor.ExtractorFactory;
 import org.apache.any23.rdf.RDFUtils;
 import org.apache.any23.vocab.FOAF;
 import org.apache.any23.vocab.OGP;
+import org.apache.any23.vocab.OGPMusic;
 import org.junit.Assert;
 import org.junit.Test;
 import org.eclipse.rdf4j.model.Literal;
@@ -98,12 +99,12 @@ public class RDFa11ExtractorTest extends AbstractRDFaExtractorTestCase {
         logger.debug(dumpModelToTurtle());
 
         assertContains(
-                RDFUtils.uri( baseIRI.toString(),"#me"),
+                RDFUtils.iri( baseIRI.toString(),"#me"),
                 FOAF.getInstance().name,
                 "John Doe"
         );
         assertContains(
-                RDFUtils.uri( baseIRI.toString(),"#me"),
+                RDFUtils.iri( baseIRI.toString(),"#me"),
                 FOAF.getInstance().homepage,
                 RDFUtils.iri("http://example.org/blog/")
         );
@@ -142,12 +143,12 @@ public class RDFa11ExtractorTest extends AbstractRDFaExtractorTestCase {
         logger.debug(dumpModelToTurtle());
 
         assertContains(
-                RDFUtils.uri(baseIRI.toString(), "#me"),
+                RDFUtils.iri(baseIRI.toString(), "#me"),
                 RDFUtils.iri("http://xmlns.com/foaf/0.1/name"),
                 RDFUtils.literal("John Doe")
         );
         assertContains(
-                RDFUtils.uri(baseIRI.toString(), "#me"),
+                RDFUtils.iri(baseIRI.toString(), "#me"),
                 RDFUtils.iri("http://xmlns.com/foaf/0.1/homepage"),
                 RDFUtils.iri("http://example.org/blog/")
         );
@@ -204,8 +205,11 @@ public class RDFa11ExtractorTest extends AbstractRDFaExtractorTestCase {
     }
 
     /**
-     * Tests the correct support of the new <em>Open Graph Protocol</em>
-     * <a href="http://ogp.me/#structured">Structured Properties</a>.
+     * Tests the correct support of <a href="http://ogp.me/">Open Graph Protocol's</a>
+     * <a href="http://ogp.me/#metadata">Basic Metadata</a>, 
+     * <a href="http://ogp.me/#optional">Optional Metadata</a>,
+     * <a href="http://ogp.me/#structured">Structured Properties</a> and
+     * <a href="http://ogp.me/#array">Arrays</a>.
      *
      * @throws IOException
      * @throws org.apache.any23.extractor.ExtractionException
@@ -216,9 +220,9 @@ public class RDFa11ExtractorTest extends AbstractRDFaExtractorTestCase {
         assertExtract("/html/rdfa/opengraph-structured-properties.html");
         logger.info( dumpHumanReadableTriples() );
 
-        Assert.assertEquals(8, getStatementsSize(null, null, null) );
+        Assert.assertEquals(31, getStatementsSize(null, null, null) );
         final OGP vOGP = OGP.getInstance();
-        assertContains(baseIRI, vOGP.audio, RDFUtils.literal("http://example.com/bond/theme.mp3") );
+        assertContains(baseIRI, vOGP.audio, RDFUtils.literal("http://example.com/sound.mp3") );
         assertContains(
                 baseIRI,
                 vOGP.description,
@@ -227,7 +231,7 @@ public class RDFa11ExtractorTest extends AbstractRDFaExtractorTestCase {
                 )
         );
         assertContains(baseIRI, vOGP.determiner, RDFUtils.literal("the") );
-        assertContains(baseIRI, vOGP.locale, RDFUtils.literal("en_UK") );
+        assertContains(baseIRI, vOGP.locale, RDFUtils.literal("en_GB") );
         assertContains(baseIRI, vOGP.localeAlternate, RDFUtils.literal("fr_FR") );
         assertContains(baseIRI, vOGP.localeAlternate, RDFUtils.literal("es_ES") );
         assertContains(baseIRI, vOGP.siteName, RDFUtils.literal("IMDb") );
@@ -239,4 +243,30 @@ public class RDFa11ExtractorTest extends AbstractRDFaExtractorTestCase {
         return new RDFa11ExtractorFactory();
     }
 
+    /**
+     * Tests the correct support of alternate 
+     * <a href="http://ogp.me/#types">Open Graph Protocol Object Types</a>
+     *
+     * @throws IOException
+     * @throws org.apache.any23.extractor.ExtractionException
+     * @throws RepositoryException
+     */
+    @Test
+    public void testOpenGraphAlternateObjectTypes() throws IOException, ExtractionException, RepositoryException {
+        assertExtract("/html/rdfa/opengraph-music-song-object-type.html");
+        logger.info( dumpHumanReadableTriples() );
+
+        Assert.assertEquals(9, getStatementsSize(null, null, null) );
+        final OGPMusic vOGPMusic = OGPMusic.getInstance();
+        assertContains(baseIRI, vOGPMusic.musicDuration, RDFUtils.literal("447") );
+        assertContains(
+                baseIRI,
+                vOGPMusic.musicMusician,
+                RDFUtils.literal(
+                        "Jono Grant / Tony McGuinness / Ashley Tomberlin"
+                )
+        );
+        assertContains(baseIRI, vOGPMusic.musicAlbum, RDFUtils.literal("Tri-State") );
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/any23/blob/025fccd6/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java b/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java
index f1afd4a..9f85c42 100644
--- a/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java
+++ b/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java
@@ -43,7 +43,7 @@ public class RDFSchemaUtilsTest {
      */
     @Test
     public void testSerializeVocabulariesNTriples() {
-        serializeVocabularies(RDFFormat.NTRIPLES, 2102);
+        serializeVocabularies(RDFFormat.NTRIPLES, 2216);
     }
 
     /**
@@ -53,7 +53,7 @@ public class RDFSchemaUtilsTest {
      */
     @Test
     public void testSerializeVocabulariesRDFXML() {
-        serializeVocabularies(RDFFormat.RDFXML, 5489); // Effective lines + separators.
+        serializeVocabularies(RDFFormat.RDFXML, 5804); // Effective lines + separators.
     }
 
     private void serializeVocabularies(RDFFormat format, int expectedLines) {

http://git-wip-us.apache.org/repos/asf/any23/blob/025fccd6/test-resources/src/test/resources/html/rdfa/opengraph-music-song-object-type.html
----------------------------------------------------------------------
diff --git a/test-resources/src/test/resources/html/rdfa/opengraph-music-song-object-type.html b/test-resources/src/test/resources/html/rdfa/opengraph-music-song-object-type.html
new file mode 100644
index 0000000..c7d35ab
--- /dev/null
+++ b/test-resources/src/test/resources/html/rdfa/opengraph-music-song-object-type.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html prefix="og: http://ogp.me/ns/music#" >
+<head>
+<meta charset="UTF-8"/>
+<meta property="og:title" content="Can't Sleep" />
+<meta property="og:type" content="music.song" />
+<meta property="og:image" content="https://cps-static.rovicorp.com/3/JPG_500/MI0002/215/MI0002215458.jpg?partner=allrovi.com" />
+<meta property="og:url" content="https://www.allmusic.com/song/cant-sleep-mt0014803829" />
+<meta property="og:music:duration" content="447" />
+<meta property="og:music:album" content="Tri-State" />
+<meta property="og:music:album:disc" content="1" />
+<meta property="og:music:album:track" content="5" />
+<meta property="og:music:musician" content="Jono Grant / Tony McGuinness / Ashley Tomberlin" />
+</head>
+<body>
+
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/any23/blob/025fccd6/test-resources/src/test/resources/html/rdfa/opengraph-structured-properties.html
----------------------------------------------------------------------
diff --git a/test-resources/src/test/resources/html/rdfa/opengraph-structured-properties.html b/test-resources/src/test/resources/html/rdfa/opengraph-structured-properties.html
index 3cafd8a..365ddac 100644
--- a/test-resources/src/test/resources/html/rdfa/opengraph-structured-properties.html
+++ b/test-resources/src/test/resources/html/rdfa/opengraph-structured-properties.html
@@ -16,15 +16,64 @@
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
 <head>
-    <meta property="og:audio" content="http://example.com/bond/theme.mp3"/>
-    <meta property="og:description"
-          content="Sean Connery found fame and fortune as the suave, sophisticated British agent, James Bond."/>
-    <meta property="og:determiner" content="the"/>
-    <meta property="og:locale" content="en_UK"/>
-    <meta property="og:locale:alternate" content="fr_FR"/>
-    <meta property="og:locale:alternate" content="es_ES"/>
-    <meta property="og:site_name" content="IMDb"/>
-    <meta property="og:video" content="http://example.com/bond/trailer.swf"/>
+  <!--  All of the content below is based on the OGP examples provided at
+  http://ogp.me/, this ensures that thw Any23 coverage is suffciently up-to-date.
+   -->
+  
+  <!-- Begin Basic Metadata -->
+  <title>The Rock (1996)</title>
+  <meta property="og:title" content="The Rock" />
+  <meta property="og:type" content="video.movie" />
+  <meta property="og:url" content="http://www.imdb.com/title/tt0117500/" />
+  <meta property="og:image" content="http://ia.media-imdb.com/images/rock.jpg" />
+  <!-- End Basic Metadata -->
+  
+  <!-- Start Optional Metadata -->
+  <meta property="og:audio" content="http://example.com/bond/theme.mp3" />
+  <meta property="og:description" content="Sean Connery found fame and fortune as the suave, sophisticated British agent, James Bond." />
+  <meta property="og:determiner" content="the" />
+  <meta property="og:locale" content="en_GB" />
+  <meta property="og:locale:alternate" content="fr_FR" />
+  <meta property="og:locale:alternate" content="es_ES" />
+  <meta property="og:site_name" content="IMDb" />
+  <meta property="og:video" content="http://example.com/bond/trailer.swf" />
+  <!-- End Optional Metadata -->
+  
+  <!-- Start full Image Example -->
+  <meta property="og:image" content="http://example.com/ogp.jpg" />
+  <meta property="og:image:secure_url" content="https://secure.example.com/ogp.jpg" />
+  <meta property="og:image:type" content="image/jpeg" />
+  <meta property="og:image:width" content="400" />
+  <meta property="og:image:height" content="300" />
+  <meta property="og:image:alt" content="A shiny red apple with a bite taken out" />
+  <!-- End full Image example -->
+  
+  <!-- Start full video example -->
+  <meta property="og:video" content="http://example.com/movie.swf" />
+  <meta property="og:video:secure_url" content="https://secure.example.com/movie.swf" />
+  <meta property="og:video:type" content="application/x-shockwave-flash" />
+  <meta property="og:video:width" content="400" />
+  <meta property="og:video:height" content="300" />
+  <!-- End full image example -->
+  
+  <!-- Start full audio example -->
+  <meta property="og:audio" content="http://example.com/sound.mp3" />
+  <meta property="og:audio:secure_url" content="https://secure.example.com/sound.mp3" />
+  <meta property="og:audio:type" content="audio/mpeg" />
+  <!-- End full audio example -->
+  
+  <!-- Start Array example -->
+  <!-- If correctly extracted, HTML snippet below indicates there are 3 images, 
+  the first of three is 300x300, the middle one has unspecified dimensions, 
+  and the third one is 1000px tall.-->
+  <meta property="og:image" content="http://example.com/rock.jpg" />
+  <meta property="og:image:width" content="300" />
+  <meta property="og:image:height" content="300" />
+  <meta property="og:image" content="http://example.com/rock2.jpg" />
+  <meta property="og:image" content="http://example.com/rock3.jpg" />
+  <meta property="og:image:height" content="1000" />
+  <!-- End Array example -->
+
 </head>
 <body></body>
 </html>
\ No newline at end of file


[2/3] any23 git commit: ANY23-314 Service fails to return extraction in case of extraction error

Posted by le...@apache.org.
ANY23-314 Service fails to return extraction in case of extraction error


Project: http://git-wip-us.apache.org/repos/asf/any23/repo
Commit: http://git-wip-us.apache.org/repos/asf/any23/commit/6eacf5df
Tree: http://git-wip-us.apache.org/repos/asf/any23/tree/6eacf5df
Diff: http://git-wip-us.apache.org/repos/asf/any23/diff/6eacf5df

Branch: refs/heads/master
Commit: 6eacf5df92bd83911269deb7fdedaf8f068536ea
Parents: 025fccd
Author: Lewis John McGibbney <le...@gmail.com>
Authored: Wed Dec 13 10:31:06 2017 -0800
Committer: Lewis John McGibbney <le...@gmail.com>
Committed: Wed Dec 13 10:31:06 2017 -0800

----------------------------------------------------------------------
 .../main/java/org/apache/any23/vocab/OGP.java   | 107 -------------------
 .../apache/any23/vocab/RDFSchemaUtilsTest.java  |   4 +-
 2 files changed, 2 insertions(+), 109 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/any23/blob/6eacf5df/api/src/main/java/org/apache/any23/vocab/OGP.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/any23/vocab/OGP.java b/api/src/main/java/org/apache/any23/vocab/OGP.java
index 503cd08..5ee0e92 100644
--- a/api/src/main/java/org/apache/any23/vocab/OGP.java
+++ b/api/src/main/java/org/apache/any23/vocab/OGP.java
@@ -130,87 +130,6 @@ public class OGP extends Vocabulary {
 
     /* END: Structured Properties. */
 
-    /* BEGIN: ogp.me/#type_video.movie */
-
-    /** Actors in the movie. */
-    public static final String VIDEO__ACTOR      = "video:actor";
-
-    /** The role they played. */
-    public static final String VIDEO__ACTOR_ROLE = "video:actor:role";
-
-    /** Directors of the movie. */
-    public static final String VIDEO__DIRECTOR   = "video:director";
-
-    /** Writers of the movie. */
-    public static final String VIDEO__WRITER     = "video:writer";
-
-    /** The movie's length in seconds. */
-    public static final String VIDEO__DURATION   = "video:duration";
-
-    /** The date the movie was released. */
-    public static final String VIDEO__RELEASE_DATE = "video:release_date";
-
-    /** Tag words associated with this movie. */
-    public static final String VIDEO__TAG        = "video:tag";
-
-    /** Which series this episode belongs to. */
-    public static final String VIDEO__SERIES     = "video:series";
-    /* END: ogp.me/#type_video.movie */
-
-    /* BEGIN: http://ogp.me/#type_article */
-
-    /** When the article was first published. */
-    public static final String ARTICLE__PUBLISHED_TIME = "article:published_time";
-
-    /** When the article was last changed. */
-    public static final String ARTICLE__MODIFIED_TIME = "article:modified_time";
-
-    /** When the article is out of date after. */
-    public static final String ARTICLE__EXPIRATION_TIME = "article:expiration_time";
-
-    /** Writers of the article. */
-    public static final String ARTICLE__AUTHOR   = "article:author";
-
-    /** A high-level section name. E.g. Technology */
-    public static final String ARTICLE__SECTION  = "article:section";
-
-    /** Tag words associated with this article. */
-    public static final String ARTICLE__TAG      = "article:tag";
-
-    /* END: http://ogp.me/#type_article */
-
-    /* BEGIN: http://ogp.me/#type_book */
-
-    /** Who wrote this book. */
-    public static final String BOOK__AUTHOR     = "book:author";
-
-    /** The ISBN */
-    public static final String BOOK__ISBN       = "book:isbn";
-
-    /** The date the book was released. */
-    public static final String BOOK__RELEASE_DATE = "book:release_date";
-
-    /** Tag words associated with this book. */
-    public static final String BOOK__TAG       = "book:tag";
-
-    /* END: http://ogp.me/#type_book */
-
-    /* BEGIN: http://ogp.me/#type_profile */
-
-    /** A name normally given to an individual by a parent or self-chosen. */
-    public static final String PROFILE__FIRST_NAME = "profile:first_name";
-
-    /** A name inherited from a family or marriage and by which the individual is commonly known. */
-    public static final String PROFILE__LAST_NAME = "profile:last_name";
-
-    /** A short unique string to identify them. */
-    public static final String PROFILE__USERNAME  = "profile:username";
-
-    /** Their gender. */
-    public static final String PROFILE__GENDER    = "profile:gender";
-
-    /* END: http://ogp.me/#type_profile */
-
     private static OGP instance;
 
     public static OGP getInstance() {
@@ -252,32 +171,6 @@ public class OGP extends Vocabulary {
     public final IRI audioSecureURL = createProperty(AUDIO__SECURE_URL);
     public final IRI audioType      = createProperty(AUDIO__TYPE);
     public final IRI audioAlt       = createProperty(AUDIO__ALT);
-    
-    public final IRI videoActor     = createProperty(VIDEO__ACTOR);
-    public final IRI videoActorRole = createProperty(VIDEO__ACTOR_ROLE);
-    public final IRI videoDirector  = createProperty(VIDEO__DIRECTOR);
-    public final IRI videoWriter    = createProperty(VIDEO__WRITER);
-    public final IRI videoDuration  = createProperty(VIDEO__DURATION);
-    public final IRI videoReleaseDate = createProperty(VIDEO__RELEASE_DATE);
-    public final IRI videoTag       = createProperty(VIDEO__TAG);
-    public final IRI videoSeries    = createProperty(VIDEO__SERIES);
-
-    public final IRI articlePublishedTime = createProperty(ARTICLE__PUBLISHED_TIME);
-    public final IRI articleModifiedTime = createProperty(ARTICLE__MODIFIED_TIME);
-    public final IRI articleExpirationTime = createProperty(ARTICLE__EXPIRATION_TIME);
-    public final IRI articleAuthor  = createProperty(ARTICLE__AUTHOR);
-    public final IRI articleSection = createProperty(ARTICLE__SECTION);
-    public final IRI articleTag     = createProperty(ARTICLE__TAG);
-
-    public final IRI bookAuthor     = createProperty(BOOK__AUTHOR);
-    public final IRI bookIsbn       = createProperty(BOOK__ISBN);
-    public final IRI bookReleaseDate = createProperty(BOOK__RELEASE_DATE);
-    public final IRI bookTag        = createProperty(BOOK__TAG);
-    
-    public final IRI profileFirstName = createProperty(PROFILE__FIRST_NAME);
-    public final IRI profileLastName = createProperty(PROFILE__LAST_NAME);
-    public final IRI profileUsername = createProperty(PROFILE__USERNAME);
-    public final IRI profileGender  = createProperty(PROFILE__GENDER);
 
     @SuppressWarnings("unused")
     private IRI createClass(String localName) {

http://git-wip-us.apache.org/repos/asf/any23/blob/6eacf5df/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java b/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java
index 9f85c42..da735bf 100644
--- a/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java
+++ b/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java
@@ -43,7 +43,7 @@ public class RDFSchemaUtilsTest {
      */
     @Test
     public void testSerializeVocabulariesNTriples() {
-        serializeVocabularies(RDFFormat.NTRIPLES, 2216);
+        serializeVocabularies(RDFFormat.NTRIPLES, 2172);
     }
 
     /**
@@ -53,7 +53,7 @@ public class RDFSchemaUtilsTest {
      */
     @Test
     public void testSerializeVocabulariesRDFXML() {
-        serializeVocabularies(RDFFormat.RDFXML, 5804); // Effective lines + separators.
+        serializeVocabularies(RDFFormat.RDFXML, 5694); // Effective lines + separators.
     }
 
     private void serializeVocabularies(RDFFormat format, int expectedLines) {


[3/3] any23 git commit: Merge branch 'ANY23-298'

Posted by le...@apache.org.
Merge branch 'ANY23-298'


Project: http://git-wip-us.apache.org/repos/asf/any23/repo
Commit: http://git-wip-us.apache.org/repos/asf/any23/commit/2b91bbf4
Tree: http://git-wip-us.apache.org/repos/asf/any23/tree/2b91bbf4
Diff: http://git-wip-us.apache.org/repos/asf/any23/diff/2b91bbf4

Branch: refs/heads/master
Commit: 2b91bbf42bd04b7034379f681397846a6e4fc4cb
Parents: f44be91 6eacf5d
Author: Lewis John McGibbney <le...@gmail.com>
Authored: Tue Dec 19 04:45:59 2017 -0800
Committer: Lewis John McGibbney <le...@gmail.com>
Committed: Tue Dec 19 04:45:59 2017 -0800

----------------------------------------------------------------------
 .../main/java/org/apache/any23/vocab/OGP.java   |  53 +++++++--
 .../java/org/apache/any23/vocab/OGPArticle.java |  83 ++++++++++++++
 .../java/org/apache/any23/vocab/OGPBook.java    |  75 +++++++++++++
 .../java/org/apache/any23/vocab/OGPMusic.java   | 110 +++++++++++++++++++
 .../java/org/apache/any23/vocab/OGPProfile.java |  75 +++++++++++++
 .../java/org/apache/any23/vocab/OGPVideo.java   |  90 +++++++++++++++
 .../rdfa/AbstractRDFaExtractorTestCase.java     |   1 -
 .../extractor/rdfa/RDFa11ExtractorTest.java     |  48 ++++++--
 .../apache/any23/vocab/RDFSchemaUtilsTest.java  |   4 +-
 .../rdfa/opengraph-music-song-object-type.html  |  18 +++
 .../rdfa/opengraph-structured-properties.html   |  67 +++++++++--
 11 files changed, 594 insertions(+), 30 deletions(-)
----------------------------------------------------------------------